Amazon Polly
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用语音标记

请求语音标记

要为输入文本请求语音标记,请使用 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

 

以下 AWS 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。如果您使用另一个有相同输入文本的声音,元数据可能有所不同。