Azure文本转语音未使用自定义创建的词典问题求助
确认资源匹配性
检查创建词典时选择的语音资源,和调用文本转语音API时使用的必须是同一订阅、同一区域的资源,跨资源的词典无法被加载。同时调用时必须指定完全匹配的词典名称(大小写敏感),不管是REST API的参数还是SDK配置里的名称,都要和门户创建的一致。验证词典格式与内容
手动核对词典条目:比如"BTW"的别名条目需符合{"Word":"BTW","DisplayText":"By the Way"}格式;音素条目要严格遵循目标语言的规范(如英语用IPA或SAPI音素),不能有格式错误。可以用JSON校验工具检查整个词典的JSON结构是否合法,避免引号不配对、逗号遗漏这类低级错误导致词典无法解析。检查API调用配置
如果用REST API,请求头需设置Content-Type: application/ssml+xml,且SSML中要正确引用词典:<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US"> <voice name="en-US-JennyNeural"> <lexicon uri="https://<你的资源区域>.tts.speech.microsoft.com/cognitiveservices/v1/lexicon/<词典名称>"/> BTW, this is a test. </voice> </speak>如果用SDK(以Python为例),要确保配置中添加了词典:
speech_config = speechsdk.SpeechConfig(subscription="你的资源密钥", region="资源区域") speech_config.set_speech_synthesis_lexicon("词典名称")用门户工具做基础测试
直接在Azure门户的文本转语音测试工具中,选择关联了词典的语音资源,输入包含词典条目的文本测试。如果门户测试也不生效,说明词典本身或资源关联有问题;如果门户生效,问题则出在你自己的调用代码或配置上。排查资源权限与状态
确认语音资源处于正常运行状态,没有被暂停或限流。同时调用API使用的密钥必须是该资源的有效密钥,过期或错误的密钥会导致无法加载自定义词典这类资源。尝试重新创建词典
若以上步骤都排查无误,可删除现有词典,重新创建一个极简测试条目(比如"TEST"映射到"Test Example"),创建后立即关联测试,排除可能的缓存或创建过程中的异常。
内容的提问来源于stack exchange,提问作者hendrik

