使用的是大佬的工具。
记录一下使用。
按照要求在服务器部署好nway_asr_server
使用说明:
nway_asr_server V1.7
chmod +x /opt/nway_asr_server/nway_asr_server
1. 需要让程序运行时的用户有权限创建 /opt/fsgui/log 文件夹
2. 此程序使用的是vosk的库,是笔者2011年10月开发
3. 支持各类的linux平台,但需要把 libvosk.so和libatomic-1abecf58.so.1.2.0 在debian体系中的 /lib/下
而在centos系列中,则要放到 /lib64/.下 当然有其它方式,就不要管它了
4. 此版本的model中是一个大集,压缩包有1.3G
5. 此版本建议在6core 12G内存以上跑
6. 默认监听在ws://ip:20035/nway_asr
nway_asr_client
1. 配置访问的地址:nway.ini
类似配置
[server]
ip=ws://10.0.0.114:20035/nway_asr
2. 调用方式
如果是linux下的,则需要 unzip nway_asr_client.zip后
chmod +x /opt/nway_asr_client/nway_asr_client后
nway_asr_client "" wav_file_path 或
nway_asr_client.exe "" wav_file_path
""只是为了兼容,但必须有该参数,wav_file_path则是电话中单声道的8k 8bit 录音
启动好后可以本地调用nway_asr.exe
我freeswitch保存的录音是mp3格式的,所以需要转换一下,使用的pyhoon转换
from pydub import AudioSegment
import subprocess
import os
def mp3_to_wav(input_path, output_path):
sound = AudioSegment.from_mp3(input_path)
sound.export(output_path, format='wav')
exe_path = '.\\nway_asr_client\\nway_asr.exe '+output_path
return run_exe(exe_path)
def run_exe(exe_path):
process = subprocess.Popen(exe_path, stdout=subprocess.PIPE)
output, _ = process.communicate()
return output.decode('utf-8')
# 调用函数
print(mp3_to_wav('.\\nway_asr_client\\8f91d8cf-e68d-454f-a6d1-e6309d8bf769.mp3','.\\nway_asr_client\\output.wav'))
示例,文本识别还是有一些问题,不过基本的质检是够的
如果是wav格式则可以直接识别,不需要转换
import subprocess
def run_exe(exe_path):
process = subprocess.Popen('.\\nway_asr_client\\nway_asr.exe .\\nway_asr_client\\3.wav ', stdout=subprocess.PIPE)
output, _ = process.communicate()
return output.decode('utf-8')
exe_path = 'D:\\BaiduNetdiskDownload\\nway_asr_client\\nway_asr.exe'
output = run_exe(exe_path)
print(output)
仅做记录用,再次感谢大佬