我在输出中创建了 hello 和音频播放器。但是没有播放-6ren">
gpt4 book ai didi

php - 使用 Google Translate 在 PHP 中进行文字转语音

转载 作者:技术小花猫 更新时间:2023-10-29 12:38:09 28 4
gpt4 key购买 nike

我正在尝试将单词转换为语音 ..

到目前为止,我已经试过了:

<?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>

我在输出中创建了 hello 和音频播放器。但是没有播放文件,也没有在文件夹中创建文件?

最佳答案

  1. 您尝试访问的 URL 有问题。它被打破 !你应该先尝试一下。我在 FF 控制台上找到的新 URL 是:

    http://translate.google.com/translate_tts?ie=UTF-8&q=Hello&tl=en&total=1&idx=0&textlen=5&prev=input

    对于单个词 Hello。你看到你必须在 textlen 中指定语言和文本的长度,即使它对我在不更改此 var 的情况下尝试的所有句子都有效。

  2. 另一个问题是您必须对您的文本进行 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);
}

?>

关于php - 使用 Google Translate 在 PHP 中进行文字转语音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14723973/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com