8 speech-recognition objective-c ios siri sfspeechrecognizer
我正在研究iOS上的语音识别,但每次调用方法[_recognitionRequest endAudio]时,它总是在recognitionTaskWithRequest中出错:消息在底部.
-(void) stopRecording {
if (_disableSpeechSW == YES) {
return;
}
if (_isAuthorization == NO) {
return;
}
NSLog(@"stopRecording");
if ([_audioEngine isRunning]) {
[_audioEngine stop];
[_recognitionRequest endAudio];
}
Run Code Online (Sandbox Code Playgroud)
}
-(void) startRecording {
..........
[_speechRecognizer recognitionTaskWithRequest:_recognitionRequest
resultHandler:^(SFSpeechRecognitionResult *result,NSError *error){
if (error != nil ) {
NSLog(@"%@",[error description]);
}
else {
..........
}
}];}
Run Code Online (Sandbox Code Playgroud)
[实用程序] + [AFAggregator logDictationFailedWithError:]错误域= kAFAssistantErrorDomain代码= 203"重试"UserInfo = {NSLocalizedDescription =重试,NSUnderlyingError = 0x17424c690 {错误域= SiriSpeechErrorDomain代码= 1"(null)"}}
有关siri语音限制的更多说明,请参阅此文章:iOS 10的语音识别限制
Use my function below to stop speech recognization. Hope its works.
-(void)stopRecording{
dispatch_async(dispatch_get_main_queue(), ^{
if(audioEngine.isRunning){
[inputNode removeTapOnBus:0];
[inputNode reset];
[audioEngine stop];
[recognitionRequest endAudio];
[recognitionTask cancel];
recognitionTask = nil;
recognitionRequest = nil;
}
});
}
Run Code Online (Sandbox Code Playgroud)
小智 4
我发现“endAudio”不允许从recognitionTaskWithRequest块外部调用,如果您直接调用方法“[self stopRecording]”,那么该块将立即响应错误“kAFAssistantErrorDomain Code=203”。
\n\n这是我的代码中带有 stopRecord 的第 4 部分
\n\n1和2没问题
\n\n3 和 4 错误\n\xe3\x80\x80
\n\n1.从块 \xe2\x86\x92 检测到语音 \xe2\x86\x92 withVoiceControl \xe2\x86\x92 stopRecord \xe2\x86\x92 ok
\n\n2.from块错误\xe2\x86\x92 stopRecord \xe2\x86\x92 startRecord \xe2\x86\x92 ok
\n\n3.按钮点击 \xe2\x86\x92 停止记录 \xe2\x86\x92 kAFAssistantErrorDomain Code=203
\n\n4.定时器40s \xe2\x86\x92 stopRecord \xe2\x86\x92 startRecord \xe2\x86\x92 kAFAssistantErrorDomain Code=203
\n| 归档时间: |
|
| 查看次数: |
6849 次 |
| 最近记录: |