我正在尝试将录制的音频文件转换为 [Double] 类型的原始 PCM 数据。我找到了一种加载音频并将其转换为 [Float32] 类型的 PCM 数据的方法,如下所示:
// load audio from path
let file = try! AVAudioFile(forReading: self.soundFileURL)
// declare format
let format = AVAudioFormat(commonFormat: .PCMFormatFloat32, sampleRate: file.fileFormat.sampleRate, channels: 1, interleaved: false)
// initialize audiobuffer with the length of the audio file
let buf = AVAudioPCMBuffer(PCMFormat: format, frameCapacity: UInt32(file.length))
// write to file
try! file.readIntoBuffer(buf)
// copy to array
let floatArray = Array(UnsafeBufferPointer(start: buf.floatChannelData[0], count:Int(buf.frameLength)))
问题是,我需要数据作为 [Double] 和 AVAudioPCMBuffer() 只知道.PCMFormatFloat32
. 有人知道解决方法吗?谢谢你。