Захват выхода Mac OS X System Audio с помощью Python

Я пытался "захватить" аудиосистему Mac OS X с помощью PyAudio и сохранить к wav в python. То есть, я не хочу записывать с устройства ввода, такого как микрофон. Я хочу захватить звук из любого или всех приложений.

Я следил за учебниками на сайте PyAudio, но они, похоже, не охватывают мой прецедент, и когда я пытаюсь читать из потока вывода, неудивительно получить исключение paCanNotReadFromAnOutputOnlyStream. Справедливо! Есть ли способ сделать то, что я предлагаю с помощью PyAudio или другой библиотеки Python FOSS?

Ответы

Ответ 1

Я обнаружил, что проект с открытым исходным кодом под названием SoundFlower быстро заставил меня место, в котором я должен был быть.

  • Я установил пакет SoundFlower из Google Code.
  • Открытые системные настройки → Звук
  • Выберите Soundflower как мое устройство вывода
  • Выберите Soundflower как мое устройство ввода

Затем я смог записать системный звук с устройства по умолчанию с помощью PyAudio. Однако в этой ситуации звук не поступает из динамиков/наушников. Интересно, можете ли вы использовать Jack OS X для маршрутизации аудио из SoundFlower в аудиосистему системы.

Ответ 2

Если вы хотите установить дополнительный компонент, вы можете попробовать Jack OS X, чтобы передать входные данные из исходного приложения в PyAudio.

В PyAudio вам нужно будет использовать виртуальное устройство "Jack Router", которое будет отображаться как входное аудиоустройство.

Ответ 3

Я знаю, что это старый пост, но я использовал AU Lab для направления вывода звука на гарнитуру http://macappstore.org/au-lab/