アーカイブ / Audio
鼻歌の音高と発声時刻を、CNNと動的計画法で音符に変える
Dynamic HumTrans
Dynamic HumTransの原論文から掲載した図です。細部はクリックして拡大できます。
原論文の図の説明を読む
Figure 1: Examples where the heuristic algorithm for onset and offset detection succeeds (top) and fails (bottom).
概要
- 単旋律の鼻歌をCQTとCNNで時点ごとの音符候補に変え、動的計画法で音符列と発声時刻を求める。
- 著者らはHumTransの時刻注釈を補正し、学習用6,827件とテスト用440件を残したと報告した。
- テストセットの音高・開始時刻F1は、オクターブ差を許す条件で0.673、オクターブまで一致させる条件で0.651だった。
補足:編集した模式図で仕組みを確認する
VISUAL EXPLAINER
図でつかむ、Dynamic HumTransの仕組み
- 01鼻歌録音
- 02CQT・倍音整列
- 03CNNの音符候補
- 04動的計画法で選択
- 05音符と発声時刻
原論文の説明をもとにした模式図です。処理の細部は省略しています。
研究の背景
Dynamic HumTransは、鼻歌の録音を音符の列に変え、各音の高さと始まり・終わりを求める手法である。楽器を使わずに旋律を記録したり、鼻歌から曲を探したりする際の入力に関わる。
学習に用いるHumTransは単旋律の鼻歌のデータセットだが、著者らは音符の開始・終了時刻を示す正解注釈が音声とずれていると報告した。このずれは、時刻を学ぶモデルの学習と、転写結果を正解と照合する評価に影響する。
手法
録音をCQTという、音の高さごとの成分を時間に沿って並べる表現に変える。さらに倍音整列で、声に含まれる主な音とその整数倍の周波数成分を近くに配置する。CNNは近くの特徴をまとめて捉えるネットワークで、各時点について音符または無音の候補に得点を付ける。
例えば一音ずつ区切って歌った短い旋律では、各時点に複数の音符候補が並ぶ。動的計画法は、許されたつながり方の中から合計得点が最も高い経路を選ぶ手順で、別の音符に移る前に無音を通る条件を課す。短すぎる音符を除いた後、同じ音符が続く範囲から開始・終了時刻を読む。
新規性
著者らの貢献は、単旋律の鼻歌について、各時点の音符候補をCNNで推定し、動的計画法でつながり方を整えてから音符の開始・終了時刻を読む構成にある。開始・終了時刻を先に推定して音高判定に使う方法とは、処理の順序が異なる。
もう一つの貢献は、HumTransの時刻注釈を音量の変化から補正し、検出した音符数が元の注釈と一致する録音を選んだ点である。著者らは、この選別後のデータを学習に用いた。
従来手法との違い
比較対象は、HumTrans側がテスト用の推定MIDIを公開していたVOCANO、JDC-STP、SheetSage、MIR-ST500と、著者らがテスト音声から推定MIDIを作ったbasic_pitchである。MIDIは音符の音高や時刻を記録する形式で、各手法の結果を正解注釈と照合した。
著者らによると、時点ごとに最高得点の音符を選ぶだけでは割り当てが細かく乱れる。提案法は無音を挟む遷移と最短音符長で整えるが、この後処理だけを外した成績は確認できた本文の範囲では示されていない。
実験結果
著者らはHumTransのテストセットで、音高と開始時刻が正解に合う音符の適合率・再現率・F1を比較した。F1は適合率と再現率を合わせた指標で、開始時刻の許容差は50ミリ秒、終了時刻は判定対象外である。オクターブ差を許す条件のF1は提案法0.673、比較対象中で最高のMIR-ST500は0.604だった。
オクターブまで一致させる条件では、提案法0.651、MIR-ST500は0.361だった。著者らは注釈補正後に学習用13,080件中6,827件、テスト用769件中440件を残したと報告する。ただし結果表は「テストセット」と記しており、集計がこの440件に限られるかは確認できた本文の範囲では明示されていない。
応用の可能性
編集上の応用案 · 論文が実証した用途とは区別しています。
編集上の応用案:作曲メモの入力画面で、利用者が録音した単旋律の鼻歌から、音高と開始・終了時刻を持つ音符列を仮作成する。利用者が再生しながら音高や区切りを直し、確定した音符列を保存する流れを想定する。
適応に必要なのは、対象画面で想定する録音条件の音声と、各音符の音高・開始・終了時刻を人手で付けた正解ラベルである。入力用のセンサーはマイクとし、学習や調整の前に、ラベルの時刻が実際の発声と合うかを確認する。
応用先の候補からNauhに相談できます。
導入時の検証
導入時の検証案 · 対象データでの再評価が必要です。
導入時の検証案:対象画面のマイクで単旋律の鼻歌を集め、各音符の音高と開始・終了時刻を人手で付ける。学習用と評価用の音声を分け、発声とラベルのずれを点検してから、対象の録音条件に合わせてモデルを調整する。
同じ評価用録音をbasic_pitchにも入力し、両者の結果を人手ラベルと照合する。開始時刻50ミリ秒以内での音高・開始時刻F1に加え、終了時刻のずれと利用者が修正した音符数を測り、転写精度と編集作業への影響を別々に判断する。
限界と課題
著者らが扱ったのは明瞭な単旋律の鼻歌で、複数の音が重なる素材への拡張を今後の課題に挙げている。時刻注釈の補正でも、検出音符数が元の注釈と一致した録音だけを残しており、除外した録音の時刻まで正せたという報告ではない。
編集上の検証事項は、音と音の間に明確な無音がない歌い方や、録音条件が変わる場合の区切り精度である。終了時刻は掲載された一致判定に含まれないため、現場で人手確認したラベルを用いて別途測る必要がある。
出典
元のタイトル・要旨を確認する(英語)
Dynamic HumTrans: Humming Transcription Using CNNs and Dynamic Programming
We propose a novel approach for humming transcription that combines a CNN-based architecture with a dynamic programming-based post-processing algorithm, utilizing the recently introduced HumTrans dataset. We identify and address inherent problems with the offset and onset ground truth provided by the dataset, offering heuristics to improve these annotations, resulting in a dataset with precise annotations that will aid future research. Additionally, we compare the transcription accuracy of our method against several others, demonstrating state-of-the-art (SOTA) results. All our code and corrected dataset is available at https://github.com/shubham-gupta-30/humming_transcription
論文本体の取得範囲に基づく解説。AIが作成した未校閲の記事です。性能の数値は著者の評価条件に依存します。応用例と検証計画は編集上の提案です。解説更新:2026-10-01




