func processSampleData(_ data: Data) -> Void {
audioData.append(data)
// We recommend sending samples in 100ms chunks
let chunkSize : Int /* bytes/chunk */ = Int(0.1 /* seconds/chunk */
* Double(SAMPLE_RATE) /* samples/second */
* 2 /* bytes/sample */);
if (audioData.length > chunkSize) {
SpeechRecognitionService.sharedInstance.streamAudioData(audioData,
completion:
{ [weak self] (response, error) in
guard let strongSelf = self else {
return
}
var finalResult = StreamingRecognitionResult()
if let error = error {
strongSelf.textView.text = error.localizedDescription
} else if let response = response {
var finished = false
//print(response)
for result in response.resultsArray! {
if let result = result as? StreamingRecognitionResult {
if result.isFinal {
finished = true
finalResult = result
}
}
}
//let textToView = response.description
let textToView = finalResult.alternativesArray[0]
strongSelf.textView.text = textToView as! String
if finished {
strongSelf.stopAudio(strongSelf)
}
}
})
self.audioData = NSMutableData()
}
}
«textToView» должен быть только последней строкой речи пользователя, однако я не могу понять, как на самом деле извлечь эту строку и ТОЛЬКО эту строку из ответа облака Google.
Любой, кто работал с Google в текстовом API Google, был бы очень благодарен за ответ, так как это беспокоило меня уже довольно давно.