Устранение неполадок «Системное свойство mbrola.base не определено. Не будет использовать голоса MBROLA» при преобразовании текста в речь с использованием FreeTTS - PullRequest
0 голосов
/ 20 октября 2010
 import com.sun.speech.freetts.*;
 import java.util.*; 

 public class Demofreetts
  {
   private String speaktext;
   public void doSpeak(String speak, String voice)
    {
     speaktext = speak;
     try
      {
       VoiceManager voiceManager = VoiceManager.getInstance();
       Voice voices = voiceManager.getVoice(voice);
       Voice sp = null;

       if(voices != null)
         sp = voices;

       else
         System.out.println("No Voice Available");



        sp.allocate();
        sp.speak(speaktext);
        sp.deallocate();



      }
     catch(Exception e)
      {
       e.printStackTrace();
      }
    }
   public static void main(String[]args)
   {
    Demofreetts obj = new Demofreetts();
    obj.doSpeak(args[0],"Kelvin16");
   }
  } 

Приведенный выше код вызывает следующую ошибку:

System property "mbrola.base" is undefined.  Will not use MBROLA voices
No Voice Available
java.lang.NullPointerException
        at Demofreetts.doSpeak(Demofreetts.java:24)
        at Demofreetts.main(Demofreetts.java:39)

Ответы [ 3 ]

1 голос
/ 28 января 2011

Вы можете преобразовать текст в речь в Java, используя freetts1.2 API.Это довольно просто в использовании.Эта ссылка может быть полезна для вас.У него есть пример программы

http://learnsharelive.blogspot.com/2011/01/convert-text-to-speech-java-freetts12.html

0 голосов
/ 05 октября 2017

Вот решение

Измените строковый голосовой параметр на один из следующих.

1.kevin16 (все буквы должны быть написаны в маленьком регистре) 2.alan (это также ваш следующий вариант альтернативы голосу kevin16. но сообщение Системное свойство "mbrola.base" не определено. Не будет использовать голоса MBROLA. Все еще существует, но вы можете получить голос, который вам нужен. К сожалению, вы можете решить эту проблему, установив свойство mbrola voice. Использование

     System.setProperty (" mbrola.base" ,"here the pathof property");.

В любом случае, это работает для меня, пожалуйста, попробуйте.

0 голосов
/ 18 сентября 2017

просто добавьте System.setProperty

  System.setProperty("mbrola.base", "C:\\Users\\iup\\workspace\\newpro\\mbrola");
  VoiceManager voiceManager = VoiceManager.getInstance();
...