Azure文本到语音服务返回401未经授权



我正在尝试使用Azure Cognitive Services text-to-speech API,但无论我尝试什么,我都会得到401未经授权的响应。

我在西欧地区的订阅中创建了一个认知服务资源。类型为所有认知服务,状态为活动。我从下载了CSharp样本https://github.com/Azure-Samples/Cognitive-Speech-TTS并在代码中输入西欧URL和我的认知服务订阅密钥。当我运行样本时,访问令牌被检索得很好,但文本到语音的请求返回401。

令牌URL:https://westeurope.api.cognitive.microsoft.com/sts/v1.0/issueToken

服务URL:https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1

我已经检查了URL是否正确,我在两者中使用了相同的区域,并且使用了与创建的资源相同的区域。我浏览了故障排除页面(https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/troubleshooting)得到了同样的401问题。我试着运行Postman的TTS请求。我已经尝试了Azure门户中的Key1和Key2,并尝试重新生成密钥。我也尝试过在Azure函数中运行请求,无论是在本地还是在云中。

我已经解码了访问令牌,据我所知,它似乎有很多正确的东西。唯一奇怪的是,exp字段是一个字符串,而不是一个数字(对于JWT来说是不正确的(。可能是身份验证系统中的错误导致了这个错误,还是我做错了什么?

请求

POST https://westeurope.tts.speech.microsoft.com/cognitiveservices/v1 HTTP/1.1
Authorization: Bearer <access-token>
User-Agent: TestApi
X-Microsoft-OutputFormat: audio-16khz-64kbitrate-mono-mp3
Content-Type: application/ssml+xml
Host: westeurope.tts.speech.microsoft.com
Content-Length: 209
<speak version="1.0" xml:lang="fi-FI">
<voice name="Microsoft Server Speech Text to Speech Voice (fi-FI, HeidiRUS)" xml:lang="fi-FI">Hei, muistathan suorittaa päivän harjoitteet ajoissa.</voice>
</speak>

响应

HTTP/1.1 401 Unauthorized
X-MSEdge-Ref: Ref A: AD369D30DDB7466B8A77086554F9DC46 Ref B: HEL02EDGE0112 Ref C: 2018-12-10T13:03:43Z
Date: Mon, 10 Dec 2018 13:03:42 GMT
Content-Length: 0

要使用文本到语音服务,您必须拥有语音服务资源,而不是认知服务资源。

让这一点有点不清楚的是,文件中没有具体提及这一区别。认知服务资源将显示一个类型值All Cognitive Services,人们认为它也包含语音功能。当你专门创建一个语音服务资源时,它仍然被列为认知服务资源。

相关内容

  • 没有找到相关文章

最新更新