使用列表创建自定义词汇表 - Amazon Transcribe

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

使用列表创建自定义词汇表

重要

不推荐使用列表格式的自定义词汇表,因此,如果您要创建新的自定义词汇表,我们强烈建议您使用表格格式

您可以使用 AWS Management Console、 AWS CLI或 AWS SDKs从列表中创建自定义词汇表。

  • AWS Management Console:您必须创建并上传包含自定义词汇表的文本文件。您可以使用行分隔或逗号分隔的条目。请注意,您的列表必须以 LF 格式另存为文本 (*.txt) 文件。如果您使用任何其它格式,例如 CRLF,则 Amazon Transcribe不接受您的自定义词汇表。

  • AWS CLIAWS SDKs:您必须使用标志在 API 调用中以逗号分隔的条目形式包含自定义词汇表。Phrases

如果一个条目包含多个单词,则必须用连字符连接每个单词。例如,以 Los-Angeles 形式添加“Los Angeles”,以 Andorra-la-Vella 形式添加“Andorra la Vella”。

以下是两种有效列表格式的示例。有关特定于方法的示例,请参阅创建自定义词汇表

  • 逗号分隔的条目:

    Los-Angeles,CLI,Eva-Maria,ABCs,Andorra-la-Vella
  • 行分隔的条目:

    Los-Angeles CLI Eva-Maria ABCs Andorra-la-Vella
重要

您只能使用您的语言支持的字符。有关详细信息,请参阅您的语言的字符集

CreateMedicalVocabulary 操作不支持自定义词汇表列表。如果要创建自定义医学词汇表,则必须使用表格格式;有关说明,请参阅使用表格创建自定义词汇表

创建自定义词汇表

要处理用于的自定义词汇表 Amazon Transcribe,请参阅以下示例:

此示例结合列表格式的自定义词汇表文件使用 create-vocabulary 命令。有关更多信息,请参阅 CreateVocabulary

aws transcribe create-vocabulary \ --vocabulary-name my-first-vocabulary \ --language-code en-US \ --phrases {CLI,Eva-Maria,ABCs}

以下是另一个使用 create-vocabulary 命令的示例,以及创建自定义词汇表的请求正文。

aws transcribe create-vocabulary \ --cli-input-json file://filepath/my-first-vocab-list.json

my-first-vocab-list.json 文件包含以下请求正文。

{ "VocabularyName": "my-first-vocabulary", "LanguageCode": "en-US", "Phrases": [ "CLI","Eva-Maria","ABCs" ] }

VocabularyStatePENDING 变为 READY 后,您的自定义词汇表就可以用于转录了。要查看自定义词汇表的当前状态,请运行:

aws transcribe get-vocabulary \ --vocabulary-name my-first-vocabulary

此示例使用 c reate_vorquary 方法从列表中创建自定义词汇表。 AWS SDK for Python (Boto3) 有关更多信息,请参阅 CreateVocabulary

有关使用的其他示例 AWS SDKs,包括特定功能、场景和跨服务示例,请参阅本章。使用 Amazon Transcribe 的代码示例 AWS SDKs

from __future__ import print_function import time import boto3 transcribe = boto3.client('transcribe', 'us-west-2') vocab_name = "my-first-vocabulary" response = transcribe.create_vocabulary( LanguageCode = 'en-US', VocabularyName = vocab_name, Phrases = [ 'CLI','Eva-Maria','ABCs' ] ) while True: status = transcribe.get_vocabulary(VocabularyName = vocab_name) if status['VocabularyState'] in ['READY', 'FAILED']: break print("Not ready yet...") time.sleep(5) print(status)
注意

如果您为自定义词汇文件创建新的 Amazon S3 存储桶,请确保CreateVocabulary发出请求的 IAM 角色有权访问此存储桶。如果角色不具备相应的权限,则请求将失败。您可以选择在请求中添加DataAccessRoleArn参数来指定 IAM 角色。有关 IAM 角色和策略的更多信息 Amazon Transcribe,请参阅Amazon Transcribe 基于身份的策略示例