PHP -从mac shell / terminal执行say函数


PHP - Executing say function from mac shell / terminal

我正在尝试制作一个简单的php脚本,从用户输入文本,然后使用mac的终端'say'函数(文本到语音)朗读文本。

我所能找到的唯一专门针对这个问题的资源是2003年的

在该主题中建议的一个非常简单的解决方案是:

    <html><body>
    <form method="post">
    Say: <input type="text" name="text" size="40">
    <input type="submit">
    </form>
    </body></html>
    <?php
        if (isset($_POST['text'])) {
        exec('say "'.$_POST['text'].'"');
        }
    ?>

我试过用'system'代替'exec'没有运气。我真的不知道如何解决这个问题。会不会是有权限但没有密码的东西?如果你能帮助我找出为什么它不能工作,那就太好了,谢谢。

解决方案是使用say命令的-o选项,允许将输出保存在音频文件中。在这个链接中有一个bash脚本,可以从一个文件文本创建一个mp3文件;重新调整脚本以从文件中获取字符串是很简单的。你允许用户下载它或在一个网页上执行这个简单的代码<embed height="50" width="100" src="example.mp3">将example.mp3替换为之前创建的mp3文件的路径