将所选文本发送到节日

时间:2014-01-05 05:37:56

标签: linux bash

如何将当前选定的文本发送到像节日这样的应用程序?很久以前我看过一个视频教程,解释了我怎么找不到它。

2 个答案:

答案 0 :(得分:1)

通过 TCP

进行节日和进程间通信

节日在服务器模式下工作通过打开要侦听的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通信实验室。

为了测试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)

这很容易。使用xselxclip

xsel | festival --tts

xclip -o | festival --tts

这会将您的x主要选择(当前选定的文本)传递给音乐节。