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

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

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

    鷹翔宇空

    學習和生活

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks

    原文引自:http://www.3doing.net/forums/dispbbs.asp?boardID=57&ID=567&page=2

    1。應用程序RobTTSApp.java

    import java.awt.*;
    import javax.swing.*;

    /**
    *
    * <p>Title: MyJava</p>
    * <p>Description: </p>
    * <p>Copyright: Copyright (c) 2004-2008</p>
    * <p>Company: b9527</p>
    * @author robertb9527
    * @version 1.0
    */
    public class RobTTSApp {
    ??boolean packFrame = false;

    ??//Construct the application
    ??public RobTTSApp() {
    ????TTSFrame frame = new TTSFrame();
    ????//Validate frames that have preset sizes
    ????//Pack frames that have useful preferred size info, e.g. from their layout
    ????if (packFrame) {
    ??????frame.pack();
    ????}
    ????else {
    ??????frame.validate();
    ????}
    ????//Center the window
    ????Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    ????Dimension frameSize = frame.getSize();
    ????if (frameSize.height > screenSize.height) {
    ??????frameSize.height = screenSize.height;
    ????}
    ????if (frameSize.width > screenSize.width) {
    ??????frameSize.width = screenSize.width;
    ????}
    ????frame.setLocation( (screenSize.width - frameSize.width) / 2,
    ??????????????????????(screenSize.height - frameSize.height) / 2);
    ????frame.setVisible(true);
    ??}

    ??//Main method
    ??public static void main(String[] args) {
    ????try {
    ??????UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    ????}
    ????catch (Exception e) {
    ??????e.printStackTrace();
    ????}
    ????new RobTTSApp();
    ??}
    }

    2。窗體TTSFrame.java

    import java.util.*;

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    import com.sun.speech.freetts.*;

    /**
    *
    * <p>Title: MyJava</p>
    * <p>Description: </p>
    * <p>Copyright: Copyright (c) 2004-2008</p>
    * <p>Company: b9527</p>
    * @author robertb9527
    * @version 1.0
    */
    public class TTSFrame
    ????extends JFrame {
    ??JPanel contentPane;
    ??JScrollPane jScrollPane1 = new JScrollPane();
    ??JScrollPane jScrollPane2 = new JScrollPane();
    ??JTextArea from = new JTextArea();
    ??JTextArea to = new JTextArea();
    ??JButton jButton1 = new JButton();
    ??JButton jButton2 = new JButton();
    ??JLabel jLabel1 = new JLabel();

    ??//Construct the frame
    ??public TTSFrame() {
    ????enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    ????try {
    ??????jbInit();
    ????}
    ????catch (Exception e) {
    ??????e.printStackTrace();
    ????}
    ??}

    ??//Component initialization
    ??private void jbInit() throws Exception {
    ????contentPane = (JPanel)this.getContentPane();
    ????contentPane.setLayout(null);
    ????this.setSize(new Dimension(479, 406));
    ????this.setTitle("robTTS");
    ????jScrollPane1.setBounds(new Rectangle(108, 25, 282, 124));
    ????jScrollPane2.setBounds(new Rectangle(108, 172, 282, 122));
    ????jButton1.setBounds(new Rectangle(14, 176, 74, 27));
    ????jButton1.setText("轉換");
    ????jButton1.addActionListener(new TTSFrame_jButton1_actionAdapter(this));
    ????jButton2.setBounds(new Rectangle(194, 321, 76, 25));
    ????jButton2.setText("朗讀");
    ????jButton2.addActionListener(new TTSFrame_jButton2_actionAdapter(this));
    ????jLabel1.setText("輸入原文:");
    ????jLabel1.setBounds(new Rectangle(20, 26, 71, 31));
    ????from.setText("");
    ????to.setText("");

    ????from.setLineWrap(true);
    ????contentPane.add(jLabel1, null);
    ????contentPane.add(jButton1, null);
    ????contentPane.add(jScrollPane1, null);
    ????contentPane.add(jScrollPane2, null);
    ????contentPane.add(jButton2, null);
    ????jScrollPane2.getViewport().add(to, null);
    ????jScrollPane1.getViewport().add(from, null);
    ??}

    ??//Overridden so we can exit when window is closed
    ??protected void processWindowEvent(WindowEvent e) {
    ????super.processWindowEvent(e);
    ????if (e.getID() == WindowEvent.WINDOW_CLOSING) {
    ??????System.exit(0);
    ????}
    ??}

    ??void jButton1_actionPerformed(ActionEvent e) {
    ????if (from.getText().length() == 0) {
    ??????JOptionPane.showMessageDialog(from, "輸入原文窗體框為空!", "Warning",
    ????????????????????????????????????JOptionPane.WARNING_MESSAGE);
    ????}
    ????String text = from.getText();
    ????to.setText(TTSKernel.getFullSpell(text));
    ????// c.pack();
    ??}

    ??void jButton2_actionPerformed(ActionEvent e) {
    ????String textTo = to.getText();

    ????String voiceName = "kevin16";
    ????System.out.println();
    ????System.out.println("使用聲音: " + voiceName);

    ????/* The VoiceManager manages all the voices for FreeTTS.
    ???? */
    ????VoiceManager voiceManager = VoiceManager.getInstance();
    ????Voice helloVoice = voiceManager.getVoice(voiceName);

    ????if (helloVoice == null) {
    ??????System.err.println(
    ??????????"找不到你所指定的聲音. "
    ??????????+ voiceName + "請選擇另一種.");
    ??????System.exit(1);
    ????}

    ????/* Allocates the resources for the voice.
    ???? */
    ????helloVoice.allocate();
    ????Locale a = helloVoice.getLocale();
    ????System.out.println(a.getLanguage());
    ????/* Synthesize speech.
    ???? */
    ????helloVoice.speak(textTo);
    ????/* Clean up and leave.
    ???? */
    ????helloVoice.deallocate();

    ??}

    }

    class TTSFrame_jButton1_actionAdapter
    ????implements java.awt.event.ActionListener {
    ??TTSFrame adaptee;

    ??TTSFrame_jButton1_actionAdapter(TTSFrame adaptee) {
    ????this.adaptee = adaptee;
    ??}

    ??public void actionPerformed(ActionEvent e) {
    ????adaptee.jButton1_actionPerformed(e);
    ??}
    }

    class TTSFrame_jButton2_actionAdapter
    ????implements java.awt.event.ActionListener {
    ??TTSFrame adaptee;

    ??TTSFrame_jButton2_actionAdapter(TTSFrame adaptee) {
    ????this.adaptee = adaptee;
    ??}

    ??public void actionPerformed(ActionEvent e) {
    ????adaptee.jButton2_actionPerformed(e);
    ??}
    }

    3。漢字轉拼音TTSChange.java

    import java.util.*;

    /**
    *
    * <p>Title: MyJava</p>
    * <p>Description: </p>
    * <p>Copyright: Copyright (c) 2004-2008</p>
    * <p>Company: b9527</p>
    * @author robertb9527
    * @version 1.0
    */
    public class TTSChange {
    ??private static LinkedHashMap spellMap = null;

    ??static {
    ????if (spellMap == null) {
    ??????spellMap = new LinkedHashMap(400);
    ????}
    ????initialize();
    ????System.out.println("轉換準備完成。");
    ??}

    ??private TTSKernel() {
    ??}

    ??private static void spellPut(String spell, int ascii) {
    ????spellMap.put(spell, new Integer(ascii));
    ??}

    ??private static void initialize() {
    ????spellPut("a", -20319);
    ????spellPut("ai", -20317);
    ????spellPut("an", -20304);
    ????spellPut("ang", -20295);
    ????spellPut("ao", -20292);
    ????spellPut("ba", -20283);
    ????spellPut("bai", -20265);
    ????spellPut("ban", -20257);
    ????spellPut("bang", -20242);
    ????spellPut("bao", -20230);
    ????spellPut("bei", -20051);
    ????spellPut("ben", -20036);
    ????spellPut("beng", -20032);
    ????spellPut("bi", -20026);
    ????spellPut("bian", -20002);
    ????spellPut("biao", -19990);
    ????spellPut("bie", -19986);
    ????spellPut("bin", -19982);
    ????spellPut("bing", -19976);
    ????spellPut("bo", -19805);
    ????spellPut("bu", -19784);
    ????spellPut("ca", -19775);
    ????spellPut("cai", -19774);
    ????spellPut("can", -19763);
    ????spellPut("cang", -19756);
    ????spellPut("cao", -19751);
    ????spellPut("ce", -19746);
    ????spellPut("ceng", -19741);
    ????spellPut("cha", -19739);
    ????spellPut("chai", -19728);
    ????spellPut("chan", -19725);
    ????spellPut("chang", -19715);
    ????spellPut("chao", -19540);
    ????spellPut("che", -19531);
    ????spellPut("chen", -19525);
    ????spellPut("cheng", -19515);
    ????spellPut("chi", -19500);
    ????spellPut("chong", -19484);
    ????spellPut("chou", -19479);
    ????spellPut("chu", -19467);
    ????spellPut("chuai", -19289);
    ????spellPut("chuan", -19288);
    ????spellPut("chuang", -19281);
    ????spellPut("chui", -19275);
    ????spellPut("chun", -19270);
    ????spellPut("chuo", -19263);
    ????spellPut("ci", -19261);
    ????spellPut("cong", -19249);
    ????spellPut("cou", -19243);
    ????spellPut("cu", -19242);
    ????spellPut("cuan", -19238);
    ????spellPut("cui", -19235);
    ????spellPut("cun", -19227);
    ????spellPut("cuo", -19224);
    ????spellPut("da", -19218);
    ????spellPut("dai", -19212);
    ????spellPut("dan", -19038);
    ????spellPut("dang", -19023);
    ????spellPut("dao", -19018);
    ????spellPut("de", -19006);
    ????spellPut("deng", -19003);
    ????spellPut("di", -18996);
    ????spellPut("dian", -18977);
    ????spellPut("diao", -18961);
    ????spellPut("die", -18952);
    ????spellPut("ding", -18783);
    ????spellPut("diu", -18774);
    ????spellPut("dong", -18773);
    ????spellPut("dou", -18763);
    ????spellPut("du", -18756);
    ????spellPut("duan", -18741);
    ????spellPut("dui", -18735);
    ????spellPut("dun", -18731);
    ????spellPut("duo", -18722);
    ????spellPut("e", -18710);
    ????spellPut("en", -18697);
    ????spellPut("er", -18696);
    ????spellPut("fa", -18526);
    ????spellPut("fan", -18518);
    ????spellPut("fang", -18501);
    ????spellPut("fei", -18490);
    ????spellPut("fen", -18478);
    ????spellPut("feng", -18463);
    ????spellPut("fo", -18448);
    ????spellPut("fou", -18447);
    ????spellPut("fu", -18446);
    ????spellPut("ga", -18239);
    ????spellPut("gai", -18237);
    ????spellPut("gan", -18231);
    ????spellPut("gang", -18220);
    ????spellPut("gao", -18211);
    ????spellPut("ge", -18201);
    ????spellPut("gei", -18184);
    ????spellPut("gen", -18183);
    ????spellPut("geng", -18181);
    ????spellPut("gong", -18012);
    ????spellPut("gou", -17997);
    ????spellPut("gu", -17988);
    ????spellPut("gua", -17970);
    ????spellPut("guai", -17964);
    ????spellPut("guan", -17961);
    ????spellPut("guang", -17950);
    ????spellPut("gui", -17947);
    ????spellPut("gun", -17931);
    ????spellPut("guo", -17928);
    ????spellPut("ha", -17922);
    ????spellPut("hai", -17759);
    ????spellPut("han", -17752);
    ????spellPut("hang", -17733);
    ????spellPut("hao", -17730);
    ????spellPut("he", -17721);
    ????spellPut("hei", -17703);
    ????spellPut("hen", -17701);
    ????spellPut("heng", -17697);
    ????spellPut("hong", -17692);
    ????spellPut("hou", -17683);
    ????spellPut("hu", -17676);
    ????spellPut("hua", -17496);
    ????spellPut("huai", -17487);
    ????spellPut("huan", -17482);
    ????spellPut("huang", -17468);
    ????spellPut("hui", -17454);
    ????spellPut("hun", -17433);
    ????spellPut("huo", -17427);
    ????spellPut("ji", -17417);
    ????spellPut("jia", -17202);
    ????spellPut("jian", -17185);
    ????spellPut("jiang", -16983);
    ????spellPut("jiao", -16970);
    ????spellPut("jie", -16942);
    ????spellPut("jin", -16915);
    ????spellPut("jing", -16733);
    ????spellPut("jiong", -16708);
    ????spellPut("jiu", -16706);
    ????spellPut("ju", -16689);
    ????spellPut("juan", -16664);
    ????spellPut("jue", -16657);
    ????spellPut("jun", -16647);
    ????spellPut("ka", -16474);
    ????spellPut("kai", -16470);
    ????spellPut("kan", -16465);
    ????spellPut("kang", -16459);
    ????spellPut("kao", -16452);
    ????spellPut("ke", -16448);
    ????spellPut("ken", -16433);
    ????spellPut("keng", -16429);
    ????spellPut("kong", -16427);
    ????spellPut("kou", -16423);
    ????spellPut("ku", -16419);
    ????spellPut("kua", -16412);
    ????spellPut("kuai", -16407);
    ????spellPut("kuan", -16403);
    ????spellPut("kuang", -16401);
    ????spellPut("kui", -16393);
    ????spellPut("kun", -16220);
    ????spellPut("kuo", -16216);
    ????spellPut("la", -16212);
    ????spellPut("lai", -16205);
    ????spellPut("lan", -16202);
    ????spellPut("lang", -16187);
    ????spellPut("lao", -16180);
    ????spellPut("le", -16171);
    ????spellPut("lei", -16169);
    ????spellPut("leng", -16158);
    ????spellPut("li", -16155);
    ????spellPut("lia", -15959);
    ????spellPut("lian", -15958);
    ????spellPut("liang", -15944);
    ????spellPut("liao", -15933);
    ????spellPut("lie", -15920);
    ????spellPut("lin", -15915);
    ????spellPut("ling", -15903);
    ????spellPut("liu", -15889);
    ????spellPut("long", -15878);
    ????spellPut("lou", -15707);
    ????spellPut("lu", -15701);
    ????spellPut("lv", -15681);
    ????spellPut("luan", -15667);
    ????spellPut("lue", -15661);
    ????spellPut("lun", -15659);
    ????spellPut("luo", -15652);
    ????spellPut("ma", -15640);
    ????spellPut("mai", -15631);
    ????spellPut("man", -15625);
    ????spellPut("mang", -15454);
    ????spellPut("mao", -15448);
    ????spellPut("me", -15436);
    ????spellPut("mei", -15435);
    ????spellPut("men", -15419);
    ????spellPut("meng", -15416);
    ????spellPut("mi", -15408);
    ????spellPut("mian", -15394);
    ????spellPut("miao", -15385);
    ????spellPut("mie", -15377);
    ????spellPut("min", -15375);
    ????spellPut("ming", -15369);
    ????spellPut("miu", -15363);
    ????spellPut("mo", -15362);
    ????spellPut("mou", -15183);
    ????spellPut("mu", -15180);
    ????spellPut("na", -15165);
    ????spellPut("nai", -15158);
    ????spellPut("nan", -15153);
    ????spellPut("nang", -15150);
    ????spellPut("nao", -15149);
    ????spellPut("ne", -15144);
    ????spellPut("nei", -15143);
    ????spellPut("nen", -15141);
    ????spellPut("neng", -15140);
    ????spellPut("ni", -15139);
    ????spellPut("nian", -15128);
    ????spellPut("niang", -15121);
    ????spellPut("niao", -15119);
    ????spellPut("nie", -15117);
    ????spellPut("nin", -15110);
    ????spellPut("ning", -15109);
    ????spellPut("niu", -14941);
    ????spellPut("nong", -14937);
    ????spellPut("nu", -14933);
    ????spellPut("nv", -14930);
    ????spellPut("nuan", -14929);
    ????spellPut("nue", -14928);
    ????spellPut("nuo", -14926);
    ????spellPut("o", -14922);
    ????spellPut("ou", -14921);
    ????spellPut("pa", -14914);
    ????spellPut("pai", -14908);
    ????spellPut("pan", -14902);
    ????spellPut("pang", -14894);
    ????spellPut("pao", -14889);
    ????spellPut("pei", -14882);
    ????spellPut("pen", -14873);
    ????spellPut("peng", -14871);
    ????spellPut("pi", -14857);
    ????spellPut("pian", -14678);
    ????spellPut("piao", -14674);
    ????spellPut("pie", -14670);
    ????spellPut("pin", -14668);
    ????spellPut("ping", -14663);
    ????spellPut("po", -14654);
    ????spellPut("pu", -14645);
    ????spellPut("qi", -14630);
    ????spellPut("qia", -14594);
    ????spellPut("qian", -14429);
    ????spellPut("qiang", -14407);
    ????spellPut("qiao", -14399);
    ????spellPut("qie", -14384);
    ????spellPut("qin", -14379);
    ????spellPut("qing", -14368);
    ????spellPut("qiong", -14355);
    ????spellPut("qiu", -14353);
    ????spellPut("qu", -14345);
    ????spellPut("quan", -14170);
    ????spellPut("que", -14159);
    ????spellPut("qun", -14151);
    ????spellPut("ran", -14149);
    ????spellPut("rang", -14145);
    ????spellPut("rao", -14140);
    ????spellPut("re", -14137);
    ????spellPut("ren", -14135);
    ????spellPut("reng", -14125);
    ????spellPut("ri", -14123);
    ????spellPut("rong", -14122);
    ????spellPut("rou", -14112);
    ????spellPut("ru", -14109);
    ????spellPut("ruan", -14099);
    ????spellPut("rui", -14097);
    ????spellPut("run", -14094);
    ????spellPut("ruo", -14092);
    ????spellPut("sa", -14090);
    ????spellPut("sai", -14087);
    ????spellPut("san", -14083);
    ????spellPut("sang", -13917);
    ????spellPut("sao", -13914);
    ????spellPut("se", -13910);
    ????spellPut("sen", -13907);
    ????spellPut("seng", -13906);
    ????spellPut("sha", -13905);
    ????spellPut("shai", -13896);
    ????spellPut("shan", -13894);
    ????spellPut("shang", -13878);
    ????spellPut("shao", -13870);
    ????spellPut("she", -13859);
    ????spellPut("shen", -13847);
    ????spellPut("sheng", -13831);
    ????spellPut("shi", -13658);
    ????spellPut("shou", -13611);
    ????spellPut("shu", -13601);
    ????spellPut("shua", -13406);
    ????spellPut("shuai", -13404);
    ????spellPut("shuan", -13400);
    ????spellPut("shuang", -13398);
    ????spellPut("shui", -13395);
    ????spellPut("shun", -13391);
    ????spellPut("shuo", -13387);
    ????spellPut("si", -13383);
    ????spellPut("song", -13367);
    ????spellPut("sou", -13359);
    ????spellPut("su", -13356);
    ????spellPut("suan", -13343);
    ????spellPut("sui", -13340);
    ????spellPut("sun", -13329);
    ????spellPut("suo", -13326);
    ????spellPut("ta", -13318);
    ????spellPut("tai", -13147);
    ????spellPut("tan", -13138);
    ????spellPut("tang", -13120);
    ????spellPut("tao", -13107);
    ????spellPut("te", -13096);
    ????spellPut("teng", -13095);
    ????spellPut("ti", -13091);
    ????spellPut("tian", -13076);
    ????spellPut("tiao", -13068);
    ????spellPut("tie", -13063);
    ????spellPut("ting", -13060);
    ????spellPut("tong", -12888);
    ????spellPut("tou", -12875);
    ????spellPut("tu", -12871);
    ????spellPut("tuan", -12860);
    ????spellPut("tui", -12858);
    ????spellPut("tun", -12852);
    ????spellPut("tuo", -12849);
    ????spellPut("wa", -12838);
    ????spellPut("wai", -12831);
    ????spellPut("wan", -12829);
    ????spellPut("wang", -12812);
    ????spellPut("wei", -12802);
    ????spellPut("wen", -12607);
    ????spellPut("weng", -12597);
    ????spellPut("wo", -12594);
    ????spellPut("wu", -12585);
    ????spellPut("xi", -12556);
    ????spellPut("xia", -12359);
    ????spellPut("xian", -12346);
    ????spellPut("xiang", -12320);
    ????spellPut("xiao", -12300);
    ????spellPut("xie", -12120);
    ????spellPut("xin", -12099);
    ????spellPut("xing", -12089);
    ????spellPut("xiong", -12074);
    ????spellPut("xiu", -12067);
    ????spellPut("xu", -12058);
    ????spellPut("xuan", -12039);
    ????spellPut("xue", -11867);
    ????spellPut("xun", -11861);
    ????spellPut("ya", -11847);
    ????spellPut("yan", -11831);
    ????spellPut("yang", -11798);
    ????spellPut("yao", -11781);
    ????spellPut("ye", -11604);
    ????spellPut("yi", -11589);
    ????spellPut("yin", -11536);
    ????spellPut("ying", -11358);
    ????spellPut("yo", -11340);
    ????spellPut("yong", -11339);
    ????spellPut("you", -11324);
    ????spellPut("yu", -11303);
    ????spellPut("yuan", -11097);
    ????spellPut("yue", -11077);
    ????spellPut("yun", -11067);
    ????spellPut("za", -11055);
    ????spellPut("zai", -11052);
    ????spellPut("zan", -11045);
    ????spellPut("zang", -11041);
    ????spellPut("zao", -11038);
    ????spellPut("ze", -11024);
    ????spellPut("zei", -11020);
    ????spellPut("zen", -11019);
    ????spellPut("zeng", -11018);
    ????spellPut("zha", -11014);
    ????spellPut("zhai", -10838);
    ????spellPut("zhan", -10832);
    ????spellPut("zhang", -10815);
    ????spellPut("zhao", -10800);
    ????spellPut("zhe", -10790);
    ????spellPut("zhen", -10780);
    ????spellPut("zheng", -10764);
    ????spellPut("zhi", -10587);
    ????spellPut("zhong", -10544);
    ????spellPut("zhou", -10533);
    ????spellPut("zhu", -10519);
    ????spellPut("zhua", -10331);
    ????spellPut("zhuai", -10329);
    ????spellPut("zhuan", -10328);
    ????spellPut("zhuang", -10322);
    ????spellPut("zhui", -10315);
    ????spellPut("zhun", -10309);
    ????spellPut("zhuo", -10307);
    ????spellPut("zi", -10296);
    ????spellPut("zong", -10281);
    ????spellPut("zou", -10274);
    ????spellPut("zu", -10270);
    ????spellPut("zuan", -10262);
    ????spellPut("zui", -10260);
    ????spellPut("zun", -10256);
    ????spellPut("zuo", -10254);
    ????spellPut("zz", -10247);
    ??}

    ??/**
    ?? * 獲得單個漢字的Ascii.
    ?? */
    ??public static int getCnAscii(char cn) {
    ????byte[] bytes = (String.valueOf(cn)).getBytes();
    ????if (bytes == null || bytes.length > 2 || bytes.length <= 0) { //錯誤
    ??????return 0;
    ????}
    ????if (bytes.length == 1) { //英文字符
    ??????return bytes[0];
    ????}
    ????if (bytes.length == 2) { //中文字符
    ??????int hightByte = 256 + bytes[0];
    ??????int lowByte = 256 + bytes[1];

    ??????int ascii = (256 * hightByte + lowByte) - 256 * 256;

    ??????//System.out.println("ASCII=" + ascii);

    ??????return ascii;
    ????}

    ????return 0; //錯誤
    ??}

    ??/**
    ?? * 根據ASCII碼到SpellMap中查找對應的拼音
    ?? */
    ??public static String getSpellByAscii(int ascii) {
    ????if (ascii > 0 && ascii < 160) { //單字符
    ??????return String.valueOf( (char) ascii);
    ????}

    ????if (ascii < -20319 || ascii > -10247) { //不知道的字符
    ??????return null;
    ????}

    ????Set keySet = spellMap.keySet();
    ????Iterator it = keySet.iterator();

    ????String spell0 = null; ;
    ????String spell = null;

    ????int asciiRang0 = -20319;
    ????int asciiRang;
    ????while (it.hasNext()) {

    ??????spell = (String) it.next();
    ??????Object valObj = spellMap.get(spell);
    ??????if (valObj instanceof Integer) {
    ????????asciiRang = ( (Integer) valObj).intValue();

    ????????if (ascii >= asciiRang0 && ascii < asciiRang) { //區間找到
    ??????????return (spell0 == null) ? spell : spell0;
    ????????}
    ????????else {
    ??????????spell0 = spell;
    ??????????asciiRang0 = asciiRang;
    ????????}
    ??????}
    ????}

    ????return null;

    ??}

    ??/**
    ?? * 返回字符串的全拼,是漢字轉化為全拼,其它字符不進行轉換
    ?? */
    ??public static String getFullSpell(String cnStr) {
    ????if (null == cnStr || "".equals(cnStr.trim())) {
    ??????return cnStr;
    ????}

    ????char[] chars = cnStr.toCharArray();
    ????StringBuffer retuBuf = new StringBuffer();
    ????for (int i = 0, Len = chars.length; i < Len; i++) {
    ??????int ascii = getCnAscii(chars[i]);
    ??????if (ascii == 0) { //取ascii時出錯
    ????????retuBuf.append(chars[i]);
    ????????retuBuf.append(" ");
    ??????}
    ??????else {
    ????????String spell = getSpellByAscii(ascii);
    ????????if (spell == null) {
    ??????????retuBuf.append(chars[i]);
    ??????????retuBuf.append(" ");
    ????????}
    ????????else {
    ??????????retuBuf.append(spell);
    ??????????retuBuf.append(" ");
    ????????} // end of if spell == null
    ??????} // end of if ascii <= -20400
    ????} // end of for

    ????return retuBuf.toString();
    ??}

    ??public static String getFirstSpell(String cnStr) {
    ????return null;
    ??}

    ??}
    }

    說明:1。freeTTS可以從網上免費獲得源碼。

    ??????2。漢字轉拼音只是初級的,未能區分多音字等,也不能分詞。

    ??????3。freeTTS對于中文的朗讀效果不好。

    posted on 2006-05-30 14:11 TrampEagle 閱讀(1541) 評論(1)  編輯  收藏 所屬分類: java

    Feedback

    # re: 簡易的TTS程序 2009-07-27 11:15 as
    private TTSKernel() {
    }
    里的這個方法出錯,說少VOID  回復  更多評論
      

    主站蜘蛛池模板: 免费观看大片毛片| 5g影院5g天天爽永久免费影院| 国产免费AV片在线播放唯爱网| 亚洲va无码手机在线电影| a级毛片免费网站| 亚洲一区二区三区无码影院| 曰批全过程免费视频免费看| 免费久久精品国产片香蕉| 国产成人亚洲综合a∨| 国产女高清在线看免费观看| 黄色三级三级免费看| 久久久久噜噜噜亚洲熟女综合| 特级av毛片免费观看| 综合久久久久久中文字幕亚洲国产国产综合一区首| 国产综合激情在线亚洲第一页| 国产一级大片免费看| 国产高清对白在线观看免费91| 久久国产成人精品国产成人亚洲 | 色网站在线免费观看| 亚洲人成无码www久久久| 中文字幕在线免费播放| 亚洲第一福利网站| 永久看日本大片免费35分钟| 亚洲 欧洲 自拍 另类 校园| 欧洲美熟女乱又伦免费视频| 日韩少妇内射免费播放| 亚洲大尺度无码无码专区| AV无码免费永久在线观看| 亚洲AV无码资源在线观看| 亚洲性在线看高清h片| 最近中文字幕大全免费视频| 亚洲另类无码专区首页| 亚洲人成人网站在线观看| 久久久久免费看黄a级试看| 亚洲国产精品综合福利专区| 国产免费观看a大片的网站| 免费成人在线电影| 亚洲精品国产高清在线观看| 亚洲无线码在线一区观看| 无码av免费毛片一区二区| 一级毛片免费在线|