音声をテキストに変換し、音声フレームワークを使用して 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 = 破損}