如何启用2021年3月1日发布的Google文字转语音beta<voice>标签功能
Google文字转语音SSML
<voice>标签beta功能接入问题 背景
- 2021年3月1日,Google文字转语音发布了多项beta功能,其中包含对带
name或lang属性的SSML<voice>标签的支持,可实现单段音频内的多语音、多语言切换播报。 - 目前找不到这批beta功能的公开接入指引,不清楚功能开放的调用渠道。
- 观察到TTS产品主页的演示功能使用了
v1beta1接口,但并不支持<voice>标签,提交的SSML内容会在发起请求前被直接剔除<voice>相关片段。
举个实际提交的SSML示例:
<speak> Blah Blah English Text. <voice name="ko-KR-Wavenet-D"> Blah Blah Korean Text.</voice> <break time="400ms" /> Blah Blah English Text. </speak>
演示接口实际发出的JSON请求体完全丢失了voice标签对应的内容:
{ "audioConfig": { "audioEncoding": "LINEAR16", "pitch": 0, "speakingRate": 1 }, "input": { "ssml": "<speak> Blah Blah English Text. Blah Blah Korean Text. <break time=\"400ms\" /> Blah Blah English Text. </speak>" }, "voice": { "languageCode": "en-US", "name": "en-US-Wavenet-D" } }
已尝试的操作
- 此前基于Google文字转语音API、通过CSV cue sheet生成音频的脚本,一直调用正式发布版接口;将接口切换为
v1beta1后脚本可正常运行,但<voice>标签依旧无法生效。 - 项目使用的npm包软链接指向官方Node.js文字转语音SDK的master分支,未使用固定版本的发布包。
- 日常脚本中引入SDK、初始化正式版客户端的代码如下:
// 引入SDK const textToSpeech = require('@google-cloud/text-to-speech'); // 初始化正式版客户端 const client = new textToSpeech.TextToSpeechClient(); - 为了接入3月1日发布的beta功能,尝试改用beta版客户端初始化方式:
但切换客户端后,const client = new textToSpeech.v1beta1.TextToSpeechClient();<voice>标签依然无法正常生效。
核心疑问
如何正确访问并启用2021年3月1日发布的Google文字转语音beta功能,特别是支持属性配置的SSML <voice>标签?
内容的提问来源于stack exchange,提问作者DubiousDesigns
相关产品推荐
相关产品推荐

