如何将当前选定的文本发送到像节日这样的应用程序?很久以前我看过一个视频教程,解释了我怎么找不到它。
答案 0 :(得分:1)
节日在服务器模式下工作通过打开要侦听的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
)
每种 服务器 都使用自己的协议。对于Web服务器(在端口80上),协议已有详细记录。对于特定工具,例如 festival ,您必须参考原始文档。
为了测试TCP连接,有一个名为netcat
的精彩瑞士刀:
使用netcat
访问网络服务器的示例:
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
要向festival发送请求,您必须使用LISP
语法,并将脚本简单地发送到套接字:
nc localhost 1314 <myscript >raw_output
或
nc localhost 1314 <<< "(tts_text \"Hello world\" nil)(quit)"
如果一切正常,你必须听到一些......
答案 1 :(得分:0)
这很容易。使用xsel
或xclip
xsel | festival --tts
或
xclip -o | festival --tts
这会将您的x主要选择(当前选定的文本)传递给音乐节。