【问题标题】:iOS Is Speech Recognition Permission Mandatory?iOS 语音识别权限是强制性的吗?
【发布时间】:2018-03-08 05:49:33
【问题描述】:

我正在使用语音识别来搜索任何带有用户声音的对象。我的代码如下。但我意识到一些使用语音识别器的 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];

【问题讨论】:

    标签: ios objective-c speech-recognition


    【解决方案1】:

    如果您不想请求用户许可,则需要使用 3rd 方 SDK。我不想专门宣传任何东西,所以我不会提及 SDK 的名称。通过搜索很容易找到它们。

    当然,他们需要麦克风许可。

    【讨论】:

    • 我想使用多种语言的语音识别。你建议任何第 3 方吗?我正在搜索 Google 语音库,但我没有任何来源。
    • 我继续使用语音识别器在 Apple 设备上正确使用。感谢您的意见。未经许可无法使用语音识别。
    猜你喜欢
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 2019-06-30
    相关资源
    最近更新 更多