参考:
语音识别系列︱paddlehub的开源语音识别模型测试(二)
上一篇paddlehub是一些预训练模型,paddlespeech也有,所以本篇就是更新paddlespeech里面的模型。
参考:PaddleSpeech 一键预测,快速上手Speech开发任务
PaddleSpeech 是 all-in-one 的语音算法工具箱,包含多种领先国际水平的语音算法与预训练模型。你可以从中选择各种语音处理工具以及预训练模型,支持语音识别,语音合成,声音分类,声纹识别,标点恢复,语音翻译等多种功能,PaddleSpeech Server模块可帮助用户快速在服务器上部署语音服务。
相关依赖:
gcc >= 4.8.5
paddlepaddle >= 2.3.1
python >= 3.7
linux(推荐), mac, windows
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install pytest-runner
pip install paddlespeech
文档链接:语音识别
第一个语音识别的示例:
>>> from paddlespeech.cli.asr.infer import ASRExecutor
>>> asr = ASRExecutor()
>>> result = asr(audio_file="zh.wav")
>>> print(result)
我认为跑步最重要的就是给我带来了身体健康
以为安装了paddlespeech,就直接可以用了;
但是有一些案例会报错,所以,最好就是直接git github的,再调用:
git clone https://github.com/PaddlePaddle/PaddleSpeech.git
cd PaddleSpeech
参数:
input
(必须输入):用于识别的音频文件。model
:ASR 任务的模型,默认值:conformer_wenetspeech
。lang
:模型语言,默认值:zh
。sample_rate
:音频采样率,默认值:16000
。config
:ASR 任务的参数文件,若不设置则使用预训练模型中的默认配置,默认值:None
。ckpt_path
:模型参数文件,若不设置则下载预训练模型使用,默认值:None
。yes
;不需要设置额外的参数,一旦设置了该参数,说明你默认同意程序的所有请求,其中包括自动转换输入音频的采样率。默认值:False
。device
:执行预测的设备,默认值:当前系统下 paddlepaddle 的默认 device。verbose
: 如果使用,显示 logger 信息。预训练模型包括:
模型 | 语言 | 采样率 |
---|---|---|
conformer_wenetspeech | zh | 16k |
conformer_online_multicn | zh | 16k |
conformer_aishell | zh | 16k |
conformer_online_aishell | zh | 16k |
transformer_librispeech | en | 16k |
deepspeech2online_wenetspeech | zh | 16k |
deepspeech2offline_aishell | zh | 16k |
deepspeech2online_aishell | zh | 16k |
deepspeech2offline_librispeech | en | 16k |
可以看:punctuation_restoration/README_cn.md
>>> from paddlespeech.cli.text.infer import TextExecutor
>>> text_punc = TextExecutor()
>>> result = text_punc(text="今天的天气真不错啊你下午有空吗我想约你一起去吃饭")
今天的天气真不错啊!你下午有空吗?我想约你一起去吃饭。
案例2:
import paddle
from paddlespeech.cli.text import TextExecutor
text_executor = TextExecutor()
result = text_executor(
text='今天的天气真不错啊你下午有空吗我想约你一起去吃饭',
task='punc',
model='ernie_linear_p7_wudao',
lang='zh',
config=None,
ckpt_path=None,
punc_vocab=None,
device=paddle.get_device())
print('Text Result: \n{}'.format(result))
参数:
input
(必须输入):原始文本。task
:子任务,默认值:punc
。model
:文本模型类型,默认值:ernie_linear_p7_wudao
。lang
:模型语言, 默认值:zh
。config
:文本任务的配置文件,若不设置则使用预训练模型中的默认配置,默认值:None
。ckpt_path
:模型参数文件, 若不设置则下载预训练模型使用,默认值:None
。punc_vocab
:标点恢复任务的标点词表文件,默认值:None
。device
:执行预测的设备,默认值:当前系统下 paddlepaddle 的默认 device。两个预训练模型,以下是 PaddleSpeech 提供的可以被命令行和 python API 使用的预训练模型列表:
模型 | 语言 | 标点类型数 |
---|---|---|
ernie_linear_p3_wudao | zh | 3(,。?) |
ernie_linear_p7_wudao | zh | 7(,。!?、:;) |
是把语音识别 + 标点恢复同时使用。
参考:视频字幕生成
import paddle
from paddlespeech.cli.asr import ASRExecutor
from paddlespeech.cli.text import TextExecutor
asr_executor = ASRExecutor()
text_executor = TextExecutor()
text = asr_executor(
audio_file='input.wav',
device=paddle.get_device())
result = text_executor(
text=text,
task='punc',
model='ernie_linear_p3_wudao',
device=paddle.get_device())
print('Text Result: \n{}'.format(result))
输出:
Text Result:
当我说我可以把三十年的经验变成一个准确的算法,他们说不可能。当我说我们十个人就能实现对十九个城市变电站七乘二十四小时的实时监管,他们说不可能。
参考文献: