发音评测 API 的工作原理:从音频到多维度打分
一段朗读音频提交后,发音评测 API 如何给出总分、准确度、流利度等多维评分?本文拆解 DolphinSOE 从音频采集、识别对齐到多维度打分的完整流程,并附真实返回示例。

句子评测演示:朗读完成后立即返回多维度评分当你在语言学习 App 里念出一句「good morning」,屏幕几乎瞬间就给出了 98 分的发音评分,还顺手高亮了是哪个词、哪个音标拖了后腿——这背后到底发生了什么?
对开发者和技术决策者来说,弄清发音评测 API 的评分原理,也许比直接调通接口更重要:它决定了你能否向用户解释打出某个分数的原因,也决定了选型时该关注哪些指标。
这篇文章将 DolphinSOE 发音评测引擎 的完整流水线拆开,带你从一段音频开始,一路看到一组多维分数。
发音评测是什么?和语音识别有什么区别?
发音评测服务的本质,是把用户的一段语音输入,转换成一组可解释的发音评分输出。
它通常会完成四件事:
- 接收音频和参考文本
- 识别用户实际读了什么
- 将识别结果与目标文本逐词、逐音素对齐
- 输出评分结果
发音评测和语音识别,两者最大的区别在于目标不同:
| 对比维度 | 语音识别 | 发音评测 |
|---|---|---|
| 核心目标 | 把用户说的话转成文字 | 与参考文本相比,判断用户说得是否标准、完整、流畅,并给出评分 |
| 主要输入 | 音频 | 音频 + 参考文本 |
| 主要输出 | 文本(语音识别结果) | 文本 + 评分 + 错误位置 |
| 评分结果 | 无 | 多维度、细粒度评分 |
| 典型场景 | 会议纪要、电话客服 | 语言学习、口语考试 |
| 示例 | 把一段语音转写成文本 "good morning" | 不仅识别出 "good morning",还会继续输出:总分是多少;"good" 和 "morning" 各自得分如何;哪个音节得分低;哪个音素发音偏差最大;是否有漏读、多读、错读 |
简单来说,语音识别关注「你说了什么」,而发音评测更关注「你说得怎么样」。如果你想进一步了解不同题型下的输入输出字段差异,可以参考题型文档。
一次评测请求会经历哪些步骤?
发音评测 API 接收用户的朗读音频和参考文本,自动给出多维度的发音评分与纠错反馈。以英语句子评测为例,一次典型请求可以抽象成四个阶段:
- 采集(Capture):客户端以 16 kHz 采样率录制用户音频(如 mp3 / wav),连同参考文本一起提交给服务端。
- 识别与对齐(Recognition & Alignment):声学模型将波形转成文字,并与参考文本逐词、逐音素对齐。
- 多维度打分(Scoring):对齐结果进入评分和检错模块,分析判断错误类型,产出总分和各项维度分。
- 反馈(Feedback):结构化 JSON 返回客户端,客户端据此渲染分数、波形高亮与纠错提示。
一次评测请求的处理流程发音评测引擎在底层是如何实现的?
要理解分数从哪来,需要先看「识别」这一步的演进。
传统方案用 GMM-HMM 混合架构:先用高斯混合模型(GMM)当声学模型得到音素,再经发音词典把音素拼成单词,最后用语言模型修正成句子,然后拿识别句和目标句比对去算准确率和流畅度。这种级联结构每一步各管各的、各自优化,拼起来很难保证全局最优,而且错误会在模块之间一路累积。
而 DolphinSOE 引擎采用更先进的端到端深度学习路线:输入原始音频,输出评测结果,中间的神经网络自成一体,用单一目标函数统一优化。具体的声学模型是一个双头 LSTM(dual-head LSTM):
- 特征提取:对音频做预加重、分帧、加窗、短时傅里叶变换(STFT)、mel 滤波、去均值,得到 fbank 特征。
- 双头 LSTM 声学模型:多层 LSTM 以 fbank 特征为输入,其后接两个输出分支,采用多任务学习——一个分支预测文本,另一个分支预测音素。两条分支共享同一份 LSTM 表征,在一次前向计算中同时产出文本与音素对齐。文本分支通常借助 CTC 完成音频帧与字符序列的对齐,经束解码(beam search)得到候选词序列;音素分支则逐帧给出音素级对齐。
- 解码与融合:文本分支的候选结合语言模型修正,输出完整识别结果
hypothesis;音素分支的结果直接用于音素级打分。二者同源、同步产出,这正是 API 能在一个返回里同时给出文本结果hypothesis和细粒度音素结果phonemes的原因。
对于开发者来说,这种架构的意义在于:不仅能拿到最终分数,还能获得更细粒度的结果,用于可视化和纠错反馈。
评测结果包含哪些维度?
评测结果是多维度的,覆盖音素、语调、流利度、断句、完整度等。但不同语种、不同题型的评测维度并不一样——这跟语言本身的特性以及题型的设计有关。以 DolphinSOE 的英文题型为例,最常被关注的几个维度是:
| 维度 | 字段 | 含义 |
|---|---|---|
| 总分 | overall / score | 综合得分 |
| 准确度 | accuracy | 每个单词发音与目标词的接近程度 |
| 流利度 | fluency | 根据停顿情况、语速等指标综合判定 |
| 完整度 | integrity | 是否读全、有无漏读多读 |
| 韵律 | rhythm | 韵律得分,根据重音、语调等指标综合判定 |
此外,在对齐完成之后,引擎会给参考文本里的每一个词打上一个 type 标签,标明它在用户这次发音里属于哪种情况。多读、漏读、错读,正是从这里被识别出来的:
| type 取值 | 含义 | 解读 |
|---|---|---|
| normal | 正常 | 与目标一致,正常计分 |
| insert | 多读 | 目标里没有、用户多说的内容 |
| repeat | 重复读 | 同一内容被重复朗读 |
| delete | 漏读 | 目标里有、用户没读到的内容 |
| replace | 错读 | 读音与目标不一致(如把 "three" 读成 "tree") |
| oov | 集外词 | 该词不在系统词库中,且无法自动预测读音,无法对该词评分 |
如果你在做产品设计,这些字段决定了你能否把「评分结果」真正转化为「可理解的学习反馈」。如果想看这些维度在用户界面上如何呈现,可以参考我们的体验页面。
真实的返回示例
下面是一段真实的英文单词题型返回(参考文本为 "good morning"),已经过精简。可以清楚看到分数如何从总分一路下钻到音素:
{ "overall": 98.86, "accuracy": 92.73, "refText": "good morning", "hypothesis": "good morning", "wordInfo": [ { "refText": "good", "hypothesis": "good", "type": "normal", "score": 96.04, "accuracy": 97.71, "syllables": [ { "syllable": "g_uh_d", "score": 97.71, "phonemes": [ { "phoneme": "g", "score": 94.93, "startTime": 340, "endTime": 500 }, { "phoneme": "uh", "score": 99.58, "startTime": 500, "endTime": 570 }, { "phoneme": "d", "score": 99.54, "startTime": 570, "endTime": 640 } ] } ] }, { "refText": "morning", "type": "normal", "score": 99.41, "accuracy": 99.29, "syllables": [ { "syllable": "m_ao_r", "score": 99.26, "phonemes": [ { "phoneme": "m", "score": 98.77, "startTime": 640, "endTime": 700 }, { "phoneme": "ao", "score": 99.75, "startTime": 700, "endTime": 830 }, { "phoneme": "ao", "score": 99.75, "startTime": 830, "endTime": 920 } ] }, { "syllable": "n_ih_ng", "score": 99.30, "phonemes": [ { "phoneme": "n", "score": 98.06, "startTime": 920, "endTime": 1010 }, { "phoneme": "ih", "score": 99.99, "startTime": 1010, "endTime": 1140 }, { "phoneme": "ng", "score": 99.86, "startTime": 1140, "endTime": 1420 } ] } ] } ] }
注意这里的层级关系:overall / accuracy 在最外层 → 每个 wordInfo 有单词总分 score 和 accuracy → 再下钻到 syllables(音节)→ 最小单位音素 phonemes。
返回结果的层级:总分 → 单词 → 音节 → 音素这种「总分 → 单词 → 音节 → 音素」的层级,构成了 DolphinSOE 多级细粒度反馈的核心。
关于英文单词题型更详细的参数字段,请参考接口文档。
评分范围和宽松度可以调整吗?
引擎提供一组可调参数,用于适配不同用户场景:
scale:分制(1–100),统一输出区间。looseness:宽松度(0–9),数值越大越宽容。ratio:调节系数(0.8–1.5),用来微调整体得分。precision:打分精度。
比如练习场景可以把 looseness 调高,让用户更愿意开口说;严肃的考试场景则收紧,使评分更严格。
关于参数的配置可进一步参考接口文档;如果你希望结合具体场景讨论调优策略,也欢迎联系我们获取支持。
从开发者视角,一次调用到底发生了什么?
把上面的环节串联起来,一次典型的 API 调用是这样的:
- 客户端使用 SDK 录制音频,附带语种、题型、参考文本等题型参数。
- 服务端先做静音切除(VAD),再做特征提取(fbank)。
- 声学模型一次前向同时产出文本与音素对齐,语言模型对文本分支做修正。
- 评分模块产出各维度评分。
- 结构化 JSON 返回客户端,前端渲染分数与高亮显示结果。
如果你已经进入选型或 PoC 阶段,比较高效的方式通常是:先通过体验页面感受效果,再对照接口文档完成技术验证。
结语
两个关键点
选型与产品设计时,重点看两件事:主要评分维度是否覆盖你的场景,多级细粒度反馈能否支撑你要的学习体验。
发音评测 API 的「魔法」,本质是一条从音频到多维分数的智能流水线:采集 → 识别对齐(端到端深度学习)→ 多维度打分 → 反馈。
DolphinSOE 发音评测已经在日本市场稳定运行,目前日均调用量约 10 万次(100k calls/day),客户覆盖外语学习 App、学校、课外班等各类教育机构。这证明了 DolphinSOE 的服务能力已经过真实高并发、教学级场景的持续验证,稳定性和时延都足以支撑正式上线产品。
除了英语发音评测外,DolphinSOE 也提供日语发音评测产品,覆盖单词、句子、段落等基础题型,能够适配日语教育的学习与评测需求。
如果你希望进一步了解接入方式、返回格式和题型支持,请查阅接口文档;如需获取报价、方案建议或商务沟通,欢迎联系我们。
亲自试试发音评测效果
在体验页面朗读一句话,看看总分、单词、音素层级的分数如何即时返回。
发音评测产品界面示例分享文章
继续阅读

OpenAI Whisper API vs DolphinVoice API:企业级语音识别成本与能力全景对比
从技术架构、实时与离线 API 定价、全包 TCO、热词、语者分离、文本后处理到生产环境验证,系统对比 OpenAI Whisper API 与 DolphinVoice API。

“实时”不一定真实时:纯流式与伪流式语音识别 API 的区别
同样叫“实时语音识别 API”,文本可能在说话过程中逐步出现,也可能等整句话结束才返回。本文用返回时机、连接方式和中间结果拆解纯流式与伪流式的真正区别。

DolphinVoice 是什么?
DolphinVoice 专注日本市场,以语音识别与发音评测为核心,为日本企业、教育机构与多语言服务场景提供 API、SaaS 和智能设备服务。