音响短裤到花车

时间:2014-03-12 03:16:09

标签: android audio

使用JDK~6&需要对一系列浮点数进行采样。

我想在Android API 10上实现音高检测,它没有YIN使用的javax.sound.sampled包。 API 10确实有RecordAudio,它可以使用read(byte / short [] int pos,int size)传递字节或短路。

什么会优化性能? A)扩展Android 1.5的RecordAudio以获得到YIN的浮动(我的首选方法) B)从RecordAudio获取短路,将它们转换为浮点数,然后将它们传递给YIN输入缓冲区。

在任何一种情况下,我都不知道找到短裤的合适方法 (44100,PCM16,签名,单声道,小恩典)浮动。

任何指导意见。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

这应该有效

f = (float) (short) (((short)wavData[i] & 0xFF) + (((short)wavData[i+1] & 0xFF) << 8));

其中wavData只是一个原始字节数组,从波形文件中读取。

它适用于所有采样率,任何通道数(单声道和立体声)。它仅适用于16位PCM,顺便说一下,它通常是有符号的,但它可以扩展为更大的分辨率。