已使用JDK〜6实现了YIN音高检测算法,并且需要对浮点数组进行采样。

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

什么将优化性能?
A)扩展Android 1.5的RecordAudio使其 float 到YIN(我的首选方法)或
B)从RecordAudio中提取短裤,将它们转换为浮点,然后将其传递给YIN输入缓冲区。

无论哪种情况,我都不知道穿短裤的合适方法
(44100,PCM16,有符号,单声道,littleEndian) float 。

任何指导表示赞赏。

最佳答案

您可能会在this类中找到所需的算法。

https://java.net/projects/gervill/sources/Mercurial/content/src/com/sun/media/sound/AudioFloatConverter.java

10-06 03:23