音频合成与(AVFoundation?使用正弦波



假设我有一个正弦波的Y值数组。(假设 X 是时间)

在Python中,你可以把它写到一个Wav文件中:

wav.write("file.wav", <sample rate>, <waveform>)

是否可以使用 AVFoundation 在 Swift 中执行此操作?如果是这样,怎么办?如果没有,我应该使用什么库?(我现在试图避免使用AudioKit。

谢谢 查尔斯

在 AVFoundation 中,有AVAudioFile,但您必须以AVAudioPCMBuffers 的形式提供数据,这会将数据保存在一个AudioBufferList中,而又由AudioBuffers 组成,恕我直言,这一切都相当复杂,因为他们的设计目标显然是能够处理所有可以想象的音频格式(包括压缩的、 VBR等)。因此,AVAudioFile只是将一些合成样本写入 WAV 文件可能是矫枉过正的。

或者,还有音频文件服务 C-API。它提供了AudioFileCreateWithURLAudioFileWriteBytesAudioFileClose,这可能会为您的任务解决问题。 最复杂的部分可能是AudioFileCreateWithURL所需的AudioStreamBasicDescription。为了帮助解决这个问题,存在一个实用程序函数:FillOutASBDForLPCM

最新更新