音声強化版PaPeRo i のマイク音声をモニタする

 音声強化版PaPeRo i のマイクビーム設定調整用アプリを作って試しましたが設定が動作に反映されているのか今一つわかりませんでした。そこで音声強化版PaPeRo i のマイク音声を直接聴いてみることにしました。

録音して聴く

 マイク音声を聴く一番簡単な方法はarecordコマンドで録音する方法だと思います。音声拡張版PaPeRo i のTinker Board S でマイク音声を録音するには以下のオプション指定が必要です。

$ arecord -D plughw:1,0 /tmp/sound.wav

できたWAVファイルを転送すればPCでマイク音声を聴くことができます。しかしこの方法はリアルタイム性に欠けるのでマイクビーム設定をチェックするには不向きです。

リアルタイムモニタする

 リアルタイムでモニタするにはPaPeRo iのカメラとマイクでリアルタイムモニタでPaPeRo i 本体で動かしたプログラムpaperocameraをTinker Board S で動かす方法が使えます。ただしPaPeRo i 本体では不要だったarecordコマンドの-Dオプション指定がTinker Board S では必要になったため、paperocameraに-Dオプション指定機能を追加しました。こちらからpaperocameraをダウンロードしてTinker Board S で実行してください。なおあらかじめTinker Board S ではアプリが動作しないように.config/autostart/papero_app.desktopを無効にしておく必要があります(削除や移動だと戻し方が分からなくなりそうなのでgzipコマンドで圧縮してpapero_app.desktop.gzの形で置いておくのがお勧めです)。

$ ./paperocamera -D plughw:1,0

Tinker Board S のIPアドレスが192.168.5.100だったとして、ブラウザで192.168.5.100:8865/cameraを開き「音声」にチェックを入れると、音声をリアルタイムモニタできます(PaPeRo i 本体で動いているのではないので画像など他の機能は動作しません)。

音声をモニタしながらマイクビーム調整

 paperocameraで音声モニタした状態で音声強化版PaPeRo i のマイクビーム設定調整用アプリpapebottuneを同時に動かすことができます。Tinker Board S でもう一つ端末を開いてpapebotserverを実行し、

$ python3 papebotserver.py

PCなど任意のホストでpapebottune.pyを実行してください(もちろんTinker Board S でも構いません)。

$ python3 papebottune.py

モニタしながら調整してみた結果ですが、やはり今一つ違いが分かりませんでした。無響室の様な環境ではない普通の環境で人間の耳で感覚的に判別できるものではないのかも知れません。

マイクビーム以外のパラメータ

 音声モニタした状態でpapebottune.pyではなく/home/pb/misc/codama/codama-doc/utils/codama_usb(製品版ではcodama_i2c)を使うことで他のパラメータを調整して試すこともできます。全パラメータリストは

$ /home/pb/misc/codama/codama-doc/utils/codama_usb parameters

で表示されます。もう少し感度が上がらないかと思い手探りで試してみたのですが、AGCONOFFを1にしてオートマチック・ゲイン・コントロールを有効にし、AGCDESIREDLEVELを最大値0.99にすると少し音が大きくできる様でした。他にもパラメータが沢山あるので色々調整できる可能性があります。

波形をモニタする

 PaPeRo iのマイク音声をリアルタイムグラフ表示するプログラムpaperosoundgraphも、-Dオプション指定を追加したところTinker Board S のマイク音声をモニタするのにも使えました。

$ ./paperosoundgraph -D plughw:1,0

音声をモニタする場合と同様、波形表示をしながらpapebottuneやcodama_usbコマンドでパラメータ調整することも可能です。