根据英文单词产生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。