使用java从wav文件中提取人类的声音

我正在从事一个项目,我必须使用 java从音频.wav文件提取人类的声音.

音频.wav文件可能有3到4个声音,如狗,猫,音乐和人类.我将必须识别人类的声音,然后从音频.wav文件删除该部分.

我正在使用FFT.javaComplex.java.

现在我写了一个AudioFileReader类,它从硬盘驱动器读取audio.wav文件,然后将其转换为字节数组.然后使用上面提到的FFT.java和Complex.java应用FFT.fft(bytesArray),它给出了复数数组的返回值;

现在的问题是如何从返回的Complex数组中提取人类的声音字节模式…有没有人知道我可以如何实现这一点?

编辑:我们假设一个非常简单的audio.wav文件.例如,猫的声音然后沉,人的声音然后沉,狗的声音然后沉等没有混合的声音.

解决方法

我认为处理这样​​的问题的标准方法是将输入信号转换成倒谱或梅尔倒谱表示,然后使用特征空间的系数输入到分类器中.有很多研究论文基于这种基本方法讨论了解决这些问题的方法,例如:

http://www.ics.forth.gr/netlab/data/J17.pdf

您可能尝试的一个可能的捷径是将输入信号通过诸如AMBE的低比特率声码器进行解码,然后将原始信号的质量与编码/解码的信号进行比较.这些声码器被设计为以不能充分代表非言语声音为代价,以高质量高度压缩人类言语.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...