Timeside: Kerangka kerja pemrosesan audio yang dapat diskalakan dan server yang ditulis dalam Python
Timeside adalah kerangka kerja Python yang memungkinkan analisis audio, pencitraan, transkode, streaming, dan pelabelan tingkat rendah dan tinggi. API tingkat tinggi dirancang untuk memungkinkan pemrosesan yang kompleks pada kumpulan data yang sangat besar dari aset audio atau video apa pun dengan arsitektur plug-in dan backend yang dapat diskalakan.
Perkenalan
Ketika jumlah aplikasi audio online dan dataset meningkat, menjadi penting bagi para peneliti dan insinyur untuk dapat membuat prototipe dan menguji algoritma mereka sendiri secepat mungkin pada berbagai platform dan usecases seperti musikologi komputasi dan layanan streaming. Di sisi lain, penyedia konten dan produsen perlu meningkatkan pengalaman pengguna di platform mereka dengan lebih banyak metadata berdasarkan sejarah budaya tetapi juga analisis fitur audio. Menumbuhkan metadata yang secara serempak dengan musik yang diterbitkan di internet menyiratkan bahwa sistem analisis dan penyimpanan dapat dengan mudah diperbarui, diskalakan, dan digunakan.
Timeside telah dikembangkan dalam pengertian ini untuk mengusulkan layanan pemrosesan audio online. Itu menyediakan:
- modul inti untuk python untuk bekerja dari shell atau program berbasis ularin lainnya
- Server web untuk web dengan API yang tenang dibangun di atas modul inti sehingga pengembang web kemudian dapat dengan mudah menyematkan layanan pemrosesan jarak jauh ke dalam aplikasi mereka sendiri.
- SDK untuk JavaScript dan berdasarkan OpenAPI untuk dengan mudah mengembangkan aplikasi pihak ketiga yang mengkonsumsi API server.
Menggunakan kasus
- Pemrosesan audio asinkron (penyaringan, analisis fitur, pembelajaran mesin, dll)
- Penyediaan data, pemrosesan, dan mengakses data yang diskalakan dan aman
- Prototipe plugin audio
- Visualisasi audio
- Transcoding dan streaming on-demand melalui web
- Pemain audio bersama yang ditingkatkan
- Segmentasi otomatis dan pelabelan manual yang disinkronkan dengan acara audio
Fitur
- Lakukan pemrosesan audio yang tidak sinkron dan cepat dengan python,
- Decode frame audio dari format media audio atau video apa pun menjadi array numpy,
- Menganalisis konten audio dengan beberapa perpustakaan ekstraksi fitur audio canggih seperti Aubio, Yaafe dan Vamp serta beberapa prosesor Python murni
- Visualisasikan suara dengan berbagai bentuk gelombang mewah, spektrogram dan grapher keren lainnya,
- Transcode Audio Data dalam berbagai format media dan streaming melalui aplikasi web,
- Serialisasi data analisis fitur melalui berbagai format portabel,
- Menyediakan sumber audio dari Platform seperti YouTube atau Deezer
- Memberikan analisis dan transkode pada trek yang disediakan atau diunggah melalui web melalui REST API
- Pemutaran dan berinteraksi sesuai permintaan melalui pemutar ekstensif HTML5 tingkat tinggi yang cerdas,
- Indeks , tag , dan annotate arsip audio dengan metadata semantik (lihat Telemeta yang menyematkan timeside).
- Menyebarkan dan skala mesin pemrosesan audio Anda sendiri melalui infrastruktur apa pun
Pendanaan dan dukungan
Untuk mendanai proyek dan melanjutkan proses pengembangan cepat kami, kami membutuhkan dukungan eksplisit Anda. Jadi, jika Anda menggunakan timeside dalam produksi atau bahkan dalam pengembangan atau pengaturan eksperimental, beri tahu kami dengan:
Terima kasih atas bantuan dan dukungan Anda!
Berita
1.1
- Inti:
- Gunakan Aubio Decoder berbasis Libav secara default (audio tercepat ke Numpy Array Converter di planet ini!)
- Tambahkan penganalisa berbasis vamp dan beberapa plugin seperti vampflatness, vampcrest, vamptempo, vamptuning, vampspectralcentroid, vampspectralkurtosis dan vampspectralslope
- Server:
- Perbaiki banyak masalah pemrosesan asinkron: Sekarang lakukan setiap tugas pra-pemrosesan, pemrosesan, dan pasca pemrosesan melalui pekerja termasuk aliran sumber yang diambil dari YouTube
- Tambahkan monitor proses berdasarkan Websocket
- Bentuk gelombang diproses secara otomatis pada item.save ()
- Membuat uuid benar -benar unik
- Model pemesanan ulang
- Tingkatkan tes unit
1.0
- Refactoring server:
- Proses audio dijalankan pada item (model REST API Track)
- Beberapa alat, tampilan, model dan serialzer
- Skema REST API tentang OpenAPI 3 Spesifikasi dan Generasi Redoc Otomatis
- Pindahkan inti dan server dari Python 2.7 ke 3.7
- Tingkatkan Django ke 2.2, Django Rest Framework ke 3.11, seledri ke 4.4
- Tambahkan dekoder berbasis Aubio
- Tambahkan waktu menjalankan inti dan prosesor server
- Mengatur semua dependensi pada persyaratan PIP menghilangkan penggunaan Conda
- Tambahkan kelas penyedia sebagai komponen API inti dan sebagai model API REST
- Tambahkan plugin penyedia deezer-preview, deezer-complete dan youtube
- Tingkatkan Pengujian Unit Server
- Tambahkan Otentikasi JWT di REST API
- Berbagai perbaikan bug
- Tambahkan inti, server dan pekerja logging
0.9
- Tingkatkan semua dependensi Python
- Tambahkan Vamp, Essentia, Yaafe, Librosa, Pytorch, Tensorflow Libs and Wrappers
- Tambahkan beberapa plugin analisis (Disonansi Essentia, Vamp Konstanta Q, VAMP Tempo, Pembungkus Umum VAMP, Pembungkus Umum Yaafe)
- Tambahkan Manajemen Parameter Prosesor
- Tambahkan warisan prosesor
- Tingkatkan HTML5 Player dengan streaming data yang cerdas
- Tingkatkan API REST dan berbagai serialzer
- Tingkatkan pengujian unit
- Berbagai perbaikan bug
0.8
- Tambahkan dukungan Docker untuk instalasi instan. Ini memungkinkan untuk menjalankan Timeside sekarang di platform OS apa pun !
- Tambahkan dukungan notebook Jupyter untuk prototipe yang mudah, bereksperimen, dan berbagi (lihat contoh -contoh di DOC).
- Tambahkan server web eksperimental dan API istirahat berdasarkan kerangka kerja Django Rest, Redis dan seledri. Ini sekarang menyediakan server pemrosesan audio web nyata dengan kemampuan penskalaan tinggi berkat Docker (clustering) dan seledri (multiprosesing).
- Mulailah pengembangan antarmuka pemain baru berkat Angular dan Wavesjs.
- Pembersihan besar file JS. Harap sekarang gunakan Bower untuk mendapatkan semua dependensi JS seperti yang tercantum dalam pengaturan.
- Tambahkan ekspor metadata ke file anotasi Elan.
- Perbaiki dan tingkatkan beberapa struktur data dalam wadah hasil penganalisa.
- Banyak berbagai perbaikan bug.
0.7.1
- Perbaiki versi Django menjadi 1.6.10 (sinkronisasi dengan Telemeta 1.5)
0.7
- Kode refactoring:
- Buat Module Timeside.plugins dan Prosesor Pindahkan yang baru di dalamnya: Timeside.plugins.decoder, Analyzer, timeside.plugins.encoder, timeside.plugins.fx
- PERINGATAN: Untuk mengelola struktur paket namespace dengan benar, modul utama timeside sekarang timeside. Core dan kode sekarang harus diinisialisasi dengan impor timeside. Core
- Timeside.plugins sekarang merupakan paket namespace yang memungkinkan plugin eksternal untuk secara otomatis dicolokkan ke timeside (lihat misalnya timeside-diadems). Ini sekarang menjadikan Timeside host plugin nyata , ya!
- Plugin Dummy Timeside akan segera disediakan untuk awal pengembangan yang mudah.
- Pindahkan semua analisis yang dikembangkan oleh Proyek Mitra dari Diadems ke Repositori Baru: Timeside-Diadems
- Banyak perbaikan untuk pemrosesan yang lebih baik oleh Travis-ci
- Tambahkan file DOX untuk menguji bangunan Docker secara terus -menerus pada berbagai distribusi
Untuk berita yang lebih lama, silakan kunjungi: https://github.com/ircam-wam/timeside/blob/master/news.rst
Dokumentasi
- Dokumentasi Lengkap: https://timeside.ircam.fr/docs/
- SERVER REST API: https://timeside.ircam.fr/api/docs/
- Slide: https://ircam-wam.github.io/Timeside-slides/#1
- Tutorial inti: https://timeside.ircam.fr/docs/tutorials/
- Beberapa buku catatan: https://github.com/ircam-wam/timeside/tree/master/docs/ipynb
- Beberapa buku catatan yang lebih tua: http://mybinder.org/repo/thomasfillon/timeside-demos
- Publikasi:
- https://github.com/parisson/telemeta-doc
- https://github.com/ircam-wam/timeside-papers
- Pemain UI V2: https://github.com/ircam-wam/timeside-player
- Panduan Pemain UI V1: https://github.com/ircam-wam/timeside/wiki/ui-guide
- Contoh Player UI V1: http://archives.crem-cnrs.fr/archives/items/cnrsmh_e_2004_017_001_01/
Memasang
Berkat Docker, Timeside sekarang sepenuhnya tersedia sebagai komposisi Docker yang siap bekerja. Komposisi berbasis Docker menggabungkan beberapa aplikasi yang kuat dan kerangka kerja modern di luar kotak seperti: Python, Numpy, Jupyter, Gstreamer, Django, seledri, postgresql, Redis, UWSGI, Nginx dan banyak lagi.
Pertama, instal Docker dan Docker menyusun
Kemudian klone timeside dan memulainya:
git clone --recursive https://github.com/ircam-wam/timeside.git
CD Timeside
Docker menyusun -d
Itu saja! Sekarang silakan buka bagian : Ref: `User Interfaces` untuk melihat cara menggunakannya.
Catatan
Untuk mendapatkan dukungan teknis, hubungi tim pengembangan. Jika Anda perlu menggunakan Timeside di luar gambar Docker, silakan merujuk ke aturan DockerFile yang didasarkan pada sistem stabil Debian. Kami tidak akan memberikan dukungan gratis apa pun di Usecase Paticular di luar wadah Docker asli.
Sponsor dan mitra
- IRCAM (Paris, Prancis)
- Parisson (Paris, Prancis)
- CNRS: Pusat Penelitian Sains Nasional (Prancis)
- Huma-num: Peralatan data besar untuk humaniora digital (CNRS, Prancis)
- CREM: Pusat Penelitian Etomusikologi Nasional Prancis (Prancis)
- Université Pierre et Marie Curie (UPMC Paris, Prancis)
- ANR: Agence Nationale de la Recherche (Prancis)
- MNHN: Museum National D'Histoire Naturelle (Paris, Prancis)
- C4DM: Pusat Musik Digital, Queen Mary University (London, Inggris)
- NYU Steinhardt: Profesi Musik dan Seni Pertunjukan, Universitas New York (New York, AS)
Proyek terkait
- Telemeta: Buka Platform Audio Web
- Arsip suara cnrs, crem dan "musée de l'homme" di Paris, Prancis
- Diadems disponsori oleh ANR.
- DACARYH, Ilmu Data untuk Studi Calypso-Rhythm Melalui Sejarah
- Kamoulox Online tidak mencampur arsip sejarah besar
- NYU+CREM+Parisson: Analisis Musik Arab dari database CREM lengkap
- Wasabi: Web Audio Semantik dikumpulkan di browser untuk indeksasi, disponsori oleh ANR
- Timeside-Player V2
- Timeside-Sdk-Js
Referensi
- Aline Menin, Michel Buffa, Maroua Tikat, Benjamin Molinet, Guillaume Pellerin, Laurent Pottier, Franck Michel, & Marco Winckler. (2022, 28 Juni). Visualisasi diskografi tambahan dan multimodal: Menjelajahi basis pengetahuan musik Wasabi. Konferensi Audio Web 2022 (WAC 2022), Cannes, Prancis. https://doi.org/10.5281/zenodo.6767530
- Guillaume Pellerin, & Paul Brossier. (2022). Timeside API sebagai layanan web pemrosesan audio [set data]. Konferensi Audio Web 2022 (WAC 2022), Cannes, Prancis. Zenodo. https://doi.org/10.5281/zenodo.6769477
- Fillon dan G. Pellerin. Platform web kolaboratif untuk manajemen dan analisis arsip suara. Dalam Prosiding Konferensi Audio Web ke -3, London, halaman 43. Queen Mary University of London, Agustus 2017.
Hak Cipta
- Hak Cipta (C) 2019, 2023 IRCAM
- Hak Cipta (C) 2006, 2023 Guillaume Pellerin
- Hak Cipta (C) 2022, 2023 Guillaume Piccarreta
- Hak Cipta (C) 2010, 2022 Paul Brossier
- Hak Cipta (C) 2020, 2021 Romain Herbelleau
- Hak Cipta (C) 2019, 2020 Antoine Grandry
- Hak Cipta (C) 2006, 2019 Parisson Sarl
- Hak Cipta (C) 2013, 2017 Thomas Fillon
- Hak Cipta (C) 2013, 2014 Maxime Lecoz
- Hak Cipta (C) 2013, 2014 David Doukhan
- Hak Cipta (C) 2006, 2010 Olivier Guilyardi
Lisensi
Timeside adalah perangkat lunak gratis: Anda dapat mendistribusikannya kembali dan/atau memodifikasinya di bawah ketentuan Lisensi Publik Umum GNU Affero seperti yang diterbitkan oleh Free Software Foundation, baik versi 3 lisensi, atau (di opsi Anda) versi selanjutnya.
Timeside didistribusikan dengan harapan akan bermanfaat, tetapi tanpa jaminan apa pun; bahkan tanpa jaminan tersirat dari dapat diperjualbelikan atau kebugaran untuk tujuan tertentu. Lihat Lisensi Publik Umum GNU Affero untuk lebih jelasnya.
Baca file lisensi.txt untuk detail lebih lanjut.