简单的NSSpeechRecognizer代码,无法正常工作!

时间:2010-02-12 15:02:20

标签: cocoa speech-recognition

我注意到了ADC库中的NSSpeechRecognizer,我发现它非常有趣,所以为了使用它,我准备了一个简单的应用程序,它只是监听命令,如果识别它会在日志中显示它。

使用的代码是:

- (id)init {

    if (self = [super init]) {
        // Insert code here to initialize your application 
        NSArray *cmds = [NSArray arrayWithObjects:@"A",@"B", @"C",@"alpha",@"beta",@"vodka",@"wine",nil]; 
        recog = [[NSSpeechRecognizer alloc] init]; // recog is an ivar
        [recog setCommands:cmds];
        [recog setDelegate:self];
    }
    return self;
}

- (IBAction)listen:(id)sender
{   NSLog(@"listen:");
    if ([sender state] == NSOnState) { // listen
        [recog startListening];
    } else {
        [recog stopListening];
    }
}

- (void)speechRecognizer:(NSSpeechRecognizer *)sender didRecognizeCommand:(id)aCmd {
    NSLog(@"speechRecognizer: %@",(NSString *)aCmd);
}

我已经多次尝试注册的命令,但我无法在委托中获取日志中的任何消息:(

背景中总有一些噪音......这可能是它的原因还是我在代码中做错了什么?

有人能建议我一些解决方案吗?

谢谢,

Miraaj

1 个答案:

答案 0 :(得分:2)

到目前为止代码看起来很好。

NSSpeechRecognizer有时候有点棘手,拒绝听正确的话。你尝试过不同的词吗?

您是否尝试将startListening设置为默认值?

前段时间我写了一个小教程。它用德语,但也许它会帮助你或者你使用一些翻译工具。

http://cocoa-coding.de/spracherkennung/nsspeechrecognizer1.html