JP3776782B2 - 音響信号の符号化方法 - Google Patents
音響信号の符号化方法 Download PDFInfo
- Publication number
- JP3776782B2 JP3776782B2 JP2001321968A JP2001321968A JP3776782B2 JP 3776782 B2 JP3776782 B2 JP 3776782B2 JP 2001321968 A JP2001321968 A JP 2001321968A JP 2001321968 A JP2001321968 A JP 2001321968A JP 3776782 B2 JP3776782 B2 JP 3776782B2
- Authority
- JP
- Japan
- Prior art keywords
- phoneme data
- unit
- data
- frequency
- section
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Auxiliary Devices For Music (AREA)
Description
【産業上の利用分野】
本発明は、音楽制作における採譜と呼ばれる以下のような業務を支援するのに適用することができる。採譜業務としては、例えば、譜面が入手できない場合の素材としての既存楽曲の引用・既存楽曲のカバー曲制作、ヒット曲のメロディ・和声進行・音色の分析研究等の楽曲分析、カラオケにおけるMIDIデータ形式の演奏データ作成、ゲーム機のBGMデータの作成、携帯電話の着メロデータ作成、自動ピアノ・演奏ガイド機能付き鍵盤楽器向け演奏データの作成、楽譜出版・版下作成などがある。
【0002】
【従来の技術】
音響信号に代表される時系列信号には、その構成要素として複数の周期信号が含まれている。このため、与えられた時系列信号にどのような周期信号が含まれているかを解析する手法は、古くから知られている。例えば、フーリエ解析は、与えられた時系列信号に含まれる周波数成分を解析するための方法として広く利用されている。
【0003】
このような時系列信号の解析方法を利用すれば、音響信号を符号化することも可能である。コンピュータの普及により、原音となるアナログ音響信号を所定のサンプリング周波数でサンプリングし、各サンプリング時の信号強度を量子化してデジタルデータとして取り込むことが容易にできるようになってきており、こうして取り込んだデジタルデータに対してフーリエ解析などの手法を適用し、原音信号に含まれていた周波数成分を抽出すれば、各周波数成分を示す符号によって原音信号の符号化が可能になる。
【0004】
一方、電子楽器による楽器音を符号化しようという発想から生まれたMIDI(Musical Instrument Digital Interface)規格も、パーソナルコンピュータの普及とともに盛んに利用されるようになってきている。このMIDI規格による符号データ(以下、MIDIデータという)は、基本的には、楽器のどの鍵盤キーを、どの程度の強さで弾いたか、という楽器演奏の操作を記述したデータであり、このMIDIデータ自身には、実際の音の波形は含まれていない。そのため、実際の音を再生する場合には、楽器音の波形を記憶したMIDI音源が別途必要になるが、その符号化効率の高さが注目を集めており、MIDI規格による符号化および復号化の技術は、現在、パーソナルコンピュータを用いて楽器演奏、楽器練習、作曲などを行うソフトウェアに広く採り入れられている。
【0005】
そこで、音響信号に代表される時系列信号に対して、所定の手法で解析を行うことにより、その構成要素となる周期信号を抽出し、抽出した周期信号をMIDIデータを用いて符号化しようとする提案がなされている。例えば、特開平10−247099号公報、特開平11−73199号公報、特開平11−73200号公報、特開平11−95753号公報、特開2000−99009号公報、特開2000−99092号公報、特開2000−99093号公報、特開2000−261322号公報、特開2001−5450号公報、特開2001−148633号公報、特願2001−209163号明細書には、任意の時系列信号について、構成要素となる周波数を解析し、その解析結果からMIDIデータを作成することができる種々の方法が提案されている。
【0006】
【発明が解決しようとする課題】
上記各公報および明細書において提案してきたMIDI符号化方式により、演奏録音等から得られる音響信号の効率的な符号化が可能になった。音響信号の符号化においては、特に楽器音から発生する倍音成分の扱いが問題となるが、倍音の処理についても上記各公報において開示されている手法により解決を試みている。倍音とは、本来の音である基本音の周波数の整数倍の周波数を有する音であり、本来の音を正確に再現する上では重要な成分であるが、通常は演奏者が意図して発した音ではないため、演奏データから譜面を再現する採譜に本発明を応用する際には不要な成分となる。倍音成分は、MIDIノートナンバーでいえば、基本音の+12、+19、+24、+28、+31、・・・といった値をとるものとなる。特に、特願2001−209163号明細書においては、倍音に相当すると考えられる成分を所定の割合で基本音の強度成分に加算するとともに、倍音の強度成分を所定の割合で減算することにより各々の第2強度を算出し、この第2強度を符号化時の優先度として扱うことにより、倍音除去を行っている。
【0007】
しかしながら、上記手法では、倍音に相当すると考えられる音の強度成分を基本音の第2強度として加算していくだけであるので、倍音であるかどうかの判断が充分であるとはいえない。また、上記手法では、複数の音源が混在している音響信号に対しても一律に倍音除去を行っているため、倍音除去を行ってはいけないヴォーカル(歌声)についても倍音除去が行われてしまうという問題がある。
【0008】
上記のような点に鑑み、本発明は、精度の良い倍音除去が可能であると共に、人間の声以外に対してだけ、倍音除去を行うことが可能な音響信号の符号化方法を提供することを課題とする。
【0009】
【課題を解決するための手段】
上記課題を解決するため、本発明では、音響信号の符号化方法として、音響信号に対して時間軸上に複数の単位区間を設定する区間設定段階、単位区間における音響信号と複数の周期関数との相関を求めることにより、各周期関数に対応した強度を算出し、各周期関数が有する周波数と、各周期関数に対応した強度と、単位区間の始点に対応する区間開始時刻と、単位区間の終点に対応する区間終了時刻で構成される単位音素データを算出する単位音素データ算出段階、単位音素データに対して、各単位区間ごとに周波数比が整数倍の関係となる他の単位音素データの強度値を加算して高周波分布度を得て、当該単位音素データとの周波数比が(1/整数)倍の関係となる他の単位音素データの強度値を加算して低周波分布度を得て、高周波分布度と低周波分布度の正負の符号を互いに異ならせて加算することにより得られた値を当該単位音素データの強度値で除することにより、各単位音素データの倍音分布度を算出する倍音分布度算出段階、単位音素データのうち、区間が連続し、周波数が同一で強度が類似するものを連結して連結音素データとし、連結音素データの属性として、周波数は構成する単位音素データのいずれかの周波数を与え、強度は構成する単位音素データの最大値を与え、開始時刻は先頭の単位音素データの区間開始時刻を与え、終了時刻は最後尾の単位音素データの区間終了時刻を与え、倍音分布度は構成する単位音素データのいずれかの倍音分布度を与えるようにする音素データ連結段階、連結処理後の音素データのうち、少なくとも倍音分布度が所定の条件を満たす音素データのみを抽出し、当該抽出した音素データの区間長に対応するデルタタイム情報、周波数に対応するノートナンバー情報、強度に対応するベロシティー情報をもつMIDI形式の符号データを作成する符号化段階を、有するようにしたことを特徴とする。
【0010】
本発明によれば、各単位区間について音響信号の周波数解析を行なうことにより単位音素データを得て、各単位音素データに対して当該単位音素データの整数倍の周波数成分の強度が大きいか、整数分の1の周波数成分の強度が大きいかに基づいて倍音と判断される成分を削除して符号化を行うようにしたので、精度の良い倍音除去が可能となる。
【0011】
さらに、倍音と判断される成分を除去する際、連結後の音素データの区間長が長いものについてだけ、倍音と判断される成分の除去を行うようすることにより、楽器音等の、人間の声以外に対してだけ倍音除去を行うことが可能となる。
【0012】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して詳細に説明する。
(1.音響信号の符号化の基本原理)
はじめに、本発明に係る音響信号の符号化方法の基本原理を述べておく。この基本原理は、前掲の各公報あるいは明細書に開示されているので、ここではその概要のみを簡単に述べることにする。
【0013】
図1(a)に示すように、時系列信号としてアナログ音響信号が与えられたものとする。図1の例では、横軸に時間t、縦軸に振幅(強度)をとって、この音響信号を示している。ここでは、まずこのアナログ音響信号を、デジタルの音響データとして取り込む処理を行う。これは、従来の一般的なPCMの手法を用い、所定のサンプリング周波数でこのアナログ音響信号をサンプリングし、振幅を所定の量子化ビット数を用いてデジタルデータに変換する処理を行えば良い。ここでは、説明の便宜上、PCMの手法でデジタル化した音響データの波形も図1(a)のアナログ音響信号と同一の波形で示すことにする。
【0014】
続いて、この解析対象となる音響信号の時間軸上に、複数の単位区間を設定する。図1(a)に示す例では、時間軸t上に等間隔に6つの時刻t1〜t6が定義され、これら各時刻を始点および終点とする5つの単位区間d1〜d5が設定されている。図1の例では、全て同一の区間長をもった単位区間が設定されているが、個々の単位区間ごとに区間長を変えるようにしてもかまわない。あるいは、隣接する単位区間が時間軸上で部分的に重なり合うような区間設定を行ってもかまわない。
【0015】
こうして単位区間が設定されたら、各単位区間ごとの音響信号(以下、区間信号と呼ぶことにする)について、それぞれ代表周波数を選出する。各区間信号には、通常、様々な周波数成分が含まれているが、例えば、その中で成分の強度割合の大きな周波数成分を代表周波数として選出すれば良い。ここで、代表周波数とはいわゆる基本周波数が一般的であるが、音声のフォルマント周波数などの倍音周波数や、ノイズ音源のピーク周波数も代表周波数として扱うことがある。代表周波数は1つだけ選出しても良いが、音響信号によっては複数の代表周波数を選出した方が、より精度の高い符号化が可能になる。図1(b)には、個々の単位区間ごとにそれぞれ3つの代表周波数を選出し、1つの代表周波数を1つの代表符号(図では便宜上、音符として示してある)として符号化した例が示されている。ここでは、代表符号(音符)を収容するために3つのトラックT1,T2,T3が設けられているが、これは個々の単位区間ごとに選出された3つずつの代表符号を、それぞれ異なるトラックに収容するためである。
【0016】
例えば、単位区間d1について選出された代表符号n(d1,1),n(d1,2),n(d1,3)は、それぞれトラックT1,T2,T3に収容されている。ここで、各符号n(d1,1),n(d1,2),n(d1,3)は、MIDI符号におけるノートナンバーを示す符号である。MIDI符号におけるノートナンバーは、0〜127までの128通りの値をとり、それぞれピアノの鍵盤の1つのキーを示すことになる。具体的には、例えば、代表周波数として440Hzが選出された場合、この周波数はノートナンバーn=69(ピアノの鍵盤中央の「ラ音(A3音)」に対応)に相当するので、代表符号としては、n=69が選出されることになる。もっとも、図1(b)は、上述の方法によって得られる代表符号を音符の形式で示した概念図であり、実際には、各音符にはそれぞれ強度に関するデータも付加されている。例えば、トラックT1には、ノートナンバーn(d1,1),n(d2,1)・・・なる音高を示すデータとともに、e(d1,1),e(d2,1)・・・なる強度を示すデータが収容されることになる。この強度を示すデータは、各代表周波数の成分が、元の区間信号にどの程度の度合いで含まれていたかによって決定される。具体的には、各代表周波数をもった周期関数の区間信号に対する相関値に基づいて強度を示すデータが決定されることになる。また、図1(b)に示す概念図では、音符の横方向の位置によって、個々の単位区間の時間軸上での位置が示されているが、実際には、この時間軸上での位置を正確に数値として示すデータが各音符に付加されていることになる。
【0017】
音響信号を符号化する形式としては、必ずしもMIDI形式を採用する必要はないが、この種の符号化形式としてはMIDI形式が最も普及しているため、実用上はMIDI形式の符号データを用いるのが好ましい。MIDI形式では、「ノートオン」データもしくは「ノートオフ」データが、「デルタタイム」データを介在させながら存在する。「ノートオン」データは、特定のノートナンバーNとベロシティーVを指定して特定の音の演奏開始を指示するデータであり、「ノートオフ」データは、特定のノートナンバーNとベロシティーVを指定して特定の音の演奏終了を指示するデータである。また、「デルタタイム」データは、所定の時間間隔を示すデータである。ベロシティーVは、例えば、ピアノの鍵盤などを押し下げる速度(ノートオン時のベロシティー)および鍵盤から指を離す速度(ノートオフ時のベロシティー)を示すパラメータであり、特定の音の演奏開始操作もしくは演奏終了操作の強さを示すことになる。
【0018】
前述の方法では、第i番目の単位区間diについて、代表符号としてJ個のノートナンバーn(di,1),n(di,2),・・・,n(di,J)が得られ、このそれぞれについて強度e(di,1),e(di,2),・・・,e(di,J)が得られる。そこで、次のような手法により、MIDI形式の符号データを作成することができる。まず、「ノートオン」データもしくは「ノートオフ」データの中で記述するノートナンバーNとしては、得られたノートナンバーn(di,1),n(di,2),・・・,n(di,J)をそのまま用いれば良い。一方、「ノートオン」データもしくは「ノートオフ」データの中で記述するベロシティーVとしては、得られた強度e(di,1),e(di,2),・・・,e(di,J)を所定の方法で規格化した値を用いれば良い。また、「デルタタイム」データは、各単位区間の長さに応じて設定すれば良い。
【0019】
(2.周期関数との相関を求める具体的な手法)
上述した基本原理の基づく方法では、区間信号に対して、1つまたは複数の代表周波数が選出され、この代表周波数をもった周期信号によって、当該区間信号が表現されることになる。ここで、選出される代表周波数は、文字どおり、当該単位区間内の信号成分を代表する周波数である。この代表周波数を選出する具体的な方法には、後述するように、短時間フーリエ変換を利用する方法と、一般化調和解析の手法を利用する方法とがある。いずれの方法も、基本的な考え方は同じであり、あらかじめ周波数の異なる複数の周期関数を用意しておき、これら複数の周期関数の中から、当該単位区間内の区間信号に対する相関が高い周期関数を見つけ出し、この相関の高い周期関数の周波数を代表周波数として選出する、という手法を採ることになる。すなわち、代表周波数を選出する際には、あらかじめ用意された複数の周期関数と、単位区間内の区間信号との相関を求める演算を行うことになる。そこで、ここでは、周期関数との相関を求める具体的な方法を述べておく。
【0020】
複数の周期関数として、図2に示すような三角関数が用意されているものとする。これらの三角関数は、同一周波数をもった正弦関数と余弦関数との対から構成されており、128通りの標準周波数f(0)〜f(127)のそれぞれについて、正弦関数および余弦関数の対が定義されていることになる。ここでは、同一の周波数をもった正弦関数および余弦関数からなる一対の関数を、当該周波数についての周期関数として定義することにする。すなわち、ある特定の周波数についての周期関数は、一対の正弦関数および余弦関数によって構成されることになる。このように、一対の正弦関数と余弦関数とにより周期関数を定義するのは、信号に対する周期関数の相関値を求める際に、相関値が位相の影響を受ける事を考慮するためである。なお、図2に示す各三角関数内の変数Fおよびkは、区間信号Xについてのサンプリング周波数Fおよびサンプル番号kに相当する変数である。例えば、周波数f(0)についての正弦波は、sin(2πf(0)k/F)で示され、任意のサンプル番号kを与えると、区間信号を構成する第k番目のサンプルと同一時間位置における周期関数の振幅値が得られる。
【0021】
ここでは、128通りの標準周波数f(0)〜f(127)を図3に示すような式で定義した例を示すことにする。すなわち、第n番目(0≦n≦127)の標準周波数f(n)は、以下に示す〔数式1〕で定義されることになる。
【0022】
〔数式1〕
f(n)=440×2γ (n)
γ(n)=(n−69)/12
【0023】
このような式によって標準周波数を定義しておくと、最終的にMIDIデータを用いた符号化を行う際に便利である。なぜなら、このような定義によって設定される128通りの標準周波数f(0)〜f(127)は、等比級数をなす周波数値をとることになり、MIDIデータで利用されるノートナンバーに対応した周波数になるからである。したがって、図2に示す128通りの標準周波数f(0)〜f(127)は、対数尺度で示した周波数軸上に等間隔(MIDIにおける半音単位)に設定した周波数ということになる。
【0024】
(2.1.短時間フーリエ変換による手法)
続いて、任意の区間の区間信号に対する各周期関数の相関の求め方について、具体的な説明を行う。例えば、図4に示すように、ある単位区間dについて区間信号Xが与えられていたとする。ここでは、区間長Lをもった単位区間dについて、サンプリング周波数Fでサンプリングが行なわれており、全部でw個のサンプル値が得られているものとし、サンプル番号を図示のように、0,1,2,3,・・・,k,・・・,w−2,w−1とする(白丸で示す第w番目のサンプルは、右に隣接する次の単位区間の先頭に含まれるサンプルとする)。この場合、任意のサンプル番号kについては、X(k)なる振幅値がデジタルデータとして与えられていることになる。短時間フーリエ変換においては、X(k)に対して各サンプルごとに中央の重みが1に近く、両端の重みが0に近くなるような窓関数W(k)を乗ずることが通常である。すなわち、X(k)×W(k)をX(k)と扱って以下のような相関計算を行うもので、窓関数の形状としては余弦波形状のハミング窓が一般に用いられている。ここで、wは以下の記述においても定数のような記載をしているが、一般にはnの値に応じて変化させ、区間長Lを超えない範囲で最大となるF/f(n)の整数倍の値に設定することが望ましい。
【0025】
このような区間信号Xに対して、第n番目の標準周波数f(n)をもった正弦関数Rnとの相関値を求める原理を示す。両者の相関値A(n)は、図5の第1の演算式によって定義することができる。ここで、X(k)は、図4に示すように、区間信号Xにおけるサンプル番号kの振幅値であり、sin(2πf(n)k/F)は、時間軸上での同位置における正弦関数Rnの振幅値である。この第1の演算式は、単位区間d内の全サンプル番号k=0〜w−1の次元について、それぞれ区間信号Xの振幅値と正弦関数Rnの振幅ベクトルの内積を求める式ということができる。
【0026】
同様に、図5の第2の演算式は、区間信号Xと、第n番目の標準周波数f(n)をもった余弦関数との相関値を求める式であり、両者の相関値はB(n)で与えられる。なお、相関値A(n)を求めるための第1の演算式も、相関値B(n)を求めるための第2の演算式も、最終的に2/wが乗ぜられているが、これは相関値を規格化するためのものでり、前述のとおりwはnに依存して変化させるのが一般的であるため、この係数もnに依存する変数である。
【0027】
区間信号Xと標準周波数f(n)をもった標準周期関数との相関実効値は、図5の第3の演算式に示すように、正弦関数との相関値A(n)と余弦関数との相関値B(n)との二乗和平方根値E(n)によって示すことができる。この相関実効値の大きな標準周期関数の周波数を代表周波数として選出すれば、この代表周波数を用いて区間信号Xを符号化することができる。
【0028】
すなわち、この相関値E(n)が所定の基準以上の大きさとなる1つまたは複数の標準周波数を代表周波数として選出すれば良い。なお、ここで「相関値E(n)が所定の基準以上の大きさとなる」という選出条件は、例えば、何らかの閾値を設定しておき、相関値E(n)がこの閾値を超えるような標準周波数f(n)をすべて代表周波数として選出する、という絶対的な選出条件を設定しても良いが、例えば、相関値E(n)の大きさの順にQ番目までを選出する、というような相対的な選出条件を設定しても良い。
【0029】
(2.2.一般化調和解析による手法)
ここでは、本発明に係る音響信号の符号化を行う際に有用な一般化調和解析の手法について説明する。既に説明したように、音響信号を符号化する場合、個々の単位区間内の区間信号について、相関値の高いいくつかの代表周波数を選出することになる。一般化調和解析は、より高い精度で代表周波数の選出を可能にする手法であり、その基本原理は次の通りである。
【0030】
図6(a)に示すような単位区間dについて、信号S(j)なるものが存在するとする。ここで、jは後述するように、繰り返し処理のためのパラメータである(j=1〜J)。まず、この信号S(j)に対して、図2に示すような128通りの周期関数すべてについての相関値を求める。そして、最大の相関値が得られた1つの周期関数の周波数を代表周波数として選出し、当該代表周波数をもった周期関数を要素関数として抽出する。続いて、図6(b)に示すような含有信号G(j)を定義する。この含有信号G(j)は、抽出された要素関数に、その振幅として、当該要素関数の信号S(j)に対する相関値を乗じることにより得られる信号である。例えば、周期関数として図2に示すように、一対の正弦関数と余弦関数とを用い、周波数f(n)が代表周波数として選出された場合、振幅A(n)をもった正弦関数A(n)sin(2πf(n)k/F)と、振幅B(n)をもった余弦関数B(n)cos(2πf(n)k/F)との和からなる信号が含有信号G(j)ということになる(図6(b)では、図示の便宜上、一方の関数しか示していない)。ここで、A(n),B(n)は、図5の式で得られる規格化された相関値であるから、結局、含有信号G(j)は、信号S(j)内に含まれている周波数f(n)をもった信号成分ということができる。
【0031】
こうして、含有信号G(j)が求まったら、信号S(j)から含有信号G(j)を減じることにより、差分信号S(j+1)を求める。図6(c)は、このようにして求まった差分信号S(j+1)を示している。この差分信号S(j+1)は、もとの信号S(j)の中から、周波数f(n)をもった信号成分を取り去った残りの信号成分からなる信号ということができる。そこで、パラメータjを1だけ増加させることにより、この差分信号S(j+1)を新たな信号S(j)として取り扱い、同様の処理を、パラメータjをj=1〜Jまで1ずつ増やしながらJ回繰り返し実行すれば、J個の代表周波数を選出することができる。
【0032】
このような相関計算の結果として出力されるJ個の含有信号G(1)〜G(J)は、もとの区間信号Xの構成要素となる信号であり、もとの区間信号Xを符号化する場合には、これらJ個の含有信号の周波数を示す情報および振幅(強度)を示す情報を符号データとして用いるようにすれば良い。尚、Jは代表周波数の個数であると説明してきたが、標準周波数f(n)の個数と同一すなわちJ=128であってもよく、周波数スペクトルを求める目的においてはそのように行うのが通例である。
【0033】
こうして、各単位区間について、所定数の周波数群が選出されたら、この周波数群の各周波数に対応する「音の高さを示す情報」、選出された各周波数の信号強度に対応する「音の強さを示す情報」、当該単位区間の始点に対応する「音の発音開始時刻を示す情報」、当該単位区間に後続する単位区間の始点に対応する「音の発音終了時刻を示す情報」、の4つの情報を含む所定数の符号データを作成すれば、当該単位区間内の区間信号Xを所定数の符号データにより符号化することができる。符号データとして、MIDIデータを作成するのであれば、「音の高さを示す情報」としてノートナンバーを用い、「音の強さを示す情報」としてベロシティーを用い、「音の発音開始時刻を示す情報」としてノートオン時刻を用い、「音の発音終了時刻を示す情報」としてノートオフ時刻を用いるようにすれば良い。
【0034】
(3.本発明に係る音響信号の符号化方法)
ここまでに説明した従来技術とも共通する本発明の基本原理を要約すると、原音響信号に単位区間を設定し、単位区間ごとに複数の周波数に対応する信号強度を算出し、得られた信号強度を基に用意された周期関数を利用して1つまたは複数の代表周波数を選出し、選出された代表周波数に対応する音の高さ情報と、選出された代表周波数の強度に対応する音の強さ情報と、単位区間の始点に対応する発音開始時刻と、単位区間の終点に対応する発音終了時刻で構成される符号データを作成することにより、音響信号の符号化が行われていることになる。
【0035】
本発明の音響信号符号化方法は、上記基本原理において、用意された周期関数の全てについて相関演算を行って、各周波数に対応する強度を求め、これら各周波数と、各周波数の強度と、単位区間の始点に対応する区間開始時刻と、単位区間の終点に対応する区間終了時刻で構成されるデータを「音素データ」と定義し、この音素データをさらに加工することにより最終的な符号化データを得るようにしたものである。
【0036】
ここからは、本発明の音響信号符号化方法の流れについて、図7に示すフローチャートを用いて説明する。まず、音響信号の時間軸上の全区間に渡って単位区間を設定する(ステップS1)。このステップS1における手法は、上記基本原理において、図1(a)を用いて説明した通りである。
【0037】
続いて、各単位区間ごとの音響信号、すなわち区間信号について、周波数解析を行って各周波数に対応する強度値を算出し、周波数、強度値、単位区間の始点、終点の4つの情報からなる単位音素データを算出する(ステップS2)。具体的には、図2に示したような128種の周期関数に対して区間信号の相関強度を求め、その周期関数の周波数、求めた相関強度、単位区間の始点、終点の4つの情報を「単位音素データ」と定義する。この単位音素データとは、音素データのうち、特に単位区間長のものとする。本実施形態では、上記基本原理で説明した場合のように、代表周波数を選出するのではなく、用意した周期関数全てに対応する単位音素データを取得する。このステップS2の処理を全単位区間に対して行うことにより、M×N個の単位音素データからなる単位音素データ群が得られる。ここで、Nは周期関数の総数(上述の例ではN=128)、Mは音響信号において設定された単位区間の総数である。
【0038】
続いて、各単位区間ごとに単位音素データが有する強度値に基づいて、各周波数の倍音分布度を算出する(ステップS3)。倍音分布度とは、その単位音素データが基本音であるか、他の単位音素データの倍音であるかどうかを判定するための値である。具体的には、以下の〔数式2〕を用いてノートナンバーnに対応する倍音分布度H(n)が算出される。
【0039】
〔数式2〕
H(n)={V(n+12) + V(n+19) + V(n+24) + V(n+28) + V(n+31) + V(n+34) + V(n+36) - V(n-12) - V(n-19) - V(n-24) - V(n-28) - V(n-31) - V(n-34) - V(n-36) }×100/V(n)
【0040】
上記〔数式2〕において、V(n)はノートナンバーnの強度値を示しており、 V(n+12) ,V(n+19) ,V(n+24) ,V(n+28) ,V(n+31) ,V(n+34) ,V(n+36) はそれぞれノートナンバーnの音の2倍音、3倍音、4倍音、5倍音、6倍音、7倍音、8倍音の強度値を、 V(n-12) ,V(n-19) ,V(n-24) ,V(n-28) ,V(n-31) ,V(n-34) ,V(n-36) はそれぞれノートナンバーnの音を2倍音、3倍音、4倍音、5倍音、6倍音、7倍音、8倍音と仮定したときの基本音の強度値を示している。結局、上記〔数式2〕で算出される倍音分布度H(n)は、自身の整数倍の周波数の音が多く存在する場合には正の値となり、自身の整数分の1の周波数の音が多く存在する場合には負の値となる。
【0041】
倍音分布度算出の具体例を図8を用いて説明する。図8は、ある単位区間における128個の単位音素データのうち、10個の単位音素データを示している。実際には、128個全ての単位音素データについて、基本音であるか倍音であるかの判断を行うが、図8では、説明の便宜上10個だけを示している。図8において、音階(ノートナンバー)、強度値は単位音素データを構成するものである。なお、ここで音階およびノートナンバーは、単位音素データの属性である周波数と同義であり、その関係は上記〔数式1〕で定まるものである。ここでは、説明の便宜上、周波数ではなく、音階およびノートナンバーを使用する。また、図8において音階のアルファベットC・D・E・F・G・A・Bはそれぞれド・レ・ミ・ファ・ソ・ラ・シを表わしており、G2という音階は、2オクターブ目のソの音を表わしている。(ピアノ鍵盤の中央のド、すなわちノートナンバー60で始まる音階を3オクターブ目と定義する方法と4オクターブ目と定義する方法があり、本実施形態では前者を用いている。)
【0042】
倍音分布度の算出は、次のように行われる。例えば、図8の1行目の音階G2については、それぞれ周波数が2倍(ノートナンバーが+12)の音階G3、4倍(ノートナンバーが+24)の音階G4、5倍(ノートナンバーが+28)の音階B4、6倍(ノートナンバーが+31)の音階D5の強度値が積算される。これは、音階G2の強度積算の欄に「120+90+35+40」として示されている。これを音階G2の強度20で割って、正規化のために100を乗じたものが倍音分布度「1425」となる。これは、すなわち上記〔数式2〕を用いて倍音分布度H(n)を算出したものである。
【0043】
図8の5行目の音階C4の場合は、周波数が2倍(ノートナンバーが+12)の音階C5の強度値が加算され、1/2倍(ノートナンバーが−12)の音階C3の強度値が減算される。その結果、倍音分布度は「−150」となる。同様にして各単位音素データについて倍音分布度の算出が行われる。図8の例では、説明の便宜上、10個の単位音素データに対してしか処理を行っていないが、実際には各単位区間における全単位音素データ(図2に示したように128個の周期関数を用意した場合には128個)に対して行われる。
【0044】
続いて、算出された倍音分布度に基づいて、各単位音素データに優先マークを付与する(ステップS4)。具体的には、各単位区間ごとに倍音分布度の値が負である単位音素データを優先する対象から外し、倍音分布度の値が正である単位音素データのうちから所定の基準により所定数のものに優先マークを付与する。例えば、図8に示した例で3つのものに優先マークを付与することを考えてみる。この場合、まず、音階C4・E4・G4・B4・C5・D5の倍音分布度の値は全て負であるので、優先する対象から除外される。残った単位音素データのうち、所定の基準で優先するものを決定するが、本実施形態では、倍音分布度の値が100に近いものを選択するものとする。図8の例では、音階G3・E3・C3の順に100に近いため、この3つに対応する単位音素データに優先マークが付与されることになる。ここで、まず、倍音分布度が負であるものを優先対象から外すのは、倍音分布度が負であるということが、自身の整数分の1の周波数である音の成分が強いということを示しており、それはすなわち自身が他の基本音の倍音である可能性が高いためである。逆に、倍音分布度が正であるものは、自身の整数分の1の周波数である音の成分が弱いということを示しており、それはすなわち自身が他の基本音の倍音である可能性が低いということであるため、優先マークの付与対象として残される。また、所定の基準として倍音分布度の値が100に近いものを選択するようにしたのは、100に近いほど、自身の音と倍音がバランス良く発生していることを示しているためである。倍音分布度の値が大き過ぎると、自身の音が倍音に比較して弱いことを意味し、その音がノイズである可能性が高く、かつ自身の音の倍音の位置(通常はオクターブ上すなわち2倍音の位置)に他の基本音が存在する可能性が高くなるためである。
【0045】
図8に示した例では、説明の便宜上3つの単位音素データに優先マークを付与するようにしたが、実用上はMIDI規格の同時発音可能数に合わせて16〜32個程度に優先マークを付与する。優先マークを付与するとは、実際には、単位音素データに倍音分布度の値を保持させたり、優先を示すフラグを記録することになる。なお、ここで優先マークが付与された単位音素データを以降優先音素データと呼ぶことにする。
【0046】
このようにして優先音素データを含む単位音素データ群が得られたら、この単位音素データ群を構成する単位音素データのうち、強度値が所定の基準以下である単位音素データを削除する(ステップS5)。ここで、強度値が所定の基準以下である単位音素データを削除するのは、信号レベルがほとんど0であって、実際には音が存在していないと判断される音素を削除するためである。そのため、この所定の基準としては、音が実際に存在しないレベルとみなされる値が設定される。この時点で単位音素データの数はM×N個より減ることになる。
【0047】
強度値が所定以下の単位音素データを削除したら、残った単位音素データ群において、同一周波数で時系列方向に連続する複数の単位音素データを1つの連結音素データとして連結する(ステップS6)。図9は単位音素データの連結を説明するための概念図である。図9(a)は連結前の単位音素データ群の様子を示す図である。図9(a)において、格子状に仕切られた各矩形は単位音素データを示しており、網掛けがされている矩形は、上記ステップS5において強度値が所定の基準以下であると判断されて削除された単位音素データであり、その他の矩形は削除されなかった単位音素データを示す。ステップS6においては、同一周波数(同一ノートナンバー)で時間t方向に連続する単位音素データを連結する。具体的には、図9(a)に示す単位音素データ群に対して連結処理を実行すると、図9(b)に示すような複数の連結音素データ、複数の単位音素データからなる音素データ群が得られる。例えば、図9(a)に示した単位音素データA1、A2、A3は連結されて、図9(b)に示すような連結音素データAが得られることになる。このとき、構成される単位音素データA1、A2、A3のいずれか1つは優先音素データでなければならず、いずれも優先音素データでない場合は連結されずにこの段階で削除され、次のステップS7には渡されない。連結が行われる場合、新たに得られる連結音素データAの周波数としては、単位音素データA1、A2、A3に共通の周波数が与えられ、強度値としては、単位音素データA1、A2、A3の強度値のうち最大のものが与えられ、開始時刻としては、先頭の単位音素データA1の区間開始時刻t1が与えられ、終了時刻としては、最後尾の単位音素データA3の区間終了時刻t4が与えられる。なお、連結音素データAの強度値としては、単位音素データA1、A2、A3の強度値の平均値を与えるようにすることも可能である。最終的な符号化時には、優先マーク(実際には、倍音分布度等)は符号化されず、周波数(ノートナンバー)、強度値、開始時刻、終了時刻の4つの情報だけで構成されるため、3つの単位音素データが1つの連結音素データに統合されることにより、データ量は3分の1に削減される。このことは、最終的にMIDI符号化される場合には、短い音符3つではなく、長い音符1つとして表現されることを意味している。また、図9(a)に示した優先音素データBのように、同一周波数で時系列方向に連続する単位音素データがない場合で、当該単位音素データが優先音素データである場合には、図9(b)に示すように、連結されずにそのまま残ることになるが、以降の処理においては、連結音素データも、連結されなかった単位区間長の優先音素データもまとめて「音素データ」として扱う。
【0048】
続いて、全区間において残っている音素データのうち、優先音素データ以外で区間長が所定値より長いものを削除して符号化を行う(ステップS7)。区間長とは、音素データの開始時刻から終了時刻までの長さを示す。所定値としては、100〜200msec(ミリ秒)が設定される。この所定値は、ピアノとヴォーカルを分けるために設定されるものである。一般に、ピアノ等の鍵楽器は1つの音成分が長く続き、ヴォーカル等の人の声は1つの音成分が短い。ピアノの場合、キーを降ろしている間に音が鳴り続け、時間が経つにつれて振幅は指数関数的に減衰するが、周波数はほとんど変化しないため、単位音素データの連結がされやすく、音の持続時間(デュレーション)が長くなる。これに対し、ヴォーカルは子音の部分では周波数が時間とともに急変して安定せず、母音の部分では音が持続して、ピアノより振幅の減衰は少ないものの周波数は微小に震えるため、音素の連結がされにくく、音の持続時間(デュレーション)が短くなる。ここでは、このような特性を利用して区間長が所定値より長い音素データを削除することによって、楽器音の倍音だけを削除することができる。所定値より短いものについては、優先音素データ以外の音素データであっても削除しないため、ヴォーカルの倍音成分は削除されないことになる。音素データの削除が行われたら、MIDI形式に符号化を行う。
【0049】
以上、本発明の好適な実施形態について説明したが、上記符号化方法は、コンピュータ等で実行されることは当然である。具体的には、図7のフローチャートに示したようなステップを上記手順で実行するためのプログラムをコンピュータに搭載しておく。そして、音響信号をPCM方式等でデジタル化した後、コンピュータに取り込み、ステップS1〜ステップS7の処理を行った後、MIDI形式等の符号データをコンピュータより出力する。出力された符号データは、例えば、MIDIデータの場合、MIDIシーケンサ、MIDI音源を用いて音声として再生される。
【0050】
【発明の効果】
以上、説明したように本発明によれば、音響信号に対して時間軸上に複数の単位区間を設定し、単位区間における音響信号と複数の周期関数との相関を求めることにより各周期関数に対応した強度を算出し、各周期関数が有する周波数と、各周期関数に対応した強度と、単位区間の始点に対応する区間開始時刻と、単位区間の終点に対応する区間終了時刻で構成される単位音素データを算出し、単位音素データに対して各単位区間ごとに周波数が互いに整数倍の関係となる両単位音素データの強度に基づいて、各単位音素データの倍音分布度を算出し、単位音素データのうち、区間が連続し、周波数および強度が類似するものを連結して連結音素データとし、連結音素データの属性として、周波数は構成する単位音素データのいずれかの周波数を与え、強度は構成する単位音素データの最大値を与え、開始時刻は先頭の単位音素データの区間開始時刻を与え、終了時刻は最後尾の単位音素データの区間終了時刻を与え、倍音分布度は構成する単位音素データのいずれかの倍音分布度を与えるようにし、連結処理後の音素データのうち、所定の条件を満たす音素データのみを抽出し、符号データを作成するようにしたので、精度の良い倍音除去が可能となるという効果を奏する。また、倍音と判断される成分を除去する際、連結後の音素データの区間長が長いものについてだけ、倍音と判断される成分の除去を行うようすることにより、楽器音等の、人間の声以外に対してだけ倍音除去を行うことも可能となる。
【図面の簡単な説明】
【図1】本発明の音響信号の符号化方法の基本原理を示す図である。
【図2】本発明で利用される周期関数の一例を示す図である。
【図3】図2に示す各周期関数の周波数とMIDIノートナンバーnとの関係式を示す図である。
【図4】解析対象となる信号と周期信号との相関計算の手法を示す図である。
【図5】図4に示す相関計算を行うための計算式を示す図である。
【図6】一般化調和解析の基本的な手法を示す図である。
【図7】本発明の音響信号符号化方法のフローチャートである。
【図8】単位音素データの周波数(音階で示す)、強度、倍音分布度の関係を示す図である。
【図9】単位音素データの連結を説明するための概念図である。
【符号の説明】
A(n),B(n)・・・相関値
d,d1〜d5・・・単位区間
E(n)・・・相関値
G(j)・・・含有信号
n,n1〜n6・・・ノートナンバー
S(j),S(j+1)・・・差分信号
X,X(k)・・・区間信号
H(n)・・・倍音分布度
Claims (6)
- 与えられた音響信号に対して、時間軸上に複数の単位区間を設定する区間設定段階と、
前記単位区間における音響信号と複数の周期関数との相関を求めることにより、各周期関数に対応した強度を算出し、各周期関数が有する周波数と、前記各周期関数に対応した強度と、単位区間の始点に対応する区間開始時刻と、単位区間の終点に対応する区間終了時刻で構成される単位音素データを算出する単位音素データ算出段階と、
前記単位音素データに対して、各単位区間ごとに周波数比が整数倍の関係となる他の単位音素データの強度値を加算して高周波分布度を得て、当該単位音素データとの周波数比が(1/整数)倍の関係となる他の単位音素データの強度値を加算して低周波分布度を得て、高周波分布度と低周波分布度の正負の符号を互いに異ならせて加算することにより得られた値を当該単位音素データの強度値で除することにより、各単位音素データの倍音分布度を算出する倍音分布度算出段階と、
前記単位音素データのうち、区間が連続し、周波数が同一で強度が類似するものを連結して連結音素データとし、連結音素データの属性として、周波数は構成する単位音素データのいずれかの周波数を与え、強度は構成する単位音素データの最大値を与え、開始時刻は先頭の単位音素データの区間開始時刻を与え、終了時刻は最後尾の単位音素データの区間終了時刻を与え、倍音分布度は構成する単位音素データのいずれかの倍音分布度を与えるようにする音素データ連結段階と、
前記連結処理後の音素データのうち、少なくとも倍音分布度が所定の条件を満たす音素データのみを抽出し、当該抽出した音素データの区間長に対応するデルタタイム情報、周波数に対応するノートナンバー情報、強度に対応するベロシティー情報をもつMIDI形式の符号データを作成する符号化段階と、
を有することを特徴とする音響信号の符号化方法。 - 前記音素データ連結段階は、各単位区間ごとに倍音分布度に基づいて所定数の単位音素データに優先する旨を示す情報である優先マークを付与すると共に、強度値が所定値より小さい単位音素データを削除した後に、前記連結処理を実行するものであることを特徴とする請求項1に記載の音響信号の符号化方法。
- 前記音素データ連結段階における前記優先マークの付与は、前記代表分布度の正負の符号を考慮して、倍音であると判断される単位音素データを付与対象から除外し、残った単位音素データのうち、所定数のものに優先マークを付与するものであることを特徴とする請求項2に記載の音響信号の符号化方法。
- 前記符号化段階は、連結処理後の音素データの区間長が所定値よりも長く、優先マークが付与されていないものを符号化対象から除外し、残った音素データを符号化するものであることを特徴とする請求項2または請求項3に記載の音響信号の符号化方法。
- コンピュータに、音響信号に対して時間軸上に複数の単位区間を設定する区間設定段階、前記単位区間における音響信号と複数の周期関数との相関を求めることにより、各周期関数に対応した強度を算出し、各周期関数が有する周波数と、前記各周期関数に対応した強度と、単位区間の始点に対応する区間開始時刻と、単位区間の終点に対応する区間終了時刻で構成される単位音素データを算出する単位音素データ算出段階、前記単位音素データに対して、各単位区間ごとに周波数比が整数倍の関係となる他の単位音素データの強度値を加算して高周波分布度を得て、当該単位音素データとの周波数比が(1/整数)倍の関係となる他の単位音素データの強度値を加算して低周波分布度を得て、高周波分布度と低周波分布度の正負の符号を互いに異ならせて加算することにより得られた値を当該単位音素データの強度値で除することにより、各単位音素データの倍音分布度を算出する倍音分布度算出段階、前記単位音素データのうち、区間が連続し、周波数が同一で強度が類似するものを連結して連結音素データとし、連結音素データの属性として、周波数は構成する単位音素データのいずれかの周波数を与え、強度は構成する単位音素データの最大値を与え、開始時刻は先頭の単位音素データの区間開始時刻を与え、終了時刻は最後尾の単位音素データの区間終了時刻を与え、倍音分布度は構成する単位音素データのいずれかの倍音分布度を与えるようにする音素データ連結段階、前記連結処理後の音素データのうち、少なくとも倍音分布度が所定の条件を満たす音素データのみを抽出し、当該抽出した音素データの区間長に対応するデルタタイム情報、周波数に対応するノートナンバー情報、強度に対応するベロシティー情報をもつMIDI形式の符号データを作成する符号化段階と、前記連結処理後の音素データのうち、所定の条件を満たす音素データのみを抽出し、符号データを作成する符号化段階、を実行させるためのプログラム。
- 前記音素データ連結段階は、各単位区間ごとに倍音分布度に基づいて所定数の単位音素データに優先する旨を示す情報である優先マークを付与すると共に、強度値が所定値より小さい単位音素データを削除した後に、前記連結処理を実行するものであることを特徴とする請求項5に記載のプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001321968A JP3776782B2 (ja) | 2001-10-19 | 2001-10-19 | 音響信号の符号化方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001321968A JP3776782B2 (ja) | 2001-10-19 | 2001-10-19 | 音響信号の符号化方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2003124816A JP2003124816A (ja) | 2003-04-25 |
| JP3776782B2 true JP3776782B2 (ja) | 2006-05-17 |
Family
ID=19139091
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001321968A Expired - Fee Related JP3776782B2 (ja) | 2001-10-19 | 2001-10-19 | 音響信号の符号化方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3776782B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4735398B2 (ja) * | 2006-04-28 | 2011-07-27 | 日本ビクター株式会社 | 音響信号分析装置、音響信号分析方法、及び音響信号分析用プログラム |
| JP4503675B2 (ja) * | 2008-12-25 | 2010-07-14 | 株式会社コナミデジタルエンタテインメント | ゲーム機およびゲームプログラム |
-
2001
- 2001-10-19 JP JP2001321968A patent/JP3776782B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2003124816A (ja) | 2003-04-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4132362B2 (ja) | 音響信号の符号化方法およびプログラム記録媒体 | |
| JP3776782B2 (ja) | 音響信号の符号化方法 | |
| JP4037542B2 (ja) | 音響信号の符号化方法 | |
| JP4695781B2 (ja) | 音響信号の符号化方法 | |
| JP4156252B2 (ja) | 音響信号の符号化方法 | |
| JP4331289B2 (ja) | 音響信号の符号化方法 | |
| JP4268328B2 (ja) | 音響信号の符号化方法 | |
| JP4697919B2 (ja) | 音響信号の符号化方法 | |
| JP2003216147A (ja) | 音響信号の符号化方法 | |
| JP3935745B2 (ja) | 音響信号の符号化方法 | |
| JP2001005450A (ja) | 音響信号の符号化方法 | |
| JP4220108B2 (ja) | 音響信号符号化システム | |
| JP4662407B2 (ja) | 周波数解析方法 | |
| JP2002215142A (ja) | 音響信号の符号化方法 | |
| JP4156269B2 (ja) | 時系列信号の周波数解析方法および音響信号の符号化方法 | |
| JP4156268B2 (ja) | 時系列信号の周波数解析方法および音響信号の符号化方法 | |
| JP4662406B2 (ja) | 周波数解析方法および音響信号の符号化方法 | |
| JP4061070B2 (ja) | 周波数解析方法および音響信号の符号化方法 | |
| JP4580548B2 (ja) | 周波数解析方法 | |
| JP2002244691A (ja) | 音響信号の符号化方法 | |
| JP4268327B2 (ja) | 音響信号の符号化方法 | |
| JP4601865B2 (ja) | 音響信号の符号化方法 | |
| JP4473979B2 (ja) | 音響信号の符号化方法および復号化方法ならびに当該方法を実行するプログラムを記録した記録媒体 | |
| JP2003263155A (ja) | 周波数解析装置および音響信号の符号化装置 | |
| JP2003084799A (ja) | 周波数解析方法および音響信号の符号化方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040906 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051031 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051115 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060113 |
|
| 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: 20060207 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060223 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100303 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100303 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110303 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110303 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120303 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130303 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130303 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140303 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |