(57)【特許請求の範囲】
【請求項１】
所定の時間間隔で音楽波形をサンプリングして該波形のサンプリング速度での音楽的表現の以下のシーケンスを発生する工程であって、
ｊ＝０，１，２・・・ｉに関する｛ｘj｝、ここで、ｉは前記波形の最新のサンプリング速度での最新のサンプルを表し、ｊ＝１，ｊ＝２・・・は前記波形の以前のサンプルを表す工程と、
前記音楽波形の周期の遅れ値Ｌestの推定値を提供する工程と、
前記波形の２周期２Ｌにわたる波形の蓄積されたエネルギーを表す２つの関数を以下の式
【数１】
0003681334.tif 000009
を用いて更新する工程と、
Ｅi(L)と２Ｈi(L)との間の差を最小にする音楽波形の周期としてＬの遅れ値を選択する工程とを含む方法。
【請求項２】
請求項1の方法において、
関数Ｖ＝Ｅi(L)−２Ｈi(L)を最小にする前記Ｌの値は、Ｌmin  estとして定義され、また、該方法は、さらに、
Ｌmin  estについての前記関数の以下の３つの値、Ｖ1、Ｖ2及びＶ3、
Ｖ1＝Ｅ(Ｌmin  est−１)−２Ｈ(Ｌmin  est−１)、
Ｖ2＝Ｅ(Ｌmin  est)−２Ｈ(Ｌmin  est)及び
Ｖ3＝Ｅ(Ｌmin  est＋１)−２Ｈ(Ｌmin  est＋１)を決定する工程と、
前記値Ｖ1、Ｖ2及びＶ3にＬmin  estの関数として二次曲線を適用する工程と、
前記二次曲線の最小値で値Ｌmin  estを決定する工程とを含む方法。
【請求項３】
請求項1の方法において、さらに、
前記音楽波形の前記測定された周期と前記測定された周期に最も近い音階からの音の周期との間の差に等しい量によって前記音楽波形のシーケンスの周期を変えることによって該音楽波形のシーケンスを再調整して、再調整した音楽波形のシーケンスを発生する工程を含む方法。
【請求項４】
請求項1の方法において、さらに、
前記音楽波形の前記測定された周期とＭＩＤＩインタフェースからの周期との間の差に等しい量によって前記音楽波形のシーケンスの周期を変えることによって該音楽波形のシーケンスを再調整して、再調整した音楽波形のシーケンスを発生する工程を含む方法。
【請求項５】
請求項4の方法において、さらに、
前記サンプリング速度を、前記周期Ｌを音階からの音の前記周期に変換する新たなサンプリング速度に漸進的に変えることによって、前記音楽波形のシーケンスを再調整する工程を含む方法。
【請求項６】
請求項４の方法において、さらに、
前記サンプリング速度を、前記周期Ｌを前記ＭＩＤＩインタフェースからの前記周期に変換する新たなサンプリング速度に漸進的に変えることによって、前記音楽波形のシーケンスを再調整する工程を含む方法。
【請求項７】
請求項３の方法において、さらに、
前記再調整した波形シーケンスを再調整したアナログ音楽信号に変換する工程を含む方法。
【請求項８】
請求項４の方法において、さらに、
前記再調整した波形シーケンスを再調整したアナログ音楽信号に変換する工程を含む方法。
【請求項９】
請求項１の方法において、さらに、
最初に、前記ｊ＝０，１，２・・・ｉに関するシーケンス｛ｘj｝を８から１へのアンチエイリアシングフィルタに適用し、次に、該シーケンスをダウンサンプリングする工程を含む方法。
【請求項１０】
請求項１の方法において、前記変数ＬestはＮから１のダウンサンプリングされたデータから計算される方法。
【請求項１１】
請求項１０の方法において、Ｎは数字の８である方法。
【請求項１２】
請求項１の方法において、前記変数Ｌestは、ダウンサンプリングされたデータを用いて、Ｅi(L)及びＨi(L)から遅れ変数Ｌの広い範囲にわたって計算される方法。
【請求項１３】
請求項１の方法において、
前記シーケンスは８から１への速度でダウンサンプリングされてダウンサンプリングされたシーケンスを発生し、
前記遅れ値に前記ダウンサンプリングされたシーケンスの周期の推定Ｌestを提供し、また、
前記波形の周期性は、
パラメータＬを変える工程と、
Ｌの特定の値を、以下の関係、
Ｅi(L)−２Ｈi(L)≦ｅｓｐＥi(L)  ここで、ｅｓｐは小さな数である、
を最小化する前記波形の周期として選択する工程とを含む方法。
【請求項１４】
請求項１３の方法において、さらに、
前記波形の不明の基底周波数を識別するために、
前記関数、
Ｅi(L)−２Ｈi(L)≦ｅｓｐＥi(L)
を最小化するＬの第２の値を決定する工程を含む方法。
【請求項１５】
請求項１の方法において、
前記音楽波形を処理して、背景処理の間、プログラムされたデジタルプロセッサ内で前記波形の周期を決定する工程を含む方法。
【請求項１６】
所定の時間間隔で音楽波形をサンプリングして該波形のサンプリング速度での音楽的表現の以下のシーケンスを発生する手段であって、
ｊ＝０，１，２・・・ｉに関する｛ｘj｝、ここで、ｉは前記波形の最新のサンプリング速度での最新のサンプルを表し、ｊ＝１，ｊ＝２・・・は前記波形の以前のサンプルを表す手段と、
前記音楽波形の周期の遅れ値Ｌestの推定値を提供する手段と、
前記波形の２周期２Ｌにわたる波形の蓄積されたエネルギーを表す２つの関数を以下の式
【数２】
0003681334.tif 000010
を用いて更新する手段と、
Ｅi(L)と２Ｈi(L)との間の差を最小にする音楽波形の周期としてＬの遅れ値を選択する手段とを備える装置。
【請求項１７】
請求項１６の装置において、
関数Ｖ＝Ｅi(L)−２Ｈi(L)を最小にする前記Ｌの値は、Ｌmin  estとして定義され、また、該装置は、さらに、
Ｌmin  estについての前記関数の以下の３つの値、Ｖ1、Ｖ2及びＶ3、
Ｖ1＝Ｅ(Ｌmin  est−１)−２Ｈ(Ｌmin  est−１)、
Ｖ2＝Ｅ(Ｌmin  est)−２Ｈ(Ｌmin  est)及び
Ｖ3＝Ｅ(Ｌmin  est＋１)−２Ｈ(Ｌmin  est＋１)を決定する手段と、
前記値Ｖ1、Ｖ2及びＶ3にＬmin  estの関数として二次曲線を適用する手段と、
前記二次曲線の最小値で値Ｌmin  estを決定する手段とを備える装置。
【請求項１８】
請求項１６の装置において、さらに、
前記音楽波形の前記測定された周期と前記測定された周期に最も近い音階からの音の周期との間の差に等しい量によって前記音楽波形のシーケンスの周期を変えることによって該音楽波形のシーケンスを再調整して、再調整した音楽波形のシーケンスを発生する手段を備える装置。
【請求項１９】
請求項１６の装置において、さらに、
前記音楽波形の前記測定された周期とＭＩＤＩインタフェースからの周期との間の差に等しい量によって前記音楽波形のシーケンスの周期を変えることによって該音楽波形のシーケンスを再調整して、再調整した音楽波形のシーケンスを発生する手段を備える装置。
【請求項２０】
請求項１９の装置において、さらに、
前記サンプリング速度を、前記周期Ｌを音階からの音の前記周期に変換する新たなサンプリング速度に漸進的に変えることによって、前記音楽波形のシーケンスを再調整する手段を備える装置。
【請求項２１】
請求項１９の装置において、さらに、
前記サンプリング速度を、前記周期Ｌを前記ＭＩＤＩからの前記周期に変換する新たなサンプリング速度に漸進的に変えることによって、前記音楽波形のシーケンスを再調整する手段を備える装置。
【請求項２２】
請求項１８の装置において、さらに、
前記再調整した波形シーケンスを再調整したアナログ音楽信号に変換する手段を備える装置。
【請求項２３】
請求項１９の装置において、さらに、
前記再調整した波形シーケンスを再調整したアナログ音楽信号に変換する手段を備える装置。
【請求項２４】
請求項１６の装置において、さらに、
最初に、前記ｊ＝０，１，２・・・ｉに関するシーケンス｛ｘj｝を８から１へのアンチエイリアシングフィルタに適用し、次に、該シーケンスを連続的にダウンサンプリングする手段を備える装置。
【請求項２５】
請求項１６の装置において、前記変数ＬestはＮから１のダウンサンプリングされたデータから計算される装置。
【請求項２６】
請求項２５の装置において、Ｎは数字の８である装置。
【請求項２７】
請求項１６の装置において、前記変数Ｌestは、ダウンサンプリングされたデータを用いて、Ｅi(L)及びＨi(L)から遅れ変数Ｌの広い範囲にわたって計算される装置。
【請求項２８】
請求項１６の装置において、
８から１への速度で前記シーケンスをダウンサンプリングしてダウンサンプリングされたシーケンスを発生する手段を備える装置。
【請求項２９】
請求項２８の装置において、さらに、
前記波形の不明の基底周波数を識別するために、
前記関数、
Ｅi(L)−２Ｈi(L)≦ｅｓｐＥi(L)
を最小化するＬの第２の値を決定する手段を備える装置。
【請求項３０】
請求項１６の装置において、
前記音楽波形を処理して、背景処理の間、プログラムされたデジタルプロセッサ内で前記波形の周期を決定する手段を備える装置。
【発明の詳細な説明】
【０００１】
先の仮出願との関係
本願は１９９７年１０月２７日に出願された米国仮出願第６０／０６３，３１９号に基づくとともにその優先権を主張するものである。
【０００２】
発明の分野
本願発明は概略電子オーディオ装置に関し、詳しくは、歌声又は楽器によって発生される音のピッチを決定しその音のピッチを標準的なピッチを得るためにシフトする装置及び方法に関する。
【０００３】
従来技術の説明
ピッチは含まれているエネルギーの周波数に関係する音質である。ある音は非常に複雑で特定の周波数のエネルギーを含んでいない。歌手及び大多数の楽器は最も明確に限定された音質のピッチを持つ。それらの音源の音発生機構は、振動要素（声帯、弦、空気柱等）である。発生された音はある周波数のエネルギー（基底という）とその基底周波数の整数倍の周波数のエネルギー（倍音又は調和という）とからなる。それらの音は周期的な波形（時間の関数としての圧力）を持つ。
【０００４】
アンサンブルの調和構造及びジャンルを前提とすると、音声又は楽器は、それらのピッチがリスナーの予想する標準的なピッチに十分に接近していないときには、音はずれとなる。音声又は楽器の音が外れている場合には、その演奏の感情に訴える音質は失われる。抑揚（イントネーション）を修正すると、つまり、音の実際のピッチを測定し、その測定したピッチを標準的なものに変更すると、その問題は解消され、演奏を元に戻すことができる。
【０００５】
本願発明の目的は、スタジオ及び演奏状況においてリアルタイムで歌手又は他の独奏者のイントネーションエラーを修正する点にある。本願発明は、ユーザーが望む場合には、ビブラートを音に付け加えることもできる装置に組み込まれ又は統合される。単独奏者の入力音は本願発明の装置及び方法によって処理されてそれと同一の出力が発生されるが、例えばビブラートを加えることによってその調子が整えられている点が異なる。本願発明の装置は瞬間のピッチを変え、本願発明の方法に従ってその出力にひずみは加えない。
【０００６】
音のピッチを決定することは、波形の繰返し周期を決定することに等しい。波形の周期を決定するために一般的に用いられている基準点は、そのゼロ交差である。ゼロ交差は例えばHollimon（米国特許第４，５２３，５０６号）によって開示された電子同調援助で用いられている。単純なサイン波形の場合には、周期は、その信号の連続するゼロクロスの間の時間間隔として容易に決定される。複雑な信号は、しかし、多数のゼロ交差が発生することがあるので、そのゼロ交差アプローチは周期検出には適していないとして断念することがある。
【０００７】
波形の周期を決定する他の一般的な方法は、信号のピークの間の時間間隔に応答するピーク検出回路を用いることによる。ピーク検出は、Mercer（米国特許第４，２７３，０２３号）の開示の内容で用いられている。ゼロ交差技術の場合と同様に、ピーク検出はサイン波のような単純な信号の場合に十分に機能する。複雑な信号が含まれている場合には、多数の似たような振幅のピークが発生することがあるので、ピーク検出の精度は落ちる。
【０００８】
ゼロ交差及びピーク検出技術が遭遇するピッチを決定する際のいくつかの問題を解消するために、周期を決定するための基準点としてのセットしきい値と交差する信号の一部を用いる方法が開発された。例えば、Slepian他（米国特許第４，２１７，８０８号）によって開示された方法及び装置では、自動利得制御装置が信号の正及び負の偏位を選択されたレベルに調整する。その後最大偏位レベルの所定のパーセントと等しい正及び負のしきい値が決定される。周期は、特に、信号の間の正のしきい値の第１の上方への交差と、負のしきい値の下方への交差によって正しいタイミングで分離された正のしきい値の第２の上方への交差との間の時間として画定される。しきい値を決定することには、基準点が信号の高い傾斜の領域に対応するということの保証の備えはない。従って、信号はしきい値交差において比較的低い傾斜となることがあり、それにより、発生の正確な時間を決定することが困難になる。
【０００９】
信号の周期を決定するために用いられる基準点のタイミングを正確に決定することは困難な場合があるので、他の技術は、精度の改善の一つの方法として、長い周期の時間にわたる複数の周期の測定値から平均周期をコンピュータ計算することを利用する。例えば、Moravec他（米国特許第４，３５４，４１８号）によって開示された音分析装置は、信号の多数の周期に対する分離周期データカウントを確立して、その導き出された周期データカウントの平均である周期を出力する。このような装置は、正確にピッチを決定するために、非常に多くの数の周期にわたって一定したピッチを要求する。このような状況は、入力ピッチは十分には安定していないので、イントネーション修正に必要な一般的な状況ではない。
【００１０】
長い周期にわたる多くの周期の測定値を用いることに代えて、Gibson他（米国特許第４，６８８，４６４号）は、わずかなサイクル内において多数の推定値を作ることによって多くの反復を加えている。そのGibsonの方法に用いられている測定の複雑さは、誤りの警報及び不正確に特定されたピッチが発生しないことを保証するために多くの照合及び比較検討を要求する。実際には、この技術は失敗して出力にアーティファクト、疑似信号を生じさせる。
【００１１】
波形の周期を決定するための他のすべての従来技術は、共通の欠点を持つ。つまり、それらは、すべて、波形のいくつかの独特な特性を決定し、次に、その特性の繰返しの周期を決定することを要求する。これらのすべての技術は同一の理由により結果的に失敗する。つまり、波形内のノイズがコンピュータの計算にエラーを生じさせたり、または、波形がだんだんと形状を変えてしまい、この結果、追跡される特徴がデータから取り除かれるので、追跡ができなくなる。
【００１２】
入力ピッチが測定されるか又は既知であるとすると、基準からピッチ変化を決定し、その入力がその基準に再調整されるための装置及び方法を提供することができる。多数のピッチシフト装置及び技術がそれを行うために音楽産業界に存在する。従来のすべての方法は、高い質のイントネーション修正の達成には不適切である。それらの技術は２つのドメインに分類することができる。第１は高速フーリエ変換（ＦＦＴ）オーバーラップ及びセーブアルゴリズムを用いる周波数ドメイン方法である。第２はシンセサイザー及びハーモニー発生装置をサンプリングすることによって用いられる時間ドメインアルゴリズムである。
【００１３】
ＦＦＴオーバーラップ及びセーブアルゴリズムは、２つの理由により、ピッチシフトのためには高品質のアルゴリズムではない。第１に、それらはデータのシーケンスを処理する。より良い品質のピッチシフトは、長いシーケンスが用いられるときに発生する。その全体のシーケンスは一定のピッチ変化によってシフトすることができるだけである。しかし、高い品質のイントネーション修正はピッチの連続的な変化を要求する。従って、シフトの連続性とシーケンス長さとの間にはトレードオフが存在する。第２は、入力データウインドーイング及び続いて起こるウインドウオーバーラップクロスフェードのコンピュータ計算は、出力にひずみを生じさせる理想的でない操作である。
【００１４】
ハーモニー発生装置におけるピッチシフトのための現存の時間ドメイン方法は、データの最新の周期の不正確な情報の限界の辺りで作動する。レント、ケー（Lent, K）の論文「デジタルサンプリングした音のピッチシフトのための効率の良い方法」、コンピュータミュージックジャーナル、１３巻、No.４、冬、６５−７１頁（１９８９年）（以下、「レント方法」という）に述べられた方法は、データを再サンプリングしてスペクトルのエンベロープの形状を維持するために用いられる基本的な方法である。この方法は、一周期の長さごとにウインドウを用いて入力データのセクションにウインドウを形成し、次に新たなサンプリング周期の間隔を用いてそれらのウインドウを再度組み合わせる。そのデータは再度サンプルはされない。したがって、新たなピッチを認識したときには新たな基本的な周期が画定される。しかし、振幅スペクトルは増大され、その結果、不自然な音になる。
【００１５】
レント方法のウインドーイング及びウインドウ結合技術は、データの周期の不正確な情報を回避する。Gibson他（米国特許第５，２３１，６７１号）はハーモニー発生装置内でのピッチシフトのためにレント方法を利用した。Gibsonは波形の周期の初期推定の際のオクターブ誤差を調べるために１回調査として音の自己相関関数を用いる。Later、Gibson他（米国特許第５，５６７，９０１号）は、再結合ステップの前にデータの再サンプリングステップを追加した。しかし、その再サンプリングはレントの方法の欠点を完全に補うことはできず、質的な調整としてより多く用いられている。
【００１６】
サンプリング利用のシンセサイザーは、装置のメモリから再生されているデータのサンプリング速度を変化又は再サンプリングすることによって、出力のピッチを調整する。多数の技術がその装置によって用いられているが、それらのいずれもこの問題とは関係がない。概念的に、それらの装置はループ化と呼ばれる技術を用いていて出力として再生される無限に長いシーケンスを記憶する。
【００１７】
本願発明の目的の特定
本願発明の第１の目的は、声又は楽器によって発生される音のピッチ検出及びピッチ修正のための装置及び方法を提供して、従来のピッチ検出及びピッチ修正装置及び方法の問題を解消する点にある。
【００１８】
本願発明の他の目的は、音の処理された出力信号にひずみを引き起こさないピッチ検出及びピッチ修正のための装置及び方法を提供する点にある。
【００１９】
本願発明の他の目的は、自己相関関数を用いて、音のピッチ又は周波数又はその逆、瞬間的な音の周期を決定する点にある。
【００２０】
本願発明の他の目的は、音の波形が再サンプルされるときにそのサイクルを追加又は減らすことによってリアルタイムで入力サンプルのシーケンスを処理するピッチ修正方法及び装置を提供する点にある。
【００２１】
発明の概要
本願発明の目的は、スタジオ及び演奏状況においてリアルタイムに音声又は他の独奏者のイントネーションエラーを修正する点にある。独奏者の入力は本願発明によって処理され、その装置の出力は同一の音であるが、それは調整されている点は異なる。ビブラートを出力に加えることもできる。装置は、瞬間的なピッチを変化させることができ、出力にひずみを生じさせない。
【００２２】
本願発明の方法は、標準的なラインレベル又はＡ／Ｄ変換器へのマイクロホン入力からオーディオ信号を入力する工程から開始する。その結果得られたデジタルデータは次にマイクロプロセッサに入力される。そのデータは以下に説明するイントネーション修正機能にしたがって処理される。いくつかのオプションがユーザーの選択のために存在するが、ＬＣＤ、制御ノブ及び状況ライトによって、ユーザーは状況を確認するとともに装置の制御を行うことができる。処理後、データはＤ／Ａ変換器に送られ、さらに標準的なアナログ（又はデジタル）オーディオインタフェースに送られる。
【００２３】
データの処理は２つのモード、つまり、検出モード及び修正モードを持つ。検出モード処理は、データのピッチが未知の場合に生じる。修正モードはピッチが既知の場合に生じる。
【００２４】
ピッチ検出モードでは、ピッチ検出は実質的に瞬間的である。装置は２から３サイクルの間の周期的な音の中から繰り返しを検出することができる。これは通常音が聞き取れる程度の振幅を持つ以前に行われる。
【００２５】
本願発明の方法及び装置は、ピッチ、又はその逆、波形の周期を測定する際に最大限の反復を提供する。つまり、それは、各サイクルを以前のサイクルと連続的に比較することによって波形内のすべてのサンプルを用いる。その方法は、任意の複雑さの波形の処理を達成できる。その高度の反復は加えられたノイズの影響を最小限にし、波形の形状がだんだんと変わることができるようにする。本願発明の方法及び装置は、データのどの特徴にも依存せず、したがって、その結果においてより正確かつロバストである。本願発明の方法及び装置の要点は、データの自己相関関数から導き出される式である。
【００２６】
繰返し周期Ｌを持つデータｘjのシーケンスの自己相関は以下の通りである。
【００２７】
【数３】
0003681334.tif 000002
【００２８】
周期的な波形の自己相関関数も周期的である。さらに、１周期に等しい遅れｎにおける自己相関関数の値は、ゼロ遅れにおけるその値に等しい。さらに、いずれの遅れにおける自己相関の値も、その遅れがデータの繰返し周期に等しい場合にはゼロ遅れにおけるその値に到達するだけである。最新の発明のロバスト品質を作るのは、それらの遅れにおける値の計算処理及び追跡である。
【００２９】
実際には、自己相関関数は、発生のために高いレベルのコンピュータ計算を必要とするので、周期性の調査又は現存する周期の追跡のためには持ちられていない。本願発明の方法及び装置は、自己相関計算をより効率的にするためにさまざまな技術と組み合わせることができる。
【００３０】
特に、時間ｉの時点で、周期Ｌの波形のサンプリングされたデータ｛ｘj｝のシーケンスにおいてJ＝０，・・・ｉの場合には、遅れｎの関数としての自己相関は、以下のように表すことができる。
【００３１】
【数４】
0003681334.tif 000003
【００３２】
関連ある計算を減少させるために、「Ｅ」及び「Ｈ」関数が以下の式から求められる。
【００３３】
【数５】
0003681334.tif 000004
【００３４】
関数Ｅi(L)がその様に呼ばれているのは、それは２つの周期２Ｌに渡る波形の蓄積エネルギーだからである。
【００３５】
【数６】
0003681334.tif 000005
【００３６】
遅れのアーギュメントｎは存在しない。言い換えると、自己相関値Ｅi(L)は、ゼロ遅れで、かつ、（既知の）反復周期Ｌ（Ｈi(L)）の場合のみに計算される。時間ｉ、データのシーケンスが｛ｘj｝ｄｅ，ｊ＝０，・・・ｉの場合に、それらの式は以下のように表すことができる。
【００３７】
【数７】
0003681334.tif 000006
【００３８】
言い換えると、各予想される遅れＬごとに、４つの倍数加算を計算しなければならない。それは以下のように示すことができる（未公表の証明）。
【００３９】
【数８】
0003681334.tif 000007
さらに、Ｅi(L)は、データの繰返しの周期であるＬの値においてほぼ２Ｈi(L)に等しいということも示すことができる。データ｛ｘi｝のスケールは未知なので、用語「ほぼ」は信号のエネルギーに関して解釈されなければならない。その結果、周期性を検出するしきい値テストとなる。つまり、
【数９】
0003681334.tif 000008
ここで、「ｅｐｓ」は小さな数である。この条件がＬの値を変えることによって満たされるときに、Ｌがデータの繰返し周期となる。
【００４０】
本願発明の原理を広く説明することができたのであれば、本願発明の方法は簡単に説明することができる。検出モード及び修正モードと称される２つのモードの操作が存在する。検出モードは、８データの中から１つを取り出す再サンプリングに続いてアンチエイリアシングフィルタを用いて８の因数によってサンプリング速度を最初に減少するように作動する。式（４）、（５）及び（６）は次に２から１１０までの範囲のＬの値に関して計算される。４４１００Ｈｚでサンプルされた｛ｘj｝に関しては、それはそれぞれ検出可能な周波数の２７５６Ｈｚから５０．１Ｈｚまでの範囲の周波数を与える。５０．１Ｈｚの低周波数は声より低く、ほとんどの低音楽器より高い。２７５６Ｈｚの高周波数は、１０４６Ｈｚのソプラノの「高いドの音（Ｃ）」よりも非常に高い。
【００４１】
追加のテストが望ましい。特に、人の声のいくつかの母音は、ほんのわずかな基底周波数しか持たない。その結果、上記の方法は、データの周期を決定するために第１調波を検出する。調和周波数が測定されないことを保証するために、式（６）のテストをダウンサンプリングされていないデータ｛ｘi｝のＬ及び２Ｌの遅れに関して用いて実際の基底周波数を決定する。
【００４２】
修正モードはピッチの変化を追跡しなければならない。これは、検出されたピッチの付近の狭い範囲のＬの値にわたって式（４）及び（５）を計算することによって行われる。入力ピッチがシフトすると、式（６）の最小値がシフトし、さらに、Ｌの値の範囲がそれに伴ってシフトする。
【００４３】
次に入力波形の周期を用いて入力波形を戻す。これを達成するために、いくつかの異なる方法が所望の周期を特定するために提供される。第１の方法は、所望の周期を、入力周期に接近した音階からの音の周期として決定する。第２の方法は、ＭＩＤＩインタフェースから所望の周期を入力するためのものである。（ＭＩＤＩは電子楽器に見られる標準的なデータインタフェースである。）ＭＩＤＩ伝達は特定の音をオン及びオフするためにデータを含む。最も新しい「オン」の音は所望のピッチとして用いることができる。その所望のピッチはＭＩＤＩベンドコントローラデータを用いることによって変えることもできる。
【００４４】
本願発明は、データの周期の情報を正確に決定する完全な利点を得る。データはピッチの所望の変化に比例する新たなサンプリング速度で再度サンプリングされる。ピッチをシャープにする場合（入力データよりも大きなサンプリング間隔の場合）には、出力データポインターは、ときどき入力データポインターを前に移動させ、その場合、正確な１サイクル周期が出力ポインターから引かれる。これにより、データの１サイクルを繰り返すことができる。ピッチを平坦にする場合（入力データより狭いサンプリング間隔の場合）には、出力データポインターは、ときどき入力データポインターのかなり後に落ち、その場合、正確に１サイクル周期が出力ポインターに加えられる。これにより、データの１サイクルが出力から抜け落ちることになる。この再サンプリングのアプローチは非常に高品質な出力を発生する。
【００４５】
本願発明におけるピッチ修正の正確さは非常に優れたものである。最悪の場合、連続的に変化する音を（ユーザーによる装置の制御下で）８０秒で最大１サイクルのエラー内に修正することができる。この精度は、音楽スタジオの機能を制御するクロックの精度に匹敵する。出力ピッチは検出されて均一でかつ連続的な方法によってアーティファクト（疑似信号）を含むことなく修正される。
【００４６】
発明の望ましい実施例の説明
本願発明の装置及び方法のピッチ検出ード及びピッチ修正モードの概略は、上に提示した発明の概要に記述されている。ピッチ検出は、望ましくは、発明の概要の式（４）、（５）及び（６）を参照することによって、自動相関機能技術に従ってサンプルの音調又はサウンドを処理することによって達成される。入力波形の周期を決定した後に、ピッチ修正モードが周波数（周期のこと）を望ましい周波数（周期）へと変えるように作動する。デジタルコンピューターのプルグラムに適した論理ステップの図を用いて、続いて本願発明の詳細な説明を行う。
【００４７】
図１を参照すると、ピッチ検出及びイントネーション修正装置１００の基本的機能は、音を入力し、ピッチエラーを修正するようにその音を処理し、ピッチ修正された出力音を出力するというものである。音源１はアナログ電気信号、例えば、大気中の音圧に比例した電圧信号である。その様な電圧信号はマイクロフォン又は他のオーディオ機器によって発生することができる。現在多くの音源規格が共通して用いられている。これらには低電圧マイクロフォン出力及びライン電圧オーディオ機器出力が含まれる。ライン規格は一般的には2つの配線不平衡ライン（１／４インチプラグ）及び3つの配線平衡ライン（ＸＬＲプラグ）である。オーディオインタフェース２は入力の種類によって決定される。マイクロフォン入力は前段増幅を必要とする。平衡入力（ＸＬＲプラグ）は共通モード拒否回路を必要とする。
【００４８】
最後に、Ａ／Ｄ変換器３に供給されるアナログ入力信号は装置の接地を基準とする単一電圧である。Ａ／Ｄ変換器３はローパスアンチエリアシングフィルター、クロック源及びＡ／Ｄ変換器チップを備える。クロック源はサンプル速度を定める。サンプル速度は慣例的な１秒間に４４，１００サンプルが望ましい。低速では正確さを減少させ、高速では音質を向上することなくコンピュータ処理のリソースを枯渇させることになる。Ａ／Ｄ変換器の精度は１６ビットであることが望ましい。１６ビットの変換を達成する為には名目上１８ビットの変換器を用いることが望ましい。１６ビットの精度は、典型的にマイクロフォンに歌い込まれる発声音楽の高いダイナミックレンジの存在する場合の計算処理の際の精度を維持するために必要である。
【００４９】
マイクロプロセッサー４は変換器３からＡ／Ｄ出力を受け取る。Ａ／Ｄ変換器３とマイクロプロセッサー４との間のインタフェースは今日一般的に使用されている多数のシリアルＩ／Ｏ規格のいずれかから選択される。サンプルを受け取ると、マイクロプロセッサー４は割り込みを行い、それによりマイクロプロセッサーのシーケンサーが以下に説明する割り込み処理ステップの実行を開始する。
【００５０】
マイクロプロセッサー４はまた多数の他の装置に結合されている。ＬＣＤ表示装置５によってオペレーターが装置１００の状態及びこの装置への制御パラメーターの入力を確認することができる。オペレーター制御６はボタン及びエンコーダーダイアルを備えていて、それによって、ユーザーがパラメーターを制御しかつ処理に影響を与えるフラグを設定することができる。
【００５１】
ＭＩＤＩ（ミュージック・インスツルメンツ・デジタル・インタフェース）７は音楽産業おいて使用されている一般的な配線及び信号処理規格である。それはシリアル送信プロトコルを用いてシンセサイザーに音階の特定の音をオン及びオフさせるメッセージを伝達する。その音のオン及びオフメッセージは、出力を合わせるべきピッチを特定する機器のように、装置１００によって用いられる。ＭＩＤＩインタフェース７はまたピッチベンドを含む様々な制御情報を伝達し、それはまた出力を合わせるべきピッチを特定するために装置１００によって用いられる。
【００５２】
ＲＯＭプログラム記憶装置８は電源オフの間プログラム命令のシーケンスを記憶しておくために用いられる。ＳＲＡＭパラメーター記憶及び作動メモリ９は、ユーザーが設定したパラメーターのバッテリーバックアップ記憶のみならずマイクロプロフェッサー用の作動記憶を提供する。この様にしてユニットに電源が入ると、装置のセッティングは電源オフのときの使用の際のセッティングに復帰する。
【００５３】
Ｄ／Ａ変換器１０は１秒ごとに１６ビット、４４，１００サンプルのマイクロプロセッサーからの修正された出力データーを処理し、それを連続するアナログ信号変換する。オーディオインタフェース１１はそのアナログ信号を一般的にオーディオ装置において見られる平衡又は不平衡ライン出力１２に変換する。
【００５４】
ここで図２を参照すると、マイクロプロセッサー４の割り込みなしの処理実行のシーケンスが示されている。電源がオンになると、マイクロプロセッサー４はブートストラップステップ１３を実行してＲＯＭ８（読み出し専用メモリー）からプログラムを読み込む。このステップが必要な理由は、本願発明で使用する高速プロセッサー（望ましくはモトローラーの５６０００クラスのＤＳＰチップ）では、ＲＯＭ８が低速なためにそのＲＯＭ８からの命令を効率良く処理できないからである。代わりに、その命令はＲＯＭ８から読み出されて処理の為にＳＲＡＭ（スタティック  ランダム  アクセス  メモリ）９に記憶される。このブートストラップ手順の後、制御は処理を続行する為に読み込んだコードへと進む。
【００５５】
次にマイクロプロセッサー４は論理ステップ１４において不揮発性のバッテリー電力供給ＳＲＡＭを使用することによってセーブされているＳＲＡＭ９からユーザー制御を復帰するために必要ないかなる処理も実行する。
【００５６】
次にマイクロプロフェッサー４はステップ１５においてＬＣＤ５（液晶表示装置）及びユーザー制御を初期化するとともに、装置の構成部分が必要とする他のいかなる初期化も実行する。アルゴリズムの所定のパラメーターがステップ１６で初期化される。検出モードパラメーターの正しいものへの設定（DETECTION_MODE=TRUEへの設定）は、（１）入力ピッチは不明、（２）ピッチ修正が起こる可能性はない、さらに（３）ピッチ検出アルゴリズムを使われなければならないということを示す。再サンプル速度２を値１．００に設定すると（RESAMPLE_RATE2=1.00）、ピッチ修正アルゴリズムがピッチ修正されていないデーターを処理することができるようになる。出力アドレス（OUTPUT_ADDR）及び入力アドレス（INPUT_ADDR）は入力サンプルが記憶されている同じバッファへのインデックスである。明解且つ簡潔な説明のために、以下に示す処理の例はそのバッファが無限の長さを持つと仮定する。実際の望ましい実施例では循環バッファが用いられる。循環バッファは上述のアルゴリズムへの変更を必要とし、それは当業者にとって自明なのでこれ以上の説明は行わない。
【００５７】
最後に論理ステップ１７において割り込みが開始される。この後は、オーディオサンプルがマイクロプロセッサーに受け取られるとそのマイクロプロセッサーのシーケンサーが以下に述べる割り込み処理コードの実行を開始する。
【００５８】
図２に記述するコードの残りは装置１００の電源がオンのままである限り永続的に繰り返すループを表す。このループの最初の論理ステップ１８はすべての未処理のＨ（．）計算処理を実行するためのものである。この計算は前述の式（３）を用いて実行される。未処理で未終了のＨ（．）計算処理のこのコンピューター計算処理の要求は、割り込み中に実行されるピッチ追跡アルゴリズムによって発生される。この計算処理は非常に長いので、１つの割り込みの１／４４１００秒の時間スロットの間に生じることはない。その代わりに、フラグがセットされて、式（４）及び（５）の「ｉ」及び「Ｌ」パラメーターが割り込み中に記憶される。これはコンピュータ計算処理が実行される論理ステップ１８において検出される。
【００５９】
ユーザー制御は論理ステップ１９においてどの変化に関してもポーリングされる。このコードはボタン押し操作及びエンコーダー切り換えを検出し、液晶表示装置を管理し、アルゴリズムの次の使用のためにメモリ内のすべてのパラメーターの変化を記憶する。
【００６０】
ＭＩＤＩ入力が論理ステップ２０において検出及び処理されると、メモリに記憶されているＭＩＤＩ入力が最新の状態になる。特に最も新しい音（もしあるとしたら）がオンにされて、ピッチベンドの最新状態がメモリに維持される。
【００６１】
論理ブール代数、検出モード（DETECTION_MODE）が論理ステップ２１においてテストされる。正しい場合には、論理ステップ２３の検出アルゴリズム（以下に記述）が実行され、そうでなければ望ましいサイクル周期（CYCLE_PERIOD）が論理ステップ２２において計算される。この計算への入力がサイクル周期（CYCLE_PERIOD）である。サイクル周期（CYCLE_PERIOD）は入力データの期間のサンプルにおける浮動小数点長さである。それは割り込み中にピッチ追跡アルゴリズムによって計算される。望まれるサイクル周期（DESIRED_CYCLE_PERIOD）が、ピッチの調子を正しく合わせるサイクル周期である。何に対し正しく合わせるか（正しく合わせる基準）は、最新のＭＩＤＩ入力の音調又はサイクル周期（CYCLE_PERIOD）に最も近い音階の音となるようにユーザーがインタフェースを通じて設定する。
【００６２】
次に図３A及び３Bを参照すると、論理ステップ２３の検出アルゴリズム（図２）が説明されている。検出アルゴリズム２３は入ってくるデータを処理しそのデータのピッチを検出する。この入ってくるデータは、アンチエリヤシングフィルター及び８−１ダウンサンプリングで処理することによって、４４，１００KHｚＡ／Ｄ変換器出力３（図１）から抽出されることを、割り込み処理の説明の際に言及する。図３A及び３Bにおけるアルゴリズムは割り込み処理手順内にはなく、また、それは８番目のサンプルごとに処理を行うので、それはその計算処理を完了するのにより長い時間を必要とする。図３Aにおいて、論理ステップ２４の最初のテストでは新しいサンプルの入手可用性を調べる。それは割り込みハンドラー（以下の論理ステップ３９を参照のこと）に設定されたフラグを調べることによって行われる。何も得られない場合には、論理ステップ２５におけるアルゴリズムは他のポーリングされた処理に戻る。そうでなければそのサンプルは論理ステップ２６においてダウンサンプリングされたバッファに記憶される。次にアレーＥｄｏｗｎ（Ｌ）及びＨｄｏｗｎ（Ｌ）のそれぞれが、２から１１０までの範囲のＬの値に対して、式（４）及び（５）を用いて論理ステップ２７において更新される。記号ｘｉは論理ステップ２６のダウンサンプルされたバッファに記憶された最新のサンプルを表わし、他のｘｊの値はそのバッファから得られたより以前の値である。
【００６３】
ピッチ検出が論理ステップ２８において実行される。特にＬｍｉｎ１がローカル最小値を満たす式（６）が見つかるようにアレーＥｄｏｗｎ（  ）及びＨｄｏｗｎ（  ）の２から１１０までの第１インデックスとして見つかる。パラメータ「ｅｐｓ」はユーザーが特定することができる０．０から０．４０の間の範囲における小さい値である。「ｅｐｓ」のより小さい値はそうして見つかった波形の２つのサイクルが同形であるというより厳しい要求を出す。その様なＬｍｉｎ１が見つからない場合には論理ステップ２９が戻りを指定する。
【００６４】
Ｌｍｉｎ１が見つかった場合には、第１倍音が誤って識別されていた可能性がある。これが生じるのは、いくつかの音において、基底音（第１倍音の２分の１の周波数）がとても弱いからである。またより高次数の倍音は、８から１のダウンサンプリングアンチエリアシングフィルターによって取り除かれているので、存在しないであろう。歌声の場合には基底音が所定の母音とともに存在しない歌手がいる。ダウンサンプルされていないデータに関する第１倍音のピッチ追跡は成功しないであろう。よってピッチ検出アルゴリズムは基音の存在をテストしなければならない。図３Ｂにおいて、論理ステップ３０のテストが、基底音が検出される程度に高い周波数であるかどうか決定する。もしそうでないなら（偽の状態）、Ｌｍｉｎは論理ステップ３１において８×Ｌｍｉｎ１のように計算される。Ｌｍｉｎは４４１００ＫＨｚデータの近似値の周期である。
【００６５】
基底音が検出される程度に高い周波数である場合には、制御が論理ステップ３０から論理ステップ３２まで前進し、そこでは、式（６）を満足するローカル最小値が発見されるように、Ｌｍｉｎ２が、アレーＥｄｏｗｎ（  ）及びＨｄｏｗｎ（  ）のＬｍｉｎ１からｌ１０までの第１インデックスとして発見される。そのようなＬｍｉｎ２が発見されなかった場合には、論理ステップ３３から戻りが行われる。
【００６６】
Ｌｍｉｎ２が発見された場合には、論理ステップ３３は制御を論理ステップ３４に渡して、Ｌｍｉｎが８＊Ｌｍｉｎ１又は８＊Ｌｍｉｎ２に設定されたかを決定する。どれがデータの周期を最良に表すかによって選択が行われる。これは各可能性ごとにダウンサンプリングしていないデータからE（  ）−  ２H（  ）を計算して最小値を与えるＬｍｉｎを選択することによって行われる。ここではＬｍｉｎが４４，１００ＫＨｚデータの近似周期となる。
【００６７】
アレーE（  ）及びH（  ）は、それらが４４，１００ＫＨｚデータから計算されることを除けば、Eｄｏｗｎ（  ）及びＨｄｏｗｎ（  ）と同じ式で計算される。式（４）及び（５）は４４，１００ＫＨｚデータに関して１６から８８０までのＬ値を考慮する。またE（  ）及びH（  ）は8倍以上頻繁に更新されなければならない。その結果の計算ロードはダウンサンプルされた場合より６４倍大きく従来のマイクロプロセッサーの能力を超えてしまう。従ってE（  ）及びH（  ）アレーはデータの周期を表すほぼインデックスの値の範囲を求めるために計算される。式（４）及び（５）は割り込みの間にE（  ）及びH（  ）の現存する値を更新するために用いられる。よってE（  ）及びH（  ）の値は論理ステップ３５で初期化される。Nの望ましい値は８である。Ｌｍｉｎは論理ステップ３５に示されるようにN／２に設定される。またEH_Offset（オフセット）はＬｍｉｎ−Ｎ／２＋１に設定され、E（１）及びH（１）を求める式（４）及び（５）のためにＬ値を画定する。
【００６８】
最後に論理ステップ３６のブール検出モード（Boolean Detection_mode）が偽に設定される。これによってピッチ追跡が割り込みの間に起こる。
【００６９】
次に図４A及び４Bを参照すると、論理フローチャートが提示されており、それは、A／D変換器３において新たなサンプルの可用性を示す割り込みが発生する毎に起こる実行の順序を示す。図４Aにおいて、オーディオサンプルがＡ／Ｄ変換器３から論理ステップ３７において読み取られて入力バッファ内のアドレスＩｎｐｕｔ＿ａｄｄｒに記憶される。そのＩｎｐｕｔ＿ａｄｄｒはそれに１つを加えることによって増加される。
【００７０】
装置が検出モードにある場合には、論理ステップ制御は８から１のダウンサンプリングのために論理ステップ３９まで進行する。ダウンサンプルリングはローパスアンチエリヤシングフィルタ（ＬＰＦ）から成り、８番目のサンプルごとに選択を行い（ダウンサンプリングを行い）、フラグを設定する。このフラグはダウンサンプリングルされた値が処理される論理ステップ２４における検出アルゴリズムでのポーリング処理中に検出される。論理ステップ３９でのダウンサンプリングの後、割り込み処理は論理ステップ４５に進み、そこで出力データが入力データから再サンプリングされる。検出モード（Detection_mode）が真の間、再サンプリング速度２は１と等しく結果として出力ピッチに変化はない。
【００７１】
論理ステップ３８で決定されるときに装置が検出モードにない場合には、Ｈ（  ）及びＥ（  ）アレーは式（４）及び（５）を用いて論理ステップ４０において更新される。１からＮの範囲のＥ（  ）及びＨ（  ）のインデックスは、ＥＨオフセット（EH_Offset）からＥＨオフセット＋Ｎ−１（EH_Offset+N-1）に等しい式（４）及び（５）のＬ値を表す。
【００７２】
次に論理ステップ４２のピッチ追跡計算は論理ステップ４１によって示されるように５番目の繰返しごとに実行される。これにより結果の音質を落とすことなく関連する計算により多くの時間をかけることができるようになる。論理ステップ４２のピッチ追跡計算は図５Ａ及び５Ｂに詳細に述べられている。その計算の結果はピッチ追跡が失敗したか否かに関して論理ステップ４３において質問される。成功していた場合には、制御はステップ４５に移る。ピッチ追跡に失敗した場合には、論理ステップ４４がリサンプル速度２（Resample_Rate 2）を１．に設定し、さらに検出モード（Detection_mode）を真（true）に設定する。
【００７３】
次に図４Ｂを参照すると、リサンプル速度２（Resample_Rate 2）は１．に近い浮動小数点の値であり、それは論理ステップ４５で出力アドレス（Output_addr）を増加するために用いられる。Ｏｕｔｐｕｔ＿ａｄｄｒは浮動小数点バッファアドレスであり、そこから出力サンプルが補間される。リサンプル速度２（Resample_Rate 2）の値が１．の場合にはピッチに変化はない。リサンプル速度２（Resample_Rate 2）の値が１より大きい場合には、１サイクルごとのサンプルが減少し従ってピッチが上昇する。値が１より小さいと１サイクルごとのサンプルが増加し従ってピッチを低下する。
【００７４】
論理ブロック４６はリサンプル速度２（Resample_Rate 2）が１より大きいか否かを試験し、その場合には出力ポインター、出力アドレス（Output_addr）は入力ポインター、入力アドレス（Input_addr）を超過する可能性がある。超過は論理ステップ４８で検出され、制御が論理ステップ５０に移って、そこで、丁度１つの浮動小数点サイクル周期、サイクル周期（Cycle_peirod）が出力アドレス（Output_addr）から差し引かれ、それによりその超過が防がれる。リサンプル速度２（Resample_Rate 2）が１．より小さい場合には、出力ポインター、出力アドレス（Output_addr）は入力ポインター、入力アドレス（Input_addr）を下回る（明らかにそれより減少する）可能性がある。下回ることは論理ステップ４７で検出され、制御は論理ステップ４９に移り、そこで丁度１つの浮動小数点サイクル周期、サイクル周期（Cycle_period）が出力アドレス（Output_addr）に加えられ、それにより下回ることが防止される。
【００７５】
論理ステップ５１はアドレス出力アドレス（Output_addr-5）で入力バッファから出力サンプルを補間する。多数の標準的補間方法を用いることができる。望ましいモード選択は利用できる処理時間の長さに従う。出力アドレス（Output_addr）の値が入力アドレス（Input_addr）に近い場合には、５を引くことによって補間方法を成功させることができる。最後に補間された値はＤ／Ａ変換器５２に書き込まれ、その割り込み処理は終了する。
【００７６】
次に図５Ａ、５Ｂ及び５Ｃを参照すると、論理ステップ４２を参照して前述したピッチ追跡計算が詳細に述べられている。まず図５Ａにおいては、論理ステップ５３においてＥ（ｉ）−  ２Ｈ（ｉ）の値が１からＮのインデックスｉに関して計算される。これらの値の最小値はｔｅｍｐ１に記憶され、最小値が発見されたインデックス「ｉ」はＬｍｉｎに記憶される。次に論理ステップ５４のテストはｔｅｍｐ１に記憶された最小値が式（６）を満たすか否かを決定する。そうでない場合には、制御は論理ステップ５７に移り、そこで追跡失敗を表す戻りが行われる。
【００７７】
ピッチが急激に変化する場合には、論理ステップ５５におけるテストは制御を論理ステップ５７まで前進させ、そこでは追跡失敗を表す戻りが行われる。最新の信号におけるエネルギーが非常に低い場合には、論理ステップ５６のテストは制御を論理ステップ５７まで進め、そこでは追跡失敗を表す戻りが行われる。
【００７８】
次に図５Ｂを参照すると、上述のように、Ｅ（  ）及びＨ（  ）アレーはデータの周期を表すほぼインデックスの値の範囲に関して計算される。データ周期がより小さな又はより大きなインデックスまで十分にシフトした場合には、Ｅ（  ）及びＨ（  ）の範囲は同様にシフトされなければならない。これを図５Ｂに示す。特にＬｍｉｎがＮ／２より小さい場合には、論理ステップ５８のテストは制御を論理ステップ５９に移行させ、そこではＥ（  ）及びＨ（  ）アレーは１インデックス高くシフトされ、Ｅ（Ｎ）及びＨ（Ｎ）の古い値は破棄され、さらにＥ（１）及びＨ（１）を求めるために新たな値を計算することが要求される。変数ＥＨオフセット（EH_Offset）は１だけ増加される。Ｅ（１）は論理ステップ６０において式（２）から導き出される単一項を引くことによってＥ（２）から計算される。Ｈ（１）はＥＨオフセット（EH_Offset）に等しいＬによって式（３）から計算されなければならない。この計算は長いのでここでは実行されない。それよりも、この計算を示すパラメータが記憶されさらにフラグが設定されると、その計算は図２の論理ステップ１８に示されるようにポーリングアルゴリズムにおいて実行される。
【００７９】
同様に、ＬｍｉｎがＮ／２＋１よりも大きい場合には、論理ステップ６１のテストは制御を論理ステップ６２に移行し、そこでは、Ｅ（  ）及びＨ（  ）アレーが１インデックス分低くシフトされ、Ｅ（１）及びＨ（１）の古い値が破棄され、Ｅ（Ｎ）及びＨ（Ｎ）を求めるために新たな値を計算することが要求される。変数ＥＨオフセット（EH_Offset）は１だけ増加される。関数Ｅ（Ｎ）は論理ステップ６３において式（２）から導き出される単一項を加えることによってＥ（Ｎ−１）から計算される。関数Ｈ（Ｎ）はＥＨオフセット＋Ｎ−１（EH_Offset＋N−１）に等しいＬによって式（３）から計算されなければならない。この計算は長いのでここでは実行されない。それよりもこの計算を示すパラメータが記憶されさらにフラグが設定されると、その計算は図２の論理ステップ１８に示されるようにポーリングアルゴリズムにおいて実行される。
【００８０】
次に図５Ｃを参照すると、この計算のこの段階では、Ｌｍｉｎは、データ周期を示すＥ(  )−２Ｈ（  ）の最小値への整数ポインターである。しかし、この値はピッチ修正計算のためには十分には正確ではない。代わりにＰｍｉｎが、論理ステップ６４においてインデックスＬｍｉｎに近いＥ（  ）−Ｈ(  )の最小値の補間によるＬｍｉｎの浮動小数点バージョンとして計算される。この補間の望ましいアプローチはＬｍｉｎに最も近い３つのポイントを用いて二次式適合補間（quadratic fit interpolation）を実行することである。 この二次式適合補間の具体例としては、以下の方法がある。
関数Ｖ＝Ｅi(L)−２Ｈi(L)を最小にするＬの値として、Ｌmin estとして定義し、さらに、
Ｌmin estについての上記関数の以下の３つの値、Ｖ1、Ｖ2及びＶ3、
Ｖ1＝Ｅ(Ｌmin est−１)−２Ｈ(Ｌmin est−１)、
Ｖ2＝Ｅ(Ｌmin est)−２Ｈ(Ｌmin est)及び
Ｖ3＝Ｅ(Ｌmin est＋１)−２Ｈ(Ｌmin est＋１)を決定し、
上記値Ｖ1、Ｖ2及びＶ3にＬmin estの関数として二次曲線を適用し、
この二次曲線の最小値で値Ｌmin estを決定する方法である。
【００８１】
浮動小数点周期（１サイクルごとのサンプル）は論理ステップ６５においてＥＨオフセット（EH_Offset）＋Ｐｍｉｎ−１として計算されてサイクル周期（Cycle_period）に記憶される。変数ＥＨオフセット（EH_Offset）はＥ（１）及びＨ（１）によって表される１サイクルごとのサンプルである。変数再サンプル生速度（Resample_Raw_Rate）は、論理ステップ６６において、望ましいサイクル周期（desired_Cycle_period）によってサイクル周期（Cycle_period）（論理ステップ６５において計算したばかりのもの）を割ることによって計算される。その値、望ましいサイクルピリオド（desired_Cycle_period）は、図２の論理ステップ２２に示すように計算される。
【００８２】
再サンプル生速度（Resample_Raw_Rate）がデータを再サンプルする為に用いられたとすると、出力のピッチは論理ステップ２２において決定された所望のピッチに正確に調子が合うであろう。その所望のピッチは瞬時に異なるスケールの音調又は異なるＭＩＤＩの音調に変わるので、出力ピッチも瞬時に変わることになる。これは人の声が処理されているときには難点となる。なぜならば人の声は瞬時にピッチを変えないからである。論理ステップ６７の再サンプル速度１（Resample_Rate1）を求める計算は再サンプル生速度（Resample_Raw_Rate）を円滑にしてその問題を軽減する。変数、減衰（Decay）は、０と１の間にあってユーザによって設定される。０値は再サンプル速度１（Resample_Rate1）を再サンプル生速度（Resample_Raw_Rate）と等しくして、瞬時にピッチを変化させる。１に近い値は多量の円滑化を生じさせてピッチ変化を漸進的にする。
【００８３】
音調にビブラート（振動）を取り入れることが望ましい場合がある。これは論理ステップ６８において、係数、ビブラート転調（Vibrato_modulation）によってリサンプル速度１（Resample_Rate1）を転調することによって実行され、係数、ビブラート転調（Vibrato_modulation）は、時間が経つにつれて出力を交互に半音上げたり下げたり又は急峻にしたり平坦にしたりする。ビブラートの深度、速度及び開始遅延（onset delay）はユーザ入力によって制御される。最後に論理ステップ６９は制御を図４Ａに示すブロック４２の割り込み処理ルーチンに戻す。
【００８４】
本願発明の望ましい実施例を説明しそして幾分か詳細に述べたが、その望ましい実施例の修正及び付け加えは当業者によって行われるであろう。その様な修正及び付け加えは本願発明の意図及び範囲内にある。
【図面の簡単な説明】
本願発明の目的、利点及び特徴は添付図面を参照することによってより明白になるであろう。そこでは、同様な番号は同様な部分を示す。
【図１】  図１は本願発明に係るピッチ検出及び修正装置のシステムブロック図で、装置の入力サウンドインタフェース、出力サウンドインタフェース、オペレータコントロールインタフェース、マイクロプロセッサ及び他の構成要素を示す。
【図２】  図２はマイクロプロセッサの非割り込み処理の実行のシーケンスを示すフローチャートである。
【図３】  図３Ａ及び図３Ｂはともに入ってくるデータを処理しそのデータのピッチを検出する本願発明に係る方法を特に説明する非割り込み処理の一部として生じる実行のシーケンスを示すフローチャートである。
【図４】  図４Ａ及び図４Ｂは、ともに、Ａ／Ｄ変換器内で新たなサンプルを得ることができることを表す割り込みが生じるごとに実行されるシーケンスを示すフローチャートを提供する。
【図５】  図５Ａ、図５Ｂ及び図５Ｃは、ともに、割り込み処理内の追加の詳細である実行のシーケンスを示し、特に音のピッチの変化を追跡する方法を示すフローチャートを提供する。
【図１】
0003681334.tif 000011
【図２】
0003681334.tif 000012
【図３】
0003681334.tif 000013
0003681334.tif 000014
【図４】
0003681334.tif 000015
0003681334.tif 000016
【図５】
0003681334.tif 000017
0003681334.tif 000018
0003681334.tif 000019