1

我注意到 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);
}

我为注册的命令尝试了很多次,但在委托中我无法在日志中获得任何消息:(

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

谁能建议我一些解决方案?

谢谢,

米拉杰

4

1 回答 1

2

到目前为止,代码看起来还不错。

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

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

我前段时间写了一个小教程。它是德语,但无论如何它可能会对您有所帮助,或者您使用一些翻译工具。

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

于 2010-02-12T15:13:25.183 回答