

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

# Speak
<a name="speak"></a>

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

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

**重要**  
Amazon Polly の使用には、AWS Machine Learning および人工知能サービスに固有の条件を含む、[AWS のサービス条件](https://aws.amazon.com/service-terms/)が適用されます。

**Topics**
+ [Speak アクションの使用](#speak-action)
+ [ACTION\$1SUCCESSFUL イベントの処理](#speak-action-success)
+ [ACTION\$1FAILED イベントの処理](#speak-action-fail)
+ [プログラムフロー](#speak-flow)

## Speak アクションの使用
<a name="speak-action"></a>

次の例は、`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**  
説明 - 音声に合成する入力テキストを指定します。`ssml` を `TextType` として指定した場合は、入力テキストの SSML 形式に従います。  
使用できる値 - 文字列  
*必須* – はい  
*デフォルト値* – なし

**Engine**  
説明 - 音声合成用のテキストを処理するときに使用するエンジン (標準またはニューラル) を指定します。  
使用できる値 – standard \$1 neural  
*必須* – いいえ  
デフォルト値 - standard

**LanguageCode**  
説明 - 言語コードを指定します。バイリンガル音声を使用する場合にのみ必要となります。言語コードなしでバイリンガル音声を使用した場合は、バイリンガル音声のデフォルト言語が使用されます。  
使用できる値 - [Amazon Polly の言語コード](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-LanguageCode)  
*必須* – いいえ  
*デフォルト値* – なし

**TextType**  
説明 - 入力テキストのタイプ、つまりプレーンテキストか SSML かを指定します。入力タイプが指定されていない場合は、デフォルトとしてプレーンテキストが使用されます。SSML の詳細については、「Amazon Polly デベロッパーガイド」の「[SSML ドキュメントから音声を生成する](https://docs.aws.amazon.com/polly/latest/dg/ssml.html)」を参照してください。  
使用できる値 – ssml \$1 text  
*必須* – いいえ  
*デフォルト値* – なし

**VoiceId**  
説明 - 使用する音声の ID を指定します。  
使用できる値 - [Amazon Polly の音声 ID](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-VoiceId)  
*必須* – いいえ  
デフォルト値 - Joanna

## ACTION\$1SUCCESSFUL イベントの処理
<a name="speak-action-success"></a>

次の例は、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\$1FAILED イベントの処理
<a name="speak-action-fail"></a>

次の例は、前の例で使用された同じイベントの一般的な `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 音声コネクタサービスにリンクされたロールの使用](speak-and-get-digits.md#speak-digits-policy)」セクションの手順を参照してください。 | 
| `InvalidActionParameter` |   | アクションのパラメータの検証中にエラーが発生しました。パラメータの詳細については、「Amazon Polly デベロッパーガイド」の「[SynthesizeSpeech API](https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech)」を参照してください。 | 
| ActionExecutionThrottled | Amazon Polly は、音声合成のリクエストをスロットリングしています。 | Amazon Polly へのリクエストがスロットリング例外を返しています。Amazon Polly のスロットリング制限の詳細については、「[https://docs.aws.amazon.com/polly/latest/dg/limits.html\$1limits-throttle](https://docs.aws.amazon.com/polly/latest/dg/limits.html#limits-throttle)」を参照してください。 | 
| `MissingRequiredActionParameter` | `Text` は必須パラメータです。 | このアクションのパラメータには `Text` 値が必要です。 | 
| `MissingRequiredActionParameter` | `Text` は最大 1,000 文字に制限されています。 | テキストが文字数制限を超えています。 | 
| `SystemException` | アクションの実行中にシステムエラーが発生しました。 | アクションの実行中にシステムエラーが発生しました。 | 

## プログラムフロー
<a name="speak-flow"></a>

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

![\[発信者の Speak アクションを可能にするプログラムフローを示す図。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/Speak1.png)


**図の説明**  
発信者は、ソフトフォンを使用して、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 アクションを可能にするプログラムフローを示す図。これは、どのブリッジ通話でも実行できます。\]](http://docs.aws.amazon.com/ja_jp/chime-sdk/latest/dg/images/Speak2.png)


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

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