Как записать системный звук на Python?(Linux) - PullRequest
0 голосов
/ 23 декабря 2018

Я возился с PyAudio, и я смог записывать только с микрофона.Я хочу иметь возможность записывать то, что играет через колонки.Есть ли способ сделать это с PyAudio или я должен использовать что-то еще?

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018

Я думаю, что это дублирующая запись этого сообщения 4 года назад

Я провел некоторое исследование и выяснил, что WASAPI все еще работает и, кажется, ваш единственный вариант.Вот ссылка на Gitlab для расширенной PyAudio lib .Я не нашел решения для любой ОС Linux, которая работает "из коробки".Если это действительно важно, попробуйте использовать любой VirtualMachine с Windows на нем.

Как упоминалось ранее, вопрос заключается в том, почему вы хотите добиться этого и есть ли более «элегантный» способ.

0 голосов
/ 23 декабря 2018

Аудио подсистема в Linux работает вокруг концепции источников и приемников.Источник - это место, где звук может попадать в аудиоподсистему (микрофон, звук воспроизведения приложения и т. Д.), А приемник - это место, где он может выходить (динамики).Вам необходимо найти источник звука, который будет выполнять функцию петлевого монитора приемника динамика.См. Ответ b-ak на следующий пост:

https://askubuntu.com/questions/229352/how-to-record-output-to-speakers

В нем объясняются команды, которые вы можете использовать из командной строки, чтобы помочь в идентификации соответствующего идентификатора этого аудиоисточника.Затем вам нужно будет следовать ответу Ролана Смита на следующий пост, чтобы загрузить его в pyaudio:

запись голоса с использованием pyaudio

Здесь объясняется, что вы можетесоздайте экземпляр объекта pyaudio и получите список идентификаторов устройств в интерактивном приглашении python, например:

import pyaudio
p = pyaudio.PyAudio()
[p.get_device_info_by_index(i) for i in range(p.get_device_count())]

Найдите соответствующее устройство и затем передайте параметр input_device_index в p.open с соответствующим идентификатором устройства, когдаоткрытие потока.

...