Я пытаюсь получить распознавание речи, работая на MacBook (OS 10.8.2), но я не получаю никаких обратных вызовов по методу делегата. Используя XCode 4.6 с ARC, вот мой простой тестовый код. Я получаю «прослушивание» вывода в консоли. На экране появляется «микрофон», и если я нажимаю клавишу ESC, то я могу видеть свою речевую структуру на дисплее микрофона, но все равно никаких обратных вызовов делегатов никогда. Должно быть что-то основное отсутствует, но я его не нашел.NSSpeechRecognizer делегат никогда не звонил
Я рассмотрел многочисленные вопросы, но никто не решил это. Некоторые говорят о калибровке на панели управления, но я ничего не нашел для калибровки (возможно, это была предыдущая ОС?).
Полный источник проекта доступен в 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
Я не уверен, имеет ли это отношение к вашему вопросу в целом, но Calibrate все еще присутствует. В «Системные настройки» выберите «Доступность», выберите «Говорящие элементы» слева и вкладку «Настройки». – NJones
@NJones aha, это объясняет, почему я не мог найти калибровку, я смотрел в разделе «Дикция и речь» в настройках. Я попробую калибровать, но я не уверен, что это поможет. – progrmr
Калибровка * был * проблема. Поскольку я откалиброван, он теперь работает. – progrmr