本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用语音标记
请求语音标记
要为输入文本请求语音标记,请使用 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 示例是针对 Unix、Linux 和 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:语音视位名称
word 或 sentence:输入文本的子字符串,由开始和结束字段分隔
例如,Amazon Polly 从文本“Mary had a little lamb”(玛丽有一只小羊羔)生成以下 word
语音标记对象:
{"time":373,"type":"word","start":5,"end":8,"value":"had"}
所描述的单词(“had”(具有))开始于音频流开始后 373 毫秒,并从输入文本的字节 5 处开始,在字节 8 处结束。
注意
此元数据用于 Joanna
语音 ID。如果您使用另一个有相同输入文本的声音,元数据可能有所不同。