本文内容源自「RTC Dev Meetup 丨语音处理在实时互动领域的技术实践和应用】的演讲分享,分享讲师为寰语科技语音识别研究主管马志强。
近几年来,语音识别技术已经逐步走进了我们的生活和工作中,特别是以 AI 语音助手为代表的语音交互功能也已经得到落地,应用到各类消费级产品当中,比如,智能手机、智能汽车、智能家电以及智能家居等。用户只需要唤醒语音助手,提供相应的指令,就可以使其帮助我们完成打电话、查天气以及导航等常见的功能。根据相关咨询机构的调研报告所说,中国智能语音垂直行业的发展规模,到 2025 年将要达到千亿的级别。从发展空间可以看出,语音交互以及语音识别逐渐成为万物互联时代人机交互的关键入口。
语音识别的市场空间在稳步的提高中,在国家建设“一带一路”的社会背景下,其所倡议的“五通”也需要语言互通来提供支撑。目前,“一带一路”已经涵盖了 100 多个国家和地区,涉及到几十种官方语言。在此背景下,国家对于多语种技术的能力需求日益强烈,而多语种语音识别技术也是其中最重要、最基础的技术能力之一。我们从 2020 年开始,就已经规划并建设了多语种技术能力,比如今天将要介绍的多语种识别、多语种翻译以及多语种合成等通用的技术能力。
近两年来,受到疫情的影响,人们的工作和生活方式也发生了较大的变化,比如,现在比较流行的在线教育、在线直播、线上会议等形式逐渐被大家所接受,对应的 AI 字幕技术目前也已经成功应用赋能到了这些场景中。比如,AI 字幕可以通过语音识别技术和语音翻译技术,将识别结果和翻译结果以字幕的形式实时地展示给用户。这种形式可以帮助用户更好地理解直播或者视频的内容,方便用户记录会议纪要。整体来看,AI 字幕技术提供了一种语音转写和语音翻译的系统性解决方案,极大地提升了用户体验和沟通效率。
语音助手和 AI 字幕是两个典型的语音识别应用场景,当前,深度学习技术正在不断地发展和进步,在很多场景中语音识别的效果其实已经达到了可用的水平,但是在刚刚提到的两个典型场景中,目前仍然面临着较大的技术挑战。比如,针对语音助手场景存在着高噪场景的识别问题,特别是在远场环境中,语音非常容易受到混响和噪声的干扰影响,导致大量的多人说话以及人声重叠等难点问题,造成远场语音识别效果的急剧下降。
第二个问题是海量实体识别的问题。比如在语音助手场景中,可能需要使用其进行一些导航指令,这就要求 ASR 模型具备识别全国至少千万量级实体的能力,可以想象,其中肯定会存在大量同音不同字的实体,这样模型识别也非常容易相互串扰。同时,这种量级规模的实体分布其实是非常不均衡的,特别是对于尾部的实体而言,它是非常稀疏的,此时 ASR 模型建模将会非常困难。
第三个问题是多语种语音识别的问题,线上进行过 ASR 或者相关任务的同学可能比较清楚,对于一些适用范围较广的语种,比如汉语、英语等,训练数据相对来说比较丰富;但是对于小语种来说,比如泰米尔语或者是乌尔都语,训练数据是极其稀缺的,可能只有几百小时、几十小时的量级,在这种情况下,这些语种训练出来的 ASR 模型,其识别效果一般非常差。
同样,AI 字幕业务场景也面临着一些技术挑战。第一个挑战就是复杂的转写识别场景。比如,在音视频字幕转写的场景中,音视频通常会包含各种噪声和背景音,这些都会影响语音转写的效果。另外。在线上直播或者娱乐直播场景中也会伴随着一些特效音和音乐,这对语音转写都带来了巨大的挑战。
针对于 AI 字幕场景的第二个挑战就是其本身的高实时性要求,在一般情况下用户要求字幕和正在观看的音视频尽可能地保持同步,通常延迟控制在 1~2 秒,此时的用户体验和用户观感一般都是非常好的。但是这其实提升了对 ASR 模型,特别是 AI 转写模型的要求。
针对 AI 字幕的第三个挑战就是 AI 字幕的上屏效果体验,主要包含两个部分:首先,转写结果以字幕的形式传递给用户,通常要附加标点,比如句号或者逗号,用户根据标点可以进行分句,此时用户对于字幕的理解度相对较好;但如果没有标点,则对用户来说字幕内容看起来是非常困难的。其次是字幕的擦除率,以图 1 为例,此时有三个句子,分别是三次上屏的结果。比如,“今天”其实在三次上屏的过程中变化了两次,先由“今”变成了“惊”,然后由“惊”又变回了“今”,在这个过程中,字幕其实跳转了两次,跳转的过程是非常频繁的,对于用户来说,观感以及理解度可能不是特别友好,这也是 AI 字幕技术需要解决的一个问题。
■图 1
第一部分主要介绍了语音识别技术现状,接下来重点介绍语音识别技术的研究进展。首先,介绍针对于语音识别任务的三大关键技术,这三个关键技术也可以认为是刚刚提到的两个典型场景 —— 语音助手和 AI 字幕的基础和共性技术。
(1) 语音识别数据资源的工程建设
进行过 ASR 任务或者深度学习相关任务的同学可能比较了解,训练数据对模型来说是非常关键的。一般情况下,我们从现网(生产环境)能够获取到海量的无监督数据,比如文本数据、语音数据或者视频数据。对于这些无监督数据,目前有两种主要的处理流程:第一种处理流程是借助于现有的 ASR 模型,直接给语音或视频打标签,生成一些弱监督的标注数据。第二种处理流程是借助于机器辅助的方式,首先进行预标注,预标注完成之后,一些语言学专家会基于预标注结果进行人工的纠正和检验,通过这种方式可以得到一个有监督的精确标注的平行数据。依托于已经建设好的数据资源标注平台,目前是能够支持和提供大规模 ASR 训练数据建设能力的。
(2) 无监督/弱监督训练数据增强框架
我们基于数据层面提出了一种基于语音合成和自训练的半监督语音识别框架。如图 2 所示,对于无监督的语音数据,可以通过 ASR 模型得到大量的伪标签数据;对于无监督的文本数据,可以通过 TTS 模型得到合成数据。然后将伪标签数据、合成数据以及有监督的真实数据混合到一起联合训练 ASR 模型。
■图 2
图 2 的右侧展示了一个回流的过程,这个过程中,我们可以反复地迭代、更新,以及训练 ASR 模型。通过多轮的迭代,ASR 模型可以把大量的无监督语音和无监督文本全部训练到模型中。随着多轮的训练,ASR 模型的效果其实也在逐步得到提升。我们采用这种方法进行了实验,通过验证可以发现,在 100 小时的有监督数据中,加上大量无标签的语音和文本数据,最终训练出来的 ASR 模型可以达到数千小时的有监督训练的效果。
(3) 多语种端到端统一建模框架
大家应该都知道,目前比较流行的端到端模型其实包含编码器和解码器两个部分。对于编码器部分,模型可以直接将多语种的音频直接输入到统一的声学模型编码器,然后学习各个语种之间统一的声学表征。对于解码器部分,一般会选择与语种相关的文本生成解码网络,各个语种或者各个语系之间的解码网络是相互独立的,这样的好处在于,可以尽可能地保留每个语种文本的特性或者差异性,比如中文、英文和俄语的文本有比较大的差异性,但是在声学层面,它们的声学特征是可以共享的。
目前主要采用端到端的模型框架,对于 ASR 端到端来说,它抛弃了一些传统方案,比如翻译词典需要语言学知识的资源,这样可以减少我们对语言学专家知识,以及大规模数据标注的依赖。
接下来将详细介绍刚刚提到的两个典型场景。
(1) ASR 声学模型结构
在语音助手场景中包含很多远场识别的情况,对于电视大屏以及音箱来说,需要在远场唤醒指令。在这种场景下,我们设计了一种特有的声学模型结构,如图 3 所示。图 3 展示的声学模型采用了带有强化层和过滤层的注意力机制来抑制远场的噪声以及他人说话的干扰,这个模型结构主要通过 CNN 和 Self-Attention 两种现在比较主流的网络结构来设计和组成,其中过滤层主要通过卷积网络来降低时域分辨率,从而去除声学特征中的干扰。强化层通过对输出特征之间进行 Self-Attention 来保留重点的声学信息。
■图 3
在实验中还发现,目前设计的这一套声学模型结构在复杂场景中,特别是噪声环境下有比较好的鲁棒性,具有比较强的建模能力。
(2) 海量实体系统性解决方案
针对于海量实体,我们也端到端地提供了一整套的系统性解决方案。以语音助手导航场景为例,在使用语音助手的时候可能需要导航到所在城市的各个地方,但是对于我国来说,这是至少包含千万量级的 POI 实体。我们采用的方法是,首先按照城市的维度进行细颗粒度的建模,然后为每个城市构建一个单独的语言模型解码网络。
在用户真实使用的时候,语音助手系统可以根据用户的位置信息以及用户当前的意图信息,动态加载刚刚提到的已经建模好的城市 Patch 包。通过加载这些 Patch 包一方面可以提高用户所在城市的识别效果,另一方面,因为每个城市采用独立建模的方式,能够减少不同城市之间统一实体的串扰问题,进一步提升海量实体的识别结果。
对于这个问题我们不仅针对中文,对其他多语种上做了一些实体优化方案,如图 4 所示,主要采用了左边显示的优化方式,可以看到,对于大多数语种而言,实体的识别准确率基本上能够达到 85% 以上。这样的准确率对于用户来说,基本上已经达到了比较可用的水平。
■图 4
(3) 多语种语音识别端到端统一建模方案
对于前面提到的多语种识别问题,我们也在多语种统一建模的基础上,进一步提出了一种基于语系分组的统一建模方式。这个方案考虑到了不同语种之间的语言学共性,并基于这些语言学特性对我们开发的语种进行了聚类。目前我们把所有的语种分成了四大类,每一个语系对应了语言学上比较相似的一些语种,每个语系对应到 ASR 模型中也包含相应的独立解码网络。
比如拉丁语系可能有一个对应的拉丁语系解码器,而阿拉伯语系也有对应的拉丁语系独立解码器,这样就能够最大程度地利用到各个语种之间语言学的共享信息。从实验结果可以看到,拉丁语系的语种非常多,那么它的训练数据也相应比较多,我们对英语、法语、德语、西班牙语等也采用了这种语系分组的统一建模方式,相比单独建模平均可以相对提升 10% 以上。对于阿拉伯语系来说,其语种比较少,训练数据相对来说也比较少,但是其基线提升幅度更大,大概是 20% 左右。可以看到,这种基于语系分组的多语种端到端统一建模的方案,对于低资源语种的提升幅度是非常大的。
接下来介绍 AI 字幕技术的整体研究进展,AI 字幕对于数据、场景以及实时性有比较高的要求,所以对于 AI 字幕技术首先在数据层面进行了研究,具体如下。
(1) 弱监督数据生成技术
对于大量无监督的字幕视频数据,首先可以从视频数据中提取到对应的音视频以及视频自带的字幕信息,利用对应的语音识别技术和 OCR 识别技术,分别得到同一段音频的两个不同维度的识别结果:一个可以认为是语音的识别结果,一个可以认为是 OCR,也就是视频自带字幕的识别结果。接下来将这两个识别结果通过字音矫正和字形矫正两种方式,分别进行相互的对齐和融合,最终得到文本标签,该文本标签接近于人工标注的结果。
通过这种方式可以利用到现网的无监督的字幕视频数据,在短时间内获得大量的 AI 字幕的训练数据。如果是采用人工标注的方式,时间成本非常大,人力成本也是非常昂贵的。所以目前对于 AI 字幕领域,弱监督数据生成技术是非常关键的环节。通过这种技术,可以生成大量的可用于 AI 字幕训练的弱监督数据。
(2) 低时延端到端转写识别技术
AI 字幕场景的应用范围相比于语音助手更加复杂,比如在线娱乐直播、会议场景,以及影视剧实时转写场景都包含了非常多的噪声、音乐,以及人声等。所以在语音流程中,我们在 VAD 模块额外增加了声音事件检测功能,该功能首先对 ASR 模型输入的音频进行声音事件检测,检测音频中包含常见的噪声、音乐、掌声等多个声音事件。然后将这些声音事件以标签和字幕的形式,同时通过屏幕呈现给用户,进而大幅度减少噪声、音乐以及掌声等通用转写模型识别效果的误触发问题。
AI 字幕场景是非常复杂的,因此我们在数据层面补充了数据增强策略。首先在数据层面对训练数据做了加噪处理,添加了混响以及背景音乐,甚至包括采样率变换以及语速变换。通过这种方式尽可能地提高 AI 字幕模型训练数据的丰富程度,让模型或者数据能够适应于真实的用户场景。另外,针对 AI 字幕高实时性的要求,我们也提出了动态时延的声学模型结构,采用了多任务学习,也就是 multitask 学习方式。通过这种方式,训练的模型可以动态地适配各种时延要求。这种多任务学习的方式,也能够提升 ASR 模型的效果,比如在真实应用中只需要将模型设置为 200 毫秒,那么其硬时延或者整体时延就是 200 毫秒左右。通过这种方式可以适配各种不同场景的实时性需求。
(3) 转写识别后处理优化技术
用户的主观体验是非常重要的,在完成字幕识别之后,怎么使上屏更加流畅友好是非常关键的,这就运用到了转写识别后处理优化技术。
首先,AI 字幕转写文本主要采用了一种流式标点模型,对语音识别的结果实时打标点。当检测到标点时,直接提取标点前的识别结果作为一句话或者一段话,如果没有检测到标点,则提取标点预测的最大概率位置作为完整的语义片段,通过标点预测以及提取语义片段的方式,对字幕文本进行分句和分段,这样便于用户理解,也能够提升字幕内容的可理解度。然后可以把识别结果传送给后端的翻译模型,翻译模型根据识别结果再进行翻译工作。
接下来考虑上屏字幕的擦除率,我们根据实际的应用场景提出了一种约束解码算法。如图 5 所示,第一次识别结果是“今天”,该结果通过字幕传递给用户后,把“今天”两个字固定住,继续识别“天气”这两个字,这样“今天”这两个字在后面的识别过程中就不会变化,也就是红色的部分会一直在屏幕上不再变化。采用这种约束解码的方式,能够减少历史识别结果的变化次数。后面的识别结果也可以根据之前已经解码好的结果继续解码,也就是我们所说的约束解码,这样可以降低整个字幕文本的擦除率,也能够提高语音转写的效果。最终用户不管是观感还是对 AI 字幕的理解度都会更加友好,从而提高主观体验。
■图 5
接下来分享语音识别技术的整体落地情况,主要涉及我们在语音识别技术方面的产品和常见应用的具体案例。
目前在多语种方向我们已经具备了 70 个语种的语音识别能力。其他方面,比如语音合成、机器翻译,我们也具备了几十种到上百种的能力。另外,我们去年参加了 open ASR 多语种语音识别竞赛,在 15 个语种的受限赛道和 7 个语种的非受限赛道全部取得了第一的成绩。这也展现了我们目前所具备的多语种相关的能力。这些能力已经开放到了我们的 AI 开放平台上,通过 AI 开放平台上提供的调用接口和服务给开发者使用。
在语音助手场景的应用方面,我们也和国内的手机厂商等进行了深入的合作。目前我们具备了 12 个语种的语音助手能力,包含国内以及国外的产品。在语音助手的特定识别场景方面,我们的语音识别准确率基本上都能达到 90% 以上,支持了搜索、音乐、百科、天气、导航等接近 30 多个垂类的语音助手技能。涉及到产品,我们目前主要包含手机、大屏、音箱、手表以及一些智能家居的具体产品。
近几年,我们的语音助手能力已经得到了广泛的应用和落地,目前国内还提供除了普通话以外的方言能力。在智能汽车领域,语音助手功能也是体现车机智能化以及差异化的特色功能。我们目前能够提供一整套的“云+端”系统性解决方案,也包含端侧的语音助手识别能力。同样,我们也和国内的一些厂商进行了合作,目前“云+端”的系统性解决方案也已经落地到了国内的一些上市车型中。
在 AI 字幕方面,我们目前已经支持了至少四个语种,分别是中文、英文、日语和韩语,这些语种的实时转写能力也应用到了一些手机产品中,正在播放的音视频可以通过 AI 字幕功能实时地转写出来,同时附带翻译。整体来看,AI 字幕在这两年也取得了长足的进步,比如在影视剧音视频、线直播、在线教育甚至在线会议等场景中都得到了广泛的应用。
1、AI 字幕场景中的声学模型建模单元是什么以及如何处理流式识别的准确率和低延迟的矛盾?
首先我们目前所用的 AI 字幕场景中的建模声学建模单元主要包含一到两种。第一种是端到端的建模方案,ASR 模型就是基于端到端的。在这种情况下,对于中文来说,其建模单元一般就是汉字,对英文来说就是英文单词。对于如何处理流式识别的准确率和低延迟的矛盾问题,准确率和延迟之间可以认为是一个不断 balance 的过程,如果想要获得较高的准确率,那么延迟就不能太高;如果延迟低,那么准确率就会比较差。
基于这个问题,我们提出了一种动态时延的声学模型训练方式,可以通过 mask 机制实现动态时延,比如可以设置 200 毫秒或者 600 毫秒的时延。也可以采用 multitask 训练方式,在模型中同时支持不同的时延的声学模型,这样就可以从两方面共同提升 ASR 的准确率和延迟效果。比如有些场景对时延要求非常高,那么就用 200 毫秒的延迟;有些场景对时延要求不高,那么就可以用 600 毫秒甚至更大的延迟实现准确率的提升。
2、智能音箱为什么会突然应答?它们是不是在实时监听周围的声音?
智能音箱是一个端到端的解决方案,它不仅涉及到语音识别技术,还涉及到前端唤醒,也就是语音唤醒技术。我们在用智能音箱的时候,可能会出现突然说你好的情况,这可能是前端的唤醒模块,也就是语音唤醒出现了误触发,会把人声或者噪音识别成唤醒词,比如,Siri 等将某些词误触发成了唤醒词,那么语音助手就会进行应答,所以整体上主要原因还是存在误唤醒的情况。
3、这里介绍的编解码和通常意义上的编解码,例如 opus 有什么区别?
opus 是一种声音编码格式,它是对音频本身进行了编码处理。我们提到的模型的编解码是一种深度学习的网络结构。端到端模型由一个 encoder 和一个 decoder 组成,encoder 就是我们常说的编码器,它是对输入的音频做了特征提取以及声学建模相关的工作。解码器也就是通常说的 decoder,它是对编码器所编码的向量的特征表示,然后解码成对应的文字和或者其他的识别结果。我们今天介绍的编解码,相当于一个端到端的结构。在这个端到端的结构中,输入是我们常见的音频,输出是对应的识别结果,也就是文字。这是它们的本质上的区别。
关于声网云市场
声网云市场通过集成技术合作伙伴的能力,为开发者提供一站式开发体验,一站式解决实时互动模块的选型、比价、集成、账号打通和购买,帮助开发者快速添加各类 RTE 功能,快速将应用推向市场,节约 95% 集成 RTE 功能时间。
讯飞语音实时转写(中/英)插件目前已经上架声网云市场,支持中文和英文实时转写,返回带精确时间戳的文字流,可用于生成字幕,适用于各类直播、语音社交、视频会议等场景。大家可以点击此链接立即体验。