Text2Speech错误,如何通过直接在浏览器中输入URL来播放音频?

时间:2019-04-13 00:19:53

标签: php html text text-to-speech speech

我可以使用text2speech,但是我想使用GET方法怎么办? 我的意思是我想按如下所示通过URL转换text2speech: http://localhost/txt2speech/v.php?textbox=Hello Word

如果我在浏览器中输入该URL,则希望它播放音频。

我可以成功地将文本转换为语音,但是问题是它播放的是同一文件。

示例

如果我发送http://localhost/txt2speech/v.php?textbox=HelloWord 然后如果我发送http://localhost/txt2speech/v.php?textbox=SecondString

它可以播放HelloWorld,但我希望它可以播放SecondString 但是,如果我在其他窗口中尝试,它将播放SecondString文件。

我还有另一个问题。如果我在其中传递带空格的字符串,则将无法正常工作。

示例

http://localhost/txt2speech/v.php?textbox=Hello This is sentence with spaces

这些是我正在使用的文件:

index.php

<html>
<body> 
<h2>Text to Speech PHP Script</h2>

<form action="v.php" method="GET">
Enter your text: <input name="textbox"></input>
</form>

</body>
</html>

v.php

<?php
 if($_GET){
     $text = substr($_GET['textbox'], 0, 100);
   $file  = 'filename';
 $file = "audio/" . $file . ".mp3";
  $mp3 = file_get_contents("https://translate.google.com.vn/translate_tts?ie=UTF-8&q=$sname+&tl=en&client=tw-ob");
 file_put_contents($file, $mp3);
}
?>

<?php  if($_GET){?>
<audio controls="controls" autoplay="autoplay">
  <source src="<?php echo $file; ?>" type="audio/mp3" />
</audio>
<?php }?>

1 个答案:

答案 0 :(得分:0)

如果您的邮政编码有效,则可以更改帖子,如下所示:

index.php

<html>
<body> 
<h2>Text to Speech PHP Script</h2>

<form action="v.php" method="get">
Enter your text: <input name="textbox"></input>
</form>


<?php  if($_GET){?>
<audio controls="controls" autoplay="autoplay">
  <source src="<?php echo $file; ?>" type="audio/mp3" />
</audio>
<?php }?>
</body>
</html>

v.php

<?php
 if($_GET){
     $text = substr($_GET['textbox'], 0, 100);
   $file  = 'filename';
 $file = "audio/" . $file . ".mp3";
 # Convert input to proper encoded url
 $sname = urlencode ( $sname );
  $mp3 = file_get_contents("https://translate.google.com.vn/translate_tts?ie=UTF-8&q=$sname+&tl=en&client=tw-ob");
 file_put_contents($file, $mp3);
}
?>

为防止空格破坏您的网址,请在php中使用urlencode函数。