如何在AppleScript中进行用户语音输入

时间:2018-06-21 21:30:04

标签: applescript

我希望能够接受用户在程序中的输入,并让他们说出来,而不是在文本框中输入。有什么办法吗?

任何帮助将不胜感激.....

2 个答案:

答案 0 :(得分:1)

如果您将用于开始听写系统偏好设置>键盘>听写>快捷方式)的快捷方式更改为Press Left Command Key TwicePress Either Command Key Twice,您可以使用系统事件触发此快捷方式(前提是已授予必要的accessibility privileges

    delay 0.1
    tell application "System Events" to repeat 2 times
        key down command
        key up command
    end repeat

或者,您可以触发菜单项:

    tell application "System Events" to tell ¬
        (the first process whose frontmost is true) to tell ¬
        menu bar 1 to tell ¬
        menu bar item "Edit" to tell ¬
        menu "Edit" to tell ¬
        menu item "Start Dictation" to ¬
        if exists then click it

经过编辑,可更正menu item链的引用,如@wch1zpink所突出显示,这以前使其无法在* Google Chrome *中使用。

答案 1 :(得分:0)

@CJK确实值得投票,因为这只是他详尽答案的调整后扩展...

来自@CJK的解决方案...

“或者,您也可以触发菜单项:”

@IBOutlet weak var userInput: NSTextField!
@IBOutlet weak var result: NSTextField!
var value = 100

@IBAction func pushButtonforResult(_ sender: Any) {

    result.integerValue = value / userInput.integerValue

}

我测试过上述代码的每个应用程序都使用了almtost。。。它在Google Chrome中不起作用。

但是,对他的原始代码进行的微小调整将在Google Chrome中运行。

tell application "System Events" to tell ¬
    (the first process whose frontmost is true) to tell ¬
    menu bar 1 to tell ¬
    menu "Edit" to tell ¬
    menu item "Start Dictation" to ¬
    if exists then click it

对于这两种“启用听写功能”的解决方案,在运行代码之前,鼠标光标必须位于允许文本输入的字段中。