« 2013年5月 | トップページ | 2013年7月 »

2013年6月

2013年6月28日 (金)

GitHub始めました。

勉強会などで開発者の方々とお話する中で自分の開発環境のガラパゴスっぷりを痛感し、昨年末に勧められてアカウント登録したきり放置していたGitHubをはじめました。

しかしGitHubどころか他のバージョン管理システムさえ使った事がなく土地勘が無いので手始めにREADME.mdのみのリポジトリをつくってみました。

GitHub-no-arukikata-ja GitHubの歩き方 日本語

実際に動かすことで分かることもありますね、よしよし。

この調子で今度はコードもあげてみよう。

2013年6月17日 (月)

【場所めも】岩手 猊鼻渓

G1

平泉からほど近く、のどかな県道の先に、猊鼻渓はあります。

砂鉄川を眺めつつお土産屋さんの並びを進むとつきあたりが舟下りの桟橋。

料金を支払い船頭さんに促され船に腰をおろし、ほどなく出発。

みるみるうちに景色が変わり、岩壁の屏風に囲まれます。

訪れたのは新緑の5月。岩壁のあちこちに紫色の藤の花。

船頭さんの伸びやかな歌声が心地いい空間でした。

なお、春は春紅葉、夏は夕涼み、秋は紅葉、冬は雪景色と四季折々楽しめるそうです。

入口付近の様子。この日は催し物があったようです。
G2
横断幕には猊鼻渓在住のゲイビィ。
G3
そばをすすりつつふと横を見ると、、、
G4
ゲイビィ休憩中。お疲れ様です。

【場所めも】おくのほそ道 岩手 平泉 中尊寺

五月雨の 降りのこしてや 光堂 芭蕉

東北自動車道で一路北進。はるばる栃木、福島、宮城も越えたその先の岩手・一関で一般道に入り田を眺めしずかな町を過ぎたあたりで到着。

駐車場に車を停め月見坂をのぼりはじめると、俄かにお堂銀座の様相。

その中にある「目」印ののぼりは目にご利益のあるお堂のしるし。

古今東西時代を超えて通じるユニバーサルデザイン。

さらに進み入場券を買い覆堂に入ると、そこにあります。

その名の通りの金色堂。

豪華絢爛である以上に想いや願いを確かに感じる佇まい。

夏草や 兵どもが 夢の跡 芭蕉

千年以上ものはるか昔、都から遠く離れたこの地で栄えそして廃れもなお、
時代を超えて伝わる句を詠ませ現代に至るまで人々を引き寄せ続ける平泉なのでした。

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年6月 8日 (土)

【場所めも】福島 喜多方

会津に来ればつい足を伸ばしてしまう蔵のまち喜多方。

喜多方と言えば喜多方ラーメン。

喜多方ラーメンと言えば坂内食堂。

昔と変わらぬ行列。

迷わず大もり肉そば。

大きなどんぶりを覆いつくすチャーシューたち。

そのチャーシューの先には澄んだスープに沈むキラキラの麺。

ボリューミーな見た目、シンプルなうまみ。

結局いつもの通り一気においしくいただきました。

姉妹店も各地にあるけれど、結局ここまで来てしまうんだよなぁ。


【城めも】福島 会津 鶴ヶ城

今年2013年のNHK大河ドラマ「八重の桜」の舞台、鶴ヶ城(会津若松城)。
Siro
五月晴れのもと、観光客で賑わっておりました。

会津藩士姿の観光案内の方々と八重さんショットも可能な様子。ただし人気なので少し待つかも。

写真撮影の際、衣装は無理でしょうが鉄砲(レプリカ)は借りる事ができるみたいです。
Yae
ちなみにこの写真は東北自動車道のPAにあったポスターです。

月見櫓に立ち景色を眺めながら、大河ドラマで京都を警護する会津藩士が郷土で見る月を回想するシーンをさらに回想。

そして、廊下橋付近のお堀に自分史上最大級の巨大鯉?を発見!

View Big
うーむ、写真じゃ全然サイズが伝わらない。。。

他の観光客も巨大コイ?を発見すると釘付けになってました。それくらいデカかったです。

ただし、あの魚が本当に鯉なのかは不明。お城を訪れた際にお堀を注視していれば会えるかも。

« 2013年5月 | トップページ | 2013年7月 »

最近の作品

つぶやき

ウェブページ

無料ブログはココログ