Как воспроизвести звук любой формы волны на языке джулии?
У меня есть синусоида с длиной 5 секунд, как показано ниже:
x=sin(0:.01:2*pi*500*5);
Теперь я хотел бы услышать звук этой формы волны, дав команду, подобную приведенной ниже:
playsound(x,samplingfrequency);
Для меня будет полезно, если я смогу записать эти аудиоданные в файл wav или mp3. Какая библиотека нужна и эквивалентная команда в julia для этой функциональности?
3 ответа
Вы можете воспроизводить аудио с помощью https://github.com/ssfrr/AudioIO.jl
А для записи / чтения wav https://github.com/JuliaLang/Sound.jl/blob/master/src/Sound.jl
Однако в настоящее время оба модуля находятся на ранней стадии.
Вы можете использовать WAV.jl для кодирования данных в файл WAV. Вы можете установить пакет через систему пакетов Julia:
Pkg.add("WAV")
Затем используйте wavwrite
Функция для создания файла:
wavwrite(data, "example.wav", Fs=8000)
В хранилище исходного кода WAV есть функция ( wavplay) для воспроизведения звука, но она работает только в Linux. Я жду, когда кто-нибудь предоставит версии для Windows и Mac, прежде чем я включу его в официальную версию.
Я немного опоздал здесь, но я также нашел эту страницу, которая также может быть полезна. Он документирует ряд библиотек для работы с аппаратным обеспечением в Julia и содержит удивительно длинный список аудио / видео материалов.