即使将合成器移动到课外,如何修复 AV 语音合成器错误“无法列出语音文件夹”?

问题描述 投票:0回答:1

我尝试在 ARKit 应用程序上使用 AV 语音合成器(我以前从未使用过),但我不断收到相同的错误消息“无法列出语音文件夹。”

我之前看到有人问过同样的问题,所有答案都提到 ios 16 是不同的,所以他们建议将合成器声明行移到函数外部或直接移到我导入 AVFoundation 的位置下。

let synthesizer = AVSpeechSynthesizer()

但是,无论我将此行放在哪里,我仍然收到相同的错误消息。我对 Swift 和应用程序开发还很陌生,所以我怀疑还有另一个问题,但相关代码大致如下:

import AVFoundation
let synthesizer = AVSpeechSynthesizer()

//within the view controller class:
func testSpeak() {
    
    let utterance = AVSpeechUtterance(string: "screen has been tapped")
    utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
    synthesizer.speak(utterance)

}

如果我无法使用 AVSpeechSynthesizer,是否有其他方法可以使用它?我只需要一些可以向用户大声朗读几个字符串的东西。

swift xcode text-to-speech arkit speech-synthesis
1个回答
0
投票

这意味着您尚未将之前的audioSession的类别更改回播放状态。

你也在其他地方录音吗?

如果是这样,当您完成这样的录制时,请将您的音频会话设置回播放状态。

do {
    try audioSession?.setCategory(.playback, mode: .default, options: .duckOthers)
    try audioSession?.setActive(false)
} catch {
    // handle errors
}
© www.soinside.com 2019 - 2024. All rights reserved.