2012-11-12 12 views
5

Próbuję pobrać tekst na mowę z Tłumacza Google za pomocą Java. Działa dobrze z językiem angielskim, ale z japońskim nie jest udany. Oto mój kod:Java: pobierz Text to Speech z Tłumacza Google

try{ 
      String word="〜のそばに"; 
      word=java.net.URLEncoder.encode(word, "UTF-8"); 
      URL url = new URL("http://translate.google.com/translate_tts?tl=ja&q="+word); 
      HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); 
      urlConn.addRequestProperty("User-Agent", "Mozilla/4.76"); 
      InputStream audioSrc = urlConn.getInputStream(); 
      DataInputStream read = new DataInputStream(audioSrc); 
      OutputStream outstream = new FileOutputStream(new File("mysound.mp3")); 
      byte[] buffer = new byte[1024]; 
      int len; 
      while ((len = read.read(buffer)) > 0) { 
        outstream.write(buffer, 0, len);      
      } 
      outstream.close();    
}catch(IOException e){ 
      System.out.println(e.getMessage()); 
} 

Masz jakiś pomysł lub sugestię?

+0

co dzieje się z japońskim? –

+0

Mam plik bez dźwięku – DavidNg

+0

jest plikiem o rozmiarze zero lub jest uszkodzony? –

Odpowiedz

6

Wygląda na to, że musisz poinformować Google, że wyszukiwane hasło zawiera znaki zakodowane w UTF-8.

Zmiana adresu URL na http://translate.google.com/translate_tts?ie=UTF-8&tl=ja&q= rozwiązuje problem. Otrzymuję ten sam pobrany .mp3 w porównaniu z tłumaczeniem audio z serwisu Google Translate.

+1

działa idealnie, dzięki – DavidNg