微软推出 Hierarchical Transformer 实现更高准确率的语音评测

news/2025/3/17 18:14:52/

对于语言学习者来说,练习发音并获得及时准确的反馈,是提高口语水平的重要环节。多年来,微软一直深耕基于 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


http://www.ppmy.cn/news/74527.html

相关文章

iperf3常用

iperf使用方法详解 iperf3是一款带宽测试工具,它支持调节各种参数,比如通信协议,数据包个数,发送持续时间,测试完会报告网络带宽,丢包率和其他参数。 安装 sudo apt-get install iperf3iPerf3常用的参数&am…

DVB-S中卫星通信系统的基带仿真(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 ​数字视频广播(DVB)在卫星通信数字多媒体业务领域应用广泛,其一般采用MPEG-2编码、数字传输和纠错处理等通用技术,然而,当第三方…

Linux 设备驱动程序(三)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核(一) 深入理解 Linux 内核(二) Linux 设备驱动程序(一) Linux 设备驱动程序(二) Linux 设备驱动程序(三&#xf…

提高电商团队效率:必备的协作工具盘点

随着电商行业的快速发展,电商团队的规模和任务不断增加。然而,文件管理和文件协作方面的问题也随之出现。 电商行业可能存在的问题: 文件传输效率低下:电商团队需要频繁地共享和传输大量的文件,这会导致文件传输效率低…

第一个 Rust 程序

目录 必要知识代码示例 Cargo 教程[Rust 输出到命令行](https://www.runoob.com/rust/rust-println.html)资料 必要知识 Rust 语言代码文件后缀名为 .rs 使用 rustc 命令编译 .rs 文件 rustc runoob.rs # 编译 runoob.rs 文件编译后会生成 可执行文件 例如: …

effective c++ 29 为异常安全而努力是值得的

effective c 29 为异常安全而努力是值得的 本节主要阐述了面对异常我们该做的事情。用数据库进行类比,数据库中有事务的概念,即要么都执行成功,要么都不执行。类比于异常,当异常发生时,我们最好要恢复到调用之前的状态…

系列四、vue3 初始化项目(图形化界面方式)

一、启动UI界面 vue ui 二、创建项目 2.1、在此创建项目 2.2、创建新项目-详情配置 2.3、创建新项目-预设 2.4、创建新项目-功能 2.5、创建新项目-配置 2.6、运行项目 任务》serve》运行》启动app 2.7、首页 三、安装element-plus 3.1、步骤 ①、运行 vue ui 命令&#…

态路小课堂丨光口不亮?三种简单故障排查请查收!

在光链路中,当遇到交换机光口互连不亮情况时,很多人不知道如何处理。本文态路为您介绍三种简单故障排查方案,助您快速进行故障排查和问题定位。 一、首先检查一致性 1、两端光模块型号是否一致。一般包括速率、封装模式、接口类型、传输波长、…