タグ付けされた質問 「dynamic-range-compression」

1
ピーク制限/オーディオ圧縮式が必要
ピークを制限するためにオーディオ波形を効果的に圧縮する式を探しています。これは、ボリュームレベルを維持するためにアンプのゲインを制御する「自動ボリュームコントロール」アプリケーションではなく、個々のピークを制限(「ソフト」トランケート)したいのです。(私はこれが高調波を導入することを知っていますが、私はそれを聞くのではなく、データを分析しようとしています。) これまでの私の(非常に粗雑な)式は次のとおりです。 factor = (10 * average / level) + exp(-sqrt(0.1 * level / average)) ここで、レベルは、瞬時音圧レベルであり、平均は過去の平均音圧レベルであり、係数は「調整」レベル(生成するために使用される乗数である係数倍レベル)。 さらに、この乗数は、1未満の値に計算される場合にのみ適用されます。それ以外の場合、レベルは調整されません。 意図は、調整されたレベルを過去の平均のいくつかの倍数(この式では約15倍)に制限することです。この式は私が必要とするものですが、数値が大きくなるにつれて「落ち込み」を示します。つまり、調整されたレベル(つまり、factor × level)は、調整されていないレベルが増加するポイントまで増加しますが、漸近するのではなく、実際に小さくなり始めます。(実際、最初の要素は、主に数式が非常に高い値でゼロにならないようにするために追加されました。) (この方法で値を制限する理由は、主に一時的なノイズがサウンドレベルの移動平均を深刻に混乱させないためです。しかし、いびきを分析しているときは、「一時的なノイズ」はかなり重要なので、単純にそれを抑制できます。 。) それで、誰かがより良い何かを提案できますか?(漸近的振る舞いは、望まないときは簡単に生成できますが、そうするときは難しいようです。)

2
オーディオダイナミックレンジ圧縮の実装を支援する
JavaScriptでオーディオダイナミックレンジ圧縮を実装しようとしています(WebオーディオAPIを使用していません)。 サウンド技術者向けの記事は多く、高レベルのドキュメントもいくつかありますが、デジタルダイナミックレンジ圧縮を実際に実装するための参考資料は見つかりませんでした。 私が理解していることから、整流された信号の計算には少なくとも3つのステップがあります。 入力レベルの計算 信号に適用するゲインを計算する ゲインを適用する 私はオーディオをブロックで処理するので、1)は1つのブロックのRMSを計算することを考えていました 適切なリファレンスへのポインタはありますか?または、これを実装するために必要な手順を少し説明してくれる人はいますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.