9月の連休に福島を旅行した。目当ては福島県立美術館で開かれていた伊藤若冲展を観ることと、NHKの大河ドラマ「八重の桜」の舞台である会津若松を訪ねることだった。
好天に恵まれて福島から会津へ移動する高速道路から磐梯山がきれいに見えた。山よりも美しかったのは猪苗代湖畔に広がる田園である。午後の陽光を浴びた稲穂が文字通り黄金色に輝いていた。
さて、本論に入ろう。IP電話のビジネスをしている人から「FYI 今後WebRTCが盛り上がりそうです」との書き出しでメールが来た。恥ずかしながらWebRTCなんて知らないし、それ以前に“FYI”が分からない。「For Your Information」の略だそうだ。なあんだ、である。
WebRTC(Web Real-Time Communication)は、プラグインなしでブラウザー間のボイスチャットやビデオチャット、データ共有を可能にするHTML5のAPIで、W3Cを中心に標準化が進められている。現時点では「Google Chrome」と「Firefox」が実験的にサポートしている。
実はこのようなコミュニケーションのAPI化は、WebRTCだけではなく「クラウドAPI」といった呼称で既に実用化されており、クラウドサービスに革新をもたらしている。
開発・メンテがSIPよりも格段に楽
IP電話でよく使われるSIP(Session Initiation Protocol)でスマートフォン用通話アプリを作るには、シグナリング(通話の設定など)だけでなくマイクやスピーカーを制御して音声ストリームの取得や出力、エコーやノイズのキャンセルといった処理をデバイスごとに作り込まねばならず、大変な労力がかかる。例えばNTTコミュニケーションズの「050 plus」は、デバイスやOSのバージョンの違いに応じて数十種類のアプリを用意している。
WebRTCでは、ストリームの取得(getUserMedia)や通信(Real-time Communication Between Browsers)がAPI化されているため、コーデックやエコーキャンセラーなどの技術を知らないWebエンジニアでも電話サービスやテレビ会議サービスを簡単に作れる。クラウド上のWebサービスとして作ればよく、端末アプリを作る必要はない。開発やメンテナンスがSIPと比べて格段に楽になるのだ。
ブラウザー上で動くのでユーザーはアプリをスマホにインストールする必要がなく、スマホのOSがバージョンアップされても影響を受けない。
WebRTCに限らず、コミュニケーションのAPI化の目的はサービスの開発者に通信やデバイス制御の複雑さを隠して開発を容易にすることと、ユーザーの利便性を高めることである。
クラウドAPI使い音声で機器を制御
既に実用化されているコミュニケーションAPIは数多くある。その一つが米トロッポのクラウドAPIだ。サービス事業者はクラウドAPIを使って電話の受信、音声認識/合成、SMSのやり取り、会議サービスなどができる。