JP2009139769A - 信号処理装置、信号処理方法及びプログラム - Google Patents

信号処理装置、信号処理方法及びプログラム Download PDF

Info

Publication number
JP2009139769A
JP2009139769A JP2007317722A JP2007317722A JP2009139769A JP 2009139769 A JP2009139769 A JP 2009139769A JP 2007317722 A JP2007317722 A JP 2007317722A JP 2007317722 A JP2007317722 A JP 2007317722A JP 2009139769 A JP2009139769 A JP 2009139769A
Authority
JP
Japan
Prior art keywords
beat
tempo
beat length
audio signal
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007317722A
Other languages
English (en)
Other versions
JP4640407B2 (ja
Inventor
Haruto Takeda
晴登 武田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2007317722A priority Critical patent/JP4640407B2/ja
Priority to US12/328,236 priority patent/US7863512B2/en
Priority to CN2008101857187A priority patent/CN101452696B/zh
Publication of JP2009139769A publication Critical patent/JP2009139769A/ja
Application granted granted Critical
Publication of JP4640407B2 publication Critical patent/JP4640407B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Auxiliary Devices For Music (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】オーディオ信号のテンポが変化する場合でも、オーディオ信号から適切なビートを求めること。
【解決手段】オーディオ信号を処理する信号処理装置10において、オーディオ信号のレベルに基づいて発音時刻Tを検出する発音時刻検出部12と;発音時刻の間隔Xが与えられたときにビート長Qである確率を表す目的関数P(Q|X)と、目的関数P(Q|X)を単調増加させるビート長Qの更新を導く補助関数とを設定し、補助関数の最大化を繰り返すことにより補助関数を収束させて、ビート長Qを求めるビート長算出部18とを備える信号処理装置10が提供される。
【選択図】図3

Description

本発明は、信号処理装置、信号処理方法及びプログラムに関する。
楽曲などのオーディオ信号のテンポを検出する手法としては、例えば、オーディオ信号の発音開始時刻の自己相関関数のピーク部分とレベルを観察することにより、発音時刻の周期性を解析し、その解析結果から、1分間の4分音符の数であるテンポを検出する方法が知られている。例えば、特許文献1記載のような音楽解析技術では、オーディオ信号のパワー(信号レベル)の短時間平均の時間変化(以下「パワー包絡(power envelope)」という。)を加工したレベル信号をフーリエ解析してパワースペクトルを求め、このパワースペクトルのピークを求めることでテンポを検出し、さらに、後処理としてパワースペクトルから得た特徴量を用いてテンポを2倍に補正している。
特開平2005−274708号公報
しかしながら、上記特許文献1記載の音楽解析技術では、楽曲全体のテンポなど、少なくとも数十秒区間にわたる一定のテンポを求めるものであり、個々の音長(例えば0.2〜2秒程度)の変動までも考慮したより細かい範囲でのテンポやビートを推定することはできない。解析対象内の細かい範囲でのテンポやリズムなどは対象としておらず、また、数十秒程度の区間の中でテンポが変化する場合(例えば、1つの楽曲内でテンポが徐々に速くなる/遅くなる場合)には対応していない。
また、その他のテンポ推定手法としては、一定の時間長(数十秒程度)に渡る一定のテンポを求める手法がある。例えば、(1)オーディオ信号のパワーの時間変化の自己相関関数から求める手法がある。この手法は、当該自己相関関数をフーリエ変換したものがパワースペクトルであることを考慮すると、基本的には、上記の音楽解析技術と同様な手法でテンポを求めるものであることが分かる。また、(2)発音時刻の間隔で最も出現頻度が高い時間長をテンポと推定する手法もある。
しかし、以上の手法はいずれも、オーディオ信号が表す音楽のテンポが一定であることを前提としており、テンポが一定でない場合には対応できない。テンポが一定ではない、通常の人間の演奏家による生の音楽を録音したオーディオ信号には対応できず、したがって、適切なビートを求められない。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、オーディオ信号のテンポが変化する場合でも、オーディオ信号から適切なビートを求めることが可能な、新規かつ改良された信号処理装置、信号処理方法及びプログラムを提供することにある。{ビートも変化することを言いたい。}
上記課題を解決するために、本発明のある観点によれば、オーディオ信号を処理する信号処理装置において:前記オーディオ信号のレベルに基づいて発音時刻Tを検出する発音時刻検出部と;前記発音時刻の間隔Xが与えられたときにビート長Qである確率を表す目的関数P(Q|X)と、前記目的関数P(Q|X)を単調増加させる前記ビート長Qの更新を導く補助関数とを設定し、前記補助関数の最大化を繰り返すことにより前記補助関数を収束させて、前記ビート長Qを求めるビート長算出部と;を備えることを特徴とする、信号処理装置が提供される。
前記補助関数は、前記オーディオ信号のテンポZを隠れ変数とし、前記隠れ変数の期待値をとることにより得られる事後確率P(Q|X)の対数を単調増加させる前記ビート長Qの更新アルゴリズムに基づいて設定されてもよい。
前記ビート長算出部は、EMアルゴリズムにより前記補助関数を導出するようにしてもよい。
前記ビート長算出部は、前記オーディオ信号のパワーの時間変化の自己相関関数に基づいて、前記オーディオ信号のテンポZの初期確率分布を求め、当該テンポZの初期確率分布を、前記補助関数に含まれる前記テンポZの確率分布の初期値として用いるようにしてもよい。
前記ビート長算出部により求められた前記ビート長Qと、前記発音時刻の間隔Xとに基づいて、前記オーディオ信号のテンポZを求めるテンポ算出部をさらに備えるようにしてもよい。
また、上記課題を解決するために、本発明の別の観点によれば、オーディオ信号を処理する信号処理方法において:前記オーディオ信号のレベルに基づいて発音時刻Tを検出する発音時刻検出ステップと;前記発音時刻の間隔Xが与えられたときにビート長Qである確率を表す目的関数P(Q|X)と、前記目的関数P(Q|X)を単調増加させる前記ビート長Qの更新を導く補助関数とを設定し、前記補助関数の最大化を繰り返すことにより前記補助関数を収束させて、前記ビート長Qを求めるビート長算出ステップと;を含むことを特徴とする、信号処理方法が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、前記オーディオ信号のレベルに基づいて発音時刻Tを検出する発音時刻検出ステップと;前記発音時刻の間隔Xが与えられたときにビート長Qである確率を表す目的関数P(Q|X)と、前記目的関数P(Q|X)を単調増加させる前記ビート長Qの更新を導く補助関数とを設定し、前記補助関数の最大化を繰り返すことにより前記補助関数を収束させて、前記ビート長Qを求めるビート長算出ステップと;をコンピュータに実行させることを特徴とする、プログラムが提供される。
上記構成によれば、オーディオ信号のレベルに基づいて発音時刻Tが検出され、発音時刻の間隔Xが与えられたときにビート長Qである確率を表す目的関数P(Q|X)と、目的関数P(Q|X)を単調増加させるビート長Qの更新を導く補助関数とが設定され、補助関数の最大化を繰り返すことにより補助関数を収束させて、ビート長Qが求められる。かかる構成により、オーディオ信号から検出した発音時刻の間隔について最も尤もらしいビート長を求めることによって、オーディオ信号からビートを確率的に推定できる。
以上説明したように本発明によれば、オーディオ信号のテンポが変化し、かつ、ビートも変動する場合でも、オーディオ信号から適切なビートを求めることができる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
(第1の実施形態)
以下に、本発明の第1の実施形態にかかる信号処理装置、信号処理方法及びプログラムについて説明する。
まず、本実施形態の概要について説明する。本実施形態は、テンポが変動する音楽のオーディオ信号(音響信号等を含む音声信号を意味する。)を解析処理して、音楽のビートの打点となる時刻と、ビートの時間間隔[秒/拍]を表すテンポを求めるビート解析処理を行う。
音楽のビートは、オーディオ信号が表す音楽(楽曲、音響等)の音楽的特徴を表す特徴量であって、音楽の推薦や検索などに用いる重要な特徴量として使用される。このビートは、複雑な音楽解析を行なうための前処理や、ロボットダンスや他のマルチメディアと音楽を同期させるためにも必要とされ、幅広い用途がある。
演奏された音の長さは、ビートとテンポという2つの音楽的な時間要素から決定される。したがって、演奏された音の長さからビートとテンポの両方を同時に決定することは、数理的には一意に解を決定することのできない不良設定問題である。さらに、テンポやビートとなる時刻が変動する場合は、ビートを精度良く求めることは困難である。
本実施形態では、音楽等のオーディオ信号からビートを求めるために、確率モデルを用いたビート解析を行う。このビート解析では、オーディオ信号から検出した発音時刻について最も尤もらしいビートを求めることによって、オーディオ信号からビートを確率的に推定する。即ち、本実施形態にかかるビート解析では、オーディオ信号の発音時刻に関する情報が与えられたときに、この発音時刻Tに対応する発音がオーディオ信号におけるビートである確率を目的関数として設定し、この目的関数を最大化するビートを求める。テンポの存在を確率的に扱う枠組みには、オーディオ信号のパワー包絡の自己相関関数から求められるテンポの確からしさを表す情報(テンポの確率分布)を取り入れることができるので、頑健な推定が行える。また、1つの楽曲内でテンポが徐々に速くなる/遅くなるなど、音楽のテンポが変化する場合であっても、当該音楽のテンポを推定できる。
また、本実施形態にかかる確率モデルでは、音楽中で演奏されるビートとその演奏で変動するテンポから発音時刻の系列が生成される過程を、確率的にモデル化する。テンポを隠れ変数として含む確率モデルを用いたビート推定において、隠れ変数であるテンポの値を一意に定めるの(言葉使いですが「限定」ではなく、テンポの存在を確率的に考えて、上記目的関数の極大値(準最適解)を求める。これは、目的関数を増加させるビート更新を行うための補助関数を用いて実現する。補助関数(Q関数)は、テンポを隠れ変数とし、隠れ変数の期待値から得られる事後確率の対数を単調増加させるビートの更新アルゴリズムであり、具体的には、例えばEMアルゴリズム(Expectation-Maximization)である。
このような確率モデルを用いたビート解析では、複数の要素(発音時刻、ビート、テンポなど)を確率という枠組みにより、複数のモデルとその目的関数を、論理的整合性をもって統合可能であるという利点がある。
次に、図1を参照して、本明細書における用語について定義する。図1は、ビートと発音時刻との関係を示す説明図である。
・「ビート解析」は、オーディオ信号が表す音楽演奏の音楽的な時刻(単位:[拍])を求める処理である。
・「発音時刻(Onset time)」は、オーディオ信号に含まれる楽音の開始時刻であり、実時間軸上の時刻で表される。図1に示すように、「発音時刻」は、オーディオ信号に含まれる発音イベントの発生時刻を表す。以下では、オーディオ信号に含まれる個々の楽音の発音時刻をt[1],t[2],・・・, t[N]と称し、これらを総称して「発音時刻T」と称する(T= t[1], t[2],・・・, t[N])。
・「発音時刻の間隔(IOI:Inter-Onset Interval)」は、上記発音時刻の実時間上の時間間隔(単位:[秒])である。図1に示すように、「発音時刻の間隔」は、オーディオ信号に含まれる複数の発音イベントのうち、ビートに対応する大きな発音イベント間の時間を表す。以下では、オーディオ信号に含まれる個々の楽音の間の発音時刻の間隔をx[1],x[2],・・・, x[N]と称し、これらを総称して「発音時刻の間隔X(若しくは発音時刻間隔X)」と称する(X= x[1], x[2],・・・, x[N])。
・「ビート(Beat)」は、オーディオ信号の基準点(例えば、音楽の演奏開始)から数えた拍によって指定される音楽的な時刻である。このビートは、オーディオ信号に含まれる楽音の音楽的時間軸上の開始時刻を表し、1拍、2拍、・・・といったように、音楽的な時刻の単位である拍によって指定される。
・「ビート長(Beat length)」は、ビートの間隔(ビートによって指定される音楽的な時点の間の長さ)であり、単位は[拍]である。このビート長は、音楽的時間上の時間間隔を表し、上述した実時間軸上の「発音時刻の間隔」に対応する。以下では、オーディオ信号に含まれる個々の楽音の間のビート長をq[1],
q[2],・・・, q[N]と称し、これらを総称して「ビート長Q」と称する(Q= q[1],q[2],・・・, q[N])。
・「テンポ(Tempo)」は、発音時刻の間隔[秒]をビート長[拍]で除算した値(単位:[秒/拍])、又は、ビート長[拍]を発音時刻の間隔[秒]で除算した値[単位:拍/分]である。テンポは、発音時刻の間隔[秒]をビート長[拍]に変換するパラメータとして機能する。本実施形態では、前者を採用し、テンポの単位として[秒/拍]を用いるが、一般的には[BPM:
beats per minute]又は[拍/分]が用いられる。以下では、オーディオ信号に含まれる個々の楽音でのテンポを、z[1], z[2],・・・,
z[N]と称し、これらを総称して「テンポZ」と称する(Z= z[1], z[2],・・・, z[N])。
かかるテンポZは、発音時刻間隔(IOI)Xとビート長Qとの関係を表すパラメータとなる(Z=X/Q)。発音時刻間隔Xとビート長QとテンポZとの関係から分かるように、一般的に、ビート長Qは、発音時刻間隔X及びテンポZの両者が与えられなければ求められない。しかし、一般にオーディオ信号から発音時刻間隔X及びテンポZの両者を正確に求めることは難しい。そこで、本実施形態では、オーディオ信号から発音時刻間隔Xの候補として発音時刻Tを求めるとともに、テンポZを所定の固定値に限定せずに、確率的にテンポZの値を扱うことで、テンポの時間変化やビートの変動に対してより頑健なビート長Qの推定を可能にする。
次に、上記のビート解析処理を実行する信号処理装置の構成について説明する。本実施形態にかかる信号処理装置は、オーディオ信号を処理するためのプロセッサ、メモリ等を有する機器であれば、各種の電子機器に適用できる。具体例を挙げると、信号処理装置は、例えば、パーソナルコンピュータ(Personal Computer)等の情報処理装置、PDA(Personal Digital Assistant)、家庭用ゲーム機、DVD/HDDレコーダー等の記録再生装置、テレビジョン受像器等の情報家電、或いは、携帯型音楽プレーヤ、AVコンポ、携帯ゲーム機器、携帯電話、PHS等の携帯端末、デジタルカメラ、ビデオカメラ、車載用オーディオ機器、ロボット、電子ピアノ等の電子楽器、無線/有線の通信機器などに適用できる。
また、この信号処理装置が取り扱うオーディオ信号コンテンツは、例えば、音楽(楽曲、音響など)、講演、ラジオ番組等の音声(Audio)コンテンツに含まれるオーディオ信号のみならず、映画、テレビジョン番組、ビデオプログラム等の映像(Video)コンテンツや、ゲーム、ソフトウェアに含まれるオーディオ信号であってもよい。また、信号処理装置に入力されるオーディオ信号は、例えば、音楽CD、DVD、メモリカード等のリムーバブル記憶媒体や、HDD、半導体メモリなど各種の記憶装置から読み出されたオーディオ信号であってもよいし、インターネット、電話回線網、衛星通信網、放送通信網等の公衆回線網や、LAN(Local Area Network)等の専用回線網などのネットワークを介して受信されたオーディオ信号であってもよい。
ここで、図2を参照して、本実施形態にかかる信号処理装置10のハードウェア構成について説明する。なお、図2では、信号処理装置10が例えばパーソナルコンピュータで構成された例を示しているが、本発明の信号処理装置はかかる例に限定されるものではなく、上述した各種の電子機器に適用できる。
図2に示すように、信号処理装置10は、例えば、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、ホストバス104と、ブリッジ105と、外部バス106と、インタフェース107と、入力装置108と、出力装置109と、ストレージ装置110(例えばHDD)と、ドライブ111と、接続ポート112と、通信装置113とを備える。
CPU101は、演算処理装置および制御装置として機能し、各種プログラムに従って動作し、信号処理装置10内の各部を制御する。このCPU101は、ROM102に記憶されているプログラム、或いは、ストレージ装置110からRAM103にロードされたプログラムに従って、各種の処理を実行する。ROM102は、CPU101が使用するプログラムや演算パラメータ等を記憶するとともに、CPU101からストレージ装置110へのアクセスを軽減するためのバッファーとしても機能する。RAM103は、CPU101の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。これらはCPUバスなどから構成されるホストバス104により相互に接続されている。ホストバス104は、ブリッジ105を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス106に接続されている。
入力装置108は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、レバーなどから構成される。信号処理装置10のユーザは、この入力装置108を操作することにより、信号処理装置10に対して各種のデータを入力したり、処理動作を指示したりすることができる。出力装置109は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD)装置などの表示装置と、スピーカ等の音声出力装置などで構成される。
ストレージ装置110は、各種のデータを格納するための装置であり、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置110は、記憶媒体であるハードディスクと、ハードディスクを駆動するドライブとから構成され、CPU101が実行するプログラムや各種データを格納する。ドライブ111は、リムーバブルメディア用の駆動装置であり、信号処理装置10に内蔵、或いは外付けされる。このドライブ111は、信号処理装置10に搭載されたCD、DVD、Blu−Rayディスク、メモリカード等のリムーバブルメディアに対して、各種のデータを書き込み/読み出しする。例えば、ドライブ111は、音楽CD、メモリカードなどに記録されている音楽コンテンツを読み出して、再生する。これにより、音楽コンテンツのオーディオ信号が信号処理装置10に入力される。
接続ポート112は、外部周辺機器を接続するためのポート(例えばUSBポート)であり、例えば、USB、IEEE1394等の接続端子を有する。接続ポート112は、インタフェース107、および外部バス106、ブリッジ105、ホストバス104等を介してCPU101等に接続されている。この接続ポート111には、例えば、USBメモリ等のコネクタ付きリムーバブルメディアや、携帯型映像/音楽プレーヤ、PDA、HDD等の外部機器が接続される。この接続ポート112を介して、例えば、リムーバブルメディア又は外部機器などから転送された音楽コンテンツのオーディオ信号が信号処理装置10に入力される。
通信装置113は、例えば、インターネット、LAN等の各種のネットワーク5に接続するための通信インタフェースであり、通信方式は無線/有線通信を問わない。この通信装置113は、ネットワークを介して接続された外部機器との間で、各種データを送受信する。例えば、通信装置113は、コンテンツ配信サーバから、音楽コンテンツ、映画コンテンツ等を受信する。これにより、外部から受信した音楽コンテンツのオーディオ信号が信号処理装置10に入力される。
次に、図3〜図5を参照して、本実施形態にかかる信号処理装置10の機能構成について説明する。図3は、本実施形態にかかる信号処理装置10の構成を示す機能ブロック図である。図4は、本実施形態にかかる信号処理装置10により実行される信号処理方法(ビート及びテンポ解析方法)の概要を示す説明図である。図5は、オーディオ信号のパワー包絡の自己相関関数と、テンポの確率分布との関係を示す説明図である。
図3に示すように、本実施形態にかかる信号処理装置10は、オーディオ信号の信号レベルに基づいて発音時刻Tを検出する発音時刻検出部12と、フラッシュメモリ、RAM等のメモリで構成された発音時刻記録部14と、オーディオ信号の信号レベルに関する自己相関関数を用いてテンポZの初期確率分布P(Z)を設定するテンポ確率分布設定部16と、検出された発音時刻Tに関する情報(発音時刻の間隔X)とテンポZの初期確率分布P(Z)とに基づいて、オーディオ信号が表す音楽のビート長を算出するビート長算出部18と、上記推定されたビートと上記検出された発音時刻の間隔Xとに基づいて、オーディオ信号が表す音楽のテンポを算出するテンポ算出部20と、フラッシュメモリ、RAM等のメモリで構成された特徴量記録部22と、ビート又はテンポZ等の特徴量を利用する特徴量利用部24とを備える。
発音時刻検出部12は、図4に示すように、外部から入力されたオーディオ信号を解析して、オーディオ信号に含まれる複数の楽音(発音イベント)の発音時刻Tを検出する。例えば、発音時刻検出部12は、オーディオ信号のパワー(信号レベル)の時間変化(即ち、オーディオ信号のパワー包絡)を求めて、オーディオ信号に含まれる複数のピークを抽出し、この各ピーク直前の時刻を発音時刻Tとして推定する。さらに、発音時刻検出部12は、上記のようにして検出した発音時刻Tを、発音時刻記憶部14に保存する。なお、かかる発音時刻検出部12による発音時刻検出処理の詳細は後述する(図7等参照)。
テンポ確率分布設定部16は、図4及び図5に示すように、オーディオ信号の信号レベルを解析することで、オーディオ信号のパワー包絡の自己相関関数を求める。このパワー包絡の自己相関関数において、自己相関の高い周期はテンポである確率が高い。従って、テンポ確率分布設定部16は、この自己相関関数を用いてテンポZの初期確率分布P(Z)を算出して、この初期確率分布P(Z)を後述のテンポZの確率分布P(Z)の初期値として設定する。なお、このテンポ確率分布設定部16によるテンポZの初期確率分布設定処理の詳細は後述する(図8等参照)。
ビート長算出部18は、テンポZを確率変数として含む確率モデルを用いたビート解析を行い、オーディオ信号のビート長Qを求める。図4に示すように、ビート長算出部18は、オーディオ信号の発音時刻間隔Xについて、EMアルゴリズムを利用して、最も尤もらしいビート長Qを確率的に推定する。オーディオ信号の各楽音(発音イベント)のビート長Qが得られれば、当該ビート長Qから、オーディオ信号の楽音の音楽的時刻であるビートを求めることができる。
かかるビート長算出部18によるビート推定処理では、ビート長算出部18は、発音時刻検出部12により検出された複数の発音時刻Tの差分を計算することで、発音時刻の間隔Xを求める。さらに、ビート長算出部18は、テンポ確率分布設定部16により求められたテンポZの初期確率分布P(Z)を用いて、発音時刻の間隔Xに対応する発音がオーディオ信号のビートである確率を表す目的関数P(Q|X)と、目的関数P(Q|X)を単調増加(単調非減少)させるビート長Qの更新を導く補助関数(Q関数)とを設定する。そして、ビート長算出部18は、補助関数(Q関数)を用いて対数尤度
log P(X|Q)を極大値に導く更新を繰り返すことにより、目的関数P(Q|X)の準最適解を求める。EMアルゴリズムは、Eステップ(Expectation
step)と、Mステップ(Maximization step)とを含む。Eステップでは、ビート長算出部18は、隠れ変数であるテンポZの確率分布P(Z|X,Q)の推定処理を行い、補助関数(Q関数)を求める。Mステップでは、ビート長算出部18は、ビタビアルゴリズムなどにより補助関数(Q関数)を最大化する。このEステップ及びMステップを繰り返すことで補助関数(Q関数)を収束させ、収束したQ関数からビート長Qを求める。
さらに、ビート長算出部18は、上記のようにして推定したビート長Qを、特徴量記憶部22に保存する。なお、かかるビート長算出部18によるビート(ビート長Q)の算出処理の詳細は後述する(図8等参照)。
テンポ算出部20は、上記ビート長算出部18により算出されたビート長Qと、発音時刻間隔Xとに基づいて、テンポZを算出する。例えば、テンポ算出部20は、オーディオ信号に含まれる各楽音の発音時刻間隔x[秒]を、当該各楽音のビート長q[拍]で除算することで、当該各楽音でのテンポz[秒/拍]を求める(z=x/q)。さらに、テンポ算出部20は、上記のようにして算出したビート長Qを、特徴量記憶部22に保存する。なお、かかるテンポ算出部20によるテンポZの算出処理の詳細は後述する(図9等参照)。
特徴量利用部24は、上記特徴記憶部22に記憶されたオーディオ信号の特徴量(ビート長Q又はテンポZなど)を利用して、電子機器のユーザに対して多様なアプリケーションを提供する。かかるビート長Q又はテンポZなどの特徴量の利用方法としては、例えば、音楽コンテンツに対するメタデータ付与、音楽コンテンツの検索、音楽コンテンツの推薦、楽曲の整理、ロボットを音楽のビートに合わせて踊らせるロボットダンスとの同期、写真のスライドショーとの同期、自動採譜、音楽解析など、多岐に渡る。なお、上記の特徴量は、オーディオ信号が表す音楽の特徴を表す情報であれば、上記ビート長Q、テンポZ以外にも、これらビート自体や、ビート長Q、テンポZなどを演算、加工して求められる任意の情報をも含む。
以上、本実施形態にかかる信号処理装置10の機能構成について説明した。上述した発音時刻検出部12、テンポ確率分布設定部16と、ビート長算出部18、テンポ算出部20又は特徴量利用部24の一部又は全部は、ソフトウェアで構成してもよいし、ハードウェアで構成してもよい。ソフトウェアで構成する場合には、上記各部の処理をコンピュータに実行させるコンピュータプログラムを信号処理装置10にインストールすればよい。このプログラムは、例えば、任意の記憶媒体又は任意の通信媒体を介して信号処理装置10に提供される。
次に、図6を参照して、本実施形態にかかる信号処理方法の一例であるビート解析方法について説明する。図6は、本実施形態にかかるビート解析方法を示すフローチャートである。
図6に示すように、本実施形態にかかるビート解析方法は、ビート推定処理の前処理としてオーディオ信号から発音時刻Tを検出する発音時刻検出処理(S10)と、S10で求めた発音時刻Tに基づいてビートを確率的に求めるビート推定処理(S20)とを含む。
発音時刻検出処理(S10)では、オーディオ信号を処理して、オーディオ信号が表す音楽(演奏されている楽音)の発音時刻Tを検出して、発音時刻間隔Xを求める。発音時刻Tを検出する手法は、従来でも様々な手法が提案されている。本実施形態にかかるビート解析方法では、このような発音時刻検出処理を前処理として使用し、発音時刻Tの検出処理S10と、発音時刻Tからビートを求めるビート推定処理S20とは独立した処理となっている。このため、本実施形態にかかるビート解析方法は、原理的に、発音時刻検出方法との組み合わせにより使用条件が限定されるものではない。
次に、図7を参照して、本実施形態にかかる発音時刻検出処理(図6のS10)の具体例について詳細に説明する。図7は、図6の発音時刻検出処理S10の例を示すフローチャートである。
図7に示すように、発音時刻検出処理S10では、まず、信号処理装置10の発音時刻検出部12は、入力されたオーディオ信号のパワー(信号レベル)の時間変化(即ち、パワー包絡)を求め、そのパワーの時間変化のピークを抽出する(ステップS11〜S13)。より詳細には、発音時刻検出部12は、例えば、オーディオ信号の短時間(例えば数十ミリ秒程度)ごとのエネルギーを計算することによって、当該短時間ごとのオーディオ信号のパワーの時間変化(即ち、パワー包絡)を表すレベル信号を生成する(ステップS11)。次いで、発音時刻検出部12は、オーディオ信号のパワーの時間変化(レベル信号)から無音区間を除去し(ステップS12)、さらに、減衰部を平滑化する(ステップS13)。その後、発音時刻検出部12は、S12及びS13での処理後のレベル信号のピークを抽出し(ステップS14)、そのピークの直前のレベル信号が極小値となる時刻を発音時刻T(=t[1], t[2],・・・, t[N])として推定する(ステップS15)。そして、発音時刻検出部12は、S15で推定した発音時刻Tを、上記の発音時刻記憶部14に保持する(ステップS16)。
以上、発音時刻検出処理について説明した。上記のように検出された発音時刻Tの中には、ビートに対応する発音イベント(楽音)の発音時刻もあるが、一般的には、ビートに対応しない発音イベントの発音時刻が検出される場合や、或いは、本来ビートの存在する時刻に発音時刻が検出されない場合もある。従って、検出された発音時刻Tの中から、ビートに対応する適切な発音時刻Tを選別するとともに、本来ビートが存在する時刻に発音時刻Tを補完する必要がある。そこで、以下に説明するビート推定処理では、上記検出された発音時刻Tから求めた発音時刻の間隔X(単位:[秒])を、適切なビート長(単位:[拍])に変換するために、確率モデルを用いたビート解析を行う。
以下に、本実施形態にかかる確率モデルを用いたビート解析の原理について説明する。まず、上記発音時刻検出処理(S10)で検出された複数の発音時刻T(=t[0], t[1],・・・, t[N])の差分を算出することで、発音時刻間隔(IOI)X(= x[1], x[2],・・・, x[N])が求められる。例えば、発音時刻t[0]と発音時刻t[1]との間の差分が、発音時刻間隔x[1]となる。次いで、ビートに対応しない発音時刻の存在や、逆にビートに対応する発音時刻が存在しない可能性も含めて、発音時刻間隔x[1],
…, x[N] (単位:[秒])に対応するビート長qの時系列(単位:[拍])を求める。
テンポZやビートパターンや演奏の揺らぎを含む様々な変動を確率的に考慮した場合、オーディオ信号から得た発音時刻間隔X( = x[1], …, x[N])から、ビート長Q(= q[1], …, q[N])を求める問題を、検出されたXに対して最も尤もらしいQを求める問題として考えると、次の式(1)で定式化される。ここで、P(Q|X)
∝ P(X|Q)P(Q)であるので、以下、P(X|Q)P(Q)を与えるモデル化を行い、その最大化手法が得られれば、Qを求めることができる。
Figure 2009139769
P(Q|X):事後確率
P(X|Q):尤度
P(Q) :事前確率
この推定手法は、事後確率最大化推定(MAP:maximum a posteriori probability)と呼ばれ、P(Q|X)∝P(X|Q)P(Q)は、事後確率(posteriori
probability)と呼ばれる。以下、本実施形態にかかるビート解析において、発音時刻間隔Xからビート長Qを求めるモデル化と、このモデルを用いて実際にビートを求めるための計算手法について述べる。
ここで、実際には、各ビート長q[n]には、そのビートを演奏したテンポz[n]というもうひとつの音楽的要素が存在するため、テンポzを考えずに、発音時刻間隔(音長)x[n]とビート長q[n]の関係を考えることはできない。即ち、ビート長Qと発音時刻間隔Xの関係は、テンポを含んだモデルで考えなければモデル化できない。
モデル化できるのはP(X,Z|Q)であるが、本実施形態で求めたいのはP(X|Q)P(Q)である。(以下、記述を簡単にするために、「P(X|Q)P(Q)」の「P(Q)」を一時的に省略して表記する。このP(Q)は後で含めて扱うことにする。この場合、MAP推定ではなく、最尤(ML:
maximum likelihood) 推定となる。)。本実施形態にかかるビート推定方法では、P(X,Z|Q)を与えるモデルを用いてP(X|Q)を最大化するQを求める手法として、EMアルゴリズムを適用する。EMアルゴリズムは尤度関数P(X|Q)の推定手法として知られるが、この手法は事前確率P(Q)を含む確率モデルであっても使用することができ、本手法は、事前知識P(Q)を含む場合にEMアルゴリズムを適用する。
EMアルゴリズムにおいては、次の関係式(2)で、あるビート長Qを仮定したときのテンポZ(隠れ変数)の確率分布P(Z|X,Q)を用いて、log P(X,Z|Q’)の期待値を求めると、ビート長をQからQ’に更新したときの対数尤度の差「log
P(X|Q’) − log P(X|Q)」の期待値は、補助関数(Q関数)を最大化するQ’を求めると、必ず正(非負)となることが数学的に証明されている。補助関数であるQ関数は、次の式(3)で表される。EMアルゴリズムは、Q関数を求めるEステップ(Expectation
step)と、Q関数を最大化するMステップ(Maximization Step)ステップとを繰り返すことで、対数尤度log P(X|Q)を単調増加させて極大値に導くものである。
Figure 2009139769
本実施形態では、上記のようなEMアルゴリズムをビート解析に適用する。以下、P(X,Z|Q)を与えるテンポZとビート長Qと発音時刻間隔Xの関係を確率的に与えるモデルと、このモデルを用いたときのQ関数、および、そのQ関数を用いた場合のEMアルゴリズムの具体的な計算方法について述べる。
確率モデル化について、まずテンポZの変動を確率的にモデル化する。テンポZは緩やかに変動するという特性を有するが、この特性により、テンポZが一定値となる確率が高いというようにモデル化できる。例えば、テンポZの変動が0を中心とした確率分布 p(z[n]|z[n-1])(例えば、正規分布や対数正規分布)に従うマルコフ過程としてモデル化できる。ここで、z[n]はn番目の発音時刻t[n]でのテンポに相当する。
次に、発音時刻間隔X(= x[1], x[2],・・・, x[N])の変動についてモデル化する。発音時刻間隔x[n]の変動は、テンポz[n]と、ビート長q[n]に依存した確率を与えられる。テンポが一定で発音時刻Tの変動や検出の誤差が全くない理想的な場合は、発音時刻間隔(音長)x[n](単位:[秒])は、テンポ
z[n](単位:[秒/拍])とビート長q[n](単位:[拍])の積に等しい(x[n] = z[n]・q[n])。しかし、実際には、演奏者の演奏表現によるテンポZや発音時刻Tの変動や、発音時刻の検出誤差を含むため、一般にはこの両者は等しくない。このときの誤差について確率的に考えることができる。確率分布p(x[n]
| q[n],z[n])は、例えば、正規分布や対数正規分布を用いてモデル化することができる。
さらに、発音時刻Tにおけるオーディオ信号の音量を考えると、一般には、音量が大きい音は、音量が小さい音よりも、ビートである傾向が高いと考えられる。そこで、この傾向も音量を特徴量のひとつに加えて、P(X|Q,Z)に含めることができ、確率モデルに与えることができる。
以上の2つを組み合わせると、ビート長がQ = q[1],…q[N]であるときに、テンポが
Z = z[1],…, z[N]であり、かつ、発音時刻間隔(IOI)Xが X = x[1],…,x[N]である確率P(X,Z|Q) を与えることができる。
また、ビート長のパターン q[1], …, q[N]についても、その出現確率を考えることができる。例えば、出現頻度の高いビート長パターンや、楽譜上は書けるが現実には現れないビート長パターンもあり、これらはそれぞれ、そのパターンの出現確率の高低で扱うことができると考えるのは自然である。従って、例えば、qの時系列をN-gramモデルによりモデル化するか、或いは、所定のビート長のテンプレートパターンの出現確率、又は、そのテンプレートパターンをN-gramモデルによりモデル化することによって、ビート長パターンを確率的にモデル化できる。このモデルによって与えられるビート長Qの確率をP(Q)とする。
このようにP(Q)を考えた場合、Q関数は、尤度についてEMアルゴリズムを適用した場合のQ関数に、log
P(Q) を加えたものにすることで、MAP推定するときの事後確率P(Q|X)の対数の増加を導く補助関数として、当該Q関数を用いることができる。
このモデルが与えるP(X,Z|Q)を用いると、テンポZの確率分布P(Z|X,Q)は、次式(4)で与えることができる。以上から、先に述べたQ関数を計算することができる。従って、この場合には、Q関数は次式(5)で与えられる。
Figure 2009139769
Figure 2009139769
式(5)のQ関数を最大にするQ’を計算するためには、p(z[n]=z|X,Q)を具体的に計算する必要がある。以下、この隠れ変数(テンポz)の確率分布の計算手法(Eステップに相当)について述べる。
Q関数を最大化するために必要となるp(z[n] =z |X,Q)は、以下のアルゴリズムにより求められる。これは、HMM(hidden
Markov model)で“Baum-Welch algorithm”と呼ばれる手法を応用した手法である。次式(6)の前向き確率α_n(z)と、次式(7)の後ろ向き確率β_n(z)を用いると、p(z[n]=z|X,Q)は、次式(8)で計算できる。前向き確率α_n(z)、後ろ向き確率β_n(z)は、それぞれ次式(9)、(10)を用いて、効率的な再帰計算により求められる。なお、HMMの“Baum-Welch
algorithm”と異なる点は、本モデルでは、遷移確率を求めることが目的ではなく、また、本モデルの隠れ変数は、隠れ変数は隠れ状態として扱われる離散化された変数ではなく、連続値をとる変数である点である。
Figure 2009139769
次に、上記のようにして計算されるQ関数 G(Q,Q’)を最大化するQ’を求める(Mステップに相当)。このときに使用するアルゴリズムはP(Q)に依存し、マルコフモデルに基づく場合は、ビタビアルゴリズム(Viterbi
algorithm)のようにDP(dynamic programming)に基づくアルゴリズムで最適化できる。Q’が可変個のビート長Qからなるテンプレートのマルコフモデルである場合には、例えば、時間同期ビタビアルゴリズム(time
synchronous Viterbi search)又は2段DP(2-stage dynamic programming)など、P(Q)を与えるモデルに応じて適切なアルゴリズムを選ぶ。これにより、Q関数を最大化するビート長Qを求めることができる。
以上から、ある発音時刻間隔IOIの系列Xが与えられた場合、前向き確率αと後ろ向き確率βを計算するEステップと、このα及びβを基にQ関数を最大化するQを求めるMステップとを繰り返すことにより、補助関数であるQ関数を収束させて、各発音時刻Tに対応するビート長Q(Q= q[1],q[2],・・・, q[M])を求めることができる。
ところで、一般にEMアルゴリズムでは、収束解が、繰り返し演算を開始するために与える初期値に依存するので、初期値の与え方が性能に重要な影響を与える。ここでは、初期値を与える有望な手がかりを、ビートではなくテンポについて得ることができる。オーディオ信号のパワーの時間変化(パワー包絡)の自己相関関数を用いた場合、自己相関が大きい周期はその周期がテンポである確率が高いと考えられることから、自己相関の対象関係を確率の大小関係に反映させたテンポの確率分布を使用する。このテンポの初期確率分布
P0(Z)を初期値として利用して、上記EMアルゴリズムを適用する。
また、上記のように求められたビート長Q(= q[1],q[2],・・・,
q[M])を用いて、1拍ごと又は2拍ごとの演奏されたビートを求めるためには、ビート長Qに基づき、必要に応じてビートの発音時刻を補間して、ビートを求めればよい。
以上、本実施形態にかかるビート解析法の原理について説明した。かかるビート解析法によれば、オーディオ信号のテンポZが変化する場合でも、オーディオ信号の各位置での適切なビート長Q(= q[1],q[2],・・・, q[M])と、ビートを求めることができる。
次に、図8を参照して、以上のようなビート解析を利用したビート推定処理(図6のS20)の例について詳細に説明する。図8は、図6のビート推定処理S20の例を示すフローチャートである。このビート推定処理S20は、上述した発音時刻検出処理(S10)後の任意のタイミングで実行可能である。
図8に示すように、発音時刻検出処理S10では、まず、信号処理装置10のビート長算出部18は、検出された発音時刻Tの間隔Xを算出する(ステップS21)。詳細には、ビート長算出部18は、上記発音時刻検出処理(S10)で検出された複数の発音時刻T(=t[1], t[2],・・・, t[N])を、発音時刻記憶部14から読み出し、それぞれの発音時刻t相互の差分を算出して、発音時刻間隔(IOI)X(=
x[1], x[2],・・・, x[N])を求める。例えば、発音時刻t[2]から発音時刻t[1]を減算することで、発音時刻間隔x[1]を求める。
次いで、テンポ確率分布設定部16は、オーディオ信号のパワー包絡の自己相関関数(図5参照。)を求める(ステップS22)。詳細には、テンポ確率分布設定部16は、入力されたオーディオ信号のパワー(信号レベル)を解析することで、オーディオ信号のパワーの時間変化(即ち、オーディオ信号のパワー包絡)を生成する。このパワー包絡の生成処理は、例えば、図7のS11と同様であるので、詳細説明は省略する。なお、テンポ確率分布設定部16は、自らパワー包絡を求めずに、発音時刻検出部12が求めたパワー包絡を利用してもよい。次いで、テンポ確率分布設定部16は、オーディオ信号のパワー包絡の自己相関関数を求める。
さらに、テンポ確率分布設定部16は、S22で求めたオーディオ信号のパワー包絡の自己相関関数を用いて、隠れ変数であるテンポZの初期確率分布P(Z)を算出し、このP(Z)をテンポZの確率分布P(Z)の初期値として設定する(ステップS23)。上述したように、パワー包絡の自己相関が高い周期は、テンポZである確率が高いことを利用して、テンポ確率分布設定部16は、当該自己相関関数をテンポZの初期確率分布P(Z)に変換する。
次いで、ビート長算出部18は、目的関数P(Q|X)と、補助関数(Q関数)を設定する(ステップS24)。目的関数P(Q|X)は、オーディオ信号の表す音楽の発音時刻間隔Xが与えられたときに、発音時刻間隔Xが当該音楽のビート間のビート長Qに相当する確率である。換言すると、目的関数P(Q|X)は、音楽の発音時刻Tが与えられたときに、当該発音時刻Tが当該音楽のビートに相当する確率である。補助関数(Q関数)は、目的関数P(Q|X)を単調増加(単調非減少)させるようなビート長Qの更新を導く関数である。詳細には、補助関数(Q関数)は、テンポZを隠れ変数とし、隠れ変数の期待値をとることにより得られる事後確率の対数を単調増加(単調非減少)させるビート長Qの更新アルゴリズムである。この補助関数(Q関数)は、上記EMアルゴリズムにより導出されるが(式(3))、例えば、上述したように、ビート解析に適合するよう修正した式(5)を用いることができる。
以下では、説明の便宜上、Q関数を次の式(11)で表す。式(11)のQ関数におけるテンポZ(隠れ変数)の確率分布P(Z)については、初期値として上記S23で求められた初期確率分布P(Z)が用いられ、その後は、後述するEMアルゴリズムのEステップS26〜S28で求められたP(Z|X,Q)が用いられる。
Figure 2009139769
次いで、ビート長算出部18は、EMアルゴリズムにより、補助関数(Q関数)を用いて、対数尤度logP(X|Q)を極大値に導くビート長Qの更新を行う。このEMアルゴリズムは、Q関数を最大化するQを求めるMステップS25と、テンポZの確率分布P(Z)を推定してQ関数を求めるEステップS26〜S28と、を含む。
まず、Mステップでは、ビート長算出部18は、例えば、ビタビアルゴリズム又は2段DPなどにより、次式(12)のように補助関数(Q関数)を最大化する(ステップS25)。Q関数を最大化するQを求めることで、与えられた発音時刻間隔Xに対応するビート長Qを推定できる。S29でQ関数が収束したと判定されるまでは、本ステップSで求められるビート長Qには、ビートの脱落/挿入が含まれている。
Figure 2009139769

次いで、EステップS26〜S28では、ビート長算出部18は、前向き確率α及び後ろ向き確率βを用いて、P(Zt|X,Q)を効率的に計算する。まず、フォワードアルゴリズム(forward algorithm)により、次式(13)に示す前向き確率αを計算し(ステップS26)、次いで、バックワードアルゴリズム(backward
algorithm)により、次式(14)に示す後ろ向き確率βを計算する(ステップS27)。その後、ビート長算出部18は、式(15)のように前向き確率αと後ろ向き確率βを乗算して、P(Zt|X,Q)を求める。
Figure 2009139769
その後、ビート長算出部18は、Q関数が収束しているか否かを判定し(ステップS29)、収束していない場合には、S25に戻り、Q関数が収束するまで上記のEMアルゴリズムを繰り返す(S25〜S29)。Q関数が収束している場合には、S30に進み、収束したQ関数をビート長Qとする(ステップS30)。
次に、本実施形態にかかるテンポ解析方法について説明する。テンポZは、上述したビート解析処理で求めたビート長Qと、発音時刻間隔Xを用いて算出できる。最適なテンポZは、目的に応じて例えば以下の手法で求めることができる。
例えば、演奏の細かな変動を観測したい場合は、各発音時刻間隔Xを、それに対応するビート長Qで除算することで、ビート1拍ごとの時間としてテンポZを厳密に求めることができる(Z=X/Q)。
ここで、図9を参照して、本実施形態にかかる信号処理方法の一例であるテンポ解析方法について説明する。図9は、本実施形態にかかるテンポ解析方法を示すフローチャートである。
図9に示すように、まず、発音時刻検出処理を実行し(ステップS40)、次いで、ビート推定処理を実行する(ステップS41)。この発音時刻検出処理S40は、図7の処理S11〜S16と同様であり、ビート推定処理S41は、図8の処理S21〜S30と同様であるので、詳細説明は省略する。
次いで、発音時刻検出処理S40で検出された発音時刻Tから求めた各発音時刻間隔X(= x[1], x[2],・・・, x[N])を、ビート推定処理S41で得られた各ビート長Q(= q[1],q[2],・・・, q[N])を除算して、各テンポZ(=
z[1], z[2],・・・, z[N])を求める(ステップS42)。
また、確率モデルがモデル化するテンポZが滑らかに変動するという特性を仮定してテンポZを求めるならば、モデルの中で最も尤もらしいテンポZを、次式(16)で求めることもできる。このようにテンポZの変動をスムージングして求める方法以外にも、例えば、テンポが一定値又はテンプレートと一致するように二乗誤差を最小化するなど、多様な方法でテンポを求めることができる。
Figure 2009139769
次に、図10を参照して、本実施形態にかかる信号処理方法によるビートとテンポの解析結果の具体例について説明する。図10Aは、本実施形態にかかる信号処理装置10の表示画面にビートとテンポの解析結果を表示した例を示す。図10Aは、前処理(発音時刻の検出後、テンポ色確率ビート解析前)後、ビート解析処理前の表示画面を示し、図10Bは、ビート解析後の表示画面を示している。
図10Aに示すように、ビート解析前の表示画面には、オーディオ信号のパワー包絡と、パワー包絡から検出された発音時刻Xと、パワー包絡の自己相関から求めたテンポZの初期確率分布が表示されている。ビート解析前の図10Aの段階では、ビートの位置は表示されておらず、テンポの確率分布は、あまり明確でない(縦軸方向の濃淡で確率の高低が表現され、白い部分が黒い部分よりも確率が高い。)。
一方、ビート解析後の表示画面には、上記ビート解析により推定されたビートの位置が、二点鎖線で表示されている。推定されたビートは、複数の発音時刻Xのうち、音楽のビートに対応する一部の発音時刻Xと合致している。また、推定されたテンポの確率分布については、図10Aと比べて、確率が高い白い部分が帯状に明確に表示されている。さらに、時間の経過とともにテンポが徐々に低下しており、数秒間でのテンポの変化を的確に捉えているといえる。さらに、このようにオーディオ信号のテンポが変化する場合であっても、このテンポ変化に追従して、ビートを適切に推定できているといえる。
以上説明したように、本実施形態にかかるビート解析方法では、オーディオ信号の表す音楽からビートを求めるために、検出された発音時刻Tについて最も尤もらしいビートを求め、ビートを確率的に推定する。即ち、音楽の発音時刻間隔Xが与えられたときに、その音楽のビート間のビート長Qである確率を表す目的関数P(Q|X)と、この目的関数P(Q|X)を単調増加させるビート長Qの更新を導く補助関数とを設定する。そして、補助関数を用いて対数尤度logP(X|Q)を極大値に導く更新を繰り返すことにより、目的関数を最大化するビートを求める。これにより、音楽のビートを正確に求めることができる。
また、オーディオ信号のパワー包絡の自己相関関数から求められるテンポZの初期確率分布を、上記Q関数に含まれるテンポZの確率分布の初期値として適用するので、頑健なビート推定を行うことができる。
さらに、1つの音楽(例えば1つの楽曲)で、テンポが徐々に速くなる/遅くなるなど、音楽のテンポが変化する場合であっても、そのテンポの変化に追従して、適切なビートを求めることができる。
ビートとテンポは音楽の基本的な特徴量であり、本実施形態にかかるビート及びテンポ解析方法は、以下に例示するように様々な用途に有用である。
(音楽のメタデータ付与)
大量の音楽コンテンツデータ(楽曲)があるとき、その楽曲のテンポを全てラベル付けすることは非常に煩雑な作業である。特に、一般にはテンポは曲の途中で変わるので、ビート毎又は小節毎にテンポをラベル付けすることは、大変な労力が要り、現実的には不可能である。本実施形態では、楽曲ごとのテンポや、楽曲内で変化するテンポを自動的に求めて、メタデータとして音楽コンテンツに負荷できるので、上記労力を軽減できる。
(音楽検索)
例えば、上記のような「テンポの速い曲」、「8ビートの曲」など、上記ビート解析により求めたテンポやビートをクエリーとして、音楽コンテンツの検索に応用できる。
(音楽推薦)
さらに、好みの曲をリスナーに推薦することに応用できる。例えば、ユーザの好みに合うプレイリストを作るときにも、テンポは、音楽の重要な特徴量として使用される。
(楽曲の整理)
その他、テンポに基づいて、楽曲の類似度を計算することもできる。ユーザの所有する大量の楽曲を自動分類するためにも、テンポやビートの情報は必要である。
(ダンスとの同期)
音楽のビートが分かることで、ロボットなどを音楽のビートに合わせて躍らせるようプログラムすることができる。例えば、音楽再生機能を有するロボットも開発されているが、このロボットは、音楽を再生しながら自動的に曲解析を行い、モーションを作成して動作しながら音楽再生する(モーション再生)。かかるロボットを音楽のビートに合わせて躍らせるためには、音楽のビートを検出する必要があり、実際にビート検出機能が含まれているソフトウェアが配布されている。本実施形態にかかるビート解析方法は、このような場面で使用されるビート検出をより頑健にすることが期待できる。
(写真のスライドショーとの同期)
音楽に合わせて写真を提示するスライドショーでは、写真の切り替わるタイミングを、音楽の切り替わるタイミングと揃えたいという要求がある。本実施形態にかかるビート解析によれば、写真を切り替えるタイミングの候補として、ビートの発音時刻を提供できる。
(自動採譜)
楽譜として記述する基本要素は、ピッチ(音符の高さ)とビート(音符の長さ)であるので、ピッチ抽出と本実施形態にかかるビート推定を組み合わせることで、音楽を楽譜に変換することも可能である。
(音楽解析)
音楽解析技術のコード解析のように、ビートをオーディオ信号(音楽/音響信号)のトリガーとして、様々な音楽の特徴を解析することができる。例えば、本実施形態で推定されたビートを単位として、ピッチ抽出や音色などの特徴を解析して、サビや繰り返しパターンなどを含む楽曲の構造を解析することも可能である。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
例えば、上記実施形態では、確率モデルを用いてEMアルゴリズムを適用する例について説明したが、本発明はかかる確率モデルの例に限定されるものでない。例えば、確率と同様にコストを正規化するパラメータ(確率に相当)と、そのモデルについて設定した目的関数(事後確率に相当)の凸性(対数関数に相当)に基づいて目的関数を単調増加(あるいは単調減少)させる補助関数(Q関数に相当)を導出できるものであるならば、上記実施形態と同様に適用できる。
本発明の第1の実施形態にかかるビートと発音時刻との関係を示す説明図である。 同実施形態にかかる信号処理装置のハードウェア構成を示すブロック図である。 本実施形態にかかる信号処理装置の構成を示す機能ブロック図である。 本実施形態にかかる信号処理装置により実行される信号処理方法の概要を示す説明図である。 本実施形態にかかるオーディオ信号のパワー包絡の自己相関関数と、テンポの確率分布との関係を示す説明図である。 本実施形態にかかるビート解析方法を示すフローチャートである。 図6の発音時刻検出処理の例を示すフローチャートである。 図6のビート推定処理の例を示すフローチャートである。 本実施形態にかかるテンポ解析方法を示すフローチャートである。 本実施形態にかかる信号処理装置による前処理後、ビート解析前の表示画面例である。 本実施形態にかかる信号処理装置によるビート解析後の表示画面例である。
符号の説明
10 信号処理装置
12 発音時刻検出部
14 発音時刻記憶部
16 テンポ確率分布設定部
18 ビート長算出部
20 テンポ算出部
22 特徴量記憶部
24 特徴利用部

Claims (7)

  1. オーディオ信号を処理する信号処理装置において:
    前記オーディオ信号のレベルに基づいて発音時刻Tを検出する発音時刻検出部と;
    前記発音時刻の間隔Xが与えられたときにビート長Qである確率を表す目的関数P(Q|X)と、前記目的関数P(Q|X)を単調増加させる前記ビート長Qの更新を導く補助関数とを設定し、前記補助関数の最大化を繰り返すことにより前記補助関数を収束させて、前記ビート長Qを求めるビート長算出部と;
    を備えることを特徴とする、信号処理装置。
  2. 前記補助関数は、前記オーディオ信号のテンポZを隠れ変数とし、前記隠れ変数の期待値をとることにより得られる事後確率P(Q|X)の対数を単調増加させる前記ビート長Qの更新アルゴリズムに基づいて設定されることを特徴とする、請求項1記載の信号処理装置。
  3. 前記ビート長算出部は、EMアルゴリズムにより前記補助関数を導出することを特徴とする、請求項1記載の信号処理装置。
  4. 前記ビート長算出部は、前記オーディオ信号のパワーの時間変化の自己相関関数に基づいて、前記オーディオ信号のテンポZの初期確率分布を求め、当該テンポZの初期確率分布を、前記補助関数に含まれる前記テンポZの確率分布の初期値として用いることを特徴とする、請求項1記載の信号処理装置。
  5. 前記ビート長算出部により求められた前記ビート長Qと、前記発音時刻の間隔Xとに基づいて、前記オーディオ信号のテンポZを求めるテンポ算出部
    をさらに備えることを特徴とする、請求項1記載の信号処理装置。
  6. オーディオ信号を処理する信号処理方法において:
    前記オーディオ信号のレベルに基づいて発音時刻Tを検出する発音時刻検出ステップと;
    前記発音時刻の間隔Xが与えられたときにビート長Qである確率を表す目的関数P(Q|X)と、前記目的関数P(Q|X)を単調増加させる前記ビート長Qの更新を導く補助関数とを設定し、前記補助関数の最大化を繰り返すことにより前記補助関数を収束させて、前記ビート長Qを求めるビート長算出ステップと;
    を含むことを特徴とする、信号処理方法。
  7. コンピュータに:
    前記オーディオ信号のレベルに基づいて発音時刻Tを検出する発音時刻検出ステップと;
    前記発音時刻の間隔Xが与えられたときにビート長Qである確率を表す目的関数P(Q|X)と、前記目的関数P(Q|X)を単調増加させる前記ビート長Qの更新を導く補助関数とを設定し、前記補助関数の最大化を繰り返すことにより前記補助関数を収束させて、前記ビート長Qを求めるビート長算出ステップと;
    を実行させることを特徴とする、プログラム。
JP2007317722A 2007-12-07 2007-12-07 信号処理装置、信号処理方法及びプログラム Expired - Fee Related JP4640407B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007317722A JP4640407B2 (ja) 2007-12-07 2007-12-07 信号処理装置、信号処理方法及びプログラム
US12/328,236 US7863512B2 (en) 2007-12-07 2008-12-04 Signal processing device, signal processing method, and program
CN2008101857187A CN101452696B (zh) 2007-12-07 2008-12-08 信号处理装置、信号处理方法和程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007317722A JP4640407B2 (ja) 2007-12-07 2007-12-07 信号処理装置、信号処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2009139769A true JP2009139769A (ja) 2009-06-25
JP4640407B2 JP4640407B2 (ja) 2011-03-02

Family

ID=40734896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007317722A Expired - Fee Related JP4640407B2 (ja) 2007-12-07 2007-12-07 信号処理装置、信号処理方法及びプログラム

Country Status (3)

Country Link
US (1) US7863512B2 (ja)
JP (1) JP4640407B2 (ja)
CN (1) CN101452696B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011095409A (ja) * 2009-10-28 2011-05-12 Kawai Musical Instr Mfg Co Ltd グリッド検出装置及びプログラム
WO2013179579A1 (ja) * 2012-05-31 2013-12-05 日本電気株式会社 隠れ変数モデル推定装置および方法
JP2014178394A (ja) * 2013-03-14 2014-09-25 Yamaha Corp 音響信号分析装置及び音響信号分析プログラム
JP2015114360A (ja) * 2013-12-09 2015-06-22 ヤマハ株式会社 音響信号分析装置、音響信号分析方法、及び音響信号分析プログラム
JP2015200803A (ja) * 2014-04-09 2015-11-12 ヤマハ株式会社 音響信号分析装置及び音響信号分析プログラム

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4882918B2 (ja) * 2007-08-21 2012-02-22 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JPWO2009101703A1 (ja) * 2008-02-15 2011-06-02 パイオニア株式会社 楽曲データ分析装置及び楽器種類検出装置、楽曲データ分析方法並びに楽曲データ分析用プログラム及び楽器種類検出用プログラム
JP5282548B2 (ja) * 2008-12-05 2013-09-04 ソニー株式会社 情報処理装置、音素材の切り出し方法、及びプログラム
US8878041B2 (en) * 2009-05-27 2014-11-04 Microsoft Corporation Detecting beat information using a diverse set of correlations
US8889976B2 (en) * 2009-08-14 2014-11-18 Honda Motor Co., Ltd. Musical score position estimating device, musical score position estimating method, and musical score position estimating robot
CN103229234B (zh) 2010-11-22 2015-07-08 株式会社Ntt都科摩 音频编码装置、方法以及音频解码装置、方法
WO2013149188A1 (en) * 2012-03-29 2013-10-03 Smule, Inc. Automatic conversion of speech into song, rap or other audible expression having target meter or rhythm
JP6179140B2 (ja) 2013-03-14 2017-08-16 ヤマハ株式会社 音響信号分析装置及び音響信号分析プログラム
US10770092B1 (en) 2017-09-22 2020-09-08 Amazon Technologies, Inc. Viseme data generation
CN107545883A (zh) * 2017-10-13 2018-01-05 广州酷狗计算机科技有限公司 确定音乐的节奏快慢等级的方法和装置
JP7041270B2 (ja) * 2017-12-18 2022-03-23 バイトダンス・インコーポレイテッド モジュラー自動音楽制作サーバー
US11386877B2 (en) * 2017-12-29 2022-07-12 Alphatheta Corporation Audio equipment and program for audio equipment
CN112908288B (zh) * 2021-01-25 2023-11-21 北京达佳互联信息技术有限公司 节拍检测方法、装置、电子设备和存储介质
CN113223485B (zh) * 2021-04-28 2022-12-27 北京达佳互联信息技术有限公司 节拍检测模型的训练方法、节拍检测方法及装置
CN113707110B (zh) * 2021-06-15 2023-12-01 浙江意博高科技术有限公司 智能照明的控制方法和系统
CN113436641A (zh) * 2021-06-22 2021-09-24 腾讯音乐娱乐科技(深圳)有限公司 一种音乐转场时间点检测方法、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002116754A (ja) * 2000-07-31 2002-04-19 Matsushita Electric Ind Co Ltd テンポ抽出装置、テンポ抽出方法、テンポ抽出プログラム及び記録媒体
JP2002287744A (ja) * 2001-03-26 2002-10-04 Yamaha Corp 波形データ分析方法、波形データ分析装置およびプログラム
JP2004117530A (ja) * 2002-09-24 2004-04-15 Advanced Telecommunication Research Institute International 音声認識システム
JP2005115328A (ja) * 2003-05-01 2005-04-28 Microsoft Corp 自然言語理解(NLU)システムにおける規則ベース文法に関するスロットおよび前終端記号(preterminal)に関する統計モデル
JP2006251712A (ja) * 2005-03-14 2006-09-21 Univ Of Tokyo 観測データ、特に、複数の音源からの音が混在している音響信号の解析方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503088A (zh) * 2002-11-26 2004-06-09 科 曾 一种电子节拍校音器的纵向演示的方法
JP4650662B2 (ja) 2004-03-23 2011-03-16 ソニー株式会社 信号処理装置および信号処理方法、プログラム、並びに記録媒体
US7612275B2 (en) * 2006-04-18 2009-11-03 Nokia Corporation Method, apparatus and computer program product for providing rhythm information from an audio signal

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002116754A (ja) * 2000-07-31 2002-04-19 Matsushita Electric Ind Co Ltd テンポ抽出装置、テンポ抽出方法、テンポ抽出プログラム及び記録媒体
JP2002287744A (ja) * 2001-03-26 2002-10-04 Yamaha Corp 波形データ分析方法、波形データ分析装置およびプログラム
JP2004117530A (ja) * 2002-09-24 2004-04-15 Advanced Telecommunication Research Institute International 音声認識システム
JP2005115328A (ja) * 2003-05-01 2005-04-28 Microsoft Corp 自然言語理解(NLU)システムにおける規則ベース文法に関するスロットおよび前終端記号(preterminal)に関する統計モデル
JP2006251712A (ja) * 2005-03-14 2006-09-21 Univ Of Tokyo 観測データ、特に、複数の音源からの音が混在している音響信号の解析方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011095409A (ja) * 2009-10-28 2011-05-12 Kawai Musical Instr Mfg Co Ltd グリッド検出装置及びプログラム
WO2013179579A1 (ja) * 2012-05-31 2013-12-05 日本電気株式会社 隠れ変数モデル推定装置および方法
US9043261B2 (en) 2012-05-31 2015-05-26 Nec Corporation Latent variable model estimation apparatus, and method
JPWO2013179579A1 (ja) * 2012-05-31 2016-01-18 日本電気株式会社 隠れ変数モデル推定装置および方法
JP2014178394A (ja) * 2013-03-14 2014-09-25 Yamaha Corp 音響信号分析装置及び音響信号分析プログラム
JP2015114360A (ja) * 2013-12-09 2015-06-22 ヤマハ株式会社 音響信号分析装置、音響信号分析方法、及び音響信号分析プログラム
JP2015200803A (ja) * 2014-04-09 2015-11-12 ヤマハ株式会社 音響信号分析装置及び音響信号分析プログラム

Also Published As

Publication number Publication date
CN101452696B (zh) 2012-11-28
US20090288546A1 (en) 2009-11-26
US7863512B2 (en) 2011-01-04
CN101452696A (zh) 2009-06-10
JP4640407B2 (ja) 2011-03-02

Similar Documents

Publication Publication Date Title
JP4640407B2 (ja) 信号処理装置、信号処理方法及びプログラム
US20150094835A1 (en) Audio analysis apparatus
US20230005463A1 (en) Crowd-sourced technique for pitch track generation
US8592670B2 (en) Polyphonic note detection
US10235981B2 (en) Intelligent crossfade with separated instrument tracks
US20040144238A1 (en) Music searching apparatus and method
JP2002014691A (ja) ソース音声信号内の新規点の識別方法
JP2008022103A (ja) テレビ番組動画像ハイライト抽出装置及び方法
US20160196812A1 (en) Music information retrieval
Nakamura et al. Real-time audio-to-score alignment of music performances containing errors and arbitrary repeats and skips
JP6151121B2 (ja) コード進行推定検出装置及びコード進行推定検出プログラム
JPWO2006137271A1 (ja) 楽曲検索装置、楽曲検索方法および楽曲検索プログラム
JP2009058970A (ja) 情報処理装置および方法、プログラム、並びに記録媒体
CN109410972B (zh) 生成音效参数的方法、装置及存储介质
US9502017B1 (en) Automatic audio remixing with repetition avoidance
US20180173400A1 (en) Media Content Selection
JP2008216486A (ja) 音楽再生システム
JP6288197B2 (ja) 評価装置及びプログラム
Sako et al. Ryry: A real-time score-following automatic accompaniment playback system capable of real performances with errors, repeats and jumps
JP5092589B2 (ja) 演奏クロック生成装置、データ再生装置、演奏クロック生成方法、データ再生方法およびプログラム
CN113781989A (zh) 一种音频的动画播放、节奏卡点识别方法及相关装置
JP2008122426A (ja) 情報処理装置および方法、プログラム、並びに記録媒体
Molina-Solana et al. Identifying violin performers by their expressive trends
JP5012269B2 (ja) 演奏クロック生成装置、データ再生装置、演奏クロック生成方法、データ再生方法およびプログラム
JP2007171772A (ja) 音楽情報処理装置、音楽情報処理方法および制御プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090317

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101102

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees