理解音标符号
IBM Watson® Text to Speech 服务的所有语言和声音都支持标准国际音标 (IPA) 和 IBM 符号音标表示法 (SPR) 表示法来表示词的声音。 两种注音法都提供了表示单词发音、单词构成音节、音节划分以及重音的音标。 受支持语言的音标符号 提供了指向用于记录每种语言的音标符号的主题的链接。
定义词的发音
要在输入文本或自定义模型中定义单词的语音发音,可以使用语音合成标记语言(SSML)中的 <phoneme>
元素或等效的方法参数。 <phoneme>
元素有两个属性:
alphabet
属性指定发音的表示法。 使用ibm
值可指示发音是以 SPR 定义的。 使用ipa
值可指示发音是以 IPA 定义的。ph
属性定义发音。 此属性包含给定语言允许的音标符号的序列。 这些符号定义了<phoneme>
元素中包含的单词的读音。
定义发音时,请遵循以下规则:
- 仅使用记录的 SPR 或 IPA 音标符号。 服务会将包含语言中不允许使用的音标符号的任何定义视为无效。 不符合必需规范的 SPR 或 IPA 条目是无效的。
- 如果针对一个 SPR 音标符号列出了多个 IPA 音标符号(或音标符号组合),那么所有这些 IPA 音标符号都等效于这个 SPR 音标符号。 服务会将所有这些 IPA 音标符号都视为相同,不会表现出 IPA 想要描述的细微差异或区域性差异。
有关更多信息,请参阅
使用 IBM SPR
IBM SPR 是标准 IPA 的替代表示法。 以下有效SPR标记的示例定义了美式英语中 through 和 shocking 这两个词:
<phoneme alphabet="ibm" ph=".1Tru">through</phoneme>
<phoneme alphabet="ibm" ph=".1Sa.0kIG">shocking</phoneme>
在定义中,这些字母表示美国英语语音的特定读音。 .
表示新音节的开始,数字 1
和 0
表示音节重音。 有关更多信息,请参阅指定音节。
语音发音符号
每种语言都使用自己的 SPR 音标符号清单来表示该语言的语音发音。 以下规则适用于指定 SPR 音标符号:
- 字母是区分大小写的,例如
e
和E
表示两个不同的发音。 - 在符号表中指示时,必须用单引号将两个和三个字符的符号括起来。 单引号指示多个字符实际上是单个符号。 例如,德语单词heim 中的符号
'aj'
被指定为"h'aj'm"
。 - 某些三字符符号仅包含两个字符的单引号。 单引号指示这两个字符是单个符号。 所以 SPR 由两个符号组成。 例如,荷兰语单词 dependances 中的符号
'a:'n
包含两个符号'a:'
和n
,并指定为d'e:'.pEn.1d'a:'n.s@s
。
此外,以 SPR 格式定义词的发音时,请考虑以下因素:
- 每种语言的发音都具有该语言的特定分布模式。 例如,在英语的所有方言中,
G
sing* (*) 中的".1sIG"
音不会出现在单词开头。 其他分布特别窄的美国英语声音是声门 (?
),襟翼 (F
) 和音节鼻 (N
)。如果在通常不会出现的上下文中输入声音符号,那么生成的语音可能听起来不自然。 - 服务会将一组复杂的语言规则应用于其输入,以反映读音在自然语言的特定上下文中的变化过程。 例如,在美式英语中,单词 write (
".1r1Yt"
) 的声音t
在 writer (".1rY.0FR"
) 中发音为襟翼 (F
)。SPR 输入会像普通输入文本一样经历这些修改。 在此示例中,输入".1rY.0tR"
或".1rY.0FR"
不会影响生成的语音。
使用 IPA
可以使用音标符号或 Unicode 值来定义 IPA 发音。 IPA 是一种行业标准表示法。 下面是单词 tomato 以音标符号和 Unicode 表示的有效 IPA 表示法的示例:
<phoneme alphabet="ipa" ph="təˈmeɪ.ɾoʊ">tomato</phoneme>
<phoneme alphabet="ipa" ph="təˈmeɪ.ɾoʊ">tomato</phoneme>
指定音节
在 SPR 和 IPA 中都可以指定音节边界和重音。
音节边界
您可以使用 .
(句点,IPA Unicode 002E
) 来标记 SPR 或 IPA 中每个音节的开头。 但是,为了保留语言的有效音标,在某些情况下(例如,如果音节边界的放置位置对于某种语言是不合法或不自然的位置),服务可以选择不采用句点。 一般来说,如果您能指出某个音节边界或单词发音的其他方面,该服务会满足您的要求。
音节重音
表 1 标识可用于指示发音的音节压力的符号。IBM 建议您指示 SPR 或 IPA 中发音的主要压力。 而在这两种格式中标明音节重音不是必需的;如果未标明,服务会确定音节重音出现的位置。
重音 | SPR 音标符号 | IPA 音标符号 | IPA Unicode |
---|---|---|---|
主重音 | 1 |
ˈ |
02C8 |
次重音 | 2 |
ˌ |
02CC |
无重音 | 0 |
无音标符号 | 无值 |
必须将音节重音标记放在音节边界内,但必须始终位于音节元音的左侧。 可以将标记放置在重读元音左侧的任何位置。 例如,以下SPR示例中的每个示例都将主要重音(1
)放在单词结构中的正确元音上:
<phoneme alphabet="ibm" ph="kXn1strHkSXn">construction</phoneme>
<phoneme alphabet="ibm" ph="kXns1trHkSXn">construction</phoneme>
<phoneme alphabet="ibm" ph="kXnst1rHkSXn">construction</phoneme>
<phoneme alphabet="ibm" ph="kXnstr1HkSXn">construction</phoneme>
特定于语言的音节重音使用规则
表 2 列出了适用于指定音节重音的特定于语言的注意事项。 如果该表不符合某种语言的规则,您可以使用先前部分中描述的音节重音符号。
语言 | 表示法 | 特定于语言的规则 |
---|---|---|
法语和 加拿大法语 |
SPR | 支持所有音节重音符号。 但音节重音必须紧挨在音节的元音之前。 法语的音节重音比其他语言严格得多。 如果将重音符号放在无效位置,那么会发生错误。 |
法语和 加拿大法语 |
IPA | 所有音节重音符号都会被忽略。 |
意大利语 | SPR 和 IPA | 只能指定 1 (主重音)。 如果指定次重音或未指定重音,那么会发生错误。 |
日语 | SPR 和 IPA | 只能指定 1 (主重音)和 0 (无重音)。 如果指定次重音,那么会发生错误。 |
西班牙语 | SPR 和 IPA | 只能指定 1 (主重音)。 如果指定次重音或未指定重音,那么会发生错误。 |
受支持语言的音标符号
表 3 列出了服务支持的语言,并提供了指向描述其 SPR 符号,IPA 符号和 IPA Unicode 值的主题的链接。 这些话题以语言中的单词举例说明了每个符号。 由于方言差异,示例可能并不总是与您的发音相匹配。
可用性列显示每个语音是否可用于 IBM Cloud,IBM Cloud Pak for Data或全部(所有版本)。IBM Software Hub 或全部 (所有版本 )。 如需了解所支持语音的更多信息,请参阅 语言和语音。
语言 | 可用性 |
---|---|
荷兰语(荷兰语)符号 | 所有版本 |
英语(澳大利亚)符号 | 所有版本 |
英语(英国)音标符号 | 所有版本 |
英语(美国)音标符号 | 所有版本 |
法语(加拿大)符号 | 所有版本 |
法语(法国)符号 | 所有版本 |
德语音标符号 | 所有版本 |
意大利语音标符号 | 所有版本 |
日语音标符号 | 所有版本 |
韩语音标符号 | 所有版本 |
葡萄牙语(巴西)符号 | 所有版本 |
西班牙语音标符号 | 所有版本 |