如何将当前选定的文本发送到节日等应用程序?我很久以前看过一个视频教程,其中解释了如何操作,但我再也找不到了。
最佳答案
通过 TCP
的节日和进程间通信Festival 在服务器模式下工作,打开一个 TCP 端口来监听(默认端口 1314)。
你可以运行(在 GNU/Linux 系统上):
netstat -tanp | grep LISTEN
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 485/sshd
tcp 0 0 0.0.0.0:1314 0.0.0.0:* LISTEN 28442/festival
所以我确定 Festival 服务器正在运行并使用 TCP 端口 1314。
(如果这里没有节日,您可能必须在另一个控制台中运行 festival --server
)
阅读文档
每种服务器都使用自己的协议(protocol)。对于 Web 服务器(在端口 80 上),该协议(protocol)有详细记录。对于特定工具,例如 festival,您必须引用原始文档。
TCP 通信实验室。
为了测试 TCP 连接,有一个很棒的 swiss-knife 叫做 netcat
:
使用 netcat
访问 Web 服务器的示例:
nc google 80 <<<$'HEAD / HTTP/1.0\r\n\r'
这打开一个 TCP 套接字到(其中一个)谷歌服务器并发送一个 HEAD/
请求。答案可能是:
HTTP/1.1 200 OK
Date: Sun, 05 Jan 2014 08:59:00 GMT
Server: Apache/2.2.22 (Debian)
Last-Modified: Mon, 03 Jun 2013 08:07:06 GMT
ETag: "48b79-1b4e-4de3b73517e80"
Accept-Ranges: bytes
Content-Length: 6990
Connection: close
Content-Type: text/html
要向节日发送请求,您必须使用 LISP
语法,并将您的脚本简单地发送到套接字:
nc localhost 1314 <myscript >raw_output
或
nc localhost 1314 <<< "(tts_text \"Hello world\" nil)(quit)"
如果一切正常,您一定会听到一些声音...
关于linux - 将选定的文本发送到节日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20930525/