Я пытаюсь настроить сервер преобразования текста в речь на моем Mac (Mavericks), используя PHP и Python.
Когда я выполняю скрипт Python через терминал, он работает нормально.
Однако, когда я запускаю его через браузер через PHP, создается звуковой файл TTS, но LAME не может конвертировать файл.
Вот что я имею в своем скрипте Python:
from os import system
import sys
word=sys.argv[1].strip()
system('say -v Allison -o audio/'+word+'.aiff '+word)
system('lame audio/'+word+'.aiff audio/'+word+'.mp3')
И это мой PHP:
<html>
<?php
error_reporting(E_ALL);
if (isset($_GET['word'])){$word=$_GET['word'];}
else {$word="test";}
echo $word;
exec('python tts.py '.$word);
echo "<audio controls><source src='audio/".$word.".mp3'></audio>";
?>
</html>
Любые предложения о том, что может пойти не так, будут очень благодарны.
Итак, я понял, что проблема заключалась в том, что когда exec-файл say был в usr / bin, lame был в usr / bin / local. Следующий скрипт PHP работал после перемещения lame в usr / bin, и я смог полностью покончить с Python:
<html>
<?php
error_reporting(E_ALL);
if (isset($_GET['word'])){$word=$_GET['word'];}
else {$word="test";}
echo $word;
//exec('python tts.py '.$word);
exec('say -v Allison -o audio/'.$word.'.aiff '.$word);
exec('lame audio/'.$word.'.aiff audio/'.$word.'.mp3');
echo "<audio controls><source src='audio/".$word.".mp3'></audio>";
?>
</html>
Других решений пока нет …