iOS是语音识别权限强制性的吗?
我正在使用语音识别搜索任何具有用户语音的对象。 我的代码如下。 但是我意识到一些使用语音识别器的Apple Market应用程序(不确定他们的技术),他们不需要获得语音识别器的许可来执行此操作。 但是我的代码正在获得许可,许可就是这样
“[AppName]想要访问语音识别,此应用程序的语音数据将发送给Apple处理您的请求,这也有助于Apple改进其语音识别技术。”
这可能对用户造成破坏性影响。 你有什么主意吗? 我不想征求许可。
audioEngine = [[AVAudioEngine alloc] init];
if (recognitionTask) {
[recognitionTask cancel];
recognitionTask = nil;
}
NSError *error;
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryRecord error:&error];
[audioSession setActive:YES withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error];
if (@available(iOS 10.0, *)) {
recognitionRequest = [[SFSpeechAudioBufferRecognitionRequest alloc] init];
} else {}
AVAudioInputNode *inputNode = audioEngine.inputNode;
recognitionRequest.shouldReportPartialResults = YES;
if (@available(iOS 10.0, *)) {
recognitionTask = [speechRecognizer recognitionTaskWithRequest:recognitionRequest resultHandler:^(SFSpeechRecognitionResult * _Nullable result, NSError * _Nullable error){
BOOL isFinal = isSpeechStop;
if (!isFinal) {
NSLog(@"RESULT:%@",result.bestTranscription.formattedString);
isFinal = !result.isFinal;
}
}
if (error || isFinal) {
[audioEngine stop];
[inputNode removeTapOnBus:0];
recognitionRequest = nil;
[recognitionTask cancel];
recognitionTask = nil;
}
}
AVAudioFormat *recordingFormat = [inputNode outputFormatForBus:0];
[inputNode installTapOnBus:0 bufferSize:1024 format:recordingFormat block:^(AVAudioPCMBuffer * _Nonnull buffer, AVAudioTime * _Nonnull when) {
[recognitionRequest appendAudioPCMBuffer:buffer];
}];
[audioEngine prepare];
[audioEngine startAndReturnError:&error];
如果您不想要求用户许可,则需要使用第三方SDK。 我不想专门推销任何产品,所以我不会提及SDK的名称。 通过搜索很容易找到它们。
当然,他们需要麦克风许可。
链接地址: http://www.djcxy.com/p/34391.html上一篇: iOS Is Speech Recognition Permission Mandatory?
下一篇: Continuous speech recognition in android app without google popup