根据英文单词产生MP3文件

 1 package test;
 2 
 3 import java.awt.event.ActionEvent;
 4 import java.awt.event.ActionListener;
 5 import java.io.DataInputStream;
 6 import java.io.File;
 7 import java.io.FileOutputStream;
 8 import java.io.IOException;
 9 import java.io.InputStream;
10 import java.io.OutputStream;
11 import java.net.HttpURLConnection;
12 import java.net.URL;
13 import java.net.URLDecoder;
14 import javax.swing.JButton;
15 import javax.swing.JFrame;
16 import javax.swing.JTextField;
17 import com.gtranslate.Language;
18 import com.gtranslate.Translator;
19 
20 public class Test {
21     public static void main(String[] args) {
22         JFrame jf = new JFrame();
23         
24         jf.setLayout(null);
25         final JTextField jtf = new JTextField(20);
26         jtf.setBounds(20, 20, 250, 30);
27         jf.add(jtf);
28         JButton jb = new JButton("根据英文单词产生MP3文件");
29         jb.setBounds(20,70,250,30);
30         jb.addActionListener(new ActionListener(){
31             public void actionPerformed(ActionEvent e) {
32                 String oword = jtf.getText();
33                 getMp3("",oword,"en");
34                 String word = getText(oword);
35                 System.out.println(oword);
36                 System.out.println(word);
37                 getMp3(oword,word,"zh-cn");
38             }
39         });
40         jf.add(jb);
41         
42         jf.setResizable(false);
43         jf.setSize(300,150);
44         jf.setVisible(true);
45         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
46     }
47 
48     public static String getText(String str){
49         Translator translate = Translator.getInstance();
50         String text = translate.translate(str, Language.ENGLISH, Language.CHINESE_SIMPLIFIED);
51         System.out.println(text);
52         return text;
53     }
54 
55     public static void getMp3(String oword,String word,String tl){
56         try{
57             word=java.net.URLEncoder.encode(word, "UTF-8");
58             String urlPath = "http://translate.google.com/translate_tts?ie=UTF-8&tl="+tl+"&q="+word;
59             System.out.println(urlPath);
60             URL url = new URL(urlPath);
61             HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
62             urlConn.addRequestProperty("User-Agent", "Mozilla/4.76");
63             InputStream audioSrc = urlConn.getInputStream();
64             DataInputStream read = new DataInputStream(audioSrc);
65             OutputStream outstream = new FileOutputStream(new File("c://"+oword+URLDecoder.decode(word, "utf-8")+".mp3"));
66             byte[] buffer = new byte[1024];
67             int len;
68             while ((len = read.read(buffer)) > 0) {
69                 outstream.write(buffer, 0, len);                    
70             }
71             outstream.close();     
72             System.out.println("done!");
73         }catch(IOException e){
74             System.out.println(e.getMessage());
75         }
76     }
77 }

 需要下载两个库gtranslateapi-1.0.jar和jl1.0.jar。

posted @ 2014-09-12 15:56  心静神飞  阅读(436)  评论(0)    收藏  举报