ユーザーがmp3ファイルをインポートできるバックエンドの音声認識ソフトウェアを開発しています。このデジタル オーディオ ファイルから特徴を抽出するにはどうすればよいですか? 最初にアナログに戻す必要がありますか?
2 に答える
アナログとデジタルという用語を間違って使用しているため、質問が不明確です。アナログは、電圧、圧力などの実世界の連続関数です。デジタルは、アナログ信号の離散 (サンプリング) および量子化されたバージョンです。MFCC を計算するときは、オーディオ フレームの FFT を計算する必要があります。デジタル信号からのみ MFCC を抽出できます。アナログ信号でそれを行うのはむしろ不可能です。
mp3 ファイルから MFCC を抽出できるかどうかを尋ねている場合は、はい - 可能です。必要なのは、標準アルゴリズムを実行することだけであり、機能を取得できます-明らかに、それはその質問の仕様外です。
- データ フレームの FFT を計算します。
- サンプルを 2 乗して PSD を計算します。
- mel-filterbank を適用し、バンク全体のエネルギーを合計します。
- 各エネルギーの対数を計算します。
- エネルギーの対数の DCT を計算します。
@jojekがデジタル信号ですべてを行うことができると言ったように、あなたはここで物事を混乱させています。これはチュートリアルのかなりの場所です:
これはより実用的です:
http://www.speech.cs.cmu.edu/15-492/slides/03_mfcc.pdf
ウィキペディアから: [ http://en.wikipedia.org/wiki/Mel-frequency_cepstrum]
MFCC は一般的に次のように導出されます:[1][2]
信号 (ウィンドウ処理された抜粋) のフーリエ変換を行います。短時間フーリエ変換を意味します)
上で取得したスペクトルのパワーを、三角形のオーバーラップ ウィンドウを使用してメル スケールにマッピングします。(上記のリンクに記載されている計算)
各メル周波数でのパワーの対数を取ります。
あたかも信号であるかのように、メル ログ ベキのリストの離散コサイン変換を取ります。
MFCC は、結果として得られるスペクトルの振幅です。
そして、これをよりよく理解するのに役立つMatlabツールボックスがあります: