(57)【特許請求の範囲】
【請求項１】
入力音声信号の音高変動に追従して音高が制御される１乃至複数のハーモニー音信号を生成する音信号生成装置であって、
音声信号を入力する入力手段と、
前記入力された音声信号の具体的ピッチを逐次検出し、該具体的ピッチから音名に対応する正規化されたピッチを検出するピッチ検出手段と、
前記具体的ピッチと正規化されたピッチとの差に関連する差分ピッチ情報を求める差生成手段と、
前記正規化されたピッチに対して相異なる音程を持つ複数のピッチを、生成すべき複数のハーモニー音の目標ピッチとして決定する目標ピッチ決定手段と、
前記複数のハーモニー音のうち、前記差分ピッチ情報に応じたピッチ揺れを反映させる対象とするハーモニー音と、該ピッチ揺れを反映させる対象としないハーモニー音とを特定する手段と、
前記差分ピッチ情報に応じたピッチ揺れを反映させる対象として特定された前記ハーモニー音について、該ハーモニー音の前記目標ピッチを前記差分ピッチ情報に応じて変調したピッチでハーモニー音信号を生成し、他方、前記ピッチ揺れを反映させる対象としないハーモニー音については前記差分ピッチ情報による変調のない前記目標ピッチでハーモニー音信号を生成するハーモニー音信号生成手段と
を具えた音信号生成装置。
【請求項２】
前記複数の目標ピッチ毎に、該目標ピッチに付加するピッチ揺れの程度を調整するためのピッチ調整情報を生成する手段を更に備え、
前記ハーモニー音信号生成手段は、前記差分ピッチ情報に応じたピッチ揺れを反映させる対象として特定された前記ハーモニー音の前記目標ピッチを、該目標ピッチに対応する前記ピッチ調整情報に基づいてピッチ揺れの程度を調整した前記差分ピッチ情報に応じて変調し、該変調された目標ピッチを持つ前記ハーモニー音信号を生成することを特徴とする請求項１に記載の音信号生成装置。
【請求項３】
入力音声信号の音高変動に追従して音高が制御される１乃至複数のハーモニー音信号を生成するコンピュータで実行可能なプログラムであって、前記プログラムは
コンピュータに、
音声信号を入力する手順と、
前記入力された音声信号の具体的ピッチを逐次検出し、該具体的ピッチから音名に対応する正規化されたピッチを検出する手順と、
前記具体的ピッチと正規化されたピッチとの差に関連する差分ピッチ情報を求める手順と、
前記正規化されたピッチに対して相異なる音程を持つ複数のピッチを、生成すべき複数のハーモニー音の目標ピッチとして決定する手順と、
前記複数のハーモニー音のうち、前記差分ピッチ情報に応じたピッチ揺れを反映させる対象とするハーモニー音と、該ピッチ揺れを反映させる対象としないハーモニー音とを特定する手順と、
前記差分ピッチ情報に応じたピッチ揺れを反映させる対象として特定された前記ハーモニー音について、該ハーモニー音の前記目標ピッチを前記差分ピッチ情報に応じて変調したピッチでハーモニー音信号を生成し、他方、前記ピッチ揺れを反映させる対象としないハーモニー音については前記差分ピッチ情報による変調のない前記目標ピッチで該ハーモニー音信号を生成する手順と
を実行させるプログラム。
【請求項４】
入力音声信号の音高変動に追従して音高が制御される1乃至複数のハーモニー音信号を生成する方法であって、
コンピュータによって、音声信号を入力する手順と、
コンピュータによって、前記入力された音声信号の具体的ピッチを逐次検出し、該具体的ピッチから音名に対応する正規化されたピッチを検出する手順と、
コンピュータによって、前記具体的ピッチと正規化されたピッチとの差に関連する差分ピッチ情報を求める手順と、
コンピュータによって、前記正規化されたピッチに対して相異なる音程を持つ複数のピッチを、生成すべき複数のハーモニー音の目標ピッチとして決定する手順と、
コンピュータによって、前記複数のハーモニー音のうち、前記差分ピッチ情報に応じたピッチ揺れを反映させる対象とするハーモニー音と、該ピッチ揺れを反映させる対象としないハーモニー音とを特定する手順と、
コンピュータによって、前記差分ピッチ情報に応じたピッチ揺れを反映させる対象として特定された前記ハーモニー音について、該ハーモニー音の前記目標ピッチを前記差分ピッチ情報に応じた変調したピッチでハーモニー音信号を生成し、他方、前記ピッチ揺れを反映させる対象としないハーモニー音については前記差分ピッチ情報による変調のない前記目標ピッチで該ハーモニー音信号を生成する手順と
を含む、音信号生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入力された音声信号をピッチシフトすることにより１乃至複数のハーモニー音信号を生成する音信号生成装置及びプログラムに関する。特に、複数のハーモニー音信号それぞれに対し、入力音声信号が有するピッチ揺れを任意の大きさで反映させる技術に関する。この発明の音信号生成装置及び方法は、カラオケあるいは電子楽器あるいはエフェクタあるいはパーソナルコンピュータなどの音楽関連機器に附属した人間音声あるいは楽器音の処理システムにおいて利用可能である。
【背景技術】
【０００２】
従来から、マイクロフォン等を介してユーザにより入力された楽器演奏音又は人間の音声等の入力音声信号に基づき、前記入力音声信号とは例えば３度や５度などの所定の音程分だけ上又は下に音高が離れた１乃至複数のハーモニー音信号を自動的に生成し、これを前記入力音声信号と共に再生することでリード音（入力音）及びハーモニー音（付加音）を同時に発音させることのできる電子音楽装置及びプログラムが知られている。こうした装置に関連するものとしては、例えば下記に示す特許文献１や特許文献２に記載されている装置がその一例である。
【０００３】
これら特許文献１や特許文献２に記載されたような従来知られた装置では、入力音声信号を周波数解析して得られる周波数情報（ピッチ）に基づき所定区間（又は所定期間）毎に基本周波数つまりは音楽の音名のいずれかに対応する音高を特定し、該特定した入力音声信号の音高に応じて決定される所定のピッチシフト量に従って入力音声信号（より具体的には、前記特定した音高に対応した窓関数により切り出され記憶される１周期分の波形要素データ）をピッチシフトすることにより、所定の目標音高（音楽の音名のいずれかに対応する音高）の１乃至複数のハーモニー音信号を別途独立した付加音として生成するようになっている。さらに、特許文献２に記載の装置においては、押鍵音（入力音声信号に該当）がユーザによるホイール操作に応じてベンドアップされた場合つまりはピッチベンド値（ピッチシフト量とも呼ぶ）が変更された場合に、付加音（ハーモニー音信号に該当）がコードと調和する音高となるように付加音のピッチベンド量を補正することが開示されている。すなわち、特許文献２に記載の装置では予め指定されているコード情報（具体的にはＣメジャー、Ａマイナーなどのコード名）に従って、当該コードの各構成音からなる複数の付加音が生成されるようになっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第2879948号
【特許文献２】特開平06-202660号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上述した特許文献１や特許文献２に記載されたような従来の装置において、生成されるハーモニー音信号はあくまでも音楽の音名のいずれかに対応する半音単位の音高であり、その音高は常に一定でしかなく半音（１００セント）以下の微妙なピッチ変化（この明細書ではピッチ揺れと呼ぶ）を有しないために、ハーモニー音の音楽的な表情が機械的なものとなって都合が悪い、という問題があった。特に、入力音声信号がピッチ揺れを有するような場合には、リード音（入力音）の音楽的に豊かな表情とハーモニー音（付加音）の音楽的に機械的な表情との間に大きな隔たりが生じうるので、ユーザが違和感を抱きやすい。また、単にピッチ揺れのあるハーモニー音（入力音声信号のピッチ揺れを反映していない）を生成するには、前記音高一定のハーモニー音信号に対してビブラートをかけるなどのピッチ制御を行えばよい。ところで、ユーザ自身の好みにあわせたハーモニー、例えば高音側に比べて低音側のピッチの揺れが小さく安定している全体として聴きやすいハーモニー、曲調に応じた雰囲気（メジャー感やマイナー感など）が明瞭に出されたハーモニー、テンションノートのピッチ揺れを調整することによる緊張感に強弱をつけたハーモニーなどを最終的に発生させるためには、異なるピッチ揺れを有する複数のハーモニー音を生成する必要がある。しかし、従来において異なるピッチ揺れを有する複数のハーモニー音を生成するためには、ビブラート制御のためのパラメータ設定等をハーモニー音毎に個々に行わなければならず、そうした操作がユーザにとって非常に面倒であった。そこで、入力音声信号が有するピッチ揺れをそれぞれ任意の大きさで反映させた１乃至複数のハーモニー音信号を簡単な操作で生成することのできる音信号生成装置が望まれていたが、未だそうしたものは提案されていない。
【０００６】
本発明は上述の点に鑑みてなされたもので、入力音声信号そのものが有する半音以下のピッチ変化（ピッチ揺れ）を、該入力音声信号を元に自動生成される複数のハーモニー音信号それぞれに対して任意に反映させることが容易にできるようにした音信号生成装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る音信号生成装置は、入力音声信号の音高変動に追従して音高が制御される１乃至複数のハーモニー音信号を生成する音信号生成装置であって、音声信号を入力する入力手段と、前記入力された音声信号の具体的ピッチを逐次検出し、該具体的ピッチから音名に対応する正規化されたピッチを検出するピッチ検出手段と、前記具体的ピッチと正規化されたピッチとの差に関連する差分ピッチ情報を求める差生成手段と、前記正規化されたピッチに対して相異なる音程を持つ複数のピッチを、生成すべき複数のハーモニー音の目標ピッチとして決定する目標ピッチ決定手段と、前記複数のハーモニー音のうち、前記差分ピッチ情報に応じたピッチ揺れを反映させる対象とするハーモニー音と、該ピッチ揺れを反映させる対象としないハーモニー音とを特定する手段と、前記差分ピッチ情報に応じたピッチ揺れを反映させる対象として特定された前記ハーモニー音について、該ハーモニー音の前記目標ピッチを前記差分ピッチ情報に応じて変調したピッチでハーモニー音信号を生成し、他方、前記ピッチ揺れを反映させる対象としないハーモニー音については前記差分ピッチ情報による変調のない前記目標ピッチでハーモニー音信号を生成するハーモニー音信号生成手段とを具える。
【０００８】
差分ピッチ情報は、入力された音声信号におけるピッチ揺れ（ピッチの揺らぎ成分）を示すものであるから、目標ピッチを該差分ピッチ情報に応じて変調したピッチを持つハーモニー音信号（ハーモニー音）を生成することにより、入力音声信号（リード音）が有するピッチ揺れを反映させたハーモニー音信号を生成することができる。一方、差分ピッチ情報による変調のない一定の目標ピッチでハーモニー音信号を生成することにより、入力音声信号（リード音）が有するピッチ揺れを反映させない、安定したピッチのハーモニー音信号を生成することができる。本発明によれば、複数のハーモニー音のうち、前記差分ピッチ情報に応じたピッチ揺れを反映させる対象とするハーモニー音と、該ピッチ揺れを反映させる対象としないハーモニー音とをそれぞれ特定することにより、この特定に応じて、目標ピッチを前記差分ピッチ情報に応じて変調したピッチでハーモニー音信号を生成することと、ピッチ揺れのない該目標ピッチでハーモニー音信号を生成することを、各ハーモニー音毎に使い分けることができる。従って、同時に発生される複数のハーモニー音のうち、特定の音程（例えば３度あるいはテンションノートなど）のハーモニー音をピッチ揺れのない安定した目標ピッチで生成し、その他のハーモニー音は入力音声信号（リード音）が有するピッチ揺れを反映させた目標ピッチで生成する、といった使い分けにより、例えば、聴きやすいハーモニー音や、曲調に応じた雰囲気（メジャー感やマイナー感など）を持つハーモニー音、あるいはテンション感に強弱をつけたハーモニー音など、多様な目的に応じたハーモニー音生成を行うことができる。
【０００９】
本発明は装置の発明として構成し実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【発明の効果】
【００１０】
この発明によれば、複数のハーモニー音のうち、前記差分ピッチ情報に応じたピッチ揺れを反映させる対象とするハーモニー音と、該ピッチ揺れを反映させる対象としないハーモニー音とをそれぞれ特定することにより、この特定に応じて、目標ピッチを前記差分ピッチ情報に応じて変調したピッチでハーモニー音信号を生成することと、ピッチ揺れのない該目標ピッチでハーモニー音信号を生成することを、各ハーモニー音毎に使い分けることができる。従って、同時に発生される複数のハーモニー音のうち、特定の音程（例えば３度あるいはテンションノートなど）のハーモニー音をピッチ揺れのない安定した目標ピッチで生成し、その他のハーモニー音は入力音声信号（リード音）が有するピッチ揺れを反映させた目標ピッチで生成する、といった使い分けにより、例えば、聴きやすいハーモニー音や、曲調に応じた雰囲気（メジャー感やマイナー感など）を持つハーモニー音、あるいはテンション感に強弱をつけたハーモニー音など、多様な目的に応じたハーモニー音生成を行うことができる、という効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】この発明に係る音信号生成装置（電子音楽装置）の全体構成の一実施例を示したハード構成ブロック図である。
【図２】ハーモニーテーブルのデータ構成の一実施例を示す概念図である。
【図３】ハーモニー音生成処理の前半処理を示すフローチャートである。
【図４】ハーモニー音生成処理の後半処理を示すフローチャートである。
【図５】差分ピッチ付加割合テーブルのデータ構成の一実施例を示す概念図である。
【図６】差分ピッチ付加割合決定処理を示すフローチャートである。
【図７】ルール２処理を示すフローチャートである。
【図８】ルール３又は４処理を示すフローチャートである。
【図９】ルール５又は６処理を示すフローチャートである。
【図１０】ハーモニー音生成処理を説明するための具体例を示す概念図である。
【図１１】ピッチ検出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【００１３】
図１は、この発明に係る音信号生成装置（電子音楽装置）の全体構成の一実施例を示したハード構成ブロック図である。本実施例に示す電子音楽装置は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータによって制御される。ＣＰＵ１は、この装置全体の動作を制御する。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してＲＯＭ２、ＲＡＭ３、入力操作部４、表示部５、音源６、通信インタフェース（Ｉ／Ｆ）７、記憶装置８がそれぞれ接続されている。
【００１４】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種制御プログラムや例えば図２に示したハーモニーテーブル（音高決定テーブル）などの各種データ等を格納する。ＲＡＭ３は、ＣＰＵ１が所定の制御プログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中の制御プログラムやそれに関連するデータを一時的に記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。
【００１５】
入力操作部４は、例えばユーザが発した人間音声やユーザが演奏した楽器の演奏音などの音声信号を入力するマイクロフォンなどの入力機器、演奏（音声信号の入力）の開始／停止を指示する演奏開始／停止ボタン、各種パラメータを設定するスイッチなどの各種操作子の他、数値データ入力用のテンキーや文字データ入力用のキーボードあるいはマウスなどであってよい。前記入力機器はマイクロフォンに限らず、ハーモニー音信号を生成する際に必要とされるコード情報などをユーザ操作に応じて発生する例えば鍵盤等の演奏操作子や、予めＲＯＭ２等に記憶したコード情報を演奏進行順に供給するシーケンサーなどのデータ入力装置であってもよい。さらに、前記入力操作部４は、後述する差分ピッチ付加割合テーブル（図５参照）に定義される「差分ピッチ付加割合」（ピッチ調整情報）をユーザが任意の値に編集／設定することの可能な設定操作子等を含む。
【００１６】
表示部５は例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されてなり、マイクロフォン等から入力された音声信号に基づき発生されるリード音に関する楽譜及び／又は生成されたハーモニー音信号に基づき発音されるハーモニー音に関する楽譜、各種操作子により設定されたパラメータ設定状態、あるいは予め記憶されている各種データの一覧やＣＰＵ１の制御状態などといった各種情報を表示する。
【００１７】
音源６は複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられる、例えばマイクロフォンを介して入力された入力音声信号を一時的にバッファ記憶した波形信号に基づき或るチャンネルでリード音の音信号を発生し、及び、前記入力音声信号を一時的にバッファ記憶した波形信号に基づき別のチャンネルでハーモニー音信号を発生する。なお、リード音の音源波形としては、一時的にバッファ記憶した入力音声信号の波形をそのまま使用してもよいし、あるいは、入力音声信号の波形を基にしてピッチあるいは音色等適宜制御した波形を使用してもよい。また、ハーモニー音信号用の音源波形としては、一時的にバッファ記憶した入力音声信号の波形を基にしたものを使用してもよいし、あるいは、その他適宜の音源波形を使用してもよい。
音源６から発生されたこれらの信号は、アンプやスピーカなどを含むサウンドシステム６Ａから発音される。また、音源６は入力音声信号やハーモニー音信号などを発生する際に、例えばジェンダー（男性声、女性声といった声質のタイプおよび深さ）、トレモロ、音量、パン（定位）、デチューン、リバーブ（残響）などの各種効果を付与することができるようになっている。なお、音源６とサウンドシステム６Ａの構成には、従来のいかなる構成を用いてもよい。例えば、音源６における音源波形の生成又は再生方式としては、ＦＭ、ＰＣＭ、物理モデル、フォルマント合成、ＭＰ３等の各種楽音合成方式あるいは符号化方式又はデータ圧縮方式のいずれを採用してもよい。また、音源６の全部又は一部を、専用のハードウェアで構成してもよいし、ＣＰＵ１あるいはＤＳＰ（Digital Signal Processor）によるソフトウェア処理で構成してもよい。
【００１８】
通信インタフェース（Ｉ／Ｆ）７は、当該装置と図示しない外部機器との間で制御プログラムや各種データなどの各種情報を送受信するためのインタフェースである。この通信インタフェース７は、例えばMIDIインタフェース，ＬＡＮ，インターネット，電話回線等であってよく、また有線あるいは無線のものいずれかでなく双方を具えていてよい。
【００１９】
記憶装置８は、予め用意されたハーモニーテーブル（後述の図２参照）やＣＰＵ１が実行する各種制御プログラムなどの各種情報を記憶する。あるいは、入力された入力音声信号や生成されたハーモニー音信号などを記憶できるようにしてもよい。なお、上述したＲＯＭ２に制御プログラムが記憶されていない場合、この記憶装置８（例えばハードディスク）に制御プログラムを記憶させておき、それをＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１に実行させることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。また、記憶装置８はハードディスク（HD）に限られず、フレキシブルディスク（FD）、コンパクトディスク（CD‐ROM・CD‐RAM）、光磁気ディスク（MO）、あるいはDVD（Digital Versatile Disk）等の様々な形態の記憶媒体を利用する記憶装置であればどのようなものであってもよい。あるいは、フラッシュメモリなどの半導体メモリであってもよい。
【００２０】
なお、上述した音信号生成装置（電子音楽装置）において、入力操作部４や表示部５あるいは音源６などを１つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信インタフェースを用いて各装置を接続するように構成されたものであってよいことは言うまでもない。
なお、本発明に係る音信号生成装置（電子音楽装置）及びプログラムは、カラオケ装置、電子楽器、パーソナルコンピュータ、携帯電話等の携帯型通信端末、あるいはゲーム装置など、どのような形態の装置・機器に適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。
【００２１】
図１に示した音信号生成装置（電子音楽装置）は、マイクロフォン等を介して入力された入力音声信号を周波数解析してピッチを検出し（最終的には音楽の音名のいずれかに対応する特定の音高に特定する）、該特定した音高と鍵盤等から入力されたコード（chord）情報とを元にして別途新たに１乃至複数の目標音高（同様に音楽の音名のいずれかに対応する特定の音高である）を決定し、該決定した目標音高を持つハーモニー音信号を自動的に生成するハーモニー音生成（付加）機能を有する。
【００２２】
ここで、前記目標音高は、入力音声信号を周波数解析して得られた音楽の音名のいずれかに対応する特定の音高と鍵盤等から入力されたコード情報とに基づき、予め用意された図２に示すハーモニーテーブル（音高決定テーブル）に従って１２音音階の階名（音名）のいずれかに決定されるようになっている（所謂コード入力方式）。図２は、ハーモニーテーブルのデータ構成を示す概念図である。ただし、ここではコード情報としてコード名「Ｃメジャー」が指定された場合に参照されるテーブルを図２（Ａ）に、コード情報としてコード名「Ｃマイナー」が指定された場合に参照されるテーブルを図２（Ｂ）にそれぞれ示しており、各テーブルは前記入力音声信号から得られた特定の音高に応じて該当する和音（コード）構成音からなる複数系列のハーモニー音信号を生成するデータ構成のものを例に示している。
【００２３】
ハーモニーテーブルはコード名毎に例えば１テーブルずつ複数のテーブルが予め記憶されており、前記コード情報（ここではコード名）に従って対応する１テーブルが特定されるようになっている。図２（Ａ）及び（Ｂ）から理解できるように、ハーモニーテーブルは入力音声信号を周波数解析して得られた音楽の音名のいずれかに対応する特定の音高（入力音高）毎に、前記コード情報に対応した和音の構成音からなる複数のハーモニー系列の目標音高を定義する。ただし、この図２（Ａ），（Ｂ）では、入力音高について音名「Ｃ,Ｃ♯,Ｄ,Ｄ♯,Ｅ,Ｆ,Ｆ♯,Ｇ,Ｇ♯,Ａ,Ａ♯,Ｂ」で表記してあり、また目標音高についても同様に音名で表記している。
【００２４】
前記目標音高の音名表記に関し、例えば目標音高「Ｇ」は入力音高と同じオクターブ領域の「Ｇ」音であることを示し、目標音高「Ｃ＋１」は入力音高から１つ上のオクターブ領域の「Ｃ」音であること、目標音高「Ｃ＋２」は入力音高から２つ上のオクターブ領域の「Ｃ」音であることを示す。また、ここには記載していないが、例えば目標音高「Ｅ−１」は入力音高から１つ下のオクターブ領域の「Ｅ」音であること、目標音高「Ｅ−２」は入力音高から２つ下のオクターブ領域の「Ｅ」音であることを示す。したがって、図２（Ａ）の例では、例えば入力音高が「Ｅ３」である場合にはハーモニー音信号の目標音高として「Ｇ３」、「Ｃ４」、「Ｅ４」に、入力音高が「Ａ２♯」である場合にはハーモニー音信号の目標音高として「Ｅ３」、「Ｇ３」、「Ｃ４」にそれぞれ決定されることになる。なお、この実施例ではオクターブ領域を「Ｃ」と「Ｂ」との間で区切るものを例に示している。
【００２５】
なお、上述した実施例では、ハーモニー音信号の音高を決定する方式としてコード情報（より詳しくはハーモニーテーブル）を元にして決定するコード入力方式を示したがこれに限らず、コード情報を元にすることなくハーモニー音信号の音高を決定する公知の他の方法であってもよい。例えば、入力音声信号の音高に対して予め決めてある所定の音程分離れた複数の音高（例えば、４半音上（長３度）と７半音上（完全５度）の２つの音高など）に一律にハーモニー音信号の音高を決定する方法を採用するなどしてもよい（所謂固定方式）。
【００２６】
図１に示した電子音楽装置はピッチ揺れのない一定の音高（目標音高）のハーモニー音信号を生成できることは勿論のこと、さらに入力音声信号がピッチ揺れ（１００セント未満のピッチ揺れ）を有する場合に該ピッチ揺れを任意の異なる大きさで反映させたハーモニー音信号を生成することのできるようになっている。そこで、このような入力音声信号のピッチ揺れを任意に反映した１乃至複数のハーモニー音信号を生成するハーモニー音生成機能について、図３〜図１０を用いて説明する。図３及び図４は、上記のハーモニー音生成機能をＣＰＵ１によって実現する「ハーモニー音生成処理」の一実施例を示すフローチャートである。ただし、ここでは図示の都合上、ハーモニー音生成処理の前半を図３に、図３の前半処理に後続する後半の処理を図４にそれぞれ分けて示している。当該処理は、例えば演奏開始／停止ボタンのユーザ操作等に従って演奏開始が指示されることに応じて開始され、演奏停止が指示されるまで繰り返し実行される。なお、以下では図１０を適宜に参照しながら上記処理について説明する。なお、図１０はハーモニー音生成処理を説明するための具体例を示す概念図である。
【００２７】
図３に示すように、ステップＳ１は初期設定を行う。この初期設定では、例えばコード情報を記憶するコードバッファ、入力音高を記憶するリードバッファ、ハーモニー音高（目的音高）を記憶するノートバッファ、入力音高と目的音高との差分ピッチを記憶する残差バッファなどの各種バッファ領域のクリア、ユーザ操作に応じたハーモニー音高決定方式（例えば上記したコード入力方式又は固定方式）の選択などを行う。ステップＳ２では、差分ピッチ付加割合の編集・設定を行う。例えば、ユーザにより図５に示されるような差分ピッチ付加割合テーブルの編集・設定が行われる。差分ピッチ付加割合（ピッチ調整情報）は差分ピッチを元にハーモニー音高に付加するピッチ揺れの大きさを決めるパラメータであり（ここでは一例として、例えば０〜１００％などの割合で示している）、図５に示す差分ピッチ付加割合テーブルとして複数の差分ピッチ付加割合（ピッチ調整情報）が定義されている。この差分ピッチ付加割合テーブルがハーモニー音信号を生成する際に参照されて、複数のハーモニー音高に対するピッチ調整（１００セント未満のピッチ調整）を個別に行うことのできるようにしている（詳しくは後述する）。
【００２８】
ここで、上記差分ピッチ付加割合テーブルについて説明する。図５は、差分ピッチ付加割合テーブルのデータ構成の一実施例を示す概念図である。図５（Ａ）に示す差分ピッチ付加割合テーブルは、１音目、２音目、３音目（図中の番号１〜３に対応する）・・・の所定の音高順（低い順又は高い順あるいは他の適宜の順であってもよい）に、各ハーモニー音毎に適用する差分ピッチ付加割合（ピッチ調整情報）を定義したものである。この差分ピッチ付加割合は、後述する具体的ピッチと正規化されたピッチとの差（ピッチ揺れの大きさに相当する）を調整するピッチ調整情報である。ここに示した例では、例えばハーモニー目標音高が「Ｅ３」、「Ｇ３」、「Ｃ４」に特定されている場合に、これらの音高「Ｅ３」、「Ｇ３」、「Ｃ４」の各ハーモニー音のピッチ揺れはそれぞれ入力音声信号のピッチ揺れの大きさ（つまりは差分ピッチの大きさ）を１００％としたときの「２０％」、「２５％」、「１５％」となるように前記具体的ピッチと正規化されたピッチとの差を調整する。
【００２９】
他方、図５（Ｂ）に示す差分ピッチ付加割合テーブルは、ハーモニー音に付加するピッチ揺れの大きさ（レベル）別に（この例では大、中、小、なしの４レベル）、適用する差分ピッチ付加割合（ピッチ調整情報）を定義したものである。
なお、上記２つのテーブルのうちどちらのテーブルを用いるかは、ハーモニー音の生成ルール（詳しくは後述する）に従って決められる。また、レベル別の差分ピッチ付加割合を用いる場合には、どのハーモニー音にどのレベルの差分ピッチ付加割合を適用するかがハーモニー音の生成ルールにより予め対応付けられている（詳しくは後述する各ルール処理参照）。
なお、差分ピッチ付加割合は上記した設定態様に限られず、例えば具体的な数値であってもよいことは言うまでもない。
【００３０】
図３に戻って、ステップＳ３は演奏終了を検出したか否かを判定する。演奏終了を検出したと判定した場合には（ステップＳ３のＹＥＳ）、例えば発音中のリード音及び／又はハーモニー音を消音するなどの終了処理（ステップＳ２８）を実行して当該処理を終了する。他方、演奏終了を検出していないと判定した場合には（ステップＳ３のＮＯ）、入力音のオフを検出したか否かを判定する（ステップＳ４）。
ハーモニー音生成処理に並行して、図１１に示すような公知のピッチ検出処理が逐次（例えば一定の割り込み周期で）実行されている。具体的には、マイクロフォン等を介して入力される入力音声信号がＡ／Ｄ変換回路によりディジタル化され、該ピッチ検出処理では、該ディジタル化された入力音声信号の具体的ピッチを「周波数検出」処理（Ｓ７０）により検出して具体的周波数信号（具体的ピッチ情報）を得る。なお、具体的ピッチとは音名周波数（正規化されたピッチ）に丸められる前のピッチである。「母音区間検出」処理（Ｓ７１）では、入力音声信号の母音区間を検出して該入力音声信号を異なる母音区間毎に区切る。なお、「周波数検出」処理は、例えば音声分析の分野で周知の技術であるゼロクロス法などの公知のどのような技術を用いてもよいことから、ここでの詳細説明を省略する。１つの（同じ）母音区間が持続しているとき１つの入力音のオンが持続しているとみなす。図３のステップＳ４では、同じ母音区間が続いているか否かを調べることにより、入力音のオフを検出したか否かを判定する。
図３に戻り、入力音のオフを検出していないと判定した場合つまりは同じ母音区間が続いている場合には、ステップＳ４はＮＯであり、ステップＳ７の処理へジャンプする。入力音のオフを検出したと判定した場合つまりは１つの母音区間が終了した場合には、ステップＳ４はＹＥＳであり、入力音声信号の再生に基づき発音されるリード音を消音する処理を実行する（ステップＳ５）と共に、ハーモニー音信号の再生に基づき発音されるハーモニー音を消音する処理を実行する（ステップＳ６）。
【００３１】
ステップＳ７は、新規入力音（新たな母音区間の入力音声信号）を検出したか否かを判定する。新規入力音を検出していないと判定した場合つまりはある１つの母音区間が終了していない場合には（ステップＳ７のＮＯ）、図４に示すステップＳ１９の処理へジャンプする。新規入力音を検出したと判定した場合つまりはある１つの母音区間が終了し異なる母音区間となった場合には（ステップＳ７のＹＥＳ）、入力音声信号の周波数情報を音名単位にクオンタイズして入力音高を特定する（ステップＳ８）。すなわち、上記「周波数検出」処理により変換された周波数信号を「平坦化」処理することによって、周波数信号の変化を平坦化（又は平滑化とも呼ばれる）する。該平坦化された周波数信号は「階名検出」処理により、所定時間毎に１２音音階の階名（音名）のいずれかに離散化される。このように、平坦化された周波数信号が半音（１００セント）単位で定められた複数の音楽の音名のいずれかに対応する所定の音高に丸められることによって、入力された入力音声信号を音楽上の音名に対応する音高（これを入力音高又は正規化されたピッチと呼ぶ）のいずれかに特定する。特定された入力音高（正規化されたピッチ）は、リードバッファに記憶される。なお、この際には前記検出した正規化されたピッチに対応した窓関数により切り出される１周期分の波形要素データを記憶する処理が行われる。この１周期分の波形要素データの記憶更新は逐次行われるようになっていてよい。
【００３２】
図１０（Ａ）は、一連の入力音声信号の具体的ピッチ変化の一例を示している。この例では、入力音声信号の具体的ピッチが、音名「Ｃ」の音高を基準にして上下に小さなピッチ揺れ（半音以下であり、数〜数十セント程度）を示す第１の母音区間から、音名「Ｄ」の音高を基準にして上下に小さなピッチ揺れ（同じく数〜数十セント程度）を示す第２の母音区間へと遷移する。例えば、入力音声が歌っている歌詞の音韻が「あい」であるような場合には、第１の母音区間に該当するのは音節「あ」の母音音素「ａ」であり、第２の母音区間に該当するのは音節「い」の母音音素「ｉ」である。このようなピッチ揺れを有する入力音声信号の周波数情報を音名単位にクオンタイズする（つまり正規化されたピッチを検出する）と、図１０（Ｂ）に示すように、第１の母音区間については音名「Ｃ」の音高に、第２の母音区間については音名「Ｄ」の音高にそれぞれ入力音高（正規化されたピッチ）を特定することができる。
【００３３】
ステップＳ９は、入力音声信号の周波数情報（具体的ピッチ）と前記特定した入力音高（正規化されたピッチ）との差分ピッチ（差に関連する差分情報）を生成する。なお、差分ピッチ（差に関連する差分情報）は、セント値表現つまり音程差を示す情報であるとする。各母音区間において生成される差分ピッチの一例を図１０（Ｃ）に示す（実線参照）。この図から理解できるように、上記処理により差分ピッチ「０」を基準として入力音声信号が有するピッチ揺れをそのまま再現した差分ピッチが生成される。なお、１００セント以上のピッチ差は本来別の正規化されたピッチとして検出されるべきものであるから、生成される差分ピッチの最大値は１００セント未満であるべきである。換言すれば、正規化されたピッチとして検出され得なかったような例えば極短い時間で瞬間的に生じた一時的な１００セント以上のピッチ差は、差分ピッチにおいては無視する（例えば９９セントに丸める、あるいはその直前の１００セント未満のピッチ差を使用する）ようにしてよい。勿論、これに限らず、そうした一時的な１００セント以上のピッチ差をそのまま差分ピッチとして生成するようにしてもよい。つまり、差分ピッチは１００セント未満に制限されるものではない。なお、この図１０（Ｃ）には上記ステップＳ２により編集・設定された差分ピッチ付加割合テーブル（図５参照）に定義してある差分ピッチ付加割合（１００セント未満に制限）にて調整された後の差分ピッチも便宜的に点線で示してある（ただし、ここでは１つのみを例示してある）。
【００３４】
ステップＳ１０は、入力音声信号を再生してリード音を発音する。なお、リード音は、一時的にバッファ記憶した入力音声信号を順次再生することで、元の入力音声信号におけるピッチ揺れをそっくり再現し得るように発生するようにしてもよい。あるいは、前記記憶されかつ逐次更新される１周期分の波形要素データを使用して、前記正規化されたピッチ及び前記差分ピッチの組み合わせで元の入力音声信号におけるピッチ揺れを再現し得るようにして、リード音を発生するようにしてもよい。あるいは、任意の音源波形を使用して、前記正規化されたピッチ及び前記差分ピッチの組み合わせで元の入力音声信号におけるピッチ揺れを再現し得るようにして、リード音を発生するようにしてもよい。
ステップＳ１１は、ハーモニー音高はコード情報を元に決定するか否かつまりはハーモニー音信号の音高を決定する方式としてコード入力方式が選択されているか否かを判定する。コード入力方式が選択されていないと判定した場合には（ステップＳ１１のＮＯ）、固定方式に従い入力音高（正規化されたピッチ）から予め決められた所定の音程（例えば４半音上（長３度），７半音上（完全５度）など）だけ離れた１乃至複数の音高を目標音高に決定する（ステップＳ１４）。該決定された目標音高は、ノートバッファに記憶される。一方、コード入力方式が選択されていると判定した場合には（ステップＳ１１のＹＥＳ）、コードバッファに記憶されているコード情報が有効であるか否かを判定する（ステップＳ１２）。
【００３５】
コード情報が有効でないと判定した場合つまりは何らのコード情報も入力されておらずコード情報が記憶されていない場合には（ステップＳ１２のＮＯ）、図４に示すステップＳ１９の処理へジャンプする。コード情報が有効であると判定した場合つまりは何らかのコード情報が入力されておりコード情報が記憶されている場合には（ステップＳ１２のＹＥＳ）、コードバッファに記憶されているコード情報とリードバッファに記憶されている入力音高とに基づいてＲＯＭ２又は記憶装置８に記憶されている該当するハーモニーテーブルを参照し、ハーモニー音信号の音高（目標音高）として１乃至複数の音高を決定する（ステップＳ１３）。例えば入力されたコード情報が「Ｃメジャー」であり図２に示したハーモニーテーブルに従えば、図１０（Ａ）に示す第１の母音区間における目標音高は「Ｅ」、「Ｇ」、「Ｃ＋１」となり、第２の母音区間における目標音高は「Ｇ」、「Ｃ＋１」、「Ｅ＋１」となる。該決定された１乃至複数の目標音高はノートバッファに記憶される。ステップＳ１５は、差分ピッチ付加割合決定処理を実行する。
【００３６】
ここで、上記差分ピッチ付加割合決定処理（ステップＳ１５参照）について説明する。図６は、差分ピッチ付加割合決定処理を示すフローチャートである。図６に示すように、本差分ピッチ付加割合決定処理では、予め選択されているハーモニー音の生成ルール（例えば後述するルール１〜ルール６までの６個のルール）に従って、差分ピッチ付加割合を反映させる対象のハーモニー音（目標ピッチ）の特定と、該特定したハーモニー音に適用する差分ピッチ付加割合が決定されるようになっている。そこで、ステップＳ３１においてルール１が選択されているか、ステップＳ３２においてルール２が選択されているか、ステップＳ３３においてルール３又は４が選択されているか、ステップＳ３４においてルール５又は６が選択されているかを段階的に判定し、各判定に応じて選択ざれていると判定されたルールに従って差分ピッチ付加割合を決定するようにしている。
【００３７】
ここで、上記ルールとしては例えば６個のルール、具体的には入力音高（正規化されたピッチ）毎に設定されている１乃至複数の差分ピッチ付加割合（つまりは差分ピッチ付加割合テーブル（図５（Ａ）参照））を用いるルール１、高音のハーモニー音ほど割合の高い差分ピッチ付加割合を用いるルール２、ハーモニー目標音高のうち３度にあたる音高のハーモニー音に割合の高い差分ピッチ付加割合を用いるルール３、ハーモニー目標音高のうち３度にあたる音高のハーモニー音を安定させる（ピッチ揺れを生じさせない）ルール４、入力音高（正規化されたピッチ）に対してテンションノートにあたる音高のハーモニー音に割合の高い差分ピッチ付加割合を用いるルール５、入力音高（正規化されたピッチ）に対してテンションノートにあたる音高のハーモニー音を安定させる（ピッチ揺れを生じさせない）ルール６がある。これらのルールは、聴きやすいハーモニー音や、曲調に応じた雰囲気（メジャー感やマイナー感など）を持つハーモニー音、あるいはテンション感に強弱をつけたハーモニー音を生成することを目的に、各目的にあわせて用意される。
【００３８】
図６に戻り、ステップＳ３１においてルール１が選択されていると判定された場合には（ステップＳ３１のＹＥＳ）、ルール１処理としてハーモニー音毎の差分ピッチ付加割合テーブル（図５（Ａ）参照））に基づき、例えば音高の低い順（又は高い順）に入力信号のピッチ揺れを反映して反映すべき反映対象のハーモニー音を特定し、該特定されたハーモニー音毎に差分ピッチ付加割合を決定する（ステップＳ３５）。ステップＳ３２においてルール２が選択されていると判定された場合には（ステップＳ３１がＮＯでＳ３２がＹＥＳ）、後述のルール２処理を実行する（ステップＳ３６）。ステップＳ３３においてルール３又は４が選択されていると判定された場合には（ステップＳ３１，Ｓ３２がＮＯでＳ３３がＹＥＳ）、後述のルール３又は４処理を実行する（ステップＳ３７）。ステップＳ３４においてルール５又は６が選択されていると判定された場合には（ステップＳ３１〜Ｓ３３がＮＯでＳ３４がＹＥＳ）、後述のルール５又は６処理を実行する（ステップＳ３８）。ステップＳ３４においてルール５又は６が選択されていないと判定された場合には（ステップＳ３１〜Ｓ３５が全てＮＯ）、ルール１処理を適用してハーモニー音毎の差分ピッチ付加割合テーブル（図５（Ａ）参照））に基づき、例えば音高の低い順（又は高い順）に反映対象のハーモニー音を特定し、該特定されたハーモニー音毎に差分ピッチ付加割合を決定する（ステップＳ３９）。
【００３９】
上記ルール２処理（ステップＳ３６参照）について、図７を用いて説明する。図７は、ルール２処理を示すフローチャートである。ステップＳ４１は、生成するハーモニー音の数が１個であるか否かを判定する。生成するハーモニー音の数が１個であると判定した場合には（ステップＳ４１のＹＥＳ）、反映対象のハーモニー音を１つに特定し、ハーモニー音毎の差分ピッチ付加割合テーブル（図５（Ａ）参照））に基づき該特定されたハーモニー音に差分ピッチ付加割合を決定する（ステップＳ４６）。生成するハーモニー音の数が１個でないと判定した場合には（ステップＳ４１のＮＯ）、生成するハーモニー音の数が２個であるか否かを判定する（ステップＳ４２）。生成するハーモニー音の数が２個であると判定した場合には（ステップＳ４２のＹＥＳ）、反映対象のハーモニー音を２つに特定し、レベル別の差分ピッチ付加割合テーブル（図５（Ｂ）参照）に基づき各ハーモニー音毎の差分ピッチ付加割合を決定する（ステップＳ４５）。ただし、この場合には、音高が高い方のハーモニー音に対してレベル大の、音高が低いもう一方のハーモニー音に対してレベルなしの差分ピッチ付加割合を決定する。
【００４０】
生成するハーモニー音の数が２個でないつまりは３個以上であると判定した場合には（ステップＳ４２のＮＯ）、ハーモニー音の中で最も高い音高と最も低い音高の中間の音高を特定する（ステップＳ４３）。ステップＳ４４は、反映対象のハーモニー音を全てに特定し、レベル別の差分ピッチ付加割合テーブル（図５（Ｂ）参照）に基づき各ハーモニー音毎の差分ピッチ付加割合を決定する（ステップＳ４４）。ただし、この場合には、例えば音高が最も高いハーモニー音に対してレベル大の、音高が最も低いハーモニー音に対してレベルなしの、音高が最も高いハーモニー音を除く前記特定した中間の音高以上の音高のハーモニー音に対してレベル中の、その他のハーモニー音に対してレベル小の差分ピッチ付加割合を決定する。
【００４１】
上記ルール３又は４処理（ステップＳ３７参照）について、図８を用いて説明する。図８は、ルール３又は４処理を示すフローチャートである。ステップＳ５１は、ハーモニー目標音高のうち３度にあたる音高のハーモニー音が存在するか否かを判定する。３度にあたる音高のハーモニー音が存在しないと判定した場合には（ステップＳ５１のＮＯ）、ハーモニー音毎の差分ピッチ付加割合テーブル（図５（Ａ）参照））に基づき反映対象のハーモニー音を特定すると共に差分ピッチ付加割合を決定する（ステップＳ５５）。３度にあたる音高のハーモニー音が存在すると判定した場合には（ステップＳ５１のＹＥＳ）、ルール３が選択されているか否かを判定する（ステップＳ５２）。ルール３が選択されていると判定した場合には（ステップＳ５２のＹＥＳ）、反映対象のハーモニー音を全てに特定し、レベル別の差分ピッチ付加割合テーブル（図５（Ｂ）参照）に基づき各ハーモニー音毎の差分ピッチ付加割合を決定する（ステップＳ５３）。ただし、この場合には、例えば３度にあたる音高のハーモニー音に対してレベル大の、その他のハーモニー音に対してレベル小の差分ピッチ付加割合を決定する。ルール３が選択されていないつまりはルール４が選択されていると判定した場合には（ステップＳ５２のＮＯ）、反映対象のハーモニー音を全てに特定し、レベル別の差分ピッチ付加割合テーブル（図５（Ｂ）参照）に基づき各ハーモニー音毎の差分ピッチ付加割合を決定する（ステップＳ５４）。ただし、この場合には、例えば３度にあたる音高のハーモニー音に対してレベルなしの、その他のハーモニー音に対してレベル中の差分ピッチ付加割合を決定する。
【００４２】
上記ルール５又は６処理（ステップＳ３８参照）について、図９を用いて説明する。図９は、ルール５又は６処理を示すフローチャートである。ステップＳ６１は、入力音高（正規化されたピッチ）に対してテンションノートにあたる音高のハーモニー音が存在するか否かを判定する。テンションノートにあたる音高のハーモニー音が存在しないと判定した場合には（ステップＳ６１のＮＯ）、ハーモニー音毎の差分ピッチ付加割合テーブル（図５（Ａ）参照））に基づき反映対象のハーモニー音を特定すると共に差分ピッチ付加割合を決定する（ステップＳ６５）。テンションノートにあたる音高のハーモニー音が存在すると判定した場合には（ステップＳ６１のＹＥＳ）、ルール５が選択されているか否かを判定する（ステップＳ６２）。
【００４３】
ルール５が選択されていると判定した場合には（ステップＳ６２のＹＥＳ）、反映対象のハーモニー音を全てに特定し、レベル別の差分ピッチ付加割合テーブル（図５（Ｂ）参照）に基づき各ハーモニー音毎の差分ピッチ付加割合を決定する（ステップＳ６３）。ただし、この場合には、例えばテンションノートにあたる音高のハーモニー音に対してレベル大の、その他のハーモニー音に対してレベル小の差分ピッチ付加割合を決定する。ルール５が選択されていないつまりはルール６が選択されていると判定した場合には（ステップＳ６２のＮＯ）、反映対象のハーモニー音を全てに特定し、レベル別の差分ピッチ付加割合テーブル（図５（Ｂ）参照）に基づき各ハーモニー音毎の差分ピッチ付加割合を決定する（ステップＳ６４）。ただし、この場合には、例えばテンションノートにあたる音高のハーモニー音に対してレベルなしの、その他のハーモニー音に対してレベル中の差分ピッチ付加割合を決定する。
【００４４】
図３に戻って、ステップＳ１６は発音中のハーモニー音があればそれを消音する。ステップＳ１７は、ノートバッファに記憶された目標音高とリードバッファに記憶された入力音高とを比較して差分（従来装置においてハーモニー音信号を生成するために用いられていたピッチシフト量に該当する）を求め、該求めた差分に１乃至複数の差分ピッチを加算することによって１乃至複数のピッチシフト量を算出する。ただし、この際に加算する差分ピッチは、上記ステップＳ１５において決定された１乃至複数の差分ピッチ付加割合（ピッチ調整情報）に従って残差バッファに記憶された差分ピッチのピッチ変化を調整した後の変更後の１乃至複数の差分ピッチである。ステップＳ１８は、前記算出した１乃至複数のピッチシフト量に基づいて入力音声信号（詳しくは前記記憶済みの１周期の波形要素データ）をピッチシフトして、前記目標音高を基準にして、入力音声信号が有するピッチ揺れを反映して、ピッチ変調された１乃至複数のハーモニー音信号を生成し、これを再生して１乃至複数のハーモニー音を発音する。
【００４５】
図１０（Ｄ）に、差分ピッチ付加割合に従ってピッチ変化を調整された変更後の差分ピッチに応じて算出されるピッチシフト量を実線で示し、元の差分ピッチに従う変動を参考のために点線で示す（ただし、ここでは１つのみ例示してある）。この図１０（Ｄ）に示すように、例えば目標音高「Ｅ」に決定された第１の母音区間についてはピッチシフト量「+400」を基準に、目標音高「Ｇ」に決定された第２の母音区間についてはピッチシフト量「+500」を基準に上下にピッチが揺れているピッチシフト量が得られる。このようにして各母音区間毎に求めた複数のピッチシフト量に従って、それぞれの区間において入力音声信号（前記記憶した波形要素データ）に対してピッチシフトを行うことにより、図１０（Ｅ）に示すような入力音声信号のピッチ揺れを反映しながらもピッチ揺れの大きさが異なる複数のハーモニー音信号をそれぞれ生成することができる。
【００４６】
この図１０（Ｅ）から理解できるように、従来では「Ｅ」，「Ｇ」，「Ｃ＋１」、また「Ｇ」，「Ｃ＋１」，「Ｅ＋１」といった音高が一定の複数のハーモニー音信号が生成されていたが（点線で示す）、本実施例では入力音声信号が有するピッチ揺れを大なり小なり反映した異なるピッチ揺れを持つ複数のハーモニー音信号が生成されるようになっている。すなわち、個々のハーモニー音毎に決定される差分ピッチ付加割合の大小によって、複数のハーモニー音信号それぞれのピッチ揺れの大きさを入力音声信号のピッチ揺れの大きさよりも大きくしたり小さくしたり任意に調整することのできるようになっている。例えば、差分ピッチ付加割合が１００％であるときにハーモニー音信号のピッチ揺れの大きさが入力音声信号のピッチ揺れの大きさと同じになるように予め設定しておき、差分ピッチ付加割合を１００％より小さく設定した場合には、差分ピッチ付加割合を０％に近づけるにつれてハーモニー音信号のピッチ揺れの大きさが入力音声信号のピッチ揺れの大きさよりもより小さくなって現れるようにし、０％では従来と同様のピッチ揺れを有しない音高一定のハーモニー音信号が現われるようにしている。
【００４７】
図４に戻って、ステップＳ１９は、例えばユーザが鍵盤等を操作するなどして入力した（あるいはカラオケ伴奏に伴って自動的に与えられるようにしてもよい）コード情報を取得したか否かを判定する。コード情報を取得していないと判定した場合には（ステップＳ１９のＮＯ）、ステップＳ２の処理へジャンプする。コード情報を取得したと判定した場合には（ステップＳ１９のＹＥＳ）、コード情報を抽出しコードバッファに記憶する（ステップＳ２０）。ステップＳ２１は、リードバッファに記憶された入力音高が有効であるか否かを判定する。入力音高が有効でないと判定した場合には（ステップＳ２１のＮＯ）、図３に示したステップＳ２の処理へ戻る。入力音高が有効であると判定した場合には（ステップＳ２１のＹＥＳ）、ハーモニー音信号の音高を決定する方式としてコード入力方式が選択されているか否かを判定する（ステップＳ２２）。コード入力方式が選択されていないと判定した場合には（ステップＳ２２のＮＯ）、ステップＳ２の処理へジャンプする。
【００４８】
コード入力方式が選択されていると判定した場合には（ステップＳ２２のＹＥＳ）、コードバッファに記憶されているコード情報とリードバッファに記憶されている入力音高とに基づいてＲＯＭ２又は記憶装置８に記憶されている該当するハーモニーテーブルを参照し、１乃至複数のハーモニー音信号の音高（目標音高）を決定する（ステップＳ２３）。ステップＳ２４は、差分ピッチ付加割合決定処理（図６参照）を実行する。ステップＳ２５は、発音中のハーモニー音があればそれを消音する。ステップＳ２６は、ノートバッファに記憶された目標音高とリードバッファに記憶された入力音高とを比較して差分（従来のピッチシフト量）を求め、該求めた差分に差分ピッチを加算することによってピッチシフト量を算出する。ただし、この際に加算する差分ピッチは、予め設定された差分ピッチ付加割合に従って残差バッファに記憶された差分ピッチのピッチ変化を調整した後の変更後の差分ピッチであることは既に説明したとおりである。ステップＳ２７は、前記算出したピッチシフト量に基づいて入力音声信号（詳しくは前記記憶済みの１周期の波形要素データ）をピッチシフトして、前記目標音高を基準に入力音声信号が有するピッチ揺れを反映したハーモニー音信号を生成し、これを再生してハーモニー音を発音する。
【００４９】
以上のように、本発明においては、入力された音声信号を分析して検出される音声信号のピッチと、前記ピッチ検出に伴って当該入力音声信号の所定区間毎に特定される音名に対応した音高のいずれかとの差分である差分ピッチを求める。また、前記差分ピッチを任意の異なる差分ピッチ付加割合により変更して、複数の異なる差分ピッチを生成する。そして、入力音声信号を前記特定した音高に従って決定される１乃至複数のハーモニー音声の音高へとピッチシフトする際に必要とされるピッチシフト量（従来のピッチシフト量）に対して、前記変更後の差分ピッチによるピッチ変動分を加えるようにして前記ピッチシフト量を変更する。前記差分ピッチはもともと入力音声信号が有していたある音高を基準としたピッチ揺れ（ピッチの揺らぎ成分）を示すものであるから、前記変更後の差分ピッチによる変動分を加えられたピッチ変更後のピッチシフト量は入力音声信号が有していたピッチ揺れを加味したものとなる。したがって、該ピッチ変更後のピッチシフト量に基づいて前記入力音声信号をピッチシフトすれば、前記決定した１乃至複数の音高を基準にピッチ揺れを有する１乃至複数のハーモニー音信号を生成することができる。このようにすれば、ユーザは簡単な操作によって、入力音声信号が有するピッチ揺れを複数のハーモニー音信号に任意の大きさで反映させて、ユーザに違和感を抱かせることのない入力音声信号と同様のピッチ揺れを有するハーモニー音信号を生成することができるようになる。
【００５０】
以上、図面に基づいて実施形態の一例を説明したが、本発明はこれに限定されるものではなく、様々な実施形態が可能であることは言うまでもない。例えば、従来のように目標音高と入力音高とを比較して求めた差分（従来のピッチシフト量）により入力音声信号をピッチシフトすることによってピッチ揺れを有しない一定の音高（目標音高）からなるハーモニー音信号を先に生成しておき、これに対して単純に差分ピッチ付加割合によって調整された差分ピッチを付加するピッチ変調制御を行うことによって、入力音声信号が有するピッチ揺れをハーモニー音信号に反映させるようにしてもよい。
なお、本明細書において「ピッチ揺れ」若しくはピッチ変調とは、ビブラートのような周期的なピッチ変化に限らず、あるいはベンドアップやベンドダウンなどの非周期的なピッチ変化を含んでいてよい。また、奏法表現としてユーザが認識できないような微細なピッチ変化を含んでいてよい。
【００５１】
なお、ハーモニー音信号を生成するために入力されるコード情報は、上述したように本装置上あるいは本装置に接続された鍵盤などの演奏操作子からユーザ操作に応じて入力された入力情報から検出されたものでもよいし、あるいは和音名を順次入力する形式で得られるものであってもよいし、あるいはカラオケ伴奏に伴って自動的に与えられるようにしてもよい。
なお、コード入力がユーザによる演奏操作により行われる場合、押鍵状態からコード検出を行うことは言うまでもない。ただし、この際のコード検出方法は、実際のコード構成音の鍵を全て押鍵することによりコードを指定する所謂フィンガード方式、１つ乃至３つ程度の鍵を所定の規則に基づいて押鍵することによりコードを指定する所謂シングルフィンガー方式など、どのような方式であってもよい。あるいは、操作パネル上に配置された所定のスイッチ操作により、各コードのルートとタイプを指定する方式であってもよい。
【００５２】
なお、上記のようにして入力された音声信号のピッチ検出結果をそのまま用いてハーモニー音信号の音高を決定するものに限らず、入力音声信号のピッチ検出結果を例えば１オクターブや３半音等の所定ピッチだけ上下するなど音高変換したものを用いてハーモニー音信号の音高を決定するようにしてもよい。
なお、上述した実施例においてハーモニー音信号を生成するための元となる入力音声信号はマイクロフォンを介して入力されたユーザの音声を例に説明したが、これに限らない。例えば、マイクロフォンを介して入力される楽器演奏音などであってもよいし、あるいは記憶された音声信号あるいは適宜に外部から配信される音声信号などであってもよい。
【００５３】
なお、ピッチ調整情報は上述した実施例のような予め決められた差分ピッチ付加割合（％）に限らず、計算により差分ピッチ付加割合（％）を算出させるようにしてもよい。その場合、算出の元となるルールをいくつか予め用意しておき、その中から選択できるようになっていてよい。さらには、ピッチ調整情報が自動で算出された後に、当該算出されたピッチ調整情報をユーザが編集することのできるようになっていてよい。また、入力音声信号のピッチ揺れの大きさを自動的に検出して、該検出したピッチ揺れの大きさに応じて各ハーモニー音に対するピッチ調整情報を決定するようになっていてもよい。さらには、ピッチ調整情報に基づくピッチ調整対象のハーモニー音の特定をユーザ自身が指定できてもよい。
【００５４】
なお、生成するハーモニー音の数を予め指定することができるようになっていてもよい。例えば、上述した実施例ではコード情報に応じて特定されるハーモニーテーブル（図２（Ａ）参照）に基づいて３音のハーモニー音を生成するための音高を決定するようになっているが、そうしたテーブルである場合に例えば音数として２音が指定されたときにはテーブルの低音側（又は高音側）の２音など３音のうちの任意の２音を組み合わせて音高を決定するようにするとよい。
なお、差分ピッチ付加割合テーブルは同じタイプ（ハーモニー音毎／レベル別など）でも複数用意しておき、その中から選択して切り替えできるようになっていてよい。こうしたテーブルの切り替えは曲の途中で随時に切り替えできるようになっていてよい。
なお、レベル別の差分ピッチ付加割合テーブル（図５（Ｂ）参照）を用いる場合、同じレベルでも複数ハーモニー音が存在するときには同じ差分ピッチ付加割合を適用せず、少しずつ異なる値になるように調整できるとよい（例えば２ずらすなど）。
【符号の説明】
【００５５】
１  ＣＰＵ、２  ＲＯＭ、３  ＲＡＭ、４  入力操作部、５  表示部、６  音源、６Ａ  サウンドシステム、７  通信インタフェース、８  記憶装置、１Ｄ  データ及びアドレスバス
【図１】
0006036800.tif 000002
【図２】
0006036800.tif 000003
【図３】
0006036800.tif 000004
【図４】
0006036800.tif 000005
【図５】
0006036800.tif 000006
【図６】
0006036800.tif 000007
【図７】
0006036800.tif 000008
【図８】
0006036800.tif 000009
【図９】
0006036800.tif 000010
【図１０】
0006036800.tif 000011
【図１１】
0006036800.tif 000012