【发布时间】:2017-01-04 06:29:38
【问题描述】:
我正在尝试使用语音框架将语音转换为文本并在 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];
}
在调试时,它进入了 recognitionTaskWithRequest 块,但结果为 nil,并且出现如下错误:
错误域=kAFAssistantErrorDomain 代码=203“损坏” UserInfo={NSUnderlyingError=0x14651450 {错误 Domain=SiriSpeechErrorDomain Code=102 "(null)"}, NSLocalizedDescription=损坏}
【问题讨论】:
-
您找到解决方案了吗?我面临同样的问题...如果您找到了解决方案,请告诉我。
-
@RaviKiran,我也面临着类似的问题。请让我知道您遇到的问题的解决方案。谢谢。
-
@csharpnewbie 希望我的回答对你有所帮助。
-
我最终只是重新启动了我的手机。
标签: ios objective-c sirikit