En el estéreo de mi casa tengo un espectrógrafo que tiene una matriz 2D, por lo que el eje X es la frecuencia (graves profundos a la izquierda, voz en el centro, agudos a la derecha), y el eje Y es el volumen o la potencia del sonido a esa frecuencia. He visto cosas como esta para Ubuntu, pero funcionan en archivos MP3 u otras canciones pregrabadas. ¿Hay algo que pueda hacer esto en tiempo real para un micrófono conectado o simplemente el mezclador del sistema?
La herramienta sox puede crear un espectrograma:
fuente
Acabo de encontrar este fragmento de Python buscando exactamente lo mismo y funciona bastante bien:
Realmente simple, necesitará instalar con pip3: - numpy como np - pyqtgraph como pg - pyaudio - PyQt4
Para que funcione, convertí la línea
a self.img_array = np.zeros ((1000, math.floor (CHUNKSZ / 2 + 1)))
para eliminar el error de conversión de flotante a int.
luego $ python3 script.py
captura de pantalla de la interfaz de usuario
Si desarrollas en Python, se pueden agregar cosas divertidas a esta base realmente genial.
fuente