微软REST API文本转语音API请求PHP实例

微软REST API文本转语音API请求PHP实例

请求正文

如果您想使用神经网络来定制您的声音,那么您可以将纯文本(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请求实例

隐藏内容

本内容需权限查看
  • 注册用户: 不可购买
  • VIP会员: 免费
  • 永久会员: 免费

说明文件

上述代码中的:

<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
喜欢就支持一下吧
点赞7 分享