問題タブ [mfcc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - Matlab を使用して MFCC から音声 HMM をトレーニングする
これに関する多くの記事を読みましたが、どうすればよいのかわかりません。
MFCC 機能を HMM に使用して、基本的な音声認識システムを構築しようとしています。ここで入手できるデータを使用しています。これを行うためにMatlabを使用しています。
これまでのところ、このライブラリを使用して音声ファイルから MFCC ベクトルを抽出しました。私が理解していないのは、HMM でこれらの機能をどのように使用するかです。
HMM のトレーニング方法を教えてください。私は、matlab にある hmm 実装を使用しています。うーんの仕組みを実際に理解しようとしているので、他のライブラリを紹介しないでください。
遷移行列と放出行列を初期化するにはどうすればよいですか?
それぞれの状態が単語の特定の音素を発すると仮定しています。では、HMM をトレーニングするには、どのように MFCC ベクトルを渡せばよいのでしょうか?
HMM をトレーニングするにはどのような手順を踏む必要がありますか?
HMM の matlab 実装関数をここに示します。
編集: 長い時間が経ちましたが、ヒットしたビューの量によって質問がまだ関連していると思います。コードは私の GitHub で見つけることができます。
mfcc - Android の PocketSphinx で MFCC 機能を抽出する方法
最近、Android Studio 用の PocketSphinx Android Demo をダウンロードしました。私のGalaxy S5で動作しましたが、実際にその精度に驚いています. ただし、いくつかの理由で MFCC 機能を抽出するのに苦労しています。
FrontEnd クラスを使用して MFCC 機能を生成する方法についての説明がありますが、これは Sphinx-4 実装用に書かれています。次のような行を含む sphinx プロパティ ファイルを実装する方法と場所:
<"コンポーネント名="mfcFrontEnd" タイプ="edu.cmu.sphinx.frontend.FrontEnd">
これは、PocketSphinx で Sphinx-4 ライブラリを使用するにはどうすればよいかという疑問につながります。
audio - librosa mfcc には周波数選択 API がありますか
MFCC アルゴリズムに渡す周波数帯域を選択できる API はありますか?
私は 2 つの異なるマイクを持っているとします。それぞれが異なる周波数範囲を持ち、1 つが 0~12000Hz、もう 1 つが 0~20000Hz であることは明らかです。1 つ目と 2 つ目の結果の FFT は、音源を保存するために録音している場合でも非常に異なります。たとえば、n_component を 13 に設定すると、低周波ソース (10Hz) と中程度のソース (6000Hz) があり、最初の FFT ではインデックス 0 と 6 にハイライトが配置され、2 番目のハイライトは 0 に配置され、 3.
MFCC の結果ベクトルには、本来あるべきではない大きなユークリッド距離があります。
周波数シーリングを選択できれば、FFT結果の計算後に10000Hz以上の周波数をカットすることができます。その場合、MFCC ベクトルは近い可能性が高くなります。
これを達成できる方法または微調整がある場合は、お知らせください。(この場合、ローパス フィルターは機能しません)
大変感謝します!
以下はスペクトログラムで示した違いです(同じ音源別のマイク)
machine-learning - MFCC を使用した単純な単語検出器
メル周波数ケプストラム係数を使用した音声認識用のソフトウェアを実装しています。特に、システムは指定された単一の単語を認識しなければなりません。オーディオ ファイル以降、12 行 (MFCC) と音声フレーム数と同じ数の列を持つマトリックスで MFCC を取得します。行の平均を作成するので、12 行のみのベクトルが得られます (i 番目の行は、すべてのフレームのすべての i 番目の MFCC の平均です)。私の質問は、分類子をトレーニングして単語を検出する方法です。いくつかのオーディオ ファイル (同じ単語の複数の登録) から取得した MFCC であるポジティブ サンプルのみを含むトレーニング セットがあります。
matlab - MFCC を使用して ASR システムでユーザーを識別するために抽出される機能またはパラメーターは何ですか?
テスト段階で MFCC がスピーカーから抽出する機能は何ですか?
mfccステップを計算する方法は次のとおりです。
信号を 10 ~ 30ms の小さなフレームに分割します
ウィンドウ関数を適用します (ハミング [原文ママ] はサウンド アプリケーションに推奨されます)
信号のフーリエ変換を計算します。
DFT を使用して、メル周波数ケプストラム係数を計算するには、次のようにします。
パワー スペクトルを取得: |DFT|^2
三角バンク フィルターを計算して hz スケールをメル スケールに変換します。
ログスペクトルを取得
離散 cos 変換を適用する
これらを行うことで、係数が得られます。しかし、これらの係数がユーザーの声とどのように関連しているかを知りたいです。これらの係数は何を表していますか?
speech-recognition - Aquila ライブラリを使用して 2 つの話し言葉を MFCC と DTW で比較する
aquilaライブラリを使用して、話し言葉の類似性を見つけようとしています。私の現在のアプローチは次のとおりです。
1) まず、話し言葉を小さなフレームに分解します。
2) 次に、各フレームに MFCC を適用し、結果をベクトルに格納します。
3) 最後に DTW を使用して距離を計算します。
これは私が使用しているコードです。
十分に正確でないことを除けば、うまく機能します。場合によっては、「start」と「stop」という 2 つの単語の「start」の間隔よりも、「start」と「stop」の間隔が短くなることがあります。
私のコードは正しいですか?より正確な結果が得られるようにプログラムを改善するにはどうすればよいですか? どんな助けでも大歓迎です。
ありがとう。
signal-processing - MFCC を使用してデジタル信号をアナログに変換せずに、デジタル信号から特徴を抽出することはできますか?
ユーザーがmp3ファイルをインポートできるバックエンドの音声認識ソフトウェアを開発しています。このデジタル オーディオ ファイルから特徴を抽出するにはどうすればよいですか? 最初にアナログに戻す必要がありますか?
python - Python オーディオ信号分類 MFCC 機能ニューラル ネットワーク
音声信号を音声から感情に分類しようとしています。この目的のために、オーディオ信号の MFCC 機能を抽出し、それらを単純なニューラル ネットワーク (PyBrain の BackpropTrainer でトレーニングされた FeedForwardNetwork) にフィードします。残念ながら、結果は非常に悪いです。5 つのクラスから、ネットワークはほとんどの場合、結果として同じクラスを思いつくようです。
私は感情の 5 つのクラスと約 7000 のラベル付きオーディオ ファイルを持っています。これを分割して、各クラスの 80% をネットワークのトレーニングに使用し、20% をネットワークのテストに使用します。
アイデアは、小さなウィンドウを使用し、それらから MFCC 機能を抽出して、多くのトレーニング サンプルを生成することです。評価では、1 つのファイルのすべてのウィンドウが評価され、多数決によって予測ラベルが決定されます。
さて、ご覧のとおり、クラス全体の結果の分布は非常に悪いです。クラス 0 と 2 は決して予測されません。これは、ネットワークまたはおそらくデータに問題があることを示唆していると思います。
ここに多くのコードを投稿することもできますが、MFCC 機能に到達するために行っているすべての手順を次の図に示す方が理にかなっていると思います。説明のためだけに、ウィンドウなしで信号全体を使用していることに注意してください。これは大丈夫に見えますか?MFCC の値は非常に大きいですが、もっと小さくすべきではありませんか? ([-2,2] までのすべてのデータに対して minmaxscaler を使用してネットワークに供給する前に、それらをスケールダウンし、[0,1] も試しました)
これは、MFCC 機能を抽出するために離散コサイン変換の直前に適用する Melfilter バンクに使用するコードです (ここから取得しました: stackoverflow )。
より良い予測結果を得るにはどうすればよいですか?