What libraries does FreeTTS need to output mp3s?

548 views Asked by At

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:

  1. cmudict04.jar
  2. cmulex.jar
  3. cmu_time_awb.jar
  4. cmutimelex.jar
  5. cmu_us_kal.jar
  6. en_us.jar
  7. freetts.jar
  8. lame_enc.dll
  9. lametritonus.dll
  10. liblametritonus.so
  11. libmp3lame.so
  12. libPCM2MP3Linux.so
  13. litebody-tts.jar
  14. PCM2MP3.dll
  15. tritonus_mp3-0.3.6.jar
  16. 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?

1

There are 1 answers

0
Tom Wright On BEST ANSWER

The problem, it seems, it that Tritonus will only run on 32 bit versions of Java.