演奏意図関数に基づく 表現力を反映させた音響信号の伸縮修正mel log...

28
演奏意図関数に基づく 表現力を反映させた音響信号の伸縮修正 2012/12/21 音楽情報科学研究会 97回研究発表会 法政大学大学院 情報科学研究科 ○小泉悠馬, 伊藤克亘

Upload: others

Post on 31-Jan-2021

1 views

Category:

Documents


0 download

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