我在Apple Watch(WatchOS 2.1,iOS 9.2.1)中成功实现了原生语音识别(Dictation),基本上我使用了这段代码,带有一个空的“菜单选项数组”:
func launchDictation(){
self.presentTextInputControllerWithSuggestions([], allowedInputMode: WKTextInputMode.Plain, completion:{
(results) -> Void in
let aResult = results?[0] as? String
if(!(aResult == nil)){
print(aResult)
print("SHORT ASR COMPLETED")
dispatch_async(dispatch_get_main_queue()) {
// Update UI
}
}//end if
})//end show voice menu
}
因为它是......用户点击“发言按钮”,然后弹出一个视图(显示用户说话时检测到的单词和一个漂亮的小音量图表)。现在,用户必须说话,然后点击“完成”以完成语音识别。如果检测到短语但未点击“完成”,则“听写失败”最终将出现在屏幕上。有人知道如何实现一些侦听器或委托,在用户停止说话几秒钟后检测到听写过程结束的时间吗?