我使用java编写了文本到语音演示。这是正常的工作,但它并没有与女性的声音说话,虽然我为此做了准备。
我的代码如下:
try {
System.setProperty("FreeTTSSynthEngineCentral",
"com.sun.speech.freetts.jsapi.FreeTTSEngineCentral");
System.setProperty("freetts.voices",
"com.sun.speech.freetts.en.us.cmu_us_kal.KevinVoiceDirectory");
Central.registerEngineCentral("com.sun.speech.freetts.jsapi.FreeTTSEngineCentral");
SynthesizerModeDesc desc = new SynthesizerModeDesc(null, "general",
Locale.US, null, null);
Synthesizer synth = Central.createSynthesizer(desc);
synth.allocate();
desc = (SynthesizerModeDesc) synth.getEngineModeDesc();
Voice voice = new Voice("kevin16", Voice.AGE_YOUNGER_ADULT,
Voice.GENDER_FEMALE, null);
synth.getSynthesizerProperties().setVoice(voice);
synth.resume();
synth.speakPlainText(text, null);
synth.waitEngineState(Synthesizer.QUEUE_EMPTY);
synth.deallocate(); }catch (Exception ex) {
ex.printStackTrace();}
如何将我的代码更改为女性的声音。救救我!
答案 0 :(得分:1)
阅读the documentation,我看到了:
此版本的FreeTTS包括:
- 核心语音合成引擎
- 支持多种声音:
- 一个8khz的双音素,男性,美国英语的声音
- 一个16khz的双音素,男性美国英语的声音
- 16khz有限域名,男性美国英语语音
- 支持从FestVox导入语音(仅限美国英语)
- 从FestVox导入CMU ARCTIC语音的特定支持(仅限美国英语)
- 支持MBROLA语音(单独下载):
- 一个16khz 女性,美国英语的声音
- 两个16khz 男性美国英语声音
所以听起来它只带有男声。也许如果您下载其中一个MBROLA声音,您将获得一个女声。
另请参阅What voices are available?,其中解释了如何获得女性声音,但注意到" FreeTTS在Windows平台上不支持MBROLA"。
答案 1 :(得分:-2)
Voice voice = new Voice("kevin16", Voice.AGE_YOUNGER_ADULT,...
应该有其他选择,凯文对我来说听起来很男性。试试Jane或那个方向的东西