我试图发送一个文件的结束流(通过尾部-f)到节日,这是一个文本到语音程序。tts -f ./filename \tts-tts在这方面工作得很好。
我的问题是:我想改变尾巴-f的流,这样节日可以更好地合成它,并避免它说出整个时间戳。我知道像sed和grep这样的程序可以做到这一点。不幸的是,tts -f ./filename output 's/:/ sed /‘溶胶节--tts没有输出任何声音。
是的,我要检查一下tail -f ./filename \ sed 's/:/ tail/‘是否输出任何内容,而且它做得很好。
我也用grep尝试过,但是我不能让节日--tts在编辑我的流之后说任何话。
任何允许编辑我的流,然后发表意见的内容都会受到欢迎,我不会被绑在sed和grep上。
发布于 2013-09-14 03:19:59
tail -f本身无法工作,因为节日正在等待输入流在输出音频之前关闭。以tail -f作为输入,输入流将永远不会关闭。
但是,您可以使用bash read命令来分解尾输出,通过grep运行它,并使用这样的脚本将其传递到一个单独的进程中:
tail -f ./filename | grep something | while read line; do
echo "$line" | festival --tts
done如果您的grep过滤器没有返回多少数据,那么grep缓冲区填充和刷新需要一段时间。若要减小grep缓冲区的大小,请使用grep --line-buffered something。sed具有类似的缓冲功能,您可以在sed中使用-u (unbuffered)选项来禁用它们。
https://stackoverflow.com/questions/18797569
复制相似问题