Scipy - Processamento de áudio

14

Estou procurando boas ferramentas para processamento de sinal de áudio. por exemplo, análise de fala e música, identificação automática de idiomas, etc.

A biblioteca Scipy fornece funções para processamento de áudio? Possui uma boa ferramenta para processamento de sinais de áudio?

Você pode sugerir uma ferramenta para isso?

user1147663
fonte
1
Sim, o scipy fornece infraestrutura para fazer esse tipo de coisa, mas você precisa ser um pouco mais específico sobre o que está procurando para obter uma resposta mais útil (especialmente para responder se existe ou não uma "ferramenta melhor do que [scipy]") )
A_A
1
em tempo real ou offline?
Endolith 12/06/12
desligada. Estou procurando a classificação Discurso / Música.
user1147663
1
Scipy e Numpy juntos fornecem excelentes ferramentas para processamento de dados em tempo real e offline. Em combinação com Cython ou Ctypes (eu costumo preferir a abordagem Cython), é fácil operar em matrizes numpy com operações rápidas de baixo nível escritas em C, se outras bibliotecas não puderem ser convencidas a se ajustarem.
Henry Gomersall
1
a única coisa que falta ao MATLAB é a capacidade de definir a origem de uma matriz como algo diferente de 1. Assim, como o valor DC na saída de uma FFT está na posição 1, em vez da posição 0, como deveria. existem outras coisas engraçadas sobre o MATLAB (ou oitava).
Robert Bristow-johnson

Respostas:

9

Pessoalmente, acho o Python uma das melhores opções existentes e fiz alguns trabalhos na área de identificação de áudio. Você é convidado a verificar, por exemplo, o meu software para identificação automática de aves a partir de gravações de áudio ruidosas: Ornithokrites . O programa é usado pelo Departamento de Conservação da Nova Zelândia e eles estão felizes com isso. Com base neste exemplo, gostaria de destacar várias vantagens do uso do Python:

  1. Comunidade enorme e em rápido desenvolvimento, fornecendo toneladas de bibliotecas. O SciPy fornece uma infinidade de métodos para processamento de sinal (concedido, não muitos e com maturidade como o Matlab). Lembre-se de que o SciPy, embora seja um dos mais importantes, é apenas uma das centenas que pode ajudá-lo em seus empreendimentos. Eu achei o Aubio melhor para análise musical. Para reconhecimento de fala e música, você desfrutará de um grande número de recursos de áudio que o Yaafe pode extrair.
  2. É grátis! Uma vez fora da academia, você descobre rapidamente que o Matlab é bastante caro. E mesmo que você possa pagar, seus usuários em perspectiva não ficarão felizes com essa dependência. Por exemplo, o mencionado Departamento de Conservação não aceitaria software proprietário.
  3. A identificação geralmente requer aprendizado de máquina e o Python possui um ótimo kit de ferramentas: sklearn. É uma biblioteca de última geração - e fácil de usar. Ter um olhar para competições Kaggle (aprendizagem de máquina) e verificar como muitos programadores top está usando Python e sklearn.
  4. Você pode gerenciar "big data". Se você deseja executar análises em grandes bancos de dados de gravações em rede, o Python já estabeleceu um conjunto de ferramentas bem estabelecido. Não acho que o Matlab / Octave faça interface facilmente com, por exemplo, o Hadoop, embora, por favor, me corrija se eu estiver errado. R faz melhor nesta área.
  5. Por falar em interface, você pode facilmente interagir com seu programa com um site. É assim que eu gerencio Ornithokrites (reconhecimento de pássaros): o programa é executado no serviço de computação em nuvem da Amazon Web Services. Ótimo se você deseja fornecer seu software para outras pessoas que não desejam necessariamente passar pelo procedimento de instalação de todas as bibliotecas necessárias.

Minha segunda opção seria R. Embora não seja tão rico em recursos como o Python, ele possui um grande número de bibliotecas úteis (verifique, por exemplo, seewave para seus aplicativos). A instalação daqueles no Windows e no Linux é fácil, o que é importante se você desejar que outras pessoas usem seu programa. No entanto, para minha experiência, a computação de alto desempenho em R é mais difícil - uma coisa importante a ser observada se você precisar fazer MUITO processamento e identificação.

Exemplos de classificação musical em Python:

Sistemas de aprendizado de máquina de construção de livros com Python tem um capítulo sobre classificação musical

Outras ferramentas (lista de forma alguma completa): Python no Music

Lukasz Tracewski
fonte
2

Parece que o Python é uma linguagem popular para isso, com alguns bons conjuntos de ferramentas baseados no fato de que ... Bem, eu o vi em uso em alguns departamentos e empresas de tecnologia da música.

Na academia, é muito comum ver esse tipo de trabalho feito no Matlab, pois reúne muitos kits de ferramentas poderosos (Processamento de Sinais, Computação Paralela, gráficos, utilitários de banco de dados, Machine Learning, AI) em um IDE fácil de analisar. No entanto, custa dinheiro e apresenta algumas desvantagens (não é a melhor linguagem de programação em termos de design e desempenho de aplicativos, por isso é principalmente uma ferramenta de prototipagem, mas pode compilar até C). O Octave é a alternativa gratuita, mas não posso garantir a qualidade das ferramentas de processamento de sinal ou do próprio software, pois não o usei.

jm0
fonte
Uma ótima biblioteca para isso é github.com/worldveil/dejavu . Python, de código aberto, licenciado pelo MIT e faz reconhecimento de áudio e impressões digitais.
Lollercoaster
scipyecossistema tem muitas funcionalidades do MATLAB.
Darleison Rodrigues 12/06
2

Você também pode verificar o pyAudioAnalysis : combina bibliotecas abertas para reconhecimento de padrões e várias implementações de recursos de áudio. Alguns exemplos de aplicativos implementados no pyAudioAnalysis , que você pode achar interessantes:

  • remoção de silêncio
  • diariação do orador
  • classificação de segmento (e treinamento) usando SVMs, kNN, etc.
  • classificação de segmentação articular (usando HMM)
  • miniatura de áudio
  • visualização de conteúdo de áudio
Theodore Giannakopoulos
fonte
0

Você pode usar a biblioteca C ++ da análise de áudio Essentia , que inclui ligações python. Você aproveitará todas as vantagens do ambiente python / scipy, além de muitos algoritmos de análise de áudio / música que acompanham o Essentia.

dimi
fonte