gpt4 book ai didi

ios - AVSpeechSynthesizer 输出为文件?

转载 作者:可可西里 更新时间:2023-11-01 03:58:03 29 4
gpt4 key购买 nike

AVSpeechSynthesizer 有一个相当简单的 API,它不支持保存到内置的音频文件。

我想知道是否有解决此问题的方法 - 也许在静默播放时记录输出,以便稍后播放?或者更高效的方法。

最佳答案

这终于成为可能,在 iOS 13 中 AVSpeechSynthesizer 现在有 write(_:toBufferCallback:) :

let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: "test 123")
utterance.voice = AVSpeechSynthesisVoice(language: "en")
var output: AVAudioFile?

synthesizer.write(utterance) { (buffer: AVAudioBuffer) in
guard let pcmBuffer = buffer as? AVAudioPCMBuffer else {
fatalError("unknown buffer type: \(buffer)")
}
if pcmBuffer.frameLength == 0 {
// done
} else {
// append buffer to file
if output == nil {
output = AVAudioFile(
forWriting: URL(fileURLWithPath: "test.caf"),
settings: pcmBuffer.format.settings,
commonFormat: .pcmFormatInt16,
interleaved: false)
}
output?.write(from: pcmBuffer)
}
}

关于ios - AVSpeechSynthesizer 输出为文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25965601/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com