上传词典 - Amazon Polly

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

上传词典

您使用的词典必须符合发音词典规范(PLS)W3C 建议。有关更多信息,请参阅 W3C 网站上的发音词典规范 (PLS) 1.0 版

Console - Lexicons tab

要使用发音词典,您必须先将其上传。您可以从控制台中的两个位置上传词典:Text-to-Speech 选项卡和 Lexicons 选项卡。

以下过程描述如何添加词典,您可以使用这些词典来自定义所选语言的不常见单词和短语如何发音。

从词典选项卡添加词典
  1. 登录 AWS Management Console 并打开 Amazon Polly 控制台,网址为。https://console.aws.amazon.com/polly/

  2. 选择 Lexicons 选项卡。

  3. 选择上传词典

  4. 为词典提供名称,然后使用选择词典文件来查找要上传的词典。您只能上传扩展名为 .pls 或 .xml 的 PLS 文件。

  5. 选择上传词典。如果相同名称的词典(无论是 .pls 或 .xml 文件)存在,上传词典会覆盖现有词典。

Console - TTS tab
从选项卡中添加词典 text-to-Speech
  1. 登录 AWS Management Console 并打开 Amazon Polly 控制台,网址为。https://console.aws.amazon.com/polly/

  2. 选择文本到语音转换选项卡。

  3. 展开其他设置,打开自定义发音,然后选择上传词典

  4. 为词典提供名称,然后使用选择词典文件来查找要上传的词典。您只能使用扩展名为 .pls 或 .xml 的 PLS 文件。

  5. 选择上传词典。如果相同名称的词典(无论是 .pls 或 .xml 文件)存在,上传词典会覆盖现有词典。

AWS CLI - one lexeme

借助 Amazon Polly,您可以使用PutLexicon将发音词典存储在账户的特定 AWS 区域。然后,在服务开始合成文本之前,您可以在 SynthesizeSpeech 请求中指定一个或多个已存储的词典。有关更多信息,请参阅 管理词典

请考虑以下兼容 W3C PLS 的词典。

<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme> </lexicon>

请注意以下几点:

  • <lexicon> 元素中指定的两个属性:

    • xml:lang 属性指定应用该词典的语言代码 en-US。如果您在 SynthesizeSpeech 调用中指定的语音具有相同的语言代码 (en-US),则 Amazon Polly 可以使用此示例词典。

      注意

      您可以使用 DescribeVoices 操作以查找与语音关联的语言代码。

       

    • alphabet 属性指定了 IPA,这意味着使用国际语音字母表 (IPA) 字母表发音。IPA 是用于书写发音的字母之一。Amazon Polly 还支持拓展音标字母评估法 (X-SAMPA)。

       

  • <lexeme> 元素用于描述 <grapheme>(即单词的文本表示)和 <alias> 之间的映射。

要测试此词典,请执行以下操作:

  1. 将该词典保存为 example.pls

  2. 运行put-lexicon AWS CLI 命令将词典(名称为w3c)存储在 us-east-2 区域。

    aws polly put-lexicon \ --name w3c \ --content file://example.pls
  3. 运行 synthesize-speech 命令以将示例文本合成为音频流 (speech.mp3),并指定可选 lexicon-name 参数。

    aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
  4. 播放生成的 speech.mp3 ,注意单词 W3C 在文本已替换为万维网联盟。

上述示例词典使用别名。未使用的词典中提到的 IPA 字母。以下词典使用带 IPA 字母 <phoneme> 元素指定语音发音。

<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>pecan</grapheme> <phoneme>pɪˈkɑːn</phoneme> </lexeme> </lexicon>

按照相同步骤测试此词典。请确保您指定的输入文本中有单词“pecan”(山核桃)(例如,“Pecan pie is delicious”(山核桃馅饼很好吃))。

有关 PutLexicon API 操作的其他代码示例,请参阅以下资源:

AWS CLI - multiple lexemes

借助 Amazon Polly,您可以使用PutLexicon将发音词典存储在账户的特定 AWS 区域。然后,在服务开始合成文本之前,您可以在 SynthesizeSpeech 请求中指定一个或多个已存储的词典。有关更多信息,请参阅 管理词典

在此示例中,您在词典中指定的词素仅用于输入文本,以进行合成。考虑以下词典:

<?xml version="1.0" encoding="UTF-8"?> <lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd" alphabet="ipa" xml:lang="en-US"> <lexeme> <grapheme>W3C</grapheme> <alias>World Wide Web Consortium</alias> </lexeme> <lexeme> <grapheme>W3C</grapheme> <alias>WWW Consortium</alias> </lexeme> <lexeme> <grapheme>Consortium</grapheme> <alias>Community</alias> </lexeme> </lexicon>

词典指定了三个词素,其中两个词素为字素 W3C 定义了一个别名,如下所示:

  • 第一个 <lexeme> 元素定义了一个别名(万维网联盟)。

  • 第二个 <lexeme> 定义了一个替代别名 (WWW Consortium)。

Amazon Polly 使用第一个别名替换词典中的任意给定字素。

第三个 <lexeme> 为单词 Consortium 定义了一个替换词 (Community)。

首先,让我们来测试此词典。假设您想要将以下示例文本合成到音频文件 (speech.mp3),并且在 SynthesizeSpeech 的调用中指定词典。

The W3C is a Consortium

SynthesizeSpeech 首先按如下所示应用词典:

  • 根据第一个词素,单词 W3C 被修改为 World Wide Web Consortium。修改后的文本如下所示:

    The World Wide Web Consortium is a Consortium
  • 第三个词素中定义的别名仅适用于作为原始文本一部分的单词 Consortium,产生以下文本:

    The World Wide Web Consortium is a Community.

你可以使用以下方法对此 AWS CLI 进行测试:

  1. 将该词典保存为 example.pls

  2. 在 us-east-2 地区,运行 put-lexicon 命令来存储词典 (使用名称 w3c)。

    aws polly put-lexicon \ --name w3c \ --content file://example.pls
  3. 运行 list-lexicons 命令以验证 w3c 词典在返回的词典列表中。

    aws polly list-lexicons
  4. 运行 synthesize-speech 命令以将示例文本合成为音频文件 (speech.mp3),并指定可选 lexicon-name 参数。

    aws polly synthesize-speech \ --text 'W3C is a Consortium' \ --voice-id Joanna \ --output-format mp3 \ --lexicon-names="w3c" \ speech.mp3
  5. 播放生成的 speech.mp3 文件,以验证合成语音是否反映了文本的更改。

有关 PutLexicon API 操作的其他代码示例,请参阅以下资源: