IBM Cloud Docs
了解定制

了解定制

使用 IBM Watson® Text to Speech 合成文本时,该服务会应用与语言相关的发音规则。 服务通过应用规则,将每个词的普通(正字法)拼读转换为音标拼读。 词的音标拼读使用音位符号来定义词的发音方式。 这些符号是不同的声音单位,用于区分语言中的各个词、音节之间的边界和音节的重音标记。

服务的常规发音规则对于普通词非常适用。 但是,对于异常词,这些规则生成的结果可能并不理想。 此类词包括特定于领域的词、外来词、人名或地名,以及缩写或首字母缩略词。 如果应用程序的词汇中包含此类词,那么可以使用定制接口来指定服务如何对这些词发音。

定制模型还可以包含您为“按示例调整”功能定义的定制提示。 有关 Tune by Example,定制提示和说话者模型的更多信息,请参阅 Understanding Tune by Example

状态和支持

以下状态和支持信息适用于自定义:

  • 定制可用于所有语言。
  • IBM Cloud 您必须具有 Standard 或 Premium 定价套餐才能使用定制。 轻量套餐的用户无法使用定制接口。 有关更多信息,请参阅 IBM Cloud® 目录中的 Text to Speech 服务。
  • IBM CloudPremium 客户可与IBM合作,针对其特定应用需求训练新的自定义语音。 如需定制语音或了解更多信息,请填写并提交 IBM Request Form

定制工作方式

通过 Text to Speech 服务的定制接口,可为特定语言创建词及其转换项的字典。 此字典称为定制模型。 定制模型中的每个定制条目都包含一个/转换项对。 词的转换项会指示服务在输入文本中出现该词时如何发音。

定制接口提供了多种方法,用于创建和管理由服务永久存储的定制模型。 创建定制模型后,可以在使用任何版本的 /v1/synthesize 方法进行合成期间使用该模型。 服务合成输入文本时,对于出现在定制模型中的词,会通过直接或间接应用其转换项来确定这些词的发音。 由于您为特定语言创建了定制模型,因此定制模型可与该语言中可用的任何声音一起使用。

您可以将定制模型中词的转换项指定为近似读音转换项音标转换项。 可以将这两种方法用于同一定制模型中的条目,并且可以在同一转换项中混合使用这两种方法。 对于定制条目,有若干规则和准则适用。 有关更多信息,请参阅用于创建定制条目的规则

近似读音转换项

近似读音转换项使用服务的常规发音规则以间接方式表示目标词的发音。 近似读音转换项是通过一个或多个其他词的常规发音而构成的。 服务首先将输入文本中出现该词的地方全部替换为指定转换项。 然后,将其常规发音规则应用于转换项,再将转换项转换为其音标表示,从而获取发音。

例如,服务的常规发音规则可正确转换许多常见的缩写和首字母缩略词。 服务会将缩写 cm 发音为 centimeter。 对于不太常见的缩写,会逐个字母发音。 例如,服务将字符串 Strstreet 的缩写)发音为 S T R,即对每个字母分别发音。 可以使用近似读音方法为字符串 Str 指定转换项 street

首字母缩略词的另一个示例是词 IEEE,表示 Institute of Electrical and Electronic Engineers(电气电子工程师学会)。 缺省情况下,服务会将此首字母缩略词发音为 I E E E。 但首字母缩略词通常发音为 I 三元组 E,您可以使用简单的类似声音的翻译 I 三元组 E来轻松定义该首字母缩略词。 如果在定制模型中出现此翻译的单词 IEEE,那么服务会将该单词的每次出现都替换为该翻译。 然后,服务会将其常规发音规则应用于单独的词 ItripleE,以生成普通发音。

近似读音方法不仅仅可应用于缩写和首字母缩略词。 它也同样适用于复杂词或异常词。 例如,以下这对近似读音转换项会为异常词生成正确的发音,这些词若通过服务的常规发音规则处理,结果并不理想。 为此类词查找合适的转换项可能要比简单的缩写更困难。 以下示例使用常规发音规则来改变词的拼写以进行转换:

  • Word: ayurvedic翻译: aayervedic
  • Word: gastroenteritis翻译: gastro enteritis

正如这些示例所示,开发近似读音转换项更偏向于试错法,而不是公式化转换。 您根据自己的直觉和服务使用经验来创建候选转换项。 然后,根据候选转换项将词合成为输入文本,并听取生成的音频。 如果您对发音满意,那么可以在定制模型中使用该转换项;若不满意,可修改该转换项并再次对其进行测试。

音标转换项

近似读音方法是获得发音的相对简单且有用的方法。 但这种方法并不总是能开发出近似读音转换项。 直接替代方法,即音标方法,可能看起来更复杂、更耗时,但它可以获得任何词的发音。

音标转换项可根据音位符号、音节重音标记以及可选的音节边界来指定发音,这些将覆盖服务的常规发音规则。 指定下列其中一种格式的音标转换项:

  • 标准国际音标 (IPA) 表示法
  • 专有的 IBM 符号音标表示法 (SPR)

无论用哪种表示法,都可使用基于语音合成标记语言 (SSML) 的特定音位格式来指定转换项。 SSML 是一种基于 XML 的标记语言,为语音合成应用程序提供文本注释。 您可以使用 SSML "<phoneme> 元素指定一个单词的音译:

<phoneme alphabet="{ipa | ibm}" ph="{translation}"></phoneme>

alphabet 属性指定音标表示法类型:ipaibmph 属性指定音标转换项字符串。

例如,假设词为 trinitroglycerin。 服务的常规发音规则生成的发音与化学家和医生通常使用的发音不同。 正确的发音可以通过音标转换项来获得:

  • IPA: tɹaɪnˈaɪtɹəglɪsəɹɨn
  • SPRtrYn1YtrxglIsxrXn

在这些示例中,音标转换项字符串由音位符号和一个主重音标记组成。 主要重音符号在 IPA 中用“ˈ 表示,在 SPR 中用”1 表示。 对于这两种表示法,主重音标记都会紧挨在重读元音符号之前。 虽然这些示例并未在音标转换项中显示音节边界和次重音位置,但您也可以指定这两项。 这两个元素不是必需元素,并且通常不需要这些元素来获得发音。 与近似读音转换项一样,可以通过多个字符串来编写一个音标转换项,各字符串之间用空格定界。

您还可以将 IPA 转换项指定为 IPA Unicode 值。 有关更多信息,请参阅 了解音标符号 以及从 受支持语言的音标符号 引用的页面上特定于语言的表。 有关使用 IPA Unicode 值的示例转换项,请参阅 phoneme 元素

使用现有音标转换项

除非您是音韵学专家,否则编写音标转换项并不是件容易的任务。 编辑现有音标转换项总是要比从头开始编写更容易。 为了帮助您创建音标转换项,服务的 API 包含 GET /v1/pronunciation 方法。 此方法会返回由服务的常规发音规则为指定语言的词生成的 IPA 或 SPR 表示法。 您还可以请求指定定制模型中某个词的发音,以查看该模型语言中的转换项。

可以使用 /GET v/1/pronunciation 方法来获取词的初始音标转换项。 然后,可以修改转换项以获得所需的发音。 与近似读音方法一样,您遵循的也是试错过程。 您将候选转换项提交给服务,将词合成为输入文本,听取生成的音频,然后编辑该候选转换项。 您可以重复此过程,直到对发音满意为止。

有关更多信息,请参阅查询某种语言的词

有关音标转换项的更多信息

以下资源提供了有关音标转换项的信息:

  • 有关使用 SSML 及其 "<phoneme> 元素的更多信息,请参阅 了解 SSML
  • 有关指定 SPR 和 IPA 符号及翻译的更多信息,请参阅 了解音标

混合的近似读音和音标转换项

您可以在同一转换项中混合使用近似读音方法和音标方法。 此功能可以减少编写转换项所涉及的工作量。

例如,假定您使用近似读音方法获得某个词的发音,并对其中部分发音感到满意。 但现在需要对该词的其余元素进行微调。 您可以使用音标方法来指定词中不满意的方面。 以下示例将混合转换项应用于词 trinitroglycerin

try<phoneme alphabet="ipa" ph="nˈaɪtɹəglɪsəɹɨn"></phoneme>