10

Javaを使用してオーディオ.wavファイルから人間の音を抽出する必要があるプロジェクトに取り組んでいます。

オーディオ .wav ファイルには、犬、猫、音楽、人間などの 3 ~ 4 種類の音が含まれている場合があります。人間の音を識別し、オーディオ .wav ファイルからその部分を抽出する必要があります。

私はFFT.javaComplex.javaを使用しています。

ここで、ハード ドライブから audio.wav ファイルを読み取り、これをバイト配列に変換する AudioFileReader クラスを作成しました。次に、上記の FFT.java と Complex.java を使用して FFT.fft(bytesArray) を適用すると、代わりに Complex 配列が返されます。

問題は、返された複合配列から人間の音のバイトパターンを抽出する方法です...これを達成する方法を知っている人はいますか?


編集: 非常に単純な audio.wav ファイルを想定しています。たとえば、猫の音の後に無音、人の音の後に無音、犬の音の後に無音など。

4

3 に答える 3

2

このような問題を処理する標準的な方法は、入力信号をケプストラムまたはメルケプストラム表現に変換し、特徴空間の係数を使用して分類器に入力することだと思います。このような基本的なアプローチに基づいて、この種の問題の解決策を議論する多くの研究論文があります。たとえば、次のとおりです。

http://www.ics.forth.gr/netlab/data/J17.pdf

入力信号を AMBE などの低ビットレートのボコーダーに通してからデコードし、元の信号の品質をエンコード/デコードされた信号と比較することをお勧めします。これらのボコーダーは、音声以外の音を適切に表現できないという代償を払って、人間の音声を中程度から高品質で高度に圧縮するように設計されています。

于 2011-03-24T14:52:59.790 に答える
1

これは、AI によって実現できます (そして、それよりも少し手前です)。音声認識用の API を調査するかもしれませんが、バックグラウンドでノイズを含む信号をサポートする能力があるとは思えません。

例えば

  • それは猫ですか、それとも誰かが「ニャー」と言っていますか?
  • それは音楽ですか、それとも誰かが「do, re, mi..」と歌っていますか?
  • 「ポリーはクラッカーが欲しい」と言ったのは人間ですか、それともオウムですか?
于 2011-03-24T08:38:04.143 に答える
0

これは古典的なAIの問題です(機械学習/パターン認識)ウィキペディアの記事をご覧ください

ただし、基本的には、新しいデータを分類する方法を学習できるように、アルゴリズムにフィードするすでに分類されたデータが必要になります。ただし、100%の正確さは、この分野のほとんどすべてのものを幻想的に示すものですが、単純な問題の場合は可能である可能性があります(問題の正確な定義によって異なります)。

于 2011-03-24T13:49:38.470 に答える