Ошибка Text2Speech, Как я могу воспроизвести аудио, введя URL в браузер напрямую? - PullRequest
0 голосов
/ 13 апреля 2019

У меня работает text2speech, но я хочу использовать GET метод, как я могу это сделать?Я хочу преобразовать text2speech по URL-адресу следующим образом: 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 голосов
/ 13 апреля 2019

Если ваш почтовый индекс работает, вы можете изменить его, чтобы получить, как показано ниже:

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);
}
?>

Комучтобы пробелы не нарушали ваш URL, используйте функцию urlencode в php.

...