自動音声認識(ASR)アノテーションセットのアノテーション更新API



自動音声認識(ASR)アノテーションセットのアノテーション更新API

このAPIを呼び出すと、既存のアノテーションセットのアノテーション追加または更新ができます。

ファイルをアップロードする前に、アップロード用のカタログが作成されていることを確認してください。全体的なAPIの呼び出し順序(カタログ作成、アノテーションセット作成、ASR評価の実行など)については、APIフローを参照してください。

HTTPメソッドとパス

PUT v1/skills/{skillId}/asrAnnotationSets/{annotationSetId}/annotations HTTP/1.1

パラメーター

フィールド 説明 必須
skillId 文字列 URIパスに含むスキルIDです。
annotationSetId 文字列 URIパスに含むアノテーションIDです。

リクエスト

リクエストヘッダー

Content-Type: [application/json, text/csv]
Accept: application/json
フィールド 説明 必須
Content-Type 文字列 本文のコンテンツタイプを示します。指定できる値はapplication/jsonまたはtext/csvです。

リクエスト本文

{
    "annotations": [{
        "uploadId": string,
        "filePathInUpload": string,
        "evaluationWeight": integer,
        "expectedTranscription": string
    }]
}
フィールド 説明 必須
annotations 配列 アノテーションオブジェクトの配列。配列の上限は1000です。
annotations[i].uploadId 文字列 Catalog APIを使用してアップロードを作成したときに返されるアップロードID。
annotations[i].filePathInUpload 文字列 アップロードされたzipファイル内のファイルパス。たとえば、folderという名前のフォルダと、そのフォルダにaudio.mp3という名前の音声ファイルが含まれているzipファイルがあるとします。ファイルのパスは、folder/audio.mp3です。ディレクトリを連結するには、スラッシュ(/)を使用します。
annotations[i].expectedTranscription 入力音声の文字起こしの期待結果です。文字列の許容可能な長さは、1~500のUnicode文字です。 文字列
annotations[i].evaluationWeight 評価におけるテスト項目の重み。この値は、OVERALL_ERROR_RATEなどのメトリクスを計算するときに使用します。許容される値は、1~1000です。 整数

CSVコンテンツタイプ

CSV形式の場合、列の順序は関係ありません。CSVペイロードの1行目で列の内容を示します。

CSVのペイロードで使用されるアトリビュートの定義については、前の表を参照してください。

uploadId,filePathInUpload,evaluationWeight,expectedTranscription
string,string,integer,string

応答

HTTPステータス

HTTP 204 No Content

応答ヘッダー

なし

応答本文

なし

エラー応答

このセクションでは、リクエスト固有のエラーについて説明します。すべてのASR APIに適用されるエラーのリファレンスについては、自動音声認識(ASR)APIエラーリファレンスを参照してください。

HTTPステータスコード エラーコード シナリオ

400 Bad Request

MISSING_REQUIRED_PROPERTY

リクエスト本文に必須フィールドがありません。

CONTENT_PARSE_FAILURE

リクエスト本文の形式が正しくありません。

INVALID_INTEGER_VALUE

annotations[i].weightが許容範囲外です。

INVALID_STRING_LENGTH

annotations[i].expectedTranscriptionが許容範囲外です。

INVALID_ARRAY_SIZE

annotationsの長さが許容範囲外です。

INVALID_CONTENT_TYPE

Content-Typeの値が正しくありません。

INVALID_REQUEST_PARAMETER

アノテーションセットIDの形式が正しくありません。

RESOURCE_NOT_FOUND

annotations[i].uploadIdが見つかりません。

annotations[i].filePathInUploadがannotations[i].uploadIdに存在しません。

404 Not Found

RESOURCE_NOT_FOUND

指定されたスキルが存在しません。

指定されたアノテーションセットが存在しません。

500 Internal Server Error

INTERNAL_SERVER_ERROR

内部サーバエラーのため、リクエストが失敗しました。

サンプルリクエスト 応答の例
PUT v1/skills/amzn.skill.id.1234/asrAnnotationSets/123456-1234123-123123/annotations HTTP/1.1 Content-Type: application/json Accept: application/json { "annotations":[ { "uploadId": "1234-12314-12314", "filePathInUpload":"hello_world.mp3", "evaluationWeight":5, "expectedTranscription":"alexa hello world" }, { "uploadId":"1234-12314-12315", "filePathInUpload": "ask say hello.wav", "evaluationWeight": 10, "expectedTranscription": "ask hello world skill say hello" }, { "uploadId": "1234-12314-12348", "filePathInUpload": "ask say hello.wav", "evaluationWeight":10, "expectedTranscription": "ask hello world skill say hello" }, { "uploadId": "1234-12314-12348", "filePathInUpload":"something.wav", "evaluationWeight": 10, "expectedTranscription": "ask hello world skill say hello" } ] } HTTP 204 No Content

PUT v1/skills/amzn.skill.id.1234/asrAnnotationSets/123456-1234123-123123/annotations HTTP/1.1 Content-Type: text/csv Accept: application/json filePathInUpload,uploadId,weight,expectedTranscription hello_world.mp3,amazn.upId.12341234,5,alexa hello world ask say hello.wav,amazn.upId.12341234,10,ask hello world skill say hello ask say hello.wav,amazn.upId.12341234,10,ask hello world skill say hello something.wav,amazn.upId.12341234,10,ask hello world skill say hello
HTTP 400 BadRequest Content-Type: application/json { "message": "Payload validations failed." "violations": [ { "message": "File path \"hello.wav\" cannot be found in upload id \"amazn.upId.12341234\"", "code", "RESOURCE_NOT_FOUND" } ] }
PUT v1/skills/amzn.skill.id.1234/asrAnnotationSets/123456-1234123-123123/annotations HTTP/1.1 Content-Type: text/csv Accept: application/json {}
HTTP 400 BadRequest Content-Type: application/json { "message": "Payload validations failed." "violations": [ { "message": "Payload cannot be parsed as text/csv content type", "code", "CONTENT_PARSE_FAILURE" } ] }