我想的话转换成语音 ..
直到如今我已经试过这样:
<?php
$text = "Hello this is a test for voice api of google";
// Name of the MP3 file generated using the MD5 hash
$file = md5($text);
// Save the MP3 file in this folder with the .mp3 extension
$file = "audio/" . $file .".mp3";
if($file) {
echo "created";
} else {
echo "not created";
}
// If the MP3 file exists, do not create a new request
if (!file_exists($file)) {
$mp3 = file_get_contents(
'http://translate.google.com/translate_tts?q=' . $text);
echo "hello";
file_put_contents($file, $mp3);
} else {
echo "hii";
}
?>
在我的HTML文件:
<audio controls="controls" autoplay="autoplay">
<source src="<?php echo $file; ?>" type="audio/mp3" />
</audio>
我正在创建打招呼,在输出的音频播放器。 但是,没有文件播放,并没有被创建的文件夹中?
没有与您尝试访问的网址有问题。 它被打破 ! 你应该首先尝试。 新的URL,我的FF控制台上发现的是:
http://translate.google.com/translate_tts?ie=UTF-8&q=Hello&tl=en&total=1&idx=0&textlen=5&prev=input
对于单个单词你好 。 你可以看到,你必须指定语言,并在在textlen文本的长度,即使它没有工作,我才试图在不改变该变种的句子。
另一个问题是,你必须来urlencode()你的文字,或者你将有口音和标点符号的错误。 所以下载的MP3行变成了:
// Language of the sentence $lang = "fr"; $mp3 = file_get_contents( 'http://translate.google.com/translate_tts?ie=UTF-8&q='. urlencode($text) .'&tl='. $lang .'&total=1&idx=0&textlen=5&prev=input');
因此,完整的代码如下所示:
<?php
$text = "Bonjour, comment allez vous ?";
// Yes French is a beautiful language.
$lang = "fr";
// MP3 filename generated using MD5 hash
// Added things to prevent bug if you want same sentence in two different languages
$file = md5($lang."?".urlencode($text));
// Save MP3 file in folder with .mp3 extension
$file = "audio/" . $file . ".mp3";
// Check folder exists, if not create it, else verify CHMOD
if (!is_dir("audio/"))
mkdir("audio/");
else
if (substr(sprintf('%o', fileperms('audio/')), -4) != "0777")
chmod("audio/", 0777);
// If MP3 file exists do not create new request
if (!file_exists($file))
{
// Download content
$mp3 = file_get_contents(
'http://translate.google.com/translate_tts?ie=UTF-8&q='. urlencode($text) .'&tl='. $lang .'&total=1&idx=0&textlen=5&prev=input');
file_put_contents($file, $mp3);
}
?>
我找到了:
https://translate.google.com.vn/translate_tts?ie=UTF-8&client=tw-ob&q=ANYTHING_TEXT&tl=YOUR_LANGUAGE_CODE
重要提示: client=tw-ob
YOUR_LANGUAGE_CODE
能恩,美国,英国,VI等。
一种改进版本:
// ~~~ Credits to kube ~~~
$text = "Hello this is a test for voice api of google";
$text = urlencode($text);
$lang = urldecode("en");
$file = "audio/" . md5($text) .".mp3";
if (!file_exists($file) || filesize($file) == 0) {
$mp3 = file_get_contents('http://translate.google.com/translate_tts?ie=UTF-8&q='.$text.'&tl='.$lang.'&total=2&idx=0&textlen='.strlen($text).'&prev=input');
if(file_put_contents($file, $mp3)){
echo "Saved<br>";
}else{
echo "Wasn't able to save it !<br>";
}
} else {
echo "Already exist<br>";
}
您不能免费使用这项服务。
有没有免费配额? 不,谷歌翻译API仅作为一种有偿服务。 请参阅定价和支持更多的细节。 但是,我们提供的谷歌网站翻译小工具,这将不收费您的网站翻译。
检查翻译API常见问题解答
有关使用这个非官方的方式,你可以找到更多信息TechCrunch的
您还可以使用下面的简单代码。 只不过是回应代码即可获得结果。 在这段代码,就没有必要保存一个文件或得到许可的问题。
echo "<iframe hidden src='http://translate.google.com/translate_tts?ie=UTF-8&q=Welcome%20back%20".$jvm['firstname']."&tl=en&total=2&idx=0&textlen=5&prev=input'></iframe>";
您的文件也没有创造,因为你忘了创建它,使用下面的代码来创建该文件。
$file = "audio/".$file.".mp3";
$ourFileHandle = fopen($file, 'w') or die("can't open file");