Print Friendly, PDF & Email

1  目的

目的は、次の2つ。

  • 人工知能的な取り組みにおいて、人間的なインターフェースがほしい。
  • そのインターフェースを応用として、ロボット制御を行う。

すでに、実装された具体的な例を参照させてもらうと、

ようなことを実装するための基本技術を整理しておきたい。

2  技術的なポイント

技術的なポイントは、次の3つとなる。

  • Web Speech API
  • Server-side Scripting
  • Ajax

Web Speech API はクライアント(すなわち、ブラウザ)の Javascript で利用可能であるため、それだけが目的ならばウェブサーバは、Apache など、何でもよく、一般的に動的なページを作成することができればよい。しかし、ロボット制御のために Raspberry Pi を使うことや、サーバサイドのスクリプティングが必要になることを視野に入れると、python だけで動く(すなわち、軽量でスクリプティングが楽な)

を使って例示しておくのが実用的だろう。Ajax は、最終的に(後続の投稿にて採用する予定であるが)、インタラクティブなインターフェースにするために必要になる。

3  前提事項

なお、後掲の例を実際に試してみるための前提として、

  • Web Speech API をサポートするブラウザを Can I Use  にて確認しておこう。

すなわち、Web Speech API をサポートしていないブラウザでは以下を実際に試すことはできないので注意。

また、bottle が、例えば下記のコマンドで、インストールしてあるものとする。

4  例と解説

4.1 Bottle の動作確認

まず、bottle が使えることを確認するには、 Hello World スクリプト

を作って、起動して次のログメッセージを確認する。

それから、同じマシン上のブラウザで、http://localhost:8080/hello にアクセスすれば、コンソールにアクセスログが次のように追加される。そこで、ブラウザに "Hello World!" ページが表示されればOK。

なお、別のマシン(ここではLAN内として例示)からアクセスを確認する場合には、"localhost" の代わりに、"192.168.10.11" または "0.0.0.0" などのIPアドレスかホスト名を指定したスクリプト(下記)を使って、http://192.168.10.11:8080/hello などにアクセスする。

IPアドレスを 0.0.0.0 として指定しておけば、同一マシンからの http://localhost:8080/speek によるアクセスもできるようだ。

4.2 Web Speech API の最小例

以上で bottle の動作確認ができたので、次に、Web Speech API による音声認識の最小例を試してみよう。 

これを次のように起動し、

http://localhost:8080/speech にアクセスして表示された画面の「Start」ボタンを押せば、マイクの使用許可を尋ねてくるので、許可すれば準備OK。

テストとして、例えば「今日は晴れです」と話しかけると、次のようにコンソール(chrome では、デベロッパーツールを有効化し、そのコンソール画面を表示しておく)に認識されたメッセージが表示される。

speech-1

なお、認識した内容は、ログに表示している部分を次のように変えれば、それを合成した音声で出力できる。

5  次の課題

ここまでの内容では、簡単のため、画面を一度だけ表示して、クライアント側だけで処理するものに止まっている。次の投稿では、これをインタラクティブなものにしてみよう。

6  参照ページ

主に、下記ページにて教示を得て学習内容を自分流に整理した。

以上。■