9

音声をテキストに変換し、音声フレームワークを使用して UILabel に表示しようとしています。ユーザーにマイクの使用を許可しました。

これが私のコードです

- (void)startRecording {
if (_recognitionTask != nil) {
[_recognitionTask cancel];
_recognitionTask = nil;
}

NSError *error;

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryRecord error:&error];
[audioSession setMode:AVAudioSessionModeMeasurement error:&error];
[audioSession setActive:YES error:&error];

_recognitionRequest = [[SFSpeechAudioBufferRecognitionRequest alloc] init];
_recognitionTask = [[SFSpeechRecognitionTask alloc] init];

AVAudioInputNode *inputNode = [_audioEngine inputNode];

_recognitionRequest.shouldReportPartialResults = YES;

_recognitionTask = [_speechRecognizer     recognitionTaskWithRequest:_recognitionRequest resultHandler:^(SFSpeechRecognitionResult *result, NSError  *error) {
BOOL isFinal = NO;

if (result != nil) {
   _textLabel.text = [[result bestTranscription] formattedString];
   isFinal = result.isFinal;
}

NSLog(@"%@", error);

if (error != nil || isFinal) {
  _textLabel.text = [NSString stringWithFormat:@"%@", error];
  [inputNode removeTapOnBus:0];
  [_audioEngine stop];
  _recognitionRequest = nil;
  _recognitionTask = nil;
}
}];

[_audioEngine prepare];
[_audioEngine startAndReturnError:nil];
}

デバッグ中に認識タスクのリクエスト ブロックに入りますが、結果は nil であり、次のようなエラーが発生します。

エラー ドメイン = kAFAssistantErrorDomain コード = 203 "破損" UserInfo = {NSUnderlyingError = 0x14651450 {エラー ドメイン = SiriSpeechErrorDomain コード = 102 "(null)"}、NSLocalizedDescription = 破損}

4

1 に答える 1