不同的 <prosody> ssml 值在 Google Text to Speech 中生成相同的音频
Posted
技术标签:
【中文标题】不同的 <prosody> ssml 值在 Google Text to Speech 中生成相同的音频【英文标题】:Different <prosody> ssml values generate the same audio in Google Text to Speech 【发布时间】:2019-09-18 23:01:37 【问题描述】:在使用 WaveNet 语音时使用 ssml 时无法生成不同的音频波。
<prosody rate="slow" pitch="-2st">Can you hear me now?</prosody>
<prosody rate="medium" pitch="1st">Can you hear me now?</prosody>
<prosody rate="high" pitch="5st">Can you hear me now?</prosody>
使用强调标签产生相同的结果。
我们正在使用来自 Google Cloud Text-to-Speech 的 Python API 来请求音频生成。
我想在每个样本中听到不同的声音强度。
请注意,我们也尝试对 " 进行缩放,但这对生成的音频没有影响。
https://issuetracker.google.com/issues/131618213
【问题讨论】:
如果您包含所有相关代码,而不是“仅”包含您认为可能失败的代码,则更容易为您提供帮助。 嗨擦,感谢您的关注。我们使用 TTS UI 对其进行测试,使用我们在 2019 年提供的韵律文本。我们的 Python 代码产生了与 TTS UI 相同的结果。 不幸的是管理层决定他们不喜欢声音的声音,所以我们解决了重新编码人类的问题。由于他们的问题可能会得到解决,因为我们不再允许对此进行研究,所以我们将项目存档。 【参考方案1】:我不知道 Python sdk 是什么样子,但我目前正在使用他们的 NodeJs sdk 进行 TTS。
看来,这些韵律属性(速率、音量、音高),而不是设置和传递您的 ssml 文本,应该直接在将发送到 Google TTS api 的请求对象中进行配置。
【讨论】:
【参考方案2】:使用TTS UI,您可以轻松测试不同的配置。
导出为 JSON 后,您还可以查看 API 调用的方式。
在这种情况下:
Request URL
https://texttospeech.googleapis.com/v1beta1/text:synthesize
Request body
"audioConfig":
"audioEncoding": "LINEAR16",
"pitch": 0,
"speakingRate": 1
,
"input":
"ssml": "<speak><prosody rate='70%'> The slings and arrows of outrageous fortune. Or to take arms against a sea of troubles And by opposing end them.</prosody> </speak>"
,
"voice":
"languageCode": "en-US",
"name": "en-US-Wavenet-G"
如果不查看您在 API 调用中使用的完整代码,就很难看出您可能遇到的问题。
【讨论】:
以上是关于不同的 <prosody> ssml 值在 Google Text to Speech 中生成相同的音频的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Google Cloud text-to-speech API 获取 SSML <mark> 时间戳