1

我正在尝试为 watchkit 应用程序实现语音到文本功能。我提到了这个有示例代码的问题。

以下是我尝试过的代码:

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,我应该把它放在其他地方吗?

我在 AppleWatch 上使用带有 iOS 9 beta 2 和 watchOS 2 beta 的 iPhone。

谢谢!

4

1 回答 1

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 有问题,请尝试更改语言。

它应该像这样工作。

于 2015-07-02T06:37:17.940 回答