Timeside: масштабируемая структура обработки аудио и сервер, записанные на Python
Время - это рамка Python, позволяющая анализировать аудиоуправление низкого и высокого уровня, визуализацию, транскодирование, потоковую передачу и маркировку. Его высокий уровень API предназначен для обеспечения сложной обработки на очень больших наборах данных любых аудио или видео-активов с архитектурой плагина и защищенным масштабируемым бэкэндом.
Введение
По мере увеличения количества онлайн -приложений и наборов данных онлайн, для исследователей и инженеров становится важным для прототипа и тестировать свои собственные алгоритмы как можно быстрее на различных платформах и использования, таких как вычислительная музыкальная музыка и потоковые услуги. С другой стороны, поставщики контента и производители должны улучшить пользовательские возможности на своих платформах с большим количеством метаданных, основанных на истории культуры, а также анализа аудио. Выращивание этих метаданных синхронно с музыкой, опубликованной в Интернете, подразумевает, что системы анализа и хранения могут быть легко обновлены, масштабированы и развернуты.
В этом смысле была разработана Timeside, чтобы предложить онлайн -сервис обработки аудио. Он предоставляет:
- Основной модуль для Python для работы из оболочки или любой другой программы на основе Python
- Веб -сервер для Интернета с RESTFUL API, созданным в верхней части основного модуля, так что веб -разработчики могут затем легко внедрить службу удаленной обработки в свои собственные приложения.
- SDK для JavaScript и основанный на OpenAPI, чтобы легко разработать стороннее приложение, потребляющее сервер API.
Варианты использования
- Асинхронная обработка аудио (фильтрация, анализ функций, машинное обучение и т. Д.)
- Масштабированные и защищенные предоставления данных, обработка и доступ к
- Аудио -плагин -прототипирование
- Аудио визуализация
- По требованию транскодирование и потоковая передача через Интернет
- Усовершенствованный общий аудиоплеер
- Автоматическая сегментация и ручная маркировка синхронизирована с аудио -событиями
Функции
- Сделайте асинхронную и быстрое аудио -обработку с Python,
- Декодировать аудио кадры из любого формата аудио или видео в массивах Numpy,
- Анализ аудио контент с некоторыми современными библиотеками извлечения аудио, таких как Aubio, Yaafe и Vamp, а также некоторые процессоры Pure Python
- Визуализировать звуки с различными модными формами волны, спектрограмм и другими крутыми графствами,
- Аудиоданные транскода в различных форматах медиа и транслируйте их через веб -приложения,
- Сериализовать данные анализа функций через различные портативные форматы,
- Предоставьте источники звука из Plateform, такую как YouTube или Deezer
- Доставить анализ и транскод на предоставленных или загруженных треках через Интернет через API REST
- Воспроизведение и взаимодействовать с спросом через умного расширяемого игрока HTML5 высокого уровня,
- Индекс , теги и аннотируйте аудио -архивы с семантическими метаданными (см. Telemeta, которая встраивает время).
- Развернуть и масштабировать свой собственный механизм обработки аудио через любую инфраструктуру
Финансирование и поддержка
Чтобы финансировать проект и продолжить наш процесс быстрого разработки, нам нужна ваша явная поддержка. Поэтому, если вы используете время в производстве или даже в разработке или экспериментальной настройке, сообщите нам об этом:
- уставившись или разбивая проект на GitHub
- Отбросьте нам электронное письмо по адресу <[email protected]>
Спасибо за вашу помощь и поддержку!
Новости
1.1
- Основной:
- По умолчанию используйте Aubio Decoder, базирующийся в Libav (самый быстрый аудио в Numpy Array Converter на планете!)
- Добавьте анализатор на основе вампиров и несколько плагинов, таких как Vampflatness, Vampcrest, Vamptempo, Vamptuning, Vamppectralcentroid, Vampspectralkurtosis и Vampspectralslope
- Сервер:
- Исправьте много асинхронных проблем обработки: теперь выполняйте все задачи предварительной обработки, обработки и постобработки через работника, включая извлечение источника по потоку с YouTube
- Добавить монитор процесса на основе WebSocket
- Форма волны автоматически обрабатывается на item.save ()
- Сделайте UUID действительно уникальным
- Переупорядочение моделей
- Улучшить модульные тесты
1.0
- Рефакторинг сервера:
- Аудио процесс запускается на элементах (модель REST API Track)
- Несколько инструментов, просмотров, моделей и сериалов
- Схема REST API на спецификации OpenAPI 3 и автоматическом генерации REDOC
- Переместите ядро и сервер от Python 2.7 на 3,7
- Обновление Django до 2.2, Django Rest Framework до 3.11, сельдерея до 4.4
- Добавить декодер на базе Aubio
- Добавить версию и сервер и серверный процесс.
- Перегруппируйте все зависимости от требований PIP, удаляя использование CONDA
- Добавьте класс поставщиков в качестве основного компонента API и в качестве модели API REST
- Добавить плагины поставщика Deezer-Preview, Deezer-Complete и YouTube
- Улучшение серверного тестирования
- Добавить аутентификацию JWT в REST API
- Различные исправления ошибок
- Добавить ядро, сервер и работники журнала
0,9
- Обновить все зависимости от питона
- Добавить вамп, эссенция, яаф, librosa, pytorch, либерации и обертки Tensorflow
- Добавьте несколько анализов плагинов (Essentia Dissonance, Constant Q, Вамп -темп, общая обертка вампировки, общая обертка YAAFE)
- Добавить управление параметрами процессора
- Добавить наследство процессора
- Улучшить игрока HTML5 с разумным потоком данных
- Улучшить API REST и различные сериалы
- Улучшение модульного тестирования
- Различные исправления ошибок
0,8
- Добавьте поддержку Docker для мгновенной установки. Это позволяет запускать время сейчас на любой платформе ОС!
- Добавьте поддержку ноутбука Jupyter для легкого прототипирования, экспериментов и обмена (см. Примеры в DOC).
- Добавьте экспериментальный веб -сервер и API REST на основе Framework Django REST, REDIS и сельдерея. Теперь это предоставляет реальное сервер обработки веб -аудио с высокими возможностями масштабирования благодаря Docker (кластеризация) и сельдерею (многопроцессорная).
- Начните разработку нового интерфейса игрока благодаря Angular и Wavesjs.
- Огромная очистка файлов JS. Пожалуйста, используйте Bower, чтобы получить все зависимости JS, как указано в настройках.
- Добавьте экспорт метаданных в файлы аннотации Elan.
- Исправить и улучшить некоторые структуры данных в контейнерах результатов анализатора.
- Много различных ошибок.
0,7,1
- Исправить версию Django до 1.6.10 (синхронизация с Telemeta 1.5)
0,7
- Рефакторинг кода:
- Создайте новый модуль TimeSide.plugins и перемещайте процессоры в них: timeside.plugins.decoder, Analyzer, timeside.plugins.encoder, timeside.plugins.fx
- Предупреждение: Чтобы правильно управлять структурой пакетов имен, основной модуль TimeSide - это время TimeSide.core и Cod
- TimesIde.Plugins теперь является пакетом пространства имен, позволяющий автоматически подключить внешние плагины в Times (см., Например, TimesDie-Diadems). Теперь это делает Timesside настоящим хостом плагина, да!
- Плагин манекена скоро будет предоставлен для легкого запуска разработки.
- Перемещать все анализаторы, разработанные партнерами проекта Diadems в новый репозиторий: Timeside-Diadems
- Многие исправления для лучшей обработки Travis-Ci
- Добавьте файл DOX для постоянного тестирования здания Docker на различных распределениях
Для старых новостей, пожалуйста, посетите: https://github.com/ircam-wam/timeside/blob/master/news.rst
Документация
- Полная документация: https://timeside.ircam.fr/docs/
- Server Rest API: https://timeside.ircam.fr/api/docs/
- Слайды: https://ircam-wam.github.io/timeside-slides/#1
- Основные учебники: https://timeside.ircam.fr/docs/tutorials/
- Некоторые записные книжки: https://github.com/ircam-wam/timeside/tree/master/docs/ipynb
- Некоторые старые записные книжки: http://mybinder.org/repo/thomasfillon/timeside-demos
- Публикации:
- https://github.com/parisson/telemeta-doc
- https://github.com/ircam-wam/timeside-papers
- Player UI V2: https://github.com/ircam-wam/timeside-player
- Игрок UI v1 Руководство: https://github.com/ircam-wam/timeside/wiki/ui-guide
- Игрок UI v1 Пример: http://archives.crem-cnrs.fr/archives/items/cnrsmh_e_2004_017_001_01/
Установить
Благодаря Docker, Timeside теперь полностью доступна в качестве композиции Docker, готовой к работе. Композиция на основе Docker объединяет некоторые мощные приложения и современные рамки из ящика: Python, Numpy, Jupyter, Gstreamer, Django, сельдерея, Postgresql, Redis, Uwsgi, Nginx и многое другое.
Сначала установите Docker и Docker Compose
Затем клонировать время и запустить:
git clone-рекурсивный https://github.com/ircam-wam/timeside.git
CD Timesdes
Docker Compose -D
Вот и все! Теперь перейдите в раздел : ref: `пользовательские интерфейсы, чтобы увидеть, как его использовать.
Примечание
Чтобы получить техническую поддержку, пожалуйста, обратитесь к команде разработчиков. Если вам нужно использовать время за пределами изображения Docker, обратитесь к правилам Dockerfile, основанного на стабильной системе Debian. Мы не будем предоставлять никакой свободной поддержки в этом патикулярном использовании за пределами оригинального контейнера Docker.
Спонсоры и партнеры
- Ircam (Париж, Франция)
- Париссон (Париж, Франция)
- CNRS: Национальный центр научных исследований (Франция)
- Huma-Num: оборудование больших данных для цифровых гуманитарных наук (CNRS, Франция)
- Крем: Французский национальный центр исследований в области стихийкологии (Франция)
- Université Pierre et Marie Curie (UPMC Paris, Франция)
- ANR: Agence Nationale de la Recherche (Франция)
- MNHN: музейный национальный D'Istoire Naturelle (Париж, Франция)
- C4DM: Центр цифровой музыки, Университет королевы Мэри (Лондон, Великобритания)
- Нью -Йорк Стейнхардт: Профессия по музыкальному и исполнению, Нью -Йоркский университет (Нью -Йорк, США)
Связанные проекты
- Telemeta: открытая веб -аудио платформа
- Звуковые архивы CNRS, CREM и «Музей -де -хмм» в Париже, Франция
- Diadems спонсируется ANR.
- Dacaryh, Data Science для изучения Calypso-Rhythm через историю
- Kamoulox онлайн смешивание крупных исторических архивов
- NYU+CREM+Parisson: анализ арабской музыки из базы данных полной CREM
- Wasabi: веб -аудио семантическое агрегирован в браузере для индексации, спонсируемое ANR
- Время-игрока v2
- Время-sdk-js
Ссылки
- Алин Менин, Мишель Баффа, Маруа Тикат, Бенджамин Молинет, Гийом Пеллерн, Лорат Поттиер, Франк Мишель и Марко Винклер. (2022, 28 июня). Покрементная и мультимодальная визуализация дискографии: изучение базы знаний Wasabi Music. Веб -аудио конференция 2022 (WAC 2022), Канны, Франция. https://doi.org/10.5281/zenodo.6767530
- Гийом Пеллерин и Пол Броссиер. (2022). Timeside API как веб -сервис обработки аудио [набор данных]. Веб -аудио конференция 2022 (WAC 2022), Канны, Франция. Зенодо. https://doi.org/10.5281/zenodo.6769477
- Филлон и Г. Пеллерин. Совместная веб -платформа для управления и анализом звуковых архивов. В материалах 3 -й веб -аудио конференции, Лондон, стр. 43. Лондонский университет королевы Мэри, август 2017 года.
Авторские права
- Copyright (C) 2019, 2023 Ircam
- Copyright (C) 2006, 2023 Гийом Пеллерин
- Copyright (C) 2022, 2023 Гийом Piccarreta
- Copyright (C) 2010, 2022 Paul Brossier
- Авторские права (C) 2020, 2021 год Ромбер Гербелло
- Copyright (C) 2019, 2020 Antoine Grandry
- Copyright (C) 2006, 2019 Parisson Sarl
- Copyright (C) 2013, 2017 Томас Филлон
- Copyright (C) 2013, 2014 Maxime Lecoz
- Copyright (C) 2013, 2014 Дэвид Духан
- Copyright (C) 2006, 2010 Olivier Guilardi
Лицензия
Timesside - это бесплатное программное обеспечение: вы можете перераспределить его и/или изменить его в соответствии с условиями общей публичной лицензии GNU Affero, опубликованных Фондом Free Software, либо версией 3 лицензии, либо (по варианту) любой более поздней версии.
Время распределяется в надежде, что это будет полезно, но без каких -либо гарантий; даже без подразумеваемой гарантии торговой точки зрения или пригодности для определенной цели. Смотрите общую публичную лицензию GNU Affero для получения более подробной информации.
Прочитайте файл Licene.txt для получения более подробной информации.