2

.wav または .mp3 ファイルからアルゴリズムで音質を判断する方法はありますか?

基本的に、私にはさまざまな録音設定を持つユーザーがいます (つまり、彼らは世界中から来ており、私はそれらを制御することはできません) オーディオを mp3/wav ファイルに録音しています。その時点で、ソフトウェアはセットアップが適切かどうかを判断する必要があります (残念なことに、何らかの理由で、彼らは自分の録音を聞くだけではこの判断を下すことができません。音量が小さい、またはノイズが大きい)。

マイクのレベルが問題ないことを確認するために音量チェックを行っていました。残念ながら、これはボリュームが高いが明瞭度が低い場合を見逃しています。多くのバックグラウンド ノイズがある場合に検出する、(理想的には Python で) 実行できる何らかの標準スキャンがあるかどうか疑問に思っています。

考えられる解決策の 1 つは、完全な無音を録音してから、音声録音と比較し、「無音」録音の音量が音声録音の音量に近すぎる場合、オーディオを「悪い」と見なすことです。しかし、それはスピーカーから良いサンプルを得ることができるかどうかにかかっています。

そのため、代わりにオーディオ ファイルをスキャンして (これらの長さは ~10 秒になります)、サウンド ファイルが「ノイズが多い」かクリアかを認識する方法があるかどうか疑問に思っています。

4

3 に答える 3

1

それはすべて、あなたの質問から100%明確ではない品質の問題が何であるかに依存しますが、ここにいくつかの提案があります:

音量が大きく明瞭度が低い場合、問題はユーザーの入力ゲインが高すぎることだと思います。録音後、歪みを簡単に確認できます。さらに良いことに、録音中に自動ゲイン コントロール (AGC) を使用して、これを最初から防ぐことができます。

ノイズが多すぎる場合は、スピーカーがマイクから遠すぎることが問題だと思います。この場合、スティーブの提案は機能するかもしれませんが、実際に機能させるには、サンプルの録音を比較し、統計を作成して、どのように識別できるかを確認するために、大量の作業を行う必要があります. 実際には、これは大変な作業だと思います。より簡単で機能する可能性が高い (必ずしも保証されているわけではありませんが) と私が考えるより単純な代替手段は、信号のエンベロープを作成し、それからヒストグラムを作成し、ヒストグラムが既存の良好な記録と不良な記録とどのように比較されるかを確認することです。音声のみについて話している場合、信号を 3 つの周波数帯域に分割できます (時間領域フィルターを使用して、

繰り返しになりますが、録音中に AGC を使用します。AGC が入力ゲインを高く設定する必要があると判断した場合、それはおそらく悪い録音です。

于 2013-06-26T17:22:33.697 に答える
0

私の専門分野ではありませんが、スペクトルを取得し (おそらくフーリエ変換を行います)、「良い」録音と「ノイズの多い」録音を比較すると、ノイズがクロス スペクトル レベルに寄与し、悪い録音ではより高いことがわかると思います。良いより録音。SciPy の信号処理セクションを見てください - これはおそらく役に立ちます。

于 2013-06-26T14:51:47.307 に答える