Docker 部署 funasr 语音转文字服务


共计 3275 个字符,预计需要花费 9 分钟才能阅读完成。

前言

由于家人有需要,经常需要听会议记录或者通话录音,于是想着直接将录音导出,然后进行转文字,再通过 gpt 进行总结或者其他的操作。找了很多项目,最好还是在 nodeseek 论坛的坛友建议下,找到了 funasr 这个项目。使用感受是,识别准确率确实还不错,非常满足我的需求。

FunASR 是一个基础语音识别工具包,提供多种功能,包括语音识别(ASR)、语音端点检测(VAD)、标点恢复、语言模型、说话人验证、说话人分离和多人对话语音识别等。FunASR 提供了便捷的脚本和教程,支持预训练好的模型的推理与微调。

目前 FunASR 支持 docker 部署,不过只有 cpu 版本,并且支持实时转换和离线转换。

官方服务

如果仅仅是简单使用,那么其实不必要自己搭建服务,因为这个毕竟比较吃硬件。

此时可以访问官方 h5 页面:链接

Docker 部署 funasr 语音转文字服务

/>

可以看见,页面确实比较简陋,但是该有的功能基本都有。

这里需要注意的是 asr 服务器地址:

  • wss://www.funasr.com:10096/: 这个为实时语音识别地址,支持麦克风、文件如 pcm、wav 格式,但是不支持 mp3、m4a 等格式

  • wss://www.funasr.com:10095/: 支持 mp3、m4a 等格式

效果:

Docker 部署 funasr 语音转文字服务

/>

自建asr服务器

这里是把两个实时和离线两个服务都部署了,所以直接使用 docker-compose

version: '3'
services:
  funasr:
    image: registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.5
    container_name: funasr
    ports:
      - "10095:10095"
    privileged: true
    volumes:
      - /home/docker/funasr/models:/workspace/models
      - /home/docker/funasr/samples:/samples
      - /home/docker/funasr/mp3:/mp3
    command: tail -f /dev/null
  funasr-online:
    image: registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.10
    container_name: funasr-online
    ports:
      - "10096:10095"
    privileged: true
    volumes:
      - /home/docker/funasr/models:/workspace/models
      - /home/docker/funasr/samples:/samples
      - /home/docker/funasr/mp3:/mp3
    command: tail -f /dev/null

其实只需要映射模型目录 /home/docker/funasr/models:/workspace/models 即可,其余的目录是为了方便测试而进行的映射。

如果需要查看官方测试案例和下载官方测试包,可以查看快速开始

  • 启动离线语音识别服务
# 进入容器
docker exec -it funasr bash
# 进入服务目录
cd /workspace/FunASR/runtime
# 启动服务
nohup bash run_server_2pass.sh  \
--model-thread-num 8 \
  --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 \
  --hotword /workspace/models/hotwords.txt > log.txt 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

如果是第一次启动,那么需要等模型下载完成才可以使用,可以查看 log.txt 查看情况。

  • 启动实时语音识别服务
# 进入容器
docker exec -it funasr-online bash
# 进入服务目录
cd /workspace/FunASR/runtime
# 启动服务
nohup bash run_server.sh \
--model-thread-num 8 \
--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 \
--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.txt 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

同样如果是第一次启动,也需要等待模型下载完成。

等待服务启动完毕以后,可以使用官方的 h5 页面,将 asr 替换为自己的服务器地址。或者将上面提到的 快速开始 里面的测试包下载,里面也有一样 h5 页面,并且可以自行修改一些内容,下面就是经过修改后的,时间上更为明显了。

Docker 部署 funasr 语音转文字服务

/>

Tips:清朝云网络工作室

阅读剩余
THE END