神经 TTS - Amazon Polly

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

神经 TTS

Amazon Polly 拥有一个 神经 TTS (NTTS) 系统,可以生成比标准语音更高质量的语音。NTTS 系统可以产生最自然、最像人类的 text-to-speech 声音。

标准 TTS 语音使用拼接合成。此方法将记录的语音音素串联在一起(拼接),生成发音非常自然的合成语音。然而,语音中不可避免的语调变化和用于分割波形的技术限制了语音的质量。

Amazon Polly 神经 TTS 系统不使用标准的拼接合成方法来生成语音。它具有两个部分:

  • 一种神经网络,将一系列音素(最基本的语言单位)转换为一系列声谱图,这些声谱图是不同频带能量水平的快照

  • 一种声码器,可将声谱图转换为连续的音频信号。

神经 TTS 系统的第一个组成部分是 sequence-to-sequence模型。该模型不仅仅从相应的输入创建其结果,而且还考虑输入元素的序列如何配合使用。该模型选择它输出的声谱图,使其频带强调人脑在处理语音时使用的声学特征。

然后该模型的输出传递给神经声码器。声码器会将声谱图转换为语音波形。当使用用于构建通用串联合成系统的大型数据集进行训练时,这种 sequence-to-sequence 方法将产生更高质量、听起来更自然的声音。

阿德里亚诺(意大利语)、安德烈斯(墨西哥西班牙语)、Aria(新西兰英语)、Arlet(加泰罗尼亚语)、Arthur(英式英语)、Ayanda(南非英语)、Burcu(土耳其语)、丹尼尔(德语)、丹尼尔(美国英语)、艾琳(瑞典语)、加布里埃尔(加拿大法语)、格雷戈里(美国英语)、Hala(阿拉伯语、海湾)、汉娜(奥地利德语)、Hiujin(广东话)、Ida(挪威语)、Isabelle(比利时法语)、Kajal(印地语和印度英语)、Kazuha(日语)、Kazuha(美国英语)、Kazuha(美国英语)、Laura(荷兰语)、Liam(加拿大法语)、Lisa(比利时荷兰语)、Niamh(爱尔兰英语)、Ola(波兰语)、Olivia(只有使用 NTTS 时,Amazon Polly 才支持澳大利亚英语、Pedro(美国西班牙语)、Rémi(法语)、Ruth(美国英语)、Sergio(卡斯蒂利亚西班牙语)、Sufie(丹麦语)、Stephen(美国英语)、Suvi(芬兰语)、蒂亚戈(巴西葡萄牙语)、智子(日语)和扎伊德(海湾阿拉伯语)的声音。所有其他语音都有使用标准 TTS 方法创建的对应语音。在使用仅限 NTTS 语音时,TTS 引擎参数必须设置为 neural,无论使用控制台还是 API 都是如此。

特征和区域兼容性

神经语音并非在所有 AWS 地区都可用,也不支持 Amazon Polly 的所有功能。

以下区域支持神经语音:

  • 美国东部(弗吉尼亚北部):us-east-1

  • 美国西部(俄勒冈):us-west-2

  • 非洲(开普敦):af-south-1

  • 亚太地区(东京):ap-northeast-1

  • 亚太地区(首尔):ap-northeast-2

  • 亚太地区(大阪):ap-northeast-3

  • 亚太地区(孟买):ap-south-1

  • 亚太地区(新加坡):ap-southeast-1

  • 亚太地区(悉尼):ap-southeast-2

  • 加拿大(中部):ca-central-1

  • 欧洲地区(法兰克福):eu-central-1

  • 欧洲地区(爱尔兰):eu-west-1

  • 欧洲地区(伦敦):eu-west-2

  • 欧洲地区(巴黎):eu-west-3

  • AWS GovCloud (美国西部): us-gov-west-1

这些区域的终端节点和协议与标准语音所用的相同。有关更多信息,请参阅 Amazon Polly 终端节点和配额

神经语音支持以下功能:

  • 实时和异步语音合成操作。

  • 播音员风格。有关讲话风格的更多信息,请参阅 NTTS 播音员风格

  • 所有语音标记。

  • 大多(但不是所有)Amazon Polly 支持的 SSML 标签。有关 NTTS 支持的 SSML 标签的更多信息,请参阅支持的 SSML 标签

与标准语音一样,您可以从各种采样率中进行选择,以优化应用程序的带宽和音频质量。标准和神经语音的有效采样率为 8 kHz、16 kHz、22 kHz 或 24 kHz。标准语音的默认值为 22 kHz。神经语音的默认值为 24kHz。Amazon Polly 支持 MP3、OGG (Vorbis) 和原始 PCM 音频流格式。

语音引擎

Amazon Polly 使您可以使用具有 engine 属性的神经或标准语音。它有三个可能的值:标准长篇神经Standard 是默认值。

重要

如果您未位于支持 NTTS 的区域之一,则仅标准语音引擎将显示在控制台中。如果未显示神经引擎,请检查您的区域。有关可在其中使用 NTTS 的区域的更多信息,请参阅特征和区域兼容性

在使用仅限 NTTS 语音时,TTS 引擎参数必须设置为 neural,无论使用控制台还是 API 都是如此。

选择语音引擎(控制台)

要选择语音引擎(控制台)
  1. 通过以下网址打开 Amazon Polly 控制台:https://console.aws.amazon.com/polly/

  2. 在文本转语音页面上,对于引擎,选择标准长篇神经

    如果选择神经,则只有神经语音可用,纯标准语音将被禁用。

选择语音引擎 (CLI)

要选择语音引擎 (CLI)

engine 参数是可选的,有三个可能的值:standardLong FormNeural。在创建 SynthesisSynthesisTask 操作时使用该属性。

例如,您可以使用以下代码在美国西部 2(俄勒冈)区域运行该start-speech-synthesis-task AWS CLI 命令

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

aws polly start-speech-synthesis-task \ --engine neural --region us-west-2 \ --endpoint-url "https://polly.us-west-1.amazonaws.com/" \ --output-format mp3 \ --output-s3-bucket-name your-bucket-name \ --output-s3-key-prefix optional/prefix/path/file \ --voice-id Joanna \ --text file://text_file.txt

这将生成与以下内容类似的响应:

"SynthesisTask": { "CreationTime": [..], "Engine": "neural", "OutputFormat": "mp3", "OutputUri": "https://s3.us-west-1.amazonaws.com/your-bucket-name/optional/prefix/path/file.<task_id>.mp3", "TextType": "text", "RequestCharacters": [..], "TaskStatus": "scheduled", "TaskId": [task_id], "VoiceId": "Joanna" }