(57)【特許請求の範囲】
【請求項１】
音声の周波数から音程を抽出する音程抽出方法において、
前記音声の周波数ｆと、基本周波数ｃと、オクターブ数ｐ（０以上の整数）と、オクターブ内音程ｑ（０≦ｑ＜１２）とにより、
ｆ／ｃ＝２（ｐ＋ｑ／１２）
と表現され得る周波数データｆ／ｃを、仮数部ｘ、指数部ｙにより
ｆ／ｃ＝ｘ＊２ｙ  （０．５≦ｘ＜１）
と浮動小数点で表現し、
前記仮数部ｘからオクターブ内音程ｑを
ｑ／１２＝ｌｏｇ２２ｘ
して求め、
前記指数部ｙからオクターブ数ｐを
ｐ＝ｙ−１
して求めることを特徴とする音程抽出方法。
【請求項２】
第１、第２の２つの音声の周波数から両者の音程差を抽出する音程差抽出方法において、
前記第１の音声の周波数ｆ１と、前記第２の音声の周波数ｆ２と、基本周波数ｃと、前記第１の音声のオクターブ数ｐ１（０以上の整数）と、前記第２の音声のオクターブ数ｐ２（０以上の整数）と、前記第１の音声のオクターブ内音程ｑ１（０≦ｑ１＜１２）と、前記第２の音声のオクターブ内音程ｑ２（０≦ｑ２＜１２）とにより、
ｆ１／ｃ＝２（ｐ１＋ｑ１／１２）、
ｆ２／ｃ＝２（ｐ２＋ｑ２／１２）
と表現され得る周波数データｆ１／ｃ、周波数データｆ２／ｃを、仮数部ｘ１、仮数部ｘ２、指数部ｙ１、指数部ｙ２により
ｆ１／ｃ＝ｘ１＊２ｙ１  （０．５≦ｘ１＜１）、
ｆ２／ｃ＝ｘ２＊２ｙ２  （０．５≦ｘ２＜１）
とそれぞれ浮動小数点で表現し、
この仮数部ｘ１、仮数部ｘ２からオクターブ内音程ｑ１、オクターブ内音程ｑ２を
ｑ１／１２＝ｌｏｇ２２ｘ１、
ｑ２／１２＝ｌｏｇ２２ｘ２、
として前記第１、第２の音声ごとに求め、
この求められた２つのオクターブ内音程の差を音程差として求める
ことを特徴とする音程差抽出方法。
【請求項３】
前記オクターブ内音程の差を示す２の補数表現されたバイナリデータを１ビット左にシフトした後にその絶対値を求めることにより、前記２つの音声の音程差を算出することを特徴とする請求項２記載の音程差抽出方法。
【請求項４】
第１、第２の２つの音声の周波数ｆ１、ｆ２をそれぞれ基本周波数ｃで規格化する規格化手段と、
これら規格化された周波数ｆ１／ｃ、ｆ２／ｃをそれぞれ仮数部ｘ１、ｘ２、指数部ｙ１、ｙ２により
ｆ１／ｃ＝ｘ１＊２ｙ１  （０．５≦ｘ１＜１）
ｆ２／ｃ＝ｘ２＊２ｙ２  （０．５≦ｘ２＜１）
と浮動小数点で表現した周波数データに変換する浮動小数点変換手段と、
この浮動小数点変換手段でそれぞれ変換された周波数データのうち仮数部ｘ１、ｘ２からオクターブ内音程ｑ１、ｑ２を
ｑ１／１２＝ｌｏｇ２２ｘ１、
ｑ２／１２＝ｌｏｇ２２ｘ２、
して前記第１、第２の２つの音声ごとに算出する対数演算手段と、
この対数演算手段でそれぞれ求められたオクターブ内音程の差から音程差を算出する音程差算出手段と
を備えたことを特徴とする音程差抽出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、音声の周波数から音程を抽出する音程抽出方法及び２つの音声の周波数から音程差を抽出する音程差抽出方法並びにこれらを用いた音程差抽出装置に関し、特にカラオケ採点装置等に適用される音程及び音程差抽出方法並びに音程差抽出装置に関する。
【０００２】
【従来の技術】
音声信号の周波数から音程を抽出したり、基準となる音声信号との音程差を抽出する技術は、音声信号から音程を認識したり、認識した音声を評価する各種の分野において利用される。以下、従来の音程抽出方法について説明する。
【０００３】
図５は、４３．６５４Ｈｚから５５８７．７Ｈｚまでの周波数をＣ調の等分平均率音階で表した図である。
この図をもとに周波数と半音単位（１００セント単位）の音程との関係を求めると、数１のようになる。
【０００４】
【数１】
ｆ＝ｃ＊２(p+q/12)
【０００５】
但し、ｆは音声の周波数であり、ｃは基本周波数である。基本周波数ｃは、例えば１６．３５１Ｈｚに設定される。また、ｐはオクターブ数、ｑはオクターブ内音程である。オクターブ内音程ｑは、例えば半音単位で与えられ、音程記号Ｃ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃，Ｂにそれぞれ対応して０，１，２，３，…，１１の数値で表現される。従って、ｐは０以上の整数、ｑは０≦ｑ＜１２を満たす数値となる。
数１から音程は、下記数２のように求めることができる。
【０００６】
【数２】
ｐ＋ｑ／１２＝ｌｏｇ2（ｆ／ｃ）
ここで、数２の右辺が得られるｐとｑの組み合わせは複数存在するが、ｐが０以上の整数、ｑが０≦ｑ＜１２であるという条件を満たすｐ，ｑの組み合わせは１通りであるため、そのｐ，ｑの組み合わせを音程として抽出すればよい。
例えば、ｆ＝４４０Ｈｚが与えられたとすると、数２の右辺は数３のようになる。
【０００７】
【数３】
ｌｏｇ2（４４０／１６．３５１）＝４．７５
【０００８】
従って、この場合には、音程がｐ＝４，ｑ＝０．７５×１２＝９のように求められる。
【０００９】
２つの音の音程差を求める場合には、上記数２に基づいて求められた２つの音程ｐ１，ｐ２及びｑ１，ｑ２に基づいて、音程差ｄを下記数４のように求めればよい。
【００１０】
【数４】
ｄ＝｜（１２＊ｐ１＋ｑ２）−（１２＊ｐ２＋ｑ２）｜
【００１１】
【発明が解決しようとする課題】
しかしながら、上述した従来の音程抽出方法では、数２に基づいて音程を算出する際、数２の右辺を求め、次に前述した条件を満たすｐ，ｑの組み合わせを求めるという処理が必要である。しかも、数２の右辺のｆ／ｃは、図５の周波数範囲だけでも２．６６９８〜３４１．７３４と広い範囲で変化するので、対数テーブルの設定や桁数の設定等が面倒で、演算処理のために構成、手順等が複雑化するという問題がある。
【００１２】
また、上述した従来の音程差抽出方法では、例えばカラオケにおける歌唱力採点等に適用した場合、次のような問題がある。
カラオケにおける歌唱力採点は、実歌唱とお手本との周波数差又はオクターブを含めた音程差に基づいて行われる。実歌唱やお手本のボーカルの周波数（ピッチ）を抽出する手法としては、零クロス検出法又は自己相関法等があるが、それらの手法自体の原理的な面や音声信号の性質的な面に起因してオクターブを誤検出することが多いという問題がある。即ち、零クロス検出法は、基本的に２回零レベルをクロスした間隔をピッチ周期とする手法であるが、音声信号には基本波成分と多くの倍音成分とが混在されているために、２倍音等の影響で正確なピッチ周期の整数分の１をピッチ周期と誤検出してしまうことが多い。特に２倍音のエネルギーは大きく、本来のピッチ周期の１／２をピッチ周期として誤検出されることが多い。また、自己相関法は、あるサンプルについてそのサンプルと最も相関の強い（レベルが近い）サンプルが１周期後に現れると仮定して、最も相関の強いサンプルが現れる時間間隔をピッチ周期とするものであるが、周期性の高い音声信号では、２周期後にも当然相関が強いサンプルが現れるし、倍音成分の影響により１／２周期後にも相関の強いサンプルが現れることがある。よって、サンプリング周期が粗かったり、トレモロ、ビブラート等の変調効果をかけて歌唱している場合などに２周期後又は１／２周期後が最も相関が強いと検出され、誤検出してしまう。要するに、周波数（ピッチ）抽出は原理的にオクターブ誤抽出の可能性がある。
【００１３】
一方、歌唱テクニックとして、意識的に実際のキーに対して１オクターブ上下にシフトして唄う人がいる。また、歌唱者の発声可能な音域とお手本の音域に隔たりがある場合、意識的に１オクターブずらした音域で唄う人が多い。このような歌唱をできる人は上級者の部類に入り、これを１オクターブずれとしてマイナス材料にするのは酷であるという問題もある。
【００１４】
この発明は、このような問題点に鑑みなされたもので、音声の周波数から音程を容易に抽出することができる音程抽出方法を提供することを目的とする。
また、この発明は、２つの音声の周波数からオクターブ関係を除外した両音声の音程差を容易に精度良く抽出することができる音程差抽出方法及び装置を提供することを他の目的とする。
【００１５】
【課題を解決するための手段】
この発明に係る音程抽出方法は、音声の周波数から音程を抽出する音程抽出方法において、前記音声の周波数ｆと、基本周波数ｃと、オクターブ数ｐ（０以上の整数）と、オクターブ内音程ｑ（０≦ｑ＜１２）とにより、
ｆ／ｃ＝２（ｐ＋ｑ／１２）
と表現され得る周波数データｆ／ｃを、仮数部ｘ、指数部ｙにより
ｆ／ｃ＝ｘ＊２ｙ  （０．５≦ｘ＜１）
と浮動小数点で表現し、前記仮数部ｘからオクターブ内音程ｑを
ｑ／１２＝ｌｏｇ２２ｘ
して求め、前記指数部ｙからオクターブ数ｐを
ｐ＝ｙ−１
して求めることを特徴とする。
【００１６】
この発明に係る音程差抽出方法は、第１、第２の２つの音声の周波数から両者の音程差を抽出する音程差抽出方法において、前記第１の周波数ｆ１と、前記第２の音声の周波数ｆ２と、基本周波数ｃと、前記第１の音声のオクターブ数ｐ１（０以上の整数）と、前記第２の音声のオクターブ数ｐ２（０以上の整数）と、前記第１の音声のオクターブ内音程ｑ１（０≦ｑ１＜１２）と、前記第２の音声のオクターブ内音程ｑ２（０≦ｑ２＜１２）とにより、
ｆ１／ｃ＝２（ｐ１＋ｑ１／１２）、
ｆ２／ｃ＝２（ｐ２＋ｑ２／１２）
と表現され得る周波数データｆ１／ｃ、周波数データｆ２／ｃを、仮数部ｘ１、仮数部ｘ２、指数部ｙ１、指数部ｙ２により
ｆ１／ｃ＝ｘ１＊２ｙ１  （０．５≦ｘ１＜１）
、ｆ２／ｃ＝ｘ２＊２ｙ２  （０．５≦ｘ２＜１）
とそれぞれ浮動小数点で表現し、この仮数部ｘ１、仮数部ｘ２からオクターブ内音程ｑ１、オクターブ内音程ｑ２を
ｑ１／１２＝ｌｏｇ２２ｘ１、
ｑ２／１２＝ｌｏｇ２２ｘ２、
として前記第１、第２の音声ごとに求め、この求められた２つのオクターブ内音程の差を音程差として求めることを特徴とする。
【００１７】
この発明に係る音程差抽出装置は、第１、第２の２つの音声の周波数ｆ１、ｆ２をそれぞれ基本周波数ｃで規格化する規格化手段と、これら規格化された周波数ｆ１／ｃ、ｆ２／ｃをそれぞれ仮数部ｘ１、ｘ２、指数部ｙ１、ｙ２により
ｆ１／ｃ＝ｘ１＊２ｙ１  （０．５≦ｘ１＜１）
ｆ２／ｃ＝ｘ２＊２ｙ２  （０．５≦ｘ２＜１）
と浮動小数点で表現した周波数データに変換する浮動小数点変換手段と、この浮動小数点変換手段でそれぞれ変換された周波数データのうち仮数部ｘ１、ｘ２からオクターブ内音程ｑ１、ｑ２を
ｑ１／１２＝ｌｏｇ２２ｘ１、
ｑ２／１２＝ｌｏｇ２２ｘ２、
して前記第１、第２の２つの音声ごとに算出する対数演算手段と、この対数演算手段でそれぞれ求められたオクターブ内音程の差から音程差を算出する音程差算出手段とを備えたことを特徴とする。
【００１８】
次にこの発明の音声抽出方法の原理について説明する。
いま、基本周波数ｃで規格化された音声の周波数データｆ／ｃを浮動小数点で表現すると、数５のようになる。
【００１９】
【数５】
ｆ／ｃ＝ｘ＊２y
ｘ：仮数部（０．５≦ｘ＜１）  ２の補数形式
ｙ：指数部
【００２０】
一方、前述した数１は、数６のように変形することができる。
【００２１】
【数６】
ｆ／ｃ＝２p＊２q/12
【００２２】
このとき、ｑ／１２の範囲は０≦ｑ／１２＜１であるので、２q/12の範囲は１≦２q/12＜２となる。一方、数５は、
【００２３】
【数７】
ｆ／ｃ＝２ｘ＊２y-1
【００２４】
と変形できる。このとき、ｘの範囲は０．５≦ｘ＜１であるので、２ｘの範囲は１≦２ｘ＜２となり、上記２q/12の範囲と同じになる。よって、
【００２５】
【数８】
ｐ＝ｙ−１
２q/12＝２ｘ
ｑ／１２＝ｌｏｇ2２ｘ
【００２６】
が成立する。以上から、この発明でオクターブ数をＰ，オクターブ内音程をＱと定義すると、従来の音程ｐ，ｑとは、数９の対応関係となる。
【００２７】
【数９】
Ｐ＝ｐ
Ｑ＝ｑ／１２
【００２８】
従って、上記浮動小数点表現された周波数データｆ／ｃの仮数部ｘ及び指数部ｙを用いて、オクターブ数Ｐ及びオクターブ内音程Ｑを下記数１０のように表現することができる。
【００２９】
【数１０】
Ｐ＝ｙ−１
Ｑ＝ｌｏｇ2２ｘ
【００３０】
この発明に係る音程抽出方法によれば、上記数１０に基づいてオクターブ数とオクターブ内音程が１回の演算でそれぞれ別個に求められる。しかも、オクターブ内音程の算出に際し、２ｘは、１≦２ｘ＜２の範囲に限定されているので、対数演算や桁設定なども極めて容易になる。
【００３１】
更に、この発明によれば、オクターブ数とオクターブ内音程とが別々に求められることから、オクターブ数を全く無視し、オクターブ内音程に基づいて音程差を算出することにより、１オクターブシフトした音声間の音程の比較も簡単に行うことができる。即ち、この発明に係る音程差抽出方法によれば、実歌唱であるマイクボーカル及びカラオケソースから供給されるお手本ボーカル等の２つの音声の周波数から両者の音程差を抽出するに際し、これらを基本周波数でそれぞれ規格化して浮動小数点表現に変換し、得られた周波数データの仮数部ｘを更にｌｏｇ2２＊ｘに変換してオクターブ内音程のみを求めているので、前記周波数データの指数部が無視され、音程差を容易に抽出することができる。このため、マイクボーカルとお手本ボーカルとを比較してカラオケで歌唱力を採点するカラオケ採点システムに適用する場合には、オクターブ数を無視して容易に採点することができる。
【００３２】
なお、音程差の抽出に際し、オクターブ内音程の差を示す２の補数表現されたバイナリデータを１ビット左シフトした後に絶対値をとるようにすると、後に詳しく述べるように音程差の抽出処理が極めて簡単になる。
【００３３】
【発明の実施の形態】
以下、図面を参照して、この発明の実施の形態について説明する。
図１は、この発明の一実施例に係る音程抽出方法を適用したカラオケ採点システムの構成を示すブロック図である。
カラオケ用レーザーディスク等のＬＤ１から再生される楽音に含まれるお手本ボーカルとマイクロフォン２から入力される実歌唱とは、それぞれ前処理部３を介して音程差抽出部４及び音量抽出部５に供給され、ここで音程差抽出処理及び音量抽出処理が施されて、採点部６に供給される。採点部６に供給された実歌唱は、前処理部３で抽出されたお手本ボーカルに基づいて採点処理が施され、パラメータ設定部７で設定されるパラメータに応じて表示部８に得点として出力される。
【００３４】
図２は、音程差抽出部４の構成を示すブロック図である。
音程差抽出部４に供給されたお手本ボーカル信号Ｓ１及びマイクボーカル信号Ｓ２は、ピッチ抽出部１１1，１１2でそれぞれピッチ抽出される。ピッチ抽出されたボーカル信号Ｓ１，Ｓ２は、ＯＮ／ＯＦＦ設定が可能なＬＰＦ１２1，１２2でそれぞれ適宜ビブラート成分が除去された後、規格化部１３1，１３2にそれぞれ供給され、ここで基本周波数ｃによって規格化されて、リニアフロート変換部１４1，１４2にそれぞれ供給される。リニアフロート変換部１４1，１４2は、バイナリ表示されたボーカル信号Ｓ１，Ｓ２の規格化された周波数データｆ１／ｃ，ｆ２／ｃをそれぞれ浮動小数点表示ｘ１＊２y1，ｘ２＊２y2に変換し、その仮数部ｘ１，ｘ２を対数変換部１５1，１５2にそれぞれ供給する。対数変換部１５1，１５2は、供給された仮数部ｘ１，ｘ２からそれぞれＱ１＝ｌｏｇ2２＊ｘ１，Ｑ２＝ｌｏｇ2２＊ｘ２の演算を行ってオクターブ内音程Ｑ１，Ｑ２を算出し、音程差算出部１６に供給する。音程差算出部１６は、減算器１７、左シフト回路１８及び絶対値化回路１９により構成されている。減算器１７は、供給されたオクターブ内音程Ｑ１，Ｑ２の差Ｑ１−Ｑ２を算出する。得られたＱ１−Ｑ２は、２の補数表現されたバイナリデータで、左シフト回路１８で１ビット左シフトされた後、絶対値化回路１９に供給され、ここで絶対値化されて音程差が抽出される。
【００３５】
このように構成された音程差抽出部４において、いま、お手本ボーカル信号Ｓ１として抽出された周波数ｆ１が４４０．００Ｈｚ（Ａ４）、マイクボーカル信号Ｓ２として抽出された周波数ｆ２が２４６．９４Ｈｚ（Ｂ３）であるとすると、規格化部１３1，１３2の出力は、それぞれ
【００３６】
【数１１】
ｆ１／ｃ＝２６．９０９７
ｆ２／ｃ＝１５．１０２４
【００３７】
となる。これらのデータがリニアフロート変換部１４1，１４2で浮動小数点に変換されると、それぞれ次のように表現される。
【００３８】
【数１２】
0003707164.tif 000002
【００３９】
そして、このうち仮数部ｘ１，ｘ２がそれぞれ対数変換部１５1，１５2に供給されると、これら対数変換部１５1，１５2からは、それぞれオクターブ内音程Ｑ１，Ｑ２として、
【００４０】
【数１３】
Ｑ１＝０．７５
Ｑ２＝０．９１６６６…
【００４１】
が求められる。これらの音程Ｑ１，Ｑ２の差＝０．１６６６…が求める音程差ということになり、これは１２倍すると、約２であるから、１音だけ音程がずれているという評価になる。
【００４２】
しかし、音程差は全ての場合について、上記のように単純な差分値とはならない。即ち、オクターブ内音程Ｑ１，Ｑ２は、前述したように、０≦Ｑ１，Ｑ２＜１であるから、これらを２の補数で表現すると、図３（ａ）の第１領域（０〜０．９９９…）に存在する。従って、差分値Ｑ１−Ｑ２は、第１及び第２の領域（−１．０〜０．９９９…）に存在することになる。これら第１及び第２の領域をそれぞれ２つの領域に２分して第１−１領域（０．５〜０．９９９…）、第１−２領域（０〜０．４９９９…）、第２−１領域（−０．０００…〜−０．５）、第２−２領域（−０．５００…〜−１．０）とし、これら各領域に差分値ｘ１，ｘ２，ｘ３，ｘ４が求まった場合を考える。第１−２領域及び第２−１領域の差分値ｘ２，ｘ３は、その絶対値がそのまま音程差Ｄ２，Ｄ３となるが、第１−１領域及び第２−２領域に存在する差分値ｘ１，ｘ４については、それぞれ０．９９９…及び−１．０からの距離Ｄ１，Ｄ４が音程差となる。つまり音程はオクターブを単位として繰り返すので、音程差が０．５を越えることはあり得ないからである。
【００４３】
そこで、この実施例では、差分値Ｑ１−Ｑ２を減算器１７によって求めたら、その差分値に対して左シフト回路１８で１ビット分左シフトするようにしている。これにより、図３（ｂ）に示すように、第１−１領域（−１．０〜−０．０００…）、第１−２領域（０〜０．９９９…）、第２−１領域（−０．０００…〜−１．０）、第２−２領域（０．９９９…〜０）のように変化し、第１−１領域が第２−１領域に、また第２−２領域が第１−２領域にそのままシフトした形になる。さらに、差分値ｘ１，ｘ２，ｘ３，ｘ４の絶対値をとれば、２倍にはなっているものの、音程差Ｄ（０≦Ｄ＜１）として絶対値化回路１９により簡単に求められることになる。
【００４４】
なお、以上は音程差抽出部４について説明したが、オクターブ数を含めた音程そのものを抽出する場合には、図４に示すようにリニアフロート変換部１４で求められた指数部ｙのデータから減算器２０によって１だけ減算することにより、オクターブ数Ｐが求められる。
【００４５】
また、２つの音声についてそれぞれオクターブ数Ｐ１，Ｐ２及びオクターブ内音程Ｑ１，Ｑ２を求め、これらのデータから下記数１４に基づいて音程差Ｄを算出するようにしても良い。
【００４６】
【数１４】
ｄ＝｜１２＊（Ｐ１＋Ｑ２）−１２＊（Ｐ２＋Ｑ２）｜
Ｄ＝min｛｜ｄ｜ mod １２，１２−（｜ｄ｜ mod １２）｝
Ｘ mod Ｙ：ＸをＹで割ったときの余り
【００４７】
これにより、求められた音程差Ｄの範囲は、０≦Ｄ≦６となる。
【００４８】
【発明の効果】
以上述べたように、この発明によれば、浮動小数点表現された周波数データｆ／ｃの指数部ｙ及び仮数部ｘを用いて、即ちＰ＝ｙ−１，Ｑ＝ｌｏｇ2２ｘに基づいてオクターブ数とオクターブ内音程が１回の演算でそれぞれ別個に求められる。しかも、オクターブ内音程の算出に際し、２ｘは、１≦２ｘ＜２の範囲に限定されているので、対数演算や桁設定なども極めて容易になる。また、マイクボーカルとお手本ボーカルとを比較してカラオケで歌唱力を採点するカラオケ採点システムに適用する場合には、オクターブ数を無視して容易に採点することができる。
【図面の簡単な説明】
【図１】  この発明の一実施例に係る音程抽出方法を適用したカラオケ採点システムの構成を示すブロック図である。
【図２】  音程差抽出部の構成を示すブロック図である。
【図３】  音程差抽出方法を説明するための図である。
【図４】  音程抽出部の構成を示すブロック図である。
【図５】  平均率音階を示す図である。
【符号の説明】
１１1，１１2…ピッチ抽出部、１２1，１２2…ＬＰＦ、１３1，１３2…リニアフロート変換部、１４1，１４2…規格化部、１５1，１５2…対数変換部、１６…音程差算出部、１７…減算器、１８…左シフト回路、１９…絶対値化回路。
【図１】
0003707164.tif 000003
【図４】
0003707164.tif 000004
【図２】
0003707164.tif 000005
【図３】
0003707164.tif 000006
【図５】
0003707164.tif 000007