从终端口述和说话/阅读文本


2

我对于经常运行的终端命令有一个想法。我自己没有找到这些答案,而且它们都与声音/听写有关:


在终端的听写

我能指挥终点站吗?我试过这个标准 FN - FN ,但它只播放你取消它时产生的声音效果。也没有麦克风泡泡出现。是不是可以这样做?我注意到在终端的编辑菜单中,我发现Start Dictation并不是灰色的;它仍然是一个选择。

Terminal > Edit > Start Dictation (fn fn)

我是 听写设置正确,它在系统范围内运行良好。

从终端读取输出

我可以获取一个终端窗口的输出并让系统读取它(通过AppleScript)吗?我本质上是试图重现这种行为 连续输出 (我希望读取第一行之后的每一行):

Ctrl-click, Speech, Start Speaking


打字 fn fn 在终端为我开始听写所以它“应该”工作。你确定它在你想要在终端中使用的那一刻一直在工作吗?
nohillside

Answers:


2

say。您可以在Mountain Lion中下载不同的声音(不确定旧版本),可以从“系统偏好设置”中查找

Usage: say [-v voice] [-o out] [-f in | message]

您可以使用 command | say 一旦完成,就流​​输出命令的输出。

着名的Vicki声音来自 门户

say -v Vicki Do not adjust your screen. You will be assimilated. The process is quick and painless, stand by

1

您可以在“系统偏好设置”中指定切换语音的自定义快捷键:

使用VoiceOver可能有更好的方法来做到这一点,但这会在添加时说出线条。

set spoken to ""
repeat
    tell application "Terminal"
        set c to contents of window 1
    end tell
    repeat while c ends with linefeed
        set c to text 1 thru -2 of c
    end repeat
    set tospeak to c
    if tospeak starts with spoken then
        set tospeak to text (count spoken) thru -1 of tospeak
    end if
    say tospeak
    set spoken to c
    delay 1
end repeat

谢谢!我可以问一下(对AppleScript不熟悉):你能解释一下“将c设置为文本1至2的c”和“将tospeak设置为文本(通过计数)到tospeak的-1”吗? (特别是通过)还有一个问题:如果终端窗口的内容上面和下面有我不想要的文本,我可以抓住中间部分并说出来吗?我看过trim_line(),但它似乎不是我想要的......
Ethan Lee

此外,即使我没有改变任何东西,这个剧本也会重复同样的事情......?我在终端中使用emacs,如果有帮助的话。
Ethan Lee

@EthanLee我不确定你对连续输出的意思,但脚本应该只在普通的shell会话中说新文本。 text 1 thru -2 只删除最后一个字符。
Lri
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.