我正在尝试将一个音高变化到音频文件的应用程序放在一起,然后将其导出到我选择的路径。我尝试了Superpowered,并且有一个示例iOS项目可以满足我的需要,但是我并没有太大的运气使其能够在MacOS下运行。这是我遇到AudioKit的地方。
现在AudioKit有一个AKTimePitch
,这似乎是我需要做的,但是由于无法将其用于exportAsynchronously
,我无法完全理解它的作用,该方法仅适用于AKAudioFile
,它只是一个URL对象。有谁知道音高转换和输出的最佳方法是什么?当此方法有效时,我将在导出和其他控件之前转到回放进行预览,但是我至少想了解以下概念:获取文件->应用音高和时间偏移->首先导出到所选文件夹
private func pitchShift(inputURL: URL, outputURL: URL) {
let file = try! AKAudioFile(forReading: inputURL)
let player = AKPlayer(audioFile: file)
let converted = AKTimePitch(player)
converted.rate = 0.73
converted.pitch = -545
AudioKit.output = converted
file.exportAsynchronously(name: "test", baseDir: .documents, exportFormat: .wav, callback: callback)
}