对于语言学习者来说,练习发音并获得及时准确的反馈,是提高口语水平的重要环节。多年来,微软一直深耕基于 Azure 认知服务的语音功能,不断优化语音评测[1]功能的底层技术,从准确率、流畅度、完整性和语音语调等方面,提供更实用的反馈,赋能教育行业,提升教与学水平。微软承诺发展“负责任的人工智能”,因此在设计和开发人工智能产品的过程中,始终恪守这一原则。本文将为大家介绍微软语音评测模型的整体架构,深入解析底层 Hierarchical Transformer 技术。
语音评测底层技术剖析
微软语音评测功能利用 Azure 神经网络语音合成(Azure Neural TTS)、Transformer[2]、有序回归[3]和 Hierarchical 架构提升了评测的准确率,并且获得了单词级别的准确性提升。与此同时,基于神经网络的 GOP[4](goodness of pronunciation)方法在高质量的声学模型支持下,其表现与真人专业评测水平极为相近。Azure 语音识别(STT)经过大规模真实数据的训练,微软可以利用高质量的 GOP 特征来训练发音错误检测模型。
模型整体架构:攻克数据稀缺难题,模型 PPC 系数大幅提升
语音错误检测面临的主要挑战之一是难以获得高质量的标注数据。为了克服数据稀缺问题(包括正面样本和负面样本的不均衡),微软使用 Azure Neural TTS 生成训练数据,即模拟人类辨别发音错误的过程。在此基础上,使用增强数据进行预训练得到源模型,然后使用标注数据对源模型进行微调。此外,在数据标注阶段,聘请多名语言专家(LE, Langurage Expert)根据相同的评测体系,单独对数据进行标注。两个独立 LE 之间的皮尔逊相关系数[5](Pearson Correlation Coefficients,PCC)必须大于给定的阈值,以保证标注质量。对于某些低资源区域,利用 Azure Neural TTS 强大的数据生成能力,同样可以采用这种两阶段建模方式提供支持。结合这些创新,模型在 SpeechOcean762 数据集[6]上的 PCC 从 0.5661 提高到 0.6562。
图1:语音错误检测系统架构
构建 Hierarchical Transformer:兼顾全文与单词级别语音评测
微软将来自于 Azure STT 系统声学模型的 Senone、音素和单词特征作为Hierarchical Transformer 模型的输入特征。Senone 信息用于检测细粒度的发音模式,自注意力机制重点聚焦于 Senone 和音素,而单词级别的特征则为当前单词评分提供全局视角(bird’s-eye view)。对齐块用于显式连接 Senone 和音素信息,让Transformer 理解它们之间的隐式关系。
对于单词级特征,模型中采用了单词后验分数、语句级信噪比(SNR)、时长、辅音和元音属性和统计信息等指标进行评测。音素特征比单词特征简单得多,仅包括音素得分和时长。而对于 Senone 特征,仅使用 Senone 分数和状态。通过这种精心设计的特征和模型架构,粗粒度和细粒度特征都将有助于 Transformer 对发音分数进行建模。
图2:发音错误检测Hierarchical Transformer总体框架
(a)Hierarchical Transformer 模型的结构(b)Transformer 块的详细信息(c)连接 senone 和音素信息的对齐块
引入有序回归,提升语句级别的流利性与准确性
微软在语音评测的准确率评估上进一步引入有序回归[7](Ordinal Regression,OR),并在 SpeechOcean762 数据集验证了结果。
OR 在之前的研究工作中已用于语句级流利性及准确性的语音评测。与传统的机器学习任务相比,OR 表现得更好,因为它没有将语音评测任务当作分类或回归任务。OR 旨在预测比较样本之间的排序信息——也就是说,它对两个样本进行比较并判断哪一个更好。这种二元偏好测试比传统方法更容易、更快、且更准确。此外,打分本身就是一种在得分上的自然排序,这种二元偏好测试理论上也更符合人类的行为习惯。
为了与其他系统公平比较,微软在 SpeechOcean762 公开数据集上训练了一些模型,该数据集分别包含 2500 个标注良好的训练样本和评价样本。评价指标 PCC 赋予一个介于-1 和 1 之间的值,其中 0 表示无相关性。负值意味着预测与目标相反,正值意味着预测与目标一致。它用于衡量机器生成的评价分数与真人专家标记分数之间的相关性。数值接近 1 则表示强相关性。在 SpeechOcean762 数据集中,每个样本均由 5 名 LE 单独标记。之后针对所有 2500 个评价样本,每 2 名 LE 之间的 PCC 都进行平均,作为真人评分的校验。实验结果如图 3 所示,通过利用 OR,微软语音评测模型在与头部厂商的商业语音评测服务横向对比中取得了最佳成绩,而且在 PCC 指标上进一步缩小了与真人评测的差距。
图3:SpeechOcean762 数据集的实验结果
语音评测功能助力教与学,满足多元教学场景
目前,微软语音评测支持十七种语言和口音,包括英语(美国)、英语(英国)、英语(澳大利亚)、法语(法国)、西班牙语(西班牙)、西班牙语(墨西哥)、德语(德国)、中文(普通话)和日语(日本)的通用版,以及其它多种语言口音[8]的预览版。
同时,语音评测已集成在微软 Immersive Reader 的 Reading Coach[9],作为教师助教提升教学效率;在微软 Teams 的 Speaker Progress[10]功能中,语音评测可以成为学生的陪练,助力学生提高外语朗读流畅性;PowerPoint Coach[11]能够在演练过程中向演讲者提供口语词汇的正确发音建议。
Berlitz[12]是全球领先的语言培训公司,通过使用 Azure 语音识别和语音评测功能提供平台产品,用户可以实时收到关于发音准确性和流畅度的详细反馈,随时随地灵活练习和完善他们的发音。全球语言学习社区 HelloTalk[13]将学习者与来自世界各地的母语用户联系起来,通过语音评测功能,学习者可以提升发音准确度,并在此过程中结交新朋友,更加沉浸于目标语言的文化中。
此外,培生[14]的朗文英语插件通过语音评测为不同水平的学生提供个性化的等级测试功能和学习材料建议;印度教育科技公司BYJU[15]利用语音评测开发了英语语言应用(ELA),帮助学生以个性化的方式学习英语。
随着以 ChatGPT 为代表的大语言模型等前沿技术的逐步成熟,将为外语教学场景带来更多可能。未来,在确保隐私安全、合法合规且符合道德伦理的前提下,学生将有机会拥有更加个性化、沉浸式的陪练体验,教育机构则能为老师提供教学助理,因材施教。
图4:ChatGPT 与多种应用集成,将为教学方式带来更多可能
测试你的语音发音水准
你可以尝试使用微软 Azure 云账号和语音服务账号登录微软语音工作室[16],无需编写程序即可体验口语评测功能,用更直观的交互界面评测语音流利程度和发音准确性。如果你没有账号,可以免费注册微软语音服务[17]。
以下更多资源能够帮助你将语音功能添加到语言学习应用中:
-
阅读“语言学习”博客[18],了解更多语音应用场景
-
在 GitHub 上试用发音评价的演示版[19]和示例代码[20]
-
发音评价:使用发音评价-Azure认知服务| Microsoft Learn[21]
-
语音转文本:语音转文本概述-语音服务-Azure 认知服务|Microsoft Learn[22]
-
文本转语音:文本转语音概述-语音服务-Azure 认知服务| Microsoft Learn[23]
-
定制语音:自定义神经网络语音概述-语音服务-Azure认知服务| Microsoft Learn[24]
-
联系我们获取反馈或功能:mspafeedback@microsoft.com
参考链接
[1]:https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/how-to-pronunciation-assessment?pivots=programming-language-csharp
[2]:https://arxiv.org/abs/1706.03762
[3]:https://arxiv.org/abs/2010.13339
[4]:https://www.sciencedirect.com/science/article/abs/pii/S0167639314001010
[5]:https://en.wikipedia.org/wiki/Pearson_correlation_coefficient
[6]:https://arxiv.org/pdf/2104.01378v2.pdf
[7]:https://ieeexplore.ieee.org/abstract/document/8682187
[8]:https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/language-support?tabs=pronunciation-assessment#speech-to-text
[9]:https://techcommunity.microsoft.com/t5/education-blog/reading-coach-in-immersive-reader-plus-new-features-coming-to/ba-p/3734079
[10]:https://learn.microsoft.com/en-us/training/educator-center/product-guides/reading-progress/
[11]:https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.microsoft.com%2Fen-us%2Fmicrosoft-365%2Fblog%2F2021%2F03%2F17%2Fimprove-your-presenting-skills-with-additional-platforms-and-new-features-for-powerpoint-presenter-coach%2F&data=04%7C01%7CMa.Melissa%40microsoft.com%7C6e47e4f7a841403a79dd08d8ee6b254b%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637521492199781979%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=yZ4BGASLPF9HAaQhi4sm6KtC%2Fr70RnWpF29K0t64j4Y%3D&reserved=0
[12]:https://www.berlitz.com/
[13]:https://customers.microsoft.com/en-us/story/1615006392710416983-hellotalk-azure-ai-education-china
[14]:https://customers.microsoft.com/en-us/story/1379625676815325642-pearson-education-azure-cognitive-services
[15]:https://byjus.com/global/
[16]:https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/speech-studio-overview
[17]:https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/overview#try-the-speech-service-for-free
[18]:https://github.com/Azure-Samples/Cognitive-Speech-TTS/tree/master/PronunciationAssessment/BrowserJS
[19]:https://github.com/Azure-Samples/Cognitive-Speech-TTS/tree/master/PronunciationAssessment/BrowserJS
[20]:https://github.com/Azure-Samples/cognitive-services-speech-sdk/blob/5b2aa44055b529ec3bd7c961efbe6a151f93ee5e/samples/csharp/sharedcontent/console/speech_recognition_samples.cs#L970
[21]:https://learn.microsoft.com/azure/cognitive-services/speech-service/how-to-pronunciation-assessment?pivots=programming-language-csharp
[22]:https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/speech-to-text
[23]:https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/text-to-speech
[24]:https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/custom-neural-voice