Tiempo de tiempo: marco de procesamiento de audio escalable y servidor escrito en Python
Timeside es un marco de Python que permite un análisis de audio de bajo y alto nivel, imágenes, transcodificación, transmisión y etiquetado. Su API de alto nivel está diseñada para habilitar un procesamiento complejo en conjuntos de datos muy grandes de cualquier activo de audio o video con una arquitectura enchufable y un backend escalable seguro.
Introducción
A medida que aumenta el número de aplicaciones de audio en línea y conjuntos de datos, se vuelve crucial para los investigadores e ingenieros poder prototipos y probar sus propios algoritmos lo más rápido posible en varias plataformas y casos usitarios como la musicología computacional y los servicios de transmisión. Por otro lado, los proveedores de contenido y los productores deben mejorar las experiencias de los usuarios en sus plataformas con más metadatos basados en la historia cultural, pero también los análisis de características de audio. El crecimiento de esos metadatos sincrónicamente con la música publicada en Internet implica que los sistemas de análisis y almacenamiento pueden actualizarse, escalar e implementar fácilmente.
El horario se ha desarrollado en este sentido para proponer un servicio de procesamiento de audio en línea. Proporciona:
- Un módulo central para que Python funcione desde un shell o cualquier otro programa basado en Python
- Un servidor web para la web con una API RESTful creada sobre el módulo central para que los desarrolladores web puedan incrustar fácilmente el servicio de procesamiento remoto en sus propias aplicaciones.
- Un SDK para JavaScript y basado en OpenAPI para desarrollar fácilmente una aplicación de terceros que consume la API del servidor.
Casos de uso
- Procesamiento de audio asincrónico (filtrado, análisis de características, aprendizaje automático, etc.)
- Aprovisionamiento de datos escala y asegurada
- Prototipos de complementos de audio
- Visualización de audio
- Transcodificación y transmisión a pedido en la web
- Reproductor de audio compartido mejorado
- Segmentación automática y etiquetado manual sincronizado con eventos de audio
Características
- Hacer un procesamiento de audio asíncrono y rápido con Python,
- Decode marcos de audio desde cualquier formato de audio o medios de video en matrices numpy,
- Analice el contenido de audio con algunas bibliotecas de extracción de funciones de audio de última generación como Aubio, Yaafe y VAMP, así como algunos procesadores de Python puros
- Visualice los sonidos con varias formas de onda elegantes, espectrogramas y otros gráficos fríos,
- Transcode los datos de audio en varios formatos de medios y transmitirlos a través de aplicaciones web,
- Serializar datos de análisis de características a través de varios formatos portátiles,
- Proporcionar fuentes de audio desde PlateForm como YouTube o Deezer
- Entregue análisis y transcode en pistas proporcionadas o cargadas en la web a través de una API REST
- Reproducir e interactuar a pedido a través de un jugador extensible HTML5 de alto nivel inteligente,
- Index , etiqueta y anotan archivos de audio con metadatos semánticos (ver Telemeta que incrusta el horario).
- Implemente y escala su propio motor de procesamiento de audio a través de cualquier infraestructura
Financiación y apoyo
Para financiar el proyecto y continuar nuestro rápido proceso de desarrollo, necesitamos su soporte explícito. Entonces, si usa horario en la producción o incluso en una configuración de desarrollo o experimental, háganoslo saber por:
- Mirando o bifurcando el proyecto en Github
- Dejarnos un correo electrónico a <[email protected]>
¡Gracias por su ayuda y apoyo!
Noticias
1.1
- Centro:
- Use el decodificador de Aubio basado en Libav de forma predeterminada (¡el convertidor de matriz más rápido de audio a Numpy en el planeta!)
- Agregue un analizador basado en VAMP y algunos complementos como Vampflatness, Vampcrest, Vampptempo, Vampptuning, VampspectralCentroid, Vampspectralkurtosis y VampspectralSlope
- Servidor:
- Arregle muchos problemas de procesamiento asincrónico: ahora realice todas las tareas de preprocesamiento, procesamiento y postprocesamiento a través del trabajador, incluida la obtención de la corriente de fuente desde YouTube
- Agregue un monitor de proceso basado en WebSocket
- WaveForm procesada automáticamente en item.save ()
- Hacer uuid realmente único
- Reordenamiento de modelos
- Mejorar las pruebas unitarias
1.0
- Refactorización del servidor:
- Proceso de audio Ejecute en elementos (modelo de pista de REST API)
- Varias herramientas, vistas, modelos y serializadores
- Esquema de REST API en la especificación de OpenAPI 3 y la generación automática de redoc
- Mueva el núcleo y el servidor de Python 2.7 a 3.7
- Actualizar Django a 2.2, Django Rest Framework a 3.11, apio a 4.4
- Agregue un decodificador basado en Aubio
- Agregue el tiempo de ejecución de la versión y el proceso del servidor de los procesadores de núcleo y del servidor '
- Reagrupar todas las dependencias de los requisitos de PIP El uso de condena
- Agregar clase de proveedor como componente API central y como modelo API REST
- Agregar complementos de proveedor Deezer-Preview, Deezer-Complete y YouTube
- Mejorar las pruebas de la unidad del servidor
- Agregar autenticación JWT en REST API
- Varias correcciones de errores
- Agregar registro de núcleo, servidor y trabajadores
0.9
- Actualizar todas las dependencias de Python
- Agregar Vamp, Essentia, Yaafe, Librosa, Pytorch, TensorFlow Libs y envolturas
- Agregue algunos complementos de análisis (disonancia de essentia, vampiro constante Q, tempo de vampiros, envoltura general de vampiros, envoltura general yaafe)
- Agregar gestión de parámetros del procesador
- Agregar herencia del procesador
- Mejorar el reproductor HTML5 con una transmisión de datos inteligente
- Mejorar la API REST y varios serialzers
- Mejorar las pruebas unitarias
- Varias correcciones de errores
0.8
- Agregue el soporte Docker para la instalación instantánea. ¡Esto permite ejecutar horarios ahora en cualquier plataforma del sistema operativo!
- Agregue el soporte del cuaderno de Jupyter para una fácil prototipos, experimentar y compartir (consulte los ejemplos en el documento).
- Agregue un servidor web experimental y una API REST basada en Django REST Framework, Redis y Celery. Esto ahora proporciona un servidor de procesamiento de audio web real con altas capacidades de escala gracias a Docker (clúster) y apio (multiprocesamiento).
- Comience el desarrollo de una nueva interfaz de jugador gracias a Angular y Wavesjs.
- Enorme limpieza de archivos JS. Ahora use Bower para obtener todas las dependencias JS como se enumeran en la configuración.
- Agregue la exportación de metadatos a los archivos de anotación Elan.
- Arregle y mejore algunas estructuras de datos en los contenedores de resultados del analizador.
- Muchas variedades de errores.
0.7.1
- Corrija la versión de Django a 1.6.10 (sincronizado con Telemeta 1.5)
0.7
- Refactorización de código:
- Cree un nuevo módulo Timeside.plugins y mueva procesadores en el mismo: Timeside.plugins.Decoder, Analyzer, Timeside.plugins.encoder, Timeside.plugins.fx
- Advertencia: para administrar adecuadamente la estructura de los paquetes del espacio de nombres, el módulo principal de Timeside ahora es Timeside. Core y el código ahora deben inicializarse con Timeside de importación.
- Timeside.Plugins ahora es un paquete de espacio de nombres que permite que los complementos externos se conecten automáticamente al horario de tiempo (ver, por ejemplo, Timeside-Diadems). Esto ahora hace que el horario de tiempo sea un host de complemento real , ¡sí!
- Pronto se proporcionará un complemento de horario ficticio para un inicio de desarrollo fácil.
- Mueva a todos los analizadores desarrollados por los socios del proyecto Diadems a un nuevo repositorio: Timeside-Diadems
- Muchas correcciones para un mejor procesamiento por Travis-Ci
- Agregue un archivo DOX para probar el edificio Docker continuamente en varias distribuciones
Para noticias más antiguas, visite: https://github.com/ircam-wam/timeside/blob/master/news.rst
Documentación
- Documentación completa: https://timeside.ircam.fr/docs/
- API REST del servidor: https://timeside.ircam.fr/api/docs/
- Diapositivas: https://ircam-wam.github.io/timeside-slides/#1
- Tutoriales principales: https://timeside.ircam.fr/docs/tutorials/
- Algunos cuadernos: https://github.com/ircam-wam/timeside/tree/master/docs/ipynb
- Algunos cuadernos más antiguos: http://mybinder.org/repo/thomasfillon/timeside-demos
- Publicaciones:
- https://github.com/parisson/telemeta-doc
- https://github.com/ircam-wam/timeside-papers
- Player UI V2: https://github.com/ircam-wam/timeside-player
- Guía de UI V1 de Player: https://github.com/ircam-wam/timeside/wiki/ui-guide
- Player UI V1 Ejemplo: http://archives.crem-cnrs.fr/archives/items/cnrsmh_e_2004_017_001_01/
Instalar
Gracias a Docker, Timeside ahora está completamente disponible como composición de Docker lista para trabajar. La composición basada en Docker incluye algunas aplicaciones poderosas y marcos modernos fuera de la caja como: Python, Numpy, Jupyter, Gstreamer, Django, Ceyery, PostgreSQL, Redis, Uwsgi, Nginx y más.
Primero, instalar Docker y Docker componen
Luego cloned horario y comenzar:
Git Clone ---RECURSIVE https://github.com/ircam-wam/timeside.git
horario de CD
Docker componiendo up -d
¡Eso es todo! Ahora vaya a la sección : Ref: `Interfaces de usuario` para ver cómo usarla.
Nota
Para obtener soporte técnico, comuníquese con el equipo de desarrollo. Si necesita usar horario fuera de una imagen de Docker, consulte las reglas del DockerFile que se basa en un sistema estable Debian. No proporcionaremos ningún tipo de soporte gratuito en este Paticular Usecase fuera del contenedor Docker original.
Patrocinadores y socios
- Ircam (París, Francia)
- Parisson (París, Francia)
- CNRS: Centro Nacional de Investigación de Ciencias (Francia)
- Huma-Num: Equipo de big data para humanidades digitales (CNRS, Francia)
- Crem: Centro Nacional Francés de Investigación de Etomusicología (Francia)
- Université Pierre et Marie Curie (UPMC Paris, Francia)
- ANR: Agence Nationale de la Recherche (Francia)
- MNHN: Museum National d'Histroire Naturelle (París, Francia)
- C4DM: Centro de música digital, Universidad Queen Mary (Londres, Reino Unido)
- NYU Steinhardt: Profesiones de música y artes escénicas, Universidad de Nueva York (Nueva York, EE. UU.)
Proyectos relacionados
- Telemeta: Abra la plataforma de audio web
- Archivos de sonido de los CNR, Crem y el "Musée de L'Homme" en París, Francia
- Diadems patrocinadas por el ANR.
- Dacaryh, Data Science para el estudio de calipso-ritmo a través de la historia
- Kamoulox en línea Desencadenación de grandes archivos históricos
- NYU+Crem+Parisson: análisis de música árabe de la base de datos CREM completa
- Wasabi: Web Audio Semántico agregado en el navegador para la indexación, patrocinado por el ANR
- jugador de horario v2
- horario-sdk-js
Referencias
- Aline Menin, Michel Buffa, Maroua Tikat, Benjamin Molinet, Guillaume Pellerin, Laurent Pottier, Franck Michel y Marco Winckler. (2022, 28 de junio). Visualización incremental y multimodal de discografías: explorando la base de conocimiento de la música wasabi. Conferencia de audio web 2022 (WAC 2022), Cannes, Francia. https://doi.org/10.5281/zenodo.6767530
- Guillaume Pellerin y Paul Brossier. (2022). Timeside API como un servicio web de procesamiento de audio [conjunto de datos]. Conferencia de audio web 2022 (WAC 2022), Cannes, Francia. Zenodo. https://doi.org/10.5281/zenodo.6769477
- Fillon y G. Pellerin. Una plataforma web colaborativa para la gestión y análisis de archivos de sonido. En Actas de la 3rd Web Audio Conference, Londres, página 43. Queen Mary University of London, agosto de 2017.
Derechos de autor
- Copyright (c) 2019, 2023 Ircam
- Copyright (c) 2006, 2023 Guillaume Pellerin
- Copyright (c) 2022, 2023 Guillaume Piccarreta
- Copyright (c) 2010, 2022 Paul Brossier
- Copyright (c) 2020, 2021 Romain Herbeleau
- Copyright (c) 2019, 2020 Antoine Grandry
- Copyright (c) 2006, 2019 Parisson Sarl
- Copyright (c) 2013, 2017 Thomas Fillon
- Copyright (c) 2013, 2014 Maxime LeCoz
- Copyright (c) 2013, 2014 David Doukhan
- Copyright (c) 2006, 2010 Olivier Guilyardi
Licencia
Timeside es el software gratuito: puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de Affero de GNU, publicada por la Free Software Foundation, ya sea la versión 3 de la licencia o (a su opción) cualquier versión posterior.
El horario se distribuye con la esperanza de que sea útil, pero sin ninguna garantía; Sin siquiera la garantía implícita de comerciabilidad o estado físico para un propósito particular. Consulte la Licencia Pública General GNU Affero para obtener más detalles.
Lea el archivo License.txt para obtener más detalles.