Android文字转语音服务突然停止

时间:2015-07-28 06:31:03

标签: android text-to-speech google-text-to-speech

这是我的文本到语音服务部分,我获取我的数据,这工作正常,现在我收到此错误" java.io.FileNotFoundException:http://ipv4.google.com/sorry/IndexRedirect?continue=http://translate.google.com/translate_tts%3Ftl%3Den-AU%26q%3Dhello%2Bhow%2Bare%2Byou%2Btoday%2B&q=CGMSBMpY7fgYhL_crQUiGQDxp4NL6gmQZhZKyI3fztC8pj7G18P2vhg"当我在浏览器上打开相同内容时,我得到了这个,如果我正在写字符,我将获得所需数据。这是一个常见问题或谷歌已经改变了一些事情,请帮助enter image description here

                                // data
    {

        // Log.e("JUSTLOGGINGURL", text);
        text = URLEncoder.encode(text, "UTF-8");
        String voiceUrl = "http://translate.google.com/translate_tts?tl="
                + lang_to + "&q=" + text;
        // Log.e("JUSTLOGGINGURL", voiceUrl);

        HttpURLConnection con = null;
        InputStream is = null;
        try {

            URL url = new URL(voiceUrl);
            con = (HttpURLConnection) url.openConnection();
            con.setRequestProperty(
                    "User-Agent",
                    "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
//          con.setRequestProperty(
//                  "User-Agent",
//                  "Mozilla/5.0 (Linux; Android 4.0.0; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36");
            con.setRequestMethod("GET");
            con.setDoInput(true);
            con.connect();
            is = con.getInputStream();

        } catch (IOException e) {
            e.printStackTrace();
            is = null;
            return is;

        }
        return is;

1 个答案:

答案 0 :(得分:4)

你很聪明;)

但是你必须记住,当你使用来自页面源的链接时,它会改变。 谷歌只是阻止你,因为你提出了很多要求或类似的东西。

你有3个解决方案:

  1. 使用Google Translate API并付费 - Here you have Pricing

  2. 使用另一个免费用于商业用途的API - 这里有一些free API。但如果你想要更多,你必须环顾谷歌。

  3. 在Android (TextToSpeech)中使用Build in TTS服务 - 你必须知道它有点小错误。

相关问题