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版本;

        链接: 

  • 28
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值