1

Dragon mobile NDEV SDK を使用していますが、認識に問題があります。ルート ビューでは、記録を開始するためのボタンがここにあります。ユーザーは、テーブル ビューで音声を使用して行を選択し、アプリを対応するビューにプッシュできます。ただし、このビューでは、ユーザーが記録ボタンを再度押すと、SKRecognizer は常に空の配列を返します。ユーザーが戻るボタンで戻ると、2 番目のビューでも最初のビューでも返されます。SKRecognizer を再度使用するには、アプリを再起動する必要があります。2 番目のビューに直接移動し、このビューで作業している 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
}

2回目の使用後にSKRecognizerが空の配列を送信する理由を知っていますか?

助けてくれてありがとう!

4

0 に答える 0