java - 如何使用python读取和过滤原始音频文件?

标签 java python audio

我从录制中得到了一个.raw文件,它是由Java类AudioOutputStream的write方法编写的(我写了字节)。

我想用Python过滤器过滤此音频文件。 Here是我正在使用的指南,它过滤浮点数列表(指南中的变量x)。

我的问题是不同的类型,字节和浮点数。有没有办法使该过滤器与.raw音频一起使用?

我感谢任何建议。谢谢。

最佳答案

我发现了两个有用的Java类:DataInputStreamDataOutputStream,它们可以为我的Python脚本编写浮点数。

首先,我使用.raw方法从readFloat文件读取float值,该方法读取4个字节作为float。

FileInputStream is = new FileInputStream(inputName);
DataInputStream dis = new DataInputStream(is);

ArrayList<Float> fbuffer = new ArrayList<Float>();

try {
    while(dis.available()>0){
       float f = dis.readFloat(); //read 4 bytes as float 
       // this fails if it is not 4x
       fbuffer.add(f);
    }
} catch (IOException e) {
    //nothing happens, there are 1,2 or 3 bytes at the end we are going to ignore
    //e.printStackTrace();
}
dis.close();
is.close();

这样,我创建一个带有浮点值的文件。该文件由python脚本读取。在这里我用
fin = open('fileWithFloatsName')
floatList = [line.rstrip('\n') for line in fin]
floatList = destringifyList(floatList)
fin.close()

我得到浮点数列表,像here一样执行过滤器,并获得新的浮点数列表。我将此结果写在java将要使用Scanner对象读取的新文件中。

最后,我们创建一个新的.raw文件,并使用writeFloat方法将浮点数写为字节。

就这样。如果有人提出更好的建议(部分或不建议),我将不胜感激。

关于java - 如何使用python读取和过滤原始音频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38942404/

相关文章:

python - 如何获取歌曲中歌词的时间戳?

matlab - 在matlab中批量读取wav文件为神经网络训练集创建矩阵

Java开源电子商务解决方案

java - 是否可以从父类型调用子静态方法?

python - 如何将 Wireshark 处理的数据转发给 python?用什么样的方法?

python - Matplotlib - 基于数据的动态(条形)图表高度?

html - 在iOS 6中自动播放WebAudio API

java - Android 上使用 Volley-api 进行 http 请求

java - Java中的动态多态性有什么好处?

python - 与用户输入相比,用户登录从文件读取失败