语音辨认技能能够让核算机理解人类的语音,从而支撑多种语音交互的场景,如手机运用、人车协同、机器人对话、语音转写等。然而,在这些场景中,语音辨认的输入并不总是单一的言语,有时会出现多言语混合的状况。例如,在中文场景中,咱们经常会运用一些英文专业术语来表达意思,如“GPS信号弱”、“Java工程师”等,这就给语音辨认技能带来了新的挑战。
本次PaddleSpeech发布的中英文语音辨认预练习模型Conformer_talcs能够经过PaddleSpeech封装的命令行东西CLI或许Python接口快速运用,开发者们能够根据此建立自己的智能语音运用,也能够参阅示例练习自己的中英文语音辨认模型。
- 示例链接
github.com/PaddlePaddl…
快速体会
- 示例音频
paddlespeech.bj.bcebos.com/PaddleAudio…
运用命令行东西CLI 快速体会语音辨认作用,命令如下:
bash
paddlespeechasr--modelconformer_talcs--langzh_en--codeswitchTrue--input./ch_zh_mix.wav-v
#终端输出:今天是monday 明日是tuesday
Python 接口快速体会,代码完成如下:
python
>>>importpaddle
>>>frompaddlespeech.cli.asrimportASRExecutor
>>>asr_executor=ASRExecutor()
>>>text=asr_executor(
model='conformer_talcs',
lang='zh_en',
sample_rate=16000,
config=None,
ckpt_path=None,
audio_file='./ch_zh_mix.wav',
codeswitch=True,
force_yes=False,
device=paddle.get_device())
>>>print('ASRResult:\n{}'.format(text))
ASRResult:
今天是monday明日是tuesday
中英文语音辨认技能
中英文语音辨认难点
中英文语音辨认相较于单言语的语音辨认而言,首要难点如下:
数据量少
中英混合数据相较于单言语的数据更少。现在开源的中文语音辨认数据集如WenetSpeech(10000小时有监督,2500小时弱监督,10000小时无监督)、英文语音辨认数据集Giga Speech(10000小时有监督,33000小时无监督)都达到了万小时等级,但是混合的开源中英文语音辨认数据只有SEAME(120小时)和TAL_CSASR(587小时)两个开源数据,混合数据集比单言语数据聚会更少。
中英类似发音易混淆
中英文语音辨认需求一个单一的模型来学习多种语音,类似但具有不同含义的发音通常会导致模型的复杂度和核算量增加,一起因为它需求区别处理不同言语的类似发音,因此在模型建模时就需求依照不同言语区别不同的建模单元。
PaddleSpeech 中英文语音辨认计划
模型挑选与介绍
本计划运用了一种端到端语音辨认模型Conformer U2模型,其采用了Joint CTC/Attention with Transformer or Conformer的结构。练习时运用CTC 和 Attention Loss 联合优化,而且经过dynamic chunk的练习技巧,使Shared Encoder能够处理任意巨细的chunk(即任意长度的语音片段)。其还运用CTC-Prefix Beam Search和Attention Decoder的方法进行解码,得到最终成果,一起完成了流式和非流式的语音辨认,支撑控制推理推迟。本次PaddleSpeech开源的预练习模型,是非流式的端到端辨认Conformer U2模型,chunk中包含全部上下文信息,需求整句输入进行辨认。假如你想练习流式中英文语音辨认模型,也能够参阅PaddleSpeech的Conformer U2/U2++模型流式语音辨认的示例练习自己的流式中英文语音辨认模型。
- 示例链接
github.com/PaddlePaddl…
Conformer U2 结构示意图[1]
数据集介绍
本次运用了TAL_CSASR中英混合语音数据集。语音场景为语音授课音频,包含中英混合讲课的状况,总计587小时语音。
- 数据集下载地址
ai.100tal.com/dataset
数据集介绍[2]
中英混合语音辨认建模单元
在中文语音辨认系统中,常采用音素、汉字、词等作为声学模型的建模单元,在英文语音辨认系统中则常采用英文音素、国际音标、子词等作为声学模型的建模单元。本次PaddleSpeech开源的预练习中英文语音辨认模型是采用端到端语音辨认模型Conformer U2,未接入言语模型,运用了中文字/词加英文子词的建模方法,将中英文分开建模,经过模型推理,直接得到辨认后的成果。
试验成果比照
因为本项目运用的是中英文混合数据集,所以咱们挑选混合错误率(MER,Mix Error Rate)作为评价指标,中文部分核算字错误率(CER,Character Error Rate),英文部分核算词错误率(Word Error Rate)。测试数据集挑选TAL_CSASR中现已划分好的测试集。因为不同的解码方法辨认的作用不同,这里咱们运用 Attention、CTC Greedy Search、CTC Prefix Beam Search、Attention Rescoring 四种解码方法进行试验,解码作用最佳为Attention Rescoring,混合错误率MER为0.084,折算为咱们常说的语音辨认正确率91.6%。
进一步优化与作用提高
当前中英文语音辨认计划的作用还有进一步提高的空间,比如在Conformer U2 模型后面参加Language Model,经过言语模型学习中英文言语信息,PaddleSpeech中供给了根据N-Gram的言语模型练习计划。此外,能够在练习过程中参加Language ID,运用token等级或许帧等级的言语ID标示信息,能够进一步提高中英文语音辨认的作用。假如你有更大的中英文混合数据集或许是场景相关的数据集,能够经过微调或许进一步练习,提高在事务场景中的辨认作用。
PaddleSpeech 语音辨认技能介绍
除了中英文混合的Conformer U2模型以外,飞桨语音模型库PaddleSpeech中包含了多种语音辨认模型,能力涵盖了声学模型、言语模型、解码器等多个环节,支撑多种言语。现在PaddleSpeech现已支撑的语音辨认声学模型包含DeepSpeech2、Transfromer、Conformer U2/U2 ++,支撑中文和英文的单言语辨认以及中英文混合辨认;支撑CTC前束查找(CTC Prefix Beam Search)、CTC贪心查找(CTC Greedy Search)、注意力重打分(Attention Rescoring)等多种解码方法;支撑 N-Gram言语模型、有监督多言语大模型Whisper、无监督预练习大模型wav2vec2;一起还支撑服务一键布置,能够快速封装流式语音辨认和非流式语音辨认服务。经过PaddleSpeech供给的命令行东西CLI和Python接口能够快速体会上述功能。经过PaddleSpeech精品项目合集,能够在线体会PaddleSpeech的优秀项目,上面更有PaddleSpeech核心开发者精心打造的《飞桨PaddleSpeech语音技能课程》,协助开发者们快速入门。
- 项目传送门
aistudio.baidu.com/aistudio/pr…
假如您想了解更多有关PaddleSpeech的内容,欢迎前往PaddleSpeech主页学习更多用法,Star 重视,获取PaddleSpeech最新资讯。
- PaddleSpeech地址
github.com/PaddlePaddl…
引证
[1]模型结构图 arxiv.org/pdf/2012.05…
[2]数据集介绍 ai.100tal.com/dataset
拓展阅览
- 提速300%,PaddleSpeech 语音辨认高性能布置计划重磅来袭
- 定制音库本钱骤降98%,PaddleSpeech小样本语音合成计划重磅来袭