-1

Pythonでオーディオバイト配列データを指定すると、

inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK, card)

# Set attributes: Mono, 48000 Hz, 16 bit little endian samples
inp.setchannels(1)
inp.setrate(48000)
inp.setformat(alsaaudio.PCM_FORMAT_S16_LE)
l, data = inp.read()

デジタル クリッピングを検出する方法?

4

1 に答える 1

1

オーバードライブは基本的にゲインディストーションです。ドライバーがトップをカットするところまで電圧を上げ、信号を歪ませます。これをデジタル的にテストする必要がある場合は、ハード クリッピングになります。そのため、最大しきい値を超える値を検索する必要があります。16 ビット オーディオ ファイルでは、クリップはその性質上 0db になります。保存するビットが残っていない場合、ソフトウェアは自動的に 16 ビット整数が保持できる最大値に切り捨てます。残念ながら、トラックが以前に歪んでいて、音量を下げてミックスに溶け込ませていた場合、おそらくそれを見つけることはできません. そうでない限り、調べているのはトラック上の唯一の音源です。その場合は、トラックの最大値を見つけて、それをしきい値として設定します。ただし、ハード クリッピングは方形波として表示されるため、一般的な可聴波よりも長い時間連続して同一の値を検索することができます (正当な方形波トーンを無視するため)。それは私があなたのためにできる最善のことです。

于 2013-05-17T22:12:29.773 に答える