标签: replaygain

如何在python中规范化音频文件的音量:当前可用的任何包?

我有一堆AAC(.m4a)音频文件需要规范化,并希望找到一种方法来使用一些简单的python脚本来完成它.我发现这个线程上如果有人写了一个超级用户ffmpeg在python命令行实用工具,它工作得很好,但不知道是否有一些现有的pip install,将是完成这一任务.

python audio ffmpeg aac replaygain

6
推荐指数
2
解决办法
6919
查看次数

将 ReplayGain 值转换为音量调整

我正在尝试将 Replay Gain(即响应音乐文件中的 replaygain 标签)实现到库存的 Android/AOSP 音乐播放器应用程序中。这只是一个个人项目,但我可以将它作为补丁提供,或者制作我自己的库或播放器。我首先只关注轨道增益。我的问题的性质可能归结于我数学不及格的事实;)

任务是做两件事:A) 在播放开始之前,将音量限制在设备最大 -14dB(或者更多,一些消息来源建议 -23dB)。B) 在开始播放每首曲目之前,读取其标签并按该 dB 数进行调整。

我看到在 Android 中调整播放音量也涉及对数缩放,但由于我是对数的新手,我不确定这是否会使事情变得更容易或两倍(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 的 Track Gain 值转换为 MediaPlayer.setVolume() 的适当参数,如下所示:

  1. 目标响度 = 89 - 1.3 = 87.7
  2. 浮动新卷 = 1.0f - (Math.log(103 - 87.7 / Math.log(103)) = 0.41143207395167

这是远程在正确的轨道上吗?

math android logarithm acoustics replaygain

5
推荐指数
1
解决办法
1605
查看次数

标签 统计

replaygain ×2

aac ×1

acoustics ×1

android ×1

audio ×1

ffmpeg ×1

logarithm ×1

math ×1

python ×1