我曾经使用此网址调用Google Translate TTS下载音频文件: http://translate.google.com/translate_tts?tl=en&q=Hello+world!
然而谷歌改变了工作方式,因此我无法再下载音频文件。 我已经注册了Google Translate API V2的免费试用版,但无法找到如何获取TTS音频文件。
有什么想法吗?
答案 0 :(得分:11)
您可以使用不带验证码的链接。
答案 1 :(得分:3)
文字转语音始终是一种“非官方”API,现在受到验证码保护以防止滥用。它从未作为Translate API的一部分进行宣传,目前Translate V2 API中没有TTS功能,付费或其他。
以下groups thread还有更多背景信息已经持续了一段时间。
答案 2 :(得分:2)
尝试以下链接获取英语: https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl=en&q=Hello+World
中文(普通话) https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl=zh-CN&q=世界+你好
答案 3 :(得分:1)
我偶然发现了这个线程,并想提及@Alexandre Andrade,主要是因为他没有提交任何代码。
我是在react应用程序中完成的,但是相同的步骤适用于普通的Web项目。
我确实将this document添加到了我的头public / index.html,
<head>
...
<meta name="referrer" content="no-referrer">
...
</head>
然后在我的组件中添加音频标签:
Javascript:
const playTTS = (text, lang) => {
// Get the audio element
const audioEl = document.getElementById('tts-audio');
const url= `https://translate.google.com/translate_tts?ie=UTF-8&tl=${lang}&client=tw-ob&q=${text}`;
// add the sound to the audio element
audioEl.src = url;
//For auto playing the sound
audioEl.play();
};
html
...
<audio controls id="tts-audio"/>
...
然后,只需将函数与您的某些生命周期方法挂钩即可。由于我在react挂钩中编写了react代码,因此我在其中一个挂钩中添加了函数调用,以在加载组件时对其进行初始化。 (否则它将位于componentDidMount()函数中。)
希望这可以帮助任何人!
答案 4 :(得分:0)
这里是那些拼命尝试以HTML音频形式播放Google TTS的人:让我为您节省几个小时的时间,并告诉您如何做。
假设我们有此链接: https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl=en&q=I+love+coffee
如果您尝试通过给定的链接并使用<audio>
,<iframe>
,第三方库或Java脚本播放此音频...
var audio = new Audio('https://translate.google.com/translate_tts...');
audio.play();
...然后,您很快就会发现,由于引发错误404 ,上述方法均无效。
显然,播放此TTS通用音频的唯一可能方法是利用包装在自定义<embed>
中的<iframe>
标签并为链接赋予唯一的版本号(这很重要,因为浏览器会进行缓存出于某种原因阻止音频播放)。
以下是我们示例的解决方案:(假设您有iframe#ttsiframe)
function playTTS(lang,sentence) {
//get the iframe
var iFrame = document.getElementById('ttsiframe');
//remove its sandbox property
iFrame.removeAttribute('sandbox');
//this is your reference variable for the iframe body and head tag
var iFrameBody;
//get the body
if (iFrame.contentDocument) { // FF
iFrameBody = iFrame.contentDocument.getElementsByTagName('body')[0];
iFrameHead = iFrame.contentDocument.getElementsByTagName('head')[0];
}
else if (iFrame.contentWindow) { // IE
iFrameBody = iFrame.contentWindow.document.getElementsByTagName('body')[0];
iFrameHead = iFrame.contentWindow.document.getElementsByTagName('head')[0];
}
else {
iFrameBody = iFrame.contentDocument.body;
iFrameHead = iFrame.contentDocument.head;
}
//generate link to Google Translate TTS using arguments (pay attention to random version number at the end)
var link = 'https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl=' + lang + '&q=' + sentence.replace(/ /g,'+').replace(/[.]/g,'') + '&rd=' + getRandomInt(0,50000000);
//add embed element with our link
iFrameBody.innerHTML = '<embed src="' + link + '" id="TTS">';
//isolate iframe
iFrame.setAttribute('sandbox','');
}
答案 5 :(得分:0)
您可以简单地使用链接: