赞
踩
之前的文章绍一个准确率非常高的语音识别框架,但那个只能识别实时的短音频,如果想要识别一个非常长的音频,几十分钟,甚至几个小时,那之前的那个是做不到的所以就有了本文。本文介绍搭建一个长语音识别服务,可以把任意长度的音视频到识别结果。而且识别结果中,可以包含每句话的开始时间和结束时间,可以用来做字幕等等。
视频教程: 三行命令搭建语音识别服务,竟如此轻松识别几个小时的音视频!
需要把整个文件夹上传到服务器上,并在该目录执行以下命令:
编译Docker容器:
sudo docker build -t offline_asr .
修改权限:
sudo chmod +x run_server.sh
在项目根目录执行启动命令:
sudo docker run -p 10095:10095 -itd --privileged=true --name offline_asr -v $PWD/:/workspace/websocket offline_asr
重新启动服务,如果之前因为一些原因关闭了docker服务,可以执行下面命令重新启动,需要开机自启动的,把下面命令复制到开机自启动脚本中/etc/rc.local
:
sudo docker start offline_asr
使用上面服务之后,可以执行下面命令测试一下服务是否正常启动可用。
python client.py --wav_path=test.wav
输出结果如下,可以看到输出的结果中,每句话都带有开始和结束的时间戳,单位毫秒:
【../data/test.wav】结果: [{'text': '近几年,', 'start': '710', 'end': '1569'}, {'text': '不但我用书给女儿压岁,', 'start': '1569', 'end': '3550'}, {'text': '也劝说亲朋不要给女儿压岁钱而改送压岁书。', 'start': '3550', 'end': '7935'}]
上面搭建的是websocket的服务,使用起来非常不方便,所以下面提供了一个Websockt转http服务的程序,并且提供了网页可以上传音视频获取识别结果,启动HTTP服务命令如下。
python server.py
访问http://192.168.0.100:6060
打开页面,可以上传WAV、MP3、MP4等多种格式,同时也支持录制识别,返回的同样是每句话都有时间戳。
{ "result": { "text": "近几年,不但我用书给女儿压岁,也劝说亲朋不要给女儿压岁钱而改送压岁书。", "sentences": [ { "text": "近几年,", "start": "710", "end": "1569" }, { "text": "不但我用书给女儿压岁,", "start": "1569", "end": "3550" }, { "text": "也劝说亲朋不要给女儿压岁钱而改送压岁书。", "start": "3550", "end": "7935" } ] }, "code": 0 }
页面截图:
扫码入知识星球,搜索【FunASR语音识别长音频视频服务】获取源码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。