Twilio

2015年12月 3日 (木)

【Twilio】作品&小ネタ3連発!

このブログ記事はTwilio Advent Calendar 2015の記事です。
2日目はこちら、binさんでした!
3日目を担当します。ふうたりすとです。Advent Calendarは日頃皆さんが思っている事を毎日知る事ができてナイスな企画だなぁ!と思っています。そんな私はここで、最近作ったTwilio関連の作品と小ネタ3つを紹介します。

・作品の紹介

SUPER MOONというグループでTwilioを使った作品を作りました!

・使い方
(1)ブラウザで所定のページを開く
(2)喋る
(3)文字起こしされる
(4)複数言語に翻訳される
(5)予め登録しておいた複数の送信先に相手の言語で電話orメールで喋った内容が一斉送信される。

・使う場面
学校の先生がクラスの保護者に一斉連絡したい場合。特に、いろんな国の方々が住んでいる地域の学校では、保護者が日本語を理解できないことが多くコミュニケーションの壁となっているとの事。【楽チン翻訳 学級通信】は言葉の壁を越え1対多のコミュニケーションを効率化し先生が生徒と向き合えるよう支えます!
 
↓で発表した内容を掲載いただいています!
・仕組み
文字起こし:Web Speech API
メール発信:SendGrid
プラットフォーム:Microsoft Azure
言語:Javascript、php

Twilio、簡単だぜェ!高速道路なみにスイスイだぜ〜!!

という事でTwilioを使えばウェブの標準技術でいとも簡単に電話連携機能をアプリに組み込む事ができます。

・Twilio小ネタ3連発!
あまり簡単スイスイが当たり前すぎると高速道路の小石のようにちょっとしたことでもおっ?と思うものです。
という事で、私がおっ?と思った小石のようなTwilio小ネタを2つお伝えします。皆さんが小石を気にせずTwiloで高速道路を走るようにスイスイアプリケーションを作れる事を願いつつ。

その1:無音時間はwww
Twilioで自動音声を流す場合、間をあけたい(数秒間無音の状態を作りたい)場合に出くわす事があるかと思います。無音の音声ファイルを再生するなどやり方は1つではありませんが、最近<Play> 動詞のdigits属性に”w”を指定する方法を見つけました!
例えばこんな感じ↓
この例では、5秒間の無音の後、「こんにちは」としゃべる、というTwiMLです。つまりdigits属性の”w”1つにつき0.5秒の無音を設定できます。digits属性本来の使い方とは違うようですが、音声ファイルも不要で手軽に無音を設定できるので便利です。

その2:プッシュボタン0はemptyとみなされる(追記:phpでempty関数を使うと関数の仕様上プッシュボタン0はemptyと判定される)
↓をご覧ください。
これは、押したプッシュボタン(1桁)を答え、プッシュボタンが空(カラ、empty)の場合は「ボタンを押してください。」というTwiMLを返すという簡単なphpアプリです。
これをTwilio経由で動かすと、1〜9のボタンは認識しますが0は空(empty)と認識されます。0と空(empty)は別概念(キリッ)と言っても始まりません、プッシュボタン1桁で0を認識させる場合はこの挙動の考慮が必要です、というか私は当初気づきませんでした。パラメータ指定等で0をemptyでなく0と認識させる方法知ってる方は教えてください。
追記:Twiloとは関係なく、phpのempty関数では0をemptyと判定する仕様という事を今知りました!恥ずかしーw

その3:画面はutc、csvはpst(追記:画面の時間表示はTwilioダッシュボードのユーザー設定画面のタイムゾーン指定で変更可能でした)
Twiloのダッシュボード画面でログを参照する場合、時間表記はUTC(協定世界時、日本時間はUTC+9)です。一方、ログ参照画面からダウンロードできるcsv形式のログファイルに記載の時間表記はPST(太平洋標準時間、日本時間はPST+17)です。今のところ。夏はPDTになるかは未確認。
というわけで、アプリとTwilioの挙動を確認するときは、ダッシュボード画面を確認(日本→UTC変換)、精査の為csvファイルダウンロード(UTC→PST変換)、アプリの操作との関係を頭で整理(PST→日本変換)という、頭の中は世界を股にかけるビジネスマン並みのグローバルな状態になっています。体は畳の上で寝そべっているのですが。。。

つまり、Twilioのログを見るときは
日本時間はUTC+9、PST+17
を覚えておくと良いでしょう。

私からは以上です〜。

4日目は、yasuharu519さんです。お楽しみにー!

2015年9月15日 (火)

TwilioJP-UG東京×Bluemixハンズオンしてきました

ハンズオンの講師をやらせていただきました。

事前に定員を超える参加申し込みを頂き当日も多数のご参加を頂きありがとうございました!

ハンズオンの内容
利用者の音声を認識し適切な担当者につなぐ自動案内サービスを作りました。
T13001_2
(1)利用者がサービスに電話をかける
(2)サービスが自動音声で話しかける
(3)利用者が内容を話す(例:障害なんですけど、等)
(4)サービス側で適切な担当者を選び(例:障害担当者)担当者の電話に発信する
(5)利用者と担当者が通話する

TwilioJP-UG東京とBluemixの合同ハンズオンということで、サーバーの構成とアプリ2の作成をIBM藤田さん、アプリ1の作成を私が担当しました。
T15001_2

資料
感想など
私のパートはごく簡単なTwiMLを返す単なるphpファイルであり、ハンズオン史上最も楽な担当だったと思います。
それだけTwilioアプリを作ることが簡単である事の裏返しでもあります!

今回初めてBluemixとNode-REDそしてワトソンSpeech to Textを使う機会を得ましたのでその感想をメモしておきます。

Bluemixについて
アイコンをクリックするだけでサービス等をどんどんバインドできるのは楽です。インフラ部分に煩わされる事を最小限にしてアプリケーション開発に注力できるように、という考えが伝わる作りでした。なんちゃって系エンジニアの自分にとってはありがたい。

Node-REDについて
IBMさんなのになぜブルーじゃない!?というのは置いといて、アプリ作りからデプロイそしてデバッグまでブラウザの単一画面で完結できるのでこれまた楽でした。
通常のウェブアプリ作成はもちろん、サーバーと通信するスマホアプリの開発時にサーバーの一部の機能を仮に作りアプリとサーバー両面をデバッグしたい場面があると思いますがそんな時重宝しそうだなと思いました。

ワトソンSpeech to Textについて
今回IBMさんとのコラボを熱望したきっかけとなったのがこの機能。もちろん100%の精度ではないものの普通に使える感じでした。IBMさんでは精度もどんどん向上させているとの事。
レスポンスもサクサク。
いつか時間を見つけて佐藤可士和氏も脱帽のロボット議長なるアプリを作る際は使ってみようと思いました。

平日それも月曜仕事終わりの時間から2時間以上にわたり手と頭を動かすハンズオンに参加する人はやはり一味違いました。
参加者の中に起業準備中でプロダクトにTwilioを使う予定の方が複数いらっしゃいました!
今後に注目です!

進行上至らぬところ多数なハンズオンでしたが、それでも最後まで集中して取り組んで頂いた参加者の皆さんありがとうございました!
そして藤田さんはじめIBMの皆さんお疲れ様でした!

それにしてもこんなサービスがちゃちゃっと作れるなんて面白い時代になったねー!という事を語り合った期待の若者のツイートを貼っときます。


TwilioJP-UGもお気軽にどうぞ〜!

2014年11月22日 (土)

MA10に作品を出して得られた6つの気づき

つ今年のMashup Awards(MA10)に”抽選カンパ”という作品をエントリーしました。
今回のMA10を通じて6つの気づきを得ることが出来ましたのでそのことを書きます。

・はじめに:抽選カンパとは?

抽選カンパとは手軽に抽選会を実施できる事を目指したサービスで、

”「ソーシャルカンパサービス”Kampa!”」を利用する事で景品購入費用を募り、電話番号に電話をするだけで抽選会に応募でき、タッチパネル上に表示されたルーレットに物を投げたりタッチする事で抽選が行われ当選者に「Twilio」経由で電話がかかる。”

というものです。

・受賞時の気づき

今回のMA10では2つの賞を頂きました。ありがとうございます!
Kampa!賞(byデザインエッグ株式会社)
TwilioイケTEL賞(by株式会社KDDIウェブコミュニケーションズ)

・・・

男女プレゼンターでこんなにも顔つきが違うか!というゲスい自身を臆面も無く檀上で披露する筆者。
というわけで、

気付き1:ゲスい自分を発見しますた!

、、、ちなみにKampa!賞を授与下さった方はご自身でも作品を出して賞を受賞したり活躍されておりながら気さくにお話しして頂けるイイ感じの方です。

え~と、次からは身のある内容で行ってみます。。。

・抽選カンパを使用した際の気づき

MA10のイベントの中で抽選カンパを2回利用する機会がありました。

1回目:Mashup Battle 2ndSTAGE(11/8)
応募時間約1分の間に59件のご応募を頂きました!
最大5件/秒の応募を処理しました。

ネットから頂いた声

2回目: MA10打ち上げ懇親会(11/19)
こちらも応募時間約1分の間に85件のご応募を頂きました!
最大9件/秒の応募を処理しました。

というわけで、MA10のイベントで2回もテストにご参加頂き盛り上がって頂きありがとうございました!

気付き2:Twilioのリアルタイムコミュニケーション力は強力

Twilioのページでは、すぐれたメッセージング手段としての「電話」の特性として「即時性、利便性、信憑性、記録性」を挙げています。

抽選カンパはこれらの特性を活用させて頂きました。

2回ともに抽選応募用の電話番号を知らせたのが1分程度にも拘わらずこれほどの応募を頂く事が出来ました。
特に1回目(Mashup Battle 2ndSTAGE)はUst中継を見ていて(会場外から)応募したよーと教えてくれた方がいらっしゃいました。

電話以外でこれほど手軽に抽選会を行う事はなかなかできないと思います。

チケット配るにしても印刷したり配布したりの手間がありますし会場外の方に配ろうとしたらなおさら手間がかかります。集計の手間もあります。
メールで応募にしてもアルファベットがが入るので入力の手軽さは電話番号にはかなわないでしょう。特に年配の方はメールはしないけど電話なら慣れている比率高そうですし。

この電話の処理をwebの技術で個人でも容易に作ることができるTwilioはパワフルなAPIだと思います。

気付き3:”抽選カンパ”は仕様上プレゼンの度に景品が必要になる為、景品調達機能としてKampa!APIを利用したのは良い!

なんといっても少額(15円)から可能で手数料がかからないのが良いと思います!

抽選会の告知ページや抽選ルーレットは注目度が高くなるので、ここにカンパ頂いた方のツイッターアカウントを表示させる等の仕掛けを入れ込みたかったのですが、今回のMAでは告知ページに掲載するところまでしかできませんでした。このあたりは今後の宿題です。

気付き4:やっぱり抽選会は盛り上がる!

 
・MA10に6作品をエントリーして得た気づき

今回私は抽選カンパで2つの賞を頂きましたが、その蔭では何の賞も受賞する事の無かった5作品があります。

イチローは「4000安打を積み上げるまでに8000回悔しい思いをした」との言葉を残していますが、私もまったく同感です!
(同じ土俵で語るな!というクレームは華麗にスルーします)

というのは冗談で、今回の6作品についてMA10にエントリーした動機を自分なりに振り返ると、

(1)賞狙い
(2)自身の代表作に育てたい作品を皆さんに見てもらう
(3)勉強会等のイベントでタダで飲み食いしているのがだんだん心苦しくなってきたのでその企業のAPIを使う作品を作った

という風になりました。

MA10にエントリーする事で実際に様々な方の意見を伺うことができ、自分が気づかなかった作品の面白い部分を知る良い機会になり、今後の作品作りの参考になりました。他のコンテストでも同様なのですが特にMAのイベントでは(誰で参加できる予選の段階から)参加者がツイッター等で自由に発信できる雰囲気になるよう運営の皆さんが盛り上げてくださるのでその分気づきが多いと思います。

というわけで、

気付き5:受賞しなくても自身の作品の魅力を教えてくれる

加えて、他の方の作品を見るのは良い刺激になります。”自分にこの発想は無かった!”と唸る作品をいくつも見てきました。というわけで、

気付き6:自分にない発想に出会える

・お礼

MA10のお蔭でこのような気づきを得ることが出来ましたし、さまざまな作品、思いもよらぬ発想、いろんな方々との出会いがありました。

そして何より単純に楽しかったです。

MAというオープンイノベーションの祭典を切り盛りしてくださったスタッフの皆様ありがとうございました!

2013年12月12日 (木)

Twilioを使い「電話で分かる!一言多い血液型診断」を作ってみました。

電話をかけ自動音声の質問に答えると、一言多い診断結果を教えてくれる、と言う内容です。

Programmable-Voiceを使用しているので、自動音声の内容をブラウザから編集できます。


利用方法

Twilioアカウントが必要です。
アカウントの無い方は、今なら無料トライアルアカウントを作る事ができますので宜しければ作ってみてください。

アカウントを作ったら、Twilio管理画面の電話番号設定ページにある「Voice Request URL」に、URL

を指定してください。

これで準備完了です。Twilioから割り当てられた電話番号に電話をかければ「電話で分かる!一言多い血液型診断」を利用できます!


ご注意

電話を利用するサービスなので電話料がかかります。

Twilioの利用料もかかります(もちろん無料トライアルの範囲内なら大丈夫)。


電話料やTwilioの利用料を発生させずにどんな感じか見る方法

ブラウザでシュミレーションできる環境を用意しています。

↑のページ下部の”一言多い血液型診断はこちら”をクリックすればどんな感じか見る事ができます。


自動音声の内容を編集するには

自動音声の内容は以下のwikiに格納されています。

どこをどう編集すればどのように自動音声に反映されるかについては↓をご覧ください。

まとめ

というわけで、TwilioならWebの技術で手軽におもしろ電話サービスを作れる!という話でした♪

2013年8月 5日 (月)

Programmable-Voice

GitHubにプロジェクト「Programmable-Voice」を作りました。
Programmable-Voiceについて
  • 電話をかけるとWikiに登録したテキストを読み上げ、プッシュボタンで操作するプログラムのプロジェクトです。
  • 読上げる内容の変更や履歴の管理などをブラウザから行うことができます。
  • KinoWiki2.1とTwilioを使用します。
 
稼動イメージは→http://shop.que.jp/p/view.html

シンプルな電話の自動音声応答システム(IVR)ならProgrammable-Voiceで代用できるかも。

なお、このプロジェクト内のTwikiML.phpは以前のブログ「TwilioのCMSにwikiが良さげな件」で紹介したものです。

Twilioによって電話をハックする事がぐっと手軽になったわけですが、Programmable-Voiceでは一度インストールすればコードを書かなくてもいろいろ電話を操作できるよう機能を拡充していきたいと思います!

と言いいつつ、コード書きたくて手がうずうずしている人、コードをきれいにしてくれる人、などなど、お気軽にいじってみてください。

2013年6月16日 (日)

wikiをTwilioのCMSに使用した事例の説明の続き:wikiの機能とTwilioが拓く可能性

これまでTwilioのCMSにwikiを使う事について2つブログを書いてきました。

今回は、前回の続きとしてwikiの機能を2つ説明し、そのあとwikiとTwilioをさわってみた感想を書きます。

なお、今回の事例で使用しているwikiはKinoWiki2.1です。
ここではKinoWiki2.1を使い説明します。しかしwikiにはいくつもの種類があり、今回の説明通りの機能を備えていないものもあるかもしれません。ご了承下さい。


<wikiの機能1.オートリンク>

前回のブログでは、TwilioとwikiをTwikiML.phpで連携させて構築したIVRが、どのように電話のボタン番号とwiki内のテキストコンテンツを対応させているかを説明しました。

その対応関係とは、

”電話のボタン番号は、直前に聞いた音声の元となったwiki内のテキスト中のリンクの出現順番に対応していて、ボタンを押すとその番号に対応するリンク先のテキストを音声として返す。”

というものでした。

という事は、電話のボタンを押して別の音声を呼び出す処理を仕込むには、wiki内のテキストに適切にリンクを設定する必要があります。

ちょうど良い具合に、wikiにはリンク設定を自動で行う「オートリンク」と呼ばれる機能があります。

この「オートリンク」により、コンテンツ作成者がリンクタグを書かずともwiki内でテキストを登録・更新していくだけでテキスト間のリンク構造が出来上がり、IVRでは電話のボタンを押して別の音声を呼び出す処理が仕込まれることになります。

そもそもwikiでは、

・テキストを登録する場合、あらかじめ「ページ名」を指定する。

・テキストとページ名のセットにはこれらを参照するURLが与えられる。

という作りになっています。

そして、
・あるテキストの中に登録済みのページ名がある場合、そのテキスト中のページ名に参照URLへのリンクが自動で設定される。

これが「オートリンク」です。

具体的にはこんな感じです。

・ページ名「テスト入力」のページを作る一連の操作。
1
2
3
4
5
・同様の手順で「Twilio」のページを作ると、、、
6
・「テスト入力」のページのテキストの中の「Twilio」に、自動でページ名「Twilio」へのリンクが張られる。
7
同じ要領で、どんどんリンクを張る事ができます。
8



<wikiの機能2.バックアップ>

テキストを履歴管理できます。つまり、テキストを何度も更新した後でも、過去のバージョンのテキストに戻す事ができます。

この機能があるので、時と場合に応じたテキストを使いまわす事が簡単にできます。

具体的にはこんな感じです。
21
22


<感想>

ウィキペデイアを例に挙げるまでもなく、wikiはテキストのCMSとして十分すぎるくらいの実績と便利な機能を備えているのでIVR用音声テキストのCMSとしても使えるというのは当然と言えるかもしれません。

今回は、IVRという電話の世界のシステムをTwilioとウェブのソフトウェア(wiki)とphpスクリプト(TwikiML.php)で作成したのですが、自作したTwikiML.phpは僅か数十行であり、あっけないくらい簡単に作る事ができました。

つまり、Twilioは相当パワフルなツールだという事に気付きました。

この調子だと、Twilioを使いウェブのツールや資源を転用した電話向けのサービスや電話とウェブを統合したサービスがこれからどんどん出てくるんじゃないだろうか。

ま、素人考えですけど。

ほんと、電話が絡むサービスは土地勘がないだけに、どんどん疑問がわいてくるんですよね。。

詳しそうな人にあれこれ聞いてみようと思います。

2013年6月12日 (水)

wikiをTwilioのCMSに使用した事例の説明。

今回は、Twilioに関する先日のブログの続きとして、wikiがTwikiML.phpと連携してどのようにTwilioのCMSとして動作するか、説明します。

より正確には、

”Twilioを利用したIVR(自動音声応答システム)の一例として、自動音声の元となるテキスト群を格納するwikiと、wikiとTwilioの間の橋渡しを担うTwikiML.phpから成るものを作成したので、ここで一連の動きを説明します。”

となります(長い、B'zのあの曲よりも長い、、、)。


<説明の準備1/2:wiki内のテキストコンテンツ>

説明の為、wiki内に以下のような居酒屋のIVR風の簡単なテキストコンテンツを3つ用意しました。

最初のコンテンツ:はじめのご案内(C1)
1 (お電話ありがとうございます。居酒屋○○です。今日のおすすめは1を、当店への道案内は2を押して下さい。)

ひとつめのリンクの先のコンテンツ:今日のおすすめ(C1-1)
2 (きょうのおすすめは、刺身盛り合わせ800円、地鶏焼き鳥セット500円、野菜天ぷら700円です。はじめのご案内に戻る場合は1を押して下さい。終了する場合はこのまま電話をお切り下さい。)

ふたつめのリンクの先のコンテンツ:当店への道案内(C1-2)
3 (○○駅を降りて交差点に向かい右側の赤い看板が目印です。はじめのご案内に戻る場合は1を押して下さい。終了する場合はこのまま電話をお切り下さい。)

これらのテキストコンテンツが電話の自動音声としてどのように再生されていくか、説明します。


<説明の準備2/2:電話シュミレーション&TwiML閲覧ツール>

実際に電話をかけるとお金がかかるので、お金がかからずブラウザで確認できるツールを用意しました。

(TwiMLビューワー for TwikiML.php)
4 ページの右側が電話機を再現している部分です。電話機のボタンを模した数字ボタンを押すと、下に対応する音声テキストが表示されます。
実際の電話機では音声が流れますが、このツールでは代わりにテキストを表示します(以下の説明で「音声」と言う場合、ツールではこのテキストを指す事にします)。

左側がTwikiML.phpにより生成されるTwiMLを表示する部分です。

ページを開いた直後は電話をかけた事に対応しており、最初の音声と対応するTwiMLが表示されます。

その後、数字ボタンを押すたびに逐次対応する音声とTwiMLが表示されます。

ちなみに、ウェブページを閉じる事が電話を切る動作に対応しています。

ツール右下に表示される音声(テキスト)は、元を辿ればwiki内に格納されているテキストコンテンツです。なので、wiki内のテキストコンテンツを書き換えればツールに表示される音声も変わります。

本番環境では、電話の数字ボタンを押すとTwilio経由でTwikiML.phpが番号を受け取りwikiのDBにアクセスし、最終的に対応するテキストコンテンツを抜き出しTwiMLをTwilioに返します(実際にはもう少し複雑なプロセスがあります)。
TwilioはそのTwiMLを音声に変換して電話に返します。

今回のツール(TwiMLビューワー for TwikiML.php)はTwilioと電話の動きをブラウザ上で再現しているのでここでの動作において実際にはTwilioは関与していません。しかし、wikiとTwikiML.phpはTwilioと連携する本番環境でもそのまま動きます。

Twilioのアカウントをお持ちの方ならTwilio番号とTwikiML.phpを紐付けしTwilio番号に電話をかけてみれば今回のツール(TwiMLビューワー for TwikiML.php)通りに自動音声が聞こえる事を実際に確認できます(電話代とTwilioの利用料がかかってしまう事にご注意)。

TwikiML.phpのURLは、
です。

なお、Twilioでは無料トライアルアカウントがありますので、興味のある方は利用してみるという手もあります。

では、説明に入ります。


<動作の説明>

説明の準備2/2で説明した通り、wiki内のテキストは変換され電話のスピーカーから音声として出力されます。

では、どの数字ボタンを押せばどの音声が返ってくるのでしょう?

ヒント(というか答え)は、

「電話のボタン番号は、直前に聞いた音声に対応するwiki内のテキスト中のリンクの出現順番に対応していて、ボタンを押すとその番号に対応するリンク先のテキストを音声として返す。」
 
です。TwikiML.phpはこの対応関係の通りに電話ボタンの番号を受け取りTwiMLを出力するよう作られています。

ここで注目して欲しいのは、

ボタンの番号と音声の対応関係は、直前に聞いた音声ごとに決められている。

という点です(同じボタンを押しても、直前に聞いた音声によって次に聞こえる音声は変わってきます)。

具体例で説明します。

(1)第1階層(初期状態)

電話をかけた直後に流れる音声はひとつに決まっており、対応するwiki内のテキストコンテンツは「はじめのご案内(説明の準備1/2のC1)」です。

wiki内のテキストコンテンツC1を眺めると、リンクが2箇所ある事が見て取れます。

ひとつめのリンクが「今日のおすすめ(C1-1)」、次のリンクが「当店への道案内(C1-2)」のページを指しています。

先ほど説明したボタンとリンクの対応関係を当てはめると、番号1のボタンがひとつめのリンク「今日のおすすめ(C1-1)」、番号2のボタンが次のリンク「当店への道案内(C1-2)」に対応している、ということになります。

つまり、例えば電話をかけた直後の音声が流れた後に1のボタンを押すと、ひとつめのリンク先のテキストコンテンツ「今日のおすすめ(C1-1)」が音声に変換され電話機から流れてきます。

ここで、第1階層(初期状態)での音声とボタンの関係をまとめます。
 
直前に流れた音声:はじめのご案内(C1)
ボタン番号1の音声:今日のおすすめ(C1-1)
ボタン番号2の音声:当店への道案内(C1-2)
 
(2)第2階層

(1)で1のボタンを押し「今日のおすすめ(C1-1)」を聞いた後に、1のボタンを押すと「はじめのご案内(C1)」が流れます。

wikiで「今日のおすすめ(C1-1)」を見ると、リンクは一つ「はじめのご案内(C1)」のみとなっている事が分かります(番号1のボタンが「はじめのご案内(C1)」に対応している)。

第二階層での音声とボタンの関係をまとめます。

直前に流れた音声:今日のおすすめ(C1-1)
ボタン番号1の音声:はじめのご案内(C1)
ボタン番号2の音声:(無し)


第一階層と第二階層ではボタン番号1、ボタン番号2に対応する音声の組み合わせが変わっている事に注目してください。

ここまでの説明で、

・ボタンの番号と音声の対応関係
・特に、同じ番号のボタンを押しても直前に流れた音声によって次に流れる音声は変わる

という事をご理解いただけたらうれしいです。

今回の例では、選択肢も最大2つで深さが2階層までと簡単なものでしたが、wikiの内容を更新することで階層をいくらでも深くする事ができますし、各階層での選択肢も実質9つまで広げる事ができます(電話の数字ボタンは0~9の10個ありますが、今回のIVRでは割り当て可能な番号を1~9の9つにしています)。

言葉で説明するとややこしいのですが、実際にツールでボタンを押して動きを見れば感覚的にお分かり頂けると思います。

ボタンの番号と音声の対応関係がwiki内のテキスト中のリンクの張り方によって決まるのは分かったけど、じゃあリンクはどのように張るの?というところを含め、wikiの機能まわりについて次回のブログで説明します。

2013年5月17日 (金)

TwilioのCMSにwikiが良さげな件

「TwilioのCMSは何を使っていますか?」

との問いにピン!ときた人はお目が高い。

ピンとこない方(きっと大多数)は次の3点をご一読頂くと今回のブログ記事がいかにいい(orいい加減な)話なのか分かると思います。


事前の知識

・クラウド電話API「Twilio」について
・CMS - コンテンツマネージメントシステム - Wikipedia
・ウィキ(Wiki) - Wikipedia
Twilioを使えばインターネット上から電話をかけたり受けたりできるサービスを作る事ができます(Twilioはインターネットと電話網の橋渡しをしている)。

Twilioによってインターネット側からは世界中の電話機が数字と記号のボタン及び音声UIを持ったインターネット端末に見える、と言うこともできるでしょう。

ちなみに、一般のPC向けウェブサーバーがPCからのリクエストに対しHTMLを返すように、Twilio仕様の電話向けウェブサーバーはTwiMLというマークアップ言語を返します。

いずれにしろ、Twilioを使えばウェブサイトと電話をつなぐ事ができるので、あなたのウェブサービスに「電話は使うけどインターネットはやらない」という新たな顧客層を取り込む事ができるかもしれません。


と、Twilioについてのイメージを持って頂いたところで、本題にはいります。


IVR用のCMS

Twilioを使い電話のボタン入力に応じた自動音声を返すシステム(IVR:自動音声応答システム)を作る場合を考えてみます。

加えて、Twilio仕様の電話向けウェブサーバーに何らかのCMSを導入する事で、コンテンツ作成者がTwiMLを書かなくてもコンテンツを更新できるようにしたいと思います。


ユーザーがコンテンツを更新するブログサイトならWordPress導入しておこう、みたいな。


wikiがある!

で、思いついたのが「wiki+phpスクリプト」を使う方法です。

これにより、ユーザーはブラウザから次の事が可能になります。

・電話音声用テキストの登録・編集
・電話音声用テキストの履歴管理・前回戻し
・ボタン入力に応じた次の音声テキストの指定


続きはwebで!っていうか、、、

詳しい説明を書こうとしていたところ、facebook経由でTwilioの中の人からブログをUPせよとのご連絡を頂いたのでとりあえずこの記事をアップして、詳しい説明は5/30の勉強会or別のブログ記事にて行いたいと思います。

Twilio API 勉強会 Vol.4 : Twilio動詞(機能)-応用編
サンプルを作ってみたので興味のある方は眺めてみて下さい。

・コンテンツ格納済みwiki(居酒屋用IVRバージョン)
・ちなみに、phpスクリプトは↓なのですが、コードはきれいでないのでまだ公開しないでおきます。
http://shop.que.jp/p/TwikiML.php
・TwiMLビューワー(電話の操作と音声及びTwiMLをブラウザ上で再現しています)
うーむ、説明なしで理解してもらうのはきついかな、、、wikiで見えるテキスト中のリンクの出現順番が、電話のボタンの数字に対応している、、、

ちなみに実際に電話を使って動くか確認しておりません。Twilioのトライアル期間が終了してしまったので、、、汗
2013/5/29追記:Twilioの通常アカウントを取得し、正しく動く事を確認しました!


続きは勉強会orまたのブログ記事で~

最近の作品

つぶやき

ウェブページ

無料ブログはココログ