首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在linux下从php运行espeak

如何在linux下从php运行espeak
EN

Stack Overflow用户
提问于 2013-08-05 21:03:10
回答 4查看 1.9K关注 0票数 2

我在终端上运行linux的espeak,它工作得很好。我的问题是我想从php运行espeak (在xampp中)。

代码语言:javascript
复制
<?php
$a="espeak sometext";
system($a);
?>

但这并不是说working.and没有发出任何声音

就像在windows中一样,当php脚本在cmd中调用时,这个东西在espeak命令行程序中工作得非常好,代码是

代码语言:javascript
复制
<?php
$a='espeak "your text"';
system($a);
?>

你们能帮我在linux上运行这段代码吗?提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2015-01-13 20:39:03

不能在系统命令的帮助下使用此espeak,因为系统命令将仅在服务器中执行,而不会在客户端计算机中执行。换句话说,如果您的服务器有声卡,它将在服务器中播放声音。唯一的选择是您必须使用指南在egudiedog.net中给出的lame

票数 0
EN

Stack Overflow用户

发布于 2016-01-24 00:11:59

在LINUX中使用shell_exec()函数代替系统

代码语言:javascript
复制
<?php
$a='espeak "your text"';
shell_exec($a);
?>
票数 0
EN

Stack Overflow用户

发布于 2017-02-19 17:20:04

你可以尝试这样的东西,你可以根据你的需要改变参数(声音),如果espeak支持的话。这是用希腊语进行的测试。您可能还想检查此answer

代码语言:javascript
复制
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
  define('ESPEAK', 'C:\path\to\eSpeak\command_line\espeak');
  define('LAME', 'C:\path\to\eSpeak\command_line\lame');
} else {
  define('ESPEAK', '/usr/bin/espeak');
  define('LAME', '/usr/bin/lame');
}
  $text = 'This is a test';
  $voice = "mb-gr2";
  $speed_delta = 0;
  $speed = 145;
  $pitch = 90;
  $volume = 100;
  $filename = date("Y-m-d-H-i-s").'.mp3';     
  $text = escapeshellarg($text);
if (!file_exists($filename)) {
  $cmd = ESPEAK." -v $voice $text -s $speed -p $pitch -a $volume --stdout  | ".LAME." --preset voice -q 9 --vbr-new - $filename";
   exec($cmd);  
   echo $filename;
  } 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18058869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档