关于深度学习:一文读懂PaddleSpeech中英混合语音识别技术

34次阅读

共计 3612 个字符,预计需要花费 10 分钟才能阅读完成。

语音辨认技术可能让计算机了解人类的语音,从而反对多种语音交互的场景,如手机利用、人车协同、机器人对话、语音转写等。然而,在这些场景中,语音辨认的输出并不总是繁多的语言,有时会呈现多语言混合的状况。例如,在中文场景中,咱们常常会应用一些英文专业术语来表白意思,如“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 疾速体验语音辨认成果,命令如下:

bash

paddlespeech 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 小样本语音合成计划重磅来袭

正文完
 0