#linux #ubuntu-server #pyaudio
#linux #ubuntu-сервер #пьяудио
Вопрос:
Возможно ли вообще такое?
Есть ли возможность создать виртуальную звуковую карту, а затем использовать, например, PyAudio для прослушивания ее выходных данных и сохранения их в файл? ОБРАТИТЕ внимание, что на компьютере отсутствует аппаратная звуковая карта.
Я перепробовал много вещей, особенно snd-dummy
модуль ALSA, но я начинаю сомневаться, что ищу правильные инструменты. Я был бы признателен, если бы кто-нибудь мог указать мне хотя бы на решение высокого уровня. Желательно что-то, что работало бы на сервере Ubuntu.
Ответ №1:
Благодаря @mjy и @Matthias мне наконец-то удалось определить минимальные шаги, которые нужно предпринять, чтобы запись заработала:
sudo apt-get install pulseaudio jackd2 alsa-utils dbus-x11
Не нужно играть snd-dummy
, не нужно создавать никаких дополнительных конфигурационных файлов… Все это только заставило меня потерять несколько часов:(После установки этих пакетов на чистом сервере Ubuntu я смог запустить скрипт Python и записать выходной звук в файл с помощью PyAudio…
Комментарии:
1. Ты человек и сэкономил мне часы <3 — примечание: вы можете проверить, работает ли этот ответ, введя
python3 -m sounddevice
в терминале2. Спасибо! Настраивал baresip в debian netinst и ubuntu server, и это сработало как шарм. Мое сообщение об ошибке было «alsa не удалось открыть auplay device’default’ (нет такого файла или каталога)» для контекста
3. Это отличное решение!
Ответ №2:
Если приложение, воспроизводящее звук, поддерживает разъем JACK, это должно быть легко. Затем вам нужно только выбрать dummy
драйвер для JACK, и вы можете направить аудиосигнал в любую программу записи звука, которую вы хотите (при условии, что она также поддерживает JACK).
Вам понадобится пакет jackd
, который имеет интерфейс командной строки для запуска демона JACK. Пакет qjackctl
предоставляет приятный графический интерфейс для экспериментов с различными настройками и для создания аудиосвязей между программами. Для записи вы можете попробовать программу jack_rec
, которая является частью jackd
, но есть также много других приложений для записи для Джека.
Если вы хотите использовать Python для записи, вы можете попробовать модули sounddevice и soundfile. Если вам нужна какая-то специфичная для JACK функциональность, вам следует попробовать jackclient-python.
Комментарии:
1. Как я узнаю, поддерживает ли приложение JACK?
Ответ №3:
Установите PulseAudio.
sudo apt install pulseaudio
У PulseAudio есть эмуляция для ALSA.
Комментарии:
1. Не могли бы вы предоставить дополнительную информацию об указанной эмуляции?
2. Устройство эмуляции будет создано автоматически. Вероятно, вы сможете записывать и воспроизводить на устройствах эмуляции ALSA без настройки.
3. у вас уже есть импульсный звук, но как это должно работать?