纯属个人安装过程和踩坑
参考文章:

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

在这里插入图片描述
结果:
在这里插入图片描述

更多推荐