No estéreo doméstico, tenho um espectrógrafo com matriz 2D, em que o eixo X é a frequência (graves profundos à esquerda, vocais no centro, agudos à direita) e o eixo Y é o volume ou a potência do som nessa frequência. Eu já vi coisas assim no Ubuntu, mas elas funcionam em arquivos MP3 ou outras músicas pré-gravadas. Existe algo que possa fazer isso em tempo real com um microfone conectado ou simplesmente com o mixer do sistema?
A ferramenta sox é capaz de criar um espectrograma:
fonte
Eu vim através deste snippet python procurando exatamente a mesma coisa e funciona muito bem:
Realmente simples, você precisará instalar com o pip3: - numpy como np - pyqtgraph como pg - pyaudio - PyQt4
Para fazer funcionar, eu converti a linha
para self.img_array = np.zeros ((1000, math.floor (CHUNKSZ / 2 + 1)))
para remover o erro de conversão de flutuação para int.
então $ python3 script.py
captura de tela da interface do usuário
Se você desenvolve em python, coisas engraçadas podem ser adicionadas a essa base muito legal.
fonte