この記事はHARD2021(Home AI Robot Development)スプリングワークショップ用です。 Web Speech APIをご存知でしょうか。これを使うブラウザで音声認識が簡単にできます。今回は、Yuki Furuta (furushchev)さんが開発されたWeb Speech APIをROSで使うためのrwt_speech_recognitionパッケージを使って音声認識をします。この記事は、furushchevさんの解説記事を参考にしています。
- 解説記事:ROSを使ってWebインターフェース経由で音声認識する by @furushchevさん
- Github: https://github.com/tork-a/visualization_rwt by Tokyo Opensource Robotics Kyokai Association
- Web Speech API参考リンク
作業環境
- Ubuntu18.04
- ROS Melodic
- Google Chrome バージョン: 84.0.4147.135 (64 ビット)(他のブラウザやChromeの最新バージョンは対応してない)
visualization_rwt のインストール
- 以下のサイトのとおり実施した。推奨されているaptでのインストールはmelodic用のパッケージが見つけられなかったのでソースからビルドした。wstoolはワークスペースのバージョン管理システム。https://github.com/tork-a/visualization_rwt
- ワークスペースを初期化する。
$ cd ~/catkin_ws
$ wstool init src
- ワークスペースに新しいリポジトリを設定する。
- ワークスペースのリポジトリをアップデートする。
$ wstool update
- 依存関係の解消
$ cd ~/catkin_ws
$ rosdep install --from-paths src --ignore-src --rosdistro ${ROS_DISTRO} -r -y
- ビルド
$ catkin build
Google Chrome バージョン: 84.0.4147.135 (64 ビット)のインストール
- 以下のサイトからGoogle Chrome Linux Version 64-bit deb for Ubuntu/Debian Version 84.0.4147.135 をダウンロードする。
- ダウンロードしたファイル(google-chrome-stable_current_amd64_86.deb) のあるフォルダをファイルアプリで開き、そのファイルをダブルクリックするとインストールできる。
実行
- 新しく端末を開き、以下のコマンドを実行する
$ roslaunch rwt_speech_recognition rwt_speech_recognition.launch
- 以下のリンクをクリックするかChromeブラウザを起動し以下のアドレスを検索窓に入れる。
- 音声認識をスタートさせるためには、以下のChrome画面で緑に塗られている[Start]ボタンをクリックする。
- 次の許可を求めています「マイクを使用する」のウインドウが開くので「許可」をクリックする。
- Chromeの画面のマイクに英語で話しかけ、認識結果が表示されていれば成功。日本語で話しかけたい場合はブラウザの[Language]を日本語にすればよい。デフォルトではROSの[Topic]が/Tablet/voiceになっているが、この画面から自由に変更できる。なお、連続して音声認識をしたい場合は[Mode]をContinuousにすればよい。
- では、最後にトピックを確認しよう。別の端末を開き、以下のコマンドで認識結果のトピック/Tablet/voiceを表示する。
$ rostopic echo /Tablet/voice
- うまくいかない場合は、インストールの4,5,6番の作業を繰り返してみよう。私の環境ではそれで問題が解決した。
カスタマイズ
- デフォルトではトピック名が/Tablet/voiceになっている。変更したいときは以下のファイル29行目のvalueの値を変更する。
- ~/catkin_ws/src/visualization_rwt/rwt_speech_recognition/www/index.html
ハンズオン
- 上の説明と動画に従って実行してみよう。試しに次のスティーブン・ジョブズのスタンフォード大学卒業生に向けた有名なスピーチの最後の部分を発話して認識させてみましょう。
Beneath it were the words: “Stay Hungry. Stay Foolish.” It was their farewell message as they signed off. Stay Hungry. Stay Foolish. And I have always wished that for myself. And now, as you graduate to begin anew, I wish that for you.
- トピック “/Tablet/voice”をサブスクライブして、信頼度(confidence)の一番高い認識結果をパブリッシュ(トピック名 “speech_recog”)し、端末にも表示するプログラムを作ろう。
- 音声コマンドでGazebo上のルンバを動かすプログラムを作ろう。音声コマンドは何でもよいですが、このrwt_speech_recognitionパッケージは英語しか使えないので、音声コマンドは英語になります。例えば、”go forward” , “go backward”, ” turn left”, “turn right”, “stop”などが考えられます。
終わり
コメント