谷歌TTS API为阿拉伯语,中国和希腊(Google TTS API for Arabic, Ch

2019-06-23 20:20发布

我试图下载从谷歌TTS API的MP3文件,这里是代码

try {   

        String path ="http://translate.google.com/translate_tts?tl=en&q=hello";
        //this is the name of the local file you will create
        String targetFileName = "test.mp3";
            boolean eof = false;
        URL u = new URL(path);
        HttpURLConnection c = (HttpURLConnection) u.openConnection();
        c.addRequestProperty("User-Agent", "Mozilla/5.0");
        c.setRequestMethod("GET");
        c.setDoOutput(true);
        c.connect();
        FileOutputStream f = new FileOutputStream(new File(Environment.getExternalStorageDirectory()
                + "/download/"+targetFileName));
            InputStream in = c.getInputStream();
            byte[] buffer = new byte[1024];
            int len1 = 0;
            while ( (len1 = in.read(buffer)) > 0 ) {
            f.write(buffer,0, len1);
                     }
        f.close();
        } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        } catch (ProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();


    }

这工作得很好,但是当我试图使像中国或希腊语,其使用特殊字符的要求

String path ="http://translate.google.com/translate_tts?tl=zh-TW&q=你好";

MP3文件等我回来没声音,但是从文件的大小,我可以告诉它在它的数据。 当我尝试用阿拉伯语同

String path ="http://translate.google.com/translate_tts?tl=ar&q=%D8%A7%D9%84%D9%84%D9%87";

我回去跟0字节的空的MP3文件。

我曾尝试使用不同的用户代理和似乎没有任何工作尝试。

请帮忙。

谢谢

Answer 1:

使用路径为URI,而不是那么字符串将其更改为ASCII字符串。

URI uri = new URI("http://translate.google.com/translate_tts?tl=zh-TW&q=你好");

URL u = new URL(uri.toASCIIString());


Answer 2:

我有你同样的问题。 但我必须解决这个问题昨天。 我想的API说,中国和保存的MP3文件。

该网址目前是:PATH = “http://translate.google.com/translate_tts?tl=zh-TW&q=你好” 你做如下:PATH =“http://translate.google.com/translate_tts?ie = UTF-8&TL = ZH-TW&q =”进行urlencode。( “你好”);

添加PARAM即= UTF-8和编码中国话。 你会得到你想要的东西。



Answer 3:

如果应用程序崩溃试试这个

txtToTranslate = txtToTranslate.replace(" ", "%20");

它将替换单词之间的空格。



文章来源: Google TTS API for Arabic, Chinese and Greek