AppleWatch语音到文本功能无法正常工作

时间:2015-07-01 23:35:25

标签: swift speech-to-text watch-os-2

我正在尝试为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测试版。

谢谢!

1 个答案:

答案 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出了问题,请尝试更改语言。

它应该像这样工作。