2010-05-21 18 views
13

He intentado "secuestrar" el audio del sistema Mac OS X usando PyAudio y guardarlo en un wav en python. Es decir, no quiero grabar desde un dispositivo de entrada como un micrófono. Quiero capturar la salida de sonido de alguna o todas las aplicaciones.Capturar salida de audio del sistema Mac OS X con Python

He seguido los tutoriales en el sitio de PyAudio, pero estos no parecen cubrir mi caso de uso y cuando trato de leer de la secuencia de salida no me sorprende la excepción paCanNotReadFromAnOutputOnlyStream. ¡Lo suficientemente justo! ¿Hay alguna manera de hacer lo que propongo con PyAudio u otra biblioteca de FOSS Python?

Respuesta

6

Descubrí que un proyecto de código abierto llamado SoundFlower me llevó rápidamente al lugar donde debía estar.

  1. Instalé el paquete SoundFlower de Google Code.
  2. abiertos Preferencias del sistema -> Sonido
  3. Chose Soundflower como el dispositivo de salida
  4. Elegimos Soundflower como el dispositivo de entrada

Yo era entonces capaz de grabar audio del sistema desde el dispositivo por defecto usando PyAudio. Sin embargo, no hay sonido proveniente de los altavoces/auriculares en esta situación. Me pregunto si podría usar Jack OS X para enviar el audio de SoundFlower al audio del sistema.

2

Si está dispuesto a instalar un componente adicional, puede probar Jack OS X para canalizar la entrada desde la aplicación de origen a PyAudio.

En PyAudio tendrá que utilizar el dispositivo virtual "Jack Router" que aparecerá como un dispositivo de entrada de audio.