GNU/Linux >> Tutoriales Linux >  >> Linux

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

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)


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 sí, funciona :)


Linux
  1. Variables de entorno de Linux:cómo leer y configurar en un VPS de Linux

  2. Cómo leer y corregir los mensajes de denegación de SELinux

  3. Cómo exportar e importar configuraciones de DNS en CloudFlare

  4. Cómo:Python 3 y creación de un entorno virtual (venv) en CentOS 7

  5. ¿Cómo grabar audio con ffmpeg en linux?

Cómo exportar e importar máquinas virtuales KVM en Linux

Cómo exportar e importar máquinas virtuales VirtualBox

Cómo instalar y usar Python-Mistune en Linux

Cómo leer la salida y los usos del comando superior de Linux

Journalctl:Cómo leer y editar registros de Systemd

Cómo instalar Anaconda Navigator y JupyterLab en Linux