1

这是我获取数据的文本到语音服务部分,它工作正常,现在我收到此错误“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 “当我在浏览器上打开它时,我得到了这个,如果我正在写字符我正在获取所需的数据。这是一个常见问题还是谷歌更改了某些内容,请帮助 在此处输入图像描述

                                // 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;
4

1 回答 1

4

你很聪明 ;)

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

您有 3 个解决方案:

  1. 使用 Google Translate API 并付费-这里有定价

  2. 使用另一个免费用于商业用途的 API - 这里有一些免费的 API。但是如果你想要更多,你必须在谷歌中四处看看。

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

于 2015-07-28T06:40:03.123 回答