ディープラーニングによる環境音(野鳥の鳴き声)認識
Bird song recognition sample program with deep learning

■はじめに

本プログラムは，FAT PC (お手持ちのPC) またはmatlab onlineのどちらでも実行可能です．
matlab onlineで実行する際は，プログラムとデータをまとめたzipファイル（bird.zip）を
matlab onlineにアップロードして，MATLABのコマンドライン上で以下のようにunzip
コマンドによりzipファイルを解凍し，birdフォルダに移動してください．
（zipではなく展開されたフォルダをアップロードしようとすると時間がかかります）

>> unzip bird.zip

■内容物(プログラム)

a_voiceprint_sample.m : 声紋表示のサンプルプログラム
b_prepare.m : 音声(wavファイル)の声紋画像(jpgファイル)を生成するプログラム
c_training.m : ディープラーニングによる学習(転移学習)を実行するプログラム
d_classify.m : 学習されたモデルを用いて検証用データの認識を実行するプログラム
e_view_results.mlapp : 認識結果を表示するGUIアプリ
voiceprint.m：声紋画像生成を行うファンクションプログラム（サブ関数）
trainednetwork.mat：学習済みnetworkを保存したファイル
scores.csv：推論結果を格納したファイル

■内容物(データ)

5種類の鳥の鳴き声及び声紋画像を150サンプルずつ格納しています．
各鳥につき，学習用と検証用にそれぞれ75サンプルに分割して以下のように格納しています．

・trainingdataフォルダ
  01：クサチヒメドリの鳴き声（ファイル番号：101～175）
  02：ノドジロシトドの鳴き声（ファイル番号：201～275）
  03：ムネアカイカルの鳴き声（ファイル番号：301～375）
  04：カオグロアメリカムシクイの鳴き声（ファイル番号：401～475）
  05：カマドムシクイの鳴き声（ファイル番号：501～575）
・validationフォルダ
  01～05（trainingフォルダと同様）

各フォルダの直下に声紋画像(JPGファイル)を，wavフォルダ中に鳴き声の音声
(WAVファイル)を格納しています．

■プログラムの説明

Step1から順番に実行することを想定していますが，途中を飛ばして実行しても
問題ありません．

  Step1. a_voiceprint_sample.m
    サンプルの音声ファイルを読み込んで声紋を表示します

  Step2. b_prepare.m
    wavファイルから声紋画像ファイルを生成します．
    全wavファイルに対して処理するため少々時間がかかります．飛ばして頂いて構いません．
    Step3で必要な画像ファイルは事前に生成済ですので，声紋画像の生成方法を
    変えて再生成したい場合などに実行して下さい．

  Step3. c_training.m
    実行すると「学習の進行状況」のウインドウが開きます．
    （ウインドウが開くまで時間がかかる場合もありますので，お待ち下さい）
    学習には数分～10分程度かかると思われます．学習が終わりましたらウインドウを
    閉じて頂いて問題ありません．

  Step4. d_classify.m
    学習後に検証用データで認識をした際の混同行列が表示されます．

  Step5. e_view_results.mlapp
    認識結果を表示するGUIアプリです．
    MATLABの現在のフォルダー ブラウザー上で本ファイルを選択し，
    右クリックで「実行」を選択してアプリを起動してください．
   なお「Play」ボタンをクリックすると鳴き声が再生されますが，クリックしてから音が
   再生されるまでタイムラグがあります．また，wavファイルの品質が悪く，虫の声などの
   背景雑音も入っているため，種類別の違いが分かりにくいと思います．
   その点は御理解ください．

■使用しているToolbox

・Signal Processing Toolbox：信号の前処理（ピーク検出）
・Deep Learning Toolbox    ：ディープニューラルネットワークの構築と学習

本稿で使⽤する⿃の鳴き声データは、以下の著作物を改変して利⽤しています． 

Vincent Lostanlen, Andrew Farnsworth, Jason Cramer, & Juan Pablo Bello. (2020). BirdVox-14SD: a dataset of flight calls with species annotation. 
https://doi.org/10.5281/zenodo.3667094， 
CCライセンス 表⽰ 4.0 国際 (CC BY 4.0)（https://creativecommons.org/licenses/by/4.0/deed.ja）

Copyright 2022 Mutsumi Saito
