twilio で Amazon Polly を使う方法

はじめに

社内でtwilioの紹介などをすると、機械っぽい音声が不評で、「こんなババアから電話してほしくない」なんて言われることが、けっこうあります。ひどいね。

2018.08.16にamazon Polly が使えるようになったとのことでさっそく試してみました。

Introducing 50+ additional Text-to-Speech voices with Amazon Polly Integration
Twilio’s partnership with Amazon Polly brings lifelike text to speech so that you can build engaging conversational IVRs using TwiML “Say” Verb.
Twilio に 新しい音声合成エンジンボイスを追加!- Amazon Polly 50種類 | Twilio for KDDI Web Communications
このたび、米国Twilio社は、Twilioの動詞にAmazon Pollyの25の言語、 50種類以上の音声合成エンジン用ボイスを追加したことを発表しました。Amazon PollyのSynthesizeSpeechをAPI経由で操作できます。これにより、テキストを発話させる音声にバリエーションが増えた上、音声の音量...
【Amazon Polly】 Twilio さんに Mizuki さんの声で話してもらいました! | DevelopersIO
Twilio に渡す XML をほんのわずか修正するだけで、Twilio アプリの音声として Amazon Polly を使うことが可能になりました。どれだけ簡単か、簡単なコードと共にご紹介します。

こちらの記事を参考に進めます。

TwiML Binの作成(woman)

まずは、比較のために通常の音声で作ってみます。

https://jp.twilio.com/console/runtime/twiml-bins
「TwiML bin」へ移動します。+ボタンで新規作成します。

 

<電話発信したときにしゃべる(woman)>

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-jp" voice="woman">
  おはようございます。本日の東京都の天気は、晴れです。</Say>
</Response>

TwiML Binの作成(amazonPolly)

同様に、TwiML Binを2つ作成します。

<電話発信したときにしゃべる(amazonPolly_Mizuki)>

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-jp" voice="Polly.Mizuki">
  おはようございます。本日の東京都の天気は、晴れです。</Say>
</Response>

<電話発信したときにしゃべる(amazonPolly_Takumi)>

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-jp" voice="Polly.Takumi">
  おはようございます。本日の東京都の天気は、晴れです。</Say>
</Response>

このように、3つ作っておきます。

TTS(Text-To-Speech)の変更

TTSの画面に移動します。
https://jp.twilio.com/console/voice/twiml/text-to-speech

Default Settings で、Amazon Polly を選択します。
課金の説明ポップアップが出るので、OKを押します。

 


Curlで電話発信

https://jp.twilio.com/console/runtime/twiml-bins
「TwiML bin」へ移動します。

電話発信したときにしゃべる(amazonPolly_Mizuki)を選びます。

URLをメモします。
※woman、Mizuki、Takumiを比較する場合、3つともURLをメモしておきます。

ターミナルから以下を入力します。

<woman>

curl 'https://api.twilio.com/2010-04-01/Accounts/ACxxxxxxxxxxxxxxxxxdc/Calls.json' -X POST \
--data-urlencode 'To=+81(電話をかける先の番号)' \
--data-urlencode 'From=+81(Twilioで購入した番号)' \
--data-urlencode 'Url=https://handler.twilio.com/twiml/EH3xxxxxxxx(womanのTwiML Bins URL)' \
-u ACxxxxxxxxxxxxxxxxxdc:b8xxxxxxxxxxxxxxxxxx26


<Mizuki>

curl 'https://api.twilio.com/2010-04-01/Accounts/ACxxxxxxxxxxxxxxxxxdc/Calls.json' -X POST \
--data-urlencode 'To=+81(電話をかける先の番号)' \
--data-urlencode 'From=+81(Twilioで購入した番号)' \
--data-urlencode 'Url=https://handler.twilio.com/twiml/EH3xxxxxxxx(MizukiのTwiML Bins URL)' \
-u ACxxxxxxxxxxxxxxxxxdc:b8xxxxxxxxxxxxxxxxxx26


<Takumi>

curl 'https://api.twilio.com/2010-04-01/Accounts/ACxxxxxxxxxxxxxxxxxdc/Calls.json' -X POST \
--data-urlencode 'To=+81(電話をかける先の番号)' \
--data-urlencode 'From=+81(Twilioで購入した番号)' \
--data-urlencode 'Url=https://handler.twilio.com/twiml/EH3xxxxxxxx(TakumiのTwiML Bins URL)' \
-u ACxxxxxxxxxxxxxxxxxdc:b8xxxxxxxxxxxxxxxxxx26

結果

これで、流暢な日本語であるAmazon Pollyから電話をすることが出来ました。
システム運用の障害連絡などに、応用していきたいと思います。

 

コメント

タイトルとURLをコピーしました