2017-01-13 4 views
0

Ich versuche, SFSpeechRecognizer zu verwenden, aber ich habe keine Möglichkeit zu testen, wenn ich es richtig implementiere, und da es eine relativ neue Klasse ist, konnte ich keinen Beispielcode finden (ich weiß nicht, swift) . Mache ich irgendwelche unverzeihlichen Fehler/etwas fehlt?Richtige Methode für die Verwendung von SFSpeechRecognizer?

[SFSpeechRecognizer requestAuthorization:^(SFSpeechRecognizerAuthorizationStatus status){ 
    if (status == SFSpeechRecognizerAuthorizationStatusAuthorized) { 
     SFSpeechRecognizer* recognizer = [[SFSpeechRecognizer alloc] init]; 
     recognizer.delegate = self; 
     SFSpeechAudioBufferRecognitionRequest* request = [[SFSpeechAudioBufferRecognitionRequest alloc] init]; 
     request.contextualStrings = @[@"data", @"bank", @"databank"]; 

     SFSpeechRecognitionTask* task = [recognizer recognitionTaskWithRequest:request resultHandler:^(SFSpeechRecognitionResult* result, NSError* error){ 
      SFTranscription* transcript = result.bestTranscription; 
      NSLog(@"%@", transcript); 
     }]; 
    } 
}]; 

Antwort

1

Ich bin zu versuchen, aber dieser Code funktioniert für mich, schließlich SFSpeechRecognizer und SFSpeechAudioBufferRecognitionRequest nicht gleich sind, so dass ich denke (Shop nicht getestet) Sie unterschiedliche Berechtigungen fragen haben (haben Sie gebeten, für Berechtigungen vor? um das Mikrofon und die Spracherkennung zu verwenden?). Ok, hier ist der Code:

//Available over iOS 10, only for maximum 1 minute, need internet connection; can be sourced from an audio recorded file or over the microphone 

    NSLocale *local =[[NSLocale alloc] initWithLocaleIdentifier:@"es-MX"]; 
     speechRecognizer = [[SFSpeechRecognizer alloc] initWithLocale:local]; 
     NSString *soundFilePath = [myDir stringByAppendingPathComponent:@"/sound.m4a"]; 
     NSURL *url = [[NSURL alloc] initFileURLWithPath:soundFilePath]; 
     if(!speechRecognizer.isAvailable) 
      NSLog(@"speechRecognizer is not available, maybe it has no internet connection"); 
     SFSpeechURLRecognitionRequest *urlRequest = [[SFSpeechURLRecognitionRequest alloc] initWithURL:url]; 
     urlRequest.shouldReportPartialResults = YES; // YES if animate writting 
     [speechRecognizer recognitionTaskWithRequest: urlRequest resultHandler: ^(SFSpeechRecognitionResult * _Nullable result, NSError * _Nullable error) 
     { 
    NSString *transcriptText = result.bestTranscription.formattedString; 
      if(!error) 
      { 
     NSLog(@"transcriptText"); 
      } 
     }]; 
+0

kann dies nur mit einer voraufgezeichneten Datei funktionieren? – Spartacus9

+0

Ja, Sie müssen es nur in dieser Codezeile setzen: [myDir stringByAppendingPathComponent: @ "/ sound.m4a"]; Dies ist die Zeichenfolge der URL Ihrer Audiodatei. Denken Sie daran, dass Sie sie in Ihrem Home-Verzeichnis einstellen müssen – Enrique

Verwandte Themen