Я пытаюсь собрать приложение, которое выполняет сдвиг высоты тона в аудиофайле, а затем экспортирует его по выбранному пути. Я попробовал 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)
}