Domanda

Ho bisogno di convertire i campioni audio da 11025 e 22050 a 44100;Sto cercando il metodo più rapido e migliore il suono della routine di conversione.Ho bisogno che la risposta sarà data in puro Java, senza la necessità di routine esterne o librerie.La fonte è un array di pochi valori che rappresentano i canali destro e sinistro, interleaved come LRLRLRLR
Ho sentito dire che gaussiana trasformazione è il migliore, ma è una cpu killer.

Aggiornamento
Per aggiungere ulteriori dettagli, vorrei un mix tra il migliore e il più veloce.La risposta dovrebbe dare grande suono audio adatto per vicino di comunicazione in tempo reale.
Aggiorna 2
Sto cercando alcuni brevi esempi di codice per questo, dovrebbe essere ez punti di audio guru

È stato utile?

Soluzione

è possibile (in ultima analisi) basta usare un abete dopo il riempimento di ogni altro campione con 0s - sei upsampling da 2 o 4.questo sarà molto veloce in realtime.la qualità audio può essere un bene per la maggior parte delle applicazioni.

Altri suggerimenti

Beh, è difficile per ricampionare è abbastanza lento in modo che non è in realtime :-) Uno dei migliori e ancora soluzioni veloci è quello di fare avanti FFT, e poi fare inversione di FFT con qualsiasi frequenza di campionamento di cui hai bisogno.

Si può implementare questa tua, o copiare e incollare qualsiasi FFT attuazione.

Questo potrebbe funzionare come 100x realtime o più veloce, non è necessario 1000x più veloce (in questo caso si può andare per lineare o interpolazione bicubica) :-)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top