6

私はこれについてしばらくの間興味があったので、多分ここに投稿することでいくつかの良い答えを得ることができると思いました。

私がこれまでに知っていること:

人間は両耳を使って、「どのように聞こえるか」だけでなく、どこから来ているのかを知ることができます。ピッチは私たちが聞く音であり、人間の声のようなものにはさまざまなピッチが重ねられています(純音ではありません)。

私が知りたいこと:

音がどこから来ているのかを知ることができるプログラムを書くにはどうすればよいですか?理論的な観点からは、2つのマイクが必要です。次に、マイクに着信するサウンドデータを録音し、オーディオデータを[streamA、streamB]のようなタプルに入れることができるようにオーディオデータを保存します。

音の出所である音声に基づいて計算する公式/数学的な方法があるのではないかと思います。また、ストリームデータを取得して学習者をトレーニングし(サンプルオーディオを提供し、オーディオの出所を教えて)、着信オーディオをそのように分類することも可能だと感じています。

これを行うための最良の方法は何ですか/主題についてもっと学ぶことができる良いリソースはありますか?

編集:

例:

          front

左(マイク)x ======== x(マイク)右

          back

                            x (sound source should return "back" or "right" or "back right")

聞こえる音のほとんどを前後左右に戻せるプログラムを書きたいです。私が理解していることから、「前方」に向けられた2つのマイクを設定するのは簡単なはずです。これに基づいて、サウンドを三角測量し、マイクとの関係でソースがどこにあるかを知る方法を見つけようとしています。

4

4 に答える 4

5

多相マイクロフォン アレイ、特に水中方向探知に使用されるもの (つまり、冷戦中の潜水艦研究の大きな分野 - モーター音はどこから来て、魚雷を狙うことができるか?) に関する研究論文を調べると、 2 つ以上のマイク入力が与えられた場合に、音の位置を見つけるために必要な技術と数学が見つかります。

ただし、これは重要であり、ここで広く議論できるものではないため、必要なことを実行するための簡単なコード スニペットやライブラリを見つけることはできません。

主な問題は、エコーと影をなくすことです。単純な方法は、単一のトーンから始めて、そのトーン以外のすべてを除外し、そのトーンの 2 つのマイク間の位相差を測定することです。位相差により、トーンの位置に関する多くの情報が得られます。

次に、エコーとマルチパスの問題 (これらの多くは、最も強いトーン以外をすべて削除することで解消できます) に対処するか、単一のトーン以外のもの (話している人、または例えばガラス割り。小さく簡単に始めて、そこから拡張します。

于 2011-12-29T17:37:25.507 に答える
2

これは興味深い問題です。これに関する参考資料は知りませんが、オーディオ ソフトウェアと信号処理の経験があり、正しい方向に導くのに役立つ可能性があります。

音源の方向 (音があなたの周りから来ている場所) を決定するのは非常に簡単です。6 つの指向性マイクを取得し、上下左右に向けます。音に反応するマイク信号の相対的な振幅を見ることで、特定の音がどの方向から来ているかを簡単に判断できます。解像度を上げるには、マイクの数を増やします。

2 つのマイクは、音が右から来ているか左から来ているかだけを教えてくれます。音があなたの前から来ているのか後ろから来ているのかを 2 つの耳が判断できるのは、耳の外側の構造が方向に応じて音を変化させ、脳がそれを解釈して修正するためです。

于 2011-12-29T01:47:30.810 に答える
2

相互相関は主な方法ですが、いくつかの詳細があります。マイク アレ​​イを使用してソースを効率的に検出するのに役立つさまざまなアプローチがあります。キャリブレーションなしで動作するものもあれば、部屋の形状に適応するためにキャリブレーションが必要なものもあります。

ソース ローカリゼーション タスク用に既存のオープン ソース ソフトウェアを試すことができます

Manyears ロボットの音源分離と定位 https://sourceforge.net/projects/manyears/

ロボティクス アプリケーション用の HARK ツールキット http://www.ros.org/wiki/hark

于 2011-12-29T17:31:04.443 に答える