機械学習の教育プロジェクトとして、音声識別システムをゼロから作成することを考えていました。以前に彼/彼女の声で訓練された後、彼/彼女の声から話者を識別できるはずです。
この課題に取り組むには、どのようなアプローチを取る必要がありますか?具体的には、そのようなシステムはどのように高レベルで機能するのでしょうか。
アドバイスをいただければ幸いです:)
機械学習の教育プロジェクトとして、音声識別システムをゼロから作成することを考えていました。以前に彼/彼女の声で訓練された後、彼/彼女の声から話者を識別できるはずです。
この課題に取り組むには、どのようなアプローチを取る必要がありますか?具体的には、そのようなシステムはどのように高レベルで機能するのでしょうか。
アドバイスをいただければ幸いです:)
機械学習アルゴリズムを使用するには、最初に、フィードする機能を定義する必要があります。
最も簡単な方法は、オーディオ信号のフーリエ変換を計算し(任意のFFTツールを使用して、かなり標準的です)、周波数とその振幅に関する情報を使用して特徴ベクトルを作成することです。
十分でない場合は、スペクトログラムを使用して時間情報を追加できます。
機能が正しく設定されると、お気に入りの分類アルゴリズムで遊ぶことができます!!!
Pythonを使用している場合、FFT部分の実行方法を説明するこの質問を見つけました: PythonでのスペクトログラムのFFT
簡単な話者識別を一度行いました。
高調波によるスペクトルの周期性、および人間の耳で感知されるラウドネスを説明するメル周波数ケプストラム係数(MFCC)などの機能を使用することをお勧めします。
次に、学習フェーズで機能をクラスター化して、統計モデルを取得できます。私はこれにVQを使用しました。これは、この特定の用途には非常に恐ろしいものですが、それでも使用可能な結果が得られました。次に、識別フェーズで、さまざまな話者を表すさまざまなモデルに入力データを適合させようとします。フィットが良いほど、エラーは低くなります。記録の長さに対してスコアを正規化することを忘れないでください。
また、話者識別を改善する良い方法は、無音と非音声を除外することです。