Linux — Без аппаратной звуковой карты, захват воспроизведения звука и запись его в файл

#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. у вас уже есть импульсный звук, но как это должно работать?