阿里新开源的FunASR仓库(语音转文字),识别速度快,精度高。
FunASR的部署可以使用Docker,有关Docker的部署教程就很多了,一搜就是一大堆,我就不写了。
我就写一下Python本地部署的过程。
github仓库链接:https://github.com/modelscope/FunASR
直接下载仓库Zip文件。
下载完成后,解压缩。
要求:
python≥3.8
torch≥1.13
torchaudio
1)安装好Python后,打开cmd,输入后面的命令并回车:pip install virtualenv
2)然后在解压缩出来的仓库目录下打开cmd,输入后面的命令并回车:virtualenv venv
注意:如果电脑上有多个Python版本,执行上面的命令时,需要指定一下Python版本,像这样:virtualenv venv --python=pythonx.x.x
3)上面创建完虚拟环境后,就能看到仓库根目录下新建了一个venv文件夹,里面有一个Scripts文件夹。
4)在Scripts文件夹中打开cmd,输入后面的命令并回车:activate
5)这时,刚才的cmd窗口就会出现(venv) C:\xxxx\xxxx\Scripts> 这样的界面了。这就代表虚拟环境启动成功了,这个窗口不要关闭。
上一步打开的虚拟环境窗口,路径是在Scripts下,现在需要cd路径到仓库根目录下。执行两次:cd ../
这时cmd窗口的路径就在FunASR路径下了。
然后分别执行下面的命令:
pip install -e ./
pip install modelscope
pip install torch torchaudio
上面的三个pip命令是安装必要的库。安装可能会很久,等待即可。
运行runtime/python/websocket文件夹下的funasr_wss_server.py文件。
注意:这里运行示例文件是为了下载模型文件,模型文件会被下载到当前电脑用户的.cache/modelscope/hub/iic文件夹中。当然,也可以手动下载模型并放到这个目录下,如果手动下载模型的话,就不需要执行这一步了。
在仓库根目录下新建一个test.py文件,并输入代码:
from funasr import AutoModel
import datetime
# paraformer-zh is a multi-functional asr model
# use vad, punc, spk or not as you need
model = AutoModel(model="paraformer-zh", vad_model="fsmn-vad", punc_model="ct-punc")
res = model.generate(input=f"要识别的wav文件路径",
batch_size_s=300,
hotword='魔搭')
print(res)
修改代码中的要识别的wav文件路径,然后运行这个test.py,正常的话将看到这样的输出:

我们需要的是最后的白色文本,这才是对音频文件的识别结果。
到此,本地部署就完成了。
如果要将FunASR部署成服务,可以使用flask来实现,写一个upload接口,然后调用模型识别就行了。