作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 SFSpeechRecognizer
并注意到此错误出现在 iOS >= 13 上。
这是我开始识别过程的代码:
- (void)startRecording:(BOOL)collectPartialResults {
NSError *error;
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
[audioSession setMode:AVAudioSessionModeMeasurement error:&error];
[audioSession setActive:YES error:&error];
AVAudioInputNode *inputNode = _audioEngine.inputNode;
_recognitionRequest = [SFSpeechAudioBufferRecognitionRequest new];
_recognitionRequest.shouldReportPartialResults = collectPartialResults;
_recognitionTask = [_internalRecognizer recognitionTaskWithRequest:_recognitionRequest resultHandler:^(SFSpeechRecognitionResult * _Nullable result, NSError * _Nullable error) {
// ...
}];
AVAudioFormat *format = [inputNode outputFormatForBus:0];
@try {
[inputNode installTapOnBus:0 bufferSize:1024 format:format block:^(AVAudioPCMBuffer * _Nonnull buffer, AVAudioTime * _Nonnull when) {
[_recognitionRequest appendAudioPCMBuffer:buffer];
}];
}
@catch (NSException *exception) {
NSLog(@"%@", exception.userInfo);
[self sendStartRecordingErrorMessage:[NSString stringWithFormat:@"%@", exception.userInfo]];
return;
}
NSError *startError;
[_audioEngine startAndReturnError:&startError];
if (startError != nil) {
[self sendStartRecordingErrorMessage:[NSString stringWithFormat:@"%@", startError.userInfo]];
}
}
这工作了一两次,但最终导致了这个错误:
AVAEInternal.h:109 [AVAudioEngineGraph.mm:1397:Initialize: (err = AUGraphParser::InitializeActiveNodesInInputChain(ThisGraph, *GetInputNode())): error -10851
由这一行引起:[_audioEngine startAndReturnError:&startError];
我不知道这个错误是什么意思。我的代码几乎和official example一样.
我试过几种方法,例如:
outputFormatForBus
而不是 inputFormatForBus
安装TapOnBus
, audioSession
模式(AVAudioSessionModeVoicePrompt
),[audioEngine reset]
最佳答案
我遇到了同样的问题。对我来说,解决方案是为每个录音使用一个新的 AVAudioEngine。
在你的例子中:
- (void)startRecording:(BOOL)collectPartialResults {
_audioEngine = [[AVAudioEngine alloc] init];
// ...
}
关于ios - AVAudioEngine 在 iOS 13 上导致 AUGraphParser::InitializeActiveNodesInInputChain 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59238035/
我正在使用 SFSpeechRecognizer 并注意到此错误出现在 iOS >= 13 上。 这是我开始识别过程的代码: - (void)startRecording:(BOOL)collectP
我在 iOS 13.1.2 和 AudioKit 4.9 上遇到过这个问题。使用 iPhone XS 进行测试。 我正在尝试使用以下代码呈现剪辑记录器结果: func preRende
我是一名优秀的程序员,十分优秀!