IBM Cloud Docs
通过实例了解调音

通过实例了解调音

示例调音功能是测试版功能,仅支持美式英语自定义模型和语音。

通过示例调谐功能,您可以准确控制服务如何说出指定文本。 该功能可让您听写合成文本的语调、重音、节奏、快板、韵律和停顿。 语音的这些方面统称为prosody

您只需提供一段样本录音,按照您希望听到的方式说出文字,即可创建自定义提示,而服务会用语音复制录音的质量。 口语提示可以强调不同的音节或单词,引入停顿,并使合成音频听起来更自然,更适合使用提示的语境。

该功能提供了一种比标准 SSML 更简单的机制,用于修改语音合成的方式。 例如,使用 SSML <prosody> 元素的属性可能比较困难。 Tune by Example 不需要这样的 SSML,它让您按照自己的意愿录制文本,而不是要求您用 SSML 元素和属性来模拟预期的韵律。

您可以创建一个可选的说话者模型,其中包含说话者的声音信息,从而进一步提高提示音的质量。 您可以通过提供用户的声音样本来创建说话者模型。 该服务从样本音频中提取信息,对语音进行自我训练,从而帮助它为该说话者生成更高质量的提示。

有关示例调谐功能的概述,包括示例脚本演示,请参阅博客 "示例调谐":如何调整Watson Text to Speech获得更好的音调

状态和支持

以下状态和支持信息适用于 Tune by Example:

  • Tune by Example 是测试版功能,仅适用于美国英语。 您只能为语言为 en-US 的自定义模型添加提示。 您只能使用美式英语语音的自定义提示。
  • 自定义模型、自定义提示和扬声器模型由服务实例拥有,创建这些模型时使用的是服务凭据。 所有定制组件都支持请求记录和数据保密。 有关这些主题的更多信息,请参阅 自定义使用说明
  • IBM Cloud您必须拥有标准或高级定价计划才能使用示例调整。 该功能是自定义功能的一部分,仅限于这些计划。 有关详细信息,请参阅 IBM Cloud® Catalog 中的Text to Speech服务。

示例调音 "的工作原理

在测试应用程序的过程中,您可能会发现该服务无法充分合成文本的某些方面。 例如,在某些情况下,您可能想要更改音频的特定方面,如强调哪些单词、停顿的位置或持续时间。 在其他情况下,您可能想要改变合成的一些更微妙的方面。 例如,您可能觉得合成音频听起来像机器人的声音,不自然,或者音调不令人满意。 这些都是 Tune by Example 可以解决的问题。

要使用“示例调音”功能,您需要录制一位用户,让他按照您希望听到的服务声音来朗读您的文本。 然后,您可以将文字和音频以自定义提示的形式添加到自定义模型中。 该服务可从音频样本中学习文本的首选语调。 当您使用 SSML 扩展名 <ibm:prompt id="{prompt_id}"/> 将提示包含在语音合成请求中时,说出提示文本的语音就会模仿提示的发音。

您可以为录制口语提示的用户创建一个可选但推荐使用的说话者模型。 然后将说话者模型与该用户说出的提示相关联。 添加说话者模型可以明显改善合成提示音的质量。 例如,如果该服务了解说话者的常规语调,就能更有把握地发出简短的提示。 由于缺乏定义的说话者可能会影响提示的质量,因此我们强烈建议您为每个自定义提示关联一个说话者模型。

由于自定义提示是添加到自定义模型中的,因此必须在语音合成请求中指定提示的自定义模型,才能使用该提示。 不过,扬声器模型独立于定制模型。 发言人模型与自定义模型和自定义提示的关系是一对多。 同一个扬声器模型可与不同自定义模型中定义的多个提示相关联。 此外,您在提出合成请求时并没有指定说话者模型。

范例调音和单词发音

服务的默认发音和标记化规则可能会导致提示中出现的异常单词发音不标准。 不过,“示例调音”并不是为了改变单词的发音。 例如,该服务将“灾难性”一词发音为人们期望听到的发音。 您可以使用 "Tune by Example "来改变单词中被强调的音节(例如"cataSTROPHic")或单词的节奏(例如 "cat-a-strophic")。 但您不能使用“示例调音”来更改单词的默认发音。

要改变一个单词的发音,您可以使用服务的自定义界面来定义该单词的其他发音。 您可以在与提示语相同的自定义模型中添加发音已更改的自定义单词。 然后,当提示中出现自定义单词时,服务就会应用该单词的发音。 有关更多信息,请参阅了解定制

如果您添加或修改的自定义单词是现有提示的一部分,服务将继续保留创建提示时的单词发音。 出现这种情况是因为该服务在某个时间点创建了一个提示,并采用了当时有效的发音规则。 您需要重新创建提示,以利用新的或更新的自定义词。

重新创建提示符时,服务会替换现有的提示符。 新提示会反映提示文本或音频的任何更改,以及自首次创建提示以来定义的任何自定义单词发音。 如果您在添加自定义词后重新录制提示音,可以始终使用与创建原始提示音时相同的文本和音频。

自定义提示

自定义提示由文本和音频定义,文本和音频的发音与您希望服务语音复制的发音一致。 该服务可从提示音中提取并分析前奏。 然后,当它用自己的声音说出提示文字时,就会应用这些前音信息。

重要的是要明白,当您在语音合成过程中使用提示音时,服务并使用提示音本身的音频。 它会使用您在合成请求中指定的语音。 该语音采用了提示中的口语音频的前置音调。

向自定义模型添加提示时,需要提供要说出的文本、该文本的录音、用户为提示指定的唯一标识符以及可选的说话者模型。 该服务生成并存储提示音的前音数据,并根据要求使用这些数据制作合成音频。 您必须使用拥有自定义模型的服务实例的凭据才能为其添加提示。

始终为提示 ID 赋值一个有意义的名称。 例如,使用 "goodbye"这样的名称来表示一个会发出标准告别信息的提示符。 在给定的自定义模型中,提示 ID 必须是唯一的,因此不能为同一模型定义两个 ID 相同的提示。 如果您提供了现有提示的 ID,则以前上传的提示将被新信息取代。 该服务使用新的文本和音频重新处理现有提示,并更新与提示相关的前音数据。

在处理添加提示的请求时,服务会尝试对齐为提示提供的文本和音频。 与提示音一起传递的文本必须尽可能与口语音频相匹配。 最理想的情况是文本和音频完全匹配。 该服务会尽最大努力使指定文本与音频保持一致,通常还能弥补两者之间的不匹配。 但是,如果由于文本和音频之间的差异过大而导致服务无法有效对齐,那么提示处理就会失败。

提示仅支持与美式英语自定义模型和语音一起使用。 如果提示语言与其自定义模型的语言不匹配,则提示的质量未定义。 这与为语音合成请求指定的任何文本都是一致的。 服务会尽最大努力为提示提供指定文本。 它无法验证文本语言是否与模型语言相匹配。

扬声器型号

说话者模型由用户声音的音频样本定义,服务可从中提取信息,根据声音特征进行自我训练。 当说话者模型与同一用户说出的自定义提示相关联时,服务会利用其对说话者声音的理解,识别提示的前音与说话者正常语音模式的比较。 说话者模型是区分提示音频中前音特征的基线。

创建扬声器模型时,需要为模型提供注册音频和名称,该名称在所拥有服务实例的上下文中是唯一的:

  • 注册音频必须包括与模型相关联的用户所说的语音。 该服务可从您提供的音频样本中提取说话者的声音信息。
  • 名称为模型提供了一个人类可读的句柄。 该服务会返回一个发言者 ID,这是一个全局唯一标识符 (GUID)(例如 823068b2-ed4e-11ea-b6e0-7b6456aa95cc),您可以用它在随后的服务请求中识别发言者。

该服务利用从音频中提取的信息,对说话者的音调、节奏和语调进行自我训练。 这些信息会对与模型相关联的提示信息的质量产生重大影响,尤其是音频相对较少的简短提示信息。

您可以为给定的服务实例创建说话者模型。 单个扬声器模型可与多个提示相关联,这些提示是为该服务实例中的多个自定义模型定义的。 创建说话者模型的说话者的性别不必与与该说话者模型相关联的提示语音的性别一致。 例如,由男性扬声器创建的扬声器模型可以与由女性声音发出的提示相关联。