使用语音标记 - Amazon Polly
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用语音标记

请求语音标记

要为输入文本请求语音标记,请使用 synthesize-speech 命令。除了输入文本,以下元素都是返回此元数据所必需的:

  • output-format

    当返回语音标记时,Amazon Polly 仅支持 JSON 格式。

    --output-format json

    如果您使用的是不受支持的输出格式,Amazon Polly 将引发异常。

  • voice-id

    为了确保元数据与相关联的音频流匹配,请指定相同语音用于生成合成语音音频流。可用语音的语速不相同。如果您使用的语音与用于生成语音的不同,则元数据将与音频流不匹配。

    --voice-id Joanna
  • speech-mark-types

    指定您需要的语音标记类型。您可以请求任何语音标记类型,但必须指定至少一个类型。

    --speech-mark-types='["sentence", "word", "viseme", "ssml"]'
  • text-type

    纯文本是 Amazon Polly 的默认输入文本,因此,如果要返回 SSML 语音标记,必须使用 text-type ssml

  • outfile

    指定写入元数据的输出文件。

    MaryLamb.txt

 

以下 Amazon CLI 示例针对 Linux、Unix 和 macOS 编排了格式。对于 Windows,请将每行末尾的反斜杠 (\) Unix 行继续符替换为脱字号 (^) 并在输入文本周围使用全角引号(“),内部标签使用单引号(’)。

aws polly synthesize-speech \ --output-format json \ --voice-id Voice ID \ --text 'Input text' \ --speech-mark-types='["sentence", "word", "viseme"]' \ outfile

语音标记输出

Amazon Polly 将返回以换行符分隔的 JSON 流中的语音标记对象。语音标记对象包含以下字段:

  • time – 相应音频流开头的时间戳(以毫秒为单位)

  • type – 语音的类型(句子、单词、语音视位或 ssml 标记)。

  • start – 输入文本中对象开头的偏移量(以字节而不是字符为单位,不包括语音视位标记)

  • end – 输入文本中对象末尾的偏移量(以字节而不是字符为单位,不包括语音视位标记)

  • value – 根据语音标记类型变化

    • SSML:<mark> SSML 标签

    • viseme:语音视位名称

    • wordsentence:输入文本的子字符串,由开始和结束字段分隔

例如,Amazon Polly 从文本“Mary had a little lamb”(玛丽有一只小羊羔)生成以下 word 语音标记对象:

{"time":373,"type":"word","start":5,"end":8,"value":"had"}

所描述的单词(“had”(具有))开始于音频流开始后 373 毫秒,并从输入文本的字节 5 处开始,在字节 8 处结束。

注意

此元数据用于 Joanna 语音 ID。如果您使用另一个有相同输入文本的声音,元数据可能有所不同。