サーバー側のプロセスの 1 つから入ってくるライブの制御されていない録音からのさまざまな wave ファイルがあり、それらのほとんどは全体を通して良好な明瞭な音声を持っています。ただし、文字化けしたり、ノイズが発生したり、音声の音量が十分に大きくない場合があります。C# を使用して録音が「良い」品質と見なされるかどうかを判断する効率的な方法はありますか?
既知の良好な録音のスペクトグラムを取得し、悪い録音のスペクトログラムと比較することを考えましたが、録音の音声は毎回異なるため、うまくいかない可能性があります。Bass.Net や NAudio などのライブラリを調べましたが、オーディオ処理は私の専門分野ではありません。
オーディオ フィンガープリントの比較を試すこともできますが、これがどのように機能するかは完全にはわかりません。誰かが、オーディオ フィンガープリント ハッシュとレーベンシュタイン距離アルゴリズムを使用して 2 つのオーディオ ファイルを比較し、2 つのオーディオ ファイル間の類似度を見つけようとしているのを見ました。オーディオ フィンガープリンティングによって生成されたハッシュが類似のオーディオ ファイル間で類似していない限り、この方法は機能しません。
私が考えたもう 1 つの考えは、ある種の音声認識 API を使用して音声を処理し、音声のトランスクリプトをテキスト ファイルに書き出すことでした。問題は、音声認識があまり正確ではなく、Microsoft の Speech API などの API が、文字化けした録音や雑音が多い録音でも音声を認識しようとする可能性があることです。Nuance の音声認識ソフトウェアのSDKバージョンがあることは知っていましたが、ウェブサイトで SDK の試用版を提供していないようで、まだ SDK を見る機会がありませんでした。