Saltar al contenido

Cómo leer el volumen de audio del micrófono en tiempo real en python y ffmpeg o similar

La guía o código que encontrarás en este post es la resolución más eficiente y efectiva que hallamos a tu duda o problema.

Solución:

Gracias a @Matthias por la sugerencia de usar el módulo de dispositivo de sonido. Es exactamente lo que necesito.

Para la posteridad, aquí hay un ejemplo de trabajo que imprime niveles de audio en tiempo real en el shell:

# Print out realtime audio volume as ascii bars

import sounddevice as sd
import numpy as np

def print_sound(indata, outdata, frames, time, status):
    volume_norm = np.linalg.norm(indata)*10
    print ("|" * int(volume_norm))

with sd.Stream(callback=print_sound):
    sd.sleep(10000)

ingrese la descripción de la imagen aquí

Usuario de Python 3 aquí
Tuve algunos problemas para que funcionara, así que usé: https://python-sounddevice.readthedocs.io/en/0.3.3/examples.html#plot-microphone-signal-s-in-real-time
Y necesito instalar sudo apt-get install python3-tk para python 3.6 busque el módulo Tkinter no encontrado en Ubuntu
Luego modifiqué el script:

#!/usr/bin/env python3
import numpy as np
import sounddevice as sd

duration = 10 #in seconds

def audio_callback(indata, frames, time, status):
   volume_norm = np.linalg.norm(indata) * 10
   print("|" * int(volume_norm))


stream = sd.InputStream(callback=audio_callback)
with stream:
   sd.sleep(duration * 1000)

Y si funciona 🙂

Te mostramos las reseñas y valoraciones de los lectores

Tienes la opción de añadir valor a nuestro contenido dando tu experiencia en las aclaraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *