Post on 02-Aug-2020
奏者の意図したテンポ変動の推定に
基づく演奏録音の自動伸縮修正法
2013/09/06 @ FIT 2013
法政大学大学院 情報科学研究科
◎小泉 悠馬, 伊藤 克亘
演奏表現による,楽譜からの逸脱
⇒ 奏者ごとに異なる,演奏の個性,表現力
演奏音 = 楽譜情報 + 演奏表現情報 constraint variable observation
音楽演奏中の楽譜からの“逸脱”
2
・テンポのゆらぎ
・音色変化
・ビブラートなど
・クレシェンドなど
音色 音高 リズム 音量
演奏表現による,楽譜からの逸脱
⇒ 奏者ごとに異なる,演奏の個性,表現力
楽器の制御ミスによる,楽譜からの逸脱
⇒ 稚拙な演奏と感じさせる要因
演奏音 = 楽譜情報 + 演奏表現情報 constraint variable observation
音楽演奏中の楽譜からの“逸脱”
3
・テンポのゆらぎ
・音色変化
・ビブラートなど
・クレシェンドなど
音色 音高 リズム 音量
+ 奏法誤差 variable
アイディア:
演奏表現情報を推定し,奏法誤差を除去すれば,
稚拙な演奏を奏者の意図した演奏へ修正可能?
0 5 10 15 2035
40
45
50
55
60
65
テンポ
(B
PM
)
音符
真のテンポ曲線と奏法誤差
4
演奏のテンポは一定ではない:テンポ曲線
低熟練度の奏者は,意図通りにテンポを制御できない:奏法誤差
観測テンポ変動 = 真のテンポ曲線 + 奏法誤差
0 5 10 15 2035
40
45
50
55
60
65
0 5 10 15 2035
40
45
50
55
60
65アマチュア奏者 プロ奏者
テンポ
(B
PM
)
音符
0 5 10 15 2035
40
45
50
55
60
65
テンポ
(B
PM
)
音符
真のテンポ曲線と奏法誤差
5
演奏のテンポは一定ではない:テンポ曲線
低熟練度の奏者は,意図通りにテンポを制御できない:奏法誤差
提案修正法:
奏者の意図したテンポ変動を推定し,奏法誤差成分を除去
観測テンポ変動 = 真のテンポ曲線 + 奏法誤差
0 5 10 15 2035
40
45
50
55
60
65
0 5 10 15 2035
40
45
50
55
60
65アマチュア奏者 プロ奏者
推定 除去
テンポ
(B
PM
)
音符
真のテンポ曲線の推定に向けた方針
6
𝑡
継続時間
発音時刻
各音符の継続時間から,
真のテンポ曲線を推定
継続時間 𝑛 sec =60 sec/min
真のテンポ曲線 [𝑛] beats/min× 音価 beats
発音時刻 𝑛 (sec) = 継続時間 𝑚𝑛−1
𝑚=1(sec)
𝑦 𝑛 + 1 − 𝑦 𝑛 =60
𝑏 𝑛ℎ 𝑛 + 𝑒 𝑛 + 1 − 𝑒 𝑛
𝑦 𝑛 = 発音時刻
𝑏 𝑛 = 真のテンポ曲線
ℎ 𝑛 = 音価
𝑒 𝑛 = 奏法誤差 回帰
+ 奏法誤差 𝑛 (sec)
提案法の処理の流れ
7
音響信号 & 楽譜情報
真のテンポ曲線の推定
伸縮修正
修正された音響信号
発音時刻の候補集合の検出
候補集合から発音時刻を選択
→ 複素メルスペクトルKL情報量
音響信号 & 楽譜情報
真のテンポ曲線の推定
伸縮修正
修正された音響信号
発音時刻検出
発音時刻検出の特徴量: 従来法
8
音が変わると
強さが変わる
有効な特徴量は,楽器の種類や奏法に依存
音が変わると
速さが変わる
複素メルスペクトルKL情報量 (CMKLD)
9
人間は,奏法に関係なく発音時刻を知覚可能
→ 聴覚特性を考慮した新しい特徴量
複素メルスペクトルのKL情報量
→ 聴覚的な “驚き” をモデル化
𝐷 𝑘 = 𝑆𝜇,𝑘 log𝑆𝜇,𝑘
𝑆 𝜇,𝑘𝜇
𝑆 𝜇,𝑘 : 予測複素メルスペクトル
𝑆𝜇,𝑘 : 観測複素メルスペクトル
𝜇: メル対数周波数 = 𝑆𝜇,𝑘 log
𝑆𝜇,𝑘
𝑆 𝜇,𝑘
2
+ 𝜙𝜇,𝑘 − 𝜙 𝜇,𝑘2
𝜇
𝜙 𝜇,𝑘 : 予測複素メル位相スペクトル
𝜙𝜇,𝑘 : 観測複素メル位相スペクトル
振幅 位相
調波成分ビンに大きな重み
スペクトルをメル対数周波数軸に変換する関数
スペクトルのメル対数周波数変換
10
𝑋𝜔,𝑘 ∈ ℝΩ×𝐾
mel ̇ : 振幅/位相スペクトルを,メル対数周波数軸に変換
線形周波数
① メル軸に伸縮
線形周波数 メル対数周波数
伸縮
𝑋𝜇,𝑘mel ∈ ℝ𝑀×𝐾
メル対数周波数
② メル軸で均等にリサンプリング
CMKLDの計算手順
11
𝑋𝜇,𝑘mel = mel 𝑋𝜔,𝑘
𝑆𝜇,𝑘 =𝑋𝜇,𝑘
mel + 𝐶
𝑋𝜇,𝑘mel + 𝐶𝜇
× exp 𝑗𝜙𝜇,𝑘
𝑆 𝜇,𝑘 = 𝑆𝜇,𝑘−𝜏 × exp 𝑗𝜙 𝜇,𝑘
𝒟 𝑘 = 𝑆𝜇,𝑘 log𝑆𝜇,𝑘
𝑆 𝜇,𝑘𝜇
= 𝑆𝜇,𝑘 log𝑆𝜇,𝑘
𝑆 𝜇,𝑘
2
+ 𝜙𝜇,𝑘 − 𝜙 𝜇,𝑘2
𝜇
原点の選択に依存…
Step 1: 各スペクトルを,メル対数周波数領域に変換
Step 2: 複素メルスペクトルを計算
Step 3: CMKLDを計算
振幅スペクトル
𝜙𝜇,𝑘 = mel 𝜓𝜔,𝑘
位相スペクトル
𝜓 𝜔,𝑘 = 2𝜓𝜔,𝑘−2𝜏 − 𝜓𝜔,𝑘−𝜏
𝜙 𝜇,𝑘 = mel 𝜓 𝜔,𝑘
位相の予測 [Bello, 2004]
CMKLDの計算手順
12
𝑋𝜇,𝑘mel = mel 𝑋𝜔,𝑘
𝑆𝜇,𝑘 =𝑋𝜇,𝑘
mel + 𝐶
𝑋𝜇,𝑘mel + 𝐶𝜇
× exp 𝑗𝜙𝜇,𝑘
𝒟 𝑘 ≈ 𝑆𝜇,𝑘 log𝑆𝜇,𝑘
𝑆 𝜇,𝑘
2
+ Φ2
𝜇
, where Φ = princarg 𝜙𝜇,𝑘 − 𝜙 𝜇,𝑘
𝑆 𝜇,𝑘 = 𝑆𝜇,𝑘−𝜏 × exp 𝑗𝜙 𝜇,𝑘
𝒟 𝑘 = 𝑆𝜇,𝑘 log𝑆𝜇,𝑘
𝑆 𝜇,𝑘𝜇
= 𝑆𝜇,𝑘 log𝑆𝜇,𝑘
𝑆 𝜇,𝑘
2
+ 𝜙𝜇,𝑘 − 𝜙 𝜇,𝑘2
𝜇
原点の選択に依存…
原点位置に依存しない位相の乖離度
Step 1: 各スペクトルを,メル対数周波数領域に変換
Step 2: 複素メルスペクトルを計算
Step 3: CMKLDを計算
振幅スペクトル
𝜙𝜇,𝑘 = mel 𝜓𝜔,𝑘
位相スペクトル
𝜓 𝜔,𝑘 = 2𝜓𝜔,𝑘−2𝜏 − 𝜓𝜔,𝑘−𝜏
𝜙 𝜇,𝑘 = mel 𝜓 𝜔,𝑘
位相の予測 [Bello, 2004]
𝑹𝒆
𝑰𝒎
𝜙𝜇,𝑘
𝜙 𝜇,𝑘
CMKLDの計算手順
13
𝑋𝜇,𝑘mel = mel 𝑋𝜔,𝑘
𝑆𝜇,𝑘 =𝑋𝜇,𝑘
mel + 𝐶
𝑋𝜇,𝑘mel + 𝐶𝜇
× exp 𝑗𝜙𝜇,𝑘
𝒟 𝑘 ≈ 𝑆𝜇,𝑘 log𝑆𝜇,𝑘
𝑆 𝜇,𝑘
2
+ Φ2
𝜇
, where Φ = princarg 𝜙𝜇,𝑘 − 𝜙 𝜇,𝑘
𝑆 𝜇,𝑘 = 𝑆𝜇,𝑘−𝜏 × exp 𝑗𝜙 𝜇,𝑘
𝒟 𝑘 = 𝑆𝜇,𝑘 log𝑆𝜇,𝑘
𝑆 𝜇,𝑘𝜇
= 𝑆𝜇,𝑘 log𝑆𝜇,𝑘
𝑆 𝜇,𝑘
2
+ 𝜙𝜇,𝑘 − 𝜙 𝜇,𝑘2
𝜇
原点の選択に依存…
原点位置に依存しない位相の乖離度
Step 1: 各スペクトルを,メル対数周波数領域に変換
Step 2: 複素メルスペクトルを計算
Step 3: CMKLDを計算
振幅スペクトル
𝜙𝜇,𝑘 = mel 𝜓𝜔,𝑘
位相スペクトル
𝜓 𝜔,𝑘 = 2𝜓𝜔,𝑘−2𝜏 − 𝜓𝜔,𝑘−𝜏
𝜙 𝜇,𝑘 = mel 𝜓 𝜔,𝑘
位相の予測 [Bello, 2004]
𝑹𝒆
𝑰𝒎
𝜙𝜇,𝑘
𝜙 𝜇,𝑘
0 1 2 3 4 5 6 70
0.5
1
1.5
2
Time (sec)
CM
KLD
-1
-0.5
0
0.5
1
0 1 2 3 46600
6800
7000
7200
発音時刻選択
14
0 1 2 3 46600
6800
7000
7200
0 1 2 3 40
1
2
𝑛 1 2 3 4
Note value 0.5 0.5 2 0.5
Note number 67 69 69 71
楽譜情報
0.5 : 2
スコアアライメント
1 2 4 3
観測 F0 CMKLD & 候補集合
0 1 2 3 40
1
2
発音時刻選択 𝑡
提案法の処理の流れ
15
音響信号 & 楽譜情報
発音時刻検出
伸縮修正
修正された音響信号
多項式回帰による
真のテンポ曲線の推定
スペクトログラムの伸縮による
テンポ変動の修正
音響信号 & 楽譜情報
修正された音響信号
発音時刻検出
伸縮修正
真のテンポ曲線の推定
真のテンポ曲線の推定(1/2)
16
𝑦 𝑛 = 発音時刻
𝑏 𝑛 = 真のテンポ曲線
ℎ 𝑛 = 音価
𝑒 𝑛 = 奏法誤差成分
𝑏 𝑛 −1 = 𝑤𝑝 ℎ 𝑚
𝑛
𝑚=1
𝑃
𝑝=0
𝑝
多項式回帰モデルで
真のテンポ曲線を表現 ⋯ ⋯ +
𝑝 = 2 𝑝 = 3 𝑝 = 4
+
× 𝑤2 × 𝑤3 × 𝑤4 ⋯ ⋯
𝑏 𝑛
𝑛
𝑦 𝑛 + 1 − 𝑦 𝑛
where Δ𝑒 𝑛 = 𝑒 𝑛 + 1 − 𝑒 𝑛
= Δ𝑦 𝑛 = 60 𝑤𝑝 ℎ 𝑚
𝑛
𝑚=1
𝑃
𝑝=0
𝑝
ℎ 𝑛 + Δ𝑒 𝑛
音符の継続時間長
𝑦 𝑛 = 60
𝑏[𝑚]ℎ 𝑚 + 𝑒 𝑛
𝑛−1
𝑚=1
真のテンポ曲線の推定(2/2)
17
Δ𝑦 𝑛 = 60 𝑤𝑝 ℎ 𝑚
𝑛
𝑚=1
𝑃
𝑝=0
𝑝
ℎ 𝑛 + Δ𝑒 𝑛
回帰係数 𝑤𝑝 の計算 = 真のテンポ曲線の推定
Δ𝑦 𝑛 = 60 𝑤𝑝 ℎ 𝑚
𝑛
𝑚=1
𝑃
𝑝=0
𝑝
ℎ 𝑛 + Δ𝑒 𝑛 Δ𝑦 𝑛 = 60 𝑤𝑝 ℎ 𝑚
𝑛
𝑚=1
𝑃
𝑝=0
𝑝
ℎ 𝑛 + Δ𝑒 𝑛
: AICの最小化により決定
AIC = -93.2844 AIC = -91.8715 AIC = -88.9285
真のテンポ曲線
奏法誤差 𝑒[𝑛] に正規分布を仮定 [ Joder, et al., 2011]
⇒ 再生性より,Δ𝑒 𝑛 も正規分布に従う
𝑃 = 2 𝑃 = 5 𝑃 = 8
多項式の次数
0 10 2050
100
150
0 10 2050
100
150
0 10 2050
100
150
楽音の伸縮修正
18
パワースペクトログラムの時間方向への伸縮 [水野+, 2009]
IFFTの際のシフト幅の伸縮により,ノート長を制御
伸縮率 𝑛 =意図した音符の長さ 𝑛 ÷観測した音符の長さ 𝑛
=60
𝑏 𝑛ℎ 𝑛 ÷ 𝑦 𝑛 + 1 − 𝑦[𝑛]
テンポを下げる テンポを上げる
各音符のシフト幅を,伸縮率倍 ⇒ テンポを制御
Griffin-Limの反復STFT法により,位相を再構成
DEMO
19
0 5 10 15 20
60
80
100
120
140
160
Tem
po (
BPM
)
0 5 10 15 20
60
80
100
120
140
160
聴取実験(主観評価)
20
元演奏
修正演奏
1 2 3 4 5
評価尺度 テンポ変動の近さ
非常に遠い 非常に近い Violin Cello E. Guitar
奏者の意図したテンポ変動に基づき修正を行えるか?
アマチュアが,プロの演奏表現(テンポ変動)を模倣して演奏
⇒修正音のテンポ変動は,プロの演奏に近づくはず
擦弦・撥弦楽器ともに評点が上昇 & 有意差あり
⇒奏者の演奏意図を推定し,楽音修正が出来る
まとめと今後の課題
21
真のテンポ曲線を,多項式回帰で推定
パワースペクトログラムの伸縮で,テンポ変動を修正
提案法:
奏者の意図したテンポ変動を推定し,奏法誤差成分を除去
Time
パワー
Time
パワー
定常区間
今後の課題
音符内状態推定
⇒ 伸縮は,音符の定常区間でのみ行われるべき [安部, 2008]
22
Q&A