Como processar áudio em tempo real?

Tenho uma entrada de áudio através do microfone. Gravei-o com audácia, parece-se com algo como mostrado abaixo.

Audio waveform

Quero processar este áudio em tempo real. Eu quero fazer isso principalmente:

  1. ver amplitude de áudio em tempo real vs Gráfico de tempo.

  2. execute algumas ações baseadas em eventos como se um padrão de onda é visto similar a algum padrão de onda predefinido, em seguida, chamar uma função.
    Na metade superior da imagem, você pode ver quatro distúrbios. Eu quero que sempre que esta perturbação é vista, o script deve chamar uma função, caso contrário, quando o sinal é quase reta, não fazer nada apenas continuar analisando o sinal.

Existe algum módulo Python ou biblioteca C que me permita fazer isto?

Author: freejosh, 2013-06-26

4 answers

Sugiro que te apresentes primeiro ao FFT, o que te tornará capaz de fazer muita análise e controlo sobre o processamento do teu áudio em tempo real.

1# um FFT avançado dar-lhe-á amplitude dentro do domínio do tempo, convertido a partir do seu domínio de frequência (os próprios dados de áudio) 2# baseado nos padrões de amplitude dentro do tempo / frequência - você pode decidir chamar thread extra ou função; por exemplo - quando você não obtém amplitude em determinada barra de frequências ou horário - faz alguma coisa, skip.

Há uma abundância de opensource bibliotecas de C para executar FFT em dados de áudio, como http://aubio.org/ ou https://github.com/zaphire/Monocle-Engine/blob/master/Core/Audio/fft.cpp há muito mais. Mas certifique-se de fazer você entender FFT e análise de som antes de prosseguir. Eu pessoalmente não usei nenhuma dessas bibliotecas C-em vez disso fiz muito com a análise de áudio iOS, mas os princípios de trabalho devem ser similares {[[2]}

 2
Author: Arif, 2013-07-05 21:18:51

As probabilidades são PythonInMusic tem o que você está procurando, mas é muito difícil dizer quando a sua tarefa alvo é "executar algumas ações baseadas em alguma coisa"

 0
Author: Mason Hemmel, 2013-07-03 19:07:01
Se estamos a falar de reconhecimento de voz, podem ver a libélula que é descrita como ...

Um pacote Python que oferece um modelo de objecto de alto nível e permite o seu usuários para escrever facilmente scripts, macros e programas que usam a fala reconhecimento.

Ou pyspeech

Speech.py é um módulo Python que oferece uma interface limpa para Reconhecimento de voz e capacidades de texto-para-voz do Windows. É muito facil para usar dentro de um programa que precisa ouvir para frases específicas ou discurso geral, ou isso precisa de falar.

De qualquer forma, estes dois módulos python parecem processar áudio em tempo real, podem dar-lhe algumas dicas...
 0
Author: Alexis LEGROS, 2013-07-05 15:42:14

Para o ponto 1 pode utilizar Dados puros .

Ponto de 2 é muito inespecífica , mas você pode tentar a sua sorte com PythonInMusic (após a resposta do Pedreiro Hemmel)

 0
Author: Quonux, 2013-07-05 20:52:30