音声の帯域幅に一致する通過帯域フィルターを使用すると役立ちます。
複数のマイクを持っている場合(現在は携帯電話の場合)、それを利用できるICAに似た方法がたくさんありますが、質問は、入力が1つしかないことを示唆しています。
あなたがしたいのは、「シングルマイクソース分離」(Roweisの画期的な論文から取られた名前)であり、「シングルセンサー」とも呼ばれます。警告:これは解決された問題とはほど遠いものであり、この分野のすべての研究はごく最近のものであり、アルゴリズムやアプローチが「明確な勝者」になることはありません(ガウス混合モデル+ FSTが音声認識用であったのとは異なります)。
そのための良いフレームワークは、Wienerフィルタリングを使用することです。Benaroyaらを参照。「ウィーナーフィルタリングとマルチウィンドウSTFTに基づく単一センサーソース分離」(セクション1と2をお読みください。本当に必要な場合を除き、多重解像度のことは気にしないでください)。要するに、信号のSTFTを計算し、各STFTフレームについて、音声スペクトルとノイズスペクトルの推定値を取得しようとし、Wienerフィルタリングを使用して、そこから音声スペクトルの最良の推定値を復元します(これスペクトルを「ソフトマスキング」するようなものです)。
問題は次のとおりです。STFTフレームが与えられた場合、そのフレームから音声とノイズ成分を推定します。Benaroyaの論文で説明されている簡単なアプローチは、ベクトル量子化によるものです。多くの話者が数時間音声を聞き、STFTを計算し、LBGを実行して512または1024の典型的な音声フレームのコードブックを見つけます。ノイズについても同じことを行います。次に、入力信号のフレームが与えられたら、それを非負方向に投影し(乗算勾配更新手順については論文で説明されています)、音声ベースとノイズベースに入力すると、音声とノイズの推定値が得られます。非負の射影を処理したくない場合は、最も近いものを使用してください。これは、「シングルセンサーソース分離」部門でおそらく機能する最も単純なものです。
音声認識システムは、実際に分離システムに何らかの入力を提供できることに注意してください。音声認識システムを使用して、デコードの最初のパスを実行します。各フレームについて、最高のスコアを獲得したガウス分布から平均MFCCベクトルを取得します。反転してスペクトルに戻します。ブーム、音声のようなビットの最も可能性の高いスペクトル位置を提供するマスクがあり、Wienerフィルタリングの入力として使用できます。これは少し手を振ったように聞こえますが、要点は、ソースを分離するには適切なモデルが必要であり、逆向きの音声認識システムは、音声信号の優れた生成モデルの地獄です。