首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文本转换为语音java代码

将文本转换为语音java代码
EN

Stack Overflow用户
提问于 2012-12-02 23:54:52
回答 3查看 46.8K关注 0票数 2

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

我实际上正在做一个java项目,用下面的代码将文本转换为speesh:

代码语言:javascript
复制
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");
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-03 00:01:35

despeak方法不存在。您应该改为调用dospeak,并使用常规引号:

代码语言:javascript
复制
obj.dospeak("foo", "kevin16");
票数 5
EN

Stack Overflow用户

发布于 2015-08-10 04:22:29

请从google下载freetts-1.2.2-bin

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

在net beans中试用我的程序

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

代码语言:javascript
复制
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){}
} 

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

票数 5
EN

Stack Overflow用户

发布于 2013-10-22 01:10:25

很好地解释了运行代码的完整过程- - Text To Speech in Java Using Freetts

工作代码:

代码语言:javascript
复制
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");    
}    
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13670934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档