LoginSignup
2
3

More than 3 years have passed since last update.

Neural Network Console Challenge Audiostockの音声(BGM)データを解析

Posted at

はじめに

Neural Network Console Challenge(以下、NNC Challenge)というコンテストに参加しました。

コンテスト概要

今回のNNC ChallengeはSonyが提供している Neural Network Console(以下、NNC)を用いて
Audiostockの音声(BGM)データを解析するというものです。
※学習用データ提供:Audiostock

コンテストに応募するとBGMデータと一覧表がダウンロードでき、学習に使用できます。

テーマは次の2テーマ
1.AudiostockのBGM検索の自動分類アルゴリズムを作り出す
2.自由な発想で音声データを解析する
例)似ている音声データをレコメンドするアルゴリズムを作り出す
  曲の雰囲気に合うジャケット写真を自動生成する

テーマ選択

今回チャレンジしたのは1の「AudiostockのBGM検索の自動分類アルゴリズムを作り出す」です。

アノテーション(ラベル付け)

データに対してテーマに沿ったラベル付けを行います。
AudiostockのBGM検索の自動分類アルゴリズムということで、まずはHPの分類を確認しました。
HPを開くと幾つか選択可能でしたので、今回はイメージで分類をしてみることにしました。
image.png
Audiostock HPより

データと一緒にダウンロードした一覧のタグの列を元にDataSetを作成しました。

一覧

image.png

DataSet

image.png

全部で48パターンあったので、正解ラベルはy0~y47とし、対応するラベルに1を、それ以外には0を付けました。
データの中には1つのBGMが複数のラベルに該当する場合もあり、その場合は該当するラベル全てに1を付けました。
例)「明るい」と「わくわく」など

DataSetをNNCで読み込むと、wavを直接指定することができます(ver.1.8から)。
image.pngimage.png

モデル作成

NNCのサンプルにある「wav_Keyboard_sound」のプログラムをベースに作成しました。
それからYoutubeのNNCチュートリアル:波形データの分類を参考にしています。

データはサンプリング周波数8kHz、長さ24秒だったので、Inputのサイズは192,000になります。
8kHz × 24sec = 192,000

データを見ると、数秒ほどしか音声が無いデータなども含まれていたので、Sliceレイヤーを使用して1/3の8秒分のデータを抽出して学習に使用しました。
それから、今回の分類は複数ラベルへの分類になるので活性化関数はSoftmaxではなくSigmoidを使用しています。

モデルの簡単な説明です。
1.入力データからSliceを使用して8秒分のデータを抽出
2.MulScalarでデータ(波形の振幅)を-1~1の範囲に変換 ※MulScalarのValueに1/32768を設定
3.Transposeで転置
4.Reshapeで画像データとして扱えるように次元を変換
5.ImageAugmentationでデータの水増し
6.Convolutionを繰り返す

Main

image.png

ConvUnit

image.png

学習結果

トレーニング結果
image.png
training error(赤の実線)、validation error(赤の破線)共に下がっていて、ほぼ0になるまでとはいきませんでしたが、まずまずでしょうか。

評価結果
image.png
続いて評価結果です。
Accuracy(正確度):0.1063
Precision(精度):0.0435
Recall(再現率):0.0431
トレーニング結果から、そこそこの数値を期待していたのですが、かなり悪い結果になりました。

考察

評価結果が悪かった理由としては複数のラベルに分類されるデータが全問正解の場合に正解、1つでも間違えば不正解として評価されたのではないかと推測しました。
ただし、どうすれば結果が良くなるのかという解には至りませんでした。

感想

1つのデータが複数ラベルに該当するような分類を行ったのは今回が初めてだったので、最初はどうすればいいのかさっぱりでした。
最初はvalidation errorが下がらず、データを見直したりしてようやく旨くいったと思ったら、評価結果はかなり悪く、そのままタイムアップという形となりました。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3