Scipy - Procesamiento de audio


14

Estoy buscando buenas herramientas para el procesamiento de señales de audio. Por ejemplo, análisis de voz y música, identificación automática del idioma, etc.

¿La biblioteca Scipy proporciona funciones para el procesamiento de audio? ¿Tiene una buena herramienta para el procesamiento de señal de audio?

¿Puedes sugerir una herramienta para esto?


1
Sí, scipy proporciona infraestructura para hacer este tipo de cosas, pero debe ser un poco más específico sobre lo que busca para obtener una respuesta más útil (especialmente para responder si existe o no "una herramienta mejor que [scipy]" )
A_A

1
en tiempo real o fuera de línea?
endolito

desconectado. Estoy buscando clasificación de voz / música.
user1147663

1
Scipy y Numpy juntos brindan excelentes herramientas para el procesamiento de datos en tiempo real y fuera de línea. En combinación con Cython o Ctypes (tiendo a preferir el enfoque de Cython), es fácil operar en matrices con muchas operaciones rápidas de bajo nivel escritas en C, si no se puede convencer a otras bibliotecas de que encajen.
Henry Gomersall

1
lo único que le falta a MATLAB es la capacidad de definir el origen de una matriz para que sea algo distinto de 1. por lo tanto, al igual que el valor de CC en la salida de un FFT está en el bin # 1 en lugar del bin # 0 como debería ser. Hay otras cosas tontas sobre MATLAB (u Octave).
robert bristow-johnson

Respuestas:


9

Personalmente, considero que Python es una de las mejores opciones que existen e hice algo de trabajo en el área de identificación de audio. Le invitamos a comprobar, por ejemplo, mi software para la identificación automática de aves a partir de grabaciones de audio ruidosas: Ornithokrites . El programa es utilizado por el Departamento de Conservación de Nueva Zelanda y están contentos con él. En base a este ejemplo, me gustaría señalar varias ventajas de usar Python:

  1. Enorme comunidad de rápido desarrollo que ofrece toneladas de bibliotecas. SciPy proporciona una gran cantidad de métodos para el procesamiento de señales (concedido, no tantos y maduros como Matlab). Tenga en cuenta que SciPy, aunque es uno de los más importantes, es solo uno de los cientos que pueden ayudarlo en sus esfuerzos. Encontré a Aubio mejor para el análisis musical. Para el reconocimiento de voz y música, seguramente disfrutará de una gran cantidad de funciones de audio que Yaafe puede extraer.
  2. ¡Es gratis! Una vez fuera de la academia, descubres rápidamente que Matlab es bastante caro. E incluso si puede permitírselo, entonces los usuarios de su perspectiva no estarán contentos con esta dependencia. Por ejemplo, el mencionado Departamento de Conservación no aceptaría software privativo.
  3. La identificación a menudo requiere aprendizaje automático y Python tiene un gran conjunto de herramientas para ello: sklearn. Es una biblioteca de vanguardia, y fácil de usar. Eche un vistazo a las competiciones de Kaggle (aprendizaje automático) y compruebe cuántos programadores principales usan Python y sklearn.
  4. Puede administrar "big data". Si desea ejecutar análisis contra grandes bases de datos en red de grabaciones, Python tiene un conjunto de herramientas bien establecido. No creo que Matlab / Octave interactúe fácilmente con, por ejemplo, Hadoop, aunque por favor corríjame si me equivoco. R hace mejor esta área.
  5. Hablando de la interfaz, puede interactuar fácilmente su programa con un sitio web. Esta es la forma en que administro Ornithokrites (reconocimiento de aves): el programa se ejecuta en el servicio de computación en la nube de Amazon Web Services. Excelente si desea proporcionar su software a otras personas que no necesariamente quieren pasar por el procedimiento de instalación de todas las bibliotecas requeridas.

Mi segunda opción sería R. Aunque no es tan rico en funciones como Python, tiene una gran cantidad de bibliotecas útiles (consulte, por ejemplo, seewave para sus aplicaciones). La instalación de ambos en Windows y Linux es pan comido, lo cual es importante si desea que otros usen su programa. Sin embargo, según mi experiencia, la informática de alto rendimiento en R es más difícil, algo importante a tener en cuenta si necesita hacer MUCHO procesamiento e identificación.

Ejemplos de clasificación de música en Python:

Book Building Machine Learning Systems con Python tiene un capítulo sobre clasificación musical

Otras herramientas (la lista no está completa): Python in Music


2

Parece que Python es un lenguaje popular para esto con algunos buenos conjuntos de herramientas basados ​​en el hecho de que bueno ... Lo he visto en uso en algunos departamentos y compañías de tecnología de la música.

En la academia, es muy común ver este tipo de trabajo realizado en Matlab, ya que reúne muchos kits de herramientas potentes (procesamiento de señales, computación paralela, gráficos, utilidades de bases de datos, aprendizaje automático, IA) en un IDE fácil de probar. Sin embargo, cuesta dinero y tiene algunos inconvenientes (no es el mejor lenguaje de programación en términos de diseño y rendimiento de la aplicación, por lo que es principalmente una herramienta de creación de prototipos, pero puede compilarse hasta C). Octave es la alternativa gratuita, pero no puedo garantizar la calidad de las herramientas de procesamiento de señales o el software en sí, ya que no lo he usado.


Gran biblioteca para esto es github.com/worldveil/dejavu . Python, de código abierto, con licencia MIT y hace reconocimiento de audio y huellas digitales.
lollercoaster

scipyEl ecosistema tiene mucha funcionalidad de MATLAB.
Darleison Rodrigues

2

También puede consultar pyAudioAnalysis : combina bibliotecas abiertas para el reconocimiento de patrones y varias implementaciones de funciones de audio. Algunos ejemplos de aplicaciones implementadas en pyAudioAnalysis , que pueden resultar interesantes:

  • eliminación de silencio
  • altavoz diariotion
  • clasificación de segmentos (y entrenamiento) usando SVMs, kNN, etc.
  • clasificación-segmentación conjunta (usando HMM)
  • miniaturas de audio
  • visualización de contenido de audio

0

Puede usar la biblioteca C ++ de análisis de audio de Essentia , que incluye enlaces de python. Aprovecharás todas las ventajas del entorno python / scipy además de muchos algoritmos de análisis de audio / música que vienen con Essentia.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.