Speak - Amazon Chime SDK

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Speak

テキストを入力すれば、どの通話レッグでも音声を再生できます。プレーンテキストまたは音声合成マークアップ言語 (SSML) を使用できます。SSML では、一時停止を追加したり、特定の単語を強調したり、話し方を変更したりすることで、Amazon Chime SDK が音声を生成する方法をより細かく制御できます。

Amazon Chime SDK は、Amazon Polly サービスを使用してテキストを音声に変換します。Amazon Polly では、音声品質を向上させるために、標準エンジンとニューラルエンジンのどちらかを選択できます。Amazon Polly は、20 以上の言語と 60 の音声をサポートしており、アプリケーションのユーザーエクスペリエンスをカスタマイズすることができます。Amazon Chime SDK では音声機能は無料で提供されますが、Amazon Polly の使用には料金がかかります。価格情報については、Amazon Polly の料金ページまたは請求ダッシュボードを参照してください。

重要

Amazon Polly の使用には、AWS Machine Learning および人工知能サービスに固有の条件を含む、AWS のサービス条件が適用されます。

Speak アクションの使用

次の例は、Speak アクションの一般的な使用方法を示しています。

{ "SchemaVersion": "1.0", "Actions":[ { "Type": "Speak", "Parameters": { "Text": "Hello, World!", // required "CallId": "call-id-1", // required "Engine": "neural", // optional. Defaults to standard "LanguageCode": "en-US", // optional "TextType": "text", // optional "VoiceId": "Joanna" // optional. Defaults to Joanna } } ] }
CallId

説明 – Lambda 関数呼び出しの CallDetails における、参加者の CallId

使用できる値 – 有効な通話 ID

必須 – はい

デフォルト値 – なし

Text

説明 - 音声に合成する入力テキストを指定します。ssmlTextType として指定した場合は、入力テキストの SSML 形式に従います。

使用できる値 - 文字列

必須 – はい

デフォルト値 – なし

Engine

説明 - 音声合成用のテキストを処理するときに使用するエンジン (標準またはニューラル) を指定します。

使用できる値 – standard | neural

必須 – いいえ

デフォルト値 - standard

LanguageCode

説明 - 言語コードを指定します。バイリンガル音声を使用する場合にのみ必要となります。言語コードなしでバイリンガル音声を使用した場合は、バイリンガル音声のデフォルト言語が使用されます。

使用できる値 - Amazon Polly の言語コード

必須 – いいえ

デフォルト値 – なし

TextType

説明 - 入力テキストのタイプ、つまりプレーンテキストか SSML かを指定します。入力タイプが指定されていない場合は、デフォルトとしてプレーンテキストが使用されます。SSML の詳細については、「Amazon Polly デベロッパーガイド」の「SSML ドキュメントから音声を生成する」を参照してください。

使用できる値 – ssml | text

必須 – いいえ

デフォルト値 – なし

VoiceId

説明 - 使用する音声の ID を指定します。

使用できる値 - Amazon Polly の音声 ID

必須 – いいえ

デフォルト値 - Joanna

ACTION_SUCCESSFUL イベントの処理

次の例は、Amazon Polly の Joanna の音声を使用して「Hello World」というテキストを英語の音声に合成するアクションの一般的な ACTION_SUCCESSFUL イベントを示しています。

{ "SchemaVersion": "1.0", "Sequence": 3, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type": "Speak", "Parameters": { "CallId": "call-id-1", "Engine": "neural", "LanguageCode": "en-US", "Text": "Hello World", "TextType": "text", "VoiceId": "Joanna" } }, "CallDetails":{ ... } }

ACTION_FAILED イベントの処理

次の例は、前の例で使用された同じイベントの一般的な ACTION_FAILED イベントを示しています。

{ "SchemaVersion": "1.0", "Sequence":2, "InvocationEventType": "ACTION_FAILED", "ActionData":{ "Type": "Speak", "Parameters": { "CallId": "call-id-1", "Engine": "neural", "LanguageCode": "en-US", "Text": "Hello World", "TextType": "text", "VoiceId": "Joanna" }, "ErrorType": "SystemException", "ErrorMessage": "System error while running action" }, "CallDetails":{ ... } }
エラー処理

以下の表では、Speak アクションによってスローされるエラーメッセージを列挙し、説明しています。

エラー メッセージ 理由

AccessDenied

AWSServiceRoleForAmazonChimeVoiceConnector サービスにリンクされたロールが正しく設定されていません。

Amazon Polly へのリクエストに使用された、サービスにリンクされたロールが、存在しないかアクセス許可がありません。これを解決するには、「Amazon Chime SDK 音声コネクタサービスにリンクされたロールの使用」セクションの手順を参照してください。

InvalidActionParameter

 

アクションのパラメータの検証中にエラーが発生しました。パラメータの詳細については、「Amazon Polly デベロッパーガイド」の「SynthesizeSpeech API」を参照してください。

ActionExecutionThrottled Amazon Polly は、音声合成のリクエストをスロットリングしています。 Amazon Polly へのリクエストがスロットリング例外を返しています。Amazon Polly のスロットリング制限の詳細については、「https://docs.aws.amazon.com/polly/latest/dg/limits.html#limits-throttle」を参照してください。

MissingRequiredActionParameter

Text は必須パラメータです。

このアクションのパラメータには Text 値が必要です。

MissingRequiredActionParameter

Text は最大 1,000 文字に制限されています。

テキストが文字数制限を超えています。

SystemException

アクションの実行中にシステムエラーが発生しました。

アクションの実行中にシステムエラーが発生しました。

プログラムフロー

次の図は、発信者の Speak アクションを可能にするプログラムフローを示しています。この例では、発信者には次のようなテキストが聞こえます。

発信者の Speak アクションを可能にするプログラムフローを示す図。
図の説明

発信者は、ソフトフォンを使用して、SIP メディアアプリケーションに登録されている番号を入力します。アプリケーションは、SIP INVITE メソッドを使用して、発信者に Trying (100) 応答を送信します。これは、ネクストホップサーバーが呼び出しリクエストを受信したことを示しています。SIP アプリケーションは、INVITE を使用してエンドポイントに連絡します。接続が確立されると、アプリケーションは発信者に Ringing (180) 応答を送信し、アラートが開始されます。

次に、SIP メディアアプリケーションが Lambda 関数に NEW_INBOUND_CALL イベントを送信します。Lambda 関数は、発信者の ID と、音声に変換するテキストが含まれた Speak アクションで応答します。そして、SIP アプリケーションは、呼び出しが応答されたことを示す 200 (OK) 応答を送信します。このプロトコルにより、メディアも有効になります。

Speak アクションが成功してテキストが音声に変換されると、SIP メディアアプリケーションに ACTION_SUCCESSFUL イベントが返されます。そして、SIP メディアアプリケーションは次のアクションセットを返します。アクションが失敗した場合、SIP メディアアプリケーションは Lambda 関数に ACTION_FAILED イベントを送信します。Lambda 関数は Hangup アクションセットで応答します。アプリケーションは発信者をハングアップし、Lambda 関数に HANGUP イベントを返します。Lambda 関数は、それ以上アクションを実行しません。

次の図は、受信者の Speak アクションを可能にするプログラムフローを示しています。

受信者の Speak アクションを可能にするプログラムフローを示す図。これは、どのブリッジ通話でも実行できます。
図の説明

発信者が、SIP メディアアプリケーションに登録されている番号を入力すると、アプリケーションは、前の図で説明したように応答します。Lambda 関数は、NEW_INBOUND_CALL イベントを受信すると、SIP アプリケーションに CallAndBridge アクションを返します。アプリケーションは、SIP INVITE メソッドを使用して、受信者に Trying (100) 応答と Ringing (180) 応答を送信します。

受信者が応答すると、SIP メディアアプリケーションは 200 (OK) 応答を受信し、その同じ応答を発信者に送信します。これによりメディアが確立され、SIP アプリケーションは CallAndBridge アクションの ACTION_SUCCESSFUL イベントを Lambda 関数に送信します。この関数は、Speak アクションとデータを SIP アプリケーションに返します。SIP アプリケーションはこれを変換します。