BPK-13 : docomo雑談APIで雑談させてみる

  • NTT docomoは音声認識、音声合成、画像認識など様々なAPIを無料(制限あり)で公開してくださっています。
  • 今回は数あるdocomo API群の中から、「雑談対話API」を使って、自然言語で対話できるロボットを作ってみます。
  • 雑談対話APIは通常の雑談モードのほかに、しりとりで遊ぶことができるモードもあります。
  • 雑談対話APIはSDKも用意されていますが、ここではより簡単に利用できるWeb API(REST)を使います。
  • おなじみのライブラリ(JuliusとAquesTalk)を使い、オフラインで音声認識と音声合成を行います。説明は省きますが、もちろんこれらの機能をdocomoのAPIに差し替えることもできます。

事前の準備

docomo Developer Supportでの設定

  • まずはdocomo Developer Supportの雑談対話APIのページを読んで、概要を把握しておくとよいでしょう。
  • docomoのAPIを初めて使うひとはアカウント登録のページをクリックし、アカウントを取得してください。
  • docomo Developer Supportにログインし、マイページから、「API利用申請」をクリックしてください。
  • 今回は別にアプリケーションを作るわけではないのですが、「アプリケーション名」「アプリケーション概要」「サービス開始日」などは必須項目なので適当に埋めてください。
  • 「雑談対話」を選択してください。他にも使ってみたいAPIがあれば、選択しておくとよいでしょう。
  • 申請後ちょっと待つと、「API利用申請(開発用APIキー)受付のお知らせ」という件名のメールが届きます。
  • 再びマイページに行くと、「API key」が表示されているはずです。これをスクリプトにコピペする必要がありますので、コピーしておいてください。
  • 無料利用の有効期限は90日間です。

gitレポジトリの更新

  • gitで公開しているbezelieのライブラリですが、ときどき更新してますので、以前クローンしたかたも改めて更新(git pull)してください。

APIキーの埋め込み

  • 先ほど取得したAPIキーをサンプルプログラムに書き込みます。
  • サンプルプログラムをテキストエディターで開いてください。

  • 17行目あたりにある「API_KEY = ” 」のクォーテーションの間にAPIキーをペーストしてください。
  • エディターを保存終了してください。

サンプルプログラムの実行

- パイソンのスクリプトを実行します。

  • マイクに向かって話しかけてください。ロボットが返事をしたら成功です。
  • 正しく認識されない時は、マイクに近づいたり、エアコンを切るなど周囲のノイズを取り除いてみてください。
  • Ctrl+Cで終了させることができます。


しりとり

  • モードを切り替えることで、しりとりロボットにすることができます。サンプルプログラムを開いてください。27行目あたりに、以下のような場所があります。

  • 初期状態ではmodeが’dialog’になっていますが、この行の行頭にコメントマーク「#」をつけ、代わりに下の行のコメントマークを外してmodeを「srtr」に変更してみてください。ロボットがしりとりするようになります。
  • 最後に「ん」がつく言葉を言ったら負けです。

用語解説

API

  • 「Application Programming Interface」の略で、WEB上に公開されていてユーザーが利用することができるソフトウェアのことです。Google, NTT docomo, Amazon, LINE, IBM, microsoftなど多くの企業が、APIを公開しているので、APIを活用することで簡単に高度な技術を利用することができます。

REST API

  • 「REST形式で利用できるAPI」のことです。「REST」は「REpresentational State Transfer」の略で、URLに対してGET,POST,PUT,DELETEでリクエストを送信し、レスポンスをjsonやXMLで受け取る形式のことです。