Azure文本转语音:含书签的多语言SSML调用中文语音时触发内部服务器错误
Azure文本转语音:含标签的SSML调用粤语语音报内部服务器错误的解决方案
问题分析
调用Azure文本转语音服务时,使用包含<bookmark>标签的SSML指定粤语语音(如yue-CN-YunSongNeural)出现内部服务器错误,核心诱因大概率是SSML根元素语言属性与目标语音语言不匹配,同时可能存在标签嵌套逻辑的隐性冲突。
修复步骤
- 修正根元素语言属性:将
<speak>标签的xml:lang改为与目标语音一致的yue-CN,消除语言上下文的解析冲突。 - 校验标签嵌套合法性:确保
<bookmark>未被错误嵌套在部分语音不兼容的元素层级内(比如部分神经语音对<prosody>内的附加标签有严格解析要求)。
修正后的SSML示例
<speak xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="http://www.w3.org/2001/mstts" xmlns:emo="http://www.w3.org/2009/10/emotionml" version="1.0" xml:lang="yue-CN"> <voice name="yue-CN-YunSongNeural"> <prosody rate="0%" pitch="0%"> 试用唔同嘅语言同声音。改变语速同音调。你甚至可以调整SSML(语音合成标记语言),嚟控制文本唔同部分嘅声音效果。单击上面嘅 SSML 试用一下! <bookmark mark="pronounce_1" /> 请尽情使用文本转语音功能! </prosody> </voice> </speak>
额外排查建议
- 用简化SSML逐步测试:先移除
<prosody>标签,仅保留<voice>和<bookmark>验证基础功能,再逐步添加元素定位问题点。 - 确认语音的标签支持范围:虽然Azure神经语音普遍支持
<bookmark>,但可通过官方文档确认yue-CN-YunSongNeural的具体SSML兼容列表。
内容的提问来源于stack exchange,提问作者Jiasheng Foon
相关产品推荐
相关产品推荐

