如何在谷歌文本转语音中使用拼音或音素发音?

问题描述 投票:0回答:3

我已经尝试了一段时间让语音或音素发音与 google 的文本到语音一起使用,但未能使其始终如一地执行。

我通过使用 https://tophonetics.com/ 获得了有限的结果 它翻译为“牛疯了”。到“ðə kaʊ wɛnt mæd”。但“the”“ðə” 听不见。当我尝试“ðɪs ɪz səm fəˈnɛtɪk tɛkst ˈɪnˌpʊt”时。

是否有任何 SSML 代码来定义文本的语音块, 可以是这种格式“D,Is Iz sVm f@n'EtIk t'Ekst 'InpUt” 可以代替“ðɪs ɪz səm fəˈnɛtɪk tɛkst ˈɪnˌpʊt” ”

text-to-speech google-text-to-speech
3个回答
5
投票

Google 文本转语音至少从 2021 年春季开始支持

<phoneme>
标签。

但是,还有很多潜在的问题需要克服:

  • 演示页面在客户端到达 API 之前过滤掉客户端上的
    <phoneme>
    标签。 (它与
    <voice>
    标签的作用相同,如这里所指出的)
  • 与 Microsoft Azure 文本转语音(有关详细信息,请参阅其他答案)一样,每种语言仅支持可以使用的有限的一组音素(“字母”)。
  • 如果您使用不受支持的标签,则音素标签将被完全忽略,且不会发出任何警告。因此,官方示例
    <phoneme alphabet="ipa" ph="ˌmænɪˈtoʊbə">manitoba</phoneme>
    不适用于除
    en-US
    之外的任何英语变体,因为所有其他版本都缺少
    "o"
    "oʊ"
    音素。
  • 目前还不清楚您是否需要使用
    v1beta1
    API(我可以确认它正在工作)或者版本
    v1
    是否也可以。

2
投票

SSML 标签

<phoneme>
可以满足您的目的。

不幸的是,Google Cloud 文本转语音目前不支持。 文档中列出了 Google Cloud 的可用 SSML 标签子集。

<phoneme>
标签不在此列表中。使用 Google Cloud 的文本转语音演示进行的实验证实音素被忽略。标签的内容被作为普通文本读取,正如@Trevor 在评论中所评论的那样。

但是,Microsoft Azure 文本转语音和 Amazon Polly 支持

<phoneme>
标签。在这两种情况下,可用的音素仅限于正在使用的语言中可用的音素(请参阅此处了解 Azure此处了解 Polly)。 Azure 文档并未 100% 明确排除语言外音素,但使用 Azure 文本转语音演示 进行的实际实验证实它们无法正常工作。在某些情况下,它们至少似乎被所用语言中最接近的可用等效项所取代。

仅限于一种语言的音素严重限制了音素标签的实用性。例如,您无法使用该功能在第二语言中嵌入正确发音的内容,因为第二语言通常具有一些第一语言中不可用的音素。具体语言对中,每种语言都有一些另一种语言中没有的音素,包括英语/德语、西班牙语/德语、英语/西班牙语。


0
投票

日语特别确认。谷歌示例代码是错误的。

应该是:

<phoneme alphabet="yomigana" ph"^はし">端</phoneme>
<phoneme alphabet="yomigana" ph="^は!し">箸</phoneme>
<phoneme alphabet="yomigana" ph="^はし!">橋</phoneme>

现在文档(参考:https://cloud.google.com/text-to-speech/docs/phonemes#japanese_yomigana):

<phoneme alphabet="yomigana" phoneme="^はし">端</phoneme>
<phoneme alphabet="yomigana" phoneme="^は!し">箸</phoneme>
<phoneme alphabet="yomigana" phoneme="^はし!">橋</phoneme>
© www.soinside.com 2019 - 2024. All rights reserved.