(57)【特許請求の範囲】
【請求項１】
再生時間を変えずに音響信号の音程を任意の音程に変換するための音程変換装置であって、
前記音響信号をサンプリングして得られた離散的な音声データが順次的に入力される音声データ入力端子、
音程変換比を示す音程制御信号が入力される音程制御信号入力端子、
前記音程制御信号入力端子を通じて入力される音程制御信号に基づいて、互いに一定値ずれた読み出しアドレスを発生する一対の読み出しアドレス発生部、
バッファを含み、前記音声データ入力端子を通じて入力される音声データを当該バッファに順番に書き込むと共に、各前記読み出しアドレス発生部が発生した読み出しアドレスの整数部ビットに基づいて、一対の音声データ列を当該バッファから読み出すメモリ部、
Ｎ倍オーバーサンプリング（ただし、Ｎは２のべき乗；以下同様）を行うためのローパスフィルタをポリフェーズ分解して得られるＮ個のサブフィルタと対応するＮ個のフィルタ係数列が予め決められた順序で格納されたフィルタ係数列格納部、
前記フィルタ係数列格納部に格納されているＮ個のフィルタ係数列のうち前記読み出しアドレス発生部が発生した読み出しアドレスの小数部第１〜第（ｌｏｇ2 Ｎ）ビットに対応するフィルタ係数列を選択する一対のフィルタ係数列選択部、
前記メモリ部が読み出した一対の音声データ列を受け、各当該音声データ列に対して、各前記フィルタ係数列選択部が選択したフィルタ係数列を用いてフィルタ演算を行う一対のフィルタ演算部、
各前記フィルタ演算部から出力される一対の音声データを受け、それら一対の音声データにクロスフェード係数を乗じて互いに加算するクロスフェード部を備える、音程変換装置。
【請求項２】
前記メモリ部は、一対の音声データ列を前記バッファから読み出す際、当該一対の音声データ列と同じまたは各々１番地ずれた別の一対の音声データ列を当該バッファからさらに読み出し、
前記一対のフィルタ係数列選択部は、前記フィルタ係数列格納部に格納されているＮ個のフィルタ係数列のうち前記読み出しアドレス発生部が発生した読み出しアドレスの小数部第１〜第（ｌｏｇ2 Ｎ）ビットに対応するフィルタ係数列を選択するのに加え、当該フィルタ係数列に隣接する別のフィルタ係数列をさらに選択し、
前記メモリ部が読み出した別の一対の音声データ列を受け、各当該別の音声データ列に対して、各前記フィルタ係数列選択部が選択した別のフィルタ係数列を用いてフィルタ演算を行う別の一対のフィルタ演算部、および
前記一対のフィルタ演算部から出力される一対の音声データと、前記別の一対のフィルタ演算部から出力される一対の音声データとを受け、各前記読み出しアドレス発生部が発生した読み出しアドレスの小数部第｛（ｌｏｇ2 Ｎ）＋１｝ビット以下のビットを補間係数として直線補間値を求めることによって、互いに隣接する２つの音声データの間を補間する一対の補間データを生成する一対の補間部をさらに備え、
前記クロスフェード部へは、前記一対の補間部から出力される１対の音声データが与えられることを特徴とする、請求項１に記載の音程変換装置。
【請求項３】
各前記読み出しアドレス発生部は、前記音程変換比を累積加算するアキュームレータを含む、請求項１または２に記載の音程変換装置。
【請求項４】
各前記読み出しアドレス発生部は、
一定値を累積加算するアキュームレータ、および
前記アキュームレータの出力と、前記音程変換比とを乗算する乗算器を含む、請求項１または２に記載の音程変換装置。
【請求項５】
再生時間を変えずに音響信号の音程を任意の音程に変換するための音程変換装置であって、
前記音響信号をサンプリングして得られた離散的な音声データが順次的に入力される音声データ入力端子、
音程変換比を示す音程制御信号が入力される音程制御信号入力端子、
前記音程制御信号入力端子を通じて入力される音程制御信号に基づいて、読み出しアドレスを発生する１つの読み出しアドレス発生部、
バッファを含み、前記音声データ入力端子を通じて入力される音声データを順番に当該バッファに書き込むと共に、前記読み出しアドレス発生部が発生した読み出しアドレスの整数部ビットに基づいて、互いに一定数番地ずれた一対の音声データ列を当該バッファから読み出すメモリ部、
前記メモリ部が読み出した一対の音声データ列を受け、当該一対の音声データ列を構成する各一対の音声データにクロスフェード係数を乗じて互いに加算するクロスフェード部、
Ｎ倍オーバーサンプリング（ただし、Ｎは２のべき乗；以下同様）を行うためのローパスフィルタをポリフェーズ分解して得られるＮ個のサブフィルタと対応するＮ個のフィルタ係数列が予め格納されたフィルタ係数列格納部、
前記フィルタ係数列格納部に格納されているＮ個のフィルタ係数列のうち前記読み出しアドレス発生部が発生した読み出しアドレスの小数部第１〜第（ｌｏｇ2 Ｎ）ビットに対応するフィルタ係数列を選択する１つのフィルタ係数列選択部、および
前記クロスフェード部から出力される音声データ列を受け、当該音声データ列に対して、前記フィルタ係数列選択部が選択したフィルタ係数列を用いてフィルタ演算を行う１つのフィルタ演算部を備える、音程変換装置。
【請求項６】
前記バッファ上には、前記音声データ入力端子を通じて入力される音声データが書き込まれる位置を示す書き込みポインタと、読み出される前記一対の音声データ列各々の先頭位置を示す一対の読み出しポインタとが設けられ、
前記バッファは、その先頭と末尾とが輪のように連結された、前記一対の読み出しポインタ間の距離の２倍に相当する容量を持つようなリングバッファであり、
前記メモリ部は、前記一対の読み出しポインタのいずれか一方と、前記書き込みポインタとの間の距離を、前記クロスフェード部に通知し、
前記クロスフェード部は、前記メモリ部から通知された距離に応じたクロスフェード係数を、前記一対の音声データ列を構成する各一対の音声データに乗じることを特徴とする、請求項５に記載の音程変換装置。
【請求項７】
前記読み出しアドレス発生部は、前記音程変換比を累積加算するアキュームレータを含む、請求項５または６に記載の音程変換装置。
【請求項８】
前記読み出しアドレス発生部は、
一定値を累積加算するアキュームレータ、および
前記アキュームレータの出力と、前記音程変換比とを乗算する乗算器を含む、請求項５または６に記載の音程変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音程変換装置に関し、より特定的には、音響信号の音程を任意の音程に変換するための音程変換装置に関する。
【０００２】
【従来の技術】
音程は、２つの音の高さの関係を示す量であり、一般に、それら２つの音の周波数の比によって表現される。
音程変換装置とは、音響信号の音程を所望の音程に変換するための装置をいい、具体例としては、カラオケ用のＣＤ（コンパクト・ディスク）再生機等に設けられるキーコントローラがよく知られている。
【０００３】
図１６は、音響信号の音程を所望の音程に変換する原理を説明するための図である。
図１６に示すように、元の音響信号（ａ）を時間軸に沿って圧縮すれば、周波数が上昇して、より高い音程の音響信号（ｂ）が得られ、伸長すれば、周波数が下降して、より低い音程の音響信号（ｃ）が得られる。
例えば、音響信号を時間軸に沿って０．５倍に圧縮すれば、周波数が２倍となるので、その音響信号は、音程が１オクターブ上昇する。また、音響信号を時間軸に沿って２倍に伸長すれば、周波数が０．５倍となるので、その音響信号は、音程が１オクターブ下降する。
一般に、音響信号を時間軸に沿ってｋ-1倍（ただし０＜ｋ；以下同様）に圧縮／伸長（１＜ｋの場合は圧縮，０＜ｋ＜１の場合は伸長）すれば、周波数がｋ倍となるので、その音響信号は、音程が（ｌｏｇ2 ｋ）オクターブ変化する。
以下では、上記のｋ、すなわち元の音響信号の音程と、変換後の音響信号の音程との比を「音程変換比」と呼ぶ。
【０００４】
このように、音響信号を時間軸に沿ってｋ-1倍に圧縮／伸長することによって、その音響信号の周波数を元のｋ倍に変換することができる。ところが、単にそのような圧縮／伸長を行うだけでは、音響信号の時間長（すなわち再生時間）が元のｋ-1倍に変化する。そこで、再生時間を変化させないように、いわゆる「クロスフェード」がさらに行われる。
【０００５】
図１７は、互いに連続しない２つの音声フレームを滑らかに接続するクロスフェード処理の原理を説明するための図である。
図１７に示すように、音響信号においてフレームＢを切り取り、フレームＡとフレームＣとを接続する場合を考える。この場合、フレームＡとフレームＣとをそのまま接続したのでは、両者の接点で信号値が不連続となって、信号再生時にノイズが発生することがある。
そこで、フレームＡをフェードアウトし、かつフレームＣをフェードインして両者を接続する。そうすれば、両者の接点で信号値が連続となるので、信号再生時にノイズが発生することはなくなる。
しかし一方、フレームＡとフレームＣとをクロスフェードによって接続すれば、両者をそのまま接続するのと比べて再生時間が短くなる。よって、時間軸に沿った圧縮／伸長とクロスフェードとを組み合わせて行えば、再生時間は変えずに音響信号の音程を変換することが可能となる。
【０００６】
図１８は、時間軸に沿った圧縮／伸長とクロスフェードとを組み合わせて行うこと（以下、クロスフェード圧縮伸長）によって、再生時間は変えずに音響信号の音程を変換する原理を説明するための図である。図１８（ａ）には、音程を高く変換する（すなわち時間軸圧縮する）場合が、（ｂ）には、音程を低く変換する（すなわち時間軸伸長する）場合がそれぞれ示されている。
図１８（ａ），（ｂ）において、最初、時間軸圧縮／伸長後のフレーム（以下、出力フレーム）の時間長、つまり出力フレーム長が決められ、次いで、音程変換率に応じた入力フレーム長が決められる。ここでは、音程をｋ倍に変換するものとして、出力フレーム長を２、入力フレーム長を２ｋと決める。
【０００７】
次に、元信号から、フレーム長が２ｋの入力フレームが、その一部分をオーバーラップさせるようにして、順次切り取られる。オーバーラップされる部分の長さは（２ｋ−１）である。図１８（ａ），（ｂ）では、Ａ１およびＢ２，Ａ２およびＢ３，Ａ３およびＢ４がそれぞれ入力フレームである。
【０００８】
次に、切り取られた各入力フレームが、フレーム先頭を基準に（フレーム最後尾や中間が基準でもよい）、時間軸に沿ってｋ-1倍に圧縮／伸長され、それによって、フレーム長２の出力フレームが得られる。各出力フレームは、そのフレーム長の半分が互いにオーバーラップしている。
図１８（ａ）では、Ａ１ＨおよびＢ２Ｈ，Ａ２ＨおよびＢ３Ｈ，Ａ３ＨおよびＢ４Ｈがそれぞれ出力フレームであり、Ｂ２ＨとＡ２Ｈ、Ｂ３ＨとＡ３Ｈが互いにオーバーラップしている。図１８（ｂ）では、Ａ１ＬおよびＢ２Ｌ，Ａ２ＬおよびＢ３Ｌ，Ａ３ＬおよびＢ４Ｌがそれぞれ出力フレームであり、Ｂ２ＬとＡ２Ｌ、Ｂ３ＬとＡ３Ｌが互いにオーバーラップしている。
【０００９】
次に、各出力フレームがクロスフェードによって互いに接続される。クロスフェードは、互いにオーバーラップしている領域の全体に対して行っても、その領域の一部に対して行ってもよい。
図１８（ａ）には、互いにオーバーラップしているＢ２ＨとＡ２Ｈ、Ｂ３ＨとＡ３Ｈの全体に対してクロスフェードを行った場合と、その約２５％に対してクロスフェードを行った場合とが示されている。図１８（ｂ）には、互いにオーバーラップしているＢ２ＬとＡ２Ｌ、Ｂ３ＬとＡ３Ｌの全体（すなわち１００％）に対してクロスフェードを行った場合と、約２５％に対してクロスフェードを行った場合とが示されている。
これにより、再生時間は変えずに、音響信号の周波数をｋ倍に変換することができる。
【００１０】
さて、以下、離散的な音声データに対し、クロスフェード圧縮伸長によって音程変換を行う従来の音程変換装置について説明する。
図１９は、従来の音程変換装置の構成の一例を示すブロック図、図２０は、図１９の音程変換装置が設けられる従来のＣＤ再生機の構成の一例を示すブロック図である。
図２０において、ＣＤ２０には、音響信号を所定の周期（これをＴとする）でサンプリングして得られた離散的な音声データ｛ｘ（０），ｘ（１），ｘ（２），ｘ（３），…｝が予め記録されている。ＣＤ再生機は、読み出し部２１と、再生部２２と、音程変換比設定部２３と、音程制御信号生成部２４と、音声データ出力端子２５と、音程制御信号出力端子２６と、音声データ入力端子２７とを備えている。
【００１１】
音程変換比設定部２３は、予め決められた複数の音程変換比の中からいずれかを選択するためのセレクタや、任意の音程変換比を指定するための調節つまみ等を含み、ユーザによって選択あるいは任意に指定された音程変換比を設定する。音程制御信号生成部２４は、音程変換比設定部２３によって設定された音程変換比を示す音程制御信号を生成する。音程制御信号出力端子２６からは、音程制御信号生成部２４によって生成された音程制御信号が出力される。
読み出し部２１は、ＣＤ２０から上記の音声データを順次読み出す。音声データ出力端子２５からは、読み出し部２１によって読み出された音声データが、周期Ｔで順次出力される。
【００１２】
音程変換装置は、音声データ出力端子２５から順次出力される音声データ｛ｘ（０），ｘ（１），ｘ（２），ｘ（３），…｝と、音程制御信号出力端子２６から出力される音程制御信号とを受け、音程変換後の音声データ｛ｏｕｔ（０），ｏｕｔ（１），ｏｕｔ（２），ｏｕｔ（３），…｝を、周期Ｔで順次出力する。
【００１３】
音声データ入力端子２７からは、音程変換装置から順次出力される、音程変換後の音声データが入力される。再生部２２は、音声データ入力端子２７から入力される音程変換後の音声データ｛ｏｕｔ（０），ｏｕｔ（１），ｏｕｔ（２），ｏｕｔ（３），…｝を受け、音響信号を再生する。なお、再生部２２によって再生された音響信号は、図示しないアンプを通じて増幅された後、スピーカへと入力される。
【００１４】
図１９において、従来の音程変換装置は、メモリ部１と、１対の読み出しアドレス発生部４ａ，４ｂと、一対の補間部１０ａ，１０ｂと、クロスフェード部３と、音声データ入力端子７と、音声データ出力端子８と、音程制御信号入力端子９とを備えている。
【００１５】
音声データ入力端子７へは、ＣＤ再生機の音声データ出力端子２５から出力される音声データ｛ｘ（０），ｘ（１），ｘ（２），ｘ（３），…｝が入力され、メモリ部１は、それら音声データを一時記憶する。
音程制御信号入力端子９へは、音程制御信号出力端子２６から出力される音程制御信号が入力され、読み出しアドレス発生部４ａ，４ｂは、音程制御信号に基づいて、メモリ部１が一時記憶している音声データを読み出すための読み出しアドレスを発生する。すなわち、音程制御信号の示す音程変換比をアドレス増分値として累積加算し、その累積加算結果を、読み出しアドレスとして出力する。
【００１６】
図２１は、図１９の読み出しアドレス発生部４ａ，４ｂの構成の一例を示すブロック図である。
図２１において、読み出しアドレス発生部４ａ，４ｂは、アドレス増分値（＝ｋ）を累積加算するアキュームレータ１６（ＡＬＵ）を含む。なお、このような構成を有するアドレス発生部は、例えば、特開平９−２１２１９３号公報に記載されている。
【００１７】
従って、アドレス発生部は、音程変換比ｋが１（音程変化なし）の場合、例えば｛０，１，２，３，…｝を出力し、ｋが２の場合、例えば｛０，２，４，６，…｝を出力する。同様に、ｋが０．５の場合、例えば｛０，０．５，１，１．５，…｝を出力し、ｋが１．２６の場合、例えば｛０，１．２６，２，５２，３．７８，…｝を出力する。
【００１８】
ここで補足すれば、読み出しアドレス発生部４ａと、読み出しアドレス発生部４ｂとでは、異なる初期値が設定されており、互いに一定値ずれたアドレスが発生される。
例えば、アドレス発生部の一方から｛０，１，２，３，４，…｝が発生されるとき、他方からは、｛４，５，６，７，８，…｝が発生される。すなわち、ある時刻に一対の読み出しアドレス（０，４）が発生され、その時刻から時間Ｔ経過後に（１，５）が発生され、さらに時間Ｔ経過後に（２，６）が発生され、…のように発生される。
なお、２つの読み出しアドレスのずれは、出力フレーム長や音程変換比等（図１８参照）に基づいて決められる。その具体的な決め方については、本発明の趣旨と直接には関係がないので、説明を省略する。
【００１９】
再び図１９において、メモリ部１は、読み出しアドレス発生部４ａ，４ｂが発生する読み出しアドレスに基づいて、先に記憶した音声データの読み出しを行う。
例えば、音程変換比が２倍の場合、読み出しアドレス発生部４ａからは、読み出しアドレス｛０，２，４，…｝が発生され、メモリ部１は、音声データ｛ｘ（０），ｘ（２），ｘ（４），…｝を周期Ｔで順次読み出すので、（１／２）倍の時間軸圧縮がなされたことになる。
【００２０】
すなわち、従来の音程変換装置では、メモリ部１および読み出しアドレス発生部４ａ，４ｂによって、前述のような時間軸圧縮伸長を実現している。
ただし、例えば、音程変換比が１．２６倍の場合、読み出しアドレス｛０，１．２６×１，１．２６×２，…｝が発生されるが、ｘ（１．２６×１）や、ｘ（１．２６×２）のような音声データは、メモリ部１には存在しない。よって、任意の音程変換比を実現するには、メモリ部１に存在する音声データから補間値を算出する補間部１０ａ，１０ｂがさらに必要となる。
【００２１】
補間部１０ａは、読み出しアドレス発生部４ａが発生する読み出しアドレスと、そのアドレスに基づいてメモリ部１から読み出される音声データとに基づいて、必要な補間データを生成する。補間部１０ｂは、読み出しアドレス発生部４ｂが発生する読み出しアドレスと、そのアドレスに基づいてメモリ部１から読み出される音声データとに基づいて、必要な補間データを生成する（なお、音程変換比が整数、すなわち有効な小数部を持たない場合は、補間データを生成する必要はない）。
このような補間部１０ａ，１０ｂがさらに加わることによって、音程変換比が小数部を持つ場合でも時間軸圧縮伸長を行える、つまり音響信号の音程を任意の音程に変換できるようになる。
【００２２】
クロスフェード部３は、補間部１０ａから出力される補間済み音声データと、補間部１０ｂから出力される補間済み音声データを受け、それら一対のデータに対してクロスフェードを行う。すなわち、各データにそれぞれクロスフェード係数（後述）を乗じた後、互いに加算する。
このようなクロスフェード部３がさらに加わることによって、再生時間は変えずに、音響信号の音程を任意の音程に変換できるようになる。
音声データ出力端子８からは、クロスフェード圧縮伸長が行われた音声データ、つまり音程変換後の音声データが出力される。
【００２３】
以上のように構成されたＣＤ再生機、およびそこに設けられる従来の音程変換装置の動作について、以下に説明する。
図２０において、ユーザは、ＣＤ再生機に対し、最初、図示しない調節つまみ等を通じて所望の音程変換比ｋを指定し、次いで、図示しないＰＬＡＹボタンを押す。
応じて、ＣＤ再生機では、最初、音程変換比設定部２３が音程変換比ｋを設定する。次に、読み出し部２１は、ＣＤ２０から周期Ｔで音声データを読み出す処理を開始し、また、音程変換比設定部２３は、音程変換比ｋを示す音程制御信号を生成する処理を開始する。なお、上記のようにして設定した音程変換比ｋを、再生開始後、別の値に変更することもできる。
こうして読み出された音声データと、生成された音程制御信号とが、それぞれ音声データ入力端子７、音程制御信号入力端子９を通じて従来の音程変換装置に入力される。
【００２４】
図１９において、入力された音声データは、メモリ部１によって一時記憶される。
図２２は、図１９の音程変換装置が行う音程変換処理を視覚的に示した図である。
図２２（ａ）は、図１１のメモリ部１が音声データをどのように記憶するかを視覚的に示した図である。
図２２（ａ）において、ｘ（０），ｘ（１），ｘ（２），…が音声データである。横軸上の目盛りは、サンプリング周期（＝Ｔ）を単位とする実時間（＝ｔ）であり、かつメモリ部１内バッファ上のアドレス（番地）を表している。各音声データの信号値は、横軸からの距離によって表現されている。
図２２（ａ）に示すように、メモリ部１は、入力される音声データを順番に、すなわちｘ（０）を０番地に、ｘ（１）を１番地に、ｘ（２）を２番地に、…のように記憶していく。
【００２５】
一方、入力された音程制御信号は、２分岐されて、読み出しアドレス発生部４ａ，４ｂに与えられる。読み出しアドレス発生部４ａ，４ｂは、与えられた音程制御信号に基づいて、互いに一定値ずれた読み出しアドレスを周期Ｔで発生する。
こうして発生された一対の読み出しアドレスは、メモリ部１および補間部１０ａ，１０ｂへと与えられる。メモリ部１は、与えられた一対の読み出しアドレスに基づいて、先に記憶した音声データ（図２２（ａ）参照）の読み出しを行う。
【００２６】
図２３は、図１９のメモリ部１のバッファ上において、入力されてくる音声データの書き込みが行われる位置と、一対の読み出しアドレス発生部４ａ，４ｂからのアドレスを受けて、先に書き込まれた音声データの読み出しが行われる２つの位置との関係（ただし、音程を高く変換する場合）を示した図である。
図２３において、「ｗ」は、音声データの書き込みが行われるバッファ上の位置を指し示す書き込みポインタである。一方、「ｒ１」は、アドレス発生部からのアドレスと対応するメモリ上の位置、すなわち、そのアドレスを受けて音声データの読み出しが行われるバッファ上の位置を指す読み出しポインタである。また、「ｒ２」は、アドレス発生部からのアドレスと対応するメモリ上の位置、すなわち、そのアドレスを受けて音声データの読み出しが行われるバッファ上の位置を指し示す読み出しポインタである。
ここで、メモリ部１が、入力される音声データをバッファにどのように書き込み、その後、与えられた一対の読み出しアドレスに基づいて、バッファから音声データをどのように読み出すかを、図２３を用いて説明する。
【００２７】
最初、図２３の上段に示されるように、メモリ上において、「ｒ１」は、「ｗ」から所定の距離（これをｄとする）だけ後方（ここでは、ポインタの進行方向を前方とする）にあり、「ｒ２」は、「ｒ１」から距離ｄだけ後方にある。書き込み／読み出し開始後、「ｒ１」は、「ｗ」よりも速く前進し、「ｒ２」は、「ｒ１」と同じ速さで前進する。そして、「ｒ１」が「ｗ」に追い付くと、「ｒ１」は、「ｒ２」から距離ｄだけ後方へとジャンプする。
なお、この期間における「ｒ１」および「ｒ２」の軌跡は、図１８（ａ）に示された領域Ｂ２およびＡ２に相当する。
【００２８】
「ｒ１」のジャンプ直後、図２３の中段に示されるように、「ｒ２」は、「ｗ」から距離ｄだけ後方にあり、「ｒ１」は、「ｒ２」から距離ｄだけ後方にある。引き続き、「ｒ２」は、「ｗ」よりも速く前進し、「ｒ１」は、「ｒ２」と同じ速さで前進する。そして、「ｒ２」が「ｗ」に追い付くと、「ｒ２」は、「ｒ１」から距離ｄだけ後方へとジャンプする。
なお、この期間における「ｒ２」および「ｒ１」の軌跡は、図１８（ａ）に示された領域Ｂ３およびＡ３に相当する。
【００２９】
「ｒ２」のジャンプ直後、図２３の下段に示されるように、「ｒ１」は、「ｗ」から距離ｄだけ後方にあり、「ｒ２」は、「ｒ１」から距離ｄだけ後方にある。以降、「ｗ」、「ｒ１」および「ｒ２」は、上記と同様の移動を繰り返す。
【００３０】
再び図１９において、アドレス発生部によって発生された読み出しアドレスが整数でない場合には、上記のような書き込み／読み出し、すなわち時間軸圧縮伸長処理と平行して、メモリ部１および補間部１０ａ，１０ｂによって、次のような補間処理が実行される。
すなわち、メモリ部１は、読み出しアドレスが整数である（つまり有効な小数部を持たない）場合、その読み出しアドレスと一致する番地に格納された音声データを読み出すが、読み出しアドレスが有効な小数部を持つ場合、その読み出しアドレスに隣接する番地（すなわち、その読み出しアドレスの直前および直後の番地）に格納された２つの音声データを読み出す。
従って、例えば、読み出しアドレスが０の場合は、１つの音声データｘ（０）が読み出されるが、読み出しアドレスが０．５の場合は、２つの音声データｘ（０）およびｘ（１）が読み出される。同様に、読み出しアドレスが１．２６の場合は、２つの音声データｘ（１）およびｘ（２）が読み出される。
【００３１】
読み出しアドレス発生部４ａが発生したアドレスに基づいて読み出された音声データは、補間部１０ａへと与えられ、読み出しアドレス発生部４ｂが発生したアドレスに基づいて読み出された音声データは、補間部１０ｂへと与えられる。
補間部１０ａ，１０ｂは、与えられた音声データおよび読み出しアドレスに基づいて、必要な補間値を算出し、補間済み音声データを出力する。
すなわち、補間部１０ａ，１０ｂは、読み出しアドレスが小数部を持たない場合には、メモリ部１から与えられる１つの音声データをそのまま補間済み音声データとして出力するが、小数部を持つ場合には、その小数部の値と、メモリ部１から与えられる２つの音声データの信号値とに基づいて補間値を算出し、その補間値を補間済み音声データとして出力する。
【００３２】
補間値の算出は、典型的には、いわゆる「直線補間」によって行われる。
図２２（ｂ）は、補間部１０ａ，１０ｂにおいて行われる直線補間（音程変換比ｋが１．２６の場合）を視覚的に示した図である。
図２２（ｂ）において、ｘ（０），ｘ（１），ｘ（２），…は、メモリ部１に記憶されている音声データであり、ｙ（１．２６），ｙ（１．２６×２），…が補間値である。
図２２（ｂ）に示すように、読み出しアドレスが１．２６の場合、補間部１０ａ，１０ｂは、その小数部０．２６と、音声データｘ（１）およびｘ（２）とから、次式（１）を用いて補間値ｙ（１．２６）を算出する。
ｙ（１．２６）＝ｘ（１）＋０．２６×｛ｘ（２）−ｘ（１）｝  …（１）
【００３３】
同様に、読み出しアドレスが１．２６×２の場合、補間部１０ａ，１０ｂは、その小数部（１．２６×２−２）と、音声データｘ（２）およびｘ（３）とから、次式（２）を用いて補間値ｙ（１．２６×２）を算出する。
ｙ（１．２６×２）＝ｘ（２）＋（１．２６×２−２）×｛ｘ（３）−ｘ（２）｝  …（２）
【００３４】
一般には、読み出しアドレスが（ｋ×ｎ）の場合（ｋは音程変換比、ｎは任意の整数）、その整数部をｍとすると、補間部１０ａ，１０ｂは、その小数部（ｋ×ｎ−ｍ）と、音声データｘ（ｍ）およびｘ（ｍ＋１）とから、次式（３）を用いて補間値ｙ（ｋ×ｎ）を算出する。
ｙ（ｋ×ｎ）＝ｘ（ｍ）＋（ｋ×ｎ−ｍ）×｛ｘ（ｍ＋１）−ｘ（ｍ）｝  …（３）
【００３５】
補間部１０ａ，１０ｂから周期Ｔで順次出力される一対の音声データは、クロスフェード部３へと与えられ、クロスフェード部３は、これらの音声データに対し、クロスフェード処理を施す。
すなわち、クロスフェード部３は、一対の音声データに乗じる一対のクロスフェード係数を予め記憶している。
【００３６】
図２４は、図１９のクロスフェード部３が一対の音声データに乗じる一対のクロスフェード係数の一例を示している。
図２４において、αは、音声データがフレーム先頭から何番目のものかを表し、Ｖ（α）は、その音声データ、すなわちフレーム先頭からα番目の音声データに乗じられるクロスフェード係数である。１フレームに含まれる音声データの個数をα0 とすると、α＝０のとき、Ｖ（α）＝０である。また、α＝α0 ／２のときＶ（α）＝１である。
【００３７】
クロスフェード部３は、入力される一対の補間済み音声データを計数することによって、それら一対の補間済み音声データがフレーム先頭から何番目のものかを検出する。例えば、ｎ1 ，ｎ2 番目の補間済み音声データであれば、α＝ｎ1 ，ｎ2と対応する一対のＶ（α）を求めて各々の音声データに乗算し、それらの乗算結果を相互に加算する。
そして、その加算結果、すなわち音程変換後の音声データ｛ｙ’（０），ｙ’（ｋ×１），ｙ’（ｋ×２），…｝が、音声データ出力端子８を通じ、周期Ｔで音程変換装置の外部へと出力される。
【００３８】
音程変換装置から出力された音程変換後の音声データ｛ｙ’（０），ｙ’（ｋ×１），ｙ’（ｋ×２），…｝は、音声データ入力端子２７を通じ、再びＣＤ再生機へと入力される。
図２０において、音声データ入力端子２７を通じて入力された音程変換後の音声データは、再生部２２へと与えられる。再生部２２は、与えられた音程変換後の音声データから音響信号を再生する。
こうして再生された音響信号は、図示しないアンプを通じて増幅された後、スピーカへと入力され、そこで音波に変換される。
【００３９】
図２２（ｃ）は、音程変換後の音声データから再生される音響信号を視覚的に示した図である。
図２２（ｃ）において、｛ｏｕｔ（０），ｏｕｔ（１），ｏｕｔ（２），…｝が、音程変換後の音声データ｛ｙ’（０），ｙ’（ｋ×１），ｙ’（ｋ×２），…｝と対応する音響信号であり、横軸上の目盛りは、周期Ｔを単位とする実時間ｔを表している。
【００４０】
以上のように、従来の音程変換装置では、クロスフェード圧縮伸長によって、再生時間は変えずに音響信号の音程を変換することができる。
しかし、圧縮／伸長時に直線補間を行っているので、低域ではよいが、高域において、理想値と補間値との間のずれが大きく、信号に歪みが生じる問題点を有する。
そこで、高域での信号の歪みを小さくするために、音声データのサンプリング周波数（＝Ｔ-1）をより高いサンプリング周波数（＝Ｎ×Ｔ-1；Ｎは２のべき乗）に変換するオーバーサンプリングを行うことが考えられている（このＮを「オーバーサンプリング比」と呼ぶ）。
【００４１】
図２５は、別の従来の音程変換装置の構成を示すブロック図である。図２５の音程変換装置は、図１９の音程変換装置と同様、例えば図２０のＣＤ再生機に設けられる。
図２５において、別の従来の音程変換装置は、メモリ部１と、１対の読み出しアドレス発生部４ａ，４ｂと、一対の補間部１０ａ，１０ｂと、クロスフェード部３と、音声データ入力端子７と、音声データ出力端子８と、音程制御信号入力端子９と、オーバーサンプリング部１１と、ダウンサンプリング部１２とを備えている。
すなわち、図２５の音程変換装置は、図１９の音程変換装置に、オーバーサンプリング部１１およびダウンサンプリング部１２を追加したものである。
【００４２】
オーバーサンプリング部１１は、音声データ入力端子７を通じて入力される音声データ｛ｘ（０），ｘ（１），ｘ（２），…｝を受け、オーバーサンプリングを行う（ここでは、オーバーサンプリング比が２倍の場合を説明する）。
すなわち、オーバーサンプリング部１１は、インターポーレータ１３と、折り返し成分を除去する特性を持つアンチエイリアス・フィルタ（ローパスフィルタ１４ａ）とを含み、最初、音声データと音声データとの間、つまりｘ（０）とｘ（１）との間，ｘ（１）とｘ（２）との間，…に各１個の零値を挿入する。次に、零値を挿入後の音声データ｛ｘ（０），０，ｘ（１），０，ｘ（２），０，…｝に基づいて、周期｛（１／２）×Ｔ｝でフィルタ演算を行い、音声データ｛ｘ’（０），ｘ’（０．５），ｘ’（１），ｘ’（１．５），ｘ’（２），ｘ’（２．５），…｝を算出する。
【００４３】
ダウンサンプリング部１２は、クロスフェード部３から出力される音程変換後の音声データ｛ｙ’（０），ｙ’（ｋ×０．５），ｙ’（ｋ×１），ｙ’（ｋ×１．５），ｙ’（ｋ×２），ｙ’（ｋ×２．５），…｝を受け、ダウンサンプリングを行う。
すなわち、ダウンサンプリング部１２は、折り返し成分を除去する特性を持つアンチエイリアス・フィルタ（ローパス・フィルタ１４ｂ）と、デシメータ１５とを含み、最初、音声データ｛ｙ’（０），ｙ’（ｋ×０．５），ｙ’（ｋ×１），ｙ’（ｋ×１．５），ｙ’（ｋ×２），ｙ’（ｋ×２．５），…｝に基づいて、周期｛（１／２）×Ｔ｝でフィルタ演算を行い、音声データ｛ｙ”（０），ｙ”（ｋ×０．５），ｙ”（ｋ×１），ｙ”（ｋ×１．５），ｙ”（ｋ×２），ｙ”（ｋ×２．５），…｝を算出する。次に、音声データ｛ｙ”（０），ｙ”（ｋ×０．５），ｙ”（ｋ×１），ｙ”（ｋ×１．５），ｙ”（ｋ×２），ｙ”（ｋ×２．５），…｝から｛ｙ”（ｋ×０．５），ｙ”（ｋ×１．５），ｙ”（ｋ×２．５），…｝を間引く。
【００４４】
オーバーサンプリング部１１およびダウンサンプリング部１２以外の各構成要素は、基本的には、図１９の音程変換装置のものと同様の動作を行う。異なるのは、動作周期が半分、つまり｛（１／２）×Ｔ｝になる点と、メモリ部１のバッファ容量が２倍必要となる点である。一般に、オーバーサンプリング比がＮ倍の場合、動作周期が｛Ｎ-1×Ｔ｝になり、メモリ部１のバッファ容量はＮ倍必要となる。
【００４５】
図２５の音程変換装置の動作が図１９の音程変換装置の動作と異なるのは、次の２つの点である。
第１は、音程変換処理に加え、オーバーサンプリングのための処理がさらに行われる点である。すなわち、音程変換前にインターポレーションおよびフィルタ演算が行われ、音程変換後にフィルタ演算およびデシメーションが行われる。
第２は、オーバーサンプリングによって音声データの個数が増えるので、音程変換処理の単位時間当たりの演算量が増加する点である。すなわち、オーバーサンプリング比がＮ倍の場合、補間部１０ａ，１０ｂやクロスフェード部３の動作周期は｛Ｎ-1×Ｔ｝となる。
【００４６】
図２５の音程変換装置から出力される音声データが図１９の音程変換装置から出力される音声データと異なるのは、次の点である。
図２６は、図２５の音程変換装置が行う音程変換処理を視覚的に示した図である。
すなわち、図２６を図２２と比べればわかるように、２倍オーバーサンプリングによって音声データと次の音声データとの時間間隔が半分に狭まる（一般に、オーバーサンプリング比がＮ倍の場合、Ｎ-1倍に狭まる）ので、読み出しアドレスが小数部を持つときに行われる補間値算出において、その読み出しアドレスにより近接したアドレスの音声データが用いられることになり、その結果、真の値により近い補間値が得られる点である。
従って、図１５の音程変換装置（の音声データ出力端子８）から出力される音声データ｛ｙ”（０），ｙ”（ｋ×１），ｙ”（ｋ×２），…｝は、図１９の音程変換装置（の音声データ出力端子８）から出力される音声データ｛ｙ（０），ｙ（ｋ×１），ｙ（ｋ×２），…｝と比べ、高域での信号の歪みが小さくなっている。そして、オーバーサンプリング比が大きければ大きいほど、高域での信号の歪みは小さくなる。
【００４７】
【発明が解決しようとする課題】
以上のように、従来の音程変換装置は、クロスフェード圧縮伸長の原理に基づいて動作し、かつ音程変換比が小数部を持つ場合には直線補間を行うので、再生時間を変えずに、音響信号の音程を任意の音程に高い精度で変換することができる。しかし、直線補間による補間値は、低域はよいが、高域において、真の値とのずれが大きい。そのため、従来の音程変換装置は、高域における音響信号の歪み（以下、「高域歪み」と呼ぶ）が大きい問題点を有していた。。
そこで、従来の音程変換装置において、さらにオーバーサンプリングを行うことが考えられた。それによって、直線補間による補間値と真の値とのずれが小さくなるので、高域歪みを低減できるからである。この高域歪み低減効果は、オーバーサンプリング比が大きいほど顕著になる。
しかしながら、そのような別の従来の程変換装置には、オーバーサンプリング部１１だけでなくダウンサンプリング部１２も追加されるので、装置の規模が大幅に大きくなる問題点があった。
【００４８】
また、上記別の従来の程変換装置では、Ｎ倍オーバーサンプリングを行う場合、オーバーサンプリング部１１およびダウンサンプリング部１２において、フィルタ演算動作を周期｛Ｔ×Ｎ-1｝で実行しなければならない。そして、Ｎ倍オーバーサンプリングの結果、音声データの個数が（オーバーサンプリングを行わない場合の）Ｎ倍となるので、メモリ部１のバッファ容量をＮ倍にしなければならない上、クロスフェード部３や補間部１０ａ，１０ｂも周期｛Ｔ×Ｎ-1｝で動作する必要がある。つまり、オーバーサンプリング比が大きくなるにつれ、メモリ部１内のバッファを大容量化し、かつオーバーサンプリング部１１のローパスフィルタ１４ａや、ダウンサンプリング部１２のローパスフィルタ１４ｂ、補間部１０ａ，１０ｂ、クロスフェード部３等を高速化しなければならないので、装置の価格が急激に高くなる問題点があった。
【００４９】
それゆえに、本発明の目的は、再生時間を変えずに音響信号の音程を任意の音程に高い精度で変換することができ、しかも、大規模化も高速化も伴わずに高域歪みを十分低減できるような音程変換装置を提供することである。
【００５０】
【課題を解決するための手段および発明の効果】
第１の発明は、再生時間を変えずに音響信号の音程を任意の音程に変換するための音程変換装置であって、
音響信号をサンプリングして得られた離散的な音声データが順次的に入力される音声データ入力端子、
音程変換比を示す音程制御信号が入力される音程制御信号入力端子、
音程制御信号入力端子を通じて入力される音程制御信号に基づいて、互いに一定値ずれた読み出しアドレスを発生する一対の読み出しアドレス発生部、
バッファを含み、音声データ入力端子を通じて入力される音声データを当該バッファに順番に書き込むと共に、各読み出しアドレス発生部が発生した読み出しアドレスの整数部ビットに基づいて、一対の音声データ列を当該バッファから読み出すメモリ部、
Ｎ倍オーバーサンプリング（ただし、Ｎは２のべき乗；以下同様）を行うためのローパスフィルタをポリフェーズ分解して得られるＮ個のサブフィルタと対応するＮ個のフィルタ係数列が予め決められた順序で格納されたフィルタ係数列格納部、
各読み出しアドレス発生部が発生した読み出しアドレスの小数部第１〜第（ｌｏｇ2 Ｎ）ビットに基づいて、フィルタ係数列格納部に格納されているＮ個のフィルタ係数列のうちいずれかのフィルタ係数列を選択する一対のフィルタ係数列選択部、
メモリ部が読み出した一対の音声データ列を受け、各当該音声データ列に対して、各フィルタ係数列選択部が選択したフィルタ係数列を用いてフィルタ演算を行う一対のフィルタ演算部、
各フィルタ演算部から出力される一対の音声データを受け、それら一対の音声データにクロスフェード係数を乗じて互いに加算するクロスフェード部を備えている。
【００５１】
上記第１の発明では、オーバーサンプリングを行う場合と比べ、小規模かつ安価ながら、オーバーサンプリングを行う場合と同程度、高域歪みを低減できる。
しかも、Ｎ倍オーバーサンプリングを行う場合には、バッファの容量がＮ倍必要で、かつフィルタ演算動作の周期はＮ-1倍にしなければならないが、上記第１の発明では、メモリ部に含まれるバッファの容量は、Ｎに関わらず一定でよく、フィルタ演算動作の周期も、Ｎに関わらず一定でよいので、装置の大規模化も高価格化も伴わずに、Ｎを十分大きくできる。よって、Ｎを十分大きくすることによって、直線補間を省略しても、高精度な音程変換が行える。
加えて、読み出しアドレスの小数部第１〜第（ｌｏｇ2 Ｎ）ビットに基づいてフィルタ係数列を選択するので、容易に、かつ装置の大規模化を伴うことなく、フィルタ演算が行える。
【００５２】
第２の発明は、第１の発明において、
メモリ部は、一対の音声データ列をバッファから読み出す際、当該一対の音声データ列と同じまたは各々１番地ずれた別の一対の音声データ列を当該バッファからさらに読み出し、
一対のフィルタ係数列選択部は、各読み出しアドレス発生部が発生した読み出しアドレスの小数部第１〜第（ｌｏｇ2 Ｎ）ビットに基づいて、フィルタ係数列格納部に格納されているＮ個のフィルタ係数列のうちいずれかのフィルタ係数列を選択するのに加え、当該フィルタ係数列に隣接する別のフィルタ係数列をさらに選択し、
メモリ部が読み出した別の一対の音声データ列を受け、各当該別の音声データ列に対して、各フィルタ係数列選択部が選択した別のフィルタ係数列を用いてフィルタ演算を行う別の一対のフィルタ演算部、および
一対のフィルタ演算部から出力される一対の音声データと、別の一対のフィルタ演算部から出力される一対の音声データとを受け、各読み出しアドレス発生部が発生した読み出しアドレスの小数部第｛（ｌｏｇ2 Ｎ）＋１｝ビット以下のビットを補間係数として直線補間値を求めることによって、互いに隣接する２つの音声データの間を補間する一対の補間データを生成する一対の補間部をさらに備え、
クロスフェード部へは、一対の補間部から出力される１対の音声データが与えられることを特徴としている。
【００５３】
上記第２の発明によれば、より高精度な音程変換が可能となる。
【００５４】
第３の発明は、第１または第２の発明において、各読み出しアドレス発生部は、音程変換比を累積加算するアキュームレータを含んでいる。
【００５５】
第４の発明は、第１または第２の発明において、
各読み出しアドレス発生部は、
一定値を累積加算するアキュームレータ、および
アキュームレータの出力と、音程変換比とを乗算する乗算器を含んでいる。
【００５６】
上記第３または第４の発明によれば、バッファから音声データを読み出し、かつフィルタ係数列を選択するための読み出しアドレスが得られる。
【００５７】
第５の発明は、再生時間を変えずに音響信号の音程を任意の音程に変換するための音程変換装置であって、
音響信号をサンプリングして得られた離散的な音声データが順次的に入力される音声データ入力端子、
音程変換比を示す音程制御信号が入力される音程制御信号入力端子、
音程制御信号入力端子を通じて入力される音程制御信号に基づいて、読み出しアドレスを発生する１つの読み出しアドレス発生部、
バッファを含み、音声データ入力端子を通じて入力される音声データを順番に当該バッファに書き込むと共に、読み出しアドレス発生部が発生した読み出しアドレスの整数部ビットに基づいて、互いに一定数番地ずれた一対の音声データ列を当該バッファから読み出すメモリ部、
メモリ部が読み出した一対の音声データ列を受け、当該一対の音声データ列を構成する各一対の音声データにクロスフェード係数を乗じて互いに加算するクロスフェード部、
Ｎ倍オーバーサンプリング（ただし、Ｎは２のべき乗；以下同様）を行うためのローパスフィルタをポリフェーズ分解して得られるＮ個のサブフィルタと対応するＮ個のフィルタ係数列が予め格納されたフィルタ係数列格納部、
読み出しアドレス発生部が発生した読み出しアドレスの小数部第１〜第（ｌｏｇ2 Ｎ）ビットに基づいて、フィルタ係数列格納部に格納されているＮ個のフィルタ係数列のうちいずれかのフィルタ係数列を選択する１つのフィルタ係数列選択部、および
クロスフェード部から出力される音声データ列を受け、当該音声データ列に対して、フィルタ係数列選択部が選択したフィルタ係数列を用いてフィルタ演算を行う１つのフィルタ演算部を備えている。
【００５８】
上記第５の発明では、オーバーサンプリングを行う場合と比べ、小規模かつ安価ながら、オーバーサンプリングを行う場合と同程度、高域歪みを低減できる。
しかも、Ｎ倍オーバーサンプリングを行う場合には、バッファの容量がＮ倍必要で、かつフィルタ演算動作の周期はＮ-1倍にしなければならないが、上記第５の発明では、メモリ部に含まれるバッファの容量は、Ｎに関わらず一定でよく、フィルタ演算動作の周期も、Ｎに関わらず一定でよいので、装置の大規模化も高価格化も伴わずに、Ｎを十分大きくできる。よって、Ｎを十分大きくすることによって、直線補間を省略しても、高精度な音程変換が行える。
加えて、読み出しアドレスの小数部第１〜第（ｌｏｇ2 Ｎ）ビットに基づいてフィルタ係数列を選択するので、容易に、かつ装置の大規模化を伴うことなく、フィルタ演算が行える。
なお、上記の各効果は、第１の発明と同様であるが、第５の発明では、読み出しアドレス発生部、フィルタ係数列選択部およびフィルタ演算部が各１つで済むので、第１の発明よりもさらに、装置の規模が小さいといえる。
【００５９】
第６の発明は、第５の発明において、
バッファ上には、音声データ入力端子を通じて入力される音声データが書き込まれる位置を示す書き込みポインタと、読み出される一対の音声データ列各々の先頭位置を示す一対の読み出しポインタとが設けられ、
バッファは、その先頭と末尾とが輪のように連結された、一対の読み出しポインタ間の距離の２倍に相当する容量を持つようなリングバッファであり、
メモリ部は、一対の読み出しポインタのいずれか一方と、書き込みポインタとの間の距離を、クロスフェード部に通知し、
クロスフェード部は、メモリ部から通知された距離に応じたクロスフェード係数を、一対の音声データ列を構成する各一対の音声データに乗じることを特徴としている。
【００６０】
上記第６の発明では、一対の読み出しポインタのいずれか一方と、書き込みポインタとの間の距離に基づいて、一対の音声データ列に乗じるべきクロスフェード係数を求める。
【００６１】
第７の発明は、第５または第６の発明において、読み出しアドレス発生部は、音程変換比を累積加算するアキュームレータを含んでいる。
【００６２】
第８の発明は、第５または第６の発明において、
読み出しアドレス発生部は、
一定値を累積加算するアキュームレータ、および
アキュームレータの出力と、音程変換比とを乗算する乗算器を含んでいる。
【００６３】
上記第７または第８の発明によれば、バッファから音声データを読み出し、かつフィルタ係数列を選択するための読み出しアドレスが得られる。
【００６４】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、従来と共通し、かつ既に説明した技術については、詳しい説明を省略している。
以下の説明でも、”ｋ”は音程変換比を、”Ｔ”は音声データのサンプリング周期を、”ｔ”はＴを単位とする実時間を、”Ｎ”はオーバーサンプリング比を表す（従来の技術の欄を参照）。
【００６５】
（第１の実施形態）
本発明の第１の実施形態に係る音程変換装置について詳細に説明する前に、概要を説明する。
第１の実施形態に係る音程変換装置は、従来の音程変換装置と同様、時間軸圧縮伸長およびクロスフェードによって、再生時間は変えすに音響信号の音程を変換する。
また、音程変換比を累積加算し、その累積加算結果を読み出しアドレスとして用いる点も、従来の音程変換装置と同様である。
【００６６】
第１の実施形態に係る音程変換装置が従来の音程変換装置と異なるのは、次の点である。
（ア）見かけ上、オーバーサンプリングは行わず、代わりに、オーバーサンプリングに用いるローパスフィルタ１４ａ（または１４ｂ）をポリフェーズ分解して得られるサブフィルタを用いて、次のようなフィルタ演算を行う。
すなわち、別の従来の音程変換装置（図２５参照）は、メモリ部１の前段に、オーバーサンプリング部１１を備えている。オーバーサンプリング部１１に含まれるローパスフィルタ１４ａは、Ｎ倍オーバーサンプリングを行う場合、周期（Ｔ×Ｎ-1）で演算動作を行い、メモリ部１には、それにより得られるサンプリング周期（Ｔ×Ｎ-1）の音声データが一時記憶される。従って、メモリ部１のバッファ容量は、オーバーサンプリングを行わない場合のＮ倍必要となる。
【００６７】
一方、第１の実施形態に係る音程変換装置は、メモリ部１の後段に、上記オーバーサンプリング部１１に含まれるローパスフィルタ１４ａをポリフェーズ分解して得られるＮ個のサブフィルタ（なお、各サブフィルタのタップ数は、ローパスフィルタ１４ａのタップ数のＮ-1倍となる）のいずれかを用いて周期Ｔで演算を行うようなフィルタ演算部を備えている。従って、メモリ部１のバッファ容量は、オーバーサンプリングを行わない場合と同じでよい。
【００６８】
つまり、第１の実施形態に係る音程変換装置では、Ｎ倍オーバーサンプリングを行う音程変換装置と比べ、メモリ部１のバッファ容量はＮ-1倍、フィルタ演算動作の周期はＮ倍（すなわち動作速度はＮ-1倍）ながら、Ｎ倍オーバーサンプリングを行う場合と同等の高域歪み低減効果が得られる。
言い換えれば、メモリ部１のバッファ容量は、オーバーサンプリング比Ｎに関わらず一定でよく、フィルタ演算動作も、クロスフェード圧縮伸長動作と同様、オーバーサンプリング比Ｎに関わらず一定の周期、すなわち音声データのサンプリング周波数と等しい周期（＝Ｔ）で実行すればよい。そのため、装置価格の急上昇を伴うことなく、オーバーサンプリング比Ｎを大きくすることができる。
【００６９】
オーバーサンプリング比を十分大きくすれば、直線補間を行わなくても、高精度な音程変換が行える。よって、補間部１０ａ，１０ｂの分だけ、装置規模を小さくすることができる。
なお、オーバーサンプリング比が小さい場合には、直線補間を行わなければ、音程変換比が時間的に変動して、あまり高精度な音程変換を行うことができない。
【００７０】
（イ）読み出しアドレスの小数部第１〜第（ｌｏｇ2 Ｎ）ビットを用いて、Ｎ個のサブフィルタのいずれかを選択する。これによって、容易に、装置の大規模化を伴うことなく、フィルタ選択を行える。
以下、本発明の第１の実施形態に係る音程変換装置について詳細に説明する。
【００７１】
図１は、本発明の第１の実施形態に係る音程変換装置の構成を示すブロック図である。
第１の実施形態に係る音程変換装置は、例えば、図１２に示す従来のＣＤ再生機に設けられる。
図１において、第１の実施形態に係る音程変換装置は、メモリ部１と、一対のフィルタ演算部２ａ，２ｂと、クロスフェード部３と、一対の読み出しアドレス発生部４ａ，４ｂと、一対のフィルタ係数列選択部５ａ，５ｂと、フィルタ係数列格納部６と、音声データ入力端子７と、音声データ出力端子８と、音程制御信号入力端子９とを備えている。
【００７２】
第１の実施形態に係る音程変換装置では、メモリ部１、読み出しアドレス発生部４ａ，４ｂおよびクロスフェード部３が、音声データに対し、音程変換比に応じた時間軸圧縮伸長およびクロスフェードを行い、それによって、再生時間を変えずに音響信号の音程を変換している。この点は、従来の音程変換装置と同様である。
第１の実施形態に係る音程変換装置では、さらに、フィルタ演算部２ａ，２ｂ、フィルタ係数列選択部５ａ，５ｂ、およびフィルタ係数列格納部６が、必要な音声データだけをフィルタ演算によって算出している。この点が、オーバーサンプリングと補間値算出とを組み合わせて行う別の従来の音程変換装置と異なる。
【００７３】
ここでは、説明を簡単にするために、オーバーサンプリング比を４倍（すなわちＮ＝４）とする。
最初、４倍オーバーサンプリングについて、簡単に説明しておく。
図２は、図１の音程変換装置のフィルタ演算部２ａ，２ｂによって算出される音声データ（音程変換比が１．２６倍の場合）と、図２５の音程変換装置のオーバーサンプリング部１１が４倍オーバーサンプリングを行った場合に得られる音声データとの関係を示す図である。
オーバーサンプリング部１１では、図２（ａ）に示すように、インターポーレータ１３を通じ、音声データと次の音声データとの間、例えばｘ（０）とｘ（１）との間，ｘ（１）とｘ（２）との間，…に各３個の零値が挿入される。その後、ローパスフィルタ１４ａによって、下式（４）をフィルタ係数とするようなフィルタ演算が周期Ｔ×４-1で行われる。
【００７４】
例えば、ｔ＝４以降、オーバーサンプリング部１１のローパスフィルタ１４ａで行われるフィルタ演算は、０との乗算を除外すれば、次のようになる。
ｙ（４）＝ｆ（０）ｘ（４）＋ｆ（４）ｘ（３）＋ｆ（８）ｘ（２）＋ｆ（１２）ｘ（１）＋ｆ（１６）ｘ（０）
ｙ（４＋１／４）＝ｆ（１）ｘ（４）＋ｆ（５）ｘ（３）＋ｆ（９）ｘ（２）＋ｆ（１３）ｘ（１）＋ｆ（１７）ｘ（０）
ｙ（４＋２／４）＝ｆ（２）ｘ（４）＋ｆ（６）ｘ（３）＋ｆ（１０）ｘ（２）＋ｆ（１４）ｘ（１）＋ｆ（１８）ｘ（０）
ｙ（４＋３／４）＝ｆ（３）ｘ（４）＋ｆ（７）ｘ（３）＋ｆ（１１）ｘ（２）＋ｆ（１５）ｘ（１）＋ｆ（１９）ｘ（０）
ｙ（５）＝ｆ（０）ｘ（５）＋ｆ（４）ｘ（４）＋ｆ（８）ｘ（３）＋ｆ（１２）ｘ（２）＋ｆ（１６）ｘ（１）
ｙ（５＋１／４）＝ｆ（１）ｘ（５）＋ｆ（５）ｘ（４）＋ｆ（９）ｘ（３）＋ｆ（１３）ｘ（２）＋ｆ（１７）ｘ（１）
…
【００７５】
こうして、オーバーサンプリング部１１からは、サンプリング周期（Ｔ×４-1）の音声データ｛ｙ（０），ｙ（０．２５），ｙ（０．５），ｙ（０．７５），ｙ（１），ｙ（１．２５），…｝が出力される。
【００７６】
しかし、例えば周波数を１．２６倍に変換する場合、サンプリング周期（Ｔ×４-1）の音声データ｛ｙ（０），ｙ（０．２５），ｙ（０．５），ｙ（０．７５），ｙ（１），ｙ（１．２５），…｝が全て必要なわけではない。
そこで、第１の実施形態に係る音程変換装置では、４つのサブフィルタ（後述）のいずれかを用いて周期Ｔでフィルタ演算を行うことによって、図２（ｂ）に示すように、音程変換に必要な音声データ｛ｙ（０），ｙ（１．２５×１），ｙ（１．２５×２），…｝だけを求める。
【００７７】
再び図１において、音声データ入力端子７へは、ＣＤ再生機の音声データ出力端子２５から出力される音声データ｛ｘ（０），ｘ（１），ｘ（２），ｘ（３），…｝が入力され、メモリ部１は、それら音声データを一時記憶する。
音程制御信号入力端子９へは、ＣＤ再生機の音程制御信号出力端子２６から出力される音程制御信号が入力され、読み出しアドレス発生部４ａ，４ｂは、音程制御信号の示す音程変換比をアドレス増分値として累積加算し、その累積加算結果を、読み出しアドレスとして出力する。
すなわち、読み出しアドレス発生部４ａ，４ｂは、図１９のものと同様の動作を行う。異なるのは、発生された読み出しアドレスの整数部ビットが、有効な読み出しアドレスとしてメモリ部１に与えられ、小数部第１および第２ビット（Ｎ＝４の場合）は、フィルタ選択情報としてフィルタ係数列選択部５ａ，５ｂに与えられる点である。
なお、一般には、小数部第１〜第（ｌｏｇ2 Ｎ）ビットがフィルタ選択情報としてフィルタ係数列選択部５ａ，５ｂに与えられる。
【００７８】
図３は、図１の読み出しアドレス発生部４ａ，４ｂの構成の一例を示すブロック図、図４は、別の一例を示すブロック図である。
図３において、読み出しアドレス発生部４ａ，４ｂは、アドレス増分値（＝ｋ）を累積加算するアキュームレータ１６（ＡＬＵ）を含む。これは、図２１のアドレス発生部と同様の構成である。
図４において、読み出しアドレス発生部４ａ，４ｂは、定数（例えば１）を累積加算するＡＬＵと、アドレス増分値（＝ｋ）とＡＬＵの出力とを乗算する乗算器１７とを含む。これは、図２１のアドレス発生部とは異なる構成であるが、同じ読み出しアドレスを発生する。
【００７９】
図５は、図３，図４のＡＬＵの出力レジスタの一例（２４ビットの場合）を示す模式図である。
図５の出力レジスタでは、左端から第１６番目のビットと第１７番目のビットとの間に小数点があり、小数点より上位にある１６ビットは、読み出しアドレスの整数部を表し、下位にある８ビットは、小数部を表すとみなされる。
小数点のすぐ右隣のビットを「小数部第１ビット」、その右隣を「小数部第２ビット」、…のように呼ぶことにすると、例えばＮ＝４の場合、小数部第１および第２ビットがフィルタ選択情報となる。
なお、読み出しアドレス発生部４ａと、読み出しアドレス発生部４ｂとの関係は、図１９の場合と同じなので、説明を省略する。
【００８０】
再び図１において、メモリ部１は、読み出しアドレス発生部４ａ，４ｂが発生する読み出しアドレスの整数部（上位ビット）に基づいて、バッファから音声データ列を読み出す。
一方、フィルタ係数列格納部６には、４個（一般にはＮ個）のフィルタ係数列が格納されている。これらのフィルタ係数列は、図２５のオーバーサンプリング部１１に含まれるローパスフィルタ１４ａをポリフェース分解して得られる４個（一般にはＮ個）のサブフィルタのフィルタ係数列である。
【００８１】
Ｎ＝４の場合、オーバーサンプリング部１１に含まれるローパスフィルタ１４ａは、そのタップ数を２０とすれば、次式（４）で表現される。
Ｆ（ｚ）＝ｆ（０）＋ｆ（１）ｚ＾（−１／４）＋ｆ（２）ｚ＾（−２／４）＋…＋ｆ（１９）ｚ＾（−１９／４）  …（４）
なお、上式（４）におけるｚ＾（−ｎ）は、遅延演算子であり、ｘ（ｔ）との間で次式（５）のような関係が成り立つ。
ｘ（ｔ）ｚ＾（−ｎ）＝ｘ（ｔ−ｎ）  …（５）
【００８２】
上式（４）で表現されるローパスフィルタ１４ａをポリフェーズ分解して得られる４個のサブフィルタは、次式（６−１）〜（６−４）のようになる。
Ｆ０（ｚ）＝ｆ（０）＋ｆ（４）ｚ＾（−１）＋ｆ（８）ｚ＾（−２）＋ｆ（１２）ｚ＾（−３）＋ｆ（１６）ｚ＾（−４）  …（６−１）
Ｆ１（ｚ）＝［ｆ（１）＋ｆ（５）ｚ＾（−１）＋ｆ（９）ｚ＾（−２）＋ｆ（１３）ｚ＾（−３）＋ｆ（１７）ｚ＾（−４）］ｚ＾（−１／４）  …（６−２）
Ｆ２（ｚ）＝［ｆ（２）＋ｆ（６）ｚ＾（−１）＋ｆ（１０）ｚ＾（−２）＋ｆ（１４）ｚ＾（−３）＋ｆ（１８）ｚ＾（−４）］ｚ＾（−２／４）  …（６−３）
Ｆ３（ｚ）＝［ｆ（３）＋ｆ（７）ｚ＾（−１）＋ｆ（１１）ｚ＾（−２）＋ｆ（１５）ｚ＾（−３）＋ｆ（１９）ｚ＾（−４）］ｚ＾（−３／４）  …（６−４）
【００８３】
フィルタ係数列格納部６に格納されるのは、上記のようにして得られる４個（一般にはＮ個）のサブフィルタの係数部分である。
フィルタ係数列選択部５ａ，５ｂは、読み出しアドレス発生部４ａ，４ｂが発生する読み出しアドレスの小数部第１および第２ビットに基づいて、フィルタ係数列格納部６に格納されている４個（一般にはＮ個）のフィルタ係数列の中からいずれか１つのフィルタ係数列を選択する。そして、そのフィルタ係数列を読み出し、フィルタ演算部２ａ，２ｂへと転送する。
フィルタ演算部２ａ，２ｂは、メモリ部１からの音声データ列と、フィルタ係数列選択部５ａ，５ｂからのフィルタ係数列とに基づいて、フィルタ演算を行う。
【００８４】
クロスフェード部３は、フィルタ演算部２ａから出力される音声データと、フィルタ演算部２ｂから出力される音声データとを受け、それら一対のデータに対してクロスフェードを行う。すなわち、各データにそれぞれクロスフェード係数を乗じた後、互いに加算する。
なお、さらにクロスフェード部３が加わることによって、再生時間は変えずに、音響信号の音程を任意の音程に変換できるようになる点は、従来と同様である。
音声データ出力端子８からは、クロスフェード圧縮伸長が行われた音声データ、つまり音程変換後の音声データが出力される。
【００８５】
以上のように構成された音程変換装置の動作について、以下に説明する。なお、ＣＤ再生機の動作は、従来の技術の項目で説明したものと同様である。
図２０において、ユーザは、ＣＤ再生機に対し、最初、図示しない調節つまみ等を通じて所望の音程変換比ｋを指定し、次いで、図示しないＰＬＡＹボタンを押す。
応じて、ＣＤ再生機では、最初、音程変換比設定部２３が音程変換比ｋを設定する。次に、読み出し部２１は、ＣＤ２０から周期Ｔで音声データを読み出す処理を開始し、また、音程変換比設定部２３は、音程変換比ｋを示す音程制御信号を生成する処理を開始する。なお、上記のようにして設定した音程変換比ｋを、再生開始後、別の値に変更することもできる。
こうして読み出された音声データと、生成された音程制御信号とが、それぞれ音声データ入力端子７、音程制御信号入力端子９を通じて図１の音程変換装置に入力される。
【００８６】
入力された音声データは、メモリ部１によって一時記憶される。メモリ部１が音声データをどのように記憶するかは、図２２（ａ）に示されている。すなわち、メモリ部１は、入力される音声データを順番に、すなわちｘ（０）を０番地に、ｘ（１）を１番地に、ｘ（２）を２番地に、…のように記憶していく。
【００８７】
一方、入力された音程制御信号は、２分岐されて、読み出しアドレス発生部４ａ，４ｂに与えられる。読み出しアドレス発生部４ａ，４ｂは、与えられた音程制御信号に基づいて、互いに一定値ずれた読み出しアドレスを周期Ｔで発生する。
こうして発生された一対の読み出しアドレスは、メモリ部１およびフィルタ係数列選択部５ａ，５ｂへと与えられる。
ただし、読み出しアドレス発生部４ａが発生した読み出しアドレスの整数部ビットが、有効な読み出しアドレスとしてメモリ部１へと与えられ、小数部第１および第２ビットは、フィルタ選択情報としてフィルタ係数列選択部５ａへと与えられる。読み出しアドレス発生部４ｂが発生した読み出しアドレスの整数部ビットが、有効な読み出しアドレスとしてメモリ部１へと与えられ、小数部第１および第２ビットは、フィルタ係数列選択部５ｂへと与えられる。
メモリ部１は、与えられた一対の整数部ビット（有効な読み出しアドレス）に基づいて、バッファから一対の音声データ列を読み出す。
【００８８】
メモリ部１のバッファ上において、入力されてくる音声データの書き込みが行われる位置と、一対の読み出しアドレス発生部４ａ，４ｂからの有効な読み出しアドレスを受けて、一対の音声データ列の読み出しが行われる２つの位置との関係（ただし、音程を高く変換する場合）は、図２３に示されている。ただし、この場合、読み出しポインタ「ｒ１」，「ｒ２」は、読み出される一対の音声データ列の先頭の位置を指し示す。
メモリ部１が、入力される音声データをバッファにどのように書き込み、与えられた一対の有効な読み出しアドレスに基づいて、バッファから一対の音声データ列をどのように読み出すかは、読み出されるのが５個の音声データからなる音声データ列（Ｎ＝４の場合）である違いを除けば、従来の技術の欄で説明したものと同様である。
【００８９】
一方、フィルタ係数列選択部５ａ，５ｂは、与えられた一対のフィルタ選択情報に基づいて、フィルタ係数列格納部６に格納されているＮ個のフィルタ係数列の中からいずれか１つのフィルタ係数列を選択する。そして、そのフィルタ係数列を読み出し、フィルタ演算部２ａ，２ｂへと転送する。
【００９０】
例えば、Ｎ＝４、タップ数が２０の場合、フィルタ係数列格納部６には、次の４個のフィルタ係数列が順番に格納される。
｛ｆ（０），ｆ（４），ｆ（８），ｆ（１２），ｆ（１６）｝
｛ｆ（１），ｆ（５），ｆ（９），ｆ（１３），ｆ（１７）｝
｛ｆ（２），ｆ（６），ｆ（１０），ｆ（１４），ｆ（１８）｝
｛ｆ（３），ｆ（７），ｆ（１１），ｆ（１５），ｆ（１９）｝
以下では、上記のフィルタ係数列を順に、第０フィルタ係数列、第１フィルタ係数列、第２フィルタ係数列、第３フィルタ係数列と呼ぶことにする。
【００９１】
フィルタ係数列選択部５ａ，５ｂは、与えられたフィルタ選択情報に応じて、次のようにフィルタを選択する。
フィルタ選択情報が”００”の場合、第０フィルタ係数列を選択する。
フィルタ選択情報が”０１”の場合、第１フィルタ係数列を選択する。
フィルタ選択情報が”１０”の場合、第２フィルタ係数列を選択する。
フィルタ選択情報が”１１”の場合、第３フィルタ係数列を選択する。
【００９２】
フィルタ演算部２ａ，２ｂは、メモリ部１からの音声データ列（この場合、５個の音声データで構成される）と、フィルタ係数列選択部５ａ，５ｂからのフィルタ係数列とに基づいてフィルタ演算（この場合、タップ数は５）を行い、必要な音声データ｛ｙ（０），ｙ（ｋ×１），ｙ（ｋ×２），…｝を算出する。
ここで、具体例として、音程変換比が１．２６の場合について、読み出しアドレス発生部４ａ，４ｂ、フィルタ係数列選択部５ａ，５ｂおよびフィルタ演算部２ａ，２ｂの処理を説明する。
【００９３】
読み出しアドレス発生部４ａ，４ｂからは、次のような読み出しアドレスが、周期Ｔで順次発生される。
ｔ＝０：  ０
ｔ＝１：  １．２６    ＝  １＋１／４＋０．０１
ｔ＝２：  １．２６×２＝  ２＋２／４＋０．０２
ｔ＝３：  １．２６×３＝  ３＋３／４＋０．０３
ｔ＝４：  １．２６×４＝  ５        ＋０．０４
ｔ＝５：  １．２６×５＝  ６＋１／４＋０．０５
ｔ＝６：  １．２６×６＝  ７＋２／４＋０．０６
ｔ＝７：  １．２６×７＝  ８＋３／４＋０．０７
ｔ＝８：  １．２６×８＝１０        ＋０．０８
ｔ＝９：  １．２６×９＝１１＋１／４＋０．０９
…
【００９４】
上記の読み出しアドレスは、図５の出力レジスタでは、それぞれ次のように表現される。
ｔ＝０：  ００００００００００００００００．００００００００
ｔ＝１：  ０００００００００００００００１．０１００００１０
ｔ＝２：  ００００００００００００００１０．１００００１００
ｔ＝３：  ００００００００００００００１１．１１０００１１０
ｔ＝４：  ０００００００００００００１０１．００００１０００
ｔ＝５：  ０００００００００００００１１０．０１００１０１０
ｔ＝６：  ０００００００００００００１１１．１０００１１００
ｔ＝７：  ００００００００００００１０００．１１００１１１０
ｔ＝８：  ００００００００００００１０１０．０００１００００
ｔ＝９：  ００００００００００００１０１１．０１０１００１０
…
【００９５】
メモリ部１へは、上記の読み出しアドレスの整数部第１〜第１６ビットが、有効な読み出しアドレスとして与えられ、フィルタ係数列選択部５ａ，５ｂへは、上記の読み出しアドレスの小数部第１および第２ビットが、フィルタ選択情報として与えられる（図６参照）。
応じて、メモリ部１は、与えられた有効な読み出しアドレスと対応する音声データを先頭とするような互いに連続した５個一組の音声データを、周期Ｔで順次読み出し、フィルタ演算部２ａ，２ｂへと与える。従って、時刻ｔ＝４以降、メモリ部１から読み出されてフィルタ演算部２ａ，２ｂへと与えられる音声データは、次のようになる。
ｔ＝４：  ｛ｘ（５），ｘ（４），ｘ（３），ｘ（２），ｘ（１）｝
ｔ＝５：  ｛ｘ（６），ｘ（５），ｘ（４），ｘ（３），ｘ（２）｝
ｔ＝６：  ｛ｘ（７），ｘ（６），ｘ（５），ｘ（４），ｘ（３）｝
ｔ＝７：  ｛ｘ（８），ｘ（７），ｘ（６），ｘ（５），ｘ（４）｝
ｔ＝８：  ｛ｘ（１０），ｘ（９），ｘ（８），ｘ（７），ｘ（６）｝
ｔ＝９：  ｛ｘ（１１），ｘ（１０），ｘ（９），ｘ（８），ｘ（７）｝
…
【００９６】
一方、フィルタ係数列選択部５ａ，５ｂは、時刻ｔ＝４以降、フィルタ選択情報に応じて、次のようなフィルタ係数列を選択する。
ｔ＝４：  フィルタ選択情報”００”に基づいて、第０フィルタ係数列を選択ｔ＝５：  フィルタ選択情報”０１”に基づいて、第１フィルタ係数列を選択ｔ＝６：  フィルタ選択情報”１０”に基づいて、第２フィルタ係数列を選択ｔ＝７：  フィルタ選択情報”１１”に基づいて、第３フィルタ係数列を選択ｔ＝８：  フィルタ選択情報”００”に基づいて、第０フィルタ係数列を選択ｔ＝９：  フィルタ選択情報”０１”に基づいて、第１フィルタ係数列を選択
…
【００９７】
フィルタ演算部２ａ，２ｂは、時刻ｔ＝４以降、メモリ部１からの音声データと、フィルタ係数列選択部５ａ，５ｂからのフィルタ係数列とに基づいて、次のようなフィルタ演算を行う。
ｔ＝４：  ｙ（１．２５×４）＝ｆ（０）ｘ（５）＋ｆ（４）ｘ（４）＋ｆ（８）ｘ（３）＋ｆ（１２）ｘ（２）＋ｆ（１６）ｘ（１）
ｔ＝５：  ｙ（１．２５×５）＝ｆ（１）ｘ（６）＋ｆ（５）ｘ（５）＋ｆ（９）ｘ（４）＋ｆ（１３）ｘ（３）＋ｆ（１７）ｘ（２）
ｔ＝６：  ｙ（１．２５×６）＝ｆ（２）ｘ（７）＋ｆ（６）ｘ（６）＋ｆ（１０）ｘ（５）＋ｆ（１４）ｘ（４）＋ｆ（１８）ｘ（３）
ｔ＝７：  ｙ（１．２５×７）＝ｆ（３）ｘ（８）＋ｆ（７）ｘ（７）＋ｆ（１１）ｘ（６）＋ｆ（１５）ｘ（５）＋ｆ（１９）ｘ（４）
ｔ＝８：  ｙ（１．２５×８）＝ｆ（０）ｘ（１０）＋ｆ（４）ｘ（９）＋ｆ（８）ｘ（８）＋ｆ（１２）ｘ（７）＋ｆ（１６）ｘ（６）
ｔ＝９：  ｙ（１．２５×９）＝ｆ（１）ｘ（１１）＋ｆ（５）ｘ（１０）＋ｆ（９）ｘ（９）＋ｆ（１３）ｘ（８）＋ｆ（１７）ｘ（７）
…
【００９８】
こうして得られる音声データ｛…，ｙ（１．２５×４），ｙ（１．２５×５），ｙ（１．２５×６），ｙ（１．２５×７），ｙ（１．２５×８），ｙ（１．２５×９），…｝は、４倍オーバーサンプリングによって得られる音声データと同等であり、理想値｛ｘ（１．２６×４），ｘ（１．２６×５），ｘ（１．２６×６），ｘ（１．２６×７），ｘ（１．２６×８），ｘ（１．２６×９），…｝を良好に近似する。そして、オーバーサンプリング比Ｎが大きければ大きいほど、理想値に近づく。
【００９９】
ここで、以上説明した読み出しアドレス発生部４ａ，４ｂ、フィルタ係数列選択部５ａ，５ｂおよびフィルタ演算部２ａ，２ｂの動作を簡単に整理しておく。図７は、図１の音程変換装置で行われる音程変換動作を視覚的に示した模式図である。
図７において、いま、読み出しアドレス発生部４ａが、読み出しアドレス”００００００００１００１０１１１．１０…”を発生したとする。このとき、有効な読み出しアドレスは、その整数部”００００００００１００１０１１１”すなわち”１５１”（１０進数）であり、一方、フィルタ選択情報は、その小数部第１および第２ビット”１０”（２進数）である。
この読み出しアドレスを受けると、メモリ部１は、バッファの１５１番地〜１４７番地から音声データ列（５個の音声データ）を読み出す。このフィルタ選択情報を受けると、フィルタ係数列選択部５ａは、第３フィルタ係数列を選択する。
そして、読み出された音声データ列と、選択されたフィルタ係数列とが、フィルタ演算部２ａに与えられ、そこでフィルタ演算が行われる。
これと同様の動作が、読み出しアドレス発生部４ｂ、フィルタ係数列選択部５ｂおよびフィルタ演算部２ｂ側でも行われる。
【０１００】
再び図１において、フィルタ演算部２ａ，２ｂから周期Ｔで順次出力される、互いに一定時間ずれた一対の音声データは、クロスフェード部３へと与えられ、クロスフェード部３は、これら音声データに対し、クロスフェード処理を施す。このクロスフェード処理は、従来の技術の欄で説明したものと同様である。
【０１０１】
すなわち、クロスフェード部３は、一対の音声データに乗じる一対のクロスフェード係数、例えば図２４に示されるような係数を予め記憶している。
また、クロスフェード部３は、入力される一対の音声データを計数することによって、それら一対の音声データがフレーム先頭から何番目のものかを検出する。例えば、ｎ1 ，ｎ2 番目の音声データであれば、α＝ｎ1 ，ｎ2と対応する一対のＶ（α）を求めて各々の音声データに乗算し、それらの乗算結果を相互に加算する。
そして、その加算結果、すなわち音程変換後の音声データ｛ｙ’（０），ｙ’（１．２５×１），ｙ’（１．２５×２），…｝、一般には｛ｙ’（０），ｙ’（ｋ’×１），ｙ’（ｋ’×２），…｝が、音声データ出力端子８を通じ、周期Ｔで音程変換装置の外部へと出力される。
【０１０２】
音程変換装置から出力された音程変換後の音声データ｛ｙ’（０），ｙ’（ｋ’×１），ｙ’（ｋ’×２），…｝は、音声データ入力端子２７を通じ、再びＣＤ再生機へと入力される。
図２０において、音声データ入力端子２７を通じて入力された音程変換後の音声データは、再生部２２へと与えられる。再生部２２は、与えられた音程変換後の音声データから音響信号を再生する。
こうして再生された音響信号は、図示しないアンプを通じて増幅された後、スピーカへと入力され、そこで音波に変換される。
【０１０３】
図２（ｃ）は、音程変換後の音声データから再生される音響信号を視覚的に示した図である。
図２（ｃ）において、｛ｏｕｔ（０），ｏｕｔ（１），ｏｕｔ（２），…｝が、音程変換後の音声データ｛ｙ’（０），ｙ’（ｋ×１），ｙ’（ｋ×２），…｝と対応する音響信号であり、横軸上の目盛りは、周期Ｔを単位とする実時間ｔを表している。
【０１０４】
（第２の実施形態）
第２の実施形態では、第１の実施形態において、さらに直線補間を行うようにし、オーバーサンプリング比が小さい場合にも、高精度な音程変換を行えるようにしている。なお、直線補間の原理は、従来の技術の欄で説明したものと同じである。ただし、フィルタ演算によって得られる音声データ、すなわちオーバーサンプリング後の音声データを用いて補間値を算出する点は、従来と異なる。例えば補間値ｙ（１．２６）を算出する場合、従来は音声データｘ（１）およびｘ（２）を用いたが、本実施形態では、オーバーサンプリング後の音声データｙ（１．２５）およびｙ（１．５）を用いる。
また、直線補間のための補間係数には、第１の実施形態では切り捨てられていた、読み出しアドレスの小数部第｛（ｌｏｇ2 Ｎ）＋１｝ビット以下を用いる。これによって、容易に、装置の大規模化を伴うことなく、直線補間を行える。
【０１０５】
図８は、本発明の第２の実施形態に係る音程変換装置の構成を示すブロック図である。
第２の実施形態に係る音程変換装置は、例えば、図２０に示す従来のＣＤ再生機に設けられる。
図８において、第２の実施形態に係る音程変換装置は、メモリ部１と、一対のフィルタ演算部２ａ，２ｂと、別の一対のフィルタ演算部２ｃ，２ｄと、一対の補間部１０ａ，１０ｂと、クロスフェード部３と、一対の読み出しアドレス発生部４ａ，４ｂと、一対のフィルタ係数列選択部５ａ，５ｂと、フィルタ係数列格納部６と、音声データ入力端子７と、音声データ出力端子８と、音程制御信号入力端子９とを備えている。
【０１０６】
すなわち、第２の実施形態に係る音程変換装置は、第１の実施形態に係る音程変換装置に、別の一対のフィルタ演算部２ｃ，２ｄと、一対の補間部１０ａ，１０ｂとを追加したものである。そして、一対の読み出しアドレス発生部４ａ，４ｂが発生した読み出しアドレスの小数部第｛（ｌｏｇ2 Ｎ）＋１｝ビット以下を、補間係数として一対の補間部１０ａ，１０ｂへと与える。
【０１０７】
音声データ入力端子７へは、ＣＤ再生機の音声データ出力端子２５から出力される音声データ｛ｘ（０），ｘ（１），ｘ（２），ｘ（３），…｝が入力され、メモリ部１は、それら音声データを一時記憶する。
音程制御信号入力端子９へは、ＣＤ再生機の音程制御信号出力端子２６から出力される音程制御信号が入力され、読み出しアドレス発生部４ａ，４ｂは、音程制御信号の示す音程変換比をアドレス増分値として累積加算し、その累積加算結果を、読み出しアドレスとして出力する。
【０１０８】
すなわち、読み出しアドレス発生部４ａ，４ｂは、図１のものと同様の動作を行う。そして、発生された読み出しアドレスの整数部ビットが、有効な読み出しアドレスとしてメモリ部１に与えられ、小数部第１および第２ビット（Ｎ＝４の場合）は、フィルタ選択情報としてフィルタ係数列選択部５ａ，５ｂに与えられる（一般には、小数部第１〜第（ｌｏｇ2 Ｎ）ビットがフィルタ選択情報としてフィルタ係数列選択部５ａ，５ｂに与えられる）。この点も、第１の実施形態と同様である。
異なるのは、次の２つの点である。第１は、上記の整数部ビットだけでなく、上記の整数部ビットと小数部第１および第２ビットとから算出された別の整数部ビットが、さらにメモリ部１に与えられる（あるいは、上記の整数部ビットと小数部第１および第２ビットとをメモリ部１に与え、それらに基づいてメモリ部１が別の整数部ビットを算出する）点である。別の整数部ビットは、読み出しアドレス発生部４ａ，４ｂによって発生された読み出しアドレスに対して、小数部第２ビット（一般には、小数部第（ｌｏｇ2 Ｎ）ビット）部分に”１”を加算する処理を行い、その加算結果から整数部を取り出すことにより得られる。
第２は、第１の実施形態では利用されなかった小数部第３ビット以下が、補間部１０ａ，１０ｂに与えられる点である。一般には、小数部第｛（ｌｏｇ2 Ｎ）＋１｝ビット以下が補間部１０ａ，１０ｂに与えられる。
【０１０９】
図９は、図８の読み出しアドレス発生部４ａ，４ｂの構成の一例を示すブロック図、図１０は、別の一例を示すブロック図である。
図９において、読み出しアドレス発生部４ａ，４ｂは、アドレス増分値（＝ｋ）を累積加算するアキュームレータ１６（ＡＬＵ）を含む。これは、図３のものと同様の構成である。
図１０において、読み出しアドレス発生部４ａ，４ｂは、定数（例えば１）を累積加算するＡＬＵと、アドレス増分値（＝ｋ）とＡＬＵの出力とを乗算する乗算器１７とを含む。これは、図４のものと同様の構成である。
【０１１０】
図１１は、図９，図１０のＡＬＵの出力レジスタの一例（２４ビットの場合）を示す模式図である。
図１１の出力レジスタでは、例えばＮ＝４の場合、小数部第３ビット以下が補間係数となる（一般には、小数部第｛（ｌｏｇ2 Ｎ）＋１｝ビット以下が補間係数となる）。この点以外は、図５のそれと同様である。
なお、読み出しアドレス発生部４ａと、読み出しアドレス発生部４ｂとの関係は、第１の実施形態と同じなので、説明を省略する。
【０１１１】
再び図８において、メモリ部１は、読み出しアドレス発生部４ａ，４ｂが発生する読み出しアドレスの整数部ビットに基づいて、バッファから音声データ列を読み出す。
ただし、直線補間を行うために、第１の実施形態と同様の一対の音声データ列に加え、それら一対の音声データ列と同じまたは各々１番地ずれた別の一対の音声データ列も読み出される。すなわち、読み出しアドレス発生部４ａからの整数部ビットに基づいて、互いに同一または１番地ずれた２つの音声データ列が読み出され、読み出しアドレス発生部４ｂからの整数部ビットに基づいて、互いに同一または１番地ずれた２つの音声データ列が読み出される。なお、互いに同一の２つの音声データが読み出されるのは、読み出しアドレス発生部４ａ，４ｂが発生する読み出しアドレスの小数部第１および第２ビットが”００”，”０１”，”１０”のいずれかの場合であり、互いに１番地ずれた２つの音声データ列が読み出されるのは”１１”の場合である。一般には、小数部第１〜第（ｌｏｇ2 Ｎ）ビットが全て”１”の場合のみ、互いに１番地ずれた２つの音声データ列が読み出され、それ以外の場合は、互いに同じ２つの音声データが読み出される。
【０１１２】
フィルタ係数列格納部６には、４個（一般にはＮ個）のフィルタ係数列が格納されている。これらのフィルタ係数列は、第１の実施形態と同じ係数列、すなわち、図２５のオーバーサンプリング部１１に含まれるローパスフィルタ１４ａをポリフェース分解して得られる４個（一般にはＮ個）のサブフィルタの係数部分である。
Ｎ＝４の場合、ローパスフィルタ１４ａは、上式（４）で表現され、それをポリフェーズ分解して得られる４個のサブフィルタは、式（６−１）〜（６−４）で表現される。
【０１１３】
フィルタ係数列選択部５ａは、読み出しアドレス発生部４ａが発生する読み出しアドレスの小数部第１および第２ビット（フィルタ選択情報）に基づいて、フィルタ係数列格納部６に格納されている４個のフィルタ係数列の中から、互いに隣り合う２つのフィルタ係数列を選択する。そして、それらのフィルタ係数列を読み出し、フィルタ演算部２ａ，２ｃへと転送する。
フィルタ係数列選択部５ｂは、読み出しアドレス発生部４ｂが発生する読み出しアドレスの小数部第１および第２ビットに基づいて、フィルタ係数列格納部６に格納されている４個のフィルタ係数列の中から、互いに隣り合う２つのフィルタ係数列を選択する。そして、それらのフィルタ係数列を読み出し、フィルタ演算部２ｂ，２ｄへと転送する。
フィルタ演算部２ａ，２ｃは、メモリ部１からの音声データと、フィルタ係数列選択部５ａからのフィルタ係数列とに基づいて、フィルタ演算を行う。フィルタ演算部２ｂ，２ｄは、メモリ部１からの音声データと、フィルタ係数列選択部５ｂからのフィルタ係数列とに基づいて、フィルタ演算を行う。
【０１１４】
補間部１０ａは、フィルタ演算部２ａ，２ｃからの一対の音声データと、読み出しアドレス発生部４ａからの補間係数（すなわち読み出しアドレスの小数部第３〜第８ビット）とに基づいて、上式（３）を用いて補間値を算出する。補間部１０ｂは、フィルタ演算部２ｂ，２ｄからの音声データと、読み出しアドレス発生部４ｂからの補間係数（すなわち読み出しアドレスの小数部第３〜第８ビット）とに基づいて、上式（３）を用いて補間値を算出する。
【０１１５】
クロスフェード部３は、補間部１０ａから出力される音声データと、補間部１０ｂから出力される音声データとを受け、それら一対のデータに対してクロスフェードを行う。すなわち、各データにそれぞれクロスフェード係数を乗じた後、互いに加算する。
音声データ出力端子８からは、クロスフェード圧縮伸長が行われた音声データ、つまり音程変換後の音声データが出力される。
【０１１６】
以上のように構成された音程変換装置の動作について、以下に説明する。ただし、第１の実施形態の音程変換装置と同様の動作は省略または簡単に説明し、異なる動作だけを詳細に説明する。
図２０において、ＣＤ２０から読み出された音声データと、音程変換比ｋを示す音程制御信号とが、それぞれ音声データ入力端子７、音程制御信号入力端子９を通じて音程変換装置に入力される。
【０１１７】
入力された音声データは、メモリ部１によって一時記憶される。メモリ部１が音声データをどのように記憶するかは、図２２（ａ）に示されている。
一方、入力された音程制御信号は、２分岐されて、読み出しアドレス発生部４ａ，４ｂに与えられる。読み読み出しアドレス発生部４ａ，４ｂは、与えられた音程制御信号に基づいて、互いに一定値ずれた読み出しアドレスを周期Ｔで発生する。
こうして発生された一対の読み出しアドレスは、メモリ部１、一対のフィルタ係数列選択部５ａ，５ｂ、および一対の補間部１０ａ，１０ｂへと与えられる。
【０１１８】
すなわち、読み出しアドレス発生部４ａが発生した読み出しアドレスのビット列のうち整数部ビットが、有効な読み出しアドレスとしてメモリ部１へと与えられ、小数部第１および第２ビットは、フィルタ選択情報としてフィルタ係数列選択部５ａへと与えられる。さらに、小数部第１および第２ビットは、メモリ部１へも与えられ、小数部小数部第３ビット〜第８ビットは、補間部１０ａへと与えられる。
読み出しアドレス発生部４ｂが発生した読み出しアドレスのビット列のうち整数部ビットが、有効な読み出しアドレスとしてメモリ部１へと与えられ、小数部第１および第２ビットは、フィルタ選択情報としてフィルタ係数列選択部５ｂへと与えられる。さらに、小数部第１および第２ビットは、メモリ部１へも与えられ、小数部第３ビット〜第８ビットは、補間部１０ｂへと与えられる。
【０１１９】
メモリ部１は、第１の実施形態と同様にして、与えられた一対の整数部ビット（有効な読み出しアドレス）に基づいて、バッファから一対の音声データ列を読み出す。加えて、与えられた一対の整数部ビットと小数部第１および第２ビットとから別の一対の整数部ビットを算出し、それら別の一対の整数部ビットに基づいて、上記一対の音声データ列と同じまたは各々１番地ずれた別の一対の音声データ列を、バッファからさらに読み出す。
【０１２０】
なお、図２３には、メモリ部１のバッファ上において、入力されてくる音声データの書き込みが行われる位置を示す「ｗ」と、一対の読み出しアドレス発生部４ａ，４ｂからのアドレスを受けて、一対の音声データ列の読み出しが行われる位置を示す「ｒ１」，「ｒ２」との関係（ただし、音程を高く変換する場合）が示されている。図２３を本実施形態に援用するには、「ｒ１」と同じ位置に「ｒ３」を追加し、「ｒ２」と同じ位置に「ｒ４」を追加すればよい。ただし、「ｒ３」は、一時的に「ｒ１」から１番地だけ後方（すなわち図面に向かって右側）にずれることがあり、「ｒ４」は、一時的に「ｒ２」から１番地だけ後方（すなわち図面に向かって右側）にずれることがある。
【０１２１】
一方、フィルタ係数列選択部５ａは、与えられた一対のフィルタ選択情報に基づいて、フィルタ係数列格納部６に格納されている４個（一般にはＮ個）のフィルタ係数列の中から、互いに隣り合う２つのフィルタ係数列を選択する。そして、それらのフィルタ係数列を読み出し、フィルタ演算部２ａ，２ｃへと転送する。フィルタ係数列選択部５ｂは、与えられた一対のフィルタ選択情報に基づいて、フィルタ係数列格納部６に格納されている４個（一般にはＮ個）のフィルタ係数列の中から、互いに隣り合う２つのフィルタ係数列を選択する。そして、それらのフィルタ係数列を読み出し、フィルタ演算部２ｂ，２ｄへと転送する。
【０１２２】
例えば、Ｎ＝４の場合、フィルタ係数列格納部６に格納されるのは、第１の実施形態と同様の第０〜第３フィルタ係数列である。
この場合、フィルタ係数列選択部５ａは、与えられたフィルタ選択情報に基づいて、次のようにフィルタ選択を行う。
【０１２３】
フィルタ選択情報が”００”の場合には、”００”および”０１”と対応する第０および第１フィルタ係数列を選択して、第０フィルタ係数列をフィルタ演算部２ａへ、第１フィルタ係数列をフィルタ演算部２ｃへと転送する。
フィルタ選択情報が”０１”の場合には、”０１”および”１０”と対応する第１および第２フィルタ係数列を選択して、第１フィルタ係数列をフィルタ演算部２ａへ、第２フィルタ係数列をフィルタ演算部２ｃへと転送する。
フィルタ選択情報が”１０”の場合には、”１０”および”１１”と対応する第２および第３フィルタ係数列を選択して、第２フィルタ係数列をフィルタ演算部２ａへ、第３フィルタ係数列をフィルタ演算部２ｃへと転送する。
フィルタ選択情報が”１１”の場合には、”１１”および”００”と対応する第３および第０フィルタ係数列を選択して、第３フィルタ係数列をフィルタ演算部２ａへ、第０フィルタ係数列をフィルタ演算部２ｃへと転送する。
【０１２４】
一方、フィルタ係数列選択部５ｂは、与えられたフィルタ選択情報に基づいて、次のようにフィルタ選択を行う。
フィルタ選択情報が”００”の場合には、”００”および”０１”と対応する第０および第１フィルタ係数列を選択して、第０フィルタ係数列をフィルタ演算部２ｂへ、第１フィルタ係数列をフィルタ演算部２ｄへと転送する。
フィルタ選択情報が”０１”の場合には、”０１”および”１０”と対応する第１および第２フィルタ係数列を選択して、第１フィルタ係数列をフィルタ演算部２ｂへ、第２フィルタ係数列をフィルタ演算部２ｄへと転送する。
フィルタ選択情報が”１０”の場合には、”１０”および”１１”と対応する第２および第３フィルタ係数列を選択して、第２フィルタ係数列をフィルタ演算部２ｂへ、第３フィルタ係数列をフィルタ演算部２ｄへと転送する。
フィルタ選択情報が”１１”の場合には、”１１”および”００”と対応する第３および第０フィルタ係数列を選択して、第３フィルタ係数列をフィルタ演算部２ｂへ、第０フィルタ係数列をフィルタ演算部２ｄへと転送する。
【０１２５】
フィルタ演算部２ａ，２ｂは、メモリ部１からの一対の音声データ列と、フィルタ係数列選択部５ａ，５ｂからの一対のフィルタ係数列とに基づいてフィルタ演算を行う。フィルタ演算部２ｃ，２ｄは、メモリ部１からの別の一対の音声データ列と、フィルタ係数列選択部５ａ，５ｂからの一対のフィルタ係数列とに基づいてフィルタ演算を行う。なお、各々のフィルタ演算は、第１の実施形態と同様である。
【０１２６】
補間部１０ａは、フィルタ演算部２ａ，２ｃからの音声データｙ（ｍ），ｙ（ｍ＋１／４）と、読み出しアドレス発生部４ａからの補間情報（小数部第３〜第８ビット）とに基づいて、次式（７）を用いて補間値ｑ（１．２６×ｎ）を算出する。補間部１０ｂは、フィルタ演算部２ｂ，２ｄからの音声データｙ（ｍ），ｙ（ｍ＋１／４）と、読み出しアドレス発生部４ｂからの補間情報（小数部第３〜第８ビット）とに基づいて、次式（７）を用いて補間値ｑ（１．２６×ｎ）を算出する。
ｑ（１．２６×ｎ）＝ｙ（ｍ）＋（１．２６×ｎ−ｍ）×｛ｙ（ｍ＋１／４）−ｙ（ｍ）｝  …（７）
ここで、ｍは、１．２６以下で最大の、（１／４）の倍数である。また、補間係数（１．２６×ｎ−ｍ）は、補間情報（小数部第３〜第８ビット）の小数部第３ビットと小数部第４ビットとの間に小数点を挿入して得られる値である。
【０１２７】
例えば、ｔ＝３のとき、読み出しアドレスは、１．２６×３、すなわち、
００００００００００００００１１．１１０００１１０
であり（第１の実施形態を参照）、読み出しアドレス発生部４ａからは、この読み出しアドレスの小数部第３〜第８ビット”０００１１０”が、補間情報として補間部１０ａに与えられる。また、フィルタ演算部２ａ，２ｃからは、ｙ（３．７５），ｙ（４．００）が補間部１０ａに与えられる。
応じて、補間部１０ａは、与えられた小数部第３〜第６ビット”０００１１０”において、小数部第３ビットと小数部第４ビットとの間に小数点を挿入する。そして、得られた補間係数”０．００１１０（２進数）”と、音声データｙ（３．７５），ｙ（４．００）とから、上式（７）を用いて補間値ｑ（１．２６×３）を算出する。
【０１２８】
一般には、読み出しアドレスが（ｋ×ｎ）の場合、補間部１０ａ，１０ｂは、補間係数（ｋ×ｎ−ｍ）と、音声データｙ（ｍ），ｙ（ｍ＋１／Ｎ）とから、次式（８）を用いて補間値ｑ（ｋ×ｎ）を算出する。
ｑ（ｋ×ｎ）＝ｙ（ｍ）＋（ｋ×ｎ−ｍ）×｛ｙ（ｍ＋１／Ｎ）−ｙ（ｍ）｝…（８）
このような直線補間をさらに行うことによって、第１の実施形態と比べ、より高精度な音程変換が可能となる。
【０１２９】
補間部１０ａ，１０ｂから周期Ｔで順次出力される、互いに一定時間ずれた一対の音声データは、クロスフェード部３へと与えられ、クロスフェード部３は、これら音声データに対し、クロスフェード処理を施す。このクロスフェード処理は、第１の実施形態と同様である。
すなわち、クロスフェード部３は、一対の補間済み音声データに乗じる一対のクロスフェード係数、例えば図２４に示されるような係数を予め記憶している。また、クロスフェード部３は、入力される一対の補間済み音声データを計数することによって、それら一対の補間済み音声データがフレーム先頭から何番目のものかを検出する。例えば、ｎ1 ，ｎ2 番目の補間済み音声データであれば、α＝ｎ1 ，ｎ2 と対応する一対のＶ（α）を求めて各々の音声データに乗算し、それらの乗算結果を相互に加算する。
そして、その加算結果、すなわち音程変換後の音声データ｛ｑ’（０），’ｑ（ｋ×１），ｑ’（ｋ×２），…｝が、音声データ出力端子８を通じ、周期Ｔで音程変換装置の外部へと出力される。
【０１３０】
音程変換装置から出力された音程変換後の音声データ｛ｑ’（０），ｑ’（ｋ×１），ｑ’（ｋ×２），…｝は、音声データ入力端子２７を通じ、再びＣＤ再生機へと入力される。
図２０において、音声データ入力端子２７を通じて入力された音程変換後の音声データは、再生部２２へと与えられる。再生部２２は、与えられた音程変換後の音声データから音響信号を再生する。
こうして再生された音響信号は、図示しないアンプを通じて増幅された後、スピーカへと入力され、そこで音波に変換される。
【０１３１】
（第３の実施形態）
第３の実施形態では、第１の実施形態において、読み出しアドレス発生部４ｂ、フィルタ係数列選択部５ｂおよびフィルタ演算部２ｂを省略し、かつフィルタ演算部２ａとクロスフェード部３の順序を入れ替えている。
【０１３２】
図１２は、本発明の第３の実施形態に係る音程変換装置の構成を示すブロック図である。
第３の実施形態に係る音程変換装置は、例えば、図２０に示す従来のＣＤ再生機に設けられる。
図１２において、第３の実施形態に係る音程変換装置は、メモリ部１と、フィルタ演算部２ａと、クロスフェード部３と、読み出しアドレス発生部４ａと、フィルタ係数列選択部５ａと、フィルタ係数列格納部６と、音声データ入力端子７と、音声データ出力端子８と、音程制御信号入力端子９とを備えている。
【０１３３】
すなわち、第３の実施形態に係る音程変換装置は、第１の実施形態に係る音程変換装置（図１参照）において、読み出しアドレス発生部４ｂ、フィルタ演算部２ｂおよびフィルタ係数列選択部５ｂを省略し、さらに、フィルタ演算部２ａおよびクロスフェード部３の位置を互いに入れ替えたような構成を有する。
メモリ部１およびクロスフェード部３以外の構成要素は、第１の実施形態と同様の動作を行う。
【０１３４】
図１３は、図１２のメモリ部１およびクロスフェード部３の内部構成を模式的に示した図である。
図１３において、メモリ部１に含まれるバッファは、その記憶領域の先頭と末尾とを輪のように連結したリングバッファであり、図２３に示されている読み出しポインタ「ｒ１」および「ｒ２」の間の距離の２倍に相当する容量を持つ。
ここでは、メモリ部１内のリングバッファの容量を４０９６ワードとする。従って、メモリ部１では、リングバッファの先頭を第０番地、末尾を第４０９５番地とすると、第４０９５番地と第０番地とが連続している、つまり第４０９５番地の次は第０番地となる。
【０１３５】
リングバッファ上において、書き込みポインタ「ｗ」は、矢印の向きに一定の速さで進行している。「ｗ」の速さは、ｋに関わらず、単位時間（＝サンプリング周期Ｔ）あたり１番地だけ進むような速さである。
一方、読み出しポインタ「ｒ１」と「ｒ２」とは、リングバッファを２等分するような位置関係を保ちつつ、「ｗ」の概ねｋ（＝音程変換比）倍の速さで、矢印の向きに進行している。
【０１３６】
この場合、読み出しポインタ「ｒ１」および「ｒ２」の間には、次式（９）のような関係が成り立つ。
ｒ２＝ｒ１＋２０４８（０≦ｒ１＜２０４８），ｒ２＝ｒ１−２０４８（２０４８≦ｒ１＜４０９６）  …（９）
従って、メモリ部１は、読み出しアドレス発生部４ａからの読み出しアドレスｒ１に基づき、上式（９）を用いてｒ２を求めることによって、第１の実施形態と同じ一対の音声データを読み出す。
【０１３７】
以上で注目すべきは、次の２点である。
第１は、一対の読み出しアドレスｒ１，ｒ２の間には、上式（９）のような関係があるので、メモリ部１は、ｒ１，ｒ２のどちらか一方がわかれば、第１の実施形態と同じ一対の音声データを読み出すことができる点である。
第２は、ｒ１の小数部分と、ｒ２の小数部分とが同一となるので、第１の実施形態とは異なり、フィルタ演算で用いるフィルタ係数列の選択を、ｒ１とｒ２とで個別に実行する必要がない点である。さらに、フィルタ演算およびクロスフェードの実行順序を入れ替えれば、フィルタ演算も、ｒ１とｒ２とで個別に実行する必要もなくなる。
これらの点を踏まえ、第３の実施形態に係る音程変換装置では、第１の実施形態に係る音程変換装置（図１参照）において、読み出しアドレス発生部４ｂ、フィルタ演算部２ｂおよびフィルタ係数列選択部５ｂを省略し、さらに、フィルタ演算部２ａおよびクロスフェード部３の位置を互いに入れ替えている。
【０１３８】
また、リングバッファ上において、書き込みポインタ「ｗ」は、読み出しポインタ「ｒ１」と「ｒ２」との間の円弧（長さ２０４８ワード分）を、ａ１とａ２とに内分している。
つまり、ａ１，ａ２は、書き込みアドレスｗと、読み出しアドレスｒ１，ｒ２との差を示しており、次式（１０）を満たす。
ａ１＋ａ２＝２０４８  …（１０）
【０１３９】
このとき、クロスフェード部３は、メモリ部１から読み出される一対の音声データに乗じる一対のクロスフェード係数Ｖ（ａ１），Ｖ（ａ２）を予め記憶している。
図１４は、クロスフェード部３が、メモリ部１から読み出される一対の音声データに乗じる一対のクロスフェード係数Ｖ（ａ１），Ｖ（ａ２）の一例を示している。
ａ１とａ２とは、上式（１０）のような関係にあるので、ａ１，ａ２のいずれか一方がわかればよい。そこで、図１４に示すように、クロスフェード部３は、ａ１（またはａ２）が０〜２０４８のときのＶ（ａ１），Ｖ（ａ２）を予め記憶しておく。そして、読み出しアドレス発生部４ａからの読み出しアドレスｒ１と、書き込みアドレスｗとからａ１を求め、そのａ１と対応するＶ（ａ１），Ｖ（ａ２）を選び出して、メモリ部１から読み出される一対の音声データに乗じる。
【０１４０】
以上のように構成された音程変換装置について、以下にその動作を説明する。ただし、第１の実施形態の音程変換装置と同様の動作は省略または簡単に説明し、異なる動作だけを詳細に説明する。
図２０において、ＣＤ２０から読み出された音声データと、音程変換比ｋを示す音程制御信号とが、それぞれ音声データ入力端子７、音程制御信号入力端子９を通じて音程変換装置に入力される。
【０１４１】
入力された音声データは、メモリ部１によって一時記憶される。メモリ部１が音声データをどのように記憶するかは、図２２（ａ）に示されている。
一方、入力された音程制御信号は、読み出しアドレス発生部４ａに与えられる。読み出しアドレス発生部４ａは、与えられた音程制御信号に基づいて、読み出しアドレスを周期Ｔで発生する。この読み出しアドレスは、第１の実施形態と同じである。
こうして発生された読み出しアドレスは、メモリ部１およびフィルタ係数列選択部５ａへと与えられる。
すなわち、読み出しアドレス発生部４ａが発生した読み出しアドレスの整数部ビットが、有効な読み出しアドレスとしてメモリ部１へと与えられ、小数部第１および第２ビットは、フィルタ選択情報としてフィルタ係数列選択部５ａへと与えられる。
【０１４２】
メモリ部１は、与えられた整数部ビット（有効な読み出しアドレスｒ１）に基づいて、バッファから音声データを読み出す。
すなわち、ｒ１に基づき、上式（９）を用いて、もう一つのアドレスｒ２を算出し、それらｒ１，ｒ２に該当する番地から一対の音声データを読み出す。
【０１４３】
図１５は、図１２のメモリ部１のリングバッファ上において、入力されてくる音声データの書き込みが行われる位置（書き込みアドレスポインタ「ｗ」）と、読み出しアドレス発生部４ａからのアドレスを受けて、一対の音声データの読み出しが行われる２つの位置（読み出しアドレスポインタ「ｒ１」，「ｒ２」）との関係（ただし、音程を高く変換する場合）を模式的に示した図である。
図１５において、「ｗ」，「ｒ１」，「ｒ２」は、時間が経過するにつれ、（ａ），（ｂ），…，（ｌ）のように移動していく。（ｌ）は、（ａ）と同じ状態を示しており、引き続き、（ａ），（ｂ），…，（ｌ）が繰り返される。
【０１４４】
（ａ）〜（ｌ）を通じ、「ｒ１」と「ｒ２」とは、リングバッファを２等分するような位置関係に保たれる。「ｗ」は、一定の速さで矢印の向きに移動し、「ｒ１」および「ｒ２」は、「ｗ」と同じ向きに、「ｗ」よりも速く移動する。なお、ａ１，ａ２は、「ｗ」と「ｒ１」，「ｒ２」との間の距離を表す。これらの点については、先に図１３を用いて説明した。
【０１４５】
（ａ）（または（ｌ））は、「ｒ２」が「ｗ」を追い越す瞬間を示す。この瞬間、「ｒ２」の位置から読み出される音声データが不連続となる。
（ｇ）は、「ｒ１」が「ｗ」を追い越す瞬間を示す。この瞬間、「ｒ１」の位置から読み出される音声データが不連続となる。
（ｄ），（ｊ）は、ａ１＝ａ２となった瞬間を示す。
【０１４６】
再び図１２において、クロスフェード部３は、メモリ部１からの周期Ｔで読み出される一対の音声データに、各々クロスフェード係数を乗算し、それら２つの乗算結果を相互に加算して出力する。
リングバッファ上の「ｒ１」，「ｒ２」から読み出された音声データに乗算されるクロスフェード係数が、それぞれ図１４のＶ（ａ１），Ｖ（ａ２）である。
図１４と図１５とを見比べればわかるように、「ｒ２」の位置から読み出される音声データが不連続となる瞬間（すなわち（ａ）の瞬間）、Ｖ（ａ２）＝０となる。同様に、「ｒ１」の位置から読み出される音声データが不連続となる瞬間（すなわち（ｇ）の瞬間）、Ｖ（ａ１）＝０となる。従って、クロスフェード部３の出力信号には、値の不連続は現れない。
【０１４７】
一方、フィルタ係数列選択部５ａは、与えられた一対のフィルタ選択情報に基づいて、フィルタ係数列格納部６に格納されている４個（一般にはＮ個）のフィルタ係数列の中からいずれか１つのフィルタ係数列を選択する。そして、そのフィルタ係数列を読み出し、フィルタ演算部２ａへと転送する。
なお、フィルタ係数列格納部６に格納されている４個のフィルタ係数列は、第１の実施形態と同じであり、フィルタ係数列選択部５ａも、第１の実施形態と同様にして、いずれかのフィルタ係数列を選択する。
フィルタ演算部２ａは、メモリ部１からの音声データと、フィルタ係数列選択部５ａからのフィルタ係数列とに基づいてフィルタ演算を行い、必要な音声データ｛ｙ’（０），ｙ’（ｋ×１），ｙ’（ｋ×２），…｝を算出する。
【０１４８】
音程変換装置から出力された音程変換後の音声データ｛ｙ’（０），ｙ’（ｋ×１），ｙ’（ｋ×２），…｝は、音声データ入力端子２７を通じ、再びＣＤ再生機へと入力される。
図２０において、音声データ入力端子２７を通じて入力された音程変換後の音声データは、再生部２２へと与えられる。再生部２２は、与えられた音程変換後の音声データから音響信号を再生する。
こうして再生された音響信号は、図示しないアンプを通じて増幅された後、スピーカへと入力され、そこで音波に変換される。音程変換後の音声データから再生される音響信号は、図２（ｃ）と同様である。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る音程変換装置の構成を示すブロック図である。
【図２】図１の音程変換装置のフィルタ演算部２ａ，２ｂによって算出される音声データ（音程変換比が１．２６倍の場合）と、図２５の音程変換装置のオーバーサンプリング部１１が４倍オーバーサンプリングを行った場合に得られる音声データとの関係を示す図である。
【図３】図１の読み出しアドレス発生部４ａ，４ｂの構成の一例を示すブロック図である。
【図４】図１の読み出しアドレス発生部４ａ，４ｂの構成の、別の一例を示すブロック図である。
【図５】図３，図４のＡＬＵの出力レジスタの一例（２４ビットの場合）を示す模式図である。
【図６】読み出しアドレスが、図５の出力レジスタにおいて、どのように表現されるかを視覚的に示した図である。
【図７】図１の音程変換装置で行われる音程変換動作を視覚的に示した模式図である。
【図８】本発明の第２の実施形態に係る音程変換装置の構成を示すブロック図である。
【図９】図８の読み出しアドレス発生部４ａ，４ｂの構成の一例を示すブロック図である。
【図１０】図８の読み出しアドレス発生部４ａ，４ｂの構成の、別の一例を示すブロック図である。
【図１１】図９，図１０のＡＬＵの出力レジスタの一例（２４ビットの場合）を示す模式図である。
【図１２】本発明の第３の実施形態に係る音程変換装置の構成を示すブロック図である。
【図１３】図１２のメモリ部１およびクロスフェード部３の内部構成を模式的に示した図である。
【図１４】クロスフェード部３が、メモリ部１から読み出される一対の音声データに乗じる一対のクロスフェード係数Ｖ（ａ１），Ｖ（ａ２）の一例を示している。
【図１５】図１２のメモリ部１のリングバッファ上において、入力されてくる音声データの書き込みが行われる位置（書き込みアドレスポインタ「ｗ」）と、読み出しアドレス発生部４ａからのアドレスを受けて、一対の音声データの読み出しが行われる２つの位置（読み出しアドレスポインタ「ｒ１」，「ｒ２」）との関係（ただし、音程を高く変換する場合）を模式的に示した図である。
【図１６】音響信号の音程を所望の音程に変換する原理を説明するための図である。
【図１７】互いに連続しない２つの音声フレームを滑らかに接続するクロスフェード処理の原理を説明するための図である。
【図１８】時間軸に沿った圧縮／伸長とクロスフェードとを組み合わせて行うこと（クロスフェード圧縮伸長）によって、再生時間は変えずに音響信号の音程を変換する原理を説明するための図である。
【図１９】従来の音程変換装置の構成の一例を示すブロック図である。
【図２０】図１９の音程変換装置が設けられる従来のＣＤ再生機の構成の一例を示すブロック図である。
【図２１】図１９の読み出しアドレス発生部４ａ，４ｂの構成の一例を示すブロック図である。
【図２２】図１９の音程変換装置が行う音程変換処理を視覚的に示した図である。
【図２３】図１９のメモリ部１のバッファ上において、入力されてくる音声データの書き込みが行われる位置と、一対の読み出しアドレス発生部４ａ，４ｂからのアドレスを受けて、先に書き込まれた音声データの読み出しが行われる２つの位置との関係（ただし、音程を高く変換する場合）を示した図である。
【図２４】図１９のクロスフェード部３が一対の音声データに乗じる一対のクロスフェード係数の一例を示している。
【図２５】オーバーサンプリングを行うような別の従来の音程変換装置の構成を示すブロック図である。
【図２６】図２５の音程変換装置が行う音程変換処理を視覚的に示した図である。
【符号の説明】
１…メモリ部
２ａ〜２ｄ…フィルタ演算部
３…クロスフェード部
４ａ，４ｂ…読み出しアドレス発生部
５ａ，５ｂ…フィルタ係数列選択部
６…フィルタ係数列格納部
７…音声データ入力端子
８…音声データ出力端子
９…音程制御信号入力端子
１０ａ，１０ｂ…補間部
１１…オーバーサンプリング部
１２…ダウンサンプリング部
１３…インターポーレータ
１４ａ，１４ｂ…ローパスフィルタ（ＬＰＦ）
１５…デシメータ
１６…アキュームレータ
１７…乗算器
【図１】
0004416244.tif 000002
【図２】
0004416244.tif 000003
【図３】
0004416244.tif 000004
【図４】
0004416244.tif 000005
【図５】
0004416244.tif 000006
【図６】
0004416244.tif 000007
【図７】
0004416244.tif 000008
【図８】
0004416244.tif 000009
【図９】
0004416244.tif 000010
【図１０】
0004416244.tif 000011
【図１１】
0004416244.tif 000012
【図１２】
0004416244.tif 000013
【図１３】
0004416244.tif 000014
【図１４】
0004416244.tif 000015
【図１５】
0004416244.tif 000016
【図１６】
0004416244.tif 000017
【図１７】
0004416244.tif 000018
【図１８】
0004416244.tif 000019
【図１９】
0004416244.tif 000020
【図２０】
0004416244.tif 000021
【図２１】
0004416244.tif 000022
【図２２】
0004416244.tif 000023
【図２３】
0004416244.tif 000024
【図２４】
0004416244.tif 000025
【図２５】
0004416244.tif 000026
【図２６】
0004416244.tif 000027