Mam dużą partię plików chciałbym uruchomić na uznanie za pomocą CMU Sphinx 4. Sphinx wymaga następującego formatu:Konwersja plików audio do CMU Sphinx 4 wejścia
- 16 khz
- 16 bit
- mono
- ostrokońcej
Moje pliki są czymś jak 44100 kHz, 32 bit stereo plików mp3. Próbowałem użyć Tritonus, a następnie jego zaktualizowanej wersji JavaZoom, aby przekonwertować za pomocą kodu z bakuzen. Jednak AudioSystem.getAudioInputStream(File)
rzuca UnsupportedAudioFileException
, a ja nie byłem w stanie dowiedzieć się dlaczego, więc ruszyłem dalej.
Teraz próbuję ffmpeg. Polecenie ffmpeg -i input.mp3 -ac 1 -ab 16 -ar 16000 output.wav
wygląda na to, że powinno wystarczyć (z wyjątkiem małego endianina), ale kiedy sprawdzam wyjście z Audacity, wciąż oznacza to jako "32-bitowy float". Polecenie znalezione na this site również używa -acodec pcm_s16le
, który od swojej nazwy wydaje się wyprowadzać 16-bitowy mały endian; jednak Audacity nadal mówi mi, że wyjście to 32 bit float
.
Czy ktoś może mi powiedzieć, jak konwertować pliki audio do formatu wymaganego przez CMU Sphinx 4?
Dziękujemy, wydaje się, że jest to poprawny format. Moje pliki wyjściowe nadal nie działają z Sphinx 4. Może będzie musiał zapytać @Nikolay Shmyrev bezpośrednio ... –
Format był właściwy. Mój plik miał tylko regiony o zerowym poziomie energii, więc kiedy dodałem dither do interfejsu, wszystko działało świetnie. –
@NateGlenn Nie wiem, co to znaczy, ale dobrze wiedzieć, że to działa. – LordNeckbeard