9Implementieren der Nuance-Spracherkennung auf Swift, kann keine Ereignisse von onResult, onError ... abhören

Ich habe zwei Teile meines Speech Recon-Projekts mit Nuance, die .h-Datei eines Moduls (ObjectiveC) und einViewController (schnell).

Ich möchte ein @ einrichtSpeechRecognition Objekt in meinem swiftviewController, und hören Sie onBegin, onStop ... und solche Methoden.

Die einzige Möglichkeit zum Kompilieren besteht darin, nil als Delegat-Parameter zum Initialisieren des SpeechRecon-Objekts zu verwenden. Offensichtlich ist das nicht gut, weil meine onStart ... und onFinish Funktionen nicht auslösen.

Ich habe ein Protokoll zum @ implementieSKRecogniser -Datei und erweiterte meine ViewController-Klasse auf SKReconDelegate ... aber wenn ich "self" als Delegat zum Initialisieren des Objekts verwende, sagt der Compiler, dassUIViewController ist keine gültige Klasse. Ich weiß, dass ich einen Delegierten zwischen beiden Klassen einrichten muss, aber ich bin ein Android-Entwickler und meine iOS-Kenntnisse sind immer noch nicht gut genug. Hier ist der Code, wenn ich ein wichtiges Teil verpasst habe, lass es mich wissen. Ich werde für Ihre Hilfe sehr dankbar sein.

//ViewController code, in SWIFT
//NO PROTOCOLS NEEDED HERE!

class ViewController:  UIViewController, SpeechKitDelegate, SKRecognizerDelegate{

override func viewDidLoad() {
        super.viewDidLoad()
        SpeechKit.setupWithID( "NMDPTRIAL_nuance_chch_com9999",
            host:"sandbox.nmdp.nuancemility.net",
            port:443,
            useSSL:false,
            delegate:self) //error said "self" is of an invalid ViewController type :( because I was NOT implementing all 4 methods BELOW:
   }
//a bit ahead, I have the same problem with a button
@IBAction func btnmicaction(sender: AnyObject) {
   self.voiceSearch=SKRecognizer(type: "websearch", detection: 2, language: langType as String, delegate: self) //error said "self" is of an invalid ViewController type :( because I was NOT implementing all 4 methods BELOW:
   }


//IMPLEMENT ALL THESE 4 FUNCTIONS, AS SUGGESTED BY THE SOLUTION
func recognizerDidBeginRecording(recognizer:SKRecognizer){
        println("************** ReconBeganRecording")
        }

func recognizerDidFinishRecording(recognizer:SKRecognizer){
        println("************** ReconFinishedRecording")
        }

func recognizer(recognizer: SKRecognizer!, didFinishWithResults results: SKRecognition!){
    //The voice recognition process has understood something
    }

func recognizer(recognizer: SKRecognizer!, didFinishWithError error: NSError!, suggestion: String!){
   //an error has occurred
   }
}

Nur für den Fall, hier ist mein Bridge-Header:

#ifndef Vanilla_Bridge_h
#define Vanilla_Bridge_h
#import <SpeechKit/SpeechKit.h>

AKTUALISIERE SIEHE LÖSUNG UNTEN !!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage