Azure 发音评估能给固定朗读稿提供发音准确度、流畅度和完整度等反馈。它不是人的口音价值判断,也不等于考试成绩。下面让同一句短录音进入音素级评估,并读取词级结果定位问题;未调用付费服务,未产生真实评分。
先固定语言与朗读稿
示例稿为“The blue cup is on the table.”,录为 own_reading.wav,避免背景音乐与自动降噪造成断字。选择服务当前支持的评估 locale,如 en-US;不同 locale、脚本式与自由表达评估的能力并不完全相同,韵律功能也需单独查支持范围。此例只做固定文字稿评估。

把音素粒度配置应用到识别器
import os, json
import azure.cognitiveservices.speech as s
config = s.SpeechConfig(subscription=os.environ["AZURE_SPEECH_KEY"],
region=os.environ["AZURE_SPEECH_REGION"])
config.speech_recognition_language = "en-US"
audio = s.audio.AudioConfig(filename="own_reading.wav")
r = s.SpeechRecognizer(speech_config=config, audio_config=audio)
p = s.PronunciationAssessmentConfig(
reference_text="The blue cup is on the table.",
grading_system=s.PronunciationAssessmentGradingSystem.HundredMark,
granularity=s.PronunciationAssessmentGranularity.Phoneme,
enable_miscue=True)
p.apply_to(r)
result = r.recognize_once()
if result.reason != s.ResultReason.RecognizedSpeech:
raise RuntimeError(str(result.reason))
raw = result.properties.get(s.PropertyId.SpeechServiceResponse_JsonResult)
print(json.dumps(json.loads(raw), ensure_ascii=False, indent=2))
先安装官方 Speech SDK,在本地环境设置自己的资源配置,不把密钥写入稿件或输出。一次识别适合短句;长录音应查看连续评估的限制,不能认为一句代码会覆盖任意长度。
从分数回到具体词与音素
AccuracyScore 反映发音匹配程度,FluencyScore 与停顿模式相关,CompletenessScore 对照朗读稿覆盖情况。先看是否漏词,再听分数较低的词和音素,不把总分用于推测性格或英语整体能力。分数是模型反馈,录音质量、语言变体和参考稿错误都会影响结果。
做一次条件可比的复读
保留原稿和原录音,只重新录制被标出的一个短句,保持设备、距离和语言配置一致。人工确认音确实有变化,再观察反馈趋势;不承诺练一次分数必然提高。取消或无匹配时先查鉴权、区域和音频格式,返回错误不等于零分。正式使用前核对当前区域支持及账户计费规则。
参考资料
依据 2026-10-03 读取的官方资料整理:官方文档 1。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33095.html