将文本转换为语音java代码

我不明白这种语法错误, insert ")" to complete MethodInvocation Syntax error, insert ";" to complete Statement at demojsapi.main(demojsapi.java:46) insert ")" to complete MethodInvocation Syntax error, insert ";" to complete Statement at demojsapi.main(demojsapi.java:46)

我实际上正在使用以下代码处理将文本转换为speesh的java项目:

 import javax.speech.*; import java.util.*; import javax.speech.synthesis.*; public class demojsapi { String speaktext; public void dospeak(String speak,String voicename) { speaktext=speak; String voiceName =voicename; try { SynthesizerModeDesc desc = new SynthesizerModeDesc(null,"general", Locale.US,null,null); Synthesizer synthesizer = Central.createSynthesizer(desc); synthesizer.allocate(); synthesizer.resume(); desc = (SynthesizerModeDesc) synthesizer.getEngineModeDesc(); Voice[] voices = desc.getVoices(); Voice voice = null; for (int i = 0; i < voices.length; i++) { if (voices[i].getName().equals(voiceName)) { voice = voices[i]; break; } } synthesizer.getSynthesizerProperties().setVoice(voice); synthesizer.speakPlainText(speaktext, null); synthesizer.waitEngineState(Synthesizer.QUEUE_EMPTY); synthesizer.deallocate(); } catch (Exception e) { String message = " missing speech.properties in " + System.getProperty("user.home") + "\n"; System.out.println(""+e); System.out.println(message); } } public static void main(String[] args) { demojsapi obj=new demojsapi(); obj.despeak("shit","kevin16"); } } 

despeak方法不存在。 您应该使用常规报价来调用dospeak

 obj.dospeak("foo", "kevin16"); 

请从给定的链接和谷歌下载谷歌的freetts-1.2.2-bin

http://sourceforge.net/projects/freetts/?source=directory

在net beans中尝试我的程序

不要忘记将所有jar文件添加到您的库文件夹代码中,如下所示。 它工作..我的方法—

 private static final String VOICENAME = "kevin16"; void mySpeak() { Voice voice; VoiceManager vm = VoiceManager.getInstance(); voice = vm.getVoice(VOICENAME); voice.allocate(); try{ voice.speak("Hi Mr Gaur Welcome to VITS. Thanks To choose Us"); }catch(Exception e){} } 

从内部代码调用此方法..

非常好地解释了运行代码的完整过程 – 使用Freetts的Java中的文本到语音

工作守则:

 import javax.speech.*; import java.util.*; import javax.speech.synthesis.*; public class Text2Speech { String speaktext; public void dospeak(String speak,String voicename) { speaktext=speak; String voiceName =voicename; try { SynthesizerModeDesc desc = new SynthesizerModeDesc(null,"general", Locale.US,null,null); Synthesizer synthesizer = Central.createSynthesizer(desc); synthesizer.allocate(); synthesizer.resume(); desc = (SynthesizerModeDesc) synthesizer.getEngineModeDesc(); Voice[] voices = desc.getVoices(); Voice voice = null; for (int i = 0; i < voices.length; i++) { if (voices[i].getName().equals(voiceName)) { voice = voices[i]; break; } } synthesizer.getSynthesizerProperties().setVoice(voice); System.out.print("Speaking : "+speaktext); synthesizer.speakPlainText(speaktext, null); synthesizer.waitEngineState(Synthesizer.QUEUE_EMPTY); synthesizer.deallocate(); } catch (Exception e) { String message = " missing speech.properties in " + System.getProperty("user.home") + "\n"; System.out.println(""+e); System.out.println(message); } } public static void main(String[] args) { Text2Speech obj=new Text2Speech(); obj.dospeak("Hello i am kevin ","kevin16"); } }