FunASR语音识别模型的部署
FunASR语音识别系统的搭建,本篇博客是基于docker容器搭建FunASR语音模型,适合初入语音识别的用户学习
官方文档:FunASR 官方安装文档
CUDA Version: 12.0
服务器版本:Ubantu 18.04.6
注意:在安装过程中,如果是外网环境则只需要按照官方所提供的步骤进行操作,如果是内网情况下则需要提取下载好模型文件。另外,内网情况化也会自动下载模型,但是在日志中会提示模型下载失败。该报错信息可忽略。
本篇博客主要是对安装过程中一些参数的说明,具体操作流程以阿里的官方安装文档为主。
---------------------------------------------------------------------------------------------------------------------------------
一、安装Docker(服务器已安装Docker,未进行该步骤)
1、 Ubantu安装Docker命令
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh
2、Debian安装Docker命令
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
3、CentOS安装Docker命令
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
4、MacOS安装Docker命令
brew install --cask --appdir=/Applications docker
二、Docker镜像拉取并启动
1.拉取Docke镜像
sudo docker pull \
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.5
2、创建文件夹
在mkdir命令中,-p 表示自动创建不存在的父级目录,例如我想在当前目录下创建一个funasr-runtime-resources/modles文件夹,但是在当前目录下不存在funsar-runtime-resources文件夹,则使用 -p 会自动创建该文件夹。
./ 表示当前目录
mkdir -p ./funasr-runtime-resources/models
3、运行Docker容器
-p 表示端口号绑定,例如 -p 10096:10095,表示将容器内的10096端口绑定到主机中的10095端口; (小写字母p)
-itd -i 表示docker 要在容器上打开一个标准的输入接口 -t 表示 docker 要创建一个伪 tty 终端,连接容器的标准输入接口,之后用户就可以通过终端进行输入 -d 表示在后台运行容器;
--priviileged=true 表示使容器内部用户真正拥有root权限;
-v 挂载点
sudo docker run -p 10096:10095 -itd --privileged=true \
-v $PWD/funasr-runtime-resources/models:/workspace/models \
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.5
4、进入容器
# 查询运行中的容器
sudo docker ps
# 查询所有容器
sudo docker ps -a
# 进入容器
sudo docker attach <容器ID>
5、运行程序
cd FunASR/runtime
nohup bash run_server.sh \
--download-model-dir /workspace/models \
--vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \
--model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \
--punc-dir damo/punc_ct-transformer_cn-en-common-vocab471067-large-onnx \
--lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst \
--itn-dir thuduj12/fst_itn_zh \
--hotword /workspace/models/hotwords.txt > log.out 2>&1 &
# 如果您想关闭ssl,增加参数:--certfile 0
# 如果您想使用时间戳或者nn热词模型进行部署,请设置--model-dir为对应模型:
# damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx(时间戳)
# damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404-onnx(nn热词)
# 如果您想在服务端加载热词,请在宿主机文件./funasr-runtime-resources/models/hotwords.txt配置热词(docker映射地址为/workspace/models/hotwords.txt):
# 每行一个热词,格式(热词 权重):阿里巴巴 20
nohup 表示在后台运行,终端关闭或者退出后,程序仍然可以运行;nohup会默认将程序的输出重定向到nohup.out的文件中;可以通过 > 来指定输出文件的位置。
6、客户端测试和使用
wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/sample/funasr_samples.tar.gz
python3 funasr_wss_client.py --host "127.0.0.1" --port 10095 --mode offline --audio_in "../audio/asr_example.wav"
---------------------------------------------------------------------------------------------------------------------------------
在运行代码时存在的一些问题:
问题一:在docker容器中运行服务端时,多次运行会提示端口号被占用;
解决方法:
ps -aux |grep asr|awk '{print $2}'|xargs kill -9
ps -aux |grep asr 表示查找包含关键词"asr"的进程
kill -9 表示关闭该进程
问题二:基于Docker容器的FunASR模型在推理过程中使用的是cpu;
解决方法:在Docker容器中下载适合自己系统的torch版本;
链接:
更多推荐
所有评论(0)