奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸...

22
奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法 2013/09/06 @ FIT 2013 法政大学大学院 情報科学研究科 ◎小泉 悠馬, 伊藤 克亘

Transcript of 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸...

Page 1: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

奏者の意図したテンポ変動の推定に

基づく演奏録音の自動伸縮修正法

2013/09/06 @ FIT 2013

法政大学大学院 情報科学研究科

◎小泉 悠馬, 伊藤 克亘

Page 2: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

演奏表現による,楽譜からの逸脱

⇒ 奏者ごとに異なる,演奏の個性,表現力

演奏音 = 楽譜情報 + 演奏表現情報 constraint variable observation

音楽演奏中の楽譜からの“逸脱”

2

・テンポのゆらぎ

・音色変化

・ビブラートなど

・クレシェンドなど

音色 音高 リズム 音量

Page 3: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

演奏表現による,楽譜からの逸脱

⇒ 奏者ごとに異なる,演奏の個性,表現力

楽器の制御ミスによる,楽譜からの逸脱

⇒ 稚拙な演奏と感じさせる要因

演奏音 = 楽譜情報 + 演奏表現情報 constraint variable observation

音楽演奏中の楽譜からの“逸脱”

3

・テンポのゆらぎ

・音色変化

・ビブラートなど

・クレシェンドなど

音色 音高 リズム 音量

+ 奏法誤差 variable

アイディア:

演奏表現情報を推定し,奏法誤差を除去すれば,

稚拙な演奏を奏者の意図した演奏へ修正可能?

Page 4: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

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

)

音符

Page 5: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

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

)

音符

Page 6: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

真のテンポ曲線の推定に向けた方針

6

𝑡

継続時間

発音時刻

各音符の継続時間から,

真のテンポ曲線を推定

継続時間 𝑛 sec =60 sec/min

真のテンポ曲線 [𝑛] beats/min× 音価 beats

発音時刻 𝑛 (sec) = 継続時間 𝑚𝑛−1

𝑚=1(sec)

𝑦 𝑛 + 1 − 𝑦 𝑛 =60

𝑏 𝑛ℎ 𝑛 + 𝑒 𝑛 + 1 − 𝑒 𝑛

𝑦 𝑛 = 発音時刻

𝑏 𝑛 = 真のテンポ曲線

ℎ 𝑛 = 音価

𝑒 𝑛 = 奏法誤差 回帰

+ 奏法誤差 𝑛 (sec)

Page 7: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

提案法の処理の流れ

7

音響信号 & 楽譜情報

真のテンポ曲線の推定

伸縮修正

修正された音響信号

発音時刻の候補集合の検出

候補集合から発音時刻を選択

→ 複素メルスペクトルKL情報量

音響信号 & 楽譜情報

真のテンポ曲線の推定

伸縮修正

修正された音響信号

発音時刻検出

Page 8: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

発音時刻検出の特徴量: 従来法

8

音が変わると

強さが変わる

有効な特徴量は,楽器の種類や奏法に依存

音が変わると

速さが変わる

Page 9: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

複素メルスペクトルKL情報量 (CMKLD)

9

人間は,奏法に関係なく発音時刻を知覚可能

→ 聴覚特性を考慮した新しい特徴量

複素メルスペクトルのKL情報量

→ 聴覚的な “驚き” をモデル化

𝐷 𝑘 = 𝑆𝜇,𝑘 log𝑆𝜇,𝑘

𝑆 𝜇,𝑘𝜇

𝑆 𝜇,𝑘 : 予測複素メルスペクトル

𝑆𝜇,𝑘 : 観測複素メルスペクトル

𝜇: メル対数周波数 = 𝑆𝜇,𝑘 log

𝑆𝜇,𝑘

𝑆 𝜇,𝑘

2

+ 𝜙𝜇,𝑘 − 𝜙 𝜇,𝑘2

𝜇

𝜙 𝜇,𝑘 : 予測複素メル位相スペクトル

𝜙𝜇,𝑘 : 観測複素メル位相スペクトル

振幅 位相

調波成分ビンに大きな重み

Page 10: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

スペクトルをメル対数周波数軸に変換する関数

スペクトルのメル対数周波数変換

10

𝑋𝜔,𝑘 ∈ ℝΩ×𝐾

mel ̇ : 振幅/位相スペクトルを,メル対数周波数軸に変換

線形周波数

① メル軸に伸縮

線形周波数 メル対数周波数

伸縮

𝑋𝜇,𝑘mel ∈ ℝ𝑀×𝐾

メル対数周波数

② メル軸で均等にリサンプリング

Page 11: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

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]

Page 12: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

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]

𝑹𝒆

𝑰𝒎

𝜙𝜇,𝑘

𝜙 𝜇,𝑘

Page 13: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

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

Page 14: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

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

発音時刻選択 𝑡

Page 15: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

提案法の処理の流れ

15

音響信号 & 楽譜情報

発音時刻検出

伸縮修正

修正された音響信号

多項式回帰による

真のテンポ曲線の推定

スペクトログラムの伸縮による

テンポ変動の修正

音響信号 & 楽譜情報

修正された音響信号

発音時刻検出

伸縮修正

真のテンポ曲線の推定

Page 16: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

真のテンポ曲線の推定(1/2)

16

𝑦 𝑛 = 発音時刻

𝑏 𝑛 = 真のテンポ曲線

ℎ 𝑛 = 音価

𝑒 𝑛 = 奏法誤差成分

𝑏 𝑛 −1 = 𝑤𝑝 ℎ 𝑚

𝑛

𝑚=1

𝑃

𝑝=0

𝑝

多項式回帰モデルで

真のテンポ曲線を表現 ⋯ ⋯ +

𝑝 = 2 𝑝 = 3 𝑝 = 4

+

× 𝑤2 × 𝑤3 × 𝑤4 ⋯ ⋯

𝑏 𝑛

𝑛

𝑦 𝑛 + 1 − 𝑦 𝑛

where Δ𝑒 𝑛 = 𝑒 𝑛 + 1 − 𝑒 𝑛

= Δ𝑦 𝑛 = 60 𝑤𝑝 ℎ 𝑚

𝑛

𝑚=1

𝑃

𝑝=0

𝑝

ℎ 𝑛 + Δ𝑒 𝑛

音符の継続時間長

𝑦 𝑛 = 60

𝑏[𝑚]ℎ 𝑚 + 𝑒 𝑛

𝑛−1

𝑚=1

Page 17: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

真のテンポ曲線の推定(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

Page 18: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

楽音の伸縮修正

18

パワースペクトログラムの時間方向への伸縮 [水野+, 2009]

IFFTの際のシフト幅の伸縮により,ノート長を制御

伸縮率 𝑛 =意図した音符の長さ 𝑛 ÷観測した音符の長さ 𝑛

=60

𝑏 𝑛ℎ 𝑛 ÷ 𝑦 𝑛 + 1 − 𝑦[𝑛]

テンポを下げる テンポを上げる

各音符のシフト幅を,伸縮率倍 ⇒ テンポを制御

Griffin-Limの反復STFT法により,位相を再構成

Page 19: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

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

Page 20: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

聴取実験(主観評価)

20

元演奏

修正演奏

1 2 3 4 5

評価尺度 テンポ変動の近さ

非常に遠い 非常に近い Violin Cello E. Guitar

奏者の意図したテンポ変動に基づき修正を行えるか?

アマチュアが,プロの演奏表現(テンポ変動)を模倣して演奏

⇒修正音のテンポ変動は,プロの演奏に近づくはず

擦弦・撥弦楽器ともに評点が上昇 & 有意差あり

⇒奏者の演奏意図を推定し,楽音修正が出来る

Page 21: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

まとめと今後の課題

21

真のテンポ曲線を,多項式回帰で推定

パワースペクトログラムの伸縮で,テンポ変動を修正

提案法:

奏者の意図したテンポ変動を推定し,奏法誤差成分を除去

Time

パワー

Time

パワー

定常区間

今後の課題

音符内状態推定

⇒ 伸縮は,音符の定常区間でのみ行われるべき [安部, 2008]

Page 22: 奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸 …奏者の意図したテンポ変動の推定に 基づく演奏録音の自動伸縮修正法

22

Q&A