<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    俊星的BLOG

    freetts初探

    FreeTTS是一個(gè)語(yǔ)音合成庫(kù),今天進(jìn)行了相關(guān)的試用。
    1、下載完畢之后,構(gòu)建工程,拷貝到LIB中的JAR有:en_us.jar、freetts.jar、jsapi.jar、freetts-jsapi10.jar
    2、jsapi.jar因?yàn)椴捎玫氖跈?quán)不同于freetts,所以需要運(yùn)行jsapi.exe并同意后來(lái)獲取
    3、需要將speech.properties拷貝到user.home或者java.home/lib下
    4、編寫(xiě)基于JSAPI的HelloWorld程序:
    import java.util.Locale;

    import javax.speech.Central;
    import javax.speech.EngineList;
    import javax.speech.synthesis.Synthesizer;
    import javax.speech.synthesis.SynthesizerModeDesc;
    import javax.speech.synthesis.Voice;

    public class HelloWorld {

        
    public HelloWorld() {
        }

        
    public static void listAllVoices(String modeName) {
            System.out.println(
    "All " + modeName + " Mode JSAPI Synthesizers and Voices:");
            SynthesizerModeDesc required 
    = new SynthesizerModeDesc(null, modeName, Locale.US, nullnull);
            EngineList engineList 
    = Central.availableSynthesizers(required);
            
    for (int i = 0; i < engineList.size(); i++) {
                SynthesizerModeDesc desc 
    = (SynthesizerModeDesc) engineList.get(i);
                System.out.println(
    "    " + desc.getEngineName() + " (mode=" + desc.getModeName() + ", locale="
                        
    + desc.getLocale() + "):");
                Voice voices[] 
    = desc.getVoices();
                
    for (int j = 0; j < voices.length; j++)
                    System.out.println(
    "        " + voices[j].getName());
            }
        }

        
    public static void main(String args[]) {
            
    // 利用 FreeTTS 讀出Good job
            try {
                SynthesizerModeDesc desc 
    = new SynthesizerModeDesc("FreeTTS en_US general synthesizer""general",
                        Locale.US, 
    nullnull);
                Synthesizer synthesizer 
    = Central.createSynthesizer(desc);
                
    if (synthesizer == null) {
                    System.exit(
    1);
                }
                synthesizer.allocate();
                synthesizer.resume();
                desc 
    = (SynthesizerModeDesc) synthesizer.getEngineModeDesc();
                Voice voices[] 
    = desc.getVoices();
                
    for (Voice v : voices) {
                    synthesizer.getSynthesizerProperties().setVoice(v);
                    synthesizer.speakPlainText(
    "good job"null);
                    synthesizer.waitEngineState(
    0x10000L);
                }
                synthesizer.deallocate();
            } 
    catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }

    5、編寫(xiě)基于FreeTTS的測(cè)試程序:
    import com.sun.speech.freetts.Voice;
    import com.sun.speech.freetts.VoiceManager;

    public class FreeTTSHelloWorld {

        
    public FreeTTSHelloWorld() {
        }

        
    public static void listAllVoices() {
            System.out.println();
            System.out.println(
    "All voices available:");
            VoiceManager voiceManager 
    = VoiceManager.getInstance();
            Voice voices[] 
    = voiceManager.getVoices();
            
    for (int i = 0; i < voices.length; i++)
                System.out.println(
    "    " + voices[i].getName() + " (" + voices[i].getDomain() + " domain)");

        }

        
    public static void main(String args[]) {
            listAllVoices();
            System.out.println();
            VoiceManager voiceManager 
    = VoiceManager.getInstance();
            Voice helloVoice 
    = voiceManager.getVoice("kevin16");
            
    if (helloVoice == null) {
                System.exit(
    1);
            }
            helloVoice.allocate();
            helloVoice.speak(
    "GOOD JOB KINKDING");
            helloVoice.deallocate();
            System.exit(
    0);
        }
    }

    posted on 2010-10-15 11:28 俊星 閱讀(3434) 評(píng)論(2)  編輯  收藏

    評(píng)論

    # re: freetts初探 2011-06-02 22:16 瓏兒

    System property "mbrola.base" is undefined. Will not use MBROLA voices.

    這個(gè)問(wèn)題怎么解決啊?  回復(fù)  更多評(píng)論   

    # re: freetts初探 2012-02-01 17:12 apiao

    學(xué)習(xí)了! 就是不清楚為啥在eclipse下跑不起來(lái)...  回復(fù)  更多評(píng)論   


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲自偷自偷偷色无码中文| 一本到卡二卡三卡免费高 | 亚洲天堂一区在线| 狠狠综合久久综合88亚洲| 在线jlzzjlzz免费播放| 57pao国产成视频免费播放| 窝窝影视午夜看片免费| 日韩国产精品亚洲а∨天堂免| 亚洲经典在线观看| 久久99国产亚洲精品观看| 亚洲免费观看视频| AV在线亚洲男人的天堂| 国产精品酒店视频免费看| 野花高清在线观看免费3中文| 91精品视频在线免费观看| 青柠影视在线观看免费高清 | 一二三四在线观看免费高清中文在线观看| 人妻在线日韩免费视频| 国产精品九九久久免费视频| 精品成人一区二区三区免费视频 | 777爽死你无码免费看一二区| 72pao国产成视频永久免费| 特黄特色大片免费| 羞羞视频网站免费入口| 亚洲国产成人久久精品大牛影视| 亚洲天堂中文字幕在线观看| 亚洲日产2021三区| 亚洲黄色在线播放| 亚洲综合在线成人一区| 亚洲视频在线观看地址| 亚洲香蕉免费有线视频| 亚洲精品国产成人中文| 亚洲国色天香视频| 亚洲综合色区中文字幕| 亚洲sss综合天堂久久久| 亚洲国产精品一区二区三区在线观看| 亚洲13又紧又嫩又水多| 亚洲免费综合色在线视频| 亚洲AV无码片一区二区三区| 男人的天堂av亚洲一区2区| 国产成人亚洲综合在线|