I'm trying to deploy a java web app which uses FreeTTS to generate mp3s.
As per the directions on the project website, I've copied across a whole load of libraries. When it didn't work, I tried others and played around with the directory each was in, to the point where I now have all the libs in both the tts
directory and the tts/lib
directory:
- cmudict04.jar
- cmulex.jar
- cmu_time_awb.jar
- cmutimelex.jar
- cmu_us_kal.jar
- en_us.jar
- freetts.jar
- lame_enc.dll
- lametritonus.dll
- liblametritonus.so
- libmp3lame.so
- libPCM2MP3Linux.so
- litebody-tts.jar
- PCM2MP3.dll
- tritonus_mp3-0.3.6.jar
- tritonus_share-0.3.6.jar
However, when I make a request, I still get the following error:
java.lang.IllegalArgumentException: Unsupported conversion: MPEG1L3 from PCM_SIGNED 16000.0 Hz, 16 bit, mono, 2 bytes/frame, big-endian at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:876) at ServerType.FreeTTS.Mp3FileAudioPlayer.close(Unknown Source) at ServerType.FreeTTS.FreeTTS.speak(Unknown Source) at ServerType.FreeTTS.FreeTTS.processInput(Unknown Source) at server.TTSThread.run(Unknown Source)
It's my understanding that this is to do with the conversion between a .wav (PCM_SIGNED) and an MP3 (MPEG1L3).
What other libraries do I need? Which of these are doing nothing for me? Is there something I'm missing here?
The problem, it seems, it that Tritonus will only run on 32 bit versions of Java.