wav文件中特定点的java分贝值
我正在尝试测量wav文件的引入和引出。最好是第一次和最后5秒左右。我基本上是试图分配一个数值,这意味着“这首歌有一个缓慢的领先”或“这首歌有一个突然的结束”
我的想法是获得dB值的斜率,但我似乎找不到一个linux命令行工具来为我提供dB值。我知道它们是可以测量的,因为Audacity有一个波形(db)视图
基本上,我正在寻找一种方法来收集数据点,以复制此图,从而获得斜率
java中的编辑工作
你可以在下面搜索框中键入要查询的问题!
我正在尝试测量wav文件的引入和引出。最好是第一次和最后5秒左右。我基本上是试图分配一个数值,这意味着“这首歌有一个缓慢的领先”或“这首歌有一个突然的结束”
我的想法是获得dB值的斜率,但我似乎找不到一个linux命令行工具来为我提供dB值。我知道它们是可以测量的,因为Audacity有一个波形(db)视图
基本上,我正在寻找一种方法来收集数据点,以复制此图,从而获得斜率
java中的编辑工作
# 1 楼答案
我不知道有什么命令行工具可以做到这一点,但是使用
scipy
库编写具有此功能的python脚本相当简单我们可以使用
scipy.io.wavfile
执行文件IO,然后自己计算dB值(请注意,这些值不一定是标准的dB值,因为它们取决于您的扬声器和音量设置)首先我们得到文件:
然后,我们将文件分割为块,块的数量取决于您想要测量体积的精细程度:
最后,我们计算每个区块的体积:
其中
dbs
现在是文件每个块的dB值列表(同样,不一定是真正的SPL声级)您还可以使用重叠块等,以不同的方式轻松拆分数据
参考资料: -scipy.io.wavfile -dB (SPL)
# 2 楼答案
这里只是一些关于在Java中读取音频文件、绘制波形和波形概述的问题
How can I create a sound file in Java
How can I draw sound data from my wav file?
Java Program to create a PNG waveform for an audio file
# 3 楼答案
对于那些试图在@Isaac的答案中使用Python脚本的人,我将其清理干净(我也不知道Python,但我已经让它工作了)。一些注意事项: