По WatchOS 2,1 и прошивкой 9, я был в состоянии, что вы предлагаете, 2 различными способами:
ВАРИАНТ 1 - ЗАПИСЬ ФАЙЛА WAV И ЗАГРУЗИТЬ К СЕРВЕРУ ASR Я записал и сохранил WAV-файл на часах яблока. После этого я загрузил файл в платный провайдер распознавания речи, и все сработало нормально! Вот код для записи, замените интерфейс обновляя строки коды (и те, отладочные) с вашим собственным:
//RECORD AUDIO SAMPLE
var saveUrl: NSURL? //this var is initialized in the awakeWithContext method//
func recordAudio(){
let duration = NSTimeInterval(5)
let recordOptions =
[WKAudioRecorderControllerOptionsMaximumDurationKey : duration]
// print("Recording to: "+(saveUrl?.description)!)
//CONSTRUCT AUDIO FILE URL
let fileManager = NSFileManager.defaultManager()
let container = fileManager.containerURLForSecurityApplicationGroupIdentifier("group.artivoice.applewatch");
let fileName = "audio.wav"
saveUrl = container?.URLByAppendingPathComponent(fileName)
presentAudioRecorderControllerWithOutputURL(saveUrl!,
preset: .WideBandSpeech,
options: recordOptions,
completion: { saved, error in
if let err = error {
print(err.description)
self.sendMessageToPhone("Recording error: "+err.description)
}
if saved {
self.btnPlay.setEnabled(true)
self.sendMessageToPhone("Audio was saved successfully.")
print("Audio Saved")
self.uploadAudioSample()
}
})
}
ВАРИАНТ 2 - Использование iWATCH в РОДНОЙ РЕЧИ ПРИЗНАНИЕ При таком подходе я беру оригинал, родной голосовое меню, но ...! Я не добавляю никаких кнопок, просто чистых ASR. Я запустил пустое голосовое меню, а затем восстановил строку, возвращаемую ASR. Вот код, наслаждайтесь:
func launchIWatchVoiceRecognition(){
//you can see the empty array [], add options if it suits you well
self.presentTextInputControllerWithSuggestions([], allowedInputMode: WKTextInputMode.Plain, completion:{(results) -> Void in
let aResult = results?[0] as? String
if(!(aResult == nil)){
print(aResult) //print result
self.sendMessageToPhone("Native ASR says: "+aResult!)
dispatch_async(dispatch_get_main_queue()) {
self.txtWatch.setText(aResult) //show result on UI
}
}//end if
})//end show voice menu
}
ВАРИАНТ 2 молниеносно, но ВАРИАНТ 1 может быть более удобно, если вы хотите сделать некоторые дополнительные функции речи разведывательные (пользовательские словари, грамматики ...) Я бы рекомендовал ВАРИАНТ 1 для большинства пользователей. Voila !! Если вам нужны дополнительные подсказки, дайте мне знать!
Я считаю, что в настоящее время вы не можете получить доступ к микрофону на часах, см. Подробности http://stackoverflow.com/questions/28963024/apple-watch-microphone-use –
Вы можете получить результаты голосового диктовки, но вы можете получить доступ это так, как вы думаете. https://developer.apple.com/library/prerelease/ios/documentation/WatchKit/Reference/WKInterfaceController_class/index.html#//apple_ref/occ/instm/WKInterfaceController/presentTextInputControllerWithSuggestions:allowedInputMode:completion: – bgilham