Ciao Ho bisogno di downsampling una frequenza di campionamento di un file audio wav da 44.1kHz a 8kHz. Devo fare tutto il lavoro manualmente con un array di byte ... è per scopi accademici.Java - file audio wav di downsampling
Attualmente sto usando 2 classi, Sink e Source, per pop e push array di byte. Tutto va bene fino a quando non raggiungo la parte in cui ho bisogno di eseguire il downsampling del blocco dati utilizzando un'interpolazione lineare.
Poiché eseguo il downsampling da 44100 a 8000 Hz, come faccio a interpolare un array di byte contenente qualcosa come 128 000 000 byte? In questo momento sto spuntando 5, 6 o 7 byte a seconda di i% 2 == 0, i% 2 == 1 e i% 80 == 0 e spingo la media di questi 5, 6 o 7 byte nel nuovo file .
Il risultato è effettivamente un file audio più piccolo dell'originale ma non può essere riprodotto su Windows Media Player (si dice che c'è un errore durante la lettura del file) e c'è molto rumore anche se riesco a sentire la traccia giusta dietro il rumore.
Quindi, per riassumere, ho bisogno di aiuto per quanto riguarda la parte di interpolazione lineare. Grazie in anticipo.
Sarà più facile per noi aiutare a trovare i bug se pubblichi il codice che stai utilizzando ora. –