米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 楽器;音響 -> ヤマハ株式会社

発明の名称 音響信号処理装置及びプログラム
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−47215(P2007−47215A)
公開日 平成19年2月22日(2007.2.22)
出願番号 特願2005−228664(P2005−228664)
出願日 平成17年8月5日(2005.8.5)
代理人 【識別番号】100080931
【弁理士】
【氏名又は名称】大澤 敬
発明者 野口 崇 / 北山 徹
要約 課題

解決手段
特許請求の範囲
【請求項1】
入力信号にピッチ変換処理を施して加工信号を生成する加工信号生成手段と、
前記入力信号と前記加工信号とを混合して出力する混合手段と、
前記入力信号と対応する音階音を推定する推定手段とを備え、
前記加工信号生成手段が、前記推定手段が入力信号と対応する音階音を推定できた場合には、前記入力信号のピッチをその推定した音階音のピッチに近づけるように前記ピッチ変換処理を行う手段であることを特徴とする音響信号処理装置。
【請求項2】
請求項1記載の音響信号処理装置であって、
前記推定手段が、その音階音が前記入力信号と対応する音階音であると推定する手段であり、
前記加工信号生成手段が、前記推定手段が入力信号と対応する音階音を推定できた場合のみ前記加工信号の生成を行う手段であることを特徴とする音響信号処理装置。
【請求項3】
入力信号にピッチ変換処理を施して加工信号を生成する加工信号生成手段と、
前記入力信号と前記加工信号とを混合して出力する混合手段と、
前記入力信号のピッチと、ある音階音のピッチとの差が所定誤差範囲内の場合に、その音階音が前記入力信号と対応する音階音であると推定する推定手段とを備え、
前記加工信号生成手段が、前記推定手段が入力信号と対応する音階音を推定できた場合のみ前記加工信号の生成を行う手段であることを特徴とする音響信号処理装置。
【請求項4】
コンピュータを、
入力信号にピッチ変換処理を施して加工信号を生成する加工信号生成手段と、
前記入力信号と前記加工信号とを混合して出力する混合手段と、
前記入力信号と対応する音階音を推定する推定手段として機能させるためのプログラムであって、
前記加工信号生成手段が、前記推定手段が入力信号と対応する音階音を推定できた場合には、前記入力信号のピッチをその推定した音階音のピッチに近づけるように前記ピッチ変換処理を行う手段であることを特徴とするプログラム。
【請求項5】
コンピュータを、
入力信号にピッチ変換処理を施して加工信号を生成する加工信号生成手段と、
前記入力信号と前記加工信号とを混合して出力する混合手段と、
前記入力信号のピッチと、ある音階音のピッチとの差が所定誤差範囲内の場合に、その音階音が前記入力信号と対応する音階音であると推定する推定手段として機能させるためのプログラムであって、
前記加工信号生成手段が、前記推定手段が入力信号と対応する音階音を推定できた場合のみ前記加工信号の生成を行う手段であることを特徴とするプログラム。
発明の詳細な説明
【技術分野】
【0001】
この発明は、入力信号と、入力信号に対して処理を施して得た信号とを混合して出力するエフェクト機能を有する音響信号処理装置及び、コンピュータをこのような音響信号処理装置として機能させるためのプログラムに関する。
【背景技術】
【0002】
従来から、入力信号と、入力信号に対して処理を施して得たボイス信号と呼ばれる信号とを混合して出力する、ダブリングエフェクトと呼ばれるエフェクトを付与するエフェクタが知られている。
このようなエフェクタにおいて、ボイス信号は、ディレイを用いて入力信号を遅延させて生成したり、入力信号のピッチを単に一定量ずらすピッチシフトを行ったりして生成したりすることが行われていた。
また、出力信号は、入力信号とボイス信号を重ねたり、これらの各信号をパンで左右に定位させたりしたものである。
【0003】
このようなエフェクタについては、例えば以下の特許文献1乃至5に記載されている。
【特許文献1】特許第3183117号公報
【特許文献2】米国特許第5301259号明細書
【特許文献3】米国特許第5231671号明細書
【特許文献4】米国特許第5567901号明細書
【特許文献5】米国特許第6046395号明細書
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のエフェクタにおいては、入力信号のピッチに関係なく同じ基準でボイス信号の生成を行うようにしていた。そしてこのため、入力信号の音程が音階音からずれている場合にもそのずれを強調してしまったり、ボイス信号のピッチが音階音のピッチから大きく外れてしまったりして、ダブリングエフェクトをかけると却って不自然な聴感になってしまう場合があるという問題があった。
この発明は、このような問題を解決し、常に自然な聴感の出力信号を得られるエフェクトを実現することを目的とする。
【課題を解決するための手段】
【0005】
上記の目的を達成するため、この発明の音響信号処理装置は、入力信号にピッチ変換処理を施して加工信号を生成する加工信号生成手段と、上記入力信号と上記加工信号とを混合して出力する混合手段と、上記入力信号と対応する音階音を推定する推定手段とを設け、上記加工信号生成手段を、上記推定手段が入力信号と対応する音階音を推定できた場合には、上記入力信号のピッチをその推定した音階音のピッチに近づけるように上記ピッチ変換処理を行う手段としたものである。
【0006】
このような音響信号処理装置において、上記推定手段を、上記入力信号のピッチと、ある音階音のピッチとの差が所定誤差範囲内の場合に、その音階音が上記入力信号と対応する音階音であると推定する手段とし、上記加工信号生成手段を、上記推定手段が入力信号と対応する音階音を推定できた場合のみ上記加工信号の生成を行う手段とするとよい。
【0007】
また、この発明は、入力信号にピッチ変換処理を施して加工信号を生成する加工信号生成手段と、上記入力信号と上記加工信号とを混合して出力する混合手段と、上記入力信号のピッチと、ある音階音のピッチとの差が所定誤差範囲内の場合に、その音階音が上記入力信号と対応する音階音であると推定する推定手段とを設け、上記加工信号生成手段を、上記推定手段が入力信号と対応する音階音を推定できた場合のみ上記加工信号の生成を行う手段とした音響信号処理装置も提供する。
【0008】
また、この発明は、装置の発明として構成し、実施することができるのみならず、方法、コンピュータまたはデジタル信号プロセッサ等のプロセッサのプログラム、そのようなプログラムを記憶した記憶媒体等の形態で実施することもできる。
【発明の効果】
【0009】
以上のようなこの発明の音響信号処理装置によれば、常に自然な聴感の出力信号を得られるエフェクトを実現することができる。
また、この発明のプログラムによれば、コンピュータを音響信号処理装置として機能させ、同様な効果を得ることができる。
【発明を実施するための最良の形態】
【0010】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
〔第1の実施形態:図1乃至図16〕
まず、図1を用いて、この発明の音響信号処理装置の第1の実施形態である電子楽器の構成について説明する。図1はその電子楽器の構成を示すブロック図である。
図1に示すように、この電子楽器10は、CPU11,ROM12,RAM13,検出回路14,表示回路15,オーディオ信号インタフェース(I/F)16,通信I/F17,音源部18,信号処理部19を備え、これらがシステムバス20によって接続されている。そして、検出回路14には操作子21が、表示回路15には表示器22が、信号処理部19にはサウンドシステム23が接続されている。
【0011】
そして、CPU11は、電子楽器10を統括制御する制御部であり、ROM12に記憶された所要の制御プログラムを実行することにより、検出回路14を介した操作子21の操作内容検出、表示回路15を介した表示器22の表示制御、オーディオ信号I/F16を介したオーディオ信号の入力受付、通信I/F17を介した通信の制御、音源部18における波形データ生成の制御、信号処理部19における信号処理の制御等の制御動作を行う。
【0012】
ROM12は、CPU11が実行する制御プログラムや、変更する必要のないデータ等を記憶する記憶手段である。このROM12をフラッシュメモリ等の書き換え可能な不揮発性記憶手段によって構成し、これらのデータを更新できるようにすることも考えられる。
RAM13は、CPU11のワークメモリとして使用したり、一時的に使用するパラメータの値等を記憶したりする記憶手段である。
【0013】
検出回路14は、操作子21に対してなされた操作内容を検出してその内容に従った信号をCPU11に伝達するための回路である。また、操作子21は、キー、ボタン、ダイヤル、スライダ等によって構成され、電子楽器10に対するユーザからの操作を受け付けるための操作手段である。なお、タッチパネルをLCDに積層する等して表示器22と操作子21とを一体に形成することもできる。また、電子楽器10の種類に応じて、鍵盤、弦、パッド、ペダル、ブレスコントローラ等、演奏操作を受け付けるための操作子も含む。
【0014】
表示回路15は、CPU11からの指示に従って表示器22における表示を制御する回路である。また、表示器22は、液晶ディスプレイ(LCD)や発光ダイオード(LED)ランプ等によって構成され、電子楽器10の動作状態や設定内容あるいはユーザへのメッセージ、ユーザからの指示を受け付けるためのグラフィカル・ユーザ・インタフェース(GUI)等を表示するための表示手段である。
【0015】
オーディオ信号I/F16は、マイクや他の音響機器等を接続し、オーディオ信号の入力を受け付けるためのインタフェースである。そして、ここに入力されたオーディオ信号は、信号処理部19における信号処理に供するようにしている。このとき、RAM13等により信号をバッファできるようにしてもよい。また、アナログ信号の入力を受け付ける場合にはA/D変換を行ってデジタル信号に変換するようにしている。
【0016】
通信I/F17は、LAN(ローカルエリアネットワーク)のようなネットワークに接続する等して、PC(パーソナルコンピュータ)等の外部装置と通信するためのインタフェースである。そして、例えばイーサネット(登録商標)規格のインタフェースを用いて構成することができる。
また、通信I/F17として、他の電子楽器、音源装置等、MIDIデータを取り扱う外部装置との間でMIDIデータの送受信を行うためのインタフェースを設けてもよい。このようなインタフェースは、例えばUSB規格や、IEEE1394(Institute of Electrical and Electronic Engineers 1394)規格、あるいはRS232C(Recommended Standard 232 version C)規格等に準拠したインタフェースによって構成することができる。MIDIデータとそれ以外のデータを、共通のインタフェースを介して送受信できるようにすることも考えられる。
【0017】
音源部18は、演奏操作子の操作に従ってCPU11が生成したり、通信I/F17を介して外部装置から受信したりしたMIDI形式の演奏データを基に、複数の発音チャンネルでデジタル音響信号である波形データを生成する音源手段である。そして、生成した波形データは信号処理部19に入力して信号処理に供する。
【0018】
信号処理部19は、エフェクタやミキサ等として機能し、音源部18によって生成されたりオーディオ信号I/F16を介して入力されたりした波形データに対し、CPU11により設定される処理パラメータに従ったエフェクト付与やミキシング等の信号処理を施す信号処理手段である。また、処理後の信号は、サウンドシステム23に入力し、その信号に基づく発音を行わせるようにしている。
これらの音源部18や信号処理部19は、ソフトウェアによって実現してもハードウェアによって実現してもよい。
【0019】
ところで、上述の電子楽器10は、信号処理部19に、入力信号に対してダブリングのエフェクトを付与するダブリングエフェクタを備えている。なおここでは、ダブリングとは、元の音に、その音を加工した音を重ね、音に厚みを出す処理を指すものとする。そして、このようなダブリング自体は、ダブルトラック録音やADT(Artificial Double Tracking)を模した効果として広く利用されており、ボーカルだけでなくエレキギター等の楽器音に使われることも多い。
【0020】
また、上記の「加工」としては例えば、ディレイ、パンニング、ピッチシフト、あるいはこれらにモジュレーションやデチューンを組み合わせた処理が使用されていた。
この電子楽器10において行う「加工」も、処理の内容としてはこれらのものを利用可能であるが、これらの「加工」を、入力音のピッチと音階音のピッチとの関係を意識して行うようにしており、この点が、この実施形態の特徴である。
【0021】
次に、図2に、信号処理部19に備える上記のようなダブリングエフェクタの機能構成を示す。
図2に示すように、ダブリングエフェクタ30は、ボイス信号生成部40,遅延処理部50,ミックス部60を備えている。
このうち、ボイス信号生成部40は、入力信号に対してピッチ変換処理を行ってボイス信号を生成する加工信号生成手段であり、その構成は図3に示すものである。
そして、図3に示すように、ボイス信号生成部40は、ピッチ検出部41,ピッチバッファ42,音階音推定部43,音高テーブル44,推定値バッファ45,ピッチ加工部46,ピッチ変換部47を備えている。
【0022】
そして、ピッチ検出部41は、入力信号のピッチ(1周期分の時間長もしくはその周波数)を検出してピッチ情報を取得する機能を有するピッチ検出手段である。ピッチ情報取得のためのピッチ検出処理の詳細については、後述する。
ピッチバッファ42は、ピッチ検出部41が検出した入力信号のピッチのサンプルを一時的に記憶しておく機能を有する。このピッチバッファは、容量が一杯になった場合に古いデータから消去するリングバッファとするとよい。
【0023】
音階音推定部43は、入力信号と対応する音階音を推定する機能を有する推定手段である。そして、ピッチバッファ42に記憶している入力信号のピッチと、音高テーブル44に記憶している音階音のピッチとを比較し、入力信号のピッチと、ある音階音のピッチとの差が所定誤差範囲内である場合、入力信号と対応する音階音がその音階音であると推定するようにしている。
【0024】
より具体的には、例えば、音高テーブル44に、平均律の音階音として、音高n=0〜127についてピッチScale(n)=440×2(n−69)/12Hz(ヘルツ)を記憶させておくと共に、各音高の許容誤差範囲Δh(n)を適当な値に定めておき、入力信号のピッチP(ここでは周波数)について以下の数1を満たすnが存在する場合に、その入力信号と対応する音階音の音高がnであると推定するようにすることが考えられる。
【数1】


【0025】
この場合、Δh(n)の値は、nによって異なっていてもよいが、以下の数2を満たすように定めるようにする。すなわち、各音階音に関する許容誤差範囲が重ならないように定めるようにする。また、Pがどのnについても数1を満たさない場合は、入力信号はどの音階音とも対応しないと推定し、推定値として無効な値を出力するようにする。
【数2】


【0026】
また、ある時刻tにおいて、Δw(n)だけ過去の時点(すなわち時刻t−Δw(n))から現在まで連続して同じnについてPが上記数1を満たす場合のみ、入力信号と対応する音階音の音高がnであると推定するようにしてもよい。入力信号がある音階音から別の音階音に移行する途中で、その間の音階音についてごく短時間だけ数1を満たしてしまうことも考えられるが、このような場合には入力信号が音階音と対応していると捉えない方が適切であるためである。
【0027】
ここでは、この方式を採用しており、音階音推定部43は、数1により推定した音階音のピッチを推定値バッファ45に記憶させておき、数1により推定した音階音がΔw(n)だけの間同じ音高であった場合に、推定値バッファ45に記憶させているピッチを、入力信号と対応すると推定される音階音のピッチである推定音階音ピッチPとしてピッチ加工部46に出力するようにしている。数1により推定される音階音がない場合や、Δw(n)だけの間同じ音高でない場合には、推定音階音ピッチPとしてその旨のデータをピッチ加工部46に出力するようにすればよい。なお、Δw(n)の値も、nによって異なっていてよい。
【0028】
図4に、以上の方式で入力信号と対応する音階音を推定した場合の推定結果の例を示す。
この図に示すように、入力信号のピッチが時間の経過に従って実線71に示すように推移した場合、上述した方式で入力信号の音高を推定すると、時刻t2からt3までの間は入力信号と対応する音階音の音高がk、時刻t5からt6までの間は入力信号と対応する音階音の音高がk−1であると推定することになる。破線72〜75が各音階音の音高における許容誤差範囲を、太線76,77が入力信号Pと対応する音階音及びそのピッチを示している。時刻t1以前にも、PがScale(k−1)の許容誤差範囲内に入っているが、その時間はΔw(k−1)より短いため、ここではPと対応する音階音はないと推定されている。
【0029】
なお、リアルタイムでエフェクト処理を行う際には、将来の時点における入力信号のピッチPはわからないが、予め用意された音響信号についてエフェクト処理を行う際には、将来の時点における入力信号のピッチPも処理に利用できる。そして、この場合、上記のΔw(n)に関し、Δw(n)以上の時間連続して同じnについてPが上記数1を満たす場合に、その連続する全ての時間範囲で、入力信号と対応する音階音の音高がnであると推定するようにすることも考えられる。このようにした場合、図5に示した例では、時刻t1からt3までの間は入力信号と対応する音階音の音高がk、時刻t4からt6までの間は入力信号と対応する音階音の音高がk−1であると推定することになる。
また、ある時点からΔw(n)だけ未来の時間まで連続して同じnについてPが上記数1を満たす場合に、その時点において、入力信号と対応する音階音の音高がnであると推定するようにすることも考えられる。
【0030】
次に、ピッチ加工部46は、入力信号に対するピッチシフト量を求め、これをピッチ検出部41が取得した入力信号のピッチに加算して、ボイス信号のピッチを示すピッチ情報を生成し、ピッチ変換部47におけるピッチ変換処理に供する機能を有する。このとき、ピッチシフト量は、ボイス信号のピッチが、入力信号のピッチよりも、音階音推定部43により入力信号と対応すると推定された音階音のピッチに近づくように定めるとよい。また、音階音推定部43により入力信号と対応する音階音が推定できた場合のみ、そのピッチシフト量を求め、ピッチ変換部47によりボイス信号を生成させるようにするとよい。これらのピッチ加工処理については、後に詳述する。
【0031】
ピッチ変換部47は、ピッチ検出部41が取得した入力信号のピッチ情報と、ピッチ加工部46が生成したボイス信号のピッチ情報とを利用し、入力信号に対してピッチ変換処理を行ってボイス信号を生成する機能を有するピッチ変換手段である。このとき、なるべく音色を変えず、ピッチのみ変換するような処理を行うことが好ましい。この実施形態で採用しているピッチ変換処理については後に詳述する。また、ピッチ変換部47は、生成したボイス信号をミックス部60に供給する。
【0032】
図2の説明に戻ると、遅延処理部50は、バッファメモリ等によって構成され、ミックス部60に入力する入力信号を、ボイス信号生成部40でのボイス信号生成処理に必要な時間だけ遅延する遅延手段である。この遅延の長さは、例えば20ミリ秒(ms)程度とすればよい。
【0033】
ミックス部60は、入力信号とボイス信号とを混合して出力する混合手段であり、ゲイン調整部61,64,パン調整部62,65,加算部63,66を備えている。そして、遅延処理部50によって遅延された入力信号と、ボイス信号生成部40によって生成されたボイス信号とに対してそれぞれゲイン調整部61,64でゲイン調整を行った上でパン調整部62,65によりL側信号とR側信号に振り分け、これらを加算部63,66で加算して、LとRのステレオ信号として出力する。
なお、ゲイン調整やパン調整は必須ではなく、単に入力信号とボイス信号とを加算して出力するようにしてもよい。
【0034】
信号処理部19に、他のエフェクタやミキサの機能を設けてもよいことはもちろんであり、ダブリングエフェクタ30の出力を、それらのエフェクタに入力してさらにエフェクトを付与したり、ミキサに入力してミキシング処理に供したりすることもできる。逆に、他のエフェクタやミキサによる処理後の信号をダブリングエフェクタ30に入力するようにすることも考えられる。
また、信号処理部19が複数のチャンネルで信号処理を行う場合に、エフェクタを各チャンネル毎に設けてそれぞれ独立に動作させられるようにしてよいことは、もちろんである。
【0035】
次に、図5を用いて、ピッチ検出部41におけるピッチ検出処理について説明する。
ピッチ検出部41においては、ピッチの検出は、基本的には、入力信号波形101と、その入力信号波形101の+側及び−側のエンベロープに所定値(又は所定の関数値)を乗算して得た+側エンベロープ102及び−側エンベロープ103とが交差する(サンプル値の大小関係が入れ替わる)タイミングを検出することにより行っている。
【0036】
より具体的には、検出フラグIRQを用意し、入力信号波形101が+側エンベロープ102と交差した時点T,Tでこれを0から1に立ち上げ、入力信号波形101が−側エンベロープ103と交差した時点T,Tで1から0に立ち下げるようにし、IRQフラグの立ち上がりから次の立ち上がりまでの時間を、サンプル数をカウントすることにより計測するようにしている。この計測した時間(サンプル数)を検出したピッチとする。
【0037】
なお、Tの直後にも入力信号波形101が+側エンベロープ102と交差するが、この時点ではIRQは既に1であるので、立ち上がりは起こらない。そして、TにIRQフラグが立ち下がった後で入力信号波形101が+側エンベロープ102と交差するTで、次の立ち上がりが起こる。同様なことが、−側エンベロープ103についても言える。
このようにエンベロープを利用するのは、高調波成分を多く含み、1周期内で何度もゼロクロスを繰り返すような信号や、波形の形が崩れていくつものピークを持つような信号等についてのピッチ検出間違いを防ぐためで、ゼロクロスのみの検出に比べるとはるかに正確なピッチが得られる。
【0038】
またここでは、処理対象のオーディオ信号のサンプリング周波数は44.1キロヘルツ(kHz)とし、この場合サンプリング周期は約0.02msである。そして、サンプリング周期より細かい精度でピッチを求めようとする場合には、補間を行って、交差のタイミングをより細かく求めるようにすることも考えられる。
また、図5に示した例では、+側及び−側のエンベロープ102,103は、時間の経過に応じて減衰するようなものとし、前者はIRQフラグの立ち上がり、後者は立ち下がりをトリガに減衰をリセットするようなものとしている。
【0039】
そして、ピッチ検出部41は、以上のような動作により検出した入力信号のピッチを、順にピッチバッファ42に記録していき、所定タイミング毎、ここでは6ms毎に、ピッチバッファ42に記録したピッチのうち所定個数の平均値を、その時点の入力信号波形101のピッチを示すピッチ情報として出力するようにしている。また、上記の所定個数は例えば16個とすればよく、ピッチバッファ42に記録した数がこれに満たない場合には、既に記録されている分のみの平均値とすればよい。
【0040】
また、上記の検出を行う場合に、ノイズを除去して精度を上げるため、また、ボイス信号の生成を行うべき部分と行うべきでない部分を区別するため、検出条件や検出結果について、以下のような評価を行うようにするとよい。
【0041】
まず、ピッチ検出は、入力信号のレベルが所定値以上の場合にのみ行うようにするとよい。あまりにレベルが低い信号は、無音の信号に混入したノイズと考えられるためである。
また、入力信号波形101がゼロレベルと交差するゼロクロスの回数をカウントし、時間当たりのゼロクロス回数が所定値以上あった場合に、ピッチ検出を行わないようにするとよい。この閾値をここでは6ms当たり30回以上としている。このようになる部分では、入力信号は、人の声のうち子音に該当するものであり、このような部分ではボイス信号の加算を行わない方が好ましい出力音が得られることが経験的にわかっているので、ピッチ検出をやめ、それに連動させてボイス信号の生成も停止させるためである。
【0042】
また、以上の基準を満たす入力信号に対してピッチの検出を開始した場合でも、連続して検出したピッチのばらつきが、所定範囲内、例えば12.5%以内であった場合に初めて連続検出モードに移行し、これが満たされるまでは検出したピッチの値をピッチバッファ42に記録しないようにするとよい。誤差が大きい場合には、検出結果を信用できないためである。
【0043】
さらに、IRQフラグの立ち上がりから立ち下がりまでの期間の長さをPCNT1、立ち下がりから立ち上がりまでの期間の長さをPCNT0としてそれぞれ計測し、以下の(a)〜(c)の値を求めてバッファに記録し、最新の検出値を1つ前にピッチバッファ42に記録した値と比較した場合の誤差が所定範囲内、例えば12.5%以内であった場合にのみ、検出した値を新たにピッチバッファ42に記録するようにしてもよい。(a)〜(c)のうち任意の個数について同時に誤差が所定範囲内であった場合に記録を行うようにしてもよい。
(a)PCNT1+PCNT0(IRQフラグの立ち上がりから次の立ち上がりまで)
(b)PCNT0+PCNT1(IRQフラグの立ち下がりから次の立ち下がりまで)
(c)2周期分のPCNT1+PCNT0
(a)は図5に示したピッチの検出値そのものである。
【0044】
また、上記(a)〜(c)に代えてまたはこれに加えて、(d)として2周期分のPCNT1+PCNT0を検出して(a)の2倍の値と比較し、周期ミスの確認を行うようにしてもよい。
さらに、上記の(a)〜(d)で誤差が所定範囲内でなかった場合に、検出ミスとしてその回数をカウントし、これが所定回数以上となった場合に検出を中止して初めからやり直すようにしてもよい。
例えば、ミスが3回以下の場合には単にピッチバッファ42への記録を行わずにピッチ検出を続行し、ミスが4回から7回の場合には検出した値をピッチバッファ42に記録し、比較対象の値を更新してピッチ検出を続行し、ミスが8回以上の場合にはそれまでピッチバッファ42に記録したデータを全て破棄して初めから検出をやり直す等である。
【0045】
次に、図6及び図7を用いて、ピッチ変換部47におけるピッチ変換処理について説明する。
ピッチ変換部47においては、ピッチ変換処理として、入力信号111を窓関数を用いて切り出し、これを要素として並べ、その並べる周期によって変換後の波形のピッチを決定する処理を行うようにしている。なおここでは、図6及び図7に示すように、入力信号111の切り出しは、OUT0とOUT1の2系統でタイミングをずらして行い、これらを加算したものをピッチ変換後のボイス信号として出力するようにしている。そして、このような処理によれば、入力信号111のフォルマント情報を保持したままピッチ変換を行うことができる。
この手法は、Lent法と呼ばれ、以下の論文に記載された方法を応用したものである。
Keith Lent (1989) “An efficient method for pitch shifting digitally sampled sounds.” Computer Music Journal Vol. 13 No.4. pp.65-71
【0046】
図6に示すのが、ピッチダウン(周波数減少)の場合の処理例、図7に示すのが、ピッチアップ(周波数増加)の場合の処理例である。
また、これらの図において、Pは、ピッチ検出部41が検出結果として出力する入力信号111のピッチの値、Pは、ピッチ加工部46が出力するボイス信号のピッチの値である。また、SB及びRBは、それぞれ基準区間及び出力区間の長さを示すが、これらの符号は区間自体を表わす符号としても用いる。また、上記の各値は、信号の内容によって変化するものであるので、異なる時点の値には「′」や「″」をつけて区別している。
【0047】
そして、ピッチ変換処理においてはまず、ボイス信号の出力とは関係なく、入力信号111をバッファに書き込むと共に、その入力信号111についてピッチPの2倍の期間を持つ基準区間SBを順に設定していくようにしている。そして、出力のための窓関数による切り出しを行う際には、この基準区間を単位に行うようにしている。
基準区間の長さは、ピッチPが変われば当然変わるが、上述のようにピッチ検出部41はピッチ情報の出力を6ms毎に行うようにしているので、次の出力が行われるまでは、ピッチPの値は変化しないことになる。
なお、上記のバッファは、遅延処理部50のバッファと共通化してもよい。
【0048】
一方、出力信号の生成としては、まずOUT0系統の信号生成を開始するが、この場合、ピッチPの2倍の期間を持つ出力区間RBの設定を行う。そして、その出力区間RBにおいては、その出力区間RBの開始時点における最新の基準区間SB内の入力信号112を、その先頭から順にバッファから読み出して出力する。このとき、読み出した信号には窓関数113を乗算するが、ここでは、この窓関数として、長さが読み出しを行う基準区間SBと等しいハニング窓を用いている。また、入力信号111のバッファへの書き込みと、出力のための読み出しは、並行して行われることになる。
【0049】
また、ピッチダウンの場合、RB>SBであるので、該当する基準区間SBの入力信号112を全て読み出した後も、出力区間RBは続くことになるが、この部分については、「0」のデータを出力するようにしている。
そして、出力区間RBが終了すると、その時点でのボイス信号のピッチP″に従って新たな出力区間RB″を設定し、その開始時点の最新の基準区間SB′の入力信号の読み出しを行い、以後この処理を繰り返す。
【0050】
OUT1系統の信号生成についても、開始時点をPだけずらす点以外は、OUT0系統の場合の処理と同じものとしている。ただし、読み出しを行う基準区間や、出力区間の長さについては、各出力区間の設定時の情報に従って定めるので、OUT0系統の出力信号と全く同じ信号が生成されるとは限らない。
そして、上述のように、OUT0系統とOUT1系統の出力を加算して、ボイス信号として出力する。このような処理により、入力信号111と同様なフォルマントを有するピッチPのボイス信号を出力することができる。
【0051】
一方、ピッチアップの場合には、図7に示す通りRB<SBであるので、基準区間SBの入力信号112を全て読み出す前に出力区間RBが終了するが、この場合には、出力区間RBの終了時に読み出しを中止するようにしている。図7に仮想線で示した波形は、その後の読み出されない部分である。そして、これに対応して、窓関数114として、幅がRBと等しいハニング窓を用いている。
【0052】
しかし、出力区間RBの終了時に、次の出力区間RB″の設定を行い、その開始時点の最新の基準区間SBの入力信号の読み出しを開始する点は、図6の場合と同様である。ただし、図7の例のように、出力区間RB″の設定時に入力信号111において基準区間SBが終了していない場合、同じ基準区間SBの入力信号112を、出力区間RB″でも再度読み出すことになる。
OUT1系統の信号生成について開始時点をPだけずらす点も、図6の場合と同様である。
【0053】
このような処理により、ピッチアップの場合にも、入力信号111と同様なフォルマントを有するピッチPのボイス信号を出力することができる。
なお、もしボイス信号のピッチを入力信号を等しくするのであれば、どちらの処理も適用可能である。
【0054】
また、上述したピッチ変換処理において、入力信号111のバッファへの書き込みと読み出しの速度(時間当たりの処理サンプル数)は等しくするとよいが、読み出し速度を異ならせることにより、入力音声の声質を、男性から女性又はその逆に変換させるジェンダー効果を得ることも考えられる。
さらに、ピッチがサンプル数の整数倍にならない場合等、サンプルとサンプルの間のタイミングにおける信号値が必要になった場合には、適宜補間処理を行うようにするとよい。
【0055】
次に、図8乃至図16を用いて、CPU11が実行する、以上説明してきたピッチ検出、音階音推定、ピッチ加工及びピッチ変換に関する処理について説明する。これらの処理は、ここではCPU11が信号処理部19から必要な情報を取得して行うものとする。そしてこの場合、CPU11は、ダブリングエフェクタ30の機能を有効にする旨の設定がなされると、図8乃至図10及び図15,図16のフローチャートに示す処理を、それぞれ独立に開始する。ただし、これらの処理は、信号処理部19側で行うようにしてもよい。
【0056】
まず、図8に、ピッチ検出処理のフローチャートを示す。
この処理においては、まず、ダブリング処理対象の入力信号を1サンプル分入力信号バッファ及び出力信号バッファへ記録する(S11)。ここで、入力信号バッファは、ピッチ変換部47におけるボイス信号の生成に用いるバッファであり、100ms分程度のデータを記憶する容量を有するリングバッファとすればよい。また、出力信号バッファは、遅延処理部50による遅延処理に用いるバッファであり、1秒分程度のデータを記憶する容量を有するリングバッファとすればよい。
【0057】
その後、入力信号のゼロクロスをカウントする(S12)と共に、サンプルカウンタをカウントアップする(S13)。
そしてその後、ピッチ検出中であれば(S14)、入力信号が周期の開始位置か否かの判定を行う(S15)。ピッチ検出中か否かは、次の図9に示す処理で設定するピッチフラグの内容により判断することができる。また、ステップS15の判定は、図5を用いて説明したように、入力信号とエンベロープとの交差の検出に応じてIRQフラグを変化させ、その立ち上がりの有無を検出することにより行うことができる。
【0058】
そして、その判定の結果周期の開始位置であれば(S16)、サンプルカウンタの現在値をピッチデータとしてピッチバッファ42に記録する(S17)と共に、サンプルカウンタをリセットする(S18)。その後、入力信号の次のサンプルタイミングまで待機し(S19)、次のサンプルタイミングでステップS11に戻って処理を繰り返す。
一方、ステップS16で周期の開始位置でなければ、そのままステップS19に進んで次のサンプルタイミングまで待機する。また、ステップS14でピッチ検出中でなければ、サンプルカウンタをリセットする(S18)と共に、次のサンプルタイミングまで待機する(S19)。
【0059】
なお、以上の図8に示した処理において、ステップS17でピッチデータの記録を行う際、検出条件や検出結果について種々の検討を行うとよいことは、図5の説明で述べた通りであるが、説明を簡単にするため、ここではこのような検討に係る処理は示していない。また、ピッチの検出を行うか否かについては、次の図9に示す処理により、入力信号のゼロクロス数に基づいて判断するようにしている。
【0060】
次に、図9に、ピッチ検出制御処理のフローチャートを示す。
この処理においては、まず、図8のステップS12でカウントしているゼロクロスの数が所定値(ここでは上述のように30回)以下である場合(S21)、ピッチフラグを「1」に設定し、ピッチ検出実行を示す(S22)。その後、ゼロクロス数をリセットし(S25)、ステップS21の処理から所定時間(ここでは上述のように6ms)経過するまで待機し(S26)、その後ステップS21に戻って処理を繰り返す。
また、ステップS21でゼロクロス数が所定値以上である場合には、ピッチフラグを「0」に設定し、ピッチ検出停止を示す(S23)と共に、ピッチバッファ42に記録しているピッチデータをクリアして(S24)、ステップS25以降の処理に進む。
【0061】
従って、図9のフローチャートの処理においては、ステップS21の処理を所定時間毎に行い、その間のゼロクロス数が所定値以下の場合にピッチ検出実行を設定し、所定値より大きい場合にはピッチ検出停止を設定することになる。
以上の図8及び図9に示した処理により、ピッチ検出部41におけるピッチの検出とその制御を行うことができる。ただし、最終的にピッチ検出部41から検出結果として出力されるピッチの値は、次の図10の処理により求めた値である。
【0062】
次に、図10に、音階音推定及びピッチ設定処理のフローチャートを示す。
この処理においては、まず、ピッチバッファ42に記録されているピッチデータのうち所定個(例えば16個)のデータの平均値を求めて入力信号のピッチPの値とする(S31)。ここでは、この値がピッチ検出部41から検出結果として出力される入力信号のピッチの値となり、この値は、ピッチ変換部47におけるピッチ変換処理でも使用される。
【0063】
そして、このピッチPの値に基づき、音高テーブル44に記憶している中でピッチPに最も近い音階音のピッチを取得する(S32)。そして、ピッチPとその音階音のピッチとの差が所定誤差Δh(n)/2以内でなければ(S33)、現在の入力信号に対応する音階音はないと判断し、推定値バッファをクリアする(S34)と共に、音高の継続時間を計測するためのタイマを停止する(S35)。その後、ボイス信号のピッチPをクリアし(S39)、後にピッチ変換処理の説明で述べるように、このことにより、ボイス信号の出力を停止する。そして、ステップS31の処理から所定時間(ここでは上述のように6ms)経過するまで待機し(S44)、その後ステップS31に戻って処理を繰り返す。なお、ステップS31で適当なPが求められなかった場合には、ステップS32でピッチを取得せず、ステップS33の判断がNOになるようにするとよい。
【0064】
一方、ステップS33でYESであった場合、現在の入力信号に対応する音階音が一応あると判断できる。そして、ステップS32で取得した音階音のピッチが、推定値バッファ45に記憶している推定音階音ピッチPと異なる場合には(S36)、ステップS32で取得したピッチを推定値バッファ45に登録し(S37)、上記のタイマをリセットして計時を開始して(S38)、ステップS39以下の処理に進む。
また、ステップS36でYESであった場合、タイマの計測時間が所定時間Δw(n)だけ経過していれば(S40)、入力信号のピッチPが所定時間の間続けて推定音階音ピッチPから所定誤差範囲内にあったことがわかるので、その時点の入力信号と対応する音階音は、ステップS32でピッチを取得した音階音であると推定する。
【0065】
そして、推定値バッファ45に登録されているピッチを、入力信号と対応すると推定される音階音のピッチである推定音階音ピッチPとする(S41)と共に、ボイス信号の生成を行うべく、入力信号のピッチPと推定音階音ピッチPとからピッチシフト量ΔPを決定し(S42)、これを入力信号のピッチPに加算した値をボイス信号のピッチPとする(S43)。このPは、ピッチ変換部47におけるピッチ変換処理で使用される。
【0066】
その後、ステップS31の処理から所定時間経過するまで待機し(S44)、ステップS31に戻って処理を繰り返す。
また、ステップS40でNOであれば、入力信号が音階音と対応しているのか、たまたま音階音に近いピッチとなっただけであるのかの区別ができないため、ステップS39に進み、ボイス信号の出力を停止したままとして、以後の処理を続ける。
【0067】
以上の図10に示した処理により、入力信号のピッチを求め、そのピッチに基づいて入力信号と対応する音階音を推定すると共に、その推定した音階音のピッチを利用して、ピッチ変換部47におけるピッチ変換処理に使用するボイス信号のピッチを生成及び設定することができる。そして、これらのピッチは、上記の所定時間毎に更新されることになる。
また、図10に示した処理のうち、ステップS31の処理はピッチ検出部41の機能と対応する処理、ステップS32乃至S41は音階音推定部43の機能と対応する処理、ステップS42及びS43はピッチ加工部46の機能と対応する処理である。
【0068】
次に、図11に、図10のステップS42に示したピッチシフト量決定処理の第1の例のフローチャートを示す。
この処理においては、まず、|P−P|×2を求め、この値と正の定数Cとのうち、小さい方の値をΔP″とする(S51)。そして、この値に0から1の範囲の乱数Rを乗じてローパスフィルタ(LPF)を通した値をΔP′とする(S52)。ここで、LPFは、カットオフ周波数が0.1Hz〜10Hz、ゲインが最大で1のものを用いるとよい。
【0069】
その後、P>PであればΔP=ΔP′、そうでなければΔP=−ΔP′としてΔPを求め(S53〜S55)、元の処理に戻る。
ΔP′≧0であるので、これらの処理により求めたピッチシフト量ΔPは、入力信号のピッチPを推定音階音ピッチPに近づけるようなシフト量となる。
【0070】
図12に、図11に示した処理によりΔPを求める場合の、PとPの関係の例を示す。
この図には、入力信号のピッチが実線81で示すように変化し、太線82で示す期間において、入力信号が、その太線82で示すピッチの音階音と対応すると推定された場合の例を示している。そして、この例においては、符号a及びcで示す区間で、C>|P−P|×2、符号bで示す区間でC<|P−P|×2である。
【0071】
このような場合、各時点のP=P+ΔPは、乱数Rの値及びLPFの処理結果に応じて、実線81と破線83との間の、矢印を並べて示した範囲のどこかに位置することになる。従って、図11の処理によってΔPを定めることにより、Pを、常に|P−P|≧|P−P|となるように定めることができる。すなわち、ピッチ加工部46が生成するボイス信号のピッチを、対応する入力信号のピッチよりも音階音のピッチに近づけるようにすることができると言える。
【0072】
また、図13に、図10のステップS42に示したピッチシフト量決定処理の第2の例のフローチャートを示す。
この処理においては、正の定数Cと0から1の範囲の乱数Rについて、C×(R−0.5)をLPF又はバンドパスフィルタ(BFP)でフィルタ処理して得た値をΔP′とし(S61)、ΔP=P−P+ΔP′としてΔPを求め(S62)、元の処理に戻る。LPFやBPFとしては、例えばカットオフ周波数や中心周波数が0.1〜10Hz、ゲインが最大で1のものを用いるとよい。
【0073】
図14に、図13に示した処理によりΔPを求める場合の、PとPの関係の例を示す。
この図に示す入力信号及び音階音は、図12に示したものと同じである。しかし、この例においては、各時点のP=P+ΔPは、乱数Rの値及びフィルタ処理の結果に応じて、破線84と破線85との間の、定数Cの幅の矢印を並べて示した範囲のどこかに位置することになる。
【0074】
そして、この図からわかるように、PがPに近い場合には部分的にPがPよりもPから遠くなってしまう場合もあるが、図13の処理によってΔPを定めても、全体としては、ピッチ加工部46が生成するボイス信号のピッチを、対応する入力信号のピッチよりも音階音のピッチに近づけるようにすることができると言える。
【0075】
次に、図15に、基準区間設定処理のフローチャートを示す。
この処理においては、まず、基準位置に基準区間が設定されていないか又は基準位置が基準区間の最後尾に達したかのいずれかが満たされたか否か判断する(S71)。
そして、満たされていない場合には、入力信号バッファに記録されている入力信号について基準位置を1サンプル分進めて(S74)、次のサンプルタイミングまで待機し(S75)、その後ステップS71に戻って処理を繰り返す。
【0076】
一方、ステップS71でいずれかが満たされていた場合、その時点で図10のステップS31の処理により入力信号のピッチPが設定されていれば(S72)、入力信号バッファに記録されている入力信号について、現在の基準位置を開始位置とし、長さSBをピッチPの2倍とする次の基準区間を設定して(S73)、ステップS74に進み、以下の処理を続ける。ステップS72で設定されていなければ、そのままステップS74に進み、以下の処理を続ける。
以上の図15に示した処理により、ピッチ変換部47における処理対象の入力信号に対し、図6及び図7を用いて説明したような基準区間を設定することができる。なお、「基準位置」は、単に基準区間の終了を検出するために利用するものであるので、処理の進行度合いを測れるようなパラメータであれば、どのようなものを用いてもよい。
【0077】
次に、図16に、ピッチ変換処理のフローチャートを示す。
この処理においては、まず、出力区間が設定されていないか又は、読出位置を現在の出力区間においてその出力区間が終了するだけ進めたかのいずれかが満たされたか否か判断する(S81)。
そして、満たされていない場合には、読出位置が基準区間の最後尾を越えたか否か判断し(S85)、越えていない場合には、入力信号バッファから読出位置の1サンプルのデータを読み出し、読出位置に応じた窓関数の値を乗じて、ボイス信号のデータとして出力する(S86)。超えていた場合には、0を出力する(S87)。そして、どちらの場合も、読出位置を1サンプル分進める(S88)。なお、上記の窓関数については、図6及び図7を用いて説明した通りである。
【0078】
そしてその後、ピッチを検出中(ピッチフラグが「1」)であれば(S89)、次のサンプルタイミングまで待機し(S90)、その後ステップS81に戻って処理を繰り返す。一方、ピッチを検出中でなければ、設定されている出力区間をクリアして(S91)、その後ボイス信号のピッチPが設定されるまで待機し(S92)、ピッチPが設定されると、ステップS81に戻って処理を繰り返す。すなわち、再度ピッチPが設定されるまで、ボイス信号の出力を中止する。
【0079】
また、ステップS81でYESであれば、図10のステップS42の処理でボイス信号のピッチPが設定されているか否か判断し(S82)、設定されていれば、次の出力区間の長さRBをピッチPの2倍に設定する(S83)と共に、読み出し位置を、処理時点の最新の基準区間の開始位置へ移動して(S84)、ステップS85以下の処理に進む。一方、ステップS82で設定されていなければ、そのままステップS91以下の処理に進む。すなわち、この場合も、再度ピッチPが設定されるまで、ボイス信号の出力を中止する。
【0080】
以上の図16に示した処理により、ピッチ変換部47において、処理対象の入力信号に基づき、図6及び図7を用いて説明したようなOUT0系統の出力信号を生成することができる。そして、上述の通り、この出力信号と、OUT1系統の出力信号とを加算することによりボイス信号を生成することができる。このOUT1系統の出力信号の生成処理は、開始時期をピッチPだけずらす点以外は、以上の図16に示した処理と同様なものであるが、ピッチPの設定がなくなったりピッチの検出が中止されたりした後で出力を再開する際にも開始時期をずらせるようにするため、ステップS92の後に、ピッチP分の待機処理を追加するとよい。
【0081】
電子楽器10においては、CPU11や信号処理部19が以上のような処理を実行することにより、入力信号と対応する音階音を推定すると共に、入力信号と対応する音階音を推定できた場合には、入力信号のピッチをその音階音のピッチに近づけるようにピッチ変換処理を行ってボイス信号を生成し、入力信号とそのボイス信号とを混合して出力することができる。
従って、ボイス信号のピッチが音階音の音高から大きく外れてしまうことを防止し、その重畳により出力音が不自然な聴感になってしまうことを防止できる。
【0082】
また、入力信号のピッチと、ある音階音のピッチとの差が所定誤差範囲内の場合に、その音階音が前記入力信号と対応する音階音であると推定するようにすると共に、入力信号と対応する音階音が推定できた場合のみ、ボイス信号の生成を行うようにしているので、音階音のピッチに近い部分のみ入力信号を強調し、出力音を自然な聴感にすることができる。
これらの特徴は、組み合わせることにより相乗的に好適な効果を得ることができるが、それぞれ単独でも効果を発揮する。
【0083】
すなわち、例えば、図10のステップS42において、ボイス信号のピッチPを推定音階音ピッチPに近づけることを特に意識せず、正の定数Cと0から1の範囲の乱数Rについて、C×(R−0.5)をLPF又はバンドパスフィルタ(BFP)でフィルタ処理して得た値をΔPとするようにしてもよい。この場合も、LPFやBPFは、図13の処理で用いるものと同様でよい。
【0084】
また、図10のステップS39でボイス信号のピッチPをクリアせず、C×(R−0.5)をLPF又はバンドパスフィルタ(BFP)でフィルタ処理して得た値をΔPとしてステップS42に進むようにしてもよい。すなわち、入力信号と対応する音階音が推定できない場合にも、入力信号のピッチを定数Cの幅でランダムに変化させた信号をボイス信号として重畳するようにしてもよい。
この場合において、ステップS42でΔPを求める区間とステップS39でΔPを求める区間の境でΔPの不連続が目立つようであれば、不連続を緩和するため、ΔP又はPについてクロスフェードを行う処理を追加してもよい。
なお、ボイス信号のピッチPの定め方がこれらに限られないことは、もちろんである。
【0085】
〔第2の実施形態:図17乃至図20〕
次に、この発明の音響信号処理装置の第2の実施形態である電子楽器について説明する。ただし、この電子楽器は、ボイス信号生成部の構成が若干異なる点以外は、第1の実施形態の電子楽器と同様なものであるので、この点以外の説明は省略する。また、第1の実施形態と対応する構成については、同じ符号を用いる。また、この実施形態は、リアルタイムで入力する入力信号ではなく、予めデータとして用意されている入力信号、すなわち処理中の時点より先の時点の内容も参照できる入力信号に対してエフェクト処理を行う場合に好適な実施形態である。
【0086】
まず、図17に、この実施形態の電子楽器におけるボイス信号生成部の構成を示す。
この図に示すとおり、この実施形態におけるボイス信号生成部40′は、第1の実施形態の場合と同様な構成に加え、フレーズ検出部48を有する。また、ピッチ加工部46′におけるピッチ加工処理の内容も、第1の実施形態の場合と異なる。
そして、フレーズ検出部48は、入力信号におけるフレーズの位置を検出する機能を有する検出手段である。このフレーズは、一連のほぼ途切れずに続く発音の区間を指し、例えば、人間の声であれば一息で発声された部分に該当する。そして、フレーズ検出部48は、フレーズの検出結果をピッチ加工部46に伝達する。ピッチ加工部46は、フレーズ検出部48からの情報をもとに、フレーズ単位で入力信号に対するピッチシフト量を求め、これをピッチ検出部41が取得した入力信号のピッチに加算して、ボイス信号のピッチを示すピッチ情報を生成する。
【0087】
次に、この実施形態の電子楽器においてCPU11が実行する処理について説明する。
この電子楽器においても、CPU11(又は信号処理部19)に実行させる処理は、第1の実施形態で図8乃至図16を用いて説明したものと概ね同様である。しかし、処理は予めデータとして用意されている入力信号に対して行なうようにし、処理のタイミングは、入力信号のサンプリング周期に基づきタイミングをサンプル数に換算して、サンプル数を用いて管理するようにしている。従って、所定時間待機する処理においては、その時間と対応する数のサンプルの処理が終わるまで待機するようにすればよいし、各処理を同期させて行わなくても、あるタイミングで発生したイベントを、サンプルの位置と対応させて記憶しておけば、後からその情報を参照して処理を行うこともできる。
ここでは、この点以外で第1の実施形態の場合と異なる処理についてのみフローチャートを用いて説明する。
【0088】
まず、この実施形態においては、図8に示したピッチ検出処理において、ステップS11とS12の間で、フレーズ切れ目検出処理を実行させる点が第1の実施形態の場合と異なる。
図18に、このフレーズ切れ目検出処理のフローチャートを示す。
CPU11は、図8のステップS11の処理の後、入力信号のサンプル値が所定値以下か否か判断する(S101)。そして、所定値以下であった場合、無音区間カウンタがカウント中でなければ(S102)、そのカウントを開始する(S106)とともに、処理中のサンプルのタイミングがフレーズ中である旨を記録し(S109)、図8のステップS12に進む。無音区間カウンタは、入力信号の音量レベルが所定値以下の状態が継続している長さをカウントするためのカウンタである。
【0089】
一方、ステップS102で無音区間カウンタがカウント中であれば、無音区間カウンタをカウントアップする(S103)。そして、そのカウント値が、所定の閾値以上であれば(S104)、処理中のサンプルのタイミングがフレーズの切れ目である旨を記録し(S105)、元の処理に戻る。ステップS104で閾値以上でなければ、該当タイミングがフレーズ中である旨を記録し(S109)、図8のステップS12に進む。
また、ステップS101でNOであった場合には、無音区間カウンタがカウント中であればカウンタをリセットしてカウントを停止すると共に、カウント中でなければそのまま、該当タイミングがフレーズ中である旨を記録し(S107〜S109)、図8のステップS12に進む。
【0090】
この処理は、フレーズ検出部48の機能と対応する処理であり、この処理により、入力信号のサンプル値が所定値以下の期間が所定時間以上継続した場合に、これを入力信号のフレーズの切れ目として検出することができる。
なお、ステップS105又はS109で記録したフレーズの切れ目とフレーズ中の部分の情報については、各サンプルのタイミングについて逐一ピッチ加工部46′に伝達するようにしてもよいが、ある程度情報を蓄積した後で、各フレーズの開始タイミングと終了タイミングの情報として伝達するようにするとよい。
【0091】
また、ステップS101において、入力信号のサンプル値ではなく、音量エンベロープを求め、これが示す音量が所定値以下か否か判断するようにしてもよい。この場合において、検出の正確を期すため、入力信号を何らかのフィルタに通してから音量エンベロープを求めるようにしてもよい。
また、ステップS104で使用する閾値は、通常の人が耳で聞いてフレーズの切れ目であると認識できる程度の時間を示す値とするとよい。
【0092】
また、この実施形態においては、音階音推定及びピッチ設定処理も、第1の実施形態の場合と異なる。すなわち、ピッチシフト量ΔPを、フレーズ毎に決めるようにしているため、音階音推定及び入力信号のピッチPを設定する処理と、ピッチシフト量ΔP及びボイス信号のピッチPを設定する処理とを、分離して行うようにしている。
【0093】
図19に、この実施形態における音階音推定及びピッチ設定処理のフローチャートを示す。この図においては、図10に示した第1の実施形態における処理と共通する部分には、同じステップ番号を付している。
この処理が図10に示した処理と異なる点は、まず、ステップS31′において、入力信号のピッチPを、処理タイミングでの値として、タイミングの情報と対応させて記憶しておくようにしている点である。このタイミングの情報としては、ピッチ検出処理が何サンプル分の入力信号について完了している状態のデータに基づいてPを求めたかを記憶しておけばよい。
また、ステップS38等におけるタイマによる計時は、実時間ではなく、タイミング管理の場合と同様に、入力信号のサンプル数に基づいて入力データの再生時間を測るようにしている。
【0094】
そして、ステップS40でYESの場合、推定値バッファ45に登録されているピッチを処理タイミングでの推定音階音ピッチPとして、後でピッチ加工処理において参照できるようにタイミングの情報と対応させて記憶し(SX)、次の処理タイミングまで待機し(SY)、ステップS31′に戻って処理を繰り返す。
ここでのタイミングの情報は、ステップS31′で用いたタイミングの情報と同じものであり、次の処理タイミングは、例えば、ステップS31′の処理を行ってから再生時間にして6ms分の入力信号についてピッチ検出処理が完了したタイミングとすることができる。
【0095】
また、ステップS40でNOの場合及び、ステップS35又はS38の後では、処理タイミングでの推定音階音ピッチは「なし」である旨の情報をタイミングの情報と対応させて記憶し(SZ)、ステップSYに進む。ここでのタイミングの情報も、ステップS31′で用いたタイミングの情報と同じものである。
以上のような処理を行うことにより、図10に示した処理の場合と同様に、適当な間隔で、各タイミングの入力信号と対応する音階音を推定することができる。そして、その音階音のピッチを、ピッチ加工処理で使用できるように記憶しておくことができる。
【0096】
次に、図20に、この実施形態におけるピッチ加工処理のフローチャートを示す。
この実施形態においては、1つのフレーズ分の範囲について各処理タイミングでの入力信号のピッチPと推定音階音ピッチPの情報が利用できるようになった段階で、図20に示す処理により、その範囲の各処理タイミングにおけるボイス信号のピッチPを求めるようにしている。
【0097】
この処理においてはまず、処理対象のフレーズ内の、有効な推定音階音ピッチPがある範囲で、(P−P)の平均値を求め、これをΔP′とする(S111)。そして、正の定数Cと0から1までの範囲の乱数Rについて、ピッチシフト量ΔP=ΔP′+C×(R−0.5)とする(S112)。このΔPは、フレーズ内については共通としてもよいし、処理タイミング毎に乱数を取りなおして別々に求めてもよい。そして、このΔPを用い、各処理タイミングのPと対応するボイス信号のピッチPを、P=P+ΔPにより求め(S113)、処理を終了する。
すなわち、P=P+〔(P−P)の平均値〕+C×(R−0.5)としている。
【0098】
ここで、図21を用いて、図20に示した処理によりPを求める場合の、PとPの関係について説明する。
この図においては、入力信号のピッチを実線91で示し、有効な推定音階音ピッチPが存在する範囲では、これを太線92,93で示している。そして、図20のステップS111で求める平均値は、フレーズ内の期間のうち、太線92,93で示される期間についてのみ、(P−P)の値を加算し、その期間のデータ数で除すことにより求めることができる。また、太線92で示される期間と太線93でされる期間について平均値を別々に求め、これらの平均値について、各期間の長さに応じた重み付けを行ってさらに平均を取ることによっても求めることができる。
【0099】
そして、C=0の場合には、Pは、Pに単にその平均値を加えた値となり、実線91を平行移動させた一点鎖線94で示す値を取ることになる。また、Cが0でない場合には、Pは、この一点鎖線94を中心とした、破線95,96に挟まれた幅Cの領域内の値を取ることになる。
そして、この図からわかるように、Pを図20に示した処理により求めるようにした場合でも、個々の処理タイミングについては必ずしも成り立つとは限らないが、全体としてはPよりもPに近くなるようなPを求めることができる。すなわち、入力信号よりも音階音に近いピッチのボイス信号を生成できる。そして、このことにより、この実施形態の電子楽器によっても、ボイス信号のピッチが音階音の音高から大きく外れてしまうことを防止し、その重畳により出力音が不自然な聴感になってしまうことを防止できる。
【0100】
なお、この実施形態においても、第1の実施形態の場合のように、Pが有効な値である場合のみ、ボイス信号の生成を行うようにしてもよい。このようにすれば、音階音のピッチに近い部分のみ入力信号を強調し、出力音を自然な聴感にすることができる。
ただし、逆に、次のフレーズが始まるまではフレーズ内で求めたΔPを継続して使用する等して、フレーズの切れ目においてもボイス信号の生成を行うようにすることも考えられる。
また、フレーズの検出を、ピッチ検出部41におけるピッチ検出が適切に行えない状態が所定時間以上継続している場合に、入力信号がフレーズの切れ目であるとして行なうようにしてもよい。このようにする場合、ピッチ検出部41から、入力信号のピッチの検出結果をフレーズ検出部48に入力するようにすればよい。
【0101】
以上で実施形態の説明を終了するが、装置の構成や具体的な処理内容等が上述の各実施形態で説明したものに限られないことはもちろんである。
例えば、入力信号と対応する音階音を推定する際、ピッチの近い音階音の検索と、ピッチの差が所定誤差以内か否かの確認という2段階の処理を行わず、予め音階音毎に所定誤差を考慮してピッチ範囲を定めておき、そのいずれかに入力音のピッチが属する場合に、入力音と対応する音階音が、そのピッチ範囲を持つ音階音であると推定するようにしてもよい。また、音階音も、必ずしも平均律の音階に属する音でなくてもよい。
【0102】
また、上述した実施形態においては、ピッチ変換処理にLent法を採用したが、これ以外の方法でピッチ変換を行うようにしてもよい。さらに、処理対象をアナログの音響信号とし、ピッチ検出処理、ピッチ加工処理、ピッチ変換処理、ミックス処理等を、アナログ回路によって行うようにしてもよい。
さらにこれらの変形や、第1及び第2の実施形態で説明した内容は、矛盾を生じない範囲で適宜組み合わせることもできる。
【0103】
また、この発明が、電子楽器以外の音響信号処理装置に適用できることはもちろんであり、例えば、カラオケ装置、ミキサ、音源装置、MIDIシーケンサ、音響信号を処理するソフトウェアを実行可能なPC等、波形を示す音響信号を取り扱う機能を有する装置であれば、任意の装置に適用することが可能である。さらに、この発明を、単体のエフェクタあるいは装置にエフェクタ機能を付与するためのプログラムとして実施することも可能である。
【0104】
また、この発明のプログラムは、コンピュータにハードウェアを制御させて上述したような音響信号処理装置として機能させるためのプログラムであり、予めROMやHDD等に記憶させておくほか、CD−ROMあるいはフレキシブルディスク等の不揮発性記録媒体(メモリ)に記録して提供し、そのメモリからこのプログラムをRAMに読み出させてCPUに実行させたり、プログラムを記録した記録媒体を備える外部機器あるいはプログラムをHDD等の記憶手段に記憶した外部機器からダウンロードして実行させたりしても、同様の効果を得ることができる。
【産業上の利用可能性】
【0105】
以上の説明から明らかなように、この発明の音響信号処理装置又はプログラムによれば、常に自然な聴感の出力信号を得られるエフェクトを実現することができる。
従って、この発明によれば、自然かつ斬新な音を生成可能な音響信号処理装置を提供することができる。
【図面の簡単な説明】
【0106】
【図1】この発明の音響信号処理装置の第1の実施形態である電子楽器の構成を示すブロック図である。
【図2】図1に示した信号処理部に備えるダブリングエフェクタの機能構成を示す図である。
【図3】図2に示したボイス信号生成部の機能構成を示す図である。
【図4】図3に示した音階音推定部で入力信号と対応する音階音を推定した場合の推定結果の例を示す図である。
【図5】図3に示したピッチ検出部におけるピッチ検出処理について説明するための図である。
【0107】
【図6】図3に示したピッチ変換部におけるピッチ変換処理について説明するための図である。
【図7】その別の図である。
【図8】図1に示した電子楽器のCPUが実行するピッチ検出処理のフローチャートである。
【図9】同じくピッチ検出制御処理のフローチャートである。
【図10】同じく音階音推定及びピッチ設定処理のフローチャートである。
【0108】
【図11】図10のステップS42で実行するピッチシフト量決定処理の第1の例のフローチャートである。
【図12】図11に示した処理によりΔPを求める場合の、PとPの関係の例を示す図である。
【図13】ピッチシフト量決定処理の第2の例のフローチャートである。
【図14】図13に示した処理によりΔPを求める場合の、PとPの関係の例を示す図である。
【図15】図1に示した電子楽器のCPUが実行する基準区間設定処理のフローチャートである。
【図16】同じくピッチ変換処理のフローチャートである。
【図17】この発明の音響信号処理装置の第2の実施形態である電子楽器におけるボイス信号生成部の機能構成を示す図である。
【図18】第2の実施形態において電子楽器のCPUが実行するフレーズ検出処理のフローチャートである。
【図19】同じく音階音推定及びピッチ設定処理のフローチャートである。
【図20】同じくピッチ加工処理のフローチャートである。
【図21】図20に示した処理によりPを求める場合の、PとPの関係について説明するための図である。
【符号の説明】
【0109】
10…電子楽器、11…CPU,12…ROM、13…RAM、14…検出回路、15…表示回路、16…オーディオ信号I/F、17…通信I/F、18…音源部、19…信号処理部、20…システムバス、21…操作子、22…表示器、23…サウンドシステム、30…ダブリングエフェクタ、40,40′…ボイス信号生成部、41…ピッチ検出部、42…ピッチバッファ、43…音階音推定部、44…音高テーブル、45…推定値バッファ、46,46′…ピッチ加工部、47…ピッチ変換部、48…フレーズ検出部、50…遅延処理部、60…ミックス部、61,64…ゲイン調整部、62,65…パン調整部、63,66…加算部




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013