AppleScript语音识别服务器可以收听任何响应

时间:2012-12-24 23:50:32

标签: applescript

好的,目前,我有一个看起来像这样的脚本:

tell application "SpeechRecognitionServer"
    set theResponse to listen for {"Mark"} with prompt "What is your name?"
end tell

但是,我不希望它听取特定的关键字。我希望它从该提示中收集语音数据并将其转换为我可以存储在我的数据库中的字符串。

因此,例如,系统会提示用户提出“您的名字是什么?”。然后,他们会说出他们的名字,说“Mark”,语音识别服务器将捕获该输入,将其翻译为文本,将其存储为变量,(userName = theResponse;)

这可能吗?现在我只看到听取关键字的选项,这对我想要实现的目标来说是不可取的。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

像加勒特说的那样,我所做的就是用对话框输入文字。默认语音命令键是双击“fn”键。

tell application "Finder"
say "Which application would you like me to open?" using "Alex"
end tell
set theOpen to text returned of (display dialog "Press the 'fn' key twice and speak!" default answer "" buttons {"Cancel", "Ok"} default button 2)
tell application "Finder"
say "Ok! I will open " & theOpen & " for you" using "Alex"
end tell
tell application theOpen
activate
end tell

答案 1 :(得分:0)

这是我的QuickAction Automator脚本,用于打开对话框,启动听写,捕获输入并运行Shell脚本以将其转换为带连字符的文本,然后将带连字符的文本插入到前台应用程序中。

您可能需要调整键盘快捷键以启动位于“首选项”->“键盘”->“听写”下的听写。

QuickActions将进入所有应用程序的“服务”菜单。然后,您可以在“键盘偏好设置”下为该新服务分配键盘快捷键。然后,我在“辅助功能键盘”上创建一个按钮来运行该快捷方式。

on run {input, parameters}

ignoring application responses
    tell application "System Events"
        -- send keystrokes to start dictation.
        -- delay 1
        keystroke "`" using {control down, command down}
    end tell
end ignoring

-- capture input
set theResponse to text returned of (display dialog "Input:" default answer "" with icon note buttons {"Cancel", "Continue"} default button "Continue")

-- convert to hyphenated
set newOutput to do shell script "ruby -e 'puts ARGV.join(\"-\").downcase' " & theResponse


    return newOutput
end run