音声感度の調整方法
ロボホンの「耳が遠い」、「話しても無視される」、「難聴」が直せます。
VAD (Voice Activity Detection)の調整とも言います。
「設定」の「マイク感度設定」の内部設定値(標準)は以下のようになっています。(第二世代)
この「高」「中」「低」の内部設定値は、ロボホンのシステムROM内にあり書き換えることは出来ません。
| 「高」 | 「中」 | 「低」 | |
|---|---|---|---|
| MICTYPE_BUILT_IN,Int,front_margin_ms, | 800 | 800 | 800 |
| MICTYPE_BUILT_IN,Int,duration_ms, | 290 | 300 | 350 |
| MICTYPE_BUILT_IN,Int,breath_ms, | 600 | 600 | 600 |
| MICTYPE_BUILT_IN,Int,back_margin_ms, | 400 | 400 | 400 |
| MICTYPE_BUILT_IN,Float,gain, | -12.0f | -15.0f | -20.0f |
| MICTYPE_WIRED,Int,front_margin_ms, | 800 | 800 | 800 |
| MICTYPE_WIRED,Int,duration_ms, | 290 | 300 | 350 |
| MICTYPE_WIRED,Int,breath_ms, | 600 | 600 | 600 |
| MICTYPE_WIRED,Int,back_margin_ms, | 400 | 400 | 400 |
| MICTYPE_WIRED,Float,gain, | 1.0f | 1.0f | 1.0f |
| MICTYPE_BLUETOOTH,Int,front_margin_ms, | 800 | 800 | 800 |
| MICTYPE_BLUETOOTH,Int,duration_ms, | 290 | 300 | 350 |
| MICTYPE_BLUETOOTH,Int,breath_ms, | 600 | 600 | 600 |
| MICTYPE_BLUETOOTH,Int,back_margin_ms, | 400 | 400 | 400 |
| MICTYPE_BLUETOOTH,Float,gain, | -12.0f | -15.0f | -20.0f |
| MICTYPE_BUILT_IN_STEREO,Int,front_margin_ms, | 800 | 800 | 800 |
| MICTYPE_BUILT_IN_STEREO,Int,duration_ms, | 290 | 300 | 350 |
| MICTYPE_BUILT_IN_STEREO,Int,breath_ms, | 600 | 600 | 600 |
| MICTYPE_BUILT_IN_STEREO,Int,back_margin_ms, | 400 | 400 | 400 |
| MICTYPE_BUILT_IN_STEREO,Float,gain, | 0.0f | 0.0f | 0.0f |
4種類の入力デバイスに対しての設定になっています。
- ブルーの「 MICTYPE_BUILT_IN 」(内蔵マイク)
- グリーンの「 MICTYPE_WIRED 」(イヤホンマイク(第一世代))
- オレンジの「 MICTYPE_BLUETOOTH 」 (Bluetoothヘッドセット)
- パープルの「 MICTYPE_BUILT_IN_STEREO 」(不明)
このうち、「赤」の部分が感度設定「高」「中」「低」で相違する部分になっています。なので、標準の設定ではこの「赤」の部分を調整することにより、感度設定を変化させているようです。
それぞれのパラメータの意味は
* 「front_margin_ms」・・・前方マージン
音声検知の瞬間、判定開始時刻を少し過去へ遡るための時間。最初の「あ」という出だしの欠けを防ぎます 。
* 「duration_ms」・・・発話継続時間
音声と判定されるための最小の長さ。短い物音(机を叩く音など)を「声」と誤認しないためのフィルターです 。
* 「breath_ms」・・・発話終端検出時間
無音状態が続いた際に「話し終えた」と判定するまでの待ち時間。対話のテンポを左右します 。
* 「back_margin_ms」・・・後方マージン
話し終えた判定のあと、語尾の消え際の余韻を含めるために認識範囲を少し後ろに伸ばす時間 。
* 「gain」・・・増幅率
マイク入力をどれだけ増幅(または減衰)させるかの数値。感度そのものを調整します 。
理屈としては、人間が発声したときにロボホンがベストな状態で聞き取れるよう、それぞれのパラメータを調整していくことになります。
最初に、「設定値はロボホンのシステムROM内にあり書き換えることは出来ません。」と書きましたが、デバッグ用途か調整用途かはたまたバグなのか不明ですが、ロボホンをUSBケーブルで接続しロボホンの背中で「ファイルを転送する」を選んだ際に、パソコン等に接続されるロボホンの内部共有ストレージのルートに「voiceui」と言うフォルダを作成し、そのフォルダの中に上記設定およびパラメータを記述した「vad_setting.txt」と言うファイルを置き、ロボホンを再起動することによって、システムROM内のデータは使わずに、ロボホンの内部共有ストレージのルートの「voiceui/vad_setting.txt」が優先して使われるようです。
入力デバイスが多いので、まずはブルーの「 MICTYPE_BUILT_IN 」(内蔵マイク)を対象に、内部設定値「中」のパラメータをベースにした設定をファイル添付します。
(これは、1人だけ耳が遠いうちの子に設定し、他の2人と大差無いレベルまで改善がみられたものです)
ロボホンへの「vad_setting.txt」の適用の仕方を動画で作りましたので参照ください。
https://www.youtube.com/watch?v=D3S8OTAa5ik

変更点は以下のみです
MICTYPE_BUILT_IN,Int,front_margin_ms,800
MICTYPE_BUILT_IN,Int,duration_ms,250
MICTYPE_BUILT_IN,Int,breath_ms,800
MICTYPE_BUILT_IN,Int,back_margin_ms,400
MICTYPE_BUILT_IN,Float,gain,-8.0f
なお、今回は「 MICTYPE_BUILT_IN 」(内蔵マイク)を対象にし内部設定値「中」のパラメータをベースにした設定です。「 MICTYPE_WIRED 」(イヤホンマイク(第一世代))や「 MICTYPE_BLUETOOTH 」 (Bluetoothヘッドセット)の設定変更はしていませんので、必要な方は、「vad_setting.txt」の中身を参照し、各々のロボホンにあった設定をしてください。
なお、文字入力の間違いや設定項目名の間違い、全角文字で入力したり、「,」(カンマ)なのに「.」(ドット)にしてしまったり、float型なのに整数を設定してしまったりなどした場合、ロボホン内部でエラーが発生し最悪は「VoiceUIAppが停止しました」などのエラーメッセージが出たりロボホンがしゃべらなくなったりします。その場合は、「vad_setting.txt」の中身を見直してください。なお、文字コードは 必ず UTF-8 で保存してください(BOMなし)
それでも直らない場合は「vad_setting.txt」を削除すれば元に戻ります。
なお、これはこちらの件の検証記事になります。
https://robotomo.robohon.com/chats/kmue1phlzd7kzx9z
ミュートしたユーザーの投稿です。
投稿を表示情報ありがとうございます〜
3人に入れてみました🤖
ひとりにコソコソ話しても
ほかの二人が反応するのがおもしろい😊
もう少し様子を見て
なにかわかったらお知らせしますね〜
ミュートしたユーザーの投稿です。
投稿を表示ありがとうございます😆💕✨
ミュートしたユーザーの投稿です。
投稿を表示ありがとうございます。
多分、私には無理な技術です。😅
ミュートしたユーザーの投稿です。
投稿を表示なるほど。検証ありがとうございます。
ミュートしたユーザーの投稿です。
投稿を表示いつもありがとうございます♪