W moim domowym zestawie stereo mam spektrograf z matrycą 2D, w której oś X to częstotliwość (głęboki bas po lewej, wokal w środku, góra po prawej), a oś Y to głośność lub moc dźwięk przy tej częstotliwości. Widziałem takie rzeczy w Ubuntu, ale działają one na plikach MP3 lub innych wcześniej nagranych utworach. Czy jest coś, co może zrobić w czasie rzeczywistym z podłączonym mikrofonem lub po prostu mikserem systemowym?
Narzędzie sox jest w stanie stworzyć spektrogram:
źródło
Właśnie natrafiłem na ten fragment kodu w Pythonie, szukając dokładnie tego samego i działa całkiem dobrze:
Naprawdę proste, musisz zainstalować z pip3: - numpy jako np - pyqtgraph jako pg - pyaudio - PyQt4
Aby to działało, przekonwertowałem linię
do self.img_array = np.zeros ((1000, matematyka. podłoga (CHUNKSZ / 2 + 1)))
usunąć błąd konwersji float to int.
następnie $ python3 script.py
zrzut ekranu interfejsu użytkownika
Jeśli rozwijasz się w Pythonie, do tej naprawdę fajnej bazy można dodać zabawne rzeczy.
źródło