演奏意図関数に基づく 表現力を反映させた音響信号の伸縮修正mel log...
TRANSCRIPT
-
演奏意図関数に基づく 表現力を反映させた音響信号の伸縮修正
2012/12/21
音楽情報科学研究会 第97回研究発表会
法政大学大学院 情報科学研究科
○小泉悠馬, 伊藤克亘
-
演奏の楽譜からの逸脱 奏者は,楽譜を元に音楽をイメージし楽器を制御
・ “相対的な”音符の長さの比率 ・ 機械のように正確な演奏情報
2
リズムの揺らぎ 速い
遅い
・リズムの揺らぎ ・ビブラート
-
演奏の楽譜からの逸脱 奏者は,楽譜を元に音楽をイメージし楽器を制御
・ “相対的な”音符の長さの比率 ・ 機械のように正確な演奏情報
演奏誤差によりリズムがずれ, 奏者の表現が不明確に
⇒演奏表現が明確になるよう修正したい
3
・リズムの揺らぎ ・ビブラート
熟練度の低い奏者はイメージ通りに楽器をコントロールできない
⇒演奏表現 + 演奏誤差 = 逸脱
-
演奏表現のモデル化の先行研究
演奏の自動表情付け (Renconなど, 多数の研究)
演奏事例データベースや演奏ルールを使用
奏者自身の演奏表現情報のモデリング
歌唱𝐹0を,楽譜情報と演奏表現に分離 [Ohishi, 2011]
演奏表現を考慮した演奏誤差の推定
人間らしい演奏の抑揚を考慮したピアノの熟練度評価 [三浦, 2010]
⇒演奏表現は,スプライン曲線に従って変化すると仮定
↑包括的な演奏表現モデル / ↓個人性による演奏表現モデル
演奏音を,楽譜情報と演奏表現と演奏誤差に分解
4
-
演奏意図関数による演奏モデルと楽音修正
演奏表現を時間の関数として記述:“演奏意図関数”
演奏音 = 楽譜情報 + 演奏表現 + 演奏誤差
時間
逸脱量
音楽を イメージ
時間
逸脱量
𝒚𝒏 = 𝒕𝑛 + 𝑓(𝒕𝑛) + 𝒆𝑛
時間
逸脱量
5
-
演奏意図関数による演奏モデルと楽音修正
演奏表現を時間の関数として記述:“演奏意図関数”
演奏音 = 楽譜情報 + 演奏表現 + 演奏誤差
時間
逸脱量
音楽を イメージ
時間
逸脱量
𝒚𝒏 = 𝒕𝑛 + 𝑓(𝒕𝑛) + 𝒆𝑛
推定
修正
時間
逸脱量
6
-
発表の流れ
「リズム」に関する奏者の演奏表現情報を推定
推定した演奏表現情報に基づき,楽音を修正
もくじ 聴覚特性を考慮した発音時刻検出手法
反復処理を用いた新しい発音時刻検出
演奏意図関数の推定
演奏意図関数を用いた楽音の伸縮修正
評価実験
まとめ・今後の課題
7
-
8
従来の発音検出法は,得意な楽器が異なる[Bello 2005]
特徴量:位相変化やパワーの変化など
音が変わると 強さが変わる
発音時刻検出 #1.発音時刻候補の検出(1/2)
音が変わると 速さが変わる
-
発音時刻検出 #1.発音時刻候補の検出(1/2) 従来の発音検出法は,得意な楽器が異なる[Bello 2005]
特徴量:位相変化やパワーの変化など
⇒聴覚特性を考慮した,新しい発音時刻検出法
特徴量:サブバンドメルスペクトルのKL情報量
⇒スペクトルの周波数分布の変化,聴覚の驚き度
𝐷 𝑘 = 𝑆𝑗 𝑘 − 𝜏, 𝜔 log𝑆𝑗 𝑘 − 𝜏, 𝜔
𝑆𝑗 𝑘, 𝜔 𝜔𝑗
KLDを 計算
9
バイオリン
ギター
0 1 2 31
1.5
2
PH
A
0 1 2 30
0.5
1
Time (s)
CO
M
0 1 2 3 41
1.5
2
PH
A
0 1 2 3 40
0.5
1
Time (s)
CO
M
Time (s)
Fre
quen
cy (
Hz)
0 1 2 3 40
5000
10000
Time (s)
Fre
quen
cy (
Hz)
0 1 2 30
5000
10000
-
聴覚特性を考慮した,新しい発音時刻検出法
特徴量:サブバンドメルスペクトルのKL情報量
⇒スペクトルの周波数分布の変化,聴覚の驚き度
𝐷 𝑘 = 𝑆𝑗 𝑘 − 𝜏, 𝜔 log𝑆𝑗 𝑘 − 𝜏, 𝜔
𝑆𝑗 𝑘, 𝜔 𝜔𝑗
KLDを 計算
0 1 2 3 40
1
2
3
4
5
KL
D
Time(s)Time (s)
Fre
qu
ency
(M
el)
0 1 2 3 40
1000
2000
3000
4000
𝒴
10
発音時刻検出 #1.発音時刻候補の検出(2/2)
0 1000 2000 3000 4000
-40-20
02040
Mel log frequency (Mel)
Am
pli
tud
e (d
B)
0 1000 2000 3000 4000-40-20
02040
Am
pli
tud
e (d
B)
0 1000 2000 3000 4000
-40-20
02040
Mel log frequency (Mel)
Am
pli
tud
e (d
B)
変化が大きい ⇒驚きが大きい
変化が小さい ⇒驚きが小さい
𝜏 前の スペクトル
時刻 𝑘 でのメルスペクトル
-
聴覚特性を考慮した,新しい発音時刻検出法
特徴量:サブバンドメルスペクトルのKL情報量
⇒スペクトルの周波数分布の変化,聴覚の驚き度
𝐷 𝑘 = 𝑆𝑗 𝑘 − 𝜏, 𝜔 log𝑆𝑗 𝑘 − 𝜏, 𝜔
𝑆𝑗 𝑘, 𝜔 𝜔𝑗
KLDを 計算
0 1 2 3 40
1
2
3
4
5
KL
D
Time(s)Time (s)
Fre
qu
ency
(M
el)
0 1 2 3 40
1000
2000
3000
4000
𝒴
11
発音時刻検出 #1.発音時刻候補の検出(2/2)
-
発音時刻検出 #2.発音時刻の検出(1/2)
候補集合(𝒴)と累積相対音符長(𝒉𝑛)を用いた反復解法
相対音符長との整合性が取れる候補時刻を選択
𝒉𝑛 = 0, 2, 2.75, 3, 3.75, 4, 6, 6.75, 7, 7.75, 8𝑇
累積された相対的な音符の長さ
Time (s)
KL
D
0 1 2 3 40
5
楽譜情報の定義 テンポ×累積相対音符長+1音目の時刻
𝒕𝑛 = 𝜉𝒉𝑛 + 𝜓𝟏𝑛
発音時刻は, 楽譜から大きくずれないと仮定 楽譜からのKLD重み付距離が 最小のものを発音時刻とする
𝑦 𝑖 = min𝑚
|𝑦 𝑚 − 𝑡 𝑖 |
𝐷 𝑘𝑚, 𝑦 𝑚 ∈ 𝒴
反復アルゴリズムにより、 テンポと発音時刻を同時推定!
𝒴
12
-
発音時刻検出 #2.発音時刻の検出(2/2)
発音時刻と楽譜情報の同時最適化
Time (s)K
LD
0 1 2 3 40
5
楽譜情報のための目的関数𝐺 𝒚𝑛, 𝒕𝑛 = 𝑦 𝑖 − 𝑡 𝑖
2𝑖
テンポ 𝜉 と1音目の時刻 𝜓 推定
発音時刻のための目的関数
𝑦 𝑖 = min𝑚
|𝑦 𝑚 −𝑡 𝑖 |
𝐷 𝑘𝑚, 𝑦 𝑚 ∈ 𝒴
候補集合から,発音時刻を選択
繰り返し
Time (s)
KL
D
0 1 2 3 40
5
𝒉𝑛 = 0, 2, 2.75, 3, 3.75, 4, 6, 6.75, 7, 7.75, 8𝑇
テンポと発音時刻を同時推定!
𝒕𝑛
𝒚𝑛 𝒴
13
-
演奏意図関数の推定
𝒚𝒏 − 𝒕𝑛 = 𝑓(𝒕𝑛) + 𝒆𝑛
演奏音 - 楽譜情報 = 演奏表現 + 演奏誤差 = 逸脱量
演奏表現を,多項式回帰モデルとして表現し, リッジ回帰により, “演奏意図関数”を推定
演奏表現は,フレーズ内では,なめらかな曲線に従って変化 休符や伸ばし音にも音楽表現(音楽の流れ)は存在する ⇒誤差に過適合しない,なめらかな曲線として推定
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
-100
0
100
時間 (s)
逸脱
量 (
ms)
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
-100
0
100
時間 (s)
逸脱
量 (
ms)
一定のテンポの発音時刻より80ms遅れて発音
14
-
パワースペクトログラムの時間方向への伸縮[水野 2009]
IFFTの際のシフト幅の伸縮により,ノート長を制御
伸縮率: (楽譜情報+演奏意図関数のノート長) ÷ 観測ノート長
𝛼 𝑖 =𝑡 𝑖 + 1 + 𝑓 𝑡 𝑖 + 1 − 𝑡 𝑖 + 𝑓 𝑡 𝑖
𝑦 𝑖 + 1 − 𝑦 𝑖
演奏音の自動伸縮修正
15
1音目
1音目
1音目
1音目
2音目
2音目
2音目
2音目
3音目
3音目 3音目
3音目
時間
逸脱量
-
パワースペクトログラムの時間方向への伸縮[水野 2009]
IFFTの際のシフト幅の伸縮により,ノート長を制御
伸縮率: (楽譜情報+演奏意図関数のノート長) ÷ 観測ノート長
𝛼 𝑖 =𝑡 𝑖 + 1 + 𝑓 𝑡 𝑖 + 1 − 𝑡 𝑖 + 𝑓 𝑡 𝑖
𝑦 𝑖 + 1 − 𝑦 𝑖
演奏音の自動伸縮修正
16
1音目
1音目
1音目
1音目
2音目
2音目
2音目
2音目
3音目
3音目 3音目
3音目 1音目
1音目
1音目
1音目
2音目
2音目
2音目
2音目
3音目
3音目 3音目
3音目 𝛼 1 倍
時間
逸脱量
-
IFFTの際のシフト幅 = FFTの際のシフト幅 ×楽譜情報 +演奏意図関数
観測されたノート長さ
演奏意図関数を用いた演奏音の伸縮修正
Wagner: タンホイザーより大行進曲
行進曲らしいはっきりとした付点を守りながら,ゆったりと演奏するのが難しい
0 1 2 3 4
-100
0
100
時間 (s)
逸脱
量 (
ms)
後半にかけ発音を遅らせなめらかさを表現するが,付点が甘くなってしまう
演奏意図関数を用いて,各音符ごとに持続時間を伸縮
17
-
IFFTの際のシフト幅 = FFTの際のシフト幅 ×楽譜情報 +演奏意図関数
観測されたノート長さ
演奏意図関数を用いた演奏音の伸縮修正
Wagner: タンホイザーより大行進曲
行進曲らしいはっきりとした付点を守りながら,ゆったりと演奏するのが難しい
0 1 2 3 4
-100
0
100
時間 (s)
逸脱
量 (
ms)
後半にかけ発音を遅らせなめらかさを表現するが,付点が甘くなってしまう 後半の伸びやかさを保ちながら,付点がはっきりと修正された
演奏意図関数を用いて,各音符ごとに持続時間を伸縮
18
0 1 2 3 4
-100
0
100
時間 (s)
逸脱
量 (
ms)
-
評価実験
発音時刻の検出精度と,修正した楽音の聴取実験
アマチュア奏者が,プロの演奏を模倣して演奏
使用楽音データ
奏者
楽器演奏を3年以上経験しているアマチュア奏者
対象楽器
バイオリン、チェロ、エレキギター(エフェクトなし)
収録条件
標本化周波数: 48kHz,量子化ビット数: 16bit
擦弦楽器は防音室,ギターはライン入力により録音
19
-
評価実験(発音時刻の検出精度)
KLDを用いた発音時刻検出の精度を評価
検出時刻と,人手でラベリングした時刻の平均二乗誤差
評価のために,候補集合を用いた検出 ⇒ 特徴量を比較
特徴量:提案法(KLD),位相スペクトル(PHA),複素スペクトル(COM)
3種の楽器とも、提案法が最も誤差が小さい
比較特徴量は,先行研究と同様の結果 [Bello, 2005]
KLDは,低音楽器に対しては改善の余地があるが, 候補集合を用いた発音時刻検出に有効な特徴量
20
-
評価実験(聴取実験)
擦弦・撥弦楽器ともに評点が上昇 & 有意差あり(危険率5%) ⇒奏者の演奏表現情報を推定できている
⇒意図情報を元に楽音修正が出来る
提案法により,意図情報が明確になったか?
アマチュアが,プロの演奏表現(リズム)を模倣して演奏
実演奏音と修正音のリズム(演奏表現)の近さを評価
1 5 4 3 2
非常に 遠い
非常に 近い
評価尺度
左: 実演奏音 右: 修正音
被験者 演奏意図を聞き取れる
5年以上の音楽経験を持つ5名
21
-
まとめ・今後の課題
演奏意図関数を用いた演奏音の修正法を提案
⇒リズムにおける,奏者の演奏表現をモデル化
⇒演奏表現を反映しながら,奏法誤差を除去
今後の課題
音色,音量などにおける演奏表現のモデル化 演奏表現は,リズム以外の要素でも行われる
局所的なリズム変動への対応 現在のモデル化では,大局的な変動のみをモデル化
類似したリズムを利用した,局所的な表現のモデル化を検討
発想記号などの他の楽譜情報を考慮したモデル化
22
-
予備スライド
23
-
サブバンドメルスペクトル
24
-
発音検出特徴量の改善
25
三角窓によるサブバンド分割は,低域の周波数を過小評価
⇒位相スペクトルを考慮した,サブバンド分割を行わない特徴量
複素スペクトル同士のKL情報量
𝐷𝐾𝐿 = 𝑆 𝜔,𝑘 log𝑆 𝜔,𝑘𝑆𝜔,𝑘
𝜔
=
𝑆 𝜔,𝑘 log𝑆 𝜔,𝑘
𝑆𝜔,𝑘
2
+ 𝜙 𝜔,𝑘 − 𝜙𝜔,𝑘2
𝜔
振幅と位相に 差が大きいほど影響が大きい
位相を含めたスペクトルの予測 ⇒位相の等速回転に着目 [Bello, 2005]
𝜙 𝜔,𝑘 = princarg 2𝜓𝑘−𝜏 − 𝜓𝑘−2𝜏
𝑋 𝜔,𝑘 = 𝑋𝜔,𝑘−𝜏 exp 𝑗𝜙 𝜔,𝑘
メル軸の複素スペクトルの予測
実際に観測されたスペクトル
𝑆𝜔,𝑘 = mel|𝑋𝜔,𝑘|
|𝑋𝜔,𝑘|𝜔exp 𝑗mel 𝜙𝜔,𝑘
𝜏 時間前から予測されるスペクトル
𝑆 𝜔,𝑘 = mel|𝑋𝜔,𝑘−𝜏|
|𝑋𝜔,𝑘−𝜏|𝜔exp 𝑗mel 𝜙 𝜔,𝑘 低音域の楽器に対し,
サブバンド分割よりも高精度な検出
振幅スペクトルが大きい 周波数ほど影響が大きい
-
評価実験に用いたデータの例
26
0 2 4 6 80
1
2
3
4
Time (s)
KL
D
0 2 4 6 8-200
-100
0
100
200
Time (s)
Dev
ian
ce (
ms)
チェロ: ドヴォルザーク: 交響曲第8番 第1楽章 165-169小節目
自動修正
-
候補集合からの発音時刻の更新アルゴリズム
27
Step1 : 初期値の設定
𝜉 =𝐿𝑠
𝑓𝑠 × ℎ 𝑛, 𝜓 = 0
Step 2 : サブセットからの発音時刻の選択
𝑦 𝑖 = min𝑚
|𝑦 𝑚 − 𝑡 𝑖 |
𝐷 𝑘𝑚, 𝑦 𝑚 ∈ 𝒴
Step 3 : 楽譜情報パラメータの更新
𝜉 =𝒚𝑛
𝑇𝒉𝑛 − 𝜓𝟏𝑛𝑇𝒉𝑛
𝒉𝑛𝑇𝒉𝑛
, 𝜓 =𝒚𝑛
𝑇𝟏𝑛 − 𝜉𝟏𝑛𝑇𝒉𝑛
𝑛
-
演奏意図関数の推定式
28
演奏意図関数を多項式回帰モデルとして定義
𝑓 𝑡𝑛 =𝑡 1 0 ⋯ 𝑡 1 𝑀
⋮ ⋱ ⋮𝑡 𝑛 0 ⋯ 𝑡 𝑛 𝑀
𝑤0⋮
𝑤𝑀= 𝑩𝒘
逸脱量𝒛𝑛を定義 𝒛𝑛 = 𝒚𝑛 − 𝒕𝑛 = 𝑩𝒘 + 𝒆𝑛
回帰係数をリッジ回帰により推定 𝑅𝛾 𝑤 = 𝒛𝑛 − 𝑩𝒘
𝑇 𝒛𝑛 − 𝑩𝒘 + 𝛾𝒘1𝑇𝒘1