gpt4 book ai didi

ios - 语音框架集成显示错误

转载 作者:可可西里 更新时间:2023-11-01 03:18:22 27 4
gpt4 key购买 nike

我正在尝试将语音转换为文本并使用语音框架将其显示在 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 block ,但结果为 nil 并且出现如下错误:

Error Domain=kAFAssistantErrorDomain Code=203 "Corrupt" UserInfo={NSUnderlyingError=0x14651450 {Error Domain=SiriSpeechErrorDomain Code=102 "(null)"}, NSLocalizedDescription=Corrupt}

最佳答案

问题是这段代码缺少附加识别缓冲区的代码,所以要解决这个问题,在 [_audioEngine prepare]; 行之前添加以下代码

[_audioEngine.inputNode installTapOnBus:0 bufferSize:1024 format:[inputNode inputFormatForBus:0] block:^(AVAudioPCMBuffer *buffer, AVAudioTime *when){
//NSLog(@"Tapped");
[self.recognitionRequest appendAudioPCMBuffer:buffer];
}];

这解决了我的问题。希望对您也有帮助。

关于ios - 语音框架集成显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457549/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com