语音辨认技术可能让计算机了解人类的语音,从而反对多种语音交互的场景,如手机利用、人车协同、机器人对话、语音转写等。然而,在这些场景中,语音辨认的输出并不总是繁多的语言,有时会呈现多语言混合的状况。例如,在中文场景中,咱们常常会应用一些英文专业术语来表白意思,如“GPS信号弱”、“Java工程师”等,这就给语音辨认技术带来了新的挑战。

本次PaddleSpeech公布的中英文语音辨认预训练模型Conformer_talcs能够通过PaddleSpeech封装的命令行工具CLI或者Python接口疾速应用,开发者们能够基于此搭建本人的智能语音利用,也能够参考示例训练本人的中英文语音辨认模型。

示例链接https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/tal_cs/asr1

**疾速体验

**示例音频
https://paddlespeech.bj.bcebos.com/PaddleAudio/ch_zh_mix.wav

应用命令行工具CLI 疾速体验语音辨认成果,命令如下:

bashpaddlespeech asr --model conformer_talcs --lang zh_en --codeswitch True --input ./ch_zh_mix.wav -v# 终端输入:明天是monday 今天是tuesday

Python 接口疾速体验,代码实现如下:

python>>> import paddle>>> from paddlespeech.cli.asr import ASRExecutor>>> 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('ASR Result: \n{}'.format(text))ASR Result:明天是 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++模型流式语音辨认的示例训练本人的流式中英文语音辨认模型。

示例链接https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/wenetspeech/asr1


Conformer U2 构造示意图[1]

数据集介绍
本次应用了TAL_CSASR中英混合语音数据集。语音场景为语音授课音频,包含中英混合讲课的状况,总计587小时语音。

数据集下载地址 https://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语音技术课程》,帮忙开发者们疾速入门。

我的项目传送门https://aistudio.baidu.com/aistudio/projectdetail/4692119?con...

如果您想理解更多无关PaddleSpeech的内容,欢送返回PaddleSpeech主页学习更多用法,Star 关注,获取PaddleSpeech最新资讯。

PaddleSpeech地址https://github.com/PaddlePaddle/PaddleSpeech

援用

[1] 模型结构图https://arxiv.org/pdf/2012.05481.pdf
[2] 数据集介绍https://ai.100tal.com/dataset

拓展浏览
提速300%,PaddleSpeech 语音辨认高性能部署计划重磅来袭
定制音库老本骤降98%,PaddleSpeech小样本语音合成计划重磅来袭