Исключение в потоке «main» java.lang.ClassCastException: класс com.sun.speech.freetts.en.us.cmu_time_awb.AlanVoiceDirectory

#java #freetts

#java #freetts

Вопрос:

Я пытаюсь разработать программу, которая преобразует текст в речь, используя freetts на Java. Я уже добавил все необходимые файлы jar, а также путь сборки.

 import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;
public class TextToSpeech {

     public static void main(String[] args) {
    
    
         Voice voice;//Creating object of Voice class
         voice = VoiceManager.getInstance().getVoice("kevin");//Getting voice
         if (voice != null) {
             voice.allocate();//Allocating Voice
         }
         try {
             voice.setRate(190);//Setting the rate of the voice
             voice.setPitch(150);//Setting the Pitch of the voice
             voice.setVolume(3);//Setting the volume of the voice 
             voice.speak("Hello world");//Calling speak() method

         }
         catch(Exception e)
         {
             e.printStackTrace();
         }
    

     }

 }
  

Но столкнулся с ошибкой.

 Exception in thread "main" java.lang.ClassCastException: class com.sun.speech.freetts.en.us.cmu_time_awb.AlanVoiceDirectory
  

Ответ №1:

Вероятно, некоторые банки были неправильно связаны.. Начал работать, как только я создал проект с использованием netbeans!

Спасибо, ребята (@netbeans).. ты спас мой день! 🙂

Для тех, у кого может возникнуть такая же проблема, используйте netbeans, чтобы избежать проблем с библиотеками.

  1. добавить lib/freetts.jar из папки «lib» в «freetts-1.2.2-src.zip » (загружается с sf.net )
  2. добавьте папку jdk (если она еще не указана) в библиотеки проекта
  3. Все готово! теперь запустите код.