Hier ein Beispiel, wie Sie das CeedVocal SDK benutzen sollten


1. Laden des akustischen Modells

Bevor Sie loslegen können, muss Ihr Programm das akustische Modell laden. Fügen Sie Ihrem Bundle sowohl die .enchmm als auch die .fastied Dateien hinzu und laden Sie anschließend den CVSpeechRecognizer mit folgender Codezeile:
    speechRecognizer = [[CVSpeechRecognizer alloc] initWithLanguage:CV_LANGUAGE_ENGLISH acousticModel:[[NSBundle mainBundle] pathForResource:@"ceedmodel-en" ofType:@"enchmm"]];


2. Stellen Sie das Delegate der Instanz ein

Um informiert zu werden, wenn bestimmte Sprachbefehle erfolgreich erkannt wurden, müssen Sie der Instanz ein Delegate Objekt zuweisen. Hier gehen wir davon aus, dass self für das Instanzobjekt steht, das das Delegate werden soll:
    speechRecognizer.delegate = self;
Ihr Delegate muss zwingend folgende Methode implementieren:

    - (void)speechRecognizerDidRecognizeSpeech:(CVSpeechRecognizer*)recognizer
    {
      [result release];
      result = [NSMutableString new];

      int i=0;
      for(id res in [recognizer recognizedPhrases])
      {
      NSLog(@"%@ (score=%f)", res, [recognizer scoreForRecognizedPhrase:res]);

      [(NSMutableString*)result appendString:[NSString stringWithFormat:@"%d. %@ (score=%f)\n", ++i, res, [recognizer scoreForRecognizedPhrase:res]]];
      }

      // Call to UI on main thread only !!!
      [self performSelectorOnMainThread:@selector(updateResult:) withObject:nil waitUntilDone:YES];

      // If you need to stop the recognizer, do it on main thread
      //[self performSelectorOnMainThread:@selector(stopRecognition:) withObject:nil waitUntilDone:YES];
    }

Diese Methode wird im Thread des CVSpeechRecognizer Instanzobjektes aufgerufen. Senden Sie aus diesem Thread keinen Interface Objekten Nachrichten. Tun Sie das stattdessen über den Mainthread. Dasselbe gilt natürlich auch, wenn Sie das Instanzobjekt stoppen möchten.


3. Stellen Sie zu erkennende Wörter ein

Jetzt sagen Sie dem Instanzobjekt am besten noch, welche Wörter erkannt werden sollen. Vergessen Sie auf keinen Fall, am Schluss prepareRecognizer aufzurufen.
    [speechRecognizer addPhrase:@"flower"]; [speechRecognizer addPhrase:@"sun"]; [speechRecognizer addPhrase:@"mountain"]; [speechRecognizer addPhrase:@"river"]; [speechRecognizer addPhrase:@"sky"]; [speechRecognizer addPhrase:@"clouds"]; [speechRecognizer prepareRecognizer];


4. Spracherkennung starten

Sie starten das Instanzobjekt folgendermaßen:
    [speechRecognizer startRecognition];
Und stoppen es so:
    [speechRecognizer stopRecognition];


En | Fr | De | Nl | Es | It