2015-07-01 61 views
1

我正在嘗試爲watchkit應用程序實現語音到文本功能。 我提到this有問題代碼的問題。AppleWatch語音到文本功能不起作用

以下是我試過的代碼:

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方法的代碼,我應該把它放在別的地方嗎?

我在iPhone上使用iOS 9 beta 2和AppleOS上的watchOS 2測試版。

謝謝!

回答

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有問題,請嘗試更改語言。

它應該像這樣工作。

+0

那麼,什麼是'在你的代碼reply'?你如何得到它,應該在哪裏定義? (我認爲它應該是'answers'而不是'reply') – user2312896

+0

我的iPhone上Siri存在一些問題,因爲它沒有將語音轉換爲文本,現在它工作正常,謝謝! – user2312896

+0

happy.to hear.that。!!享受編碼:) –