导读:语音是人类信息沟通的重要途径,同时也是人机交互的重要桥梁,自动语音识别可以表述为通过计算机将人类语音信号转录为书面形式的文字输出的过程。本文分享了网易易盾提出的多级建模单元的端到端汉语语音识别方法及具体的落地实践。

1.语音识别简介

语音是人类信息沟通的重要途径,同时也是人机交互的重要桥梁,自动语音识别(Automatic Speech Recognition,ASR)可以表述为通过计算机将人类语音信号转录为书面形式的文字输出的过程。

自 20 世纪 50 年代以来,自动语音识别问题就一直是机器学习界的一个重要研究课题。在过去几十年里,语音识别经历了从基于 GMM-HMM 的传统语音识别技术到端到端语音识别技术的发展历程。在传统的语⾳识别框架中,整个自动语音识别系统由多个模块组成,包括声学模型、发音词典和语言建模。端到端语音识别系统使用单个序列到序列模型,直接将输入的声学特征序列映射到文本序列,与传统的 GMM-HMM 混合系统相比,端到端语音识别方法具有训练流程简单、系统组成简单、识别效果好等优点,是目前学术研究和工业落地的热点。

2.为什么要用多级建模?

选择建模单元是构建 ASR 系统的重要一环,目前端到端汉语语音识别系统通常选择汉字作为模型的建模单元。然而,建模单元的选择不仅仅是涉及到网络的输出,也应该跟语言特性相关。汉语具有一定的语言特性,我们常说英语表音,汉语表意,看到一个英文,也许并不认识这个单词,但我们可以读出来,而看到一个汉字如果不认识的话,也许能猜出它的意思,但不能知道知道汉字的读音。也就是说汉字是一种文字符号,本身与发音无关。因此直接选择汉字作为端到端汉语语音识别系统的建模单元,模型很难学习到声学特征和发音单元之间的映射知识,同时由于语音和汉字之间没有“发音”关联性,模型直接学习从语音映射到汉字会变得困难。

针对上述问题,我们提出了一种多级建模的端到端汉语语音识别方法,除了汉字(Character-level)建模单元,我们还在模型中引入了音节(Syllable-level)作为建模单元。具体地,多级建模方法基于 Encoder-Decoder 的架构,使用多任务学习 hybrid CTC/Attention[1] 方式进行训练,其中 CTC 分支使用音节作为建模单元,使得模型可以学习到从语音特征序列到音节序列的映射信息,而 Attention 分支使用汉字作为建模单元,利用序列上下文信息和声学特征将音节转换为最终输出的汉字。多级建模单元使得模型在训练的过程中能够融合学习多级信息,包括音韵学信息和序列上下文信息,从而提升汉语语音识别的性能。

3.多级建模方法

模型架构

我们的模型使用了两级建模单元,包括汉字建模单元和音节建模单元。在训练阶段,使用语音特征序列和标注文本组成的数据对(X, Y)来训练网络,每个汉字可以由一个带调的音节表示,文本序列 Y 通过开源工具 Python-pinyin[2] 可以得到音节序列 S_Y,例如“北 京 天 安 门”转换成音节序列“bei3 jing1 tian1 an1 men2”。统计训练数据中出现的汉字并编号得到汉字词典,统计训练数据中出现的音节并编号得到音节词典。

下图展示了我们的多级建模系统架构。整个模型主要由前置的卷积模块, Encoder 模块和 Decoder 模块构成。前置的卷积模块提取输入序列的局部特征,并对序列进行下采样,减小后续的计算开销。Encoder 可以是 Conformer[3] 网络或者 Transformer[4] 网络。其中,Conformer 编码器层主要由四个子层构成:一个前馈网络层、自注意力模块、卷积模块和第二个前馈网络层。Transformer 编码器层主要由两个子层构成,分别是自注意力模块和前馈网络模块。解码器层由堆叠在一起的三个子模块组成:自注意力模块、多头注意力模块和前馈网络模块。

多级建模方法核心点在于:

音节建模:CTC 分支使用音节作为建模单元,特征序列X经过卷积模块和 Encoder 模块得到声学特征向量,通过一个全连接层将特征映射成音节字典大小的向量,再进行softmax归一化得到每一帧的概率分布,联合目标音节序列 S_Y 计算 CTC loss。

汉字建模:Attention 分支使用汉字作为建模单元。Decoder 模块接收音节embedding 向量和 Encoder 模块输出的声学特征向量作为输入,Decoder 的输出通过一个全连接层将特征映射成汉字字典大小的向量,再进行 Softmax 归一化得到概率分布,联合目标汉字序列 Y 计算 CE loss。

在多级建模方法中,Deocder 模块接收音节 Embedding 和声学特征向量作为输入,输出汉字序列,承担了将音节转换为汉字(Syllable-to-character)的任务。相对于利用之前时间步的汉字序列信息和声学特征预测下一个时间步的汉字(Character-to-character),将音节序列转换为汉字序列是一个更具有挑战性的任务。因此,我们在 Decoder 模块引入了中间层的辅助任务来促进从音节到汉字的转换,从而提升系统的性能,我们将辅助任务模块命名为 InterCE。

InterCE loss 的计算是使用 Decoder 模块中间层的输出,经过线性层和 Softamx 得到概率分布,最后计算和标注文本的交叉熵。整个网络的目标函数是基于音节的 CTC loss,基于汉字的 CE loss 和中间层 InterCE loss 的加权和。

模型推理

模型训练完成后,在推理阶段,Encoder 模块提取声学特征,Encoder 的输出通过线性层和 Softmax 函数得到每一帧在音节词典上的概率分布,通过 CTC prefix beam search 得到最优 N-best 的音节序列。Decoder 模块利用音节 Embedding 和声学特征向量作为输入,输出最终的汉字序列。模型推理的计算过程如下图所示。

实验验证

我们在汉语开源数据集 AISHELL-1[5] 上验证了多级建模方案的实验效果,AISHELL-1 包含来自 400 个说话人的 178 小时中文语音数据。我们分别使用 Conformer 网络和 Transformer 网络验证多级建模方案的效果。

在不使用语言模型的情况下,基于 Transformer 网络,多级建模方法在 AISHELL-1 上取得了 5.2% 的 CER,性能优于基于汉字建模和基于音节建模的基准模型。基于 Conformer 网络,多级建模方案在 Aishell-1 上取得了 4.6% 的 CER,优于最近发表的基于汉字建模的基准模型,实验结果表明多级建模方法提升了汉语语音识别性能。


我们通过消融实验来分析 InterCE loss 带来的性能提升。首先,我们在基于汉字建模的模型中增加 InterCE loss 辅助任务,结果显示 InterCE loss 辅助任务只能带来轻微的性能提升。其次,我们将 InterCE loss 从多级建模的框架中移除,结果显示在验证集和测试集上性能有 0.1% 的下降。消融实验结果表明在一个端到端模型中使用音节和汉字两级建模单元可以提升汉语语音识别的性能,除此之外,在多级建模的框架下增加辅助任务 InterCE loos 可以带来额外的性能提升。

4.总结

在本文中,我们提出了一种多级建模单元的端到端汉语语音识别方法,通过多级建模的方式,模型可以融合学习多级信息。此外,我们引入了辅助任务 InterCE loss 来进一步提升模型的准确性。在推理阶段,输入的特征序列通过 Encoder 以及后续的 CTC 分支生成音节序列,随后 Decoder 模块将音节序列转换成汉字,整个解码过程通过一个端到端模型完成,无需引入额外的转换模型,从而避免了多个模型带来的累积错误。我们的模型在广泛使用的中文 Benchmark 数据集 AISHELL-1 上取得了具有竞争力的效果,并且优于最近发表的文献结果。

更多细节请参考 Paper 链接:https://arxiv.org/abs/2205.11998。

引用内容

[1] Watanabe S, Hori T, Kim S, et al. Hybrid CTC/attention architecture for end-to-end speech recognition[J]. IEEE Journal of Selected Topics in Signal Processing, 2017, 11(8): 1240-1253.

[2] Gulati A, Qin J, Chiu C C, et al. Conformer: Convolution-augmented transformer for speech recognition[J]. arXiv preprint arXiv:2005.08100, 2020.

[3] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.

[4] https://github.com/mozillazg/python-pinyin

[5] Bu H, Du J, Na X, et al. Aishell-1: An open-source mandarin speech corpus and a speech recognition baseline[C]//2017 20th conference of the oriental chapter of the international coordinating committee on speech databases and speech I/O systems and assessment (O-COCOSDA). IEEE, 2017: 1-5.

知物由学 | 多级建模方法提升汉语语音识别效果,获ISCSLP大赛认可相关推荐

  1. 【百度贾磊】汉语语音识别技术重大突破:LSTM+CTC详解(22PPT)

    1新智元原创1 作者:王嘉俊 新智元福利 回复1028下载贾磊22页PPT Google 去年发布了一项研究报告,说在美国年龄介于13到18岁的青年当中,约有55%的人每天使用语音搜索. 语音搜索正在 ...

  2. SWAT模型(建模方法、实例应用、高级进阶)技能提升

    第一部分[从小白到精通]:SWAT建模及在水文水资源.面源污染模拟中的实践技术应用与典型案例分析 第二部分[高级进阶]:SWAT模型高阶应用暨无资料地区建模.不确定分析与气候变化.土地利用对面源污染影 ...

  3. 特征编码在风控建模中的应用(上篇)—WOE是否可以提升集成算法效果?

    序言: 在风控模型开流程中,使用的场景分别有A卡.B卡.C卡等模型,常规使用最多的就是逻辑回归算法.使用逻辑回归算法80%会使用的编码方式就是WOE编码,相信做模型的同学对这种编码方式非常熟悉. 做W ...

  4. 【广告技术】如何提升定向广告效果?腾讯广告提出高质量负实例生成新方法

    基于CCF-腾讯犀牛鸟基金的平台支持,腾讯广告与清华大学李勇老师团队围绕分布式大规模推荐算法开展了深入的合作研究.双方最新的合作成果入选了信息检索和数据挖掘领域顶级学术会议之一ACM CIKM 202 ...

  5. 提升网站运营效果的方法有哪些?网站运营有什么方法和技巧?

    说到网络营销离不开的就是网站运营,网站运营从营销型网站建设方案的时候就已经开始了,因为网站前期的定位和策划都需要运营人员参与负责.因为网站前期的定位和布局对网站运营效果有着很大的营销,任何一个步骤都会 ...

  6. 提升项目沟通效果的核心方法

    项目沟通是项目管理中的核心之一,项目成败的关键因素之一就是项目团队之间的沟通效果.良好的项目沟通可以增强团队的合作力和凝聚力,确保项目按时完成,达成项目目标.那么提升项目沟通效果的方法有哪些呢?. 1 ...

  7. 为提升在线语音识别效率,他创造了两种升级版算法模型

    近日,阿里算法专家坤承携<使用改进版本的LATENCY-CONTROLLED BLSTM 算法模型提升在线语音识别效率>(IMPROVING LATENCY-CONTROLLED BLST ...

  8. 3DSMAX渲染器哪个好以及建模方法大盘点?你学会了吗

    3DSMAX渲染器哪个好以及建模方法大盘点?你学会了吗 Maya基础到精通案例教程集:传送门 zbrush基础到精通案例教程集:传送门 3dmax基础到精通案例教程集:传送门 3D建模软件安装下载集: ...

  9. 数学建模常用方法 | matlab代码 | 二十三种数学建模方法 |2022赛前突击 |模型代码 |比赛比用、简单高效| 分享

    为是赛前突击,所以就不过多的介绍理论知识了,直接上案例,matlab代码 更加详细例题解析: 公众h:露露IT 目录 1.类比法 2.二分法 3.量纲分析法 4.图论法 5.差分法 6.变分法 7.数 ...

最新文章

  1. python真的很厉害吗-python为什么这么牛?Python真有这么好的前景?
  2. 消费者关注的 Win8 问题汇总(中)
  3. 谈谈如何使用Netty开发实现高性能的RPC服务器
  4. java里dir是什么意思_关于文件系统:为什么user.dir系统属性在Java中工作?
  5. gentoo ffmpeg+mencoder快速搭建视频处理系统笔记
  6. 在windows下安装webpy
  7. 常用算法一(分治算法)
  8. 《Effective C++》 读书笔记之三 资源管理
  9. 年轻人求知欲让我想办CPU设计免费培训
  10. nosql笔记1_早前的时候
  11. 【预测模型】Leslie 人口增长模型
  12. win10下载CAD之后任务栏卡死
  13. 【个人管理】Nicholas C. Zakas:我得到的最佳职业生涯建议
  14. 双击word文档提示向程序发送命令出现问题(There was a problem sending the command to the program)
  15. 【剑桥摄影协会】针对摄影的显示器校准
  16. JAVA配置多源数据库
  17. 【CCF会议期刊推荐】CCF推荐国际学术期刊/会议(计算机科学理论)
  18. 加密算法比较:SHA1,SHA256(SHA2),MD5
  19. 画论65 方薰《山静居画论》
  20. jdk下载与安装教程(win10)

热门文章

  1. chrome的network查看资源下载时间并优化(瀑布流图)
  2. STM32循迹避障小车制作代码详解(简单实现版)
  3. MySQL多表SQL查询
  4. signature=7eaed5a66499b473aab2f11ec0461fe9,Author's reply: To PMID 25293698
  5. 分享12款我常用的开源免费软件
  6. 《Spring in action (5th edition)》Chapter 6 --Creating REST services 重点记录
  7. [230530] 托福TPO口语真题| TPO66~TPO72|XPO|Task1|20:30~21:00
  8. ubuntu16.04下安装网易云音乐
  9. 高中学历适不适合学Web前端?
  10. 比起python造假,还有比faker更牛的?