Timeside : Python으로 작성된 확장 가능한 오디오 처리 프레임 워크 및 서버
Timeside는 낮고 높은 수준의 오디오 분석, 이미징, 트랜스 코딩, 스트리밍 및 라벨링을 가능하게하는 Python 프레임 워크입니다. 고급 API는 플러그인 아키텍처와 보안 확장 가능한 백엔드를 갖춘 모든 오디오 또는 비디오 자산의 매우 큰 데이터 세트에서 복잡한 처리를 가능하게하도록 설계되었습니다.
소개
온라인 오디오 애플리케이션 및 데이터 세트의 수가 증가함에 따라 연구원과 엔지니어는 계산 음악 및 스트리밍 서비스와 같은 다양한 플랫폼 및 usecase에서 가능한 한 빠르게 자체 알고리즘을 프로토 타입하고 테스트 할 수 있어야합니다. 다른 한편으로, 컨텐츠 제공 업체와 생산자는 문화사와 오디오 기능 분석을 기반으로 더 많은 메타 데이터를 통해 플랫폼에서 사용자 경험을 향상시켜야합니다. 인터넷에 게시 된 음악과 동시에 메타 데이터를 키우면 분석 및 스토리지 시스템을 쉽게 업데이트, 스케일링 및 배포 할 수 있음을 의미합니다.
Timeside는 온라인 오디오 처리 서비스를 제안하기 위해 이러한 의미에서 개발되었습니다. 그것은 제공합니다 :
- 파이썬이 쉘 또는 기타 Python 기반 프로그램에서 작동하는 핵심 모듈
- 웹 개발자가 원격 처리 서비스를 자체 애플리케이션에 쉽게 포함시킬 수 있도록 핵심 모듈 위에 구축 된 편안한 API가있는 웹 서버 .
- JavaScript 및 OpenApi를 기반으로 SDK는 서버 API를 소비하는 타사 응용 프로그램을 쉽게 개발합니다.
사용 사례
- 비동기 오디오 처리 (필터링, 기능 분석, 기계 학습 등)
- 데이터 프로비저닝, 처리 및 액세스가 확장되고 안전합니다
- 오디오 플러그인 프로토 타이핑
- 오디오 시각화
- 웹을 통해 주문형 트랜스 코딩 및 스트리밍
- 공유 오디오 플레이어 향상
- 오디오 이벤트와 동기화 된 자동 세분화 및 수동 레이블
특징
- Python을 사용하여 비동기 및 빠른 오디오 처리를 수행하십시오 .
- 모든 오디오 또는 비디오 미디어 형식에서 Numpy Array로 오디오 프레임을 디코딩하여
- Aubio, Yaafe 및 Vamp와 같은 일부 최첨단 오디오 기능 추출 라이브러리 및 일부 순수한 Python 프로세서로 오디오 콘텐츠 분석
- 다양한 멋진 파형, 스펙트로 그램 및 기타 멋진 그래퍼로 사운드를 시각화합니다 .
- 다양한 미디어 형식의 오디오 데이터를 트랜스 코드 하고 웹 앱을 통해 스트리밍합니다.
- 다양한 휴대용 형식을 통해 기능 분석 데이터를 직렬화하고
- YouTube 또는 Deezer와 같은 Plateform의 오디오 소스를 제공하십시오
- REST API를 통해 웹을 통해 제공되거나 업로드 된 트랙에서 분석 및 트랜스 코드를 전달합니다 .
- 스마트 한 고급 HTML5 Extensible Player를 통해 주문 을 재생 하고 상호 작용합니다 .
- 시맨틱 메타 데이터를 갖춘 인덱스 , 태그 및 주석 오디오 아카이브 (TimeSide를 포함시키는 텔레 메타 참조).
- 모든 인프라를 통해 자체 오디오 처리 엔진을 배포 하고 확장하십시오 .
자금 지원 및 지원
프로젝트에 자금을 지원하고 빠른 개발 프로세스를 계속하려면 명시 적 지원이 필요합니다. 따라서 생산 또는 개발 또는 실험 설정에서 Timeside를 사용하는 경우 다음과 같이 알려주십시오.
도움과 지원에 감사드립니다!
소식
1.1
- 핵심:
- 기본적으로 Libav 기반 Aubio 디코더를 사용하십시오 (지구상에서 가장 빠른 오디오에서 Numpy Array Converter!)
- 뱀파이어 기반 분석기 및 vampflatness, vampcrest, vamptempo, vamptuning, vampspectralcentroid, vampspectalkurtosis 및 vampspectralslope와 같은 몇 가지 플러그인 추가
- 섬기는 사람:
- 많은 비동기 처리 문제 해결 : 이제 YouTube의 소스 스트림 페치를 포함하여 작업자를 통해 모든 사전 처리, 처리 및 후 처리 작업을 수행하십시오.
- WebSocket을 기반으로 프로세스 모니터를 추가하십시오
- item.save ()에서 자동으로 처리 된 파형
- UUID를 정말 독특하게 만듭니다
- 재주문 모델
- 단위 테스트를 개선합니다
1.0
- 서버 리팩토링 :
- 항목에서 오디오 프로세스 실행 (REST API 트랙의 모델)
- 몇 가지 도구, 뷰, 모델 및 직렬 제
- OpenAPI 3 사양 및 자동 식용 개혁 생성에 대한 API 스키마를 REST
- 코어와 서버를 Python 2.7에서 3.7로 이동하십시오
- Django를 2.2로 업그레이드, Django Rest 프레임 워크, 3.11, Celery ~ 4.4
- Aubio 기반 디코더를 추가하십시오
- 코어 및 서버 프로세서의 버전 작성 및 서버 프로세스 '실행 시간 추가
- Conda 사용을 제거하는 PIP 요구 사항에 대한 모든 종속성을 다시 그룹화하십시오
- 제공자 클래스 추가 핵심 API 구성 요소 및 REST API 모델로 추가
- 공급자 플러그인 Deezer-Preview, Deezer-Complete 및 YouTube를 추가하십시오
- 서버 장치 테스트를 개선합니다
- REST API에 JWT 인증을 추가하십시오
- 다양한 버그 수정
- 코어, 서버 및 작업자 로깅을 추가하십시오
0.9
- 모든 파이썬 종속성을 업그레이드하십시오
- Vamp, Essentia, Yaafe, Librosa, Pytorch, Tensorflow Libs and Waprers 추가
- 몇 가지 분석 플러그인 추가 (Essentia Dissonance, Vamp Constant Q, Vamp Tempo, Vamp General Wrapper, Yaafe General Wrapper)
- 프로세서 매개 변수 관리를 추가합니다
- 프로세서 상속을 추가하십시오
- 영리한 데이터 스트리밍으로 HTML5 플레이어를 향상시킵니다
- REST API 및 다양한 세리어 질을 개선하십시오
- 단위 테스트를 개선하십시오
- 다양한 버그 수정
0.8
- 즉각적인 설치에 대한 Docker 지원을 추가하십시오. 이것은 모든 OS 플랫폼에서 Timeside를 실행할 수 있습니다!
- 쉬운 프로토 타이핑, 실험 및 공유를 위해 Jupyter 노트북 지원을 추가하십시오 (DOC의 예 참조).
- 실험 웹 서버를 추가하고 Django Rest 프레임 워크, Redis 및 Celery를 기반으로 API를 REST API를 추가하십시오. 이것은 Docker (클러스터링) 및 Celery (멀티 프로세싱) 덕분에 높은 스케일링 기능을 갖춘 실제 웹 오디오 처리 서버를 제공합니다.
- Angular 및 Wavesjs 덕분에 새로운 플레이어 인터페이스 개발을 시작하십시오.
- JS 파일의 엄청난 정리. 이제 Bower를 사용하여 설정에 나열된 모든 JS 종속성을 얻으십시오.
- Elan 주석 파일에 메타 데이터 내보내기를 추가하십시오.
- 분석기 결과 컨테이너의 일부 데이터 구조를 수정하고 개선하십시오.
- 많은 버그 수정.
0.7.1
- Django 버전을 1.6.10으로 수정하십시오 (Telemeta 1.5와 동기화)
0.7
- 코드 리팩토링 :
- 새 모듈 Timeside.plugins 및 이동 프로세서를 작성하십시오 : Timeside.plugins.decoder, Analyzer, Times.Plugins.encoder, Timeside.plugins.fx
- 경고 : 네임 스페이스 패키지 구조를 올바르게 관리하려면 Timeside Main 모듈은 이제 Timeside입니다. 코어 및 코드는 이제 import Timeside.core로 초기화해야합니다.
- Times.plugins는 이제 외부 플러그인을 Timeside에 자동으로 연결할 수있는 네임 스페이스 패키지입니다 (예 : Timeside-Diadems 참조). 이것은 이제 Timeside가 실제 플러그인 호스트로 만듭니다.
- 더미 타임즈 플러그인이 곧 개발 시작을 위해 곧 제공 될 것입니다.
- Diadems Project의 파트너가 개발 한 모든 분석기를 새로운 저장소로 옮기십시오 : 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/timesside-slides/#1
- 핵심 튜토리얼 : https://timeside.ircam.fr/docs/tutorials/
- 일부 노트 : https://github.com/ircam-wam/timesside/tree/master/docs/ipynb
- 일부 오래된 노트 : http://mybinder.org/repo/thomasfillon/timeside-demos
- 간행물 :
- https://github.com/parisson/telemeta-doc
- https://github.com/ircam-wam/timesside-papers
- 플레이어 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 Composition으로 완전히 사용할 수 있습니다. Docker 기반 구성은 Python, Numpy, Jupyter, Gstreamer, Django, Celery, Postgresql, Redis, UWSGI, Nginx 등의 강력한 응용 프로그램과 현대적인 프레임 워크를 묶습니다.
먼저 Docker와 Docker Compose를 설치하십시오
그런 다음 Timeside를 복제하고 시작하십시오.
git 클론-recursive https://github.com/ircam-wam/timeside.git
CD 타임 사이드
Docker Compose Up -D
그게 다야! 이제 : ref :`사용자 인터페이스 ' 섹션으로 이동하여 사용 방법을 확인하십시오.
메모
기술 지원을 받으려면 개발 팀에 도달하십시오. Docker 이미지 외부에서 Timeside를 사용해야하는 경우 Debian 안정 시스템을 기반으로하는 Dockerfile의 규칙을 참조하십시오. 우리는 원래의 Docker 컨테이너 외부 의이 부패한 usecase에서 어떤 종류의 무료 지원을 제공하지 않을 것입니다.
후원자 및 파트너
- Ircam (파리, 프랑스)
- 파리슨 (프랑스 파리)
- CNRS : National Center of Science Research (프랑스)
- HUMA-NUM : 디지털 인문학을위한 빅 데이터 장비 (CNRS, 프랑스)
- CREM : 프랑스 국립 이민체학 연구 센터 (프랑스)
- Université Pierre et Marie Curie (UPMC 파리, 프랑스)
- ANR : Agence Nationale de la Recherche (프랑스)
- MNHN : Museum National D 'Histoire Naturelle (파리, 프랑스)
- C4DM : Queen Mary University의 디지털 음악 센터 (런던, 영국)
- NYU Steinhardt : 음악 및 공연 예술 직업, 뉴욕 대학교 (뉴욕, 미국)
관련 프로젝트
- Telemeta : 오픈 웹 오디오 플랫폼
- 프랑스 파리의 CNRS, Crem 및 "Musée de L 'Homme"의 사운드 아카이브
- ANR이 후원하는 Diadems.
- Dacaryh, 역사를 통한 Calypso-Rhythm 연구를위한 데이터 과학
- Kamoulox 온라인 대형 역사적 아카이브의 믹싱
- NYU+Crem+Parisson : 전체 Crem 데이터베이스의 아랍어 음악 분석
- WASABI : ANR이 후원하는 인덱스 브라우저에서 집계 된 웹 오디오 시맨틱
- 타임즈 플레이어 v2
- TIMESIDE-SDK-JS
참조
- Aline Menin, Michel Buffa, Maroua Tikat, Benjamin Molinet, Guillaume Pellerin, Laurent Pottier, Franck Michel 및 Marco Winckler. (2022 년 6 월 28 일). Discographies의 증분 및 멀티 모달 시각화 : Wasabi Music Knowledge Base 탐색. 웹 오디오 컨퍼런스 2022 (WAC 2022), 칸, 프랑스. https://doi.org/10.5281/zenodo.6767530
- Guillaume Pellerin, & Paul Brossier. (2022). 오디오 처리 웹 서비스 [데이터 세트]로서 Timeside API. 웹 오디오 컨퍼런스 2022 (WAC 2022), 칸, 프랑스. 제노도. https://doi.org/10.5281/zenodo.6769477
- Fillon과 G. Pellerin. 사운드 아카이브 관리 및 분석을위한 협업 웹 플랫폼. 2017 년 8 월 런던 퀸 메리 대학교 런던 런던 3 차 웹 오디오 컨퍼런스 절차.
저작권
- 저작권 (C) 2019, 2023 Ircam
- Copyright (C) 2006, 2023 Guillaume Pellerin
- 저작권 (C) 2022, 2023 Guillaume Piccarreta
- 저작권 (C) 2010, 2022 Paul Brossier
- 저작권 (C) 2020, 2021 Romain Herbelleau
- Copyright (C) 2019, 2020 Antoine Grandry
- Copyright (C) 2006, 2019 Parisson Sarl
- 저작권 (C) 2013, 2017 Thomas Fillon
- 저작권 (C) 2013, 2014 Maxime Lecoz
- 저작권 (C) 2013, 2014 David Doukhan
- Copyright (C) 2006, 2010 Olivier Guilyardi
특허
Timeside는 무료 소프트웨어입니다 : Free Software Foundation, 라이센스의 버전 3 또는 이후 버전에서 게시 한 GNU Affero General Public License의 조건에 따라 재분배 및/또는 수정할 수 있습니다.
Timeside는 유용 할 것이지만 보증이 없다는 희망으로 배포됩니다. 상업성 또는 특정 목적에 대한 적합성에 대한 묵시적 보증조차 없습니다. 자세한 내용은 GNU Affero 일반 공개 라이센스를 참조하십시오.
자세한 내용은 License.txt 파일을 읽으십시오.