問題タブ [replaygain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1665 参照

android - ReplayGain 値をボリューム調整に変換する

ストック Android/AOSP 音楽プレーヤー アプリに Replay Gain (つまり、音楽ファイルの replaygain タグに応答) を実装しようとしています。これは単なる個人的なプロジェクトですが、将来的にはパッチとして提供したり、独自のライブラリやプレーヤーを作成したりできます。私は最初のインスタンスでトラック ゲインだけを見ています。私の質問の性質は、おそらく私が数学に失敗したという事実にかかっています;)

タスクは 2 つのことを行うことです: A) 再生を開始する前に、ボリュームをデバイスの最大 -14dB (またはそれ以上、一部のソースでは -23dB とアドバイスされています) にクランプします。B) 各トラックの再生が始まる前に、そのタグを読み取り、その dB 数だけ調整します。

Android での再生音量の調整には対数スケーリングも含まれていることがわかりますが、私は対数に慣れていないので、それが物事をより簡単にするのか、それとも 2 倍 (10 倍?) 難しくするのかわかりません。

デシベル値を MediaPlayer.setVolume() の使用可能なパラメータに変換する方法について、私が欠けている手がかりを教えてください。ヒントをありがとう。

編集:接続が必要になる可能性のある(おそらく不安定な)主張がいくつかありますが、それらのいずれかが頭脳明晰であるかどうかを伝える必要があります。

  1. ReplayGain は、-14 dBFS == 89dB SPL のターゲット レベルを想定して動作します。したがって、私はこれらの尺度が上から下までずっと等しいと仮定します (これが不正確であることはわかっていますが、どれほど不正確なのでしょうか?)
  2. MediaPlayer.setVolume(1.0f,1.0f) (最大音量) を 0dBFS として扱います。
  3. (1) に基づいて、これを 89+14 = 103dBSPL に等しくします。
  4. MediaPlayer.setVolume(0.0f,0.0f) (ミュート) を 0dBSPL として扱うので、0 ~ 103 の抽象化された線形ボリューム スケールがあります。

これらに余裕がある場合は、次のように、-1.3 のトラック ゲイン値を MediaPlayer.setVolume() の適切なパラメーターに変更します。

  1. ターゲット ラウドネス = 89 - 1.3 = 87.7
  2. float newVol = 1.0f - (Math.log(103 - 87.7 / Math.log(103)) = 0.41143207395167

これはリモートで正しい軌道に乗っていますか?

0 投票する
2 に答える
23108 参照

python - Pythonでオーディオファイルの音量を正規化するには?

.m4a正規化する必要があるAAC ( ) オーディオ ファイルがたくさんあり、いくつかのパッケージを使用して単純な python スクリプトでそれを行う方法を見つけたいと思っていました。

誰かが Python でコマンドライン ユーティリティを作成したスーパーユーザーに関するこのスレッドを見つけましffmpegたが、これはうまく機能しますが、現在利用可能な python パッケージがあり、pip installそのタスクを実行できるかどうか疑問に思っていました。