本地语音识别-Docker部署FunASR
Docker部署FunASR
纯属个人安装过程和踩坑
参考文章:
https://github.com/alibaba-damo-academy/FunASR/blob/main/runtime/docs/SDK_advanced_guide_online_zh.md
https://github.com/modelscope/FunASR
我的基础配置
使用的ubuntu虚拟机安装的docker
1、先安装docker
没有安装的可以搜一下docker安装和使用
2 docker拉去funasr的镜像(docker容器外)
$ docker pull registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9
3、检查是否拉去成功(docker容器外)
$ docker images

4、创建一个文件夹(docker容器外)
实现本地文件与容器内部的文件共享,注意自己的需求,我的需求是要一个本地的语音识别服务器,这个文件要存待识别的语音文件,就要考虑创建文件的位置
$ mkdir /FunASR/model
5、docker运行(docker容器外)
$ docker run -p 10095:10095 -it --privileged=true -v /FunASR/model:/workspace/models registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9
命令行解释:
docker pull 拉取镜像
docker run 启动镜像
-p 10095:10095 将容器内部的端口 10095 映射到宿主机的端口 10095
-it 分配一个伪终端并保持标准输入打开
–privileged=true 赋予容器特权,允许它执行特权操作,如访问宿主机的硬件设备等
-v /FunASR/model:/workspace/models 将本地文件系统中的 /FunASR/model 目录挂载到容器内的 /workspace/models 目录,实现本地文件与容器内部的文件共享
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.9 拉取下来的镜像
6、启动 funasr-wss-server-2pass服务程序(docker容器内)
注意注意,如果启动成功就会进入容器内的命令行模式,下面这部操作是在容器内执行
$ cd FunASR/runtime
$ nohup bash run_server_2pass.sh \
--certfile 0 \
--download-model-dir /workspace/models \
--vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \
--model-dir damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx \
--online-model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx \
--punc-dir damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx \
--itn-dir thuduj12/fst_itn_zh > log.txt 2>&1 &
run_server_2pass.sh命令参数介绍
–download-model-dir 模型下载地址,通过设置model ID从Modelscope下载模型
–model-dir modelscope model ID 或者 本地模型路径
–online-model-dir modelscope model ID 或者 本地模型路径
–vad-dir modelscope model ID 或者 本地模型路径
–punc-dir modelscope model ID 或者 本地模型路径
–lm-dir modelscope model ID 或者 本地模型路径
–itn-dir modelscope model ID 或者 本地模型路径
–port 服务端监听的端口号,默认为 10095
–decoder-thread-num 服务端线程池个数(支持的最大并发路数),
脚本会根据服务器线程数自动配置decoder-thread-num、io-thread-num
–io-thread-num 服务端启动的IO线程数
–model-thread-num 每路识别的内部线程数(控制ONNX模型的并行),默认为 1,
其中建议 decoder-thread-num*model-thread-num 等于总线程数
–certfile ssl的证书文件,默认为:…/…/…/ssl_key/server.crt,如果需要关闭ssl,参数设置为0
–keyfile ssl的密钥文件,默认为:…/…/…/ssl_key/server.key
–hotword 热词文件路径,每行一个热词,格式:热词 权重(例如:阿里巴巴 20),
如果客户端提供热词,则与客户端提供的热词合并一起使用,服务端热词全局生效,客户端热词只针对对应客户端生效。
7、如何查看和监控服务端日志(docker容器内)
$ tail -f /workspace/FunASR/runtime/log.txt

8、准备音频文件
把音频文件放到步骤4创建的文件中去
9、容器外再开一个窗口来执行语音识别操作(docker容器外)
查看docker运行的容器
$ docker ps

另外开一个终端
$ docker exec -it 0c81b11d2791 /bin/bash

执行语音识别命令,注意音频文件的位置
$ funasr ++model=paraformer-zh ++vad_model="fsmn-vad" ++punc_model="ct-punc" ++input=nls-sample-16k.wav

结果:

更多推荐




所有评论(0)