SKRecognizer返回空数组

时间:2012-11-12 10:47:41

标签: ios speech-recognition

我正在使用Dragon移动NDEV SDK,但我的识别问题。 在根视图中,此按钮用于开始录制。用户可以在我的表格视图中选择带语音的行,然后我的应用程序推送到相应的视图。但是在这个视图中,当用户再次按下记录按钮时,SKRecognizer总是返回一个空数组,在第二个视图中,甚至在第一个用户返回时返回按钮。 我必须重新启动应用程序再次使用SKRecognizer。 如果我直接进入第二个视图并使用SKRecognizer,同样处理此视图,但是如果我导航识别不起作用,则相同。

我有一个Dragon识别器的专用类,我在每个视图中实例化这个类,每个视图都有一个属性。

- (IBAction)recordAction:(id)sender
{
    if (_recognizer) {
        [_recognizer release];
    }
    _recognizer = [[DragonRecognizer alloc] init];

    [_recognizer startRecord];
}

SKRecognizer代表:

- (void)recognizer:(SKRecognizer *)recognizer didFinishWithResults:(SKRecognition *)results
{
    long numOfResults = [results.results count];

    transactionState = TS_IDLE;

    if (numOfResults > 0)
        _result = [[results firstResult] lowercaseString];

    [_recognizer release];
    _recognizer = nil;

    NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
    [nc postNotificationName:DragonReconizerFinishWithResults object:nil];
}

我在视图控制器中收到通知:

- (void)stopRecordReconizer:(NSNotification *)n
{
    if (![self.navigationController.visibleViewController isKindOfClass:[self class]])
        return;

    NSString *mainResult = [_recognizer result]; // No result
}

你知道为什么SKRecognizer在第二次使用后会给我一个空数组吗?

谢谢你的帮助!

0 个答案:

没有答案