我正在尝试为watchkit应用程序实现语音到文本功能。 我提到了this问题,其中包含示例代码。
以下是我尝试过的代码:
self.presentTextInputControllerWithSuggestions(["Start it", "Stop it"], allowedInputMode: .Plain, completion: { (selectedAnswers) -> Void in
if selectedAnswers.count > 0 {
if let spokenReply = selectedAnswers[0] as? String {
self.label.setText("\(spokenReply)")
}
}
})
label
是显示我说的文字的标签。
当我运行它时,它会显示你应该说话的屏幕(Siri类型的屏幕),你有两个选项:'取消'和'完成'。一旦我说完,我点击'完成'但屏幕不会消失或显示我的初始屏幕,我总是要点击'取消'返回,我没有得到任何形式的语音数据文本。我检查了它,似乎selectedAnswers
总是一个空数组,除非我点击“启动它”/“停止它”选项。
任何人都可以帮我吗?我想在label
上显示语音消息。我在InterfaceController.swift文件中的awakeWithContext
方法中有代码,我应该把它放在其他地方吗?
我在iOS 9 beta 2上使用iPhone,在AppleWatch上使用iPhone 2测试版。
谢谢!
答案 0 :(得分:1)
您可以询问用户输入并给他建议(参见下面的Swift示例)。
self.presentTextInputControllerWithSuggestions(["suggestion 1", "suggestion 2"] allowedInputMode: .Plain, completion: { (answers) -> Void in
if answers && answers.count > 0 {
if let answer = answers[0] as? String {
println("\answer")
}
}
})
如果建议为零则直接指向听写。它不适用于模拟器,但它是真正值得关注的。
您的方法是正确的,但您的SIRI出了问题,请尝试更改语言。
它应该像这样工作。