【问题标题】:PHP - Executing say function from mac shell / terminalPHP - 从mac shell /终端执行say函数
【发布时间】:2013-04-26 15:25:49
【问题描述】:

我正在尝试制作一个简单的 php 脚本,该脚本从用户输入中获取文本,然后使用 mac 的终端“说”功能(文本到语音)来大声朗读文本。

我能找到专门解决这个问题的唯一资源来自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”,但没有运气。 我真的不知道如何解决这个问题。可能是可以访问而不是代码的东西吗?任何关于如何找出它为什么不起作用的帮助都会很棒,谢谢。

【问题讨论】:

  • 它只会在运行php脚本的服务器上播放声音而不是在客户端PC上播放?
  • 如果可能的话,我希望它在客户端 PC 上播放。
  • php 是一种服务器端编程语言。如果您在脚本中使用 exec 函数,则该命令将在服务器中执行。你不能用 php 做到这一点。尝试使用 javascript 有很多用于文本到语音的库goo.gl/R5MCH
  • 感谢您为我解决这个问题。其实我只需要在本地运行它。我只是在 php 中做这件事,因为它是我唯一掌握基本知识的语言,而且我想将消息保存在数据库中。因此,我想将消息保存到数据库并在可能的情况下一步播放音频。我可以在本地运行 php 吗?

标签: php macos terminal text-to-speech


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2017-01-06
  • 2011-08-17
  • 2016-04-11
  • 2015-10-10
  • 2011-08-18
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
  • 1970-01-01
相关资源
最近更新 更多