AudioKit Pitch Shift и экспорт - PullRequest
0 голосов
/ 22 мая 2019

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