Děkujeme @Matthias za návrh na použití modulu zvukového zařízení. To je přesně to, co potřebuji.
Pro budoucí generace je zde funkční příklad, který vytiskne úrovně zvuku v reálném čase do shellu:
# 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)
Zde je uživatel Pythonu 3
Měl jsem několik problémů, aby to fungovalo, takže jsem použil:https://python-sounddevice.readthedocs.io/en/0.3.3/examples.html#plot-microphone-signal-s-in-real-time
A potřebuji nainstalovat sudo apt-get install python3-tk
pro python 3.6 se podívejte na modul Tkinter, který nebyl na Ubuntu nalezen
Potom jsem upravil skript:
#!/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)
A ano, funguje to :)