GNU/Linux >> Linux Esercitazione >  >> Linux

Come leggere il volume audio del microfono in tempo reale in python e ffmpeg o simili

Grazie a @Matthias per il suggerimento di utilizzare il modulo sounddevice. È esattamente ciò di cui ho bisogno.

Per i posteri, ecco un esempio funzionante che stampa i livelli audio in tempo reale sulla 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)


Utente Python 3 qui
Ho avuto alcuni problemi per farlo funzionare, quindi ho usato:https://python-sounddevice.readthedocs.io/en/0.3.3/examples.html#plot-microphone-signal-s-in-real-time
E devo installare sudo apt-get install python3-tk per python 3.6 cerca il modulo Tkinter non trovato su Ubuntu
Poi ho modificato 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)

E sì, funziona :)


Linux
  1. Variabili d'ambiente Linux:come leggere e impostare su un VPS Linux

  2. Come leggere e correggere i messaggi di negazione di SELinux

  3. Come esportare e importare le impostazioni DNS in CloudFlare

  4. Procedura:Python 3 e creazione di un ambiente virtuale (venv) in CentOS 7

  5. Come installare e importare i moduli Python in fase di esecuzione?

Come esportare e importare macchine virtuali KVM in Linux

Come esportare e importare macchine virtuali VirtualBox

Come installare e utilizzare Python-Mistune su Linux

Come leggere l'output e gli usi dei comandi principali di Linux

Journalctl:come leggere e modificare i log di Systemd

Come installare Anaconda Navigator e JupyterLab su Linux