アンオフィシャル - Aldebaran Robotics NAO とそのほかロボットについて

NAO とそのほかロボットについての情報を発信。ここの情報はアルデバラン非公式です。内容に誤りがあった場合はごめんなさい。

Aldebaran Robotics 社の NAO、そのほかロボットに関連する情報を発信します。

PC のマイク音声をライブで Pepper/NAO のスピーカーに送るサンプル

PC のマイク音声をライブで Pepper/NAO のスピーカーに送るサンプルを作ってみました。
NAOqi API の ALAudioDeviceProxy::sendRemoteBufferToOutput() を使っています。

f:id:takuji_kawata:20150506000048p:plain
ソースコードを次に公開しています。

github.com

実装してみたインプレッションとしては、遅延が結構あります。2秒ぐらい遅れてスピーカーから音声が再生されます。NAOqi 側のバッファリングの問題かと思うのですが、この遅延を短くする方法はまだ見つかっていません。

クロスプラットフォームな Qt ならびに NAOqi SDK を使っていますので、理屈上 Windows, Mac, Linux で動くはずです。ただ現状 Mac でしか動作確認はしていません。

ソースコードコンパイル、実行する上で幾つか注意があります。

  • 別途、NAOqi C++ SDK をインストールしておいてください。手順は次に説明しています。

C++ SDK Installation — Aldebaran 2.1.3.3 documentation

  • 開発ツールは Qt Creator を使いました。NAOqi は内部で Qt フレームワークを使っています。Qt Creator が使う Qt フレームワークのバージョンは NAOqi が利用している Qt ライブラリーとバージョンを一致させてください。 NAOqi が利用している Qt ライブラリーのバージョンは NAOqi SDK のディレクトリの中の lib ディレクトリのの中を調べればわかるかと思います。
  • NAOqi と連携するところは別ライブラリとしてコンパイルします。ビルドをするためのバッチを buildNAOqiInterface.sh というスクリプトで用意しました。Qt Creator でプロジェクトをビルドする前に、このスクリプトを実行し、NAOqi と連携するライブラリを生成しておきます。
  • 実行するには Mac の場合、環境件数 DYLD_LIBRARY_PATH を編集します。Qt Creator の プロジェクト設定で環境変数を追加することで対応できます。DYLD_LIBRARY_PATH にNAOqi C++ SDK をインストールしているディレクトリ配下の /lib ディレクトリとプロジェクトディレクトリの NAOqi 配下の build/lib ディレクトリを追加します。(アプリとしてパッケージするときには install_name_tool を使うことでこのあたりの煩わしさを解消できるようです。)

f:id:takuji_kawata:20150506002443p:plain