HARK FORUM › harktool5-guiについて
- This topic has 6 replies, 2 voices, and was last updated 8 months, 1 week ago by yuito.
-
AuthorPosts
-
November 20, 2022 at 11:58 pm #2594
突然のご連絡失礼します、現在harktool5-guiを用いて伝達関数をtsp信号から求めようとしていたのですが画像のようなエラーが出てしまい生成がうまくできませんでした。
録音したtsp信号は同期録音ではないため各音源ごとに多少のずれがあります。
tsp信号はharkダウンロード時に得られるものを再生環境に合わせ変換したものを使用しておりrate:48000,float32bitのものを使用しました。以上の条件で何か問題があればお教えいただけると幸いです。
それともし伝達関数を生成するサンプルのtsp録音データなどがあれば頂けると幸いです。お忙しいとは思いますが何とよろしくお願いします。
Attachments:
November 24, 2022 at 8:16 pm #2596お問合せありがとうございます。
> tsp信号は同期録音ではないため各音源ごとに多少のずれがあります。
問題ございません。HARKTOOL5の下記のURLにある機能を使用して頂き、音が含まれる区間(start ~ end)を指定して頂くと伝達関数を作成できます。「Use TSP record Files」となっているところを「Use Mouth TSP Record Files」に変更すると設定用の項目が表示されます。
複素回帰モデルを用いた伝達関数推定> tsp信号はharkダウンロード時に得られるものを
「ダウンロード時に得られるもの」というのは下記のファイルという事で合っていますでしょうか。
/usr/share/hark/16386.little_endian.tsp または
/usr/share/hark/16386.little_endian.wav> 再生環境に合わせ変換したものを使用しておりrate:48000,float32bitのものを使用しました。
再生については制限がありませんが、収録するTSPは 16bit integer または 24bit integer の WAV ファイルで収録をお願いします。また、「再生環境に合わせ変換」とありますが、具体的にはどのように行われたのでしょうか。
アップサンプリングを行っても16kHzの入力(ナイキスト周波数の8kHzまでの音)までしか分離する事が出来ません。また、再生するTSPがアップサンプリングにより歪みますので音声などが目的の場合で16kHzでも十分な場合にはTSP信号自体をアップサンプリングするのではなく、16kHzのままで再生して頂いた方がベターです。再生デバイスは通常、複数のサンプリングレートに対応していますので16kHzのままでもファイルを再生できるはずです。音声の定位や分離が目的である場合は16kHzで十分に機能しますので、次のケース1または、ケース2のどちらかの方法で対応してください。
音楽や電子音など高周波数帯域の定位や分離も行いたい場合は、ケース3の方法で48kHz用のTSP信号で対応してください。その場合、音声認識に関しては通常16kHz(あるいは8kHz)用にモデルが作られているため、そのままでは音声認識が出来ない事に注意して下さい。
*) 我々が提供しているKaldiのモデルは16kHz用です。ケース1:16kHzで収録し、16kHzで処理する。
音声のみを対象としている場合は、こちらの手順を推奨します。
TSP収録時のマイク設定を16kHzにした状態(*)で収録して頂き、HARKで処理を行う際も16kHzで使用する。
伝達関数は16kHzで作成したものを使用します。
*) マイクデバイスが対応していれば、サンプリングレートを変更して収録が可能です。
arecord などでは -r オプションで収録するサンプリングレートが指定できます。ケース2:マイクの設定は48kHzのままで、収録時とHARK処理時にDownSamplingし、16kHzで処理する。
マイクが16kHzでの収録に対応していない場合はこちらの手順で16kHz対応のマイクと同様に処理できます。
HARKで「AudioStreamFromMicノード」の後に「MultiDownSamplerノード」を接続して48kHzを16kHzにダウンサンプリングする事が出来ます。TSP収録を「AudioStreamFromMic、MultiDownSampler、SaveWavePCM」という接続のネットワークで行って頂き、HARKで定位/分離処理を行うネットワークでも同様に「MultiDownSamplerノード」を挿入して頂く事で16kHzとして処理できます。
伝達関数は16kHzで作成したものを使用します。ケース3:
音楽や電子音のように高い周波数を含む48kHzの入力(ナイキスト周波数の24kHzまでの音)を分離したいという要望であれば、下記のURLにあるように48kHz用のTSP信号を使用する必要があります。
Recording TSP
HARKTOOLで不具合が発生する場合は、GUIを使用せずコマンドラインから作成しなければならない場合があります。エラーなどが発生しましたら再度ご連絡ください。> 伝達関数を生成するサンプルのtsp録音データなどがあれば頂けると幸いです。
サイズが大きいため公式サイトからのダウンロード提供は今まで行っておりませんでしたが、公開しているTAMAGO03の伝達関数を作成する際に使用したTSP収録データはございます。
ただし、こちらは16kHzで収録したデータになります。16kHz以外の例えば48kHzでのサンプルとなりますとご提供可能な(公開可能な)収録データがございません。
TAMAGO03用(16kHz)で宜しければ下記からダウンロード出来ように致しました。
TAMAGO03 TSP recording data
サイズを小さくするため 7-zip 形式で圧縮しておりますので、下記のように 7-zip を入れて頂いてから展開して頂けますでしょうか。sudo apt install p7zip-full 7z x tsp.7z
以上、宜しくお願い致します。
HARK support team.December 26, 2023 at 8:14 am #2685大変遅い返信で申し訳ありません。
あれから提示された録音方法と複素回帰モデルを用いた伝達関数推定を利用して無事伝達関数を生成することが出来、音声の処理を行っていたのですが、この度録音環境が変わり再度伝達関数を作り直したのですが、それにあたって質問したい点があったので返信させていただきました。
質問の内容としては現在取得出来ている伝達関数についてこれで正しいのかという点です。
マイク,TSP音源座標、伝達関数生成時の設定、結果は画像の通りです。
私が見る限りharktool5のドキュメントに乗っている画像のものとはかけ離れたようなものなのですが、正しく作成できているのでしょうか?以下環境説明になります。
録音方法としては16chの一直線型のマイクロフォンアレイを使用し、TSP信号は場所の都合上0度から150度で5度ずつで録音しております。なおかつ録音機器の都合上、録音はサンプリングレート48kHzで行いsoxを利用して16kHzにダウンサンプリングしており、16kHz,16bit integerの物を使用しています。再生している音源に関しては16386.little_endian.wavを17回連続で再生するものを使用しています。
前回同様録音に関しては極力差が無いように録音していますが同期録音ではない為、複素回帰モデルを用いた伝達関数推定を利用して伝達関数の作成を行っています。
他のトピックで音源を上げている方がいらっしゃったので音源も上げさせていただきます。ダウンロードに期間があるのでもし期限が切れていたら再度送信いたします。
https://92.gigafile.nu/1231-p6a9d0a4d980e64bfbf3525b5092e6f58
この様な場合新たなトピックを建てるのがよいのか分からなかったので返信させていただきました。迷惑であれば申し訳ありません。
お忙しいとは思いますが何とよろしくお願いします。Attachments:
December 26, 2023 at 3:02 pm #2690座標系が90度方向で正面(*1)となっているようでしたので、その部分だけ注意が必要ですが頂いた内容から判断する限り伝達関数自体は問題ないのではないでしょうか。
*1) マイクアレイを前後の縦長に配置してマイクアレイの左側だけで音源を収録されたのであれば座標系は0度が正面になっています。その場合は、以降の内容で座標系の回転の話については読み飛ばしてください。
> harktool5のドキュメントに乗っている画像のものとはかけ離れたようなものなのですが、
マイクアレイ形状、環境などが全く異なるので掲載画像と異なること自体は問題ございません。
> 16chの一直線型のマイクロフォンアレイを使用し、
マイク間が 3cm の等間隔で 16個 並んでいるという設定に見えますが相違なければ大丈夫です。
ただ我々が想定している HARK の座標系において、マイクの配置方向が想定と異なっているように見えます。
4.5 HARK 標準座標系 にあるように、我々の想定では X=1.0, Y=0.0, Z=0.0 がマイクアレイの正面方向(0度方向)という想定で HARK を使用しております。
microphones.png を拝見する限り、マイクが左右に長く並んでいるのであれば座標系が90度回転している(我々の想定では正面が0度:X=1.0が正面、yuito様の座標系では右が0度で正面が90度:Y=1.0が正面)となっていること以外は問題が無いように見えます。角度の定義を90度読み替えて頂ければ現状のままでも問題はございません。> TSP信号は場所の都合上0度から150度で5度ずつで録音しております。
マイク配置でもお伝えした通り、90度座標系が回転しているようでしたので 0度(マイクアレイから見て右)から150度(マイクアレイから見て左やや前方)の範囲の音源位置で収録された音源であれば問題ございません。90度が正面となりますのでご注意ください。
soundsource.png の内容ではそのようになっています。
マイク配置の座標を修正して正面が0度となるように回転させる場合は、音源位置の座標も同じく回転させてください。> 録音機器の都合上、録音はサンプリングレート48kHzで行いsoxを利用して16kHzにダウンサンプリングしており、16kHz,16bit integerの物を使用しています。再生している音源に関しては16386.little_endian.wavを17回連続で再生するものを使用しています。
収録されたTSPを見る限りでは問題は起きていないようです。sox と HARK のダウンサンプラーのアルゴリズムに差がある可能性も考慮すると HARK で収録した方がベターですが波形やスペクトログラムを見る限りでは特に問題は無いように見受けられます。
> 伝達関数についてこれで正しいのかという点です。
kekka.png ですが、 Domain を周波数ドメインから時間ドメインに変更して頂くことでインパルス応答の時間波形となりますので正常に変換されているか確認しやすいのではないでしょうか。また、その際に TF type を Localization ではなく Separation に切り替えて頂くことで残響を含めたインパルス応答波形となります。定位には直接音のみを使用するため残響部分がカットされています。
通常の環境であれば、インパルスのピーク波形(大きな振幅)の後に残響(小さい振幅が減衰して続く)が出ていれば問題ないはずです。> この様な場合新たなトピックを建てるのがよいのか分からなかったので返信させていただきました。迷惑であれば申し訳ありません。
前回から継続のお問い合わせ、前回と関連するお問い合わせなどでしたら、返信、新規どちらでも問題ございません。時間が空いても前回の話と関連する場合は返信で問題ございませんのでお気軽にお問い合わせください。
複数件のお問合せや、別件のお問合せなどの場合は分かりやすいタイトルを付けてトピックを分けて頂くことでご質問内容ごとの回答となり後で見る際に内容を追いやすく、同じ内容でお困りの方の助けとなりますので新規のトピックで建てることもご検討ください。以上、宜しくお願い致します。
- This reply was modified 12 months ago by Masayuki Takigahira.
December 31, 2023 at 8:58 pm #2692返信ありがとうございます。
返信内容について変更を行ったのでそれについて確認したくお返事させていただきました。
まず座標系の話ですが画像の通りマイクの向きや音源の位置に関しても変更を行いました。そして簡単ではありますが私の録音環境についても図にまとめた物を添付しておいたので確認してくださると幸いです。
それと伝達関数についてはTime domainの方を確認したのですが
>通常の環境であれば、インパルスのピーク波形(大きな振幅)の後に残響(小さい振幅が減衰して続く)が出ていれば問題ないはずです。
と変身をいただいたのですが見る限りだと後ではなく先に残響が出ている気がするのですが大丈夫でしょうか?それと一応過去この部屋で録音した伝達関数も添付していおいたのですが同じ部屋でこれほどに伝達関数が変化することはあるのでしょうか?
年末年始で忙しいかと思われますがお返事のほどよろしくお願いします。
画像が多くなってしまったので今回もギガファイル便で一部のファイルを送らさせていただきます。
https://30.gigafile.nu/0114-d14aa2da6f6c24e6ad158b3140ddfc7b5Attachments:
January 10, 2024 at 7:54 pm #2697追加情報ありがとうございます。
> > 通常の環境であれば、インパルスのピーク波形(大きな振幅)の後に残響(小さい振幅が減衰して続く)が出ていれば問題ないはずです。
> と変身をいただいたのですが見る限りだと後ではなく先に残響が出ている気がするのですが大丈夫でしょうか?time.png を拝見しました。インパルス波形以外に若干振幅が出ていますが振幅も小さく残響ではないようです。残響の場合は、インパルスの後に減衰しながら振動する波形が出ます。収録環境によるのですが、 time.png の画像からは殆ど残響がない空間で収録をされているように見えます。
> それと一応過去この部屋で録音した伝達関数も添付していおいたのですが同じ部屋でこれほどに伝達関数が変化することはあるのでしょうか?
kakonomono.png と frequency.png を拝見しました。収録環境やマイク、スピーカの特性により frequency.png のような状況になる可能性はあるのですが、今回は何らかの問題が起きていると考えられます。まず、 frequency.png の5kHz以下の振幅が殆どみられません。収録されているお部屋が同じであるとのことですので、マイクやスピーカ、アンプ等の機材の変更などある場合は特性が違うということになるのですがバンドパスフィルタがかかったかのような極端な波形となっています。
何点か確認させて頂けないでしょうか。
・1点目
transfer_function.png で TSP Offset や Mouth TSP Start が 48384 となっていることを確認しました。TSPはダウンサンプリング後のPCMファイルを HARKTOOL に入力されているという認識ですが違いますでしょうか。また、初期値が 16384 になっていたはずですが変更されましたでしょうか。TSP Offset が行われる理由は繰り返し再生するTSPの最初の1回分(16384サンプル分)には残響が含まれない為です。複素回帰モデルで作成する場合は音が含まれている区間を指定するだけなので影響が少ないですが、通常の同期TSPの場合は加算平均を行うため残響が含まれない1回をスキップしています。・2点目
Mouth TSP Start ~ Mouth TSP End の区間が 16384 サンプル分となっていましたが、TSP1回分(16384サンプル分)だけの区間に設定されている理由(例えば収録中に雑音が入ったので雑音の無い区間だけにしたなど)がございますでしょうか。TSPは16回繰り返して再生しているため長めに例えば 10 回分の 163840 サンプル分ぐらいの範囲で設定された方が精度が上がります。・3点目
前回伝達関数を作成された際 (kakonomono.png) の収録時点から今回の収録で変更のあった部分について差し支えない範囲でお伺いしても宜しいでしょうか。例:部屋の壁面に吸音材を貼り付けた、機材を**から**に変更した、など。また、1~2方向分だけで良いので収録されたTSPのオリジナル(ダウンサンプリング前)のWAVファイルを頂く事は可能でしょうか。以上、宜しくお願い致します。
April 18, 2024 at 8:02 pm #2739返信が遅れてしまい申し訳ありません。
まず1点目ですが、録音を行う際に出来るだけ各音声のずれをなくしたいと思っていたので録音開始からTSP信号再生までの操作を自動で行う様に設定して録音を行っており、その結果最初のTSP信号再生までに2秒間の余白がすべてのTSP録音ファイルに存在しているので、その余白分(32000)とTSP信号(16384)を足した48384と設定していました。
>TSPはダウンサンプリング後のPCMファイルを HARKTOOL に入力されているという認識
についてはこの認識であっています。次に2点目ですが、これは私がページの説明を正確に理解しておらず初期設定の値を1点目で説明した値と調整して変更させたものになり、特段理由はありません。
最後に3点目ですが、録音にあたって部屋の模様替えを行っているので録音している場所が部屋の中で変わっているという点と過去に録音した際はZOOM社のZOOMF8 Multi Track Field Recorderで8チャンネルで録音していましたが、今回の録音ではRoland社のSTUDIO-CAPTUREを使用し16チャンネルで録音を行いました。そしてこの機材の変更によりダウンサンプリングの処理が必要になっています。
それとダウンサンプリング前のTSP信号の録音について、こちらはギガファイル便で送らせていただきます。
https://88.gigafile.nu/0423-k86af02dd332a362bcdc37e7de709ae3eそれと前回送らさせていただいた伝達関数なんですが画像を送り間違えていて正しい画像を添付させていただきます。申し訳ありません。
それと、環境が変わってから正しいと思われる伝達関数が一度も出力出来ておらず、こちらのHARKの環境が悪い可能性があると考えていて、前頂いたTAMAGO03の録音データの正しい伝達関数と入力する値などのデータを頂けないでしょうか?
もし頂けるならばその値で正しく結果が出力されるのか検証したいと思っています。以上になります。改めて返信遅れて申し訳ありません。よろしくお願いします。
Attachments:
-
AuthorPosts
- You must be logged in to reply to this topic.