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 自定义语音

认知服务 - 自定义语音 C++

吾剑未尝不利,国内Azure平替,科大讯飞人工智能免费AI语音合成(TTS)服务Python3.10接入

基于 Azure 的认知服务将文本合成语音

为自定义语言设计 TTS(文本到语音)系统的工具包?

Azure/Microsoft 认知服务自定义视觉 - 啥是对象检测模型输出张量规范?