【问题标题】:Google Translate TTS problem谷歌翻译 TTS 问题
【发布时间】:2011-08-29 09:58:37
【问题描述】:

我正在使用一个简单的 HTML 文件进行测试,其中包含:

<audio src="http://translate.google.com/translate_tts?tl=en&q=A+simple_text+to+voice+demonstration." controls autoplay>

使用 Chrome v11.0.696.68 和 FF v4.0.1。我正在通过代理服务器,但它不起作用。什么都没有播放,点击播放按钮在 Chrome 中不起作用。在 FF 中,它会闪烁,然后在控件上方显示一个“X”。错误日志不显示任何内容。

所以我已经分解了步骤:

  1. 在任一浏览器中输入 URL 都可以

  2. wget -q -U Mozilla -O /tmp/tts.mp3 "http://translate.google.com/translate_tts?tl=en&q=Welcome+to+our+fantastic+text+to+voice +示范。”给我一个在两种浏览器上都能正常播放的文件。

  3. 如果我从本地 Web 服务器提供此文件,它可以正常工作(即不通过代理的服务器)。即 src="http://localhost/tts.mp3"

我被难住了。如果代理是问题,那么 wget 和地址栏访问应该不起作用。如果 src 是一个 URL 是问题,那么它不应该在我的本地服务器上工作。

有什么线索吗?建议?

【问题讨论】:

标签: html audio text-to-speech google-translate


【解决方案1】:

这不起作用的原因很可能是因为 translate.google.com 限制某些类型的请求以防止服务过载。例如,如果您在没有“-U Mozilla”用户代理选项的情况下使用 wget,您将收到 HTTP 404,因为该服务限制来自 wget 的默认用户代理字符串的响应。

在您的情况下,如果请求中包含 HTTP Referrer,则 translate.google.com 似乎正在返回 HTTP 404。当您从命令行运行 wget 时,没有引荐来源网址。当您在网页中使用音频标签时,请求翻译时会提供一个 HTTP 引荐来源网址。我刚刚尝试了以下并得到了 404。

wget --referer="http://foo.com" -U Mozilla -O /tmp/tts.mp3 "http://translate.google.com/translate_tts?tl=en&q=Welcome+to+our+fantastic+text+to+voice+demonstration

但是,如果您去掉 --referer 选项,它会起作用。

【讨论】:

  • 做了更多测试,我还发现服务停止似乎有一个长度限制。此外,Google 最近似乎进一步减少了对这项服务的使用。
【解决方案2】:

该服务在此处运行(2011 年 11 月 11 日),但限制为 100 个字符。您可以将文本分成 100 个字符块,下载每个块的 mp3 结果,然后将这些块合并为最终的 Mp3 文件。

【讨论】:

    猜你喜欢
    • 2015-11-10
    • 1970-01-01
    • 2020-09-25
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多