Timeside:Pythonで書かれたスケーラブルなオーディオ処理フレームワークとサーバー
Timesideは、低および高レベルのオーディオ分析、イメージング、トランスコーディング、ストリーミング、ラベル付けを可能にするPythonフレームワークです。その高レベルAPIは、プラグインアーキテクチャとセキュリティでスケーラブルなバックエンドを備えたオーディオまたはビデオ資産の非常に大きなデータセットで複雑な処理を可能にするように設計されています。
導入
オンラインオーディオアプリケーションとデータセットの数が増えるにつれて、研究者とエンジニアが、計算音楽やストリーミングサービスなどのさまざまなプラットフォームやユーザーケースで、できるだけ速く独自のアルゴリズムをプロトタイプおよびテストできるようになります。一方、コンテンツプロバイダーとプロデューサーは、文化史だけでなくオーディオ機能分析に基づいて、より多くのメタデータを使用して、プラットフォームでのユーザーエクスペリエンスを強化する必要があります。インターネット上で公開されている音楽と同期してメタデータを同期して栽培することは、分析とストレージシステムを簡単に更新、スケーリング、展開できることを意味します。
この意味でTimesideは、オンラインオーディオ処理サービスを提案するために開発されています。それは提供します:
- Pythonがシェルまたはその他のPythonベースのプログラムから動作するコアモジュール
- コアモジュールの上に構築されたRESTFUL APIを備えたWebサーバーのWebサーバーにより、Web開発者はリモート処理サービスを独自のアプリケーションに簡単に埋め込むことができます。
- JavaScript用のSDKとOpenAPIに基づいて、サーバーAPIを消費するサードパーティのアプリケーションを簡単に開発します。
ユースケース
- 非同期オーディオ処理(フィルタリング、機能分析、機械学習など)
- スケーリングおよび保護されたデータプロビジョニング、処理、アクセス
- オーディオプラグインプロトタイピング
- オーディオの視覚化
- ウェブ上のオンデマンドトランスコーディングとストリーミング
- 共有オーディオプレーヤーの強化
- オーディオイベントと同期した自動セグメンテーションと手動ラベル付け
特徴
- Pythonで非同期オーディオ処理を行い、
- オーディオまたはビデオメディア形式からnumpy配列にオーディオフレームをデコードし、
- Aubio、Yaafe、Vamp、いくつかの純粋なPythonプロセッサなど、最先端のオーディオ機能抽出ライブラリを使用してオーディオコンテンツを分析します
- さまざまな派手な波形、スペクトログラム、その他のクールなグラファーで音を視覚化します。
- さまざまなメディア形式でオーディオデータをトランスコードし、Webアプリを通じてそれらをストリーミングします。
- さまざまなポータブル形式を介したシリアル化機能分析データ、
- YouTubeやDeezerなどのPlateformからオーディオソースを提供します
- REST APIを介してWeb上に提供またはアップロードされたトラックで分析とトランスコードを配信します
- スマートハイレベルのHTML5拡張可能なプレーヤーを介して、再生および対話します。
- セマンティックメタデータを使用したインデックス、タグ、アノテートオーディオアーカイブ(タイムサイドを埋め込むテレメタを参照)。
- インフラストラクチャを介して独自のオーディオ処理エンジンを展開および拡大する
資金とサポート
プロジェクトに資金を提供し、高速開発プロセスを継続するには、明示的なサポートが必要です。したがって、生産または開発や実験セットアップで時間を使用する場合は、次のことをお知らせください。
あなたの助けとサポートをありがとう!
ニュース
1.1
- コア:
- デフォルトでLibavベースのAubioデコーダーを使用します(地球上の最速のオーディオからNumpyアレイコンバーターへ)
- VAMPベースのアナライザーと、Vampflatness、Vampcrest、Vamptempo、Vamptuning、VampspectralCentroid、Vampspectprectralkurtosis、vampspectprectralslopeなどのいくつかのプラグインを追加します
- サーバ:
- 多くの非同期処理の問題を修正します:YouTubeからフェッチするソースストリームを含む、ワーカーを介してすべての前処理、処理、後処理タスクを実行します
- WebSocketに基づいてプロセスモニターを追加します
- waveformはitem.save()で自動的に処理されます
- UUIDを本当にユニークにします
- モデルの並べ替え
- 単体テストを改善します
1.0
- サーバーリファクタリング:
- アイテムで実行されるオーディオプロセス(REST APIトラックのモデル)
- いくつかのツール、ビュー、モデル、シリアル化剤
- Openapi 3仕様と自動Redoc生成に関するREST APIのスキーマ
- コアとサーバーをPython 2.7から3.7に移動します
- Djangoを2.2にアップグレードし、Django Rest Framework 3.11、Celryに4.4にアップグレードします
- Aubioベースのデコーダーを追加します
- コアおよびサーバープロセッサのバージョン化とサーバープロセスの実行時間を追加
- すべての依存関係をPIP要件に再編成し、コンドラの使用を削除します
- プロバイダークラスをコアAPIコンポーネントとして、およびREST APIモデルとして追加
- プロバイダープラグインDeezer-Preview、Deezer-Complete、YouTubeを追加します
- サーバー単位テストを改善します
- REST APIにJWT認証を追加します
- さまざまなバグ修正
- コア、サーバー、およびワーカーのロギングを追加します
0.9
- すべてのPython依存関係をアップグレードします
- Vamp、Essentia、Yaafe、Librosa、Pytorch、Tensorflow Libs、Lappersを追加
- いくつかの分析プラグインを追加します(Essentia Dissonance、Vamp Constant Q、Vamp Tempo、Vamp General Lapper、Yaafe General Wrapper)
- プロセッサパラメーター管理を追加します
- プロセッサ継承を追加します
- 巧妙なデータストリーミングでHTML5プレーヤーを改善します
- REST APIとさまざまなシリアルザーを改善します
- 単体テストを改善します
- さまざまなバグ修正
0.8
- インスタントインストールのためにDockerサポートを追加します。これにより、あらゆるOSプラットフォームでタイムサイドを実行できます!
- 簡単なプロトタイピング、実験、共有のためのJupyterノートのサポートを追加します(ドキュメントの例を参照)。
- Django Rest Framework、Redis、Celryに基づいて、実験的なWebサーバーとREST APIを追加します。これにより、Docker(クラスタリング)とセロリ(マルチプロセッシング)のおかげで、スケーリング機能が高くなっている実際のWebオーディオ処理サーバーが提供されます。
- AngularとWavesjsのおかげで、新しいプレイヤーインターフェイスの開発を開始します。
- JSファイルの大規模なクリーンアップ。 Bowerを使用して、設定にリストされているすべてのJS依存関係を取得してください。
- メタデータエクスポートをElanアノテーションファイルに追加します。
- アナライザー結果コンテナのデータ構造を修正および改善します。
- さまざまなバグフィックス。
0.7.1
- Djangoバージョンを1.6.10に修正します(Telemeta 1.5と同期)
0.7
- コードリファクタリング:
- 新しいモジュールのtimes.pluginsとmoveプロセッサを作成します:timesside.plugins.decoder、ayalzer、timesside.plugins.encoder、timeside.plugins.fx
- 警告:名前空間パッケージの構造を適切に管理するには、TimeSide ModuleがTimeSide.coreとコードをImport Timeside.coreで初期化するようになりました。
- Timeside.Pluginsは、外部プラグインを自動的に時間内にプラグインできる名前空間パッケージにするようになりました(たとえば、Timeside-Diademsを参照)。これにより、Timesideは本物のプラグインホストになりました。
- ダミータイムサイドプラグインがすぐに提供され、簡単に開発を開始します。
- Diademsプロジェクトのパートナーによって開発されたすべてのアナライザーを新しいリポジトリに移動する:Timeside-Diadems
- Travis-Ciによるより良い処理のための多くの修正
- DOXファイルを追加して、さまざまな分布でDockerビルを継続的にテストする
古いニュースについては、https://github.com/ircam-wam/timeside/blob/master/news.rstをご覧ください
ドキュメント
- 完全なドキュメント:https://timeside.ircam.fr/docs/
- サーバーレスト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
- プレーヤー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、Celery、PostgreSQL、Redis、UWSGI、NGINXなどのような、いくつかの強力なアプリケーションと最新のフレームワークをすぐに装備しています。
まず、DockerとDocker Composeをインストールします
次に、クローンタイムサイドで起動します。
git clone -recursive https://github.com/ircam-wam/timeside.git
CDタイムサイド
Dockerは-Dを構成します
それでおしまい!次に、次の:ref: `user interfaces`セクションにアクセスして、使用方法を確認してください。
注記
テクニカルサポートを得るには、開発チームに連絡してください。 Docker画像の外側の時間を使用する必要がある場合は、Debianの安定したシステムに基づいたDockerFileのルールを参照してください。元のDockerコンテナの外側のこのパティクラーの使用に関しては、いかなる種類の自由なサポートも提供しません。
スポンサーとパートナー
- Ircam(パリ、フランス)
- パリソン(パリ、フランス)
- CNRS:科学研究センター(フランス)
- Huma-Num:デジタル人文科学のビッグデータ機器(CNRS、フランス)
- CREM:フランス国立エトムジコロジー研究センター(フランス)
- ピエール・エット・マリー・キュリー大学(フランス、UPMCパリ)
- ANR:Agence Nationale de la Rechherche(フランス)
- MNHN:博物館国立D'Histoire Naturelle(パリ、フランス)
- C4DM:デジタル音楽センター、クイーンメアリー大学(イギリス、ロンドン)
- Nyu Steinhardt:音楽と舞台芸術の職業、ニューヨーク大学(ニューヨーク、米国)
関連プロジェクト
- テレメタ:Webオーディオプラットフォームを開きます
- フランスのパリにあるCNRS、CREM、および「MuséedeL'Homme」のサウンドアーカイブ
- ANRが後援するDiadems。
- Dacaryh、歴史を通してカリプソリズムの研究のためのデータサイエンス
- Kamouloxオンラインで大規模な歴史的アーカイブの混合
- NYU+CREM+PARISSON:フルCREMデータベースからのアラビア音楽分析
- WASABI:ANRが後援するブラウザのブラウザに集計されたWebオーディオセマンティック
- Timeside-Player V2
- Timeside-SDK-JS
参照
- Aline Menin、Michel Buffa、Maroua Tikat、Benjamin Molinet、Guillaume Pellerin、Laurent Pottier、Franck Michel、Marco Winckler。 (2022年、6月28日)。ディスコグラフィーの増分およびマルチモーダルの視覚化:わさび音楽の知識ベースの探索。 Web Audio Conference 2022(WAC 2022)、カンヌ、フランス。 https://doi.org/10.5281/zenodo.6767530
- Guillaume Pellerin、Paul Brossier。 (2022)。オーディオ処理Webサービス[データセット]としてのTimeside API。 Web Audio Conference 2022(WAC 2022)、カンヌ、フランス。ゼノド。 https://doi.org/10.5281/zenodo.6769477
- FillonとG. Pellerin。サウンドアーカイブの管理と分析のための共同Webプラットフォーム。ロンドンの第3 Webオーディオカンファレンスの議事録、43ページ。クイーンメアリーロンドン大学、2017年8月。
著作権
- Copyright(c)2019、2023 Ircam
- Copyright(c)2006、2023 Guillaume Pellerin
- Copyright(c)2022、2023 Guillaume 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 Thomas Fillon
- Copyright(c)2013、2014 Maxime Lecoz
- Copyright(c)2013、2014 David Doukhan
- Copyright(c)2006、2010 Olivier Guilyardi
ライセンス
Timesideはフリーソフトウェアです。FreeSoftware Foundationが公開しているGNU Affero General Public Licenseの条件、ライセンスのバージョン3、または(オプションで)後のバージョンのいずれかで公開されているように、GNU Affero General Publicライセンスの条件の下でそれを再配布したり、変更したりできます。
Timesideは、それが有用であることを期待して配布されますが、保証はありません。商品性や特定の目的に対するフィットネスの暗黙の保証さえありません。詳細については、GNU Affero一般公開ライセンスを参照してください。
詳細については、license.txtファイルをお読みください。