1

iOS 用の音声制御プログラムに取り組んでおり、認識エンジンとして Pocketsphinx を使用しています。音声コマンドに「Morning」という単語が含まれているかどうかを認識し、morningGreetings 配列のいずれかのフレーズで応答するようにします。私のコードは次のようになります-

if([hypothesis rangeOfString:@"morning"].location == !NSNotFound) {
    NSString *text= [morningGreetings objectAtIndex:arc4random() % [morningGreetings count]];;
    [self.fliteController say:[NSString stringWithFormat:text] withVoice:self.firstVoiceToUse];
}

ただし、このコードでは、音声文字列の最初の単語が「朝」である場合にのみ、認識エンジンがコマンドを実行します。「おはよう」、「おはようございますね」、「今朝はお元気ですか?」などに反応させたいのですが、これを実現するには何を変更すればよいでしょうか?

4

1 に答える 1

1

音声コマンドに「Morning」という単語が含まれているかどうかを認識させたい (...) ただし、このコードでは、「Morning」が音声文字列の最初の単語である場合にのみ、認識エンジンがコマンドを実行します。

あなたの条件location == !NSNotFoundは0 に等しいlocation == 0ため!NSNotFound、「朝」が文字列の最初の単語である場合にのみ実行されます。あなたが欲しいのはですlocation != NSNotFound

条件を次のように変更します。

if ([hypothesis rangeOfString:@"morning"].location != NSNotFound) { ... }
于 2012-06-23T14:11:31.480 に答える