java 分贝_java – wav文件中特定点的分贝值

我正在尝试测量导入和导出wav文件.优选地,第一个和最后5秒左右.我基本上试图分配一个数字值,意思是“这首歌有一个缓慢的引导”或“这首歌有一个突然结束”.

我的想法是得到dB值的斜率,但我似乎找不到一个能给我dB值的linux命令行工具.我知道它们可以被测量,因为Audacity有一个波形(db)视图.

基本上我正在寻找一种方法来收集数据点来复制这个图,这样我就可以得到斜率.

编辑 – 在java工作

解决方法:

我不知道有任何命令行工具可以做到这一点,但使用scipy库编写具有此功能的python脚本相当简单.

我们可以使用scipy.io.wav文件来执行文件IO,然后自己计算dB值(请注意,这些值不一定是标准dB值,因为这些将取决于您的扬声器和音量设置).

首先我们得到文件:

from scipy.io.wavfile import read

samprate, wavdata = read('file.wav')

然后,我们将文件拆分为块,其中块的数量取决于您想要测量卷的精确程度:

import numpy as np

chunks = np.array_split(wavdata, numchunks)

最后,我们计算每个块的体积:

dbs = [20*log10( sqrt(mean(chunk**2)) ) for chunk in chunks]

其中dbs现在是文件每个块的dB值列表(同样,不一定是真正的SPL声级).

您还可以使用重叠块等以不同方式轻松拆分数据.

标签:java,linux,audio,command-line

来源: https://codeday.me/bug/20190901/1784463.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值