(57)【特許請求の範囲】
【請求項１】
入力信号のピッチ情報を検出して第１のピッチ情報を出力するピッチ検出手段と、
前記第１のピッチ情報に対してフィルタ処理を行い第２のピッチ情報を出力するフィルタ処理手段と、
前記第１のピッチ情報を用いて前記入力信号のうちピッチ変換の処理対象となる区間を設定し、該設定された区間の入力信号のピッチを、前記第２のピッチ情報が示すピッチに変換した加工信号を生成する加工信号生成手段と、
前記入力信号と前記加工信号とを混合して出力する混合手段とを設けたことを特徴とする音響信号処理装置。
【請求項２】
請求項１記載の音響信号処理装置であって、
前記加工信号生成手段に、前記入力信号のピッチ情報又は前記フィルタ処理手段によるフィルタ処理後のピッチ情報が示すピッチの値を、時間をずらして前記加工信号の生成に反映させるようにしたことを特徴とする音響信号処理装置。
【請求項３】
コンピュータを、
入力信号のピッチ情報を検出して第１のピッチ情報を出力するピッチ検出手段と、
前記第１のピッチ情報に対してフィルタ処理を行い第２のピッチ情報を出力するフィルタ処理手段と、
前記第１のピッチ情報を用いて前記入力信号のうちピッチ変換の処理対象となる区間を設定し、該設定された区間の入力信号のピッチを、前記第２のピッチ情報が示すピッチに変換した加工信号を生成する加工信号生成手段と、
前記入力信号と前記加工信号とを混合して出力する混合手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入力信号と、入力信号に対して処理を施して得た信号とを混合して出力するエフェクト機能を有する音響信号処理装置及び、コンピュータをこのような音響信号処理装置として機能させるためのプログラムに関する。
【背景技術】
【０００２】
従来から、入力信号と、入力信号に対して処理を施して得たボイス信号と呼ばれる信号とを混合して出力する、ダブリングエフェクトと呼ばれるエフェクトを付与するエフェクタが知られている。
このようなエフェクタにおいて、ボイス信号は、ディレイを用いて入力信号を遅延させて生成したり、入力信号のピッチを単に一定量ずらすピッチシフトを行ったりして生成したりすることが行われていた。また、出力信号は、入力信号とボイス信号を重ねたり、これらの各信号をパンで左右に定位させたりしたものである。
【０００３】
このようなエフェクタについては、例えば以下の特許文献１乃至５に記載されている。
【特許文献１】特許第３１８３１１７号公報
【特許文献２】米国特許第５３０１２５９号明細書
【特許文献３】米国特許第５２３１６７１号明細書
【特許文献４】米国特許第５５６７９０１号明細書
【特許文献５】米国特許第６０４６３９５号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、図１３及び図１４に、従来のエフェクタにおける入力信号（破線）とボイス信号（実線）のピッチの時間変化を示す。図１３はディレイを用いた場合の例、図１４はピッチシフトを行った場合の例である。
これらの図からもわかるように、ディレイを用いるだけでは、ピッチの変化の仕方が入力信号とボイス信号で全く同じである。そしてこのため、エフェクトの出力信号が単調に聞こえる傾向があるという問題があった。また、ピッチシフトを行った場合でも、音高がいくら違っていてもピッチの変化の仕方が一定であり、同様な問題があった。
この発明は、このような問題を解決し、変化に富んだエフェクトを、簡単な仕組みで実現できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
上記の目的を達成するため、この発明の音響信号処理装置は、入力信号のピッチ情報を検出して第１のピッチ情報を出力するピッチ検出手段と、上記第１のピッチ情報に対してフィルタ処理を行い第２のピッチ情報を出力するフィルタ処理手段と、上記第１のピッチ情報を用いて上記入力信号のうちピッチ変換の処理対象となる区間を設定し、その設定された区間の入力信号のピッチを、上記第２のピッチ情報が示すピッチに変換した加工信号を生成する加工信号生成手段と、上記入力信号と上記加工信号とを混合して出力する混合手段とを設けたものである。
このような音響信号処理装置において、上記加工信号生成手段に、上記入力信号のピッチ情報又は上記フィルタ処理手段によるフィルタ処理後のピッチ情報が示すピッチの値を、時間をずらして上記加工信号の生成に反映させるようにするとよい。
【０００６】
また、この発明のプログラムは、コンピュータを、入力信号のピッチ情報を検出して第１のピッチ情報を出力するピッチ検出手段と、上記第１のピッチ情報に対してフィルタ処理を行い第２のピッチ情報を出力するフィルタ処理手段と、上記第１のピッチ情報を用いて上記入力信号のうちピッチ変換の処理対象となる区間を設定し、その設定された区間の入力信号のピッチを、上記第２のピッチ情報が示すピッチに変換した加工信号を生成する加工信号生成手段と、上記入力信号と上記加工信号とを混合して出力する混合手段として機能させるためのプログラムである。
【発明の効果】
【０００７】
以上のようなこの発明の音響信号処理装置によれば、変化に富んだエフェクトを、簡単な仕組みで実現することができる。
また、この発明のプログラムによれば、コンピュータを音響信号処理装置として機能させ、同様な効果を得ることができる。
【発明を実施するための最良の形態】
【０００８】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
まず、図１を用いて、この発明の音響信号処理装置の実施形態である電子楽器の構成について説明する。図１はその電子楽器の構成を示すブロック図である。
図１に示すように、この電子楽器１０は、ＣＰＵ１１，ＲＯＭ１２，ＲＡＭ１３，検出回路１４，表示回路１５，オーディオ信号インタフェース（Ｉ／Ｆ）１６，通信Ｉ／Ｆ１７，音源部１８，信号処理部１９を備え、これらがシステムバス２０によって接続されている。そして、検出回路１４には操作子２１が、表示回路１５には表示器２２が、信号処理部１９にはサウンドシステム２３が接続されている。
【０００９】
そして、ＣＰＵ１１は、電子楽器１０を統括制御する制御部であり、ＲＯＭ１２に記憶された所要の制御プログラムを実行することにより、検出回路１４を介した操作子２１の操作内容検出、表示回路１５を介した表示器２２の表示制御、オーディオ信号Ｉ／Ｆ１６を介したオーディオ信号の入力受付、通信Ｉ／Ｆ１７を介した通信の制御、音源部１８における波形データ生成の制御、信号処理部１９における信号処理の制御等の制御動作を行う。
【００１０】
ＲＯＭ１２は、ＣＰＵ１１が実行する制御プログラムや、変更する必要のないデータ等を記憶する記憶手段である。このＲＯＭ１２をフラッシュメモリ等の書き換え可能な不揮発性記憶手段によって構成し、これらのデータを更新できるようにすることも考えられる。
ＲＡＭ１３は、ＣＰＵ１１のワークメモリとして使用したり、一時的に使用するパラメータの値等を記憶したりする記憶手段である。
【００１１】
検出回路１４は、操作子２１に対してなされた操作内容を検出してその内容に従った信号をＣＰＵ１１に伝達するための回路である。また、操作子２１は、キー、ボタン、ダイヤル、スライダ等によって構成され、電子楽器１０に対するユーザからの操作を受け付けるための操作手段である。なお、タッチパネルをＬＣＤに積層する等して表示器２２と操作子２１とを一体に形成することもできる。また、電子楽器１０の種類に応じて、鍵盤、弦、パッド、ペダル、ブレスコントローラ等、演奏操作を受け付けるための操作子も含む。
【００１２】
表示回路１５は、ＣＰＵ１１からの指示に従って表示器２２における表示を制御する回路である。また、表示器２２は、液晶ディスプレイ（ＬＣＤ）や発光ダイオード（ＬＥＤ）ランプ等によって構成され、電子楽器１０の動作状態や設定内容あるいはユーザへのメッセージ、ユーザからの指示を受け付けるためのグラフィカル・ユーザ・インタフェース（ＧＵＩ）等を表示するための表示手段である。
【００１３】
オーディオ信号Ｉ／Ｆ１６は、マイクや他の音響機器等を接続し、オーディオ信号の入力を受け付けるためのインタフェースである。そして、ここに入力されたオーディオ信号は、信号処理部１９における信号処理に供するようにしている。このとき、ＲＡＭ１３等により信号をバッファできるようにしてもよい。また、アナログ信号の入力を受け付ける場合にはＡ／Ｄ変換を行ってデジタル信号に変換するようにしている。
【００１４】
通信Ｉ／Ｆ１７は、ＬＡＮ（ローカルエリアネットワーク）のようなネットワークに接続する等して、ＰＣ（パーソナルコンピュータ）等の外部装置と通信するためのインタフェースである。そして、例えばイーサネット（登録商標）規格のインタフェースを用いて構成することができる。
また、通信Ｉ／Ｆ１７として、他の電子楽器、音源装置等、ＭＩＤＩデータを取り扱う外部装置との間でＭＩＤＩデータの送受信を行うためのインタフェースを設けてもよい。このようなインタフェースは、例えばＵＳＢ規格や、ＩＥＥＥ１３９４（Institute of Electrical and Electronic Engineers 1394）規格、あるいはＲＳ２３２Ｃ（Recommended Standard 232 version C）規格等に準拠したインタフェースによって構成することができる。ＭＩＤＩデータとそれ以外のデータを、共通のインタフェースを介して送受信できるようにすることも考えられる。
【００１５】
音源部１８は、演奏操作子の操作に従ってＣＰＵ１１が生成したり、通信Ｉ／Ｆ１７を介して外部装置から受信したりしたＭＩＤＩ形式の演奏データを基に、複数の発音チャンネルでデジタル音響信号である波形データを生成する音源手段である。そして、生成した波形データはスピーカ等によるサウンドシステム２３に入力して発音を行わせたり、信号処理部１９に入力して信号処理に供したりする。
【００１６】
信号処理部１９は、エフェクタやミキサ等として機能し、音源部１８によって生成されたりオーディオ信号Ｉ／Ｆ１６を介して入力されたりした波形データに対し、ＣＰＵ１１により設定される処理パラメータに従ったエフェクト付与やミキシング等の信号処理を施す信号処理手段である。また、処理後の信号は、サウンドシステム２３に入力し、その信号に基づく発音を行わせるようにしている。
これらの音源部１８や信号処理部１９は、ソフトウェアによって実現してもハードウェアによって実現してもよい。
【００１７】
ところで、上述の電子楽器１０は、信号処理部１９に、入力信号に対してダブリングのエフェクトを付与するダブリングエフェクタを備えている。なおここでは、ダブリングとは、元の音に、その音を加工した音を重ね、音に厚みを出す処理を指すものとする。そして、このようなダブリング自体は、ダブルトラック録音やＡＤＴ（Artificial Double Tracking）を模した効果として広く利用されており、ボーカルだけでなくエレキギター等の楽器音に使われることも多い。
【００１８】
また、上記の「加工」としては例えば、ディレイ、パンニング、ピッチシフト（ここでは、入力信号のピッチによらず一定量だけピッチを変化させるものをいう）、あるいはこれらにモジュレーションやデチューンを組み合わせた処理が使用されていた。
しかしここでは、上記の「加工」として、入力信号のピッチを、その入力信号のピッチ情報をフィルタ処理して得たピッチに変換するピッチ変換処理を行うようにしている。この点が、この実施形態の特徴である。なおここでは、ピッチ変換に加え、入力信号と、加工後の加工信号であるボイス信号とに対して、それぞれパンニング処理も行うようにしている。
【００１９】
次に、図２に、信号処理部１９に備える上記のようなダブリングエフェクタの機能構成を示す。
図２に示すように、ダブリングエフェクタ３０は、ボイス信号生成部４０，遅延処理部５０，ミックス部６０を備えている。
このうち、ボイス信号生成部４０は、上記の「加工」を行ってボイス信号を生成する加工信号生成手段であり、ピッチ検出部４１，フィルタ処理部４２，ピッチ変換部４３を備えている。
【００２０】
そして、ピッチ検出部４１は、入力信号のピッチを検出してピッチ情報を取得する機能を有するピッチ検出手段である。ピッチ情報取得のためのピッチ検出処理の詳細については、後述する。
フィルタ処理部４２は、ピッチ検出部４１で取得したピッチ情報に対してフィルタ処理を行うフィルタ処理手段である。このフィルタ処理としては、例えば図３に示すような遅延部７１〜７４、減衰部７５〜７９及び加算部８０を備えたローパスフィルタ（ＬＰＦ）が考えられるが、ハイパスフィルタ（ＨＰＦ）やバンドエリミネートフィルタ（ＢＥＦ）を始め、他にも種々のフィルタを使用することが考えられる。複数のフィルタを組み合わせてもよい。また、フィルタ処理の前や後ろに遅延を挿入し、ピッチ情報をピッチ変換部４３でのピッチ変換処理に反映させるタイミングをずらすようにしてもよい。
【００２１】
ピッチ変換部４３は、ピッチ検出部４１で取得したピッチ情報と、フィルタ処理部４２による処理後のピッチ情報とを利用し、入力信号に対してピッチ変換処理を行い、そのピッチをフィルタ処理部４２による処理後のピッチ情報が示すピッチに変換してボイス信号を生成する機能を有するピッチ変換手段である。このとき、なるべく音色を変えず、ピッチのみ変換するような処理を行うことが好ましい。この実施形態で採用しているピッチ変換処理については後に詳述する。また、ピッチ変換部４３は、生成したボイス信号をミックス部６０に供給する。
【００２２】
ここで、図４に、フィルタ処理部４２でのフィルタ処理にＬＰＦを使用した場合の入力信号とボイス信号のピッチ変化をそれぞれ破線と実線で示す、図１３及び図１４と対応する図を示す。この図から分かるように、ピッチ情報をＬＰＦに通すことにより、入力信号とボイス信号とで、ピッチの変化の仕方を変えることができる。より具体的には、（ａ）の例ではボイス信号のピッチの立ち上がりを遅くし、（ｂ）の例ではビブラートの大きさを抑制することができる。
【００２３】
図２の説明に戻ると、遅延処理部５０は、バッファメモリ等によって構成され、ミックス部６０に入力する入力信号を、ボイス信号生成部４０でのボイス信号生成処理に必要な時間だけ遅延する遅延手段である。この遅延の長さは、例えば２０ミリ秒（ｍｓ）程度とすればよい。
【００２４】
ミックス部６０は、入力信号とボイス信号とを混合して出力する混合手段であり、ゲイン調整部６１，６４，パン調整部６２，６５，加算部６３，６６を備えている。そして、遅延処理部５０によって遅延された入力信号と、ボイス信号生成部４０によって生成されたボイス信号とに対してそれぞれゲイン調整部６１，６４でゲイン調整を行った上でパン調整部６２，６５によりＬ側信号とＲ側信号に振り分け、これらを加算部６３，６６で加算して、ＬとＲのステレオ信号として出力する。
なお、ゲイン調整やパン調整は必須ではなく、単に入力信号とボイス信号とを加算して出力するようにしてもよい。
【００２５】
電子楽器１０においては、以上のようなダブリングエフェクタ３０を設けることにより、入力信号にピッチ変換処理を施し、入力信号のピッチ情報をフィルタ処理して得たピッチの加工信号を生成し、入力信号と混合して出力できるようにし、変化に富んだエフェクトを、簡単な仕組みで実現することができるようにしている。
【００２６】
信号処理部１９に、他のエフェクタやミキサの機能を設けてもよいことはもちろんであり、ダブリングエフェクタ３０の出力を、それらのエフェクタに入力してさらにエフェクトを付与したり、ミキサに入力してミキシング処理に供したりすることもできる。逆に、他のエフェクタやミキサによる処理後の信号をダブリングエフェクタ３０に入力するようにすることも考えられる。
また、信号処理部１９が複数のチャンネルで信号処理を行う場合に、エフェクタを各チャンネル毎に設けてそれぞれ独立に動作させられるようにしてよいことは、もちろんである。
【００２７】
次に、図５を用いて、ピッチ検出部４１におけるピッチ検出処理について説明する。
ピッチ検出部４１においては、ピッチの検出は、基本的には、入力信号波形１０１と、その入力信号波形１０１の＋側及び−側のエンベロープに所定値（又は所定の関数値）を乗算して得た＋側エンベロープ１０２及び−側エンベロープ１０３とが交差する（サンプル値の大小関係が入れ替わる）タイミングを検出することにより行っている。
【００２８】
より具体的には、検出フラグＩＲＱを用意し、入力信号波形１０１が＋側エンベロープ１０２と交差した時点Ｔ１，Ｔ３でこれを０から１に立ち上げ、入力信号波形１０１が−側エンベロープ１０３と交差した時点Ｔ２，Ｔ４で１から０に立ち下げるようにし、ＩＲＱフラグの立ち上がりから次の立ち上がりまでの時間を、サンプル数をカウントすることにより計測するようにしている。この計測した時間（サンプル数）を検出したピッチとする。
【００２９】
なお、Ｔ１の直後にも入力信号波形１０１が＋側エンベロープ１０２と交差するが、この時点ではＩＲＱは既に１であるので、立ち上がりは起こらない。そして、Ｔ２にＩＲＱフラグが立ち下がった後で入力信号波形１０１が＋側エンベロープ１０２と交差するＴ３で、次の立ち上がりが起こる。同様なことが、−側エンベロープ１０３についても言える。
このようにエンベロープを利用するのは、高調波成分を多く含み、１周期内で何度もゼロクロスを繰り返すような信号や、波形の形が崩れていくつものピークを持つような信号等についてのピッチ検出間違いを防ぐためで、ゼロクロスのみの検出に比べるとはるかに正確なピッチが得られる。
【００３０】
またここでは、処理対象のオーディオ信号のサンプリング周波数は４４．１キロヘルツ（ｋＨｚ）とし、この場合サンプリング周期は約０．０２ｍｓである。そして、サンプリング周期より細かい精度でピッチを求めようとする場合には、補間を行って、交差のタイミングをより細かく求めるようにすることも考えられる。
また、図５に示した例では、＋側及び−側のエンベロープ１０２，１０３は、時間の経過に応じて減衰するようなものとし、前者はＩＲＱフラグの立ち上がり、後者は立ち下がりをトリガに減衰をリセットするようなものとしている。
【００３１】
そして、ピッチ検出部４１は、以上のような動作により検出した入力信号のピッチを、順にバッファに記録していき、所定タイミング毎、ここでは６ｍｓ毎に、バッファに記録したピッチのうち所定個数の平均値を、その時点の入力信号波形１０１のピッチを示すピッチ情報として出力するようにしている。なお、ここで用いるバッファは、容量が一杯になった場合に古いデータから消去するリングバッファがよい。また、上記の所定個数は例えば１６個とすればよく、バッファに記録した数がこれに満たない場合には、既に記録されている分のみの平均値とすればよい。
【００３２】
また、上記の検出を行う場合に、ノイズを除去して精度を上げるため、また、ボイス信号の生成を行うべき部分と行うべきでない部分を区別するため、検出条件や検出結果について、以下のような評価を行うようにするとよい。
【００３３】
まず、ピッチ検出は、入力信号のレベルが所定値以上の場合にのみ行うようにするとよい。あまりにレベルが低い信号は、無音の信号に混入したノイズと考えられるためである。
また、入力信号波形１０１がゼロレベルと交差するゼロクロスの回数をカウントし、時間当たりのゼロクロス回数が所定値以上あった場合に、ピッチ検出を行わないようにするとよい。ここでは、この閾値をここでは６ｍｓ当たり３０回以上としている。このようになる部分は、入力信号は、人の声のうち子音に該当するものであり、このような部分ではボイス信号の加算を行わない方が好ましい出力音が得られることが、経験的にわかっているので、ピッチ検出をやめ、それに連動させてボイス信号の生成も停止させるためである。
【００３４】
また、以上の基準を満たす入力信号に対してピッチの検出を開始した場合でも、連続して検出したピッチのばらつきが、所定範囲内、例えば１２．５％以内であった場合に初めて連続検出モードに移行し、これが満たされるまでは検出したピッチの値をピッチバッファに記録しないようにするとよい。誤差が大きい場合には、検出結果を信用できないためである。
【００３５】
さらに、ＩＲＱフラグの立ち上がりから立ち下がりまでの期間の長さをＰＣＮＴ１、立ち下がりから立ち上がりまでの期間の長さをＰＣＴＮ０としてそれぞれ計測し、以下の（ａ）〜（ｃ）の値を求めてバッファに記録し、最新の検出値を１つ前にピッチバッファに記録した値と比較した場合の誤差が所定範囲内、例えば１２．５％以内であった場合にのみ、検出した値を新たにバッファに記録するようにしてもよい。（ａ）〜（ｃ）のうち任意の個数について同時に誤差が所定範囲内であった場合に記録を行うようにしてもよい。
（ａ）ＰＣＮＴ１＋ＰＣＴＮ０（ＩＲＱフラグの立ち上がりから次の立ち上がりまで）
（ｂ）ＰＣＮＴ０＋ＰＣＴＮ１（ＩＲＱフラグの立ち下がりから次の立ち下がりまで）
（ｃ）２周期分のＰＣＮＴ１＋ＰＣＮＴ０
（ａ）は図５に示したピッチの検出値そのものである。
【００３６】
また、上記（ａ）〜（ｃ）に代えてまたはこれに加えて、（ｄ）として２周期分のＰＣＮＴ１＋ＰＣＮＴ０を検出して（ａ）の２倍の値と比較し、周期ミスの確認を行うようにしてもよい。
さらに、上記の（ａ）〜（ｄ）で誤差が所定範囲内でなかった場合に、検出ミスとしてその回数をカウントし、これが所定回数以上となった場合に検出を中止して初めからやり直すようにしてもよい。
例えば、ミスが３回以下の場合には単にバッファへの記録を行わずにピッチ検出を続行し、ミスが４回から７回の場合には検出した値をバッファに記録し、比較対象の値を更新してピッチ検出を続行し、ミスが８回以上の場合にはそれまでバッファに記録したデータを全て破棄して初めから検出をやり直す等である。
【００３７】
次に、図６及び図７を用いて、ピッチ変換部４３におけるピッチ変換処理について説明する。
ピッチ変換部４３においては、ピッチ変換処理として、入力信号１１１を窓関数を用いて切り出し、これを要素として並べ、その並べる周期によって変換後の波形のピッチを決定する処理を行うようにしている。なおここでは、図６及び図７に示すように、入力信号１１１の切り出しは、ＯＵＴ０とＯＵＴ１の２系統でタイミングをずらして行い、これらを加算したものをピッチ変換後のボイス信号として出力するようにしている。そして、このような処理によれば、入力信号１１１のフォルマント情報を保持したままピッチ変換を行うことができる。
この手法は、Ｌｅｎｔ法と呼ばれ、以下の論文に記載された方法を応用したものである。
Keith Lent (1989) “An efficient method for pitch shifting digitally sampled sounds.” Computer Music Journal Vol. 13 No.4. pp.65-71
【００３８】
図６に示すのが、ピッチダウン（周波数減少）の場合の処理例、図７に示すのが、ピッチアップ（周波数増加）の場合の処理例である。
また、これらの図において、ＰＩは、ピッチ検出部４１が検出結果として出力する入力信号１１１のピッチの値、ＰＶは、フィルタ処理部４２が出力するボイス信号のピッチの値である。また、ＳＢ及びＲＢは、それぞれ基準区間及び出力区間の長さを示すが、これらの符号は区間自体を表わす符号としても用いる。また、上記の各値は、信号の内容によって変化するものであるので、異なる時点の値には「′」や「″」をつけて区別している。
【００３９】
そして、ピッチ変換処理においてはまず、ボイス信号の出力とは関係なく、入力信号１１１をバッファに書き込むと共に、その入力信号１１１についてピッチＰＩの２倍の期間を持つ基準区間ＳＢを順に設定していくようにしている。そして、出力のための窓関数による切り出しを行う際には、この基準区間を単位に行うようにしている。
基準区間の長さは、ピッチＰＩが変われば当然変わるが、上述のようにピッチ検出部４１はピッチ情報の出力を６ｍｓ毎に行うようにしているので、次の出力が行われるまでは、ピッチＰＩの値は変化しないことになる。
なお、上記のバッファは、遅延処理部５０のバッファと共通化してもよい。
【００４０】
一方、出力信号の生成としては、まずＯＵＴ０系統の信号生成を開始するが、この場合、ピッチＰＶの２倍の期間を持つ出力区間ＲＢの設定を行う。そして、その出力区間ＲＢにおいては、その出力区間ＲＢの開始時点における最新の基準区間ＳＢ内の入力信号１１２を、その先頭から順にバッファから読み出して出力する。このとき、読み出した信号には窓関数１１３を乗算するが、ここでは、この窓関数として、長さが読み出しを行う基準区間ＳＢと等しいハニング窓を用いている。また、入力信号１１１のバッファへの書き込みと、出力のための読み出しは、並行して行われることになる。
【００４１】
また、ピッチダウンの場合、ＲＢ＞ＳＢであるので、該当する基準区間ＳＢの入力信号１１２を全て読み出した後も、出力区間ＲＢは続くことになるが、この部分については、「０」のデータを出力するようにしている。
そして、出力区間ＲＢが終了すると、その時点でのボイス信号のピッチＰＶ″に従って新たな出力区間ＲＢ″を設定し、その開始時点の最新の基準区間ＳＢ′の入力信号の読み出しを行い、以後この処理を繰り返す。
【００４２】
ＯＵＴ１系統の信号生成についても、開始時点をＰＶだけずらす点以外は、ＯＵＴ０系統の場合の処理と同じものとしている。ただし、読み出しを行う基準区間や、出力区間の長さについては、各出力区間の設定時の情報に従って定めるので、ＯＵＴ０系統の出力信号と全く同じ信号が生成されるとは限らない。
そして、上述のように、ＯＵＴ０系統とＯＵＴ１系統の出力を加算して、ボイス信号として出力する。このような処理により、入力信号１１１と同様なフォルマントを有するピッチＰｖのボイス信号を出力することができる。
【００４３】
一方、ピッチアップの場合には、図７に示す通りＲＢ＜ＳＢであるので、基準区間ＳＢの入力信号１１２を全て読み出す前に出力区間ＲＢが終了するが、この場合には、出力区間ＲＢの終了時に読み出しを中止するようにしている。図７に仮想線で示した波形は、その後の読み出されない部分である。そして、これに対応して、窓関数１１４として、幅がＲＢと等しいハニング窓を用いている。
【００４４】
しかし、出力区間ＲＢの終了時に、次の出力区間ＲＢ″の設定を行い、その開始時点の最新の基準区間ＳＢの入力信号の読み出しを開始する点は、図６の場合と同様である。ただし、図７の例のように、出力区間ＲＢ″の設定時に入力信号１１１において基準区間ＳＢが終了していない場合、同じ基準区間ＳＢの入力信号１１２を、出力区間ＲＢ″でも再度読み出すことになる。
ＯＵＴ１系統の信号生成について開始時点をＰｖだけずらす点も、図６の場合と同様である。
【００４５】
このような処理により、ピッチアップの場合にも、入力信号１１１と同様なフォルマントを有するピッチＰｖのボイス信号を出力することができる。
なお、もしボイス信号のピッチを入力信号と等しくするのであれば、どちらの処理も適用可能である。
【００４６】
また、上述したピッチ変換処理において、入力信号１１１のバッファへの書き込みと読み出しの速度（時間当たりの処理サンプル数）は等しくするとよいが、読み出し速度を異ならせることにより、入力音声の声質を、男性から女性又はその逆に変換させるジェンダー効果を得ることも考えられる。
さらに、ピッチがサンプル数の整数倍にならない場合等、サンプルとサンプルの間のタイミングにおける信号値が必要になった場合には、適宜補間処理を行うようにするとよい。
【００４７】
次に、図８乃至図１２に、ＣＰＵ１１が実行する、以上説明してきたピッチ検出及びピッチ変換に関する処理のフローチャートを示す。これらの処理は、ここではＣＰＵ１１が信号処理部１９から必要な情報を取得して行うものとする。そしてこの場合、ＣＰＵ１１は、ダブリングエフェクタ３０の機能を有効にする旨の設定がなされると、図８乃至図１２のフローチャートに示す処理を、それぞれ独立に開始する。ただし、これらの処理は、信号処理部１９側で行うようにしてもよい。
【００４８】
まず、図８に、ピッチ検出処理のフローチャートを示す。
この処理においては、まず、ダブリング処理対象の入力信号を１サンプル分入力信号バッファ及び出力信号バッファへ記録する（Ｓ１１）。ここで、入力信号バッファは、ピッチ変換部４３におけるボイス信号の生成に用いるバッファであり、１００ｍｓ分程度のデータを記憶する容量を有するリングバッファとすればよい。また、出力信号バッファは、遅延処理部５０による遅延処理に用いるバッファであり、１秒分程度のデータを記憶する容量を有するリングバッファとすればよい。
【００４９】
その後、入力信号のゼロクロスをカウントする（Ｓ１２）と共に、サンプルカウンタをカウントアップする（Ｓ１３）。
そしてその後、ピッチ検出中であれば（Ｓ１４）、入力信号が周期の開始位置か否かの判定を行う（Ｓ１５）。ピッチ検出中か否かは、次の図９に示す処理で設定するピッチフラグの内容により判断することができる。また、ステップＳ１５の判定は、図５を用いて説明したように、入力信号とエンベロープとの交差の検出に応じてＩＲＱフラグを変化させ、その立ち上がりの有無を検出することにより行うことができる。
【００５０】
そして、その判定の結果周期の開始位置であれば（Ｓ１６）、サンプルカウンタの現在値をピッチデータとしてピッチバッファに記録する（Ｓ１７）と共に、サンプルカウンタをリセットする（Ｓ１８）。その後、入力信号の次のサンプルタイミングまで待機し（Ｓ１９）、次のサンプルタイミングでステップＳ１１に戻って処理を繰り返す。
一方、ステップＳ１６で周期の開始位置でなければ、そのままステップＳ１９に進んで次のサンプルタイミングまで待機する。また、ステップＳ１４でピッチ検出中でなければ、サンプルカウンタをリセットする（Ｓ１８）と共に、次のサンプルタイミングまで待機する（Ｓ１９）。
【００５１】
なお、以上の図８に示した処理において、ステップＳ１７でピッチデータの記録を行う際、検出条件や検出結果について種々の検討を行うとよいことは、図５の説明で述べた通りであるが、説明を簡単にするため、ここではこのような検討に係る処理は示していない。また、ピッチの検出を行うか否かについては、次の図９に示す処理により、入力信号のゼロクロス数に基づいて判断するようにしている。
【００５２】
次に、図９に、ピッチ検出制御処理のフローチャートを示す。
この処理においては、まず、図８のステップＳ１２でカウントしているゼロクロスの数が所定値（ここでは上述のように３０回）以下である場合（Ｓ２１）、ピッチフラグを「１」に設定し、ピッチ検出実行を示す（Ｓ２２）。その後、ゼロクロス数をリセットし（Ｓ２５）、ステップＳ２１の処理から所定時間（ここでは上述のように６ｍｓ）経過するまで待機し（Ｓ２６）、その後ステップＳ２１に戻って処理を繰り返す。
また、ステップＳ２１でゼロクロス数が所定値以上である場合には、ピッチフラグを「０」に設定し、ピッチ検出停止を示す（Ｓ２３）と共に、ピッチバッファに記録しているピッチデータをクリアして（Ｓ２４）、ステップＳ２５以降の処理に進む。
【００５３】
従って、図９のフローチャートの処理においては、ステップＳ２１の処理を所定時間毎に行い、その間のゼロクロス数が所定値以下の場合にピッチ検出実行を設定し、所定値より大きい場合にはピッチ検出停止を設定することになる。
以上の図８及び図９に示した処理により、ピッチ検出部４１におけるピッチの検出とその制御を行うことができる。ただし、最終的にピッチ検出部４１から検出結果として出力されるピッチの値は、次の図１０の処理により求めた値である。
【００５４】
次に、図１０に、ピッチ設定処理のフローチャートを示す。
この処理においては、まず、ピッチバッファに記録されているピッチデータのうち所定個（例えば１６個）のデータの平均値を求めて入力信号のピッチＰＩの値とする（Ｓ３１）。ここでは、この値がピッチ検出部４１から検出結果として出力されるピッチの値となる。
また、ステップＳ３１で求めたピッチＰＩは、フィルタに入力し、そのフィルタで出力値を演算して（Ｓ３２）、演算した出力値をボイス信号のピッチＰＶとする（Ｓ３３）。これらのステップＳ３２及びＳ３３の処理が、フィルタ処理部４２の機能と対応する処理である。
【００５５】
そしてその後、ステップＳ３１の処理から所定時間（ここでは上述のように６ｍｓ）経過するまで待機し（Ｓ３４）、その後ステップＳ３１に戻って処理を繰り返す。
なお、ここでは、図９に示した処理と、図１０に示した処理では繰り返し周期が同じであるので、これらの処理を同期させて行ってもよい。また、ステップＳ３１で所定個のデータが記録されていなかった場合には、記録されている分だけの平均値をピッチＰＩの値とすればよい。また、全くデータが記録されていない場合には、ピッチＰＩを出力しなくてよい。この場合、ボイス信号のピッチＰＶはクリアし、ステップＳ３２及びＳ３３の処理は行わなくてよい。
以上の図１０に示した処理により、ピッチ変換部４３におけるピッチ変換処理に使用する入力信号及びボイス信号のピッチ情報を生成及び設定することができる。そして、これらのピッチ情報は、上記の所定時間毎に更新されることになる。
【００５６】
次に、図１１に、基準区間設定処理のフローチャートを示す。
この処理においては、まず、基準位置に基準区間が設定されていないか又は基準位置が基準区間の最後尾に達したかのいずれかが満たされたか否か判断する（Ｓ４１）。
そして、満たされていない場合には、入力信号バッファに記録されている入力信号について基準位置を１サンプル分進めて（Ｓ４４）、次のサンプルタイミングまで待機し（Ｓ４５）、その後ステップＳ４１に戻って処理を繰り返す。
【００５７】
一方、ステップＳ４１でいずれかが満たされていた場合、その時点で図１０に示した処理により入力信号のピッチＰＩが設定されていれば（Ｓ４２）、入力信号バッファに記録されている入力信号について、現在の基準位置を開始位置とし、長さＳＢをピッチＰＩの２倍とする次の基準区間を設定して（Ｓ４３）、ステップＳ４４に進み、以下の処理を続ける。ステップＳ４２で設定されていなければ、そのままステップＳ４４に進み、以下の処理を続ける。
以上の図１１に示した処理により、ピッチ変換部４３における処理対象の入力信号に対し、図６及び図７を用いて説明したような基準区間を設定することができる。なお、「基準位置」は、単に基準区間の終了を検出するために利用するものであるので、処理の進行度合いを測れるようなパラメータであれば、どのようなものを用いてもよい。
【００５８】
次に、図１２に、ピッチ変換処理のフローチャートを示す。
この処理においては、まず、出力区間が設定されていないか又は、読出位置を現在の出力区間においてその出力区間が終了するだけ進めたかのいずれかが満たされたか否か判断する（Ｓ５１）。
そして、満たされていない場合には、読出位置が基準区間の最後尾を越えたか否か判断し（Ｓ５５）、越えていない場合には、入力信号バッファから読出位置の１サンプルのデータを読み出し、読出位置に応じた窓関数の値を乗じて出力する（Ｓ５６）。超えていた場合には、０を出力する（Ｓ５７）。そして、どちらの場合も、読出位置を１サンプル分進める（Ｓ５８）。なお、上記の窓関数については、図６及び図７を用いて説明した通りである。
【００５９】
そしてその後、ピッチを検出中（ピッチフラグが「１」）であれば（Ｓ５９）、次のサンプルタイミングまで待機し（Ｓ６０）、その後ステップＳ５１に戻って処理を繰り返す。一方、ピッチを検出中でなければ、設定されている出力区間をクリアして（Ｓ６１）、その後ボイス信号のピッチＰＶが設定されるまで待機し（Ｓ６２）、ピッチＰＶが設定されると、ステップＳ５１に戻って処理を繰り返す。
【００６０】
また、ステップＳ５１でＹＥＳであれば、図１０のステップＳ３３の処理でボイス信号のピッチＰＶが設定されているか否か判断し（Ｓ５２）、設定されていれば、次の出力区間の長さＲＢをピッチＰＶの２倍に設定する（Ｓ５３）と共に、読み出し位置を、処理時点の最新の基準区間の開始位置へ移動して（Ｓ５４）、ステップＳ５５以下の処理に進む。一方、ステップＳ５２で設定されていなければ、そのままステップＳ６１以下の処理に進む。
【００６１】
以上の図１２に示した処理により、ピッチ変換部４３における処理対象の入力信号に基づき、図６及び図７を用いて説明したようなＯＵＴ０系統の出力信号を生成することができる。そして、上述の通り、この出力信号と、ＯＵＴ１系統の出力信号とを加算することによりボイス信号を生成することができる。このＯＵＴ１系統の出力信号の生成処理は、開始時期をピッチＰＶだけずらす点以外は、以上の図１２に示した処理と同様なものであるが、ピッチＰＶの設定がなくなったりピッチの検出が中止されたりした後で出力を再開する際にも開始時期をずらせるようにするため、ステップＳ６２の後に、ピッチＰＶ分の待機処理を追加するとよい。
【００６２】
以上でこの実施形態の説明を終了するが、装置の構成や具体的な処理内容等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、上述した実施形態においては、ピッチ変換処理にＬｅｎｔ法を採用したが、これ以外の方法でピッチ変換を行うようにしてもよい。また、処理対象をアナログの音響信号とし、ピッチ検出処理、フィルタ処理、ピッチ変換処理、ミックス処理等を、アナログ回路によって行うようにしてもよい。
【００６３】
また、この発明が、電子楽器以外の音響信号処理装置に適用できることはもちろんであり、例えば、カラオケ装置、ミキサ、音源装置、ＭＩＤＩシーケンサ、音響信号を処理するソフトウェアを実行可能なＰＣ等、波形を示す音響信号を取り扱う機能を有する装置であれば、任意の装置に適用することが可能である。さらに、この発明を、単体のエフェクタあるいは装置にエフェクタ機能を付与するためのプログラムとして実施することも可能である。
【００６４】
また、この発明のプログラムは、コンピュータにハードウェアを制御させて上述したような音響信号処理装置として機能させるためのプログラムであり、予めＲＯＭやＨＤＤ等に記憶させておくほか、ＣＤ−ＲＯＭあるいはフレキシブルディスク等の不揮発性記録媒体（メモリ）に記録して提供し、そのメモリからこのプログラムをＲＡＭに読み出させてＣＰＵに実行させたり、プログラムを記録した記録媒体を備える外部機器あるいはプログラムをＨＤＤ等の記憶手段に記憶した外部機器からダウンロードして実行させたりしても、同様の効果を得ることができる。
【産業上の利用可能性】
【００６５】
以上の説明から明らかなように、この発明の音響信号処理装置又はプログラムによれば、変化に富んだエフェクトを、簡単な仕組みで実現することができる。
従って、斬新な音を生成可能な音響信号処理装置を提供することができる。
【図面の簡単な説明】
【００６６】
【図１】この発明の音響信号処理装置の実施形態である電子楽器の構成を示すブロック図である。
【図２】図１に示した信号処理部に備えるダブリングエフェクタの機能構成を示す図である。
【図３】図２に示したフィルタ処理部の一例であるＬＰＦの機能構成を示す図である。
【図４】図２に示したフィルタ処理部でのフィルタ処理にＬＰＦを使用した場合の入力信号とボイス信号のピッチ変化の例を示す図である。
【図５】図２に示したピッチ検出部におけるピッチ検出処理について説明するための図である。
【００６７】
【図６】図２に示したピッチ変換部におけるピッチ変換処理について説明するための図である。
【図７】その別の図である。
【図８】図１に示した電子楽器のＣＰＵが実行するピッチ検出処理のフローチャートである。
【図９】同じくピッチ検出制御処理のフローチャートである。
【図１０】同じくピッチ設定処理のフローチャートである。
【図１１】同じく基準区間設定処理のフローチャートである。
【図１２】同じくピッチ変換処理のフローチャートである。
【図１３】従来のエフェクタにおける入力信号とボイス信号のピッチ変化の例を示す図である。
【図１４】その別の例を示す図である。
【符号の説明】
【００６８】
１０…電子楽器、１１…ＣＰＵ，１２…ＲＯＭ、１３…ＲＡＭ、１４…検出回路、１５…表示回路、１６…オーディオ信号Ｉ／Ｆ、１７…通信Ｉ／Ｆ、１８…音源部、１９…信号処理部、２０…システムバス、２１…操作子、２２…表示器、２３…サウンドシステム、３０…ダブリングエフェクタ、４０…ボイス信号生成部、４１…ピッチ検出部、４２…フィルタ処理部、４３…ピッチ変換部、５０…遅延処理部、６０…ミックス部、６１，６４…ゲイン調整部、６２，６５…パン調整部、６３，６６…加算部
【図１】
0004784184.tif 000002
【図２】
0004784184.tif 000003
【図３】
0004784184.tif 000004
【図４】
0004784184.tif 000005
【図５】
0004784184.tif 000006
【図６】
0004784184.tif 000007
【図７】
0004784184.tif 000008
【図８】
0004784184.tif 000009
【図９】
0004784184.tif 000010
【図１０】
0004784184.tif 000011
【図１１】
0004784184.tif 000012
【図１２】
0004784184.tif 000013
【図１３】
0004784184.tif 000014
【図１４】
0004784184.tif 000015