好的,目前,我有一个看起来像这样的脚本:
tell application "SpeechRecognitionServer"
set theResponse to listen for {"Mark"} with prompt "What is your name?"
end tell
但是,我不希望它听取特定的关键字。我希望它从该提示中收集语音数据并将其转换为我可以存储在我的数据库中的字符串。
因此,例如,系统会提示用户提出“您的名字是什么?”。然后,他们会说出他们的名字,说“Mark”,语音识别服务器将捕获该输入,将其翻译为文本,将其存储为变量,(userName = theResponse;)
这可能吗?现在我只看到听取关键字的选项,这对我想要实现的目标来说是不可取的。
感谢您的帮助。
答案 0 :(得分:1)
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