我需要在 c# 桌面批处理命令行中使用 azure 的神经 tts 服务将几个文本文件消息转换为 wav 文件。
消息通常很短,但文本文件很多。
这里是关于限制的数据:
(文本到语音的配额和每个语音资源的限制) https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/speech-services-quotas-and-limits#text-to-speech-quotas-and-limits-per-speech-resource
在这种情况下没有多线程或异步请求。
因为我的应用程序批量转换 wav 中的文本不清楚什么时候发生 超过每分钟 20 个请求。
会出现运行时错误吗?我需要在我的代码中手动管理延迟吗?
谢谢!
答案 0 :(得分:1)
当您超过每分钟请求的限制时,您将收到对每个请求的响应 429。你可以处理这个响应。
您可以根据上述响应延迟并重试请求。
答案 1 :(得分:1)
您还可以查看语音命令行工具。
https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/spx-basics
spx 合成 --files .txt;.ssml --audio output {id}.wav
这应该允许您在一个连接上处理多个文件,而不是为每个文件启动和停止引擎。
您也可以尝试修改您的批处理脚本代码,以重用一个连接,而不是在创建新引擎对象和新连接到 servicw 之间进行睡眠,以保持在 20 QPS 限制以下...< /p>