著者/管理者:イグナシオ・エレディア (CSIC)
プロジェクト:この作業は、助成契約番号 777435 に基づいて欧州連合の Horizon 2020 研究およびイノベーション プログラムから資金提供を受けた DEEP Hybrid-DataCloud プロジェクトの一部です。
これは、ディープ ラーニングを使用して音声分類を実行するためのプラグ アンド プレイ ツールです。これにより、ユーザーはオーディオのサンプルを分類できるだけでなく、カスタム問題に合わせて独自の分類器をトレーニングすることもできます。分類器は現在、AudioSet データセットの 527 の高レベル クラスで事前トレーニングされています。
詳細については、DEEP マーケットプレイスをご覧ください。
目次
要件
このプロジェクトは、Python 3.6.5 を使用した Ubuntu 18.04 でテストされています。さらなるパッケージ要件については、
requirements.txt
ファイルに説明されています。
- 幅広いオーディオ形式をサポートするには、FFMPEG ライブラリを利用する必要があります。 Linux にインストールするには、次を実行してください。
apt-get install ffmpeg libavcodec-extra- Tensorflow>=1.14.0 が (GPU または CPU モードのいずれかで) インストールされていることが要件です。これは GPU サポートを無効にするため、
requirements.txt
には記載されていません。
このフレームワークの使用を開始するには、リポジトリのクローンを作成し、デフォルトの重みをダウンロードします。
git clone https://github.com/deephdc/audio-classification-tf
cd audio-classification-tf
pip install -e .
curl -o ./models/default.tar.gz https://api.cloud.ifca.es:8080/swift/v1/audio-classification-tf/default.tar.gz
cd models && tar -zxvf default.tar.gz && rm default.tar.gz
ここで DEEPaaS を実行します。
deepaas-run --listen-ip 0.0.0.0
http://0.0.0.0:5000/ui を開いて、 audioclas
モジュールに属するメソッドを探します。
このモジュールを実行するために、すぐに使用できる Docker コンテナも用意しました。実行するには:
docker search deephdc
docker run -ti -p 5000:5000 -p 6006:6006 -p 8888:8888 deephdc/deep-oc-audio-classification-tf
次に、http://0.0.0.0:5000/ui を開いて、 audioclas
モジュールに属するメソッドを探します。
カスタム データセットを使用して独自の音声分類器をトレーニングできます。そのためには次のことを行う必要があります。
画像を./data/audios
フォルダーに置きます。データが別の場所にある場合は、トレーニング引数にdataset_directory
パラメーターを設定することで、その場所を使用できます。標準の音声形式 ( .mp3
や.wav
など) を使用してください。
注:分類子は 10 秒のサンプルに対して機能します。したがって、オーディオ ファイルが 10 秒より長い/短い場合は、10 秒の倍数になるようにループで連結されます。したがって、22 秒のオーディオ ファイルは 3 つの埋め込み (
*-0.npy
、*-1.npy
、および*-2.npy
を作成します。
まず、 ./data/dataset_files
ディレクトリに次のファイルを追加する必要があります。
必須ファイル | オプションのファイル |
---|---|
classes.txt 、 train.txt | val.txt 、 test.txt 、 info.txt |
train.txt
、 val.txt
、およびtest.txt
ファイルは、オーディオ名 (または相対パス) をラベル番号 ( 0 で開始する必要があります) に関連付けます。 classes.txt
ファイルは、これらのラベル番号をラベル名に変換します。最後に、 info.txt
すると、各クラスに関する情報 (データベース内の音声ファイルの数など) を提供できます。
オプションcompute_embeddings=False
を使用している場合、ファイル パスは元のオーディオ ファイルではなく埋め込みの.npy
パスを指す必要があり、 dataset_directory
パラメーターは埋め込みが含まれるフォルダーを指す必要があります。
これらのファイルの例は./data/demo-dataset_files
にあります。
http://0.0.0.0:5000/ui に移動し、 TRAIN
POST メソッドを探します。 「Try it out」をクリックし、必要なトレーニング引数を変更して「Execute」をクリックします。トレーニングが開始され、 TRAIN
GET メソッドを実行することでそのステータスを追跡できます。これにより、以前に実行されたすべてのトレーニングの履歴も得られます。
モジュールに何らかのトレーニング監視が設定されている場合 (Tensorboard など)、http://0.0.0.0:6006 で追跡できます。
http://0.0.0.0:5000/ui に移動し、 PREDICT
POST メソッドを探します。 「Try it out」をクリックし、必要なテスト引数を変更して「Execute」をクリックします。次のいずれかを指定できます。
data
引数。または
url
引数。以下は、テスト目的で使用できる URL の例です。 このプロジェクトのコードは、IBM によるオリジナルのリポジトリに基づいており、Yu らによる論文「弱教師音声分類のためのマルチレベル アテンション モデル」を実装しています。
元のリポジトリに対する主な変更点は次のとおりです。
このプロジェクトが役立つと思われる場合は、DEEP Hybrid DataCloud プロジェクトを引用することを検討してください。
ガルシア、アルバロ・ロペス 他機械学習のワークロードとアプリケーションのためのクラウドベースのフレームワーク。 IEEE Access 8 (2020): 18681-18692。
以下の参考文献のいずれかを添えてください。
- Jort F. Gemmeke 他、オーディオ セット: オーディオ イベントのオントロジーと人間がラベル付けしたデータセット、IEEE ICASSP、2017 年。
- Qiuqiang Kong 他、アテンション モデルによるオーディオ セット分類: 確率論的な観点。 arXiv プレプリント arXiv:1711.00927 (2017)。
- Changsong Yu ら、弱教師音声分類のためのマルチレベル アテンション モデル。 arXiv プレプリント arXiv:1803.02353 (2018)。
- S. Hershey ら、大規模音声分類のための CNN アーキテクチャ、arXiv プレプリント arXiv:1609.09430、2016。