Azure 认知服务 TTS 自定义语音终结点测试
Posted
技术标签:
【中文标题】Azure 认知服务 TTS 自定义语音终结点测试【英文标题】:Azure Cognitive Service TTS Custom Voice endpoint testing 【发布时间】:2019-09-01 12:14:53 【问题描述】:我有一个运行良好的 node.js TTS Azure 认知服务。 (https://github.com/jishi/node-sonos-http-api)。我能够在 EASTUS 中使用神经语音,一切都很好。
我刚刚完成了创建自定义语音的过程。门户显示自定义语音模型和端点均已成功部署。我可以使用检查端点测试,并且在门户中,它像我的自定义语音一样说话。
但是当我修改 node.js 代码(使用新的 BASEURL 和 URI 和语音)时,我收到 400 个错误。
所以回到基础。我使用 PowerShell 只是为了尝试查看 EndPoint 是否正常工作。
当我执行以下操作来测试常规声音时...
$FetchTokenHeader = @
'Content-type'='application/x-www-form-urlencoded';
'Content-Length'= '0';
'Ocp-Apim-Subscription-Key' = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
$OAuthToken = Invoke-RestMethod -Method POST -Uri https://eastus.api.cognitive.microsoft.com/sts/v1.0/issuetoken -Headers $FetchTokenHeader
# show the token received
$OAuthToken
$headers = @'Authorization'='Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
Invoke-RestMethod -Method GET -Uri https://eastus.tts.speech.microsoft.com/cognitiveservices/voices/list -Headers $headers
效果很好。我看到了所有可用声音的列表。
当我换成
Invoke-RestMethod -Method GET -Uri https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -Headers $headers
要检查我的声音是否可用 (https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/rest-text-to-speech#custom-voices),我得到远程服务器返回错误:(404) 未找到。但在自定义语音门户中,在部署下,端点已部署。订阅密钥是相同的(都在适用于常规声音的同一订阅下)。数据中心 EASTUS 也是如此。
关于自定义语音端点可能无法正常工作的任何建议?谢谢!
【问题讨论】:
【参考方案1】:我认为这个端点:
https://eastus.voice.speech.microsoft.com/cognitiveservices/v1?deploymentId=deploymentId
可用,因为它非常适合我,而我使用 POST 方法通过此处提供的 C# 代码通过此端点获取音频文件:
确实,如果你使用GET方法调用这个端点,你会得到404码。这意味着GET方法没有资源,但你应该使用POST方法调用它。
【讨论】:
以上是关于Azure 认知服务 TTS 自定义语音终结点测试的主要内容,如果未能解决你的问题,请参考以下文章
Azure 认知服务 - 使用 python 和 websockets 自定义语音