首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Java获取音频文件的波形

用Java获取音频文件的波形
EN

Stack Overflow用户
提问于 2012-10-23 06:30:52
回答 1查看 3.3K关注 0票数 6

我想知道如何从音频文件中获得诸如振幅之类的音乐信息?

假设我们有一个原始音频文件,我想从这个文件中提取数据,它允许我生成一个曲线,比如http://www1.icsi.berkeley.edu/Speech/mr/nearfar.html。一旦我得到了这条曲线,我将执行FFT等。

我一直试图在Java中寻找解决方案,但到目前为止,我只知道我可以使用byte[]将数据注入AudioInputStream。但是如何将该byte[]转换为包含声音的实际信息的double[]呢?在这种情况下,double[]中的值表示振幅.

有谁能提供一个用Java解决这个问题的解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2012-10-23 06:37:44

典型的wav文件是16位的小端点,所以您可以将每两个连续的字节( b1和b2 )取下来,并得到如下的振幅:

代码语言:javascript
运行
复制
(double) (b2 << 8 | b1 & 0xFF) / 32767.0;

如果输入是立体声的,那么前两个字节将是左通道,然后是两个字节用于右通道。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13024683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档