请求正文
如果您想使用神经网络来定制您的声音,那么您可以将纯文本(ASCII或UTF-8)作为请求正文发送。否则,每个POST请求的主体将以SSML的形式发送。通过使用SSML,您可以选择返回合成语音的声音和语言。如果您需要查看支持的声音列表,请参阅微软语音服务的语言和声音支持文档。
示例请求
使用SSML指定语音和语言的HTTP请求,如果正文长度较长且生成的音频超过10分钟,则会被截断为10分钟。换句话说,生成的音频长度不能超过10分钟。
POST /cognitiveservices/v1 HTTP/1.1
X-Microsoft-OutputFormat: riff-24khz-16bit-mono-pcm
Content-Type: application/ssml+xml
Host: westus.tts.speech.microsoft.com
Content-Length: <Length>
Authorization: Bearer [Base64 access_token]
User-Agent: <Your application name>
<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Male'
name='en-US-ChristopherNeural'>
Microsoft Speech Service Text-to-Speech API
</voice></speak>
对于 “Content-Length”,应使用你自己的内容长度。 大多数情况下,此值由系统自动计算。
PHP请求实例
说明文件
上述代码中的:
<speak version='1.0' xml:lang='zh-CN'><voice xml:lang='zh-CN' xml:gender='Female' name='{$this->voice}'>$text</voice></speak>
参考:
<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Male' name='{$this->voice}'>$text</voice></speak>
你可能注意到这里有两个 xml:lang 属性,分别出现在 speak 和 voice 元素上。它们的含义略有不同:
- 在 speak 元素上的 xml:lang 属性指定了 SSML 文本的语言,这里是英语。
- 在 voice 元素上的 xml:lang 属性指定了声音的语言,即此处使用英语语音合成。
因此,这里出现了两个 en-US 的值。如果要将文本转换为其他语言、性别或名称的声音,则需要相应修改 voice 元素的属性。
演示中 $voice 属性设置为 “zh-CN-XiaochenNeural“,同时将 SSML 中的 xml:gender 属性和文本内容相应地更改为“Female”和中文文本即可。注意,还需要传入有效的 access token 才能调用该接口。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END