(57)【要約】【課題】  音声波形のピッチを直接的に検出することなく、そのピッチを目標とするピッチに変換できる技術、更には音声波形のピッチを確実に抽出するための技術を提供する。【解決手段】  位相補償部２５は、ＦＦＴ部２４が実行するＦＦＴにより周波数成分が得られた周波数チャンネルのなかから、元の音声の基音の１倍以上である倍音の周波数成分が存在する周波数チャンネルを２つ以上、抽出し、その基音を目標とする基音に変換するためのスケーリング値を算出し、そのスケーリング値に応じた位相補償を行う。ピッチシフタ２７は、位相補償が行われた周波数成分に対してＩＦＦＴ部２６がＩＦＦＴを行うことで出力する音声データに、そのスケーリング値に応じたピッチスケーリングを行い、目標とする基音に変換した音声データを生成する。【選択図】      図２
2006243006.tif 000002
【特許請求の範囲】
【請求項１】
第１の音声波形を分析し、該分析結果を用いて該第１の音声波形に音響効果を付与した第２の音声波形を生成できる音響効果付与装置において、
前記第１の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析手段と、
前記周波数分析手段が周波数成分を抽出した周波数チャンネルのなかから、前記第１の音声波形の基音の１倍以上である倍音の周波数成分が存在する周波数チャンネルを２つ以上、抽出する倍音チャンネル抽出手段と、
前記倍音チャンネル抽出手段が抽出した２つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出する公約数算出手段と、
前記第１の音声波形のピッチを変換した音声波形を前記第２の音声波形として生成できる音声波形生成手段と、
前記公約数算出手段が算出する最大公約数を用いて前記ピッチの変換内容を決定し前記音声波形生成手段に前記第２の音声波形を生成させる生成制御手段と、
を具備することを特徴とする音響効果付与装置。
【請求項２】
前記生成制御手段は、前記倍音チャンネル抽出手段が抽出する２つ以上の周波数チャンネルのうちの一つを基準チャンネルとして、該基準チャンネルの周波数と前記最大公約数の周波数比を算出し、該算出した周波数比を用いて前記ピッチの変換内容を決定する、
ことを特徴とする請求項１記載の音響効果付与装置。
【請求項３】
前記生成制御手段は、前記基準チャンネルの周波数を前記最大公約数で割って得られる除算値を前記周波数比として算出し、前記第２の音声波形の目標とする基音でのフレーム間の位相差に該除算値を乗算して目標とする目標位相差を算出し、該算出した目標位相差と該基準チャンネルのフレーム間の位相差の位相差比を算出して、前記ピッチの変換内容を決定する、
ことを特徴とする請求項２記載の音響効果付与装置。
【請求項４】
前記生成制御手段は、前記基準チャンネルの周波数を前記最大公約数で割って得られる除算値を前記周波数比として算出し、該基準チャンネルのフレーム間の位相差を該除算値で除算することで得られる前記第１の音声波形の基音でのフレーム間における位相差を周波数に変換することにより、該基音の周波数を算出し、該算出した基音の周波数を用いて前記ピッチの変換内容を決定する、
ことを特徴とする請求項２記載の音響効果付与装置。
【請求項５】
前記倍音チャンネル抽出手段は、前記周波数分析手段が周波数チャンネル毎に抽出する周波数成分から位相を算出し、該算出した位相を用いて２つ以上の周波数チャンネルを抽出する、
ことを特徴とする請求項１記載の音響効果付与装置。
【請求項６】
音声波形の基音の周波数を抽出する基音抽出装置において、
前記音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析手段と、
前記周波数分析手段が周波数成分を抽出した周波数チャンネルのなかから、前記音声波形の基音の１倍以上である倍音の周波数成分が存在する周波数チャンネルを２つ以上、抽出する倍音チャンネル抽出手段と、
前記倍音チャンネル抽出手段が抽出した２つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出する公約数算出手段と、
前記公約数算出手段が算出する最大公約数を用いて前記音声波形の基音の周波数を抽出する基音抽出手段と、
を具備することを特徴とする基音抽出装置。
【請求項７】
前記基音抽出手段は、前記倍音チャンネル抽出手段が抽出する２つ以上の周波数チャンネルのうちの一つを基準チャンネルとして、該基準チャンネルの周波数を前記最大公約数で割って得られる除算値を算出し、該基準チャンネルのフレーム間の位相差を該除算値で除算することで得られる、前記音声波形の基音でのフレーム間における位相差を周波数に変換することにより、該基音の周波数を算出する、
ことを特徴とする請求項６記載の基音抽出装置。
【請求項８】
前記倍音チャンネル抽出手段は、前記周波数分析手段が周波数チャンネル毎に抽出する周波数成分から位相を算出し、該算出した位相を用いて２つ以上の周波数チャンネルを抽出する、
ことを特徴とする請求項６記載の基音抽出装置。
【請求項９】
第１の音声波形を分析し、該分析結果を用いて該第１の音声波形に音響効果を付与した第２の音声波形を生成できる音響効果付与装置に実行させるプログラムであって、
前記第１の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析機能と、
前記周波数分析機能により周波数成分を抽出した周波数チャンネルのなかから、前記第１の音声波形の基音の１倍以上である倍音の周波数成分が存在する周波数チャンネルを２つ以上、抽出する倍音チャンネル抽出機能と、
前記倍音チャンネル抽出機能により抽出した２つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出する公約数算出機能と、
前記第１の音声波形のピッチを変換した音声波形を前記第２の音声波形として生成できる音声波形生成機能と、
前記公約数算出機能により算出する最大公約数を用いて前記ピッチの変換内容を決定し前記音声波形生成機能により前記第２の音声波形を生成させる生成制御機能と、
を実現させるためのプログラム。
【請求項１０】
音声波形の基音の周波数を抽出する基音抽出装置に実行させるプログラムであって、
前記音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析機能と、
前記周波数分析機能により周波数成分を抽出した周波数チャンネルのなかから、前記音声波形の基音の１倍以上である倍音の周波数成分が存在する周波数チャンネルを２つ以上、抽出する倍音チャンネル抽出機能と、
前記倍音チャンネル抽出機能により抽出した２つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出する公約数算出機能と、
前記公約数算出機能により算出する最大公約数を用いて前記音声波形の基音の周波数を抽出する基音抽出機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１の音声波形を分析し、該分析結果を用いてその第１の音声波形に音響効果を付与した第２の音声波形を生成するための技術に関する。
【背景技術】
【０００２】
音声波形を分析し、その分析結果を用いて音響効果を付与した音声波形を生成できる音響効果付与装置のなかには、その音響効果として音声波形の基音（ピッチ）を変換するものがある。従来の音響効果付与装置としては、特許文献１に記載されたものがある。ここでは、生成後の音声波形、元の音声波形を区別するために、前者を「合成音声波形」、後者を「元音声波形」と表記することとする。
【０００３】
ピッチを変換した合成音声波形の生成は、そのピッチを目標とするピッチ（目標ピッチ）に合わせるために行う場合がある。その場合の変換は従来、元音声波形のピッチ（基本周波数）を直接的に検出し、検出したピッチが目標ピッチとなるようにピッチスケーリングを行うことで実現させるのが普通である。
【０００４】
基本周波数の音（基音）は成分のなかで最もレベルが高いのが普通である。しかし、ギターなどの撥弦楽器やピアノなど打弦楽器では、弦と強さによって、時間の経過と共に、第２倍音（オクターブ上）の方のレベルが高くなる場合がある。これは、直接的な方法では、ピッチを確実には検出できないことを意味する。このようなことから、元音声波形のピッチを直接的に検出することなく、そのピッチを目標ピッチに変換できるようにすることが重要であると考えられる。
【特許文献１】特許第２７５３７１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の第１の課題は、音声波形のピッチを直接的に検出することなく、そのピッチを目標とするピッチに変換できる技術を提供することにある。
本発明の第２の課題は、音声波形のピッチを確実に抽出するための技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の音響効果付与装置は、第１の音声波形を分析し、該分析結果を用いて該第１の音声波形に音響効果を付与した第２の音声波形を生成できることを前提とし、第１の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析手段と、周波数分析手段が周波数成分を抽出した周波数チャンネルのなかから、第１の音声波形の基音の１倍以上である倍音の周波数成分が存在する周波数チャンネルを２つ以上、抽出する倍音チャンネル抽出手段と、倍音チャンネル抽出手段が抽出した２つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出する公約数算出手段と、第１の音声波形のピッチを変換した音声波形を第２の音声波形として生成できる音声波形生成手段と、公約数算出手段が算出する最大公約数を用いてピッチの変換内容を決定し音声波形生成手段に第２の音声波形を生成させる生成制御手段と、を具備する。
【０００７】
なお、上記生成制御手段は、倍音チャンネル抽出手段が抽出する２つ以上の周波数チャンネルのうちの一つを基準チャンネルとして、該基準チャンネルの周波数と最大公約数の周波数比を算出し、該算出した周波数比を用いてピッチの変換内容を決定する、ことが望ましい。より具体的には、生成制御手段は、基準チャンネルの周波数を最大公約数で割って得られる除算値を周波数比として算出し、第２の音声波形の目標とする基音でのフレーム間の位相差に該除算値を乗算して目標とする目標位相差を算出し、該算出した目標位相差と該基準チャンネルのフレーム間の位相差の位相差比を算出して、ピッチの変換内容を決定する、或いは、基準チャンネルの周波数を最大公約数で割って得られる除算値を周波数比として算出し、該基準チャンネルのフレーム間の位相差を該除算値で除算することで得られる第１の音声波形の基音でのフレーム間における位相差を周波数に変換することにより、該基音の周波数を算出し、該算出した基音の周波数を用いてピッチの変換内容を決定する、ことが望ましい。
【０００８】
上記倍音チャンネル抽出手段については、周波数分析手段が周波数チャンネル毎に抽出する周波数成分から位相を算出し、該算出した位相を用いて２つ以上の周波数チャンネルを抽出する、ことが望ましい。
【０００９】
本発明の基音抽出装置は、音声波形の基音の周波数を抽出することを前提とし、音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出する周波数分析手段と、周波数分析手段が周波数成分を抽出した周波数チャンネルのなかから、音声波形の基音の１倍以上である倍音の周波数成分が存在する周波数チャンネルを２つ以上、抽出する倍音チャンネル抽出手段と、倍音チャンネル抽出手段が抽出した２つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出する公約数算出手段と、公約数算出手段が算出する最大公約数を用いて音声波形の基音の周波数を抽出する基音抽出手段と、を具備する。
【００１０】
なお、上記基音抽出手段は、倍音チャンネル抽出手段が抽出する２つ以上の周波数チャンネルのうちの一つを基準チャンネルとして、該基準チャンネルの周波数を最大公約数で割って得られる除算値を算出し、該基準チャンネルのフレーム間の位相差を該除算値で除算することで得られる、音声波形の基音でのフレーム間における位相差を周波数に変換することにより、該基音の周波数を算出する、ことが望ましい。また、倍音チャンネル抽出手段は、周波数分析手段が周波数チャンネル毎に抽出する周波数成分から位相を算出し、該算出した位相を用いて２つ以上の周波数チャンネルを抽出する、ことが望ましい。
【００１１】
本発明の第１、及び第２の態様のプログラムはそれぞれ、上記音響効果付与装置、及び基音抽出装置がそれぞれ具備する手段を実現させるための機能を搭載している。
【発明の効果】
【００１２】
本発明は、第１の音声波形をフレーム単位で周波数分析して周波数チャンネル毎に周波数成分を抽出し、周波数成分を抽出した周波数チャンネルのなかから、第１の音声波形の基音の１倍以上である倍音の周波数成分が存在する周波数チャンネルを２つ以上、抽出し、抽出した２つ以上の周波数チャンネルに対応する周波数間の最大公約数を算出し、算出した最大公約数を用いて基音の変換内容を決定し、決定した変換内容で第１の音声波形の基音を変換した音声波形を第２の音声波形として生成する。
【００１３】
倍音は基音（ピッチ）の周波数の整数倍の周波数を持っている。それにより、倍音の周波数成分が存在する２つ以上の周波数チャンネル（倍音チャンネル）に対応する周波数間の最大公約数は、基音の周波数を表す情報として扱うことができる。このため、その最大公約数を用いて、第１の音声波形の基音を目標とする基音に高精度に変換（シフト）した第２の音声波形を生成することができる。第１の音声波形の基音を抽出（検出）する必要性は回避されることから、ミッシング・ファンダメンタルと呼ばれる基本周波数が欠落、或いは他の周波数と比較して非常に小さいような第１の音声波形でも、目標とする基音を持つ第２の音声波形を確実に生成することができる。また、その最大公約数を用いることにより、第１の音声波形の基音の周波数も確実に抽出（検出）することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図１は、本実施の形態による音響効果付与装置を搭載した電子楽器の構成図である。
その電子楽器は、図１に示すように、楽器全体の制御を行うＣＰＵ１と、複数の鍵を備えた鍵盤２と、各種スイッチを備えたスイッチ部３と、ＣＰＵ１が実行するプログラムや各種制御用データ等を格納したＲＯＭ４と、ＣＰＵ１のワーク用のＲＡＭ５と、例えば液晶表示装置（ＬＣＤ）や複数のＬＥＤなどを備えた表示部６と、マイク７から入力されるアナログの音声信号のＡ／Ｄ変換を行いその音声データを出力するＡ／Ｄ変換器８と、ＣＰＵ１の指示に従い楽音発音用の波形データを生成する楽音生成部９と、その生成部９が生成した波形データのＤ／Ａ変換を行い、アナログのオーディオ信号を出力するＤ／Ａ変換器１０と、そのオーディオ信号を放音するサウンドシステム１１と、を備えて構成されている。それらの構成において、ＣＰＵ１、鍵盤２、スイッチ部３、ＲＯＭ４、ＲＡＭ５、表示部６、Ａ／Ｄ変換器８、及び楽音生成部９の間はバスによって相互に接続されている。なお、上記スイッチ部３は、例えばユーザが操作の対象とする各種スイッチの他に、各種スイッチの状態変化を検出するための検出回路を備えたものである。マイク７は、内蔵されたものか、或いは特には図示しない端子に接続されたものである。
【００１５】
上記構成の電子楽器において、本実施の形態による音響効果付与装置は、マイク７から入力した音声に対し、そのピッチ（基音）を指定されたピッチ（目標ピッチ）に変換（シフト）する音響効果を付与できるものとして実現されている。音声の入力は、外部記憶装置を介して行っても良く、ＬＡＮ、或いは公衆網等の通信ネットワークを介して行っても良い。
【００１６】
図２は、本実施の形態による音響効果付与装置の機能構成図である。
音響効果を付加した音声波形、つまりピッチをシフトした音声波形は、元の音声波形を周波数分析して周波数チャンネル毎に周波数成分（スペクトル成分）を抽出し、抽出した周波数成分をシフトし、そのシフト後の周波数成分を用いて合成（生成）するようになっている。そのために、以下のような機能構成を備えている。
【００１７】
図２に示すＡ／Ｄ変換器（ＡＤＣ）８は、マイク７から出力されたアナログの音声信号をデジタルの音声データに変換するものである。例えばサンプリング周波数８０２１Ｈｚ、１６ｂｉｔでＡＤ変換を行う。以降、それがＡＤ変換して得られる音声データについては便宜的に「元音声データ」、或いは「元波形データ」と呼び、マイク７に入力された音声については「元音声」と呼ぶことにする。
【００１８】
入力バッファ２１は、Ａ／Ｄ変換器８が出力する元音声データを一時的に格納するバッファである。フレーム抽出部２２は、入力バッファ２１に格納された元音声データから予め定められたサイズ分の音声データであるフレームを切り出すことで抽出する。そのサイズ、つまり音声データ（サンプル）数は例えば２５６である。正確な位相展開の実施にはフレームをオーバーラップさせて抽出する必要があることから、フレームの切り出しはオーバーラップファクタＯＶＬでオーバーラップさせて行う。そのファクタＯＶＬの値としては４を設定している。この場合、ホップサイズは６４（２５６／６４＝４）である。また、元音声データのピッチ（以降「元ピッチ」と呼ぶ）から目標ピッチへのピッチスケーリング値の範囲は０．５〜２．０の範囲を前提としている。
【００１９】
フレーム抽出部２２が抽出したフレームはローパスフィルタ（ＬＰＦ）２３に出力される。そのＬＰＦ２３は、ピッチのシフトにより周波数成分がナイキスト周波数を超えることを防止するために高周波成分の除去を行う。ＦＦＴ部２４は、ＬＰＦ２３が出力するフレームを対象に高速フーリエ変換（ＦＦＴ）を実行する。そのＦＦＴは、ＦＦＴサイズ（点数）をフレームサイズの２倍（２５６×２＝５１２）にして実行する。
【００２０】
位相補償部２５は、ＦＦＴの実行により得られた各周波数チャンネルの周波数成分を対象にして、ピッチシフトによるフレームの伸縮を補償するようにそのサイズを伸縮させる。例えばピッチスケーリング値が前提とする範囲の最大値である２とすれば、ピッチシフトによりフレームサイズは１／２に縮小するから、そのサイズを補償（維持）するためにフレームを２倍に引き伸ばす。このことから、ＦＦＴサイズはフレームサイズの２倍としている。ピッチスケーリング値の算出方法についての詳細は後述する。
【００２１】
ＦＦＴ部２４は、ＬＰＦ２３から２５６サンプルのフレームを入力し、ＦＦＴサイズのフレームの前半部分にセットする。後半部分には全て０をセットする。後半部分に０をセットするのは、ＦＦＴを実行した後、周波数領域における補間効果をもたらすためである。その補間効果をもたらすために周波数の分解能が向上する。ＦＦＴ部２４は、そのようなセットを行ったフレームを対象にＦＦＴを実行する。
【００２２】
ＩＦＦＴ部２６は、位相補償部２５がサイズを伸縮させた後の各周波数チャンネルの周波数成分を、ＩＦＦＴ（逆ＦＦＴ）を行うことにより時間領域上のデータに戻し、１フレーム分の音声データを生成して出力する。ピッチシフタ２７は、位相補償部２５から入力するピッチスケーリング値に応じて、ＩＦＦＴ部２６が生成したフレームに対する補間、或いは間引きを行い、そのピッチをシフトする。補間、間引きには一般的なラグランジュ関数やｓｉｎｃ関数などが使用できるが、本実施の形態ではＮｅｖｉｌｌｅ補間によりピッチシフト（ピッチスケーリング）を行っている。上記補間、或いは間引きにより、フレームサイズは元のサイズ（２５６サンプル）となる。そのフレームの音声データについては以降「合成音声データ」と呼び、それによって発音される音声を「合成音声」と呼ぶことにする。
【００２３】
出力バッファ２９は、音声としてサウンドシステム１１から放音させる合成音声データを格納するバッファである。フレーム加算部２８は、ピッチシフタ２７から入力した１フレーム分の合成音声データを、出力バッファ２９に格納された合成音声データにオーバーラップファクタＯＶＬでオーバーラップさせて加算する。出力バッファ２９に格納された合成音声データは、Ｄ／Ａ変換器（ＤＡＣ）１０に出力されてＤ／Ａ変換される。
【００２４】
上記入力バッファ２１、及び出力バッファ２９は、例えばＲＡＭ５に確保された領域である。Ａ／Ｄ変換器８、Ｄ／Ａ変換器１０、入力バッファ２１、及び出力バッファ２９を除く各部２２〜２８は、例えばＲＡＭ５をワーク用にして、ＣＰＵ１がＲＯＭ４に格納されたプログラムを実行することで実現される。特に詳細な説明は省略するが、目標ピッチは例えば鍵盤２への操作により指示するようになっている。その目標ピッチは、スタンダードＭＩＤＩファイル等の演奏データ、或いは通信ネットワークを介して受信されるデータなどにより指定しても良い。
【００２５】
次に、上記位相補償部２５によるピッチスケーリング値の算出方法について詳細に説明する。以降、そのスケーリング値はρと表記する。
ＦＦＴの実行により、周波数が異なる周波数チャンネル毎に、実数成分と虚数成分を持つ周波数成分が抽出される。実数成分をｒｅａｌ、虚数成分をｉｍｇと表記すると、各周波数チャンネルの周波数振幅ｍａｇ、及び位相ｐｈａｓｅは以下のように算出することができる。
【００２６】
ｍａｇ＝（ｒｅａｌ2＋ｉｍｇ2）1/2      ・・・  （１）
ｐｈａｓｅ＝ａｒｃｔａｎ（ｉｍｇ／ｒｅａｌ）      ・・・  （２）
ａｒｃｔａｎを用いて算出される位相ｐｈａｓｅは、−π〜πの間に制限される。しかし、位相ｐｈａｓｅは角速度の積分値であるから展開する必要がある。展開の有無の区別を容易にするために、折り畳まれている位相を小文字のθ、展開されている位相を大文字のΘで表記すると、本来は
Θk,t＝θk,t＋２ｎπ    ｎ＝０，１，２，・・・        ・・・  （３）
となる。このことから、位相ｐｈａｓｅ（＝θ）はｎを求めて展開する必要がある。ここで式（３）中のΘに下添字として付したｋ、ｔはそれぞれ、周波数チャンネルのインデクス、時刻を表している。
【００２７】
その展開は、以下のような手順で行うことができる。
先ず、フレーム間の位相差Δθを次のようにして算出する。
Δθi,k＝θ1,k−θi-1,k              ・・・  （４）
ここで、Δθi,kは元音声波形の周波数チャンネルｋにおける直前のフレームと今回のフレームとの間の位相差、下添字のｉはフレームをそれぞれ表している。今回のフレーム（現フレーム）はｉ、直前のフレームはｉ−１で表されている。
【００２８】
式（４）中のΔθi,kは折り畳まれた状態にある。一方、周波数チャンネルｋの中心角周波数Ωi,kは、サンプリング周波数をｆｓ、ＦＦＴ点数（サイズ）をＮと表記すると
Ωi,k＝（２π・ｆｓ）・ｋ／Ｎ        ・・・  （５）
で示される。その周波数Ωi,kの時、直前のフレームとの時間差をΔｔとすると、位相差ΔＺi,kは
ΔＺi,k＝Ωi,k・Δｔ      ・・・  （６）
で算出できる。時間差Δｔは
Δｔ＝Ｎ／（ｆｓ・ＯＶＬ）    ・・・  （７）
である。式（６）は位相展開されている状態なので、以下のように記述できる。
【００２９】
ΔＺi,k＝Δζi,k＋２ｎπ                   ・・・  （８）
式（４）で算出される位相差Δθi,kと式（８）中の位相差Δζi,kの差をδ（＝Δθi,k−Δζi,k）とすると
Δθi,k−Ωi,k・Δｔ＝（Δζi,k＋δ）−（Δζi,k＋２ｎπ）
＝δ−２ｎπ          ・・・  （９）
が導出できる。従って式（９）の右辺の２ｎπを削除してその範囲を−πからπの間に制限すればδを算出できる。そのδは、元音声波形において実際に検出される位相差（以降「実位相差」と呼ぶ）である。
【００３０】
そのように算出される実位相差δに位相差ΔＺi,k（＝Ωi,k・Δｔ）を加算すれば、以下のように位相展開された位相差ΔΘi,kを求めることができる。
ΔΘi,k＝δ＋Ωi,k・Δｔ＝δ＋（Δζi,k＋２ｎπ）＝Δθi,k＋２ｎπ
・・・  （１０）
式（１０）中のΩi,k・Δｔは、式（５）、（７）より下記のように変形できる。
【００３１】
Ωi,k・Δｔ＝（（２π・ｆｓ）／Ｎ）・ｋ・（Ｎ／（ｆｓ・ＯＶＬ））
＝（２π／ＯＶＬ）・ｋ    ・・・  （１１）
ＦＦＴを含む離散フーリエ変換（ＤＦＴ）では、音声データ（信号）に含まれる周波数成分の周波数がＤＦＴ点数の整数倍となる特別な場合を除き、すべての周波数チャンネルに周波数成分が漏れ出して（遷移して）しまう。そのため、信号の調波構造等を分析する場合は、ＤＦＴの結果から実際に周波数成分が存在する周波数チャンネルを検出する作業が必要になる。
【００３２】
その検出には、周波数振幅のピークを検出し、そのピークを周波数成分の存在するチャンネルと見なす方法を採用するのが一般的である。そのための最も手順が単純な方法としては、前後２つのチャンネルの周波数振幅より大きい周波数振幅を持つチャンネルをピークとして見なすというものが挙げられる。しかし、そのような方法では、窓関数のサイドローブによるピークを間違ってピークと認識する場合がある。このため、探し出したピーク間のチャンネルで周波数振幅が最小となるチャンネルを抽出し、その周波数振幅がピークの周波数振幅の所定値（例えばピークの周波数振幅の−１４ｄｂ））以下であれば正しいピークと見なすことも行われている。
【００３３】
そのようなピーク検出ではピークをより高精度に検出できるが、２段階の探索が必要で処理的に煩雑である。このことから、本実施の形態では、処理の負荷を軽減するために、ピーク検出は行わず、以下のように位相を考慮して、元音声の倍音の周波数成分が存在する周波数チャンネルを検出する。
【００３４】
図３は、展開した位相差と周波数の関係を説明するグラフである。縦軸は位相差、横軸は周波数である。図中に示す直線は、各チャンネルの中心周波数から計算される位相差、すなわち式（６）により計算されるΔＺi,kを表している。その直線に沿う形でプロットした線は、調波構造を持った音声、すなわち有声音の式（１０）により計算される位相差ΔΘi,kを表したものである。その位相差ΔΘi,kはＦＦＴ点数５１２点の前半１２８点分を示している。
【００３５】
図３に示すように、調波構造を持った音声では、その音声の倍音の周波数成分を持つ周波数チャンネル付近で線が階段状（平坦）となる。これは、その周波数チャンネルの周波数成分が近傍のチャンネルに漏れ出すためである。このようなことから、線の階段状となっている部分と直線が交差する個所を含む周波数チャンネルに倍音の周波数成分が存在していると考えられる。その交差する個所は、それを通る縦軸と平行な直線を引いて示してある。
【００３６】
上記交差する個所の周波数チャンネル（以下「倍音チャンネル」と呼ぶ）は、式（１０）と式（６）から算出することができるが、処理的には多少煩雑となる。そこで本実施の形態では、式（９）の実位相差δを使って倍音チャンネルの検出を行う。
【００３７】
上述したように、実位相差δは式（４）のΔθi,kと式（８）のΔζi,kとの差である。このδは実際に周波数成分が存在するチャンネルから離れるほど大きくなり、そのチャンネルに近づくほど小さくなる。チャンネルを超える際に０と交差し、周波数が大きくなる方向に越えた場合には、そのチャンネルを離れるにしたがって負側に絶対値が大きくなっていく。以降、特に断らない限り、グラフ（線）の形状の表現は、周波数が大きくなる方向での視点で行うこととする。
【００３８】
図４は、実位相差δと周波数の関係を説明するグラフである。そのグラフは図３と同じ音声の場合のものである。縦軸は位相差、横軸は周波数である。その図４には、図３に示す縦軸と平行な直線を横軸上の同じ位置に併せて描いてある。
【００３９】
図４に示すように、実位相差δを表す線は、図３では線の階段状となっている部分と直線が交差する個所で正から負にゼロクロスしている。このことから、ゼロクロスする点を検出することにより、倍音チャンネルを探し出すことができる。
【００４０】
その図４から明らかなように、隣接する倍音同士が交錯する部分でも正から負へのゼロクロスが発生する。このことから、本実施の形態では、下記の条件（以降「ゼロクロス判定条件」と呼ぶ）に合致するインデクスｋの周波数チャンネルを倍音の周波数成分が存在する倍音チャンネルとして採用する。インデクスｋの周波数チャンネルはゼロクロス点に最も近い周波数チャンネルである。
【００４１】
δ［ｋ−２］＞δ［ｋ−１］＞δ［ｋ］＞δ［ｋ＋１］＞δ［ｋ＋２］
このようなゼロクロス判定条件を満たす周波数チャンネルｋを探すことにより、正から負に大きくゼロクロスする点に最も近い周波数チャンネルを倍音チャンネルとして高精度に抽出することができる。その抽出は、ＦＦＴ点数が十分でなく、周波数振幅による倍音チャンネルの抽出が困難であっても確実に行うことができる。より高精度な抽出を行う必要がある場合には、ピーク検出を併せて行うようにしても良い。
【００４２】
本実施の形態では、この判定条件を満たす周波数（倍音）チャンネルｋを周波数の小さい方から２つ検出する。これは、周波数が高くなるほど、誤差による影響が大きくなり、精度が低下する傾向があるためである。そのようにして検出した倍音チャンネルのインデクスを周波数の小さい方からｈｍ１、ｈｍ２と表記する。以降、ｈｍ１は基準インデクスとも呼び、その基準インデクスｈｍ１を持つ倍音チャンネルは基準チャンネルとも呼ぶことにする。各倍音チャンネルの位相差ΔΘi,k（ｋ＝ｈｍ１、ｈｍ２）は式（１０）、つまりそのチャンネルの実位相差δに式（１１）により算出されるΩi,k・Δｔを加算することで計算される。
【００４３】
ピッチスケーリング値ρは、倍音チャンネルの検出結果から以下のように算出する。
先ず、検出した２つの倍音チャンネルのインデクスｈｍ１、ｈｍ２に対応する周波数の最大公約数を求める。その最大公約数は、ユークリッドの互除法を使って算出することができる。負でない２つの整数ｘ、ｙの最大公約数ｇｃｄ（ｘ、ｙ）は
【００４４】
【数１】
2006243006.tif 000003
【００４５】
を再帰的に繰り返すことで算出することができる。式（１２）中の「ｘ  ｍｏｄ  ｙ」はｘをｙで割った余りを表している。最大公約数ｇｃｄ（ｘ、ｙ）は別の方法で算出しても良い。
【００４６】
本実施の形態では、元音声として人の音声を想定している。このことから、元音声の取りえる周波数の下限を８０Ｈｚとし、インデクス値の下限はその周波数に相当する６としている。それに合わせ、式（１２）中のｙ＝０の条件はｙ＜６としている。算出した最大公約数はｘと表記する。
【００４７】
最大公約数ｘは、ピッチ（基音）に相当する周波数チャンネルを倍音チャンネルとして抽出できたか否かに係わらずに求めることができる。このため、ミッシング・ファンダメンタルと呼ばれる基本周波数が欠落、或いは他の周波数と比較して非常に小さいような楽音でも確実に求めることができる。
【００４８】
最大公約数ｘを算出した後は、基準インデクスｈｍ１に対応する周波数とがその公約数ｘの比である倍数ｈｍｘを計算する。その倍数ｈｍｘは
ｈｍｘ＝ｈｍ１／ｘ    ・・・  （１３）
により求められる。このようにして求める倍数ｈｍｘは、基準チャンネルに相当する周波数を基本周波数（基音（ピッチ）の周波数）で割った値に相当する。
【００４９】
目標ピッチの展開した位相差ΔΘdは、式（１３）により求めた倍数ｈｍｘを乗算して算出する。目標ピッチの基本周波数をｆｄ［Ｈｚ］とすると、それらの乗算は
ΔΘd・ｈｍｘ＝２πｆｄ・Δｔ・ｈｍｘ
＝（２πｆｄ・ｈｍｘ・Ｎ）／（ｆｓ・ＯＶＬ）  ・・・（１４）
により行うことができる。元音声のピッチを目標ピッチに変換するためのピッチスケーリング値ρは
ρ＝ΔΘd・ｈｍｘ／ΔΘi,hm1  ・・・  （１５）
で算出できる。図２の位相補償部２５は、このようにしてスケーリング値ρを算出してピッチシフタ２７に出力する。それにより、ピッチシフタ２７はそのスケーリング値ρでピッチスケーリングを行い、ピッチをシフトさせる。
【００５０】
また、位相補償部２５は、下式により位相のスケーリングを行う。
θ'i,k＝ΔΘi,k（（θ'i-1,hm1−θi-1,hm1）／ΔΘi,hm1＋（ρ−１））
＋θi,k                                      ・・・  （１６）
式（１６）では、スケーリングを行って得られる位相差には「’」を付して示している。その式（１６）によるスケーリングを行うことにより、時間軸上の位相の一貫性（ＨＰＣ：Horizontal Phase Coherence）およびチャンネル間、すなわち周波数成分間の位相関係（ＶＰＣ：Vertical Phase Coherence）は共に保存される（特願２００４−３７４０９０参照）。
【００５１】
位相補償部２５は、式（１６）によりスケーリングを行った後の位相ｐｈａｓｅ’、及び式（１）から算出した周波数振幅ｍａｇから、以下のオイラーの公式により実数成分ｒｅａｌ’、虚数成分ｉｍｇ’を算出し、複素数の周波数成分に変換する。
【００５２】
ｒｅａｌ’＝ｍａｇ・ｃｏｓ（ｐｈａｓｅ’）    ・・・  （１７）
ｉｍｇ’  ＝ｍａｇ・ｓｉｎ（ｐｈａｓｅ’）    ・・・  （１８）
ＩＦＦＴ部２６は、このようにして変換された周波数成分を周波数チャンネル毎に位相補償部２５から入力し、ＩＦＦＴを実行して時間領域上のデータに戻す。ピッチシフタ２７は、位相補償部２５から入力するピッチスケーリング値ρに応じて、ＩＦＦＴ部２６が生成したフレームに対する補間、或いは間引きによるピッチスケーリングを行う。それにより、データ量は１／ρに伸縮するが、位相補償部２５はρ倍の位相スケーリング（式（１６））を行っているため、その伸縮は打ち消され、データ量は元の大きさを維持することになる。そのようにして得られたフレームをフレーム加算部２８がオーバーラップ加算するため、目標ピッチを持つ合成音声がサウンドシステム１１により放音されることになる。
【００５３】
以降は、上記機能構成の音響効果付与装置を実現させる電子楽器の動作について、図５〜図７に示す各種フローチャートを参照して詳細に説明する。
図５は、全体処理のフローチャートである。始めに図５を参照して、その全体処理について詳細に説明する。なお、その全体処理は、ＣＰＵ１が、ＲＯＭ４に格納されたプログラムを実行して電子楽器のリソースを使用することにより実現される。
【００５４】
先ず、ステップＳＡ１では、電源がオンされたことに伴い、初期化処理を実行する。続くステップＳＡ２では、スイッチ部３を構成するスイッチへのユーザの操作に対応するためのスイッチ処理を実行する。そのスイッチ処理は、例えばスイッチ部３を構成する検出回路に各種スイッチの状態を検出させてその検出結果を受け取り、その検出結果を解析して状態が変化したスイッチの種類、及びその変化を特定して行われる。
【００５５】
ステップＳＡ２に続くステップＳＡ３では、鍵盤２へのユーザの操作に対応するための鍵盤処理を実行する。その鍵盤処理を実行することにより、鍵盤２への演奏操作に応じて楽音がサウンドシステム１１から放音される。ステップＳＡ４にはその後に移行する。
【００５６】
ステップＳＡ４では、Ａ／Ｄ変換器８から元音声データが出力されるサンプリングタイミングか否か判定する。そのタイミングであった場合、判定はＹＥＳとなり、ステップＳＡ５でその元音声データをＲＡＭ５上の入力バッファ２１に書き込んだ後、ステップＳＡ６に移行する。そうでない場合には、判定はＮＯとなってステップＳＡ１０に移行する。
【００５７】
ステップＳＡ６では、フレーム抽出タイミングか否か判定する。前回そのタイミングとなってからホップサイズ分の元音声データをサンプリングする時間が経過した場合、判定はＹＥＳとなってステップＳＡ７に移行する。そうでない場合には、判定はＮＯとなって上記ステップＳＡ１０に移行する。
【００５８】
ステップＳＡ７では、入力バッファ２１に格納された元音声データを１フレーム分、抽出し、抽出したフレームに対して、高周波成分を除去するＬＰＦ処理、及びＦＦＴを順次、行う。次のステップＳＡ８では、ＦＦＴによって得られる各チャンネルの周波数成分を対象に位相補償処理を実行する。その実行後はステップＳＡ９に移行して、位相補償処理を実施した各チャンネルの周波数成分を対象にしたＩＦＦＴ、そのＩＦＦＴにより得られる１フレーム分の音声データへのタイムスケーリング処理の実行によるピッチシフトを行い、そのピッチシフトによって得られた合成音声データをＲＡＭ５上の出力バッファ２９に格納された合成音声データにオーバーラップ加算する。ステップＳＡ１０にはその後に移行する。
【００５９】
図２に示すフレーム抽出部２２、ＬＰＦ２３、及びＦＦＴ部２４は、上記ステップＳＡ７の処理を実行することで実現される。位相補償部２５は、ステップＳＡ８の位相補償処理を実行することで実現される。ＩＦＦＴ部２６、ピッチシフタ２７及びフレーム加算部２８は、ステップＳＡ９の処理を実行することで実現される。
【００６０】
ステップＳＡ１０では、１サンプリング分の合成音声データを出力すべきタイミングか否か判定する。そのタイミングであった場合、判定はＹＥＳとなり、次にステップＳＡ１１で出力すべき合成音声データを出力バッファ２９から読み出して楽音生成部９を介しＤ／Ａ変換器１０に送出し、更にステップＳＡ１２でその他処理を実行した後、上記ステップＳＡ２に戻る。そうでない場合には、判定はＮＯとなり、次にステップＳＡ１２の処理を実行する。
【００６１】
合成された合成音声データは楽音生成部９を介してＤ／Ａ変換器１０に送られる。このことから、楽音生成部９には、自身が生成した楽音の波形データを他から入力したデータとミックスする機能が搭載されている。
【００６２】
図６は、上記ステップＳＡ８として実行される位相補償処理のフローチャートである。次に図６を参照して、その補償処理について詳細に説明する。その補償処理には、ＦＦＴを行うことで得られた各周波数チャンネルの周波数成分が渡される。その周波数成分は、上述したように、実数部と虚数部からなる。
【００６３】
先ず、ステップＳＢ１では、各周波数チャンネルの周波数成分から式（１）、（２）より周波数振幅ｍａｇ、位相ｐｈａｓｅ（＝θ）を算出する。次のステップＳＢ２では、式（４）〜（１０）による、展開した位相差ΔΘi,k（図３）の算出を開始し、実位相差δが算出された時点（式（１０）の手前）で、ステップＳＢ３に移行する。
【００６４】
ステップＳＢ３では、ステップＳＢ２で得られる実位相差δ（図４）から倍音チャンネルを２つ検出する。次に移行するステップＳＢ４では、式（１０）により各周波数チャンネルの位相差ΔΘi,kを算出する。その算出後は、ステップＳＢ５に移行して、ステップＳＢ３で検出した２つの倍音チャンネルに対して、式（１２）〜（１５）により、スケーリング値ρを算出するスケーリング値算出処理を実行する。
【００６５】
ここで、その算出処理について、図７に示すそのフローチャートを参照して詳細に説明する。
先ず、ステップＳＣ１では、ステップＳＢ３で検出した２つの倍音チャンネルのインデクス値ｈｍ１、ｈｍ２に対応する周波数をそれぞれ変数ｈ１、ｈ２に代入する。ここで変数ｈ１、ｈ２はそれぞれ、式（１２）のｘ、ｙに対応する。続くステップＳＣ２では、変数ｈ２の値に対応するインデクス値が６以上か否か判定する。そのインデクス値が６以上であった場合、判定はＹＥＳとなり、次にステップＳＣ３で変数ｈ１の値を変数ｈ２の値で割って得られる剰余を変数ｔに代入し、変数ｈ１に変数ｈ２の値を代入し、更に変数ｈ２に変数ｔの値を代入してから、再度ステップＳＣ２での判定を行う。そうでない場合には、判定はＮＯとなり、ステップＳＣ４に移行する。ステップＳＣ２、ＳＣ３で形成される処理ループをステップＳＣ２の判定がＮＯとなるまで繰り返し実行することにより、インデクス値ｈｍ１、ｈｍ２に対応する周波数間の最大公約数が変数ｈ１に代入される（式（１２））。
【００６６】
ステップＳＣ４では、変数ｈｍｘに、インデクス値ｈｍ１に対応する周波数を変数ｈ１の値（最大公約数）で割った値を代入する（式（１３））。次のステップＳＣ５では、位相差ΔΘdに変数ｈｍｘの値を乗算し（式（１４））、その乗算結果を用いて式（１５）によりスケーリング値ρを算出する。その算出後、一連の処理を終了する。その終了により、図６の位相補償処理ではステップＳＢ６に移行する。
【００６７】
そのステップＳＢ６では、ステップＳＢ４で算出された位相差ΔΘi,kを用いて、式（１６）による位相スケーリング処理を行う。続くステップＳＢ７では、そのスケーリング処理の実行後の位相ｐｈａｓｅ’、及び式（１）から算出した周波数振幅ｍａｇから、実数成分ｒｅａｌ’（式（１７））、虚数成分ｉｍｇ’（式（１８））を算出し、複素数の周波数成分に変換する。その変換を行った後、一連の処理を終了する。
【００６８】
なお、本実施の形態では、倍音チャンネルを２つ抽出しているが、３つ以上の倍音チャンネルを抽出するようにしても良い。ピーク検出を併せて行うようにした場合には、実位相差に注目して抽出した倍音チャンネルのなかから、周波数振幅の大きさを考慮して２つ以上の倍音チャンネルを抽出するようにしても良い。
【００６９】
ピッチシフトによりフォルマントも移動する。そのため、シフト量（スケーリング値ρ）が大きくなるほど、合成音声は不自然なものとなる。それを回避するために、フォルマントの補償を併せて行うようにしても良い。
【００７０】
本実施の形態では、元音声の基音周波数を抽出しなくとも目標ピッチへのピッチシフトを実現できることから、その基本周波数は抽出していない。しかし、その基本周波数は、倍数ｈｍｘを用いて抽出することができる。その抽出（算出）は、基本周波数をｆｉと表記すると、式（７）を用いて
ｆｉ＝ΔΘi,hm1／（２π・Δｔ・ｈｍｘ）
＝（ΔΘi,hm1・ｆｓ・ＯＶＬ）／（２π・Ｎ・ｈｍｘ）  ・・・  （１９）
により行うことができる。本発明を適用した基音抽出装置は、式（１９）により基本周波数ｆｉを算出するものとして、本実施の形態による音響効果付与装置上、或いはそれを搭載した電子楽器上に容易に実現させることができる。目標ピッチが周波数で指定されているような場合には、基本周波数ｆｉを算出してから、その目標ピッチの周波数との比をとることにより、スケーリング値ρを求めても良い。また、算出した基本周波数ｆｉは表示部６等によりユーザに知らせるようにしても良い。合成音声波形の生成については、別の方法を採用しても良い。
【００７１】
上述したような変形例を含む音響効果付与装置、或いは基音抽出装置を実現させるようなプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置を用いて本発明を適用させた音響効果付与装置を実現させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【図面の簡単な説明】
【００７２】
【図１】本実施の形態による音響効果付与装置を搭載した電子楽器の構成図である。
【図２】本実施の形態による音響効果付与装置の機能構成図である。
【図３】展開した位相差と周波数の関係を説明するグラフである。
【図４】実位相差δと周波数の関係を説明するグラフである。
【図５】全体処理のフローチャートである。
【図６】位相補償処理のフローチャートである。
【図７】スケーリング値算出処理のフローチャートである。
【符号の説明】
【００７３】
１    ＣＰＵ
３    スイッチ部
４    ＲＯＭ
５    ＲＡＭ
７    マイク
８    Ａ／Ｄ変換器
９    楽音生成部
１０    Ｄ／Ａ変換器
１１    サウンドシステム
【図１】
2006243006.tif 000004
【図２】
2006243006.tif 000005
【図５】
2006243006.tif 000006
【図６】
2006243006.tif 000007
【図７】
2006243006.tif 000008
【図３】
2006243006.tif 000009
【図４】
2006243006.tif 000010