【論文読み】ADAPTIVE TIME–FREQUENCY SCATTERING FOR PERIODIC MODULATION RECOGNITION IN MUSIC SIGNALS

## 注意
一部，自分なりに咀嚼をした結果の意訳をしている部分もあります．
また，誤りなどあるかもしれません．その場合，ご指摘お願いします．

## 元論文
Changhong Wang, Emmanouil Benetos, Vincent Lostanlen, and Elaine Chew. 
**Adaptive time–frequency scattering for periodic modulation recognition in music signals.** 
In The 20th International Society for Music Information Retrieval Conference (ISMIR), 2019.

論文リンク
https://archives.ismir.net/ismir2019/paper/000099.pdf

## 概要
中国の笛子（dizi）と呼ばれる竹製の横笛の，ビブラートやトレモロといった音量や音高などの周期変動による演奏テクニックを，ウェーブレット変換を用いた手法であるscattering transformで特徴量を抽出し，SVMで分類したというものです．
CBF-PeriDB (http://c4dm.eecs.qmul.ac.uk/CBFdataset.html) というデータセットを作り，それを使って4種類の演奏テクニック（ビブラート，トレモロ，トリル，フラッター）を検出する実験をしたところ，
それぞれ69%，51%，82%，99%のF値を記録しました．

## 背景
楽器の演奏において，その演奏を豊かにするためにビブラートやトレモロといった演奏テクニックを入れることがあります．
そうした演奏テクニックの種類と出現箇所が検出できれば，プロの演奏のお手本を可視化することができ，演奏支援などに役にたちます．
従来こういう研究には，

+ 基本周波数(f0)を抽出してから検出をするもの [1]など
+ テンプレートを利用するもの [2]など
+ 周期変動に関する特徴量である Modulation spectraを利用するもの [3]など

がありましたが，f0は通常音量の情報・音色の情報を削ぎ落としてしまうので，トレモロのような音量変化のテクニックは見過ごしてしまいます．また，f0抽出が完璧でない場合はエラーを伝搬させてしまいます．テンプレート利用の場合，振幅の浅いビブラートの検出が難しく，Modulation spectraは短時間のテクニックの検出が難しいことが問題として挙げられます．
そこで，周期変動の大きさや継続時間に頑健性のある方法として，**adaptive time-frequency scattering transform**を用いた特徴抽出を提案しました．

## 本論文の貢献
1. 演奏テクニックのアノテーションがつけられたデータセット
2. トレモロ・フラッター・トリルを初めて検出したこと
3. 上記+ビブラートの，4種類の周期変動演奏テクニック検出を行うAdaptive Time-frequency scattering transformの提案

  
## 手法
### Scattering transformとは
Scattering transformはウェーブレット変換を用いた特徴抽出法の一つで，
入力信号波形をフィルタバンクとの畳み込み+絶対値の適用の処理を多層的に行って散乱係数と呼ばれる特徴量を得る方法です．
各層では前の層からの出力とウェーブレットフィルタバンク$\psi$の畳み込みにより，まずスカログラム係数を得ます．スカログラム係数の絶対値をスケーリング関数$\phi(t)$で畳み込む処理を行って散乱係数を得ます．得られたスカログラム係数は次の層の入力として用います．
このスケーリング関数はローパスフィルタのように作用してると解釈されています．（実際，本論文でもスケーリング関数$\phi$はlow pass filterと記述されていました）
n層目で得られた散乱係数をn次の散乱係数といい，通常は2次までしか使わないことが多いらしいです．
なお，下図中の入力信号波形$f$に直接スケーリング関数を適用した散乱係数は0次の散乱係数とします．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493056/370e8648-f5f4-0289-17d5-3567d6342528.png)
図：Matlabドキュメンテーション [Wavelet scattering](https://jp.mathworks.com/help//wavelet/ug/wavelet-scattering.html) より
### Scattering transformとCNN
Scattering transformは畳み込みニューラルネットワーク(以降，CNN)の計算にとても類似しており，CNNのように複数フィルターを用意して特徴抽出を行う特徴抽出方法と捉えることもできるそうです．
CNNは
1. **フィルタの適用**：フィルタの畳み込み
2. **非線形処理**：活性化関数
3. **微小変化への頑健性**：プーリング
が畳み込み層での主な処理になりますが，
scattering transformでは，それぞれ
1. **フィルタの適用**：ウェーブレット＝係数固定のフィルタを畳み込む
2. **非線形処理**：スカログラム係数の絶対値を計算
3. **微小変化への頑健性**：スケーリング関数で微細構造を削ぎ落として情報を圧縮
に対応しており，
CNNに非常に類似した処理方法だといえます．

CNNではデータからフィルタの係数を学習する必要があるので，学習のためのラベルデータが多く必要ですが，scattering transformではフィルタの係数を学習する必要はなく，学習するのは識別器だけで済むのでCNNよりラベルデータが少なく済むという利点があります．

### "Adaptive" "Time-frequency" scattering transform
さて，本論文ではscattering transformに3点の工夫を付け加えています．
**"Time-frequency"**
1. 2次の散乱係数に対し，周波数軸方向へウェーブレットフィルタバンクの畳み込み処理を行い，1次の「周波数散乱係数 (frequencial scattering)」を得る
**"Adaptive"**
2. 1次のスカログラム係数の計算後に2次のスカログラム係数を計算するとき，全てのフィルタバンクを用いず，音高のピークが現れた周波数の部分のフィルタバンクのみを用いる（Dominant-band）
3. さらに，2において識別力を向上させるため，ピーク近傍のいくつかのフィルタバンクも用いる条件も試す（Expanded-band）

以上の工夫によって，より4つのテクニックを弁別可能にする特徴表現が得られるんだそうです．
下図がその特徴表現を図次したもので，(b)は2.によってより弁別可能になった2次散乱係数，
(c)は(b)のノイズが抑圧された1次周波数散乱係数です．(b)を見ればわかる通り，2次散乱係数はAMや音の立ち上がりへの感度が高いため，そのノイズの影響を取り除き，より特徴表現を明確にする役割を果たしています.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493056/e7cf08aa-0a21-b7c9-ed31-ff19779a7693.png)
また，15秒あたりでトリルの速さが変わる様子も，2つの散乱係数が捉えていることがわかります.

（正直，この辺りの記述がかなりあっさりめで，まだ実際どういうshapeのデータにどう処理しているとか，細かい部分の理解まで至っていません...すみません...）

## 実験
検出対象：4つの演奏テクニック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493056/3b6b4c2c-c02f-38e7-ad43-fbd8aa0dd8f5.png)
1. フラッター：巻舌しながら吹奏して音を歪ませる
2. ビブラート：音高をゆらす
3. トレモロ：音量をゆらす
4. トリル：2音を行き来する

データセット：CBF-PeriDBデータセットという，本論文のために作成させたデータセットが用いられていました．各テクニックを個別に収録したIsolated，実際の曲を演奏し，テクニック出現部にアノテーションをしたPerformedの2種類の音源が収録されています．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493056/dafa3827-73b8-9afb-b838-880307e56e7e.png)

train:valid:testを3:1:1の割合に分割し，5-fold cross validationにより評価されました．

前処理：音声はサンプリング周波数44100Hzで読み込み，入力は512サンプル(約12ミリ秒）ごとに切り取り．特徴は2次散乱特徴と1次周波数散乱特徴をスタッキングします．下図のイメージです．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493056/f9f0b621-c3a7-c7b1-b911-8662f9f8fdec.png)
図:[発表ポスター](https://github.com/changhongw/ismir-2019-posters)より

なお図中の，散乱係数の特徴次元$l$に関しては$l=16$であり，Dominant-band条件は32次元，Expanded-band条件では±近傍3つの合計7つを用い，224次元としていました．
散乱変換に用いるウェーブレットは全て[Morletのウェーブレット](https://jp.mathworks.com/help/wavelet/ref/morlet.html)としていました．

識別器：テクニックの出現/非出現の2値分類を行うガウスカーネルSVM．各テクニックごとに用意．
評価基準：F値．（参考のため，PrecisionとRecallも算出）
比較条件：
1. f0を入力してビブラート検出を行う従来手法[6]（ビブラートのみ）
2. Dominant-band条件
3. Expanded-band条件
## 結果
まず従来手法は，Precisionが36.5%,Recallが58.7%,F値が45.0%でした．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493056/0dbb942f-b8e7-5582-0023-14ce1e3f5e8a.png)
最も性能がよかった条件はExpanded-band条件でフラッターは98.7%，トリルは82.3%と高いF値をマークしていました．
対して，ビブラートは69.3%，トレモロは50.7%と，従来手法の性能は超えたものの，前二つに比べて低いF値でした．このことに関して，ビブラートは音高の変化だけでなく音量の変化も伴っている（その逆もまた然り）ことを原因として挙げていました．

下図は検出結果の例です．出力系列に多少のパタつきはみられるものの，概ね検出がうまくいっていることがわかります．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493056/8f714284-0406-d4ef-1a6e-cc34aea8130d.png)


## 個人的な疑問点
+ Deep手法との比較は?
 + 昨今多いらしい，Deep指摘Reviewerから査読で指摘されなかったのでしょうか？この分野でも今やメジャーなメルスペクトログラム (or CQTスペクトログラム) +CNNとかを比較手法に入れてもよかったのではと思いました．本文中にありませんでしたが，発表のビデオを見るとinterpretability（解釈可能性）をウリにしてはいました．Scattering transformはDeepと性格がかなり異なるので，余計に比較が楽しみでした．少し残念です．

+ 識別器がSVMでよかったのか？
    + 識別結果にパタつきがみられていましたが，これは識別器がそのフレームしか見ていないためだと考えられました．識別器をHMMやLSTMとかにして他のフレームとの依存関係も見ることによってこのパタつきも減って性能上がるのではないかと予想します．

+ 他の楽器には適用可能か?
    + この散乱係数は楽器に限定されない汎用的な特徴であり，他の楽器にも適用できるのではないかと考えました．データセットが用意されているギターやバイオリンでの結果も見てみたいところです．
   

## 感想
**データを集めにくい音楽情報処理ではまだまだDeep以外もイケる？**
私個人の所感ですが，最近のメディア情報処理は，画像も言語も音もDeepな手法が増えてきてしまい，論文もDeep以外を見る方が珍しいという状況になってしまいました．
音楽情報処理も例外ではなく，ICASSPやISMIRといったトップ会議でも見かける手法はDeepばかりです．
Deepがうまくいく条件の一つにラベルデータの量と質があります．画像や言語データはWEBで収集しやすく，ラベルデータを大量に獲得可能なそれらの分野でDeepが覇権を握るのはある種当然ともいえるでしょう．

一方，音楽情報処理分野の研究でブチ当たる壁の一つとして**データ収集の手間**があります．
音楽データは実際に曲を演奏してもらう必要があるので，そもそも収録に手間がかかります．場合によってはプロ奏者を呼ぶ必要もあります．

さらに音楽のラベル付けに関してはアノテーターもプロでないと難しい場合もあります．
ただでさえ**ラベル付けはコストを要する作業**なのに，音楽の場合，その作業をプロに要求しないとまともなデータセットを作れないという厳しい現状です．
著作権など権利の関係からデータの公開も難しい場合が多かったりして**多重苦**です．

そうした事情もありこの分野では**「データセットを作りました」でもだいぶ大きな貢献になりうる**というのを，サーベイした限りでの個人の実感として持っています．

昨今はtransformerや大規模データの事前学習などが他分野で流行っていますが，
音楽情報処理ではこうしたデータの事情から，**データ量や検出力で殴るよりは少量のラベルデータでなんとかしたり，今回のscattering transformのようなドメイン知識を要所でDeepと組み合わせる方法**が今後流行っていくんじゃないかなぁと感じています．

**ウェーブレット変換，資料が少ない...**
ウェーブレット変換は信号処理の中でもかなり上級なトピックなためか，数強のための資料ばかり見つかり，数弱の私にとってはわかりやすい資料が少なく苦労しました．
特に，scattering transformは単語の和訳が見つからない程度にはマニアックな手法なのか，関連論文からなんとか情報をかき集めるしかなく細かい部分で理論を追えなくなったりして大変でした．
私も普段からウェーブレット変換を使うような研究テーマではない（思考停止でlibrosa使ってCQTを抽出するくらい）ので，理解するのにかなり時間がかかってしまいました．しかも完璧な理解ではありません．
精進せねば．

**実装用意してくれ**
せめてコードがあれば理解も進んだのにな，と思ったのですが，リポジトリは公開していませんでした．残念．
再現実装するならscattering transformのpythonライブラリである[kymat.io](https://www.kymat.io/index.html)が良さそう．

## 参考文献
[1] Y. P. Chen, L. Su, and Y. H. Yang. Electric guitar playing technique detection in real-world recording basedon F0 sequence pattern recognition. In Proc. Conf. International Society for Music Information Retrieval(ISMIR), pages 708–714, 2015.
[2] J. Driedger, S. Balke, S. Ewert, and M. Müller. Template-based vibrato analysis in music signals. In Proc. Conf. International Society for Music Information Retrieval(ISMIR), pages 239–245, 2016.
[3] S. Sukittanon, L. E. Atlas, and J. W. Pitton. Modulation-scale analysis for content identification. IEEE Transactions on Signal Processing, 52(10):3023–3035, 2004
[4] Matlabドキュメンテーション Wavelet scattering  https://jp.mathworks.com/help//wavelet/ug/wavelet-scattering.html
[5] 竹谷 晃一， 佐々木 栄一. 橋梁加速度のウェーブレット散乱変換とニューラルネットワークによる交通車両の分類. AI・データサイエンス論文集 1(J1), pages 158-167, 2020
[6] L. Yang, K. Rajab, and E. Chew. The filter diagonalization method for music signal analysis: frame-wise vibrato detection and estimation. Journal of Mathematics and Music, 11(1):42–60, 2017.


追記：周期変動に加えて，ポルタメントの検出も行った論文が約半年後のICASSP2020にacceptされていたようです．[Playing Technique Recognition by Joint Time–Frequency Scattering](https://ieeexplore.ieee.org/document/9053474)
すげえ．