一、安装
1、系统依赖
-
libsndfile
-
CentOS
sudo yum install libsndfile
-
MacOS
brew install libsndfile
-
2、环境依赖
python == 3.7
-
paddlepaddle == 2.2.0
pip install paddlepaddle==2.2.0
-
paddlehub == 2.1.0
pip install paddlehub==2.1.0
3、安装模型
hub install u2_conformer_wenetspeech
二、本地模型API预测
1、模型代码示例
import paddlehub as hub
# 采样率为16k,格式为wav的中文语音音频
wav_file = '/PATH/TO/AUDIO'
model = hub.Module(
name='u2_conformer_wenetspeech',
version='1.0.0')
text = model.speech_recognize(wav_file)
print(text)
2、API
def check_audio(audio_file)
- 功能
- 检查输入音频格式和采样率是否满足16000
- 参数
-
audio_file
:本地音频文件路径(*.wav),如/user/kwok/audios/input.wav
-
def speech_recognize(
audio_file,
device='cpu',
)
-
功能
- 将输入音频识别转成中文
-
参数
-
audio_file
:本地音频文件路径(*.wav),如/user/kwok/audios/input.wav
-
device
:预测时使用的设备,默认为cpu
,如需使用gpu
推理,设置为gpu
-
三、线上服务部署
-
PaddleHub Serving 可以部署一个在线的语音识别服务
-
第一步
-
启动PaddleHub Serving
-
cpu
部署hub serving start --modules u2_conformer_wenetspeech --port 8866 --use_multiprocess --workers
-
gpu
部署NOTE: 如使用GPU预测,则需要在启动服务之前,请设置CUDA_VISIBLE_DEVICES环境变量
export CUDA_VISIBLE_DEVICES=0
hub serving start --modules u2_conformer_wenetspeech --port 8866
-
-
-
第二步
-
发送预测请求
import requests import json # 需要识别的音频的存放路径,确保部署服务的机器可访问 file = '/path/to/input.wav' # 以key的方式指定text传入预测方法的时的参数,此例中为"audio_file" data = {"audio_file": file} # 发送post请求,content-type类型应指定json方式,url中的ip地址需改为对应机器的ip url = "http://127.0.0.1:8866/predict/u2_conformer_wenetspeech" # 指定post请求的headers为application/json方式 headers = {"Content-Type": "application/json"} r = requests.post(url=url, headers=headers, data=json.dumps(data)) print(r.json())
-