MacBook (OS 10.8.2) で音声認識を動作させようとしていますが、デリゲート メソッドでコールバックを取得できません。XCode 4.6 と ARC を使用した、簡単なテスト コードを次に示します。コンソールに「リスニング」出力が表示されます。「マイク」が画面に表示され、ESC キーを押すと、マイクのディスプレイに自分のスピーチ パターンが表示されますが、デリゲート コールバックはまだありません。何か基本的なものが欠けているに違いありませんが、私はそれを見つけていません。
私は多くのSOの質問を見てきましたが、これを解決するものはありません。コントロールパネルでキャリブレーションについて話している人もいますが、キャリブレーションについては何も見つかりません(以前のOSだったのでしょうか?)。
完全なプロジェクト ソースはgithubで入手できます。
#import "RBListener.h"
@interface RBListener() <NSSpeechRecognizerDelegate>
@property (nonatomic, strong, readonly) NSSpeechRecognizer* recognizer;
@property (nonatomic, strong) NSArray* commands;
@end
@implementation RBListener
@synthesize recognizer = _recognizer;
- (id)init
{
self = [super init];
if (self) {
// initialize
_commands = @[@"hi", @"yes", @"no", @"hello", @"good", @"time"];
_recognizer = [[NSSpeechRecognizer alloc] init];
_recognizer.delegate = self;
_recognizer.commands = _commands;
_recognizer.listensInForegroundOnly = NO;
_recognizer.blocksOtherRecognizers = YES;
[_recognizer startListening];
DLog(@"listening");
}
return self;
}
#pragma mark -
#pragma mark NSSpeechRecognizerDelegate methods
- (void)speechRecognizer:(NSSpeechRecognizer*)sender didRecognizeCommand:(id)command
{
DLog(@"command: %@", command);
}
@end