TwiML™ 音声通話: <Say>

<Say>動詞は、発信者に対して、テキストの文字列を読み上げることができます。<Say>動詞は、動的に生成したテキストや、事前に録音しておくのが難しい種類のテキストを読み上げる際に便利です。音声の読み上げる音声にはいくつか種類があり、それぞれでサポートしている言語、性別があります。ご希望の組み合わせを TwiML の中で指定してください。

動詞の属性

<Say>動詞では、'voice' パラメータで与えたものによって、それぞれ与えられる属性が異なります。

voice

<Say>動詞では、2種類の別々のボイスエンジンが選べます。まず manwoman、これらは共に 英語、スペイン語、フランス語、ドイツ語、イタリア語 で利用できます。次にaliceこれはもう少し幅広い言語で利用できる女性の声です。

属性名 許容値 初期値
voice man, woman, alice man (一部の言語に対応);
alice (一部の追加された言語に対応)
loop 0 以上の整数 1
language 後述のセクションを参照 後述のセクションを参照
voice = man または woman のとき

voice に man または woman を指定した際は、以下の属性と値を指定できます。
※ 以下の値が言語の属性として使用できます。

属性名 許容値 初期値
language en、en-gb、es、fr、de en

DIAL動詞 と SMS動詞は、複数の属性を使えます。

下の例ではcallerIdパラメータが省略されていますが、Twilio for KDDI Web Communications をご利用のお客様においては、callerId パラメータで必ずご自身で購入したTwilio電話番号を指定する必要があり、かつ、省略できません。

DIAL動詞で電話をかける場合にはTwilio電話番号(050/0120/0800/その他番号)を、SMS動詞でSMSを送信する場合にはアメリカ番号もしくはSMSが有効なTwilio番号を指定する必要があります。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say voice="woman" language="fr">Chapeau!</Say>
</Response>
voice = alice の場合

voice に alice を指定した際は、下記の属性と値を設定できます。
以下の値が言語属性として使用できます。

属性名 許容値 言語、ロケール 初期値
language da-DK
de-DE
en-AU
en-CA
en-GB
en-IN
en-US
ca-ES
es-ES
es-MX
fi-FI
fr-CA
fr-FR
it-IT
ja-JP
ko-KR
nb-NO
nl-NL
pl-PL
pt-BR
pt-PT
ru-RU
sv-SE
zh-CN
zh-HK
zh-TW
デンマーク語, デンマーク
ドイツ語, ドイツ
英語, オーストラリア
英語, カナダ
英語, イギリス
英語, インド
英語, アメリカ
カタルーニャ語, スペイン
スペイン語, スペイン
スペイン語, メキシコ
フィンランド語, フィンランド
フランス語, カナダ
フランス語, フランス
イタリア語, イタリア
日本語, 日本
韓国語, 韓国
ノルウェー語, ノルウェー
オランダ語, オランダ
ポーランド語, ポーランド
ポルトガル語, ブラジル
ポルトガル語, ポルトガル
ロシア語, ロシア
スウェーデン語, スウェーデン
中国語, 中国
中国語, 香港
中国語, 台湾
en-US

DIAL動詞 と SMS動詞は、複数の属性を使えます。

下の例ではcallerIdパラメータが省略されていますが、Twilio for KDDI Web Communications をご利用のお客様においては、callerId パラメータで必ずご自身で購入したTwilio電話番号を指定する必要があり、かつ、省略できません。

DIAL動詞で電話をかける場合にはTwilio電話番号(050/0120/0800/その他番号)を、SMS動詞でSMSを送信する場合にはアメリカ番号もしくはSMSが有効なTwilio番号を指定する必要があります。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say voice="alice" language="fr-FR">Chapeau!</Say>
</Response>

language

'language' 属性は、使用する言語を指定し、その言語における一般的なアクセントと発音が用いられます。Twilio では voice の指定によって、対応する言語が違います。manwoman で英語を使いたいとき、アメリカ英語のアクセントであれば en を、イギリス英語のアクセントであれば en-gb を選びます。また、スペイン語なら es、フランス語なら fr、イタリア語なら it、ドイツ語なら de を選びます。デフォルトは en です。

Alice は更に多くの言語に対応しています。voice を alice に指定すると、合計26方言(18言語 14ロケール) が選択できることになります。Alice で対応する言語の詳細は、上表 を御覧ください。

ご注意: Alice のみに対応する言語指定を行い、voice 指定を行わなかった場合、デフォルトでは Alice が適用されます。例えば、以下の TwiML ではデフォルトで Alice が指定されます。

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say language="sv-SE">Hej!</Say>
</Response>

loop

loop 属性には、テキストの読み上げを繰り返す回数を指定します。 初期値は 1 です。 「0」を指定すると、通話が切れるまで <Say> 動詞を繰り返し実行します。

名詞

TwiMLの動詞にネストされた名詞は、それ自体は動詞ではありません。動詞がその上でどのように働くかを示します。これらは <Say>動詞 の名詞です。

名詞 説明
plain text 発信者へ読み上げるテキスト文。最大 4,096 ユニコード文字まで受け付けます。

ネスティングルール

<Say> の中には、動詞をネストできません。 ただし、次の動詞の中に <Say> をネストできます。

サンプル

例 1: Hello World

以下のTwiMLへ着信すると、1度だけ男性の声で "Hello world" と発話します。

<?xml version="1.0" encoding="UTF-8" ?>
<Response>
     <Say>Hello World</Say>
</Response>

例 2: Hello, Hello

このTwiMLでは、ポルトガル語でいう「こんにちは」を2回、発話します。

<?xml version="1.0" encoding="UTF-8" ?>
<Response>
     <Say voice="alice" language="pt-BR" loop="2">Bom dia.</Say>
</Response>

ヒントとテクニック

  • <Say>動詞で発話すテキストの指定は 最大 4,096 ユニコード文字までです。
    ただし、日本語の場合現在424文字までとなっております。<SAY>動詞を複数並べることによりこの制限を超えることができます。
  • テキストから音声への変換で、<Say> 動詞は番号、日付、時間、金額、その他の省略記号の発音を推測します。 これらの読み上げを十分にテストしてください。
  • '12345'と入力した場合「一万二千三百四十五(いちまんにせんさんびゃくよんじゅうご)」と発話します。一方 '1 2 3 4 5'と入力した場合「いち に さん よん ご」と発話します。
  • カンマやピリオドなどの句読点は、スピーチ エンジンが解釈して自然なポーズを挿入します。
  • <Say> は事前に録音しておくことが難しい、動的なテキストの読み上げに使えます。<Say> の内容が静的なテキストの場合は、実際に人が読み上げる音声を録音し、 <Play> 動詞を使う方法もあります。
  • もし、長いポーズを入れたい場合は、<Pause>動詞を試してみてください。<Pause><Say> のタグの外に書かなければならず、中にネストしては使えません。