AIGC实践——asr识别FunASR手把手部署流程

💡
大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、互联网和自媒体。

FunASR是什么?

FunASR 是一个基本的语音识别工具包,提供多种功能,包括语音识别 (ASR)、语音活动检测 (VAD)、标点符号恢复、语言模型、说话人验证、说话人分类和多说话者 ASR。 FunASR提供方便的脚本和教程,支持预训练模型的推理和微调。

它由阿里达摩研究院推出的语音提取工具包,现在这个工具包还在被开发中,但是现在它能实现的功能已经很强大,当然如果你有更好的想法和点子,也可以加入FunASR的开发。我对于FunASR还是很佩服的,虽说其相对于openai旗下whisper性能上还是存在某些方面的差距的,但是FunASR跟适合中国宝宝体质,FunASR的标点符号更加精确,对于普通话来说有着能给人更好的体验。

无论您是初学者还是经验丰富的专业人士,FunASR都是一个值得一试的平台。它不仅为您提供了学习语音识别所需的工具和资源,更重要的是,它为学习者带来了乐趣和激励,让语音识别的学习之旅变得愉悦而充实。

如果您对语音识别技术充满兴趣,并且希望以一种全新的方式来探索和学习它,那么不妨加入FunASR的行列,一起开启这段富有乐趣的学习之旅吧!

今天就利用这个开源项目,跑一下他们的识别能力。后续的训练、调优都是基于这一步。

注:服务器环境搭建可以参考我之前的文章《Ubuntu技巧-Ubuntu远程访问之SSH反向代理

服务端部署

  1. 下载服务docker
    docker pull \
    

registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.10

```

不知道docker怎么安装使用的,可以参考我以前的文章。

  1. 创建项目模型文件夹

    mkdir -p ./funasr-runtime-resources/models
    
    
  2. 运行并进入docker容器里面
    注意:-p是端口的映射关系,3005是本机对外的端口,10095是容器的端口

    docker run -p 3005:10095 -it --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.10

```
  1. 在容器内运行服务
    cd FunASR/runtime &&
    

nohup bash run_server_2pass.sh
–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
–lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst
–itn-dir thuduj12/fst_itn_zh
–certfile 0
–hotword /workspace/models/hotwords.txt > log.txt 2>&1 &

```


查看运行日志:tail -f FunASR/runtime/log.txt

当看到Listen in 10095就表明服务运行正常。

  1. 关闭服务(这个后续要用到)
    ps -x | grep funasr-wss-server-2pass
    

kill -9 PID

```

Demo验证

  1. 在自己电脑上下载demo
    wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/sample/funasr_samples.tar.gz
    
    

解压之后,根据自己需求选择Python或者HTML测试代码,我这里使用HTML

  1. 进入HTML文件夹cd samples/http
    打开页面:samples/html/static/index.html

  2. 设置服务器地址,并连接

    如果没什么意外的话,就连接成功,就可以开始讲话了

  1. 测试结果

    整体来看,使用官方预训练的模型,识别也挺准的,速度也不错。

错误处理

在启动服务时候,有wss连接失败,在容器中日志打印

I20240828 14:39:12.509810  1198 websocket-server-2pass.cpp:29] on_tls_init called with hdl: 0x7ced34018300
I20240828 14:39:12.509902  1198 websocket-server-2pass.cpp:30] using TLS mode: Mozilla Intermediate
[2024-08-28 14:39:12] [error] handle_transport_init received error: TLS handshake failed
[2024-08-28 14:39:12] [info] asio async_shutdown error: asio.ssl:336462231 (shutdown while in init (SSL routines, SSL_shutdown))

这是连接ssl错误,此时在启动参数加--certfile 0,再重新启动即可。

后记

按照上面的流程,我们跑通过了FunASR的实时语音听写服务,除此之外,还可以使用离线文件转写,在damo下面还有许多模式可以试。


最重要的,该项目还提供了训练脚本,这就基本可以商用,感兴趣的可以做起来,有什么问题欢迎留言讨论。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可夫小子

感谢大佬!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值