libsamplerateを使用してオーディオファイルをリサンプリングすることを考えていますが、これはかなり単純に思えます。
FAQには、リサンプリング後、オーディオを正規化する必要があると記載されていますが、その方法がわかりません。
オーディオサンプルは(-1.0、1.0)の範囲にある必要があると記載されています。それはただの場合ですか:
- この範囲から最も遠いサンプルを見つける
- 値が-1.0または1.0になる係数を計算する
- その係数をオーディオファイルのすべてのサンプルに適用しますか?
libsamplerateを使用してオーディオファイルをリサンプリングすることを考えていますが、これはかなり単純に思えます。
FAQには、リサンプリング後、オーディオを正規化する必要があると記載されていますが、その方法がわかりません。
オーディオサンプルは(-1.0、1.0)の範囲にある必要があると記載されています。それはただの場合ですか:
基本的には、絶対値が最大のサンプルを見つけて、すべてのサンプルをこの値で除算する必要があります。これにより、すべてのサンプルが(-1.0,1.0)の範囲に収まります。もちろん、事前にオーディオデータ全体にアクセスできる必要があります(たとえば、3秒後に取得するサンプルがわからないため、ストリームを正規化することはできません)。
ただし、この操作により、知覚されるラウドネス(「音量」)が変化する可能性があることに注意してください。リサンプリング後も全体的なラウドネスを維持したい場合は、リサンプリングの前後でラウドネスを測定し、適切な係数を適用する必要があります。