Ich habe eine Wave-Datei in 16-Bit-PCM-Form. Ich habe die Rohdaten in einer byte[]
und eine Methode zur Extraktion von Proben, und ich brauche sie im Float-Format, d. h. eine float[]
um eine Fourier-Transformation durchzuführen. Hier ist mein Code, sieht das richtig aus? Ich arbeite auf Android, also javax.sound.sampled
usw. ist nicht verfügbar.
private static short getSample(byte[] buffer, int position) {
return (short) (((buffer[position + 1] & 0xff) << 8) | (buffer[position] & 0xff));
}
...
float[] samples = new float[samplesLength];
for (int i = 0;i<input.length/2;i+=2){
samples[i/2] = (float)getSample(input,i) / (float)Short.MAX_VALUE;
}