JP2005157257A - 音高抽出装置、音高補正装置およびプログラム - Google Patents

音高抽出装置、音高補正装置およびプログラム Download PDF

Info

Publication number
JP2005157257A
JP2005157257A JP2004124111A JP2004124111A JP2005157257A JP 2005157257 A JP2005157257 A JP 2005157257A JP 2004124111 A JP2004124111 A JP 2004124111A JP 2004124111 A JP2004124111 A JP 2004124111A JP 2005157257 A JP2005157257 A JP 2005157257A
Authority
JP
Japan
Prior art keywords
pitch
correction
hold
input waveform
input
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
JP2004124111A
Other languages
English (en)
Other versions
JP4210934B2 (ja
JP2005157257A5 (ja
Inventor
Toru Kitayama
徹 北山
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.)
Yamaha Corp
Original Assignee
Yamaha 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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2004124111A priority Critical patent/JP4210934B2/ja
Publication of JP2005157257A publication Critical patent/JP2005157257A/ja
Publication of JP2005157257A5 publication Critical patent/JP2005157257A5/ja
Application granted granted Critical
Publication of JP4210934B2 publication Critical patent/JP4210934B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Auxiliary Devices For Music (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】
音高補正装置において補正出力音の音高(音名)や元の音の音高をどの程度補正したかなどの変化について一目で分かるように視認性の良い表示を行なうこと、および音高抽出装置において、入力音にノイズや低レベルの高調波が含まれている場合でも少ない誤差で音高を抽出できるようにすることを目的とする。
【解決手段】
補正目標の音高および音高補正処理の状況、例えば検出した入力音の音高や音高補正処理における現時点の音高補正量を表示する。補正目標の音高の表示は、各音名に対応する鍵盤の鍵を点灯させることにより行なう。点灯や消灯時には所定の時定数で最大照度または最小照度まで漸増または漸減するように表示する。入力波形のエンベロープをゼロクロスのタイミングでホールドし、入力レベルがホールドレベルを超えたときホールドを解除する。ホールド解除のタイミングに基づいて入力波形のピッチ情報を求める。
【選択図】 図2

Description

この発明は、入力音の音高を抽出する音高抽出装置およびその音高を指定された音高に補正する音高補正装置、並びにそれらの装置に係るプログラムに関する。
従来より、いわゆるピッチコレクターあるいはピッチチェンジャーなどと呼ばれる音高補正装置が知られている(例えば、特許文献1参照)。これは、入力音の音高(ピッチ)を任意指定の音階周波数に補正して出力する装置である。音程のふらついた演奏や歌唱音を補正して、きれいに楽曲を仕上げるなどが主な利用法である。例えば、カラオケなどで歌い手が歌うボーカル音の音高を曲に正確に合わせるために用いる。逆に、ピッチ変動を目立たせるように補正して、演奏音の個性を強調するためにも使える。ピッチコレクターはリアルタイムの処理が可能である。また、自動演奏の機能拡張プラグインソフトとして提供されるものもある。例えば、自動演奏に合わせてボーカル音を録音するとき、ボーカル音の音高を、予め設定されているメロディの音高(あるいは予め決められた音階の何れかの音高)に補正し、本来の音高の歌声とすることができる。
上述したピッチコレクターあるいはピッチチェンジャーなどの音高補正装置では、入力音の音高を抽出する機能が必須である。音高抽出の方式としては、入力音波形データからそのエンベロープを生成し、そのエンベロープのゼロクロス(信号の符号が正から負に、あるいは負から正に変化するポイント)を検出し、そのゼロクロスの周期を入力音の周期とするものである。
特開平10−78791号(特許第3379348号)
ところで、従来の音高補正装置では、音高の補正の際、どのような音高に補正されたかなどについて視覚的に見やすくする工夫がなかった。
また、従来の音高抽出方式では、入力音のエンベロープを作ってそのゼロクロスの周期を測るだけであるので、例えば入力音のノイズや低レベルの高調波のために誤差が多かった。
この発明は、音高補正装置において、補正出力音の音高(音名)や元の音の音高をどの程度補正したかなどの変化について一目で分かるように視認性の良い表示を行なうようにすることを目的とする。また、入力音にノイズや低レベルの高調波が含まれている場合でも、少ない誤差で音高を抽出できる音高抽出装置を提供することを目的とする。
この目的を達成するため、この発明に係る音高抽出装置およびプログラムでは、入力波形のエンベロープを生成し、入力波形のゼロクロスのタイミングを取得し、該ゼロクロスのタイミングで前記エンベロープをホールドし、前記入力波形のレベルが前記ホールドレベルを超えたか否かを判定し、超えたとき前記ホールドを解除することとし、前記ホールド解除のタイミングに基づいて前記入力波形のピッチ情報を求めることを特徴とするものである。正側と負側の両方で同様の処理を行なうようにしてもよい。ピッチ情報は、複数周期分のデータの平均を取って求めるのがよい。誤差を検出し、誤差が大きいデータは使用しないようにするのがよい。
さらに、この発明に係る音高補正装置およびプログラムでは、入力音の音高を補正目標の音高に補正する処理を行なう際に、その補正目標の音高および音高補正処理の状況を表示するようにしたことを特徴とする。音高補正処理の状況の表示とは、例えば、検出した入力音の音高の表示や、音高補正処理における現時点の音高補正量の表示である。
また、補正目標の音高の表示は、各音名に対応する表示要素を点灯させることにより前記補正目標の音高を示すものであり、点灯時には所定の時定数で最大照度まで漸増し、消灯時には所定の時定数で最小照度まで漸減するように表示するものであることを特徴とする。表示要素とは、例えば後述する発明の実施の形態では、ディスプレイ上に表示した鍵盤イメージの各鍵に対応する。ディスプレイ上の表示に限らず、ハードウエアとしての鍵盤の各鍵(鍵盤の鍵でなく各音名が区別できるものであればよい)にランプなどを設けて上記表示要素としてもよい。
また、入力波形のゼロクロスの検出は、ヒステリシス特性を有し、入力波形の正から負へのゼロクロスの検知は入力波形の値が正から負への方向へ移動する際に第1基準値を通過したことを検知するものであり、入力波形の負から正へのゼロクロスの検知は入力波形の値が負から正への方向へ移動する際に第2基準値を通過したことを検知するものとするのがよい。
以上説明したように、この発明によれば、音高抽出装置およびプログラムにおいて、入力波形のエンベロープをゼロクロスのタイミングでホールドし、入力波形のレベルが前記ホールドレベルを超えたときホールドを解除することとし、そのホールド解除のタイミングに基づいて入力波形のピッチ情報を求めるようにしているので、入力音にノイズや低レベルの高調波が含まれている場合でも、少ない誤差で音高を抽出できる。また、ホールド解除のタイミングの誤差を考慮すれば、より少ない誤差で音高を抽出できる。
音高補正装置あるいはプログラムにおいて、補正出力音の音高(音名)や元の音の音高をどの程度補正したかなどの変化について一目で分かるように視認性の良い表示を行なうことができる。これにより音高補正処理を行なう際に、ユーザはその処理の状況を容易に把握できるようになる。
入力波形のゼロクロスの検知にヒステリシス特性を持たせることにより、回路構成等により厳密なゼロ値の検出が困難な場合であっても安定した「ゼロクロス」の検知が行なえる。
以下、図面を用いてこの発明の実施の形態を説明する。
図1は、この発明の実施の形態に係るピッチコレクターのハード構成を示す。このピッチコレクターは、CPU101、ROM/RAM102、ハードディスク装置(HDD)103、QWERTYキーボード104、ディスプレイ105、オーディオ入出力インターフェース(I/F)106、MIDI I/F107、ネットワークI/F108、およびバスライン110を備える。
CPU101は、このピッチコレクター全体の動作を制御する処理装置である。ROM/RAM102は、CPU101が実行するプログラムや使用するデータを格納するメモリであり、不揮発性のリードオンリメモリ(ROM)と揮発性のランダムアクセスメモリ(RAM)からなる。HDD103は、CPU101が実行するプログラムや各種のデータを記憶する外部記憶装置である。QWERTYキーボード104は、通常のパーソナルコンピュータに用いられているタイプ用キーボードである。ディスプレイ105は、CPU101からの指示に基づいて各種の情報を表示する。オーディオI/F106は楽音波形信号の入出力を行なうインターフェースであり、MIDI I/F107はMIDI信号の入出力を行なうインターフェースであり、ネットワークI/F108はローカルエリアネットワーク(LAN)やインターネットなどに接続するためのインターフェースである。バスライン110は、これら各部を相互接続するバスラインである。
このようなピッチコレクターは、専用の装置として構成することもできるし、汎用のPC(パーソナルコンピュータ)を用いて構成することもできる。ここでは、汎用のPCを用いて、PCアプリケーションまたはアプリケーションの付加機能(プラグイン)としてピッチコレクターを実現するものとして説明する。
図2は、図1のハード構成のピッチコレクターの機能ブロック図を示す。該ブロック図の動作は、PC上で所定のソフトウェアを動作させることにより実現している。図2の各部の処理を説明する前に、本ピッチコレクターにおけるモードについて説明する。このピッチコレクターでは、MIDI Control as Scaleモード、MIDI Control as Noteモード、またはパネルモードが選択可能である。
MIDI Control as Scaleモードは、補正基準音階の音名を指定し、入力音の音高を、その音高に一番近い補正基準音階の何れかの音名の音高に補正するモードである。補正基準音階は、補正目標となる複数の音名(最大ではC,C#,D,…,A#,Bの12個の音名)から構成される。補正基準音階の音名は、MIDIノートナンバ(KeyCode)でリアルタイムに指定することができる。音階として判断するため、オクターブの区別(例えば、音名CであればC2,C3などの区別)はなく、単に音名C,C#,…,Bとして認識する。MIDIノートオン受信でそのノートナンバの音名を補正基準音階に加え、ノートオフ受信でその音名を補正基準音階から削除する。
MIDI Control as Noteモードは、リアルタイムで補正基準音名を指定し、入力音の音高を、その補正基準音名の音高に補正するモードである。補正基準音名は、MIDIノートナンバにより絶対値としてリアルタイムに指定する。オクターブの区別も行ない、例えば音名CであればC2,C3などは異なる音名として絶対値で認識する。単音のMIDIノートオン受信でそのノートナンバの音名を補正基準音高として認識し、ノートオフ受信でそのノートを補正基準音高から削除する。複数のMIDIノートオンを受信した場合、後着優先となる。
パネルモードは、調性(Key)と音階(Scale)をメニューから指定することにより補正基準音階を直接設定するモードである。所定の操作により任意のスケールの設定も行なうことができる。パネルモードで補正基準音階を指定した後は、入力音の音高は、その音高に一番近い補正基準音階の何れかの音名の音高に補正される。
次に、図2の各部の処理について説明する。入力信号INPUTは入力音の波形データであり、ここではボーカル音とする。出力信号OUTPUTは音高が補正された波形データである。その他、表示用データとして、入力音高表示データINPUT_PICTH、補正ノート表示データCORRNOTE、および補正量表示データCORRECTを出力する。入力音高表示データINPUT_PICTHは、入力音から検出した音高(周波数値)を示す。補正ノート表示データCORRNOTEは、補正目標の音高(音名表現)を示す。補正量表示データCORRECTは、現時点における入力音の音高の補正量(ピッチシフト量)を示す。
ピッチ抽出201にはパラメータTypeが入力する。Typeは、入力音声の性質に合ったフィルタリングおよびピッチ抽出方式を選択するためのパラメータであり、具体的にはノーマル、男声、または女声の3種類の何れかである。ピッチ抽出201は、Typeに応じたフィルタリングおよびピッチ抽出方式で、入力音の音高(周波数値)を検出する。検出された音高データは、加算器202に入力する。加算器202は、その音高データから基準周波数であるMasterTune(IN)を減算する。MasterTune(IN)は、入力音声の音高の基準周波数を設定するパラメータであり、デフォルトではA3=440Hzである。基準周波数を減算した結果の音高データは平均化処理203に入力する。入力音の音高は時々刻々と変化するので、平均化処理203により、入力した音高データを平滑化するローパスフィルタ(LPF)などの処理を施すものである。パラメータPitchDetectSensは、平均化処理203の応答性(時定数)を設定するパラメータである。主に、入力音声のピッチ変動の大小に応じて適当な値に設定する。入力音であるボーカル音は、人の歌い方に応じた音高の揺れがあり、余りに応答性よく音高を補正してしまうと本来のボーカル音を損ねてしまう場合がある。そのような場合は、PitchDetectSensを調整して応答性を低く設定する。
補正ノート判定204は、平均化処理後の音高データに応じて、その入力音の音高が一番近い補正基準音階の何れかの音名の音高を割り出す処理を行なう。特に、MIDI Control as Scaleモードのとき、補正ノート判定204は、MIDIノートオン受信でそのノートナンバの音名を補正基準音階に加え、ノートオフ受信でその音名を補正基準音階から削除する処理を行なう。またパネルモードのとき、補正ノート判定204は、パラメータとして調性(Key)と音階(Scale)を入力し、それらに応じて補正基準音階を設定する処理を行なう。
スイッチ205はモードに応じて切り替えられる。MIDI Control as Scaleモードまたはパネルモードのとき、スイッチ205は205A側に接続され、補正ノート判定204で割り出された補正音高データ(オクターブも含む補正目標の音名を示すデータ)がリミット処理206に入力される。一方、MIDI Control as Noteモードのとき、スイッチ205は205B側に接続され、外部からリアルタイムに入力する補正基準音名が補正音高データとしてリミット処理206に入力される。
リミット処理206は、補正音高データが所定の上限と下限の間に入っていることを確認する処理である。パラメータとして入力するLowLimitは下限値、HighLimitは上限値を、それぞれ示すデータである。補正音高データが下限を下回る場合はその下限値に、上限を上回る場合はその上限値に修正される。リミット処理206が出力する補正音高データは、補正目標の音名を示す補正ノート表示データCORRNOTE(音名表現)として出力される。またリミット処理206は、その補正目標の音名を周波数値に変換し、その値を補正音高データ(周波数値)として加算器207に入力する。
加算器207は、補正音高データ(周波数値)から元の入力音のピッチ抽出結果の音高(周波数値)を減算し、その結果(すなわち入力音の音高と補正目標の音高との差分であり、入力音の音高を補正するピッチシフト量)をLPF208に入力する。LPF208は、そのピッチシフト量の変化を滑らかにする。LPF208に入力するPitchCorrectSpeedは、音高補正を開始してから目標の音高に達するまでの時間特性を制御するためのパラメータである。LPF208から出力される平滑化されたピッチシフト量は、補正量表示データCORRECTとして出力される。また、このピッチシフト量に対し、加算器209でPicthShiftを、加算器210でMasterTune(OUT)を、それぞれ加算する。PicthShiftはピッチ補正した信号全体の音高を調整するためのパラメータであり、MasterTune(OUT)はピッチ補正後の音高の基準周波数を設定するパラメータである。ピッチシフト211は、加算器210から出力されたピッチシフト量に応じて、入力音の音高を補正し、補正後の楽音を出力する。FormantShiftは、ピッチシフト処理211におけるフォルマントの周波数位置の設定を行なうパラメータである。
図3(a)は、ピッチコレクターの設定ウインドウを示す。この設定ウインドウは、図2で説明したようにピッチコレクターが動作する際に画面上に表示されるウインドウである。301は、音名CからBまでの1オクターブ分の音階の表示を行なうための鍵盤パネルである。鍵盤パネル301の上部に、音高補正状況を表示するための表示部302が表示される。その他、図2で説明した種々のパラメータなどを調整するための操作子303の表示がなされているが、ここでは省略する。
図3(b)は、音高補正状況表示部302の表示例を示す。311は、現在の入力音から検出した音高(すなわち、図2の入力音高表示データINPUT_PICTH)をモニタ表示する検出音高線である。検出音高線311の表示位置は、下部の鍵盤パネル301の各鍵に対応している。例えば図3(b)の検出音高線311は、C#の鍵の上に表示されているので、現在の入力音から検出した音高がC#であることを示している。なお、図2で説明したように入力音高表示データINPUT_PICTHは周波数値であるので、この値から対応する音名(C,C#,D,…,A#,B)を求め、該音名に対応する鍵の位置に検出音高線311を表示している。
312は、入力音の音高からの現時点の音高補正量(補正量表示データCORRECT)を示すピッチインジケータ表示である。ピッチインジケータ表示312は、検出音高線311の位置からLED(発行ダイオード)が発光する長さで音高の補正量を示している。また、CORRECTは+または−の極性を有し、その極性に応じて検出音高線311の位置から右側または左側のどちらにピッチインジケータ表示312を伸縮させるかを決定している。図3(b)では312に示す部分が現時点の補正量を示す発光部分であるが、これは現在の入力音の音高C#がF付近まで補正されて出力されていることを示している。補正目標は音名に対応する周波数だが、音高の補正は徐々に行なわれるので、補正量312が、隣り合う鍵同士の中間位置にくることもある。ここではLEDイメージの表示としたが、単なるバー表示でもよい。補正量が大きければ長く、少なければ短く表示し、補正量が0の場合は補正量312の表示は無い。補正量がCまたはBをまたぐときには、補正量を折り返して表示する。図3(c)は、検出音高線322で示される入力音の音高がG3であり、これがC4に補正された場合の補正量の表示である。323および324に示すように折り返して表示されている。
図3(d)は、鍵盤パネル301における補正目標の音名の表示例である。補正目標の音名は、補正ノート表示データCORRNOTEに基づいて鍵盤パネル301の鍵を部分的に光らせることにより表示する。入力音に応じて補正目標は時々刻々と変化し、これに応じて補正目標の鍵の点灯はリアルタイムに行なわれる。鍵の点灯は、補正ノート表示データCORRNOTEとして新たな補正目標の音名が出力されたときから急速に照度を増加させ所定時間後に最大照度とする。補正ノート表示データCORRNOTEとして当該補正目標の音名が出力され続ける間、当該鍵の点灯状態は最大照度が保持される。補正ノート表示データCORRNOTEとして次の補正目標の音名またはNULL(補正目標無し、音高補正処理は停止状態となる)が出力されたとき、それまで点灯されていた鍵が消灯される。消灯は余韻をもって徐々に消えていくようにすることで、視覚的に判断しやすくしている。図3(d)の331は一番強く光っている鍵を示し、332は一番光った状態から若干消えた状態を示し、333はさらに消えていく状態を示す。
図4は、図3で説明したような鍵盤パネル301における補正目標の音名の表示を行なう鍵照度制御部の機能ブロック図を示す。本実施形態では、このような機能ブロックの動作は実際にはプログラムで行なっている。
図4の鍵照度制御部は、音名フィルタ401および各音名ごとの照度制御を行なうディスプレイフィルタ(DISPLAY FILTER x)402−1〜402−12を備える。音名フィルタ401は、補正ノート表示データCORRNOTEを入力し、その音名に対応する出力を1とし、他の音名に対応する出力を0とする。補正ノート表示データCORRNOTEがNULL出力のときは、すべての音名に対応する出力を0とする。例えば、補正ノート表示データCORRNOTEとして音名Cが認識されると、音名フィルタの「=C」の出力が0から1に立ち上がる。このとき音名Cの鍵照度を制御するディスプレイフィルタ402−1は以下のように動作する。
まずトリガ(TRIGGER)411が1となるので、該トリガ411の指示でレジスタREGc415に初期値INIT(INIT<1)が書き込まれる。これにより、ディスプレイフィルタ402−1の出力C_LAMPが0から初期値INITとなる。出力C_LAMPの値を照度として、音名Cの鍵について図3(d)で説明した表示が行なわれるので、初期照度はINIT<1で表示されることになる。加算器412、乗算器413、および加算器414は、遅延手段としてのレジスタREGc415を加えて、レジスタREGc415の現在値から入力値に漸近する(その時定数はDISPLAY TCで決まる)フィルタを構成している。したがって、補正ノート表示データCORRNOTEとして音名Cが続けば、ディスプレイフィルタ402−1には1が入力し続けるので、初期照度INITから最大照度1まで徐々に漸近して表示される。最大照度1に至った後は、音名Cが続く限り、その最大照度1が保持される。補正ノート表示データCORRNOTEが音名C以外になると、音名フィルタ401の「=C」の出力が1から0となり、ディスプレイフィルタ402−1には0が入力するので、レジスタREGc415の値すなわちC_LAMPの値は1から0まで徐々に減少する。したがって、音名Cの鍵の照度は1から0まで徐々に減少する。
他のディスプレイフィルタ402−2〜402−12も同様の構成であり、これらのディスプレイフィルタから出力されるC_LAMP,C#_LAMP,…,B_LAMPを鍵盤パネル301の各鍵の照度として図3(d)で説明した表示を行なう。なお、照度値は、実用上は7〜8段階で区別すれば十分である。
図5は、鍵の照度の変化例を示すタイミングチャート図である。図5(a)は補正ノートの音名(CORRNOTE)の変化を示す。NULLの状態から、タイミング501で補正ノートCとなり、それが続き、タイミング502で補正ノートDとなる。さらにタイミング503でE、タイミング504でC、タイミング505でNULLとなる。続いて、タイミング506でC、タイミング507でNULLと切り替わる。
図5(b)は、図5(a)のように補正ノートが切り替わったときの鍵盤パネル301のC鍵の照度の変化を示す。タイミング501で補正ノートCになるので、照度が初期値INITで立ち上がり、511に示すように徐々に照度1に近づく。照度1に至った後は補正ノートCが継続しているので、C鍵の照度も1を保持する。タイミング502で補正ノートDになるので、C鍵の照度は512に示すように徐々に減少し、513に示すように0に至る。次に、タイミング504で補正ノートCとなるので、再び照度が初期値INITで立ち上がり、514に示すように徐々に照度1に近づく。タイミング505で補正ノートの指定が無くなるので、515に示すようにC鍵の照度は徐々に減少し、516に示すように0に至る。タイミング506で再び補正ノートCとなるので、初期値INITから517に示すように照度が増加する。増加途中のタイミング507で補正ノートCの指定が無くなったときは、その時点から518に示すように照度が0まで減少する。同様にして、図5(c)はD鍵の照度、図5(d)はE鍵の照度を示す。C鍵で説明したのと同様な変化を示している。
以上のように、入力音が途切れなく、または十分に短い時間内に連続変化するときは、キーオフされた鍵の照光は残光を残しながら消えていきつつ、新たなキーオンに対応する鍵の照光が立ち上がるので、補正目標の音高(音程)の移動・変化が認識しやすい。
なお、入力音として同じ音高のキーオン・キーオフ(キーオンとキーオフは本実施形態のピッチコレクターへの入力のオンとオフを意味するものとする)が連続的に繰り返される場合は、キーオフ後、照度を早く減衰させるように制御(すなわち補正目標の音高に変化がない場合はキーオン・キーオフの変化により対応した表示動作とする)してもよい。そのためには、例えばキーオンからキーオフまでの時間間隔やキーオンから次のキーオンまでの時間間隔に応じてディスプレイフィルタのパラメータDISPLAY TCを変更したり、所定時間内のキーオンやキーオフの数に応じてディスプレイフィルタのパラメータDISPLAY TCを変更すればよい。また、同じ音高とは限らず、補正目標の音高が変化するキーオン・キーオフに対して、上述のようなキーオン・キーオフの変化に応じた表示動作を行なってもよい。
さらに、照度立ち上がり時と立ち下がり時の時定数は切り換えることができるようにしてもよい。例えば、所定の設定画面でユーザがディスプレイフィルタのパラメータDISPLAY TCを任意に変更できるようにしてもよい。また、図4のディスプレイフィルタでは、照度立ち上がり時と立ち下がり時とで同じ時定数を用いたが、照度立ち上がり時と立ち下がり時とで別々のフィルタを用いて時定数も異なる値としてもよい。この場合、図2で説明したPitchDetectSensやPitchCorrectSpeedに応じて、照度立ち上がり時の時定数を変更制御するようにしてもよい。
図6(a)は、ピッチコレクター処理のフローチャートを示す。この処理は、図1に示した構成のPC上でOS(オペレーティングシステム)の管理下で動作するものである。ステップ601で、ピッチコレクター信号処理を行なう。これは図2で説明した機能ブロックの処理である。次にステップ602で設定ウインドウ(図3)を閉じるイベントがあったか否か判定し、なければステップ603で設定ウインドウ表示処理を行ないリターンする。設定ウインドウを閉じるイベントがあったときは、ステップ604で、設定ウインドウ表示消去処理を行ない、ステップ605でピッチコレクターの終了処理を行ない、リターンする。
図6(b)は、ステップ603の設定ウインドウ表示処理のフローチャートを示す。ステップ611で、入力音高表示データINPUT_PICTHのモニタ表示処理を行なう。これは、入力音から検出した音高(周波数値)であるINPUT_PICTHの値から対応する音名(C,C#,D,…,A#,B)を求め、該音名に対応する鍵の位置に図3で説明した検出音高線311や322を表示する処理である。次にステップ612で、ピッチインジケータ部の表示処理を行なう。これは、現時点の音高補正量(補正量表示データCORRECT)に応じて、図3で説明したピッチインジケータ表示312を行なう処理である。
次にステップ613で、ワークレジスタxに最初の音名Cを格納する。以下、レジスタxに格納した音名を音名xと呼ぶ。ステップ614で、補正目標の音名xのオンイベントがあるか否か(すなわち、CORRNOTE=音名xか)判定する。あるときはステップ615に、ないときはステップ616に、進む。ステップ615では、ディスプレイフィルタx(図4のディスプレイフィルタ402−1から402−12のうち音名xに対応するもの)のレジスタREGxに初期値INITをセットし、音名フィルタ401の音名xに対応する出力を1とする。ステップ616では、補正目標音名xのオフイベントがあるか否か(すなわち、CORRNOTE≠音名xか)判定する。あるときはステップ617に、ないときはステップ618に、進む。ステップ617で、音名フィルタ401の音名xに対応する出力を0とする。ステップ618では、図4で説明したディスプレイフィルタxの信号処理を行なう。ステップ619で、全音名について処理が終了したか否か判定する。まだ処理していない音名があるときは、ステップ620でワークレジスタxに次の音名をセットし、ステップ614に戻る。全音名の処理が終了したときは、ステップ621で、12個のすべてのディスプレイフィルタの出力C_LAMP,C#_LAMP,…,B_LAMPを鍵盤パネル301の対応する鍵の照光に反映させる。ステップ622で、その他、表示およびGUIの処理などを行ない、リターンする。
なお、音高データのフォーマットについてであるが、周波数値を単純に二進数化(バイナリ)したものでもよいが、楽音を扱う上では、周波数値そのものより、対数表現による相対周波数データ、別の言い方をすれば、セント単位(半音=100セント、1オクターブ=1200セント)で表現するフォーマットとすると、合理的で計算処理も楽である。セント単位のフォーマットとは、基準(ゼロ)となる絶対音高を予め定めておいて、それからのセント差で音高を表す形式である。例えば、基準音高をA3=440Hzとして、1オクターブ上のA4は「+1200」、1音下のG3は「−200」と表す。
ここで、データの値を正値に限りたいときは、処理対象とする最低音高を基準に据えればよい。例えば、A−3=6.875Hzをシステムで扱う最低音高とすれば、6オクターブ上のA3は「+7200」、C3は「+6300」、C2は「+5100」、C4は「+7500」となる。半音差=100セント、1オクターブ差=1200である、このセント単位のフォーマットを使えば、音名の認識も簡単化できる。例えば、A3=「+7200」ならば、音高データ値が「+0」「+1200」「+2400」「+3600」「+4800」「+6000」「+7200」「+8400」「+9600」…の場合、その音名は「A」となる。また「+300」「+1500」「+2700」「+3900」「+5100」「+6300」「+7500」…であれば、音名は「C」である。
セント単位フォーマットによれば、基準音高の変更にも対応が容易である。システムの音名、音高名の認識部分は例えばA3=440Hzを基準音高として音名、音高を認識するものとしておく。これに、A3=441Hzを基準音高とする演奏音を入力するときは、440Hzと441Hzのセント差=3.9302セントをピッチ抽出の結果(セント値)から減算してシステムに入力すればよい。
鍵照度の制御をこのセント単位フォーマットによる周波数データの値に応じて行なってもよい(入力音から抽出した音高データがC〜Bの12音名の何れかの音高対応値に収まれば最高照度とし、該音高から離れるに従って、照度を下げるなど)。
なお、上記実施の形態では、PC上で動作するプログラムでピッチコレクターの信号処理や図3で説明した表示処理を行なったが、任意の部分をハードウエアで実現することも可能である。図3の表示はPCのディスプレイへの表示であるが、ハードウエアとして鍵盤を備え、図3で説明したのと同様の表示ができるものであれば(例えば、各鍵には331〜333のような点灯表示ができるようにする)、本発明を適用可能である。
図3では鍵盤パネル301により補正目標の音高を表示しているが、鍵盤のイメージではなくとも、各音名が分かるような表示であればよい。
次に、上述したピッチコレクターにおけるピッチ抽出部201(図2)の実施形態を説明する。
図7は、ピッチ抽出部201におけるピッチ抽出の方式を説明するための波形信号図である。701は、入力音の楽音波形(入力波形と呼ぶ)を示す。702は、入力波形701の正側のエンベロープ波形および該エンベロープ波形の所定の区間をホールドしたホールド波形を示す。702aや702cが入力波形701の正側のエンベロープ波形の部分であり、702bや702dがホールド波形の部分である。どのような区間をホールドするかについては後述する。エンベロープ波形は、所定の時定数で入力波形を追随する回路あるいは処理で生成しているため、702aや702cに示すように元の入力波形に対して若干の遅れをもって追随した波形となっている。もちろん、より高い追随性のエンベロープ波形としてもよい。図7では正側のみ図示したが、負側についても同様に、負側のエンベロープ波形および該エンベロープ波形の所定の区間をホールドしたホールド波形を生成している。
図7を参照してピッチ抽出の原理を説明する。まず、正側のみに注目して、ピッチ抽出部201におけるピッチ抽出時の動作を説明する。
(a)入力波形に応じたエンベロープ波形が生成出力されているとき(ホールド解除状態のとき)、入力波形の正から負へのゼロクロスを検出し、そのタイミングでエンベロープ波形の値をホールドする。例えば、エンベロープ波形702aが生成出力されているとき、正から負へのゼロクロスのタイミング711で当該エンベロープ波形の値をホールドし、以後はホールド波形702bを出力している。
(b)ホールド波形の値(ホールドレベル)と入力波形の値とを比較する。入力波形のレベルがホールドレベルに達しない間はホールドを維持する。入力波形のレベルがホールドレベルを超えたタイミングでホールド解除する。例えば、ホールド波形702bであれば、712に示すような入力波形のレベルがホールドレベルに達しない間はホールドを維持し、入力波形のレベルがホールドレベルを超えたタイミング713でホールド解除している。ホールド解除のタイミングで、CMP=1とする。CMPは周期計測のためのタイミング検出用フラグであり、1または−1をとる。
上記(a)と(b)の動作を負側でも行なう。ただし、負側の(a)の動作では、入力波形の負から正へのゼロクロスのタイミングでエンベロープ波形の値をホールドすることになる。また、負側の(b)の動作では、ホールド波形の絶対値と入力波形の絶対値とを比較して、入力波形の絶対値がホールドレベルの絶対値を超えたタイミングでホールド解除することになる。さらに、このホールド解除のタイミングで、CMP=−1とする。
以上の正側と負側の動作を合わせて、以下のような順序で動作する。
・正側の(a)
・負側の(b) CMP=−1に立ち下がり
・負側の(a)
・正側の(b) CMP=1に立ち上がり
・(以下、正側の(a)から繰り返し)
タイミング検出用フラグCMP=1の区間をCMP+と呼び、CMP=−1の区間をCMP−と呼ぶ。基本的に、CMP=1の立ち上がりのタイミングから次のCMP=1の立ち上がりのタイミングまでの区間長さや、CMP=−1の立ち下がりのタイミングから次のCMP=−1の立ち下がりのタイミングまでの区間が、入力音の基本的な周期(この周期は入力音の音高の1つの表現形態でありピッチ情報の1つである)と判定できる。従って、これらの区間長さを所定回数計測し、その平均などを求めて入力音の周期(ピッチ情報)とすればよい。CMP=1の立ち上がりのタイミングから次のCMP=1の立ち上がりのタイミングまでの区間長さに基づいて周期を求めるのであれば、正側の処理のみ行なえばよく、負側の処理は不要である。また、CMP=1の立ち上がりのタイミング自体を区間の区切りとせずとも、例えば、CMP=1の立ち上がりのタイミングの直前のゼロクロス位置を求めることとし、そのようなゼロクロス位置の間の区間長さから周期を求めてもよい。要するに、CMP=1に立ち上がる(あるいはCMP=−1に立ち下がる)タイミングに基づいて入力音の周期を求めればよい。なお、本実施形態では、できるだけ精度を高く検出するため、何回か連続して順次得られるCMP+とCMP−の区間長さを用いて、幾つかのパターンで誤差検出を行ない、所定以上の誤差があるCMP+やCMP−の区間長さはピッチを求めるのに使用しないようにしている。そのような誤差検出については、図11のステップ1110で詳述する。
なお、上記(b)の動作で入力波形のレベルがホールドレベルを超えたタイミングでホールド解除することに加え、前回のホールド解除のタイミングから所定のホールドタイムが経過したとき強制的にホールド解除するようにしている。例えば、図7のタイミング713でホールド解除してエンベロープ波形702cに移行した後、ゼロクロスタイミング714でホールド波形702dに移行するが、所定のホールドタイム721が経過したタイミング715で強制的にホールド解除し、入力波形のエンベロープ波形に移行している。これは、検出されたピッチ情報が安定してきたときは入力波形のレベルがホールドレベルを超えるタイミングがある程度予測でき、検出されたピッチ情報に応じたホールドタイム(例えば、求めた周期を所定%増とする)を過ぎるまで入力波形のレベルがホールドレベルを超えないときは、入力波形のその周期はピッチ抽出するのに使うデータとしては誤差が多いと考えられるので、当該周期のデータはピッチ抽出には用いずに次の周期の検出に進むようにしているものである。これにより、より精度の高いピッチ情報の検出が行なえる。
図8および図9を参照して、図7で説明した本実施形態におけるピッチ抽出方式のうち、特にエンベロープ波形をホールドして入力波形のレベルがそのホールドレベルを超えたときにホールド解除することの効果について説明する。
図8は、ホールドしない場合の例である。この例では、入力波形801に対しエンベロープ波形802を生成し、入力波形801がエンベロープ波形802を超えたタイミング(例えば、811や812)でフラグCMPを立ち上げている。負側でも同様の処理を行なう。矩形波803は、1または−1を交互に取るフラグCMPを示す。この方式では、例えば正側を見ると、821,822,823などが大きなピークを示しているので、この周期が本来の入力波形の周期を示していると認められるが、低次の高調波のピーク(例えば、831や832)があるため、これらの低次の高調波のピークをも検出してしまっている。結果として、フラグCMPは矩形波803に示すような挙動をとるため、例えばタイミング811から812の区間を1周期と誤認してしまう。
図9は、図7で説明した本実施形態の方式によるピッチ抽出例である。図8と同じ入力波形901に対し同様にエンベロープ波形902を生成しているが、本実施形態では902a,902bに示すようにゼロクロスのタイミングでエンベロープ波形をホールドするようにしている。低次の高調波のピーク931,932はこのホールドレベルまで至らないので、フラグCMPが変わるタイミングとして検出されていない。負側では低次の高調波のピークも検出しているが、正側で正常に検出しているため、矩形波803は立ち上がりのタイミングの周期が正確に入力音の周期を示すものとなっている。
図10は、図2のピッチ抽出部201の詳細な機能ブロック図を示す。該ブロック図の動作は、PC上で所定のソフトウエアを動作させることにより実現している。
帯域制限フィルタ1001は、入力音を、パラメータTYPEに基づいて、所定の帯域に制限する。パラメータTYPEは上述したようにノーマル、男声、または女声を区別するパラメータであり、その区別に応じて帯域制限するものである。その出力は比較部1008のA端子および比較部1009のA端子に入力する。また、帯域制限フィルタ1001の出力は、正極性エンベロープフォロワ1002、負極性エンベロープフォロワ1003、ゼロクロス検出部1004、およびレベル検出部1005に入力する。帯域制限フィルタ1001の出力は、図7の701に相当する。
正極性エンベロープフォロワ1002は、図7〜図9で説明したように入力波形に対して正側のエンベロープ波形を生成する。正極性エンベロープフォロワ1002の出力であるエンベロープ波形は、正極性側のホールド部1006に入力する。ホールド部1006は、ピッチ判定部1010から出力されるホールド開始信号Hによりホールド開始し、リセット信号Rによりホールド解除する。ホールド部1006は、ホールド開始から解除までの間は、ホールド開始時点における入力波形の値をホールドしたホールドレベルを出力し続ける。また、ホールド解除から開始までの間は、入力波形の値をそのままスルーして出力する。ホールド部1006の出力は、図7の702に相当する。
ホールド部1006の出力は、比較部1008のB端子に入力する。比較部1008は、A端子に入力する入力波形のレベルとB端子に入力するホールド部1006の出力信号のレベルとを比較し、A>Bのタイミングでピッチ判定部1010にその旨を示す信号を出力する。
負極性エンベロープフォロワ1003、ホールド部1007、および比較部1009は、それぞれ、正極性エンベロープフォロワ1002、ホールド部1006、および比較部1008と同様の動作を負側の波形に対して行なう部分である。比較部1009は、入力波形のレベルとホールド部1007の出力信号のレベルとを絶対値で比較するものである。ゼロクロス検出部1004は、帯域制限フィルタ1001からの入力波形のゼロクロスを検出する。レベル検出部1005は、入力波形のレベルが所定のスレショルドレベルTHを超えたことを検出する。
ピッチ判定部1010は、ピッチ抽出部全体の動作を制御する。特に、図7で説明した動作を実現するため、ピッチ判定部1010は、以下のようにホールド開始信号Hとリセット信号Rを出力する。ここでは、図7で説明した「正側の(a)」「負側の(b)」「負側の(a)」「正側の(b)」の各動作の順でピッチ判定部1010の動作を説明する。また、ホールドタイムのタイミングでホールド解除する動作についても含めて説明する。この説明では図7の番号で例示するものとする。
正側の(a):ゼロクロス検出部1004から入力波形が正から負へゼロクロスしたタイミング711を取得し、該タイミングでホールド部1006にホールド開始信号Hを出力する。ただし、入力波形が正から負へゼロクロスするタイミングが来なくても、正側タイマ1011が所定のホールドタイムを超えたときは、ホールド部1006にホールド開始信号Hを出力する。
負側の(b):比較部1009から|A|>|B|となったタイミングを取得し、該タイミングでホールド部1007にリセット信号Rを出力する。該タイミングで、負側タイマ1012をリセットしてホールドタイムの計時を開始するとともに、CMP=−1とする。
負側の(a):ゼロクロス検出部1004から入力波形が負から正へゼロクロスしたタイミングを取得し、該タイミングでホールド部1007にホールド開始信号Hを出力する。ただし、入力波形が負から正へゼロクロスするタイミングが来なくても、負側タイマ1012が所定のホールドタイムを超えたときは、ホールド部1007にホールド開始信号Hを出力する。
正側の(b):比較部1008からA>Bとなったタイミング713を取得し、該タイミングでホールド部1006にリセット信号Rを出力する。該タイミングで、正側タイマ1011をリセットしてホールドタイム721の計時を開始するとともに、CMP=1とする。
以上のようにして、ピッチ判定部1010は、図7で説明した動作を実現する。また、ピッチ判定部1010は、順次得られるCMP+とCMP−の区間長さからピッチを求める。さらに、求めたピッチに基づいてホールドタイムを調整する。
図10(b)は、正極性エンベロープフォロワ1002の構成例を示す。正極性エンベロープフォロワ1002は、乗算器1021、加算器1022、正極通過部1023、乗算器1025、加算器1026、遅延部1027、および乗算器1028を備える。正極通過部1023は、グラフ1024に示すように、入力値が正のときそのままスルーし、入力値が負のときは0を出力する。ループ回路の乗算器1025,1028の乗数や遅延部1027の遅延時間によって、入力信号から正側のエンベロープを生成する際の追随性(時定数)が決まる。負極性エンベロープフォロワ1003も同様の構成である。負極性エンベロープフォロワ1003の場合は、正極通過部1023の代りに負極通過部を用いる。
図11は、ピッチ抽出部201(主としてピッチ判定部1010)の動作の概要を示すフローチャートである。ピッチ抽出の処理が開始すると、まずステップ1101で、ピッチセンスフラグPITCHSENSFLG(初めは0に初期化されているものとする)が0か否か判定する。0のときは、ステップ1102でレベル検出部1005により入力波形のレベルチェックを行なう。次にステップ1103で、そのレベルLEVELが所定のスレッショルドTHより大きいか否か判定する。大きくないときはステップ1102に戻る。ステップ1103でLEVEL>THになったときは、ステップ1104に進む。この判定は、入力信号のレベルが小さいときにピッチを検出すると誤差が大きくなるので、入力信号のレベルが所定値を超えた後に実際のピッチ検出の処理を開始するための判定である。
ステップ1104で、ゼロクロス検出部1004により入力波形のゼロクロスカウントをチェックし、一定期間内のゼロクロス検出回数ZEROXを求める。ステップ1105で、ZEROX<THZEROかどうか判定する。THZEROは予め決められた所定数である。そうでないときは、現在入力されている入力音は子音部分(ゼロクロスが多くピッチを検出できない範囲)であると判定できるので、ステップ1106で、その旨を示す判定結果を上位に出力し処理を終了する。ZEROX<THZEROのときは、入力音が落ち着いてきてピッチ検出ができる範囲に入ったと見なせるから、ステップ1107でPITCHSENSFLGに1をセットし、ステップ1101に戻る。
ステップ1101でPITCHSENSFLGが0でないときは、ステップ1109で、図10で説明した動作を行ない、ピッチ判定部1010でCMP+とCMP−の区間長さを連続して所定数検出する。ステップ1110では、検出した所定数のCMP+とCMP−の区間長さのデータについて幾つかのパターンで誤差検出を行なう。そのパターンは以下のようなものである。
(1)連続するCMP+とCMP−の和(この和が1周期に相当する)を何区間か求める。注目する1区間の和について、その1つ前の和からの変化量を割合(例えば%)で求め、該変化量の割合をその1区間の誤差とする。
(2)連続するCMP−とCMP+の和(この和が1周期に相当する)を何区間か求める。注目する1区間の和について、その1つ前の和からの変化量を割合(例えば%)で求め、該変化量の割合をその1区間の誤差とする。
(3)連続するCMP+とCMP−とCMP+とCMP−(すなわち2周期分の長さ)を順次求め、前回求めた2周期分の長さからの変化量を割合(例えば%)で求め、該変化量の割合を誤差とする。
ステップ1111では、ステップ1110で求めた全ての誤差が所定の規定値より小さいかをチェックする。全ての誤差が規定値より小さいときは、ステップ1112で、各区間計測データを平均化して、周期を求め、その結果をピッチ抽出結果として出力する。その後、ステップ1114でピッチセンスフラグに0をリセットしてリターンする。ステップ1111で規定値より大きな誤差があったときは、ステップ1113で検出エラーの通知を行い、ステップ1114に進む。
なお、ここでは全誤差が規定値より小さいときピッチ検出結果を出力し、規定より大きい誤差が1つでもあったときエラーを通知するように説明したが、実際には、上記(1)または(2)の誤差が規定値より大きい場合は、その誤差が検出された区間のデータを破棄し、他の区間のデータから平均を求めてピッチ抽出している。また、上記(3)の誤差で規定値より大きなものが検出された場合は、その誤差が検出された2周期のうち少なくともどちらか1つの周期は誤検出していると考えられるので、各周期について(1)や(2)の誤差を用いて厳密に評価したり、他の誤差検出法で誤検出の周期を求めてもよい。
さらに、ここではステップ1109でCMP+とCMP−の区間長さを連続して所定数検出した後、それらの検出データの誤差評価を行ない、ピッチ抽出を行なっているが、ステップ1110から1113の処理をCMP+またはCMP−が1つ得られる毎に繰り返し行ない、リアルタイムにピッチ抽出結果を出力することもできる。
次に、図7で説明したピッチ抽出動作の変形例を説明する。図12は、図7と同様のピッチ抽出動作を示す波形信号図である。図7における700番台の番号と図12における1200番台の番号とは下2桁が同じものが対応する部分である。図12では、図7から変形した部分のみ説明する。特に「ゼロクロス検知」にヒステリシス特性を持たせたことが特徴である。すなわち、図12の変形例では所定の閾値th+とth−が設定されている。正から負へのクロスのタイミングは波形701の値が前記閾値th−を下回ったタイミング1211,1214とする。同様に、負から正へのクロスのタイミングは波形701の値が前記閾値th+を上回ったタイミングとする。その他は図7と同様である。
実際に楽音信号を処理するためにはOPアンプ、アナログコンパレータ、アナログディジタルコンバータなどの半導体デバイスが使用されるが、それら半導体デバイスの特性により、数mV〜μV単位のオフセットや温度ドリフトが生じる。従って、図12の変形例のように、厳密なゼロクロスでなくゼロ近傍に所定の閾値を設定してやり、「負→正へのゼロクロス検知」は「正側の閾値レベルのクロス検知」、「正→負へのゼロクロス検知」は「負側の閾値レベルのクロス検知」を行なうように構成すれば、回路構成等により厳密なゼロ値の検出が困難な場合であっても安定した「ゼロクロス」の検知が行なえる。
なお、上記図3の鍵盤表示の変形例として、以下のような態様もある。図3の音高補正状況の表示302を表示するLEDのインジケータに代えて液晶表示器等を用い、検出音高から音高補正量までを他の領域と区別できるよう区分けして表示させてもよい。また、音高がどの音名まで補正されているかを示すため、該音名の表示を添えるようにしてもよい。さらに、図3のような鍵盤表示に代えて、あるいは図3のような鍵盤表示に加えて、現在検出されている音高(音名)、現時点の音高補正量(どの音名まで補正されているかを示す音名表示でもよい)、補正目標の音高(音名)、現在検出されている音高と補正目標の音高との音高差(音程差)、および/または、補正途中の現時点の音高と補正目標の音高との音高差(音程差)を、グラフあるいは数値により表示するようにしてもよい。
この発明の実施の形態に係るピッチコレクターのハード構成図 ピッチコレクターの機能ブロック図 ピッチコレクターの設定ウインドウの表示例を示す図 鍵照度制御部の機能ブロック図 鍵の照度の変化例を示すタイミングチャート図 ピッチコレクター処理および設定ウインドウ表示処理のフローチャート図 ピッチ抽出部におけるピッチ抽出の方式を説明するための波形信号図 ホールドしない場合のピッチ抽出の方式を説明するための波形信号図 ホールドした場合のピッチ抽出の方式を説明するための波形信号図 ピッチ抽出部の詳細な機能ブロック図 ピッチ抽出部の動作の概要を示すフローチャート図 ピッチ抽出の方式の変形例を示す波形信号図
符号の説明
101…中央処理装置(CPU)、102…ROM/RAM、103…ハードディスク装置(HDD)、104…QWERTYキーボード、105…ディスプレイ、106…オーディオI/F、107…MIDI I/F、108…ネットワークI/F。

Claims (14)

  1. 入力波形のエンベロープを生成する手段と、
    入力波形のゼロクロスのタイミングを取得する手段と、
    前記入力波形のゼロクロスのタイミングで前記エンベロープをホールドする手段と、
    前記入力波形のレベルが前記ホールドレベルを超えたか否かを判定し、超えたとき前記ホールドを解除する手段と、
    前記ホールド解除のタイミングに基づいて前記入力波形のピッチ情報を求める手段と
    を備えたことを特徴とする音高抽出装置。
  2. 入力波形の正側のエンベロープを生成する手段と、
    入力波形の負側のエンベロープを生成する手段と、
    入力波形の正から負へのゼロクロスのタイミングを取得する手段と、
    入力波形の負から正へのゼロクロスのタイミングを取得する手段と、
    前記入力波形の正から負へのゼロクロスのタイミングで前記正側のエンベロープをホールドする手段と、
    前記入力波形の負から正へのゼロクロスのタイミングで前記負側のエンベロープをホールドする手段と、
    前記入力波形の正側のレベルが前記正側のエンベロープをホールドしたホールドレベルを超えたか否かを判定し、超えたとき前記正側のホールドを解除する手段と、
    前記入力波形の負側のレベルの絶対値が前記負側のエンベロープをホールドしたホールドレベルの絶対値を超えたか否かを判定し、超えたとき前記負側のホールドを解除する手段と、
    前記正側および負側のホールド解除のタイミングに基づいて前記入力波形のピッチ情報を求める手段と
    を備えたことを特徴とする音高抽出装置。
  3. 請求項2に記載の音高抽出装置において、
    前記入力波形のピッチ情報を求める手段は、前記正側のホールド解除のタイミングから次の正側のホールド解除のタイミングまでの区間長さ、または前記負側のホールド解除のタイミングから次の負側のホールド解除のタイミングまでの区間長さを、所定数の周期分求め、それらの区間長さの平均を入力波形の周期として出力することを特徴とする音高抽出装置。
  4. 請求項2または3の何れか1つに記載の音高抽出装置において、
    前記入力波形のピッチ情報を求める手段は、それまでに検出したピッチ情報に基づいて前記正側のホールド解除のタイミングまたは前記負側のホールド解除のタイミングの誤差を評価し、誤差が所定値以上のデータは次のピッチ情報の算出には使用しないことを特徴とする音高抽出装置。
  5. 請求項2から4の何れか1つに記載の音高抽出装置において、
    前記入力波形のピッチ情報を求める手段は、それまでに検出したピッチ情報に基づいて所定のホールドタイムを算出し、前記正側のホールド解除のタイミングから前記ホールドタイム以内に次の正側のホールド解除のタイミングが来ないとき、または、前記負側のホールド解除のタイミングから前記ホールドタイム以内に次の負側のホールド解除のタイミングが来ないときには、強制的にホールド解除するとともに、その区間のデータはピッチ情報の算出には使用しないことを特徴とする音高抽出装置。
  6. コンピュータ上で実行することにより、入力音の音高を抽出する処理を行なう音高抽出プログラムであって、該プログラムを実行することにより、
    入力波形のエンベロープを生成するステップと、
    入力波形のゼロクロスのタイミングを取得するステップと、
    前記入力波形のゼロクロスのタイミングで前記エンベロープをホールドするステップと、
    前記入力波形のレベルが前記ホールドレベルを超えたか否かを判定し、超えたとき前記ホールドを解除するステップと、
    前記ホールド解除のタイミングに基づいて前記入力波形のピッチ情報を求めるステップと
    が実現されることを特徴とする音高抽出プログラム。
  7. 入力音の音高を検出する手段と、
    補正目標の音高を指定する手段と、
    前記入力音の音高を前記補正目標の音高に補正する音高補正手段と、
    前記補正目標の音高および前記音高補正手段における音高補正処理の状況を表示する手段と
    を備えたことを特徴とする音高補正装置。
  8. 入力音の音高を検出する手段と、
    補正目標の音高を指定する手段と、
    前記入力音の音高を前記補正目標の音高に補正する音高補正手段と、
    前記検出した入力音の音高を表示する手段と、
    前記補正目標の音高を表示する手段と、
    前記音高補正手段の音高補正処理における現時点の音高補正量を表示する手段と
    を備えたことを特徴とする音高補正装置。
  9. 請求項7または8に記載の音高補正装置において、
    前記補正目標の音高を表示する手段は、各音名に対応する表示要素を点灯させることにより前記補正目標の音高を示すものであり、点灯時には所定の時定数で最大照度まで漸増し、消灯時には所定の時定数で最小照度まで漸減するように表示するものであることを特徴とする音高補正装置。
  10. コンピュータ上で実行することにより、入力音の音高を補正する処理を行なう音高補正プログラムであって、
    入力音の音高を検出するステップと、
    補正目標の音高を指定するステップと、
    前記入力音の音高を前記補正目標の音高に補正する音高補正ステップと、
    前記補正目標の音高および前記音高補正ステップにおける音高補正処理の状況を表示するステップと
    を備えたことを特徴とする音高補正プログラム。
  11. コンピュータ上で実行することにより、入力音の音高を補正する処理を行なう音高補正プログラムであって、
    入力音の音高を検出するステップと、
    補正目標の音高を指定するステップと、
    前記入力音の音高を前記補正目標の音高に補正する音高補正ステップと、
    前記検出した入力音の音高を表示するステップと、
    前記補正目標の音高を表示するステップと、
    前記音高補正ステップの音高補正処理における現時点の音高補正量を表示するステップと
    を備えたことを特徴とする音高補正プログラム。
  12. 請求項10または11に記載の音高補正プログラムにおいて、
    前記補正目標の音高を表示するステップは、各音名に対応する表示要素を点灯させることにより前記補正目標の音高を示すものであり、点灯時には所定の時定数で最大照度まで漸増し、消灯時には所定の時定数で最小照度まで漸減するように表示するものであることを特徴とする音高補正プログラム。
  13. 請求項1から5の何れか1つに記載の音高抽出装置において、
    前記入力波形のゼロクロスの検知は、ヒステリシス特性を有し、入力波形の正から負へのゼロクロスの検知は入力波形の値が正から負への方向へ移動する際に第1基準値を通過したことを検知するものであり、入力波形の負から正へのゼロクロスの検知は入力波形の値が負から正への方向へ移動する際に第2基準値を通過したことを検知するものであることを特徴とする音高抽出装置。
  14. 請求項6に記載の音高抽出プログラムにおいて、
    前記入力波形のゼロクロスの検知は、ヒステリシス特性を有し、入力波形の正から負へのゼロクロスの検知は入力波形の値が正から負への方向へ移動する際に第1基準値を通過したことを検知するものであり、入力波形の負から正へのゼロクロスの検知は入力波形の値が負から正への方向へ移動する際に第2基準値を通過したことを検知するものであることを特徴とする音高抽出プログラム。
JP2004124111A 2003-04-22 2004-04-20 音高抽出装置およびプログラム Expired - Fee Related JP4210934B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004124111A JP4210934B2 (ja) 2003-04-22 2004-04-20 音高抽出装置およびプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003116656 2003-04-22
JP2003366166 2003-10-27
JP2004124111A JP4210934B2 (ja) 2003-04-22 2004-04-20 音高抽出装置およびプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008228617A Division JP4840612B2 (ja) 2003-04-22 2008-09-05 音高補正装置およびプログラム

Publications (3)

Publication Number Publication Date
JP2005157257A true JP2005157257A (ja) 2005-06-16
JP2005157257A5 JP2005157257A5 (ja) 2008-07-10
JP4210934B2 JP4210934B2 (ja) 2009-01-21

Family

ID=34743390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004124111A Expired - Fee Related JP4210934B2 (ja) 2003-04-22 2004-04-20 音高抽出装置およびプログラム

Country Status (1)

Country Link
JP (1) JP4210934B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009080429A (ja) * 2007-09-27 2009-04-16 Brother Ind Ltd 採点機能を有するカラオケ装置
WO2015166981A1 (ja) * 2014-04-30 2015-11-05 ヤマハ株式会社 ピッチ情報生成装置、ピッチ情報生成方法、プログラム、及びコンピュータ読み取り可能な記録媒体
CN111583894A (zh) * 2020-04-29 2020-08-25 长沙市回音科技有限公司 一种实时修正音色的方法、装置、终端设备及计算机存储介质
CN113744760A (zh) * 2020-05-28 2021-12-03 小叶子(北京)科技有限公司 一种音高识别方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56130800A (en) * 1980-03-17 1981-10-13 Sanyo Electric Co Pitch extractor
JPS60262197A (ja) * 1984-06-08 1985-12-25 シャープ株式会社 周期的信号の基本周波数および位相検出回路
JPS6144330A (ja) * 1984-08-08 1986-03-04 Seiko Instr & Electronics Ltd 基本周波数抽出回路
JPH05216468A (ja) * 1992-10-14 1993-08-27 Casio Comput Co Ltd 電子楽器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56130800A (en) * 1980-03-17 1981-10-13 Sanyo Electric Co Pitch extractor
JPS60262197A (ja) * 1984-06-08 1985-12-25 シャープ株式会社 周期的信号の基本周波数および位相検出回路
JPS6144330A (ja) * 1984-08-08 1986-03-04 Seiko Instr & Electronics Ltd 基本周波数抽出回路
JPH05216468A (ja) * 1992-10-14 1993-08-27 Casio Comput Co Ltd 電子楽器

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009080429A (ja) * 2007-09-27 2009-04-16 Brother Ind Ltd 採点機能を有するカラオケ装置
WO2015166981A1 (ja) * 2014-04-30 2015-11-05 ヤマハ株式会社 ピッチ情報生成装置、ピッチ情報生成方法、プログラム、及びコンピュータ読み取り可能な記録媒体
JP2015210480A (ja) * 2014-04-30 2015-11-24 ヤマハ株式会社 ピッチ情報生成装置、ピッチ情報生成方法、及びプログラム
US10242697B2 (en) 2014-04-30 2019-03-26 Yamaha Corporation Pitch information generation device, pitch information generation method, and computer-readable recording medium therefor
CN111583894A (zh) * 2020-04-29 2020-08-25 长沙市回音科技有限公司 一种实时修正音色的方法、装置、终端设备及计算机存储介质
CN111583894B (zh) * 2020-04-29 2023-08-29 长沙市回音科技有限公司 一种实时修正音色的方法、装置、终端设备及计算机存储介质
CN113744760A (zh) * 2020-05-28 2021-12-03 小叶子(北京)科技有限公司 一种音高识别方法、装置、电子设备及存储介质
CN113744760B (zh) * 2020-05-28 2024-04-30 小叶子(北京)科技有限公司 一种音高识别方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP4210934B2 (ja) 2009-01-21

Similar Documents

Publication Publication Date Title
JP4840612B2 (ja) 音高補正装置およびプログラム
JP4672613B2 (ja) テンポ検出装置及びテンポ検出用コンピュータプログラム
KR20100057307A (ko) 노래점수 평가방법 및 이를 이용한 가라오케 장치
US20080115656A1 (en) Tempo detection apparatus, chord-name detection apparatus, and programs therefor
CN103903628B (zh) 基于音频输入的动态调适音调校正
US10497348B2 (en) Evaluation device and evaluation method
US8802956B2 (en) Automatic accompaniment apparatus for electronic keyboard musical instrument and fractional chord determination apparatus used in the same
JP2010025972A (ja) コード名検出装置及びコード名検出用プログラム
JP4210934B2 (ja) 音高抽出装置およびプログラム
JP3669129B2 (ja) 音信号分析装置及び方法
JP4525591B2 (ja) 演奏評価装置、及びプログラム
JP4134961B2 (ja) 音信号分析装置及び方法
JP6583320B2 (ja) 自動伴奏装置、自動伴奏プログラムおよび伴奏データ生成方法
JP2012098480A (ja) コード検出装置及びプログラム
CN115331682A (zh) 修正音频的音高的方法和装置
JP2001067068A (ja) 音楽パートの識別方法
JP5585320B2 (ja) 歌唱音声評価装置
JP3329635B2 (ja) 効果装置
JP6604307B2 (ja) コード検出装置、コード検出プログラムおよびコード検出方法
CN100359559C (zh) 自动音源相似度比对方法及装置
JP2005234304A (ja) 演奏音判定装置および演奏音判定プログラム
KR100612927B1 (ko) 음정의 정확도 검출 기능을 가지는 노래 연습기 및 그 방법
JP2005107335A (ja) カラオケ装置
JP3888372B2 (ja) 音信号分析装置及び方法
JP6175034B2 (ja) 歌唱評価装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080905

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: 20081002

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: 20081015

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

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

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: 20111107

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131107

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees