PC のマイク音声をライブで Pepper/NAO のスピーカーに送るサンプル
PC のマイク音声をライブで Pepper/NAO のスピーカーに送るサンプルを作ってみました。
NAOqi API の ALAudioDeviceProxy::sendRemoteBufferToOutput() を使っています。
ソースコードを次に公開しています。
実装してみたインプレッションとしては、遅延が結構あります。2秒ぐらい遅れてスピーカーから音声が再生されます。NAOqi 側のバッファリングの問題かと思うのですが、この遅延を短くする方法はまだ見つかっていません。
クロスプラットフォームな Qt ならびに NAOqi SDK を使っていますので、理屈上 Windows, Mac, Linux で動くはずです。ただ現状 Mac でしか動作確認はしていません。
ソースコードはコンパイル、実行する上で幾つか注意があります。
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 を使うことでこのあたりの煩わしさを解消できるようです。)