Salut J'ai besoin de sous-échantillonner la fréquence d'échantillonnage d'un fichier audio wav de 44,1 kHz à 8 kHz. Je dois faire tout le travail manuellement avec un tableau d'octets ... c'est à des fins académiques.Java - fichier audio wav de sous-échantillonnage
J'utilise actuellement 2 classes, Sink et Source, pour faire apparaître et pousser des tableaux d'octets. Tout se passe bien jusqu'à ce que j'atteigne la partie où j'ai besoin de sous-échantillonner le bloc de données en utilisant une interpolation linéaire.
Étant donné que je sous-échantillonne de 44100 à 8000 Hz, comment interpoler un tableau d'octets contenant quelque chose comme 128 000 000 octets? En ce moment, je saute 5, 6 ou 7 octets en fonction de i% 2 == 0, i% 2 == 1 et i% 80 == 0 et poussez la moyenne de ces 5, 6 ou 7 octets dans le nouveau fichier . Le résultat est en effet un fichier audio plus petit que l'original mais il ne peut pas être lu sur Windows Media Player (dit qu'il y a une erreur en lisant le fichier) et il y a beaucoup de bruit même si je peux entendre la bonne piste le bruit. Donc, pour résumer, j'ai besoin d'aide concernant la partie interpolation linéaire. Merci d'avance.
Il nous sera plus facile d'aider à trouver vos bogues si vous postez le code que vous utilisez maintenant. –