我注意到了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
答案 0 :(得分:2)
到目前为止代码看起来很好。
NSSpeechRecognizer有时候有点棘手,拒绝听正确的话。你尝试过不同的词吗?
您是否尝试将startListening设置为默认值?
前段时间我写了一个小教程。它用德语,但也许它会帮助你或者你使用一些翻译工具。
http://cocoa-coding.de/spracherkennung/nsspeechrecognizer1.html