ho una grande serie di file che vorrei eseguire il riconoscimento sull'uso CMU Sphinx 4. Sfinge richiede il seguente formato:Convertire file audio per CMU Sphinx 4 ingresso
- 16 khz
- 16 bit
- mono
- little-endian
I miei file sono qualcosa come 44100 kHz, 32 bit stereo i file mp3. Ho provato a utilizzare Tritonus e quindi la sua versione aggiornata JavaZoom, per convertire utilizzando il codice da bakuzen. Tuttavia, AudioSystem.getAudioInputStream(File)
getta un UnsupportedAudioFileException
e non sono stato in grado di capire perché, così sono andato avanti.
Ora sto provando ffmpeg. Il comando ffmpeg -i input.mp3 -ac 1 -ab 16 -ar 16000 output.wav
sembra come dovrebbe fare il trucco (tranne per little endian), ma quando controllo l'output con Audacity, lo etichetta ancora come "float a 32 bit". Il comando che ho trovato su this site utilizza anche -acodec pcm_s16le
, che dal suo nome sembra essere in uscita 16 bit little endian; comunque, Audacity mi dice ancora che l'output è 32 bit float
.
Qualcuno può dirmi come convertire i file audio nel formato richiesto da CMU Sphinx 4?
Grazie, questo sembra essere il formato corretto. I miei file di output non funzionano ancora con Sphinx 4, comunque. Potrebbe dover chiedere direttamente a @Nikolay Shmyrev ... –
Il formato era giusto. Il mio file aveva solo zero regioni di livello energetico, quindi una volta aggiunto il dither al frontend, tutto funzionava alla grande. –
@NateGlenn Non so cosa significhi, ma è bello sapere che hai funzionato. – LordNeckbeard