1

我的 iOS10 应用程序执行文本到语音和语音识别。发生这种情况时,它会暂停其他应用程序的音频,并在 ASR/TTS 结束时通知其他应用程序,以便他们可以恢复音频。在 iPhone5 和 6 上一切正常。

问题出在 iPhone7s 上:口语短语的音量一开始非常低,到短语结尾时声音更大。为什么?

我将提供一些代码以防万一,因为这似乎是一个 iOS 错误。

音频会话代码:

-(AVAudioSessionCategoryOptions)indigoAudioBehaviorOptions:(AVAudioSession *)s{
    AVAudioSessionCategoryOptions audioIOoptions = [s categoryOptions];
    audioIOoptions |= AVAudioSessionCategoryOptionDefaultToSpeaker;
    audioIOoptions |= AVAudioSessionCategoryOptionAllowBluetooth;
    audioIOoptions |= AVAudioSessionCategoryOptionAllowBluetoothA2DP;
    return audioIOoptions;
}
-(void)notifyIOSthatOtherAppsCanResumeAudioPlayback{
    NSError *err;
    [myAudioSession setActive: NO
                  withOptions: AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation
                        error: &err];
    if(err!=nil){
        NSLog(@"audioIsFreeNotificationForIOS ERROR: %@",err.description);
    }
}


myAudioSession = [AVAudioSession sharedInstance];
NSError *err;
[myAudioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions: [self indigoAudioBehaviorOptions:indigoAudioSession] error:&err];

文字转语音代码:

nativeVocalizer = [[AVSpeechSynthesizer alloc] init];
nativeVocalizer.delegate = self;
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:stringToSpeak];
[utterance setVoice:[AVSpeechSynthesisVoice voiceWithLanguage:lang]];
[nativeVocalizer speakUtterance:utterance];
4

1 回答 1

0

这可能是由于活动的音频会话AVAudioSession模式而发生的。

我没有发生这种行为的唯一模式是使用模式AVAudioSessionModeMeasurement

于 2017-09-10T23:41:17.743 回答