Система
Linux local 5.0.0-29-lowlatency #31-Ubuntu SMP PREEMPT Thu Sep 12 14:13:01 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
PHP 7.4.0beta4 (cli) (built: Aug 28 2019 11:42:10) ( NTS )
eSpeak text-to-speech: 1.48.03 04.Mar.14 Data at: /usr/lib/x86_64-linux-gnu/espeak-data
Проблема
У меня есть этот скрипт, который сгенерирует wav
из espeak
и воспроизведет егона сайте.
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$output_file = 'espeak';
if(isset($_POST['espeak'])){
$speak=$_POST['espeak'];
shell_exec('espeak -vcs -s130 -p50 -w '.$output_file.'.wav "'.$speak.'"');
echo'
<p>playing</p>
<audio autoplay><source src="'.$output_file.'.wav" type="audio/mpeg"></audio>
';
}
?>
<form method="post">
write something<input type="text" name="espeak">
<input type="submit" value="speak!">
</form>
Проблема в том, что по-прежнему воспроизводится старая кэшированная wav
(когда я запускаю на компьютере, она генерируется после запуска скрипта php
. Нужно подождать около минуты, чтобы начать игратьnew wav
. Я пытался вставить в заголовок какой-то код о cache
, но он не работает.
Любая идея играть wav
сразу после генерации с помощью espeak
?
Спасибо.