【发布时间】:2011-01-30 00:40:31
【问题描述】:
我正在尝试使用 freetts 运行程序。我可以编译程序但是我不能使用 kevin 或 mbrola 声音我在最后得到以下输出消息
系统属性“mbrola.base”未定义。不会使用 MBROLA 声音。
LINE UNAVAILABLE: 格式为 pcm_signed 16000.0 Hz 16 bits 1 channel big endian
import javax.speech.*;
import javax.speech.synthesis.*;
import java.util.*;
class freetts {
public static void main(String[] args) {
try{
Calendar calendar = new GregorianCalendar();
String sayTime = "It is " + calendar.get(Calendar.HOUR) + " " + calendar.get(Calendar.MINUTE) + " " + (calendar.get(Calendar.AM_PM)==0 ? "AM":"PM");
Synthesizer synth = Central.createSynthesizer(null);
synth.allocate();
synth.resume();
synth.speakPlainText(sayTime, null);
synth.waitEngineState(Synthesizer.QUEUE_EMPTY);
synth.deallocate();
}
catch(Exception e){
e.printStackTrace();
}
}
}
【问题讨论】:
-
好久没用这个了。但是,你有没有把你需要的一切都放在你的类路径中?另外据我所知,您必须在主目录中放入一些东西(这是旧版本),这可能是问题的另一个原因(如果您仍然需要这样做)。此外,您可能需要设置其他环境变量,例如您是否必须设置 MBROLA_HOME 变量。此外,您是否能够运行它附带的任何示例程序?很抱歉一直问问题,但它们有助于缩小问题范围。
-
抱歉,当您尝试同时播放声音时,可能会抛出线路不可用异常,具体取决于您播放文件的操作。你能展示一些你用来播放声音的代码吗?
-
我们需要复制 Speech.properties 我已经这样做了。但是,我无法将 mbrola 语音接口与我的程序或默认的 kevin 扬声器绑定,但是我已将 kevin 用户包含在程序的类路径中
标签: java text-to-speech jsapi