[ゆっくり]発信通話でwav/mp3を再生してみる#5[ネタ]

2013.04.24

用意されてる音声だけじゃ寂しい

前回はHerokuにサーバを立てて、Twilioが指定した番号からの発信内容を取得できるようにしました。
実際はTwimlResponseオブジェクトを作成し、say関数にしゃべらせたい文字を指定していましたね。
say関数(TwiMLでいうSayタグ)ではvoiceという属性を持っており、ここで男声(man)か女声(woman)を指定できますが、2種類しか種類がないのではつまらないです。
※現状、日本のTwilioではSayタグのvoice属性はwomanしか対応していないようです
幸い、TwiMLには指定したURLのmp3を再生させることができるので、ここでお馴染みの、ゆっくりなあの人にしゃべってもらいましょう。

環境構築方法

実行環境およびTwilioアカウントについては、第1回記事第2回記事を見て設定&確認しておいてください。
また、今回は第4回のサンプルにちょっとだけ変更を加えるだけなので、Heroku環境とそのサンプルを用意しましょう。

Twilio + ゆっくり

mp3を作成

では、ゆっくろいどを使用して、適当な音声をwavで保存しましょう。mp3にしたい人は、iTunesでも使って変換しましょう。
アプリケーションのpublicディレクトリ下にmediaディレクトリを作成し、メディアファイルを、yukkuri.wav(またはyukkuri.mp3)にして配置します。

idex.jsを少しだけ変更

前回はsay関数で指定した文字をしゃべらせるだけでしたが、続けてplay関数を使って、メディアファイルを再生させます。
もちろん、メディア再生先URLは、自分の環境のURLにしてください。
(デプロイ後にそのURLを直接ブラウザでたたけば、ブラウザ上で再生されるはずです@Chrome)

exports.twiml = function(req, res){
    var resp = new twilio.TwimlResponse();
    //文字の読み上げに続いて、指定したURLのmp3を再生
    resp.say('play yukkuri')
        .play('http://<デプロイしたサーバのドメイン>/media/yukkuri.mp3');;
    res.writeHead(200, {'Content-Type': 'text/xml'});
    console.log(resp);
    res.end(resp.toString());
};

Herokuデプロイ

最後に、Herokuへログイン後、デプロイしましょう。

% heroku login //IDパスワード入力
% git add .
% git commit -m "ゆっくりボイス追加"
% git push heroku master

前回と同じく、デプロイと起動が完了したら、ブラウザでheroku create時に表示されたドメインにアクセスしましょう。
携帯番号を入力して、かかってきた電話をとると、あの声が!

まとめ

今回は発信通話で任意のmp3を再生させてみました。
電話かけたら、ネギ持ったあの人がガイダンスしてくれたりする機能もつくれたりしちゃいますね。
なお、ここにはTwiMLで使用できる機能について解説しています。
いろいろできる(Recordで録音できちゃったり)ので、確認してみてください。

参考サイトなど