(57)【要約】【課題】自然な人声音として発音させることができる歌唱データを生成することができる歌唱データ生成プログラムを提供すること。【解決手段】その１つの例として、音高生成ステップによって、一の音符データの前が所定時間以上の無音であると判定した場合には、一の音符データの音高を、その発音開始時刻において前記一の音符データの音高より所定量低く設定し、段階的に前記一の音符データの音高になるように生成する。この生成されたデータに基づいて歌詞データを発音させることにより、歌詞データを自然な人声音として発音させることができる。【選択図】    図３
2004325831.tif 000002
【特許請求の範囲】
【請求項１】
音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップで記憶させた前記複数の音符データの内、一の音符データの前が所定時間以上の無音である場合には、前記一の音符データの音高を、その発音開始時刻において前記一の音符データの音高より所定量低く設定し、段階的に前記一の音符データの音高になるように生成する音高生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項２】
音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、前記一の音符データの音高を、その音高より段階的に所定量上昇させた後、前記他の音符データの音高より段階的に所定量下降させ、更に、段階的に前記他の音符データの音高になるように生成する音高生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項３】
音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、前記一の音符データの音高を、その音高より段階的に所定量下降させた後、前記他の音符データの音高より段階的に所定量上昇させ、更に、段階的に前記他の音符データの音高になるように生成する音高生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項４】
音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が所定範囲内である場合には、前記他の音符データとの境界の前後所定時間範囲内において、前記一の音符データの音高を、段階的に前記他の音符データの音高より所定量低くなるように下降させた後、段階的に前記他の音符データの音高になるように生成する音高データ生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項５】
音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの音高を、その発音終了時刻より所定時間前の時刻から発音終了時刻までの間において、段階的に所定量下降させるように生成する音高生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項６】
音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの前が所定時間以上の無音である場合には、前記一の音符データの音量を、その発音開始時刻から前記一の音符データの音量より段階的に所定量上昇させた後、前記一の音符データの音量まで段階的に下降するよう生成する音量生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項７】
音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの発音開始時刻から所定時間後の時刻から発音終了時刻までの間において、前記一の音符データの音量を、その音量から段階的に下降させた後に、段階的に上昇させ、更に、段階的に下降するよう生成する音量生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、歌唱データ生成プログラムに関し、特に、自然な人声音として発音させることができる歌唱データを生成することができる歌唱データ生成プログラムに関するものである。
【０００２】
【従来の技術】従来より、音声合成技術を音楽に適用し、歌詞データに基づいて自然な歌唱音を合成出力する歌唱音合成装置が提案されている。この歌唱音合成装置は、歌詞データとメロディーデータとを記憶し、該メロディーデータの読出に対応して前記歌詞データを読み出し、当該歌詞データに対応した音韻を発音させて当該歌詞を歌唱させるように構成されている。この歌唱音合成装置に関しては、如何に、自然な人声音として発音させるかが課題となっている。
【０００３】
この課題を解決すべく、例えば、特許３３０７２８３号公報には、発音させる音韻のピッチを上昇させるときのピッチ変化速度を、発音させる音韻のピッチを下降させるときのピッチ変化速度よりも遅い速度に設定する技術が開示されている（特許文献１）。
【０００４】
また、特開２００１−５６６９５号公報には、連続音声波形のうちピッチ周波数が一定である定常区間で、このピッチ周波数とは異なるピッチ周波数までピッチ周波数が連続的に変化し、その後、元のピッチ周波数までピッチ周波数が連続的に変化するように、ポルタメント効果を付与する技術が開示されている（特許文献２）。
【０００５】
【特許文献１】
特許３３０７２８３号公報（第４，５段落等、第図７等）
【特許文献２】
特開２００１−５６６９５号公報（第４図等）
【０００６】
【発明が解決しようとする課題】しかしながら、上述した技術では、依然として自然な人声音としては違和感を感じ、一層、自然な人声音で発音させることが要望されている。
【０００７】
本発明は、この問題を解消すべくなされたものであって、自然な人声音として発音させることができる歌唱データを生成することができる歌唱データ生成プログラムを提供することを目的とするものである。
【０００８】
【課題を解決するための手段】この目的を達成するために請求項１記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップで記憶させた前記複数の音符データの内、一の音符データの前が所定時間以上の無音である場合には、前記一の音符データの音高を、その発音開始時刻において前記一の音符データの音高より所定量低く設定し、段階的に前記一の音符データの音高になるように生成する音高生成ステップを備えている。
【０００９】
ここで、音高生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音高を、その発音開始時刻において前記一の音符データの音高より所定量低く、段階的に前記一の音符データの音高になるように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップで記憶させた前記複数の音符データの内、一の音符データの前が所定時間以上の無音であるか否かを判断する判断ステップと、その判断ステップで他の音符データの音量が所定時間以上の無音であると判断した場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００１０】
請求項２に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、前記一の音符データの音高を、その音高より段階的に所定量上昇させた後、前記他の音符データの音高より段階的に所定量下降させ、更に、段階的に前記他の音符データの音高になるように生成する音高生成ステップを備えている。
【００１１】
ここで、音高生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音高を、前記他の音符データとの発音境界の前後所定時間の範囲内において、その音高より段階的に所定量上昇させた後、前記他の音符データの音高より段階的に所定量下降させ、更に、段階的に前記他の音符データの音高になるように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低いか否かを判断する判断ステップと、その判断ステップで他の音符データの音高が前記一の音符データの音高より所定量低いと判断した場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００１２】
請求項３に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、前記一の音符データの音高を、その音高より段階的に所定量下降させた後、前記他の音符データの音高より段階的に所定量上昇させ、更に、段階的に前記他の音符データの音高になるように生成する音高生成ステップを備えている。
【００１３】
ここで、音高生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音高を、前記他の音符データとの発音境界の前後所定時間の範囲内において、その音高より段階的に所定量下降させた後、前記他の音符データの音高より段階的に所定量上昇させ、更に、段階的に前記他の音符データの音高になるように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高いか否かを判断する判断ステップと、その判断ステップで他の音符データの音高が前記一の音符データの音高より所定量高いと判断した場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００１４】
請求項４に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が所定範囲内である場合には、前記他の音符データとの境界の前後所定時間範囲内において、前記一の音符データの音高を、段階的に前記他の音符データの音高より所定量低くなるように下降させた後、段階的に前記他の音符データの音高になるように生成する音高データ生成ステップを備えている。
【００１５】
ここで、音高生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音高を、前記他の音符データとの境界の前後所定時間範囲内において、段階的に前記他の音符データの音高より所定量低くなるように下降させた後、段階的に前記他の音符データの音高になるように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が所定範囲内であるか否かを判断する判断ステップと、その判断ステップで前記条件に該当すると判断された場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００１６】
請求項５に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する生成プログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの音高を、その発音終了時刻より所定時間前の時刻から発音終了時刻までの間において、段階的に所定量下降させるように生成する音高生成ステップを備えている。
【００１７】
ここで、音高生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音高を、その発音終了時刻より所定時間前の時刻から発音終了時刻までの間において、段階的に所定量下降させるように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音であるか否かを判断する判断ステップと、その判断ステップで前記他の音符データの音量が所定時間以上の無音であると判断された場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００１８】
請求項６に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、
一の音符データの前が所定時間以上の無音である場合には、前記一の音符データの音量を、その発音開始時刻から前記一の音符データの音量より段階的に所定量上昇させた後、前記一の音符データの音量まで段階的に下降するよう生成する音量生成ステップを備えている。
【００１９】
ここで、音量生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音量を、その発音開始時刻から前記一の音符データの音量より段階的に所定量上昇させた後、前記一の音符データの音量まで段階的に下降するように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの前が所定時間以上の無音であるか否かを判断する判断ステップと、その判断ステップで前記他の音符データの音量が所定時間以上の無音であると判断された場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００２０】
請求項７に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの発音開始時刻から所定時間後の時刻から発音終了時刻までの間において、前記一の音符データの音量を、その音量から段階的に下降させた後に、段階的に上昇させ、更に、段階的に下降するよう生成する音量生成ステップを備えている。
【００２１】
ここで、音量生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音量を、前記一の音符データの発音開始時刻から所定時間後の時刻から発音終了時刻までの間において、その音量から段階的に下降させた後に、段階的に上昇させ、更に、段階的に下降するように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音であるか否かを判断する判断ステップと、その判断ステップで前記他の音符データの音量が所定時間以上の無音であると判断された場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００２２】
【発明の効果】請求項１に記載の歌唱データ生成プログラムによれば、一の音符データの前が所定時間以上の無音である場合には、一の音符データの音高を、その発音開始時刻において前記一の音符データの音高より所定量低く設定し、段階的に前記一の音符データの音高になるように生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２３】
請求項２に記載の歌唱データ生成プログラムによれば、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、一の音符データの音高を、その音高より段階的に所定量上昇させた後、前記他の音符データの音高より段階的に所定量下降させ、更に、段階的に前記他の音符データの音高になるように生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２４】
請求項３に記載の歌唱データ生成プログラムによれば、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、前記一の音符データの音高を、その音高より段階的に所定量下降させた後、前記他の音符データの音高より段階的に所定量上昇させ、更に、段階的に前記他の音符データの音高になるように生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２５】
請求項４に記載の歌唱データ生成プログラムによれば、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が所定範囲内である場合には、前記他の音符データとの境界の前後所定時間範囲内において、前記一の音符データの音高を、段階的に前記他の音符データの音高より所定量低くなるように下降させた後、段階的に前記他の音符データの音高になるように生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２６】
請求項５に記載の歌唱データ生成プログラムによれば、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの音高を、その発音終了時刻より所定時間前の時刻から発音終了時刻までの間において、段階的に所定量下降させるように生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２７】
請求項６に記載の歌唱データ生成プログラムによれば、一の音符データの前が所定時間以上の無音である場合には、前記一の音符データの音量を、その発音開始時刻から前記一の音符データの音量より段階的に所定量上昇させた後、前記一の音符データの音量まで段階的に下降するよう生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２８】
請求項７に記載の歌唱データ生成プログラムによれば、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの発音開始時刻から所定時間後の時刻から発音終了時刻までの間において、前記一の音符データの音量を、その音量から段階的に下降させた後に、段階的に上昇させ、更に、段階的に下降するよう生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２９】
【発明の実施の形態】以下、本発明の好ましい実施例について、添付図面を参照して説明する。図１は、本発明の実施例である歌唱データ生成プログラムを搭載した歌唱音生成装置１の電気的構成を示すブロック図である。この歌唱音生成装置１に搭載される歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとに基いて、その歌詞データを歌唱させるための歌唱データを生成するプログラムである。
【００３０】
歌唱音生成装置１は、バスライン３を介して、中央演算装置であるＣＰＵ２と、電気的に書換え不可能な不揮発性記憶装置であるＲＯＭ４と、電気的に書換え可能な不揮発性記憶装置であるハードディスク５と、各種のデータを一時的に記憶するＲＡＭ６と、記憶媒体８との間でデータの送受信を行うインターフェイスである入出力ポート７と、各種モードを選択可能な操作子を含む各種操作子９と、ＤＳＰで構成され、デジタル信号の歌唱音を生成する歌唱音源１０とが各々接続され、歌唱音源１０にはデジタル信号をアナログ信号に変換するＤ／Ａコンバータ１１が接続されている。
【００３１】
この歌唱音生成装置１によれば、ＣＰＵ２の制御の下で、ＲＯＭ４に記憶されている歌唱データ生成プログラムが起動し、記憶媒体８に記憶されている演奏データと歌詞データとが入出力ポート７を介して入力されると、演奏データに含まれる音符データがＥＥＰＲＯ５のイベントデータ格納領域（図２参照）にイベントデータ毎に格納される。また、ハードディスク５には、予めイベントデータ格納領域に格納された音符データの変化パターンに対応する遷移パラメータが遷移パラメータ格納領域（図５参照）に格納されている。
【００３２】
そして、イベントデータ格納領域に格納した音符データを順次読込んで、その音符データとその直前の音符データ又はその直後の音符データとを比較することにより、その音符データの変化パターンを検出する。その音符データの変化パターンを検出すると、その変化パターンに対応する遷移パラメータを、その音符データに付与し、歌唱データとして生成する。こうして生成された歌唱データは、歌唱音源１０でデジタル信号の歌唱音に生成され、Ｄ／Ａコンバータ１１でアナログ信号の歌唱音として変換されて出力される。
【００３３】
図２は、イベントデータ格納領域を示すテーブルである。尚、このテーブルには、イベント１からイベント３だけを図示し、その他のイベントについての図示は省略してある。記憶媒体８から入力される演奏データはＳＭＦ（スタンダード・ミディ・ファイル）の形式で構成され、歌詞データはテキストファイル形式で構成されている。また、演奏データは、ノート情報（ノート番号、ベロシティ、ノートオン、ノートオフ）と、テンポ情報と、コントロールチェンジと、デルタタイム等のデータで構成されている。尚、演奏データに含まれるノート番号と、ベロシティと、デルタタイムとを、特に、音符データと称す。
【００３４】
この１つの音符データには、１つの歌詞データが対応付けられている。つまり歌詞「あ」に対応する音符は１つのみである。従って、ノート情報の内のノートオンからノートオフまでの間を一つの音節に対応する音符データとして捉え、ＳＭＦの先頭から音符順にテキスト形式の歌詞を対応させる。
【００３５】
イベントデータ格納領域には、各イベント毎に、１つの音符データに対応する１つの歌詞データを「歌詞」、ノート番号を「当初音高」、ベロシティを「当初音量」、デルタタイムから生成される演奏データの先頭からの時刻（ｔｉｃｋ）を当該音符データの「演奏開始時刻」として格納する。
【００３６】
ここで、ｔｉｃｋは、演奏のテンポの基本になるクロックパルス１つを１ｔｉｃｋとし、４／４拍子を例にとると、４分音符は９６ｔｉｃｋで、１小節に対応するｔｉｃｋは３８４ｔｉｃｋとなる。従って、時刻は演奏テンポの設定により変化する。当初音高は、音高を半音単位で０から１２７のステップで表わしたものである。たとえば８８鍵のピアノの最低音は２１に相当し、音階はＡ０で表される。また最高音階は１０８に相当し、Ｃ８で表される。この音高を示す単位であるセントは、１オクターブを１２００で表現し、半音は１００セントに相当するものとする。
【００３７】
その他にも、イベントデータ格納領域には、各イベント毎に歌唱データとして「生成音高」と「生成音量」とが格納される。「生成音高」は、歌唱データとして出力するための音高と、その音高に対応する時刻とを組にしたデータであって、各イベント毎に（ｐｉｔｃｈ−１，ｔｉｃｋ−１）から（ｐｉｔｃｈ−ｎ，ｔｉｃｋ−ｎ）までが順番に格納される。尚、実際に出力されるデータ形式は、例えばＭＩＤＩのエクスクルーシブメッセージのように接続された歌唱音源１０に対応する形式とする。
【００３８】
「生成音量」は、歌唱データとして出力するための音量と、その音量に対応する時刻とを組にしたものであって、各イベント毎に（ｖｏｌｕｍｅ−１，ｔｉｃｋ−１）から（Ｖｏｌｕｍｅ−ｎ，ｔｉｃｋ−ｎ）までが順番に格納される。尚、実際に出力されるデータ形式は、例えばＭＩＤＩのエクスクルーシブメッセージのように接続された歌唱音源１０に対応する形式とする。
【００３９】
図３は、各イベントの歌詞、当初音高、当初音量の変化と、その当初音高、当初音量に遷移パラメータを付与し歌唱データとして生成される各イベントの音高、音量の変化との対比を示す図である。尚、図３（ａ）〜（ｅ）の横軸は時間を表し、図３（ｂ）及び（Ｃ）の縦軸は音高を表し、図３（ｄ）及び（ｅ）の縦軸は音量を表し、Ｔ１からＴ５は、各イベントの変化ポイント（境界線）を表している。
【００４０】
図３（ａ）は、各イベントに対応する歌詞を示す図である。本実施例では、イベント１とイベント６とは「無音」であり、イベント２には歌詞「あ」、イベント３には歌詞「お」、イベント４には歌詞「い」、イベント５には歌詞「う」、の歌詞がそれぞれ対応付けられている。
【００４１】
図３（ｂ）は、各イベントの当初音高の変化を示すグラフである。各イベントの当初音高は、各イベントの発音時間内においては一定値のままで、各境界線（Ｔ１からＴ５）上において、隣接するイベントの当初音高に変化するように遷移する。一方、図３（ｃ）は、図３（ｂ）で示した各イベントの当初音高に遷移パラメータを付与し歌唱データとして生成される各イベントの音高の変化を示すグラフである。
【００４２】
イベント１とイベント２との境界線Ｔ１（イベント２の発音開始時刻）から所定時間経過後の変化領域１０１について着目する。ここで、図３（ａ）に示すように、イベント２には有音である歌詞「あ」が対応付けられており、そのイベント２の直前のイベント１は所定時間以上の「無音」である。即ち、一の音符データの前が所定時間以上の無音である場合、一の音符データとしてのイベント２の音高は、変化領域１０１に示すように、イベント２の発音開始時刻Ｔ１において、イベント２の当初音高より低く設定され、その低い音高で所定時間遷移した後に、段階的にイベント２の当初音高になるように遷移する。尚、このようなパターンをＣａｓｅ−１として扱う。
【００４３】
イベント２とイベント３との境界線Ｔ２（イベント３の発音開始時刻）の前後所定時間内の変化領域１０２について着目する。ここで、図３（ｂ）に示すように、イベント３の当初音高は、イベント２の当初音高より所定量低く設定されている。即ち、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低い場合には、一の音符データとしてのイベント２の音高は、変化領域１０２に示すように、イベント２の当初音高より段階的に所定量上昇した後、他の音符データとしてのイベント３の当初音高より段階的に所定量下降し、更に、段階的にイベント３の当初音高になるように遷移する。尚、このような場合をＣａｓｅ−２として扱う。
【００４４】
イベント３とイベント４との境界線Ｔ３（イベント４の発音開始時刻）の前後所定時間内の変化領域１０３について着目する。ここで、図３（ｂ）に示すように、イベント４の当初音高は、イベント３の当初音高より所定量高く設定されている。即ち、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高い場合には、一の音符データとしてのイベント３の音高は、変化領域１０３に示すように、イベント３の当初音高より段階的に所定量下降した後、他の音符データとしてのイベント４の当初音高より段階的に所定量上昇し、更に、段階的にイベント４の当初音高になるように遷移する。尚、このような場合をＣａｓｅ−３として扱う。
【００４５】
イベント４とイベント５との境界線Ｔ４（イベント５の発音開始時刻）の前後所定時間内の変化領域１０４について着目する。ここで、図３（ａ）、（ｂ）に示すように、イベント４には歌詞「い」が対応付けられ、イベント５には歌詞「う」が対応付けられている。また、イベント４の当初音高と、イベント５の当初音高とは略同等に設定されている。即ち、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が略同等（所定範囲内）である場合には、一の音符データとしてのイベント４の音高は、境界線Ｔ４に向けて段階的にイベント４の当初音高より所定量低くなるように下降し、段階的に他の音符データとしてのイベント５の当初音高になるように遷移する。尚、このような場合をＣａｓｅ−４として扱う。また、本実施例では、一の音符データに対応する歌詞と他の音符データに対応する歌詞とが異なる場合をＣａｓｅ−４として扱うが、両者に対応する歌詞が同じであっても良いことはいうまでもない。
【００４６】
イベント５における変化領域１０５について着目する。ここで、イベント５の音長は、他のイベントの音長に比べて長く設定されている。即ち、一の音符データの音長が所定以上の長さの場合には、一の音符データとしてのイベント５の音高は、イベント５の当初音高より段階的に下降した後に、段階的にイベント５の当初音高に上昇するように遷移する。尚、このような場合をＣａｓｅ−５として扱う。
【００４７】
イベント５とイベント６との境界線Ｔ５（イベント６の発音開始時刻）の前後所定時間内の変化領域１０６について着目する。ここで、図３（ａ）に示すように、イベント５には有音である歌詞「う」が対応付けられており、そのイベント５の直後のイベント６は所定時間以上の「無音」である。即ち、一の音符データの後が所定時間以上の無音である場合には、一の音符データとしてのイベント５の音高は、段階的に所定量下降するように遷移する。尚、このような場合をＣａｓｅ−６として扱う。
【００４８】
図３（ｄ）は、各イベントの当初音量の変化を示すグラフである。各イベントの当初音量は、各イベントの発音時間内においては一定値のままで、各境界線（Ｔ１からＴ５）上において、隣接するイベントの当初音量に変化する。一方、図３（ｅ）は、図３（ｄ）で示した各イベントの当初音量に遷移パラメータを付与し歌唱データとして生成される各イベントの音量の変化を示すグラフである。
【００４９】
イベント１とイベント２との境界線Ｔ１（イベント２の発音開始時刻）から所定時間経過後の変化領域１０７について着目する。上述した通り、一の音符データの前が所定時間以上の無音である場合、一の音符データとしてのイベント２の音量は、変化領域１０７に示すように、「無音」からイベント２の当初音量より段階的に所定量上昇し、その後、イベント２の当初音量まで段階的に下降するよう遷移する。尚、このような場合をＣａｓｅ−１ｖとして扱う。
【００５０】
イベント５とイベント６との境界線付近である変化領域１０８について着目する。上述した通り、一の音符データの後が所定時間以上の無音である場合には、一の音符データとしてのイベント５の音高は、イベント５の当初音量から段階的に下降した後に、段階的に上昇し、更に、段階的に下降するよう遷移する。尚、このような場合をＣａｓｅ−６ｖとして扱う。
【００５１】
図４は、図３（ｃ）、（ｅ）における変化領域１０１〜１０８の拡大図であり、図５は、遷移パラメータ格納領域を示すテーブルである。図２に示すイベントデータ格納領域に格納された「発音開始時刻」、「当初音高」、「当初音量」からなる音符データは、その音符データの直前または直後の音符データと比較することで、その音符データが上述したＣａｓｅ−１〜Ｃａｓｅ−６のいずれのケースに該当するか否かが判断される。
【００５２】
遷移パラメータ格納領域には、各ケース毎に、その音符データの音高、音量を変化領域１０１〜１０８に示すように遷移させるために、図４に示すｐ１〜ｐ４およびｖ１〜ｖ４の各ポイントを設定する遷移パラメータが格納されている。この遷移パラメータには、音高に関する遷移パラメータと、音量に関する遷移パラメータとが設定されており、音高に関する遷移パラメータは（音高，ｔｉｃｋ）、音量に関する遷移パラメータは（音量、ｔｉｃｋ）を一組として格納されている。
【００５３】
例えば、図５において、Ｃａｓｅ−１について着目すると、図４のｐ１，ｐ２，ｐ３の各ポイントを設定するための音高に関する遷移パラメータとして（−３０，０）、（−３０，５）、（０，１０）が設定されている。ここで、上述した通り、Ｃａｓｅ−１は、一の音符データの前が所定時間以上の無音であるケースであり、一の音符データとしてはイベント２の音符データが該当し、当初音高は「６４」、発音開始時刻は「３８４」としてイベントデータ格納領域に格納されている。尚、当初音高「６４」には、更に１００が乗算され、その当初音高は「６４００」として制御される。
【００５４】
よって、図４に示すｐ１〜ｐ３の各ポイントは、イベント２の当初音高と発音開始時刻とに、上述した遷移パラメータを加算して、ｐ１は（６３７０，３８４）、ｐ２は（６３７０，３８９）、ｐ３は（６４００，３９４）として設定される。こうして設定される図４のｐ１〜ｐ３の各ポイント間を直線補間すれば、イベント２の音高は、変化領域１０１において、上述した通りに遷移する。
【００５５】
また、Ｃａｓｅ−１には、図４のｖ１，ｖ２，ｖ３の各ポイントを設定するための音量に関する遷移パラメータとして（Ｍ，０）、（５，８）、（０，１５）が設定されている。尚、Ｍは音量の絶対値が「０」である事、即ちミュートであることを意味している。ここで、イベント２の当初音量は「４０」、発音開始時刻は「３８４」として格納されている。
【００５６】
よって、図４に示すｖ１〜ｖ３の各ポイントは、イベント２の当初音量と発音開始時刻とに、上述した音量に関する遷移パラメータを加算して、ｖ１は（Ｍ，０）、ｖ２は（４５，３９２）、ｖ３は（４０，３９９）として設定される。こうして設定される図４のｖ１〜ｖ３の各ポイント間を直線補間すれば、イベント２の音高は、変化領域１０８において、上述した通りに遷移する。
【００５７】
次に、Ｃａｓｅ−２について着目すると、図４のｐ１，ｐ２，ｐ３，ｐ４の各ポイントを設定するための音高に関する遷移パラメータとして（０，−１５）、（＋２５，−１０）、（−２０，５）、（０，１０）が設定されている。ここで、上述した通り、Ｃａｓｅ−２は、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低いケースであり、一の音符データとしてはイベント２の音符データが該当し、当初音高は「６４」としてイベントデータ格納領域に格納されている。また、他の音符データとしてはイベント３の音符データが該当し、当初音高は「５８」、演奏開始時刻は「４８０」としてイベントデータ格納領域に格納されている。
【００５８】
よって、図４に示すｐ１とｐ２とは、イベント２の当初音高「６４００」とイベント３の演奏開始時刻「４８０」に遷移パラメータを加算してｐ１は（６４００，４６５）、ｐ２は（６４２５，４７０）として設定され、図４に示すｐ３とｐ４とは、イベント３の当初音高「５８００」とイベント３の演奏開始時刻「４８０」に遷移パラメータを加算してｐ３は（５７８０，４８５）、ｐ４は（５８００，４９０）として設定される。こうして設定される図４のｐ１〜ｐ４の各ポイントの間を直線補間すれば、イベント２の音高は、変化領域１０２において、上述した通りに遷移する。
【００５９】
次に、Ｃａｓｅ−３について着目すると、図４のｐ１，ｐ２，ｐ３，ｐ４の各ポイントを設定するための音高に関する遷移パラメータとして（０，−１０）、（−２０，−５）、（２５，１０）、（０，１５）が設定されている。このケースはＣａｓｅ−２の逆のケースであり、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高いケースであり、一の音符データとしてはイベント３の音符データが該当し、他の音符データとしてはイベント４の音符データが該当する。
【００６０】
図４に示すｐ１とｐ２とは、イベント３の当初音高とイベント４の演奏開始時刻とに遷移パラメータを加算して設定され、図４に示すｐ３とｐ４とは、イベント４の当初音高とイベント３の演奏開始時刻とに遷移パラメータを加算して設定される。こうして設定される図４のｐ１〜ｐ４の各ポイントの間を直線補間すれば、イベント３の音高は、上述した通りに遷移する。
【００６１】
次に、Ｃａｓｅ−４について着目すると、図４のｐ１，ｐ２，ｐ３，の各ポイントを設定するための音高に関する遷移パラメータとして（０，−８）、（−２０，０）、（０，１２）が設定されている。このケースは、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が略同等（所定範囲内）であるケースであり、一の音符データとしてはイベント４の音符データが該当し、他の音符データとしてはイベント５の音符データが該当する。
【００６２】
図４に示すｐ１は、イベント４の当初音高とイベント５の演奏開始時刻とに遷移パラメータを加算して設定され、図４に示すｐ２とｐ３とは、イベント５の当初音高とイベント５の演奏開始時刻とに遷移パラメータを加算して設定される。こうして設定される図４のｐ１〜ｐ３の各ポイントの間を直線補間すれば、イベント４の音高は、上述した通りに遷移する。
【００６３】
次に、Ｃａｓｅ−５について着目すると、図４のｐ１，ｐ２，ｐ３の各ポイントを設定するための音高に関する遷移パラメータとしてｐ１、（−２５，ｐ２）、ｐ３が設定されている。このケースは、一の音符データの音長が所定以上の長さを有するケースである。実施例では２分音符（１９２ｔｉｃｋ）以上の歌唱長において、このケースを採用する。本実施例では一の音符データとしてイベント５の音符データが該当する。このケースでは、まず、イベント５の歌唱長を４分割する。遷移パラメータｐ１の時刻はイベント５の発音開始時刻Ｔ４（前の境界）からの１／４の時刻とし、ｐ２の時刻は２／４の時刻とし、ｐ３の時刻は３／４の時刻とし、ｐ１とｐ３との音高はイベント５の当初音高と同じに設定されている。
【００６４】
図４に示すｐ２の音高は、イベント５の当初音高に遷移パラメータを加算して設定される。こうして設定される図４のｐ１〜ｐ３の各ポイントの間を直線補間すれば、イベント５の音高は、変化領域１０５において、上述した通りに遷移する。
【００６５】
次に、Ｃａｓｅ−６について着目すると、図４のｐ１，ｐ２，ｐ３の各ポイントを設定するための音高に関する遷移パラメータとして（０，−１０）、（−２０，１０）が設定されている。このケースは、一の音符データの後が所定時間以上の無音であるケースであり、一の音符データとしてはイベント５の音符データが該当する。
【００６６】
図４に示すｐ１とｐ２とは、イベント５の当初音高とイベント６の演奏開始時刻に遷移パラメータを加算して設定される。こうして設定される図４のｐ１とｐ２との各ポイントの間を直線補間すれば、イベント５の音高は、変化領域１０６において、上述した通りに遷移する。
【００６７】
また、Ｃａｓｅ−１には、図４のｖ１，ｖ２，ｖ３の各ポイントを設定するための音量に関する遷移パラメータとして（０，−２０）、（−１５，−５）、（−１０，０）、（Ｍ，１０）が設定されている。
【００６８】
よって、図４のｖ１〜ｖ４の各ポイントは、イベント５の当初音高とイベント６の演奏開始時刻とのデターに遷移パラメータを加算して設定される。こうして設定される図４のｖ１〜ｖ４の各ポイントの間を直線補間すれば、イベント５の音量は、変化領域１０８において、上述した通りに遷移する。
【００６９】
次に、上述のように構成された歌唱音生成装置１の動作について、図６乃至図１８のフローチャートを参照して説明する。図６は、本装置１のメイン処理（Ｓ６００）を示すフローチャートである。メイン処理では（Ｓ６００）、最初に初期設定処理が行われ（Ｓ６０１）、各レジスタ、メモリー領域、イベントデータ格納領域等が初期化される。初期設定処理が終了すると、モード入力処理が行われる（Ｓ６０２）。モード入力処理は、歌唱データ生成モード、当初の演奏データによる演奏モード、生成された歌唱データによる歌唱モード、歌唱データの生成に関する編集モード等の各モードを選択、入力する処理である。
【００７０】
そして、入力されたモードが歌唱データ生成モードか否か（Ｓ６０３）、あるいは、その他のモードか否か（Ｓ６０５）が判断される。その結果、歌唱データ生成モードであれば（Ｓ６０３：Ｙｅｓ）、歌唱データ生成処理（Ｓ６０４）を実行し、その他のモードであれば（Ｓ６０５：Ｙｅｓ）、その他のモード処理を実行する（Ｓ６０６）。
【００７１】
各モード処理が終了した場合や、いずれのモードも入力されなかった場合（Ｓ６０３、Ｓ６０５：Ｎｏ）には、メイン処理を終了する指示の有無が判断される（Ｓ６０７）。その結果、メイン処理を終了する指示がなければ（Ｓ６０７：Ｎｏ）、Ｓ６０２からの処理が繰り返され、終了する指示があれば（Ｓ６０７：Ｙｅｓ）、メイン処理を終了する。
【００７２】
図７は、上述した歌唱データ生成処理（Ｓ６０４）を示すフローチャートである。この歌唱データ生成処理では、最初にイベントデータ生成処理（Ｓ７０１）を実行する。イベントデータ生成処理は、演奏データと、それに対応づけられた歌詞データとを読み込んで、イベントデータとしてイベントデータ格納領域に「演奏開始時刻」、「歌詞」、「当初音高」、「当初音量」を順次格納する処理である。
【００７３】
イベントデータ生成処理（Ｓ７０１）が終了すると、パターンデータ生成処理（Ｓ７０２）を実行する。パターンデータ生成処理は、イベントデータ格納領域に格納したイベントデータに基づき、歌唱データとしての「生成音高」、「生成音量」を生成し、これらをイベントデータ格納領域に順次格納する処理である。
【００７４】
図８は、上述したイベントデータ生成処理（Ｓ７０１）を示すフローチャートである。イベントデータ生成処理では、最初に、イベントポインタと、歌詞読出ポインタと、音符読出ポインタとの各ポインタを先頭に設定する（Ｓ８０１）。
ここで、イベントポインタはイベントデータ格納領域のイベント番号を示すポインタである。歌詞読出ポインタは音符データに対応する歌詞データを読出すためのポインタである。音符読出ポインタは演奏データを読出すためのポインタである。
【００７５】
各ポインタを先頭にすると（Ｓ８０１）、音符読出ポインタの示す演奏データを読出し、その演奏データから音符データを読み出す（Ｓ８０２）。この演奏データはＭＩＤＩメッセージであり、ＭＩＤＩメッセージのノート情報のうち、先ずノート・オフか否かを判定する（Ｓ８０３）。ノート・オフでなければ（Ｓ８０３：Ｎｏ）、ノート・オンか否かを判定する（Ｓ８０４）。ノート・オンであれば（Ｓ８０４：Ｙｅｓ）、歌詞読出ポイントの示すアドレスから音符データに対応する歌詞データを読出す（Ｓ８０５）。こうして新規イベントとして、デルタタイムを基にイベントデータの開始ｔｉｃｋ、歌詞、ノートナンバー、ベロシティの各データをイベントポインタの示すイベントデータ格納領域の発音開始時刻、歌詞、当初音高、当初音量の各記憶領域にそれぞれ格納する（Ｓ８０６）。
【００７６】
一方、ノート・オフである場合には（Ｓ８０３：Ｙｅｓ）、次の音符データに含まれるノート・オンメッセージまでのデルタタイムから当該ノート・オフメッセージから次のノート・オンメッセージまでの時間が所定時間以上か否かを判定する（Ｓ８１０）。具体的には、本実施例では、所定時間として３２分音符（１２ｔｉｃｋ）が設定されており、３２分音符以上であれば（Ｓ８１０：Ｙｅｓ）、新規イベントとして休符（無音）イベントを生成し、休符イベントをイベントポインタの示すイベントデータ格納領域に格納する（Ｓ８１１）。
【００７７】
上述した通り、イベントデータ格納領域に各データを格納すると、次のイベントデータを読み出すため、イベントポインタと歌詞読出しポインタとに「１」を加算し（Ｓ８０７）、各ポインタを歩進させる。また、音符データのみを歩進させる場合のジャンプ先を確保するために、Ｓ８０７と分離して音符読出しポインタに「１」を加算し（Ｓ８０８）、音符読出ポインタを歩進させる。
【００７８】
即ち、ノート・オンでない場合には（Ｓ８０４：Ｎｏ）や、所定時間が３２分音符未満である場合には（Ｓ８１０：Ｎｏ）、ノート情報以外の情報をバイパスし、次の音符データを判定するためステップ８０８へスキップする。ここで、所定時間が３２分音符未満では、歌唱音独特のレガートな発音になるような音符データの生成を行う。これらは元々歌唱向きに作られていない演奏データのため、各音符の終端は次の音符の発音開始時刻より前にノート・オフメッセージが設定されていることが多いためである。尚、ノート・オフの時間としては上述した３２分音符に限定されるものではなく、この値を自由に変更できるようにしても良い。
【００７９】
そして、音符読出しポインタが最終データポイントを超過したか否かを判定し（Ｓ８０９）、超過していない場合には（Ｓ８０９：Ｎｏ）、Ｓ８０２からの処理を繰り返し、超過している場合には（Ｓ８０９：Ｙｅｓ）、このルーチンの処理を終了し、パターンデータ生成処理（Ｓ７０２）を実行する。
【００８０】
図９は、パターンデータ生成処理（Ｓ７０２）を示すフローチャートである。
このパターンデータ生成処理では、最初に、イベントデータ格納領域から先頭のイベントデータを読出し（Ｓ９０１）、その読出したイベントデータのうち、先ず、そのイベントの当初音量が無音であるか否かを判定する（Ｓ９０２）。その結果、無音であれば（Ｓ９０２：Ｙｅｓ）、無音イベントとしての処理をするためにＣａｓｅ−０の処理を実行する（Ｓ９１１）。
【００８１】
無音でない場合には（Ｓ９０２：Ｎｏ）、そのイベントの直前のイベントが無音イベントか否かを判定する（Ｓ９０３）。その結果、そのイベントの直前のイベントが無音であれば（Ｓ９０３：Ｙｅｓ）、Ｃａｓｅ−１の処理を実行する（Ｓ９１２）。
【００８２】
そのイベントの直前のイベントが無音でない場合には（Ｓ９０３：Ｎｏ）、そのイベントの音符長が所定以上の長さであるか否か判定する（Ｓ９０４）。この判定は直後のイベントのｔｉｃｋと比較することで判定される。その結果、所定以上の長さであれば（Ｓ９０４：Ｙｅｓ）、Ｃａｓｅ−５の処理を実行する（Ｓ９１３）。
【００８３】
所定以上の長さでない場合には（Ｓ９０４：Ｎｏ）、そのイベントの直後のイベントの当初音高が、そのイベントの当初音高より所定以上（例えば１音）乖離して低い音高になっているか否かを判定する（Ｓ９０５）。低い音高になっている場合には（Ｓ９０５：Ｙｅｓ）、Ｃａｓｅ−２の処理を実行する（Ｓ９１４）。
【００８４】
低い音高になっていない場合には（Ｓ９０５：Ｎｏ）、そのイベントの直後のイベントの当初音高が、そのイベントの当初音高より所定以上乖離して高い音高になっているか否かを判定する（Ｓ９０６）。高い音高になっている場合には（Ｓ９０６：Ｙｅｓ）、Ｃａｓｅ−４の処理を実行する（Ｓ９１５）。
【００８５】
高い音高になっていない場合には（Ｓ９０６：Ｎｏ）、そのイベントの直後のイベントの当初音高が、そのイベントの当初音高と同一であるか否かを判定すると共に、両イベントの歌詞が異なっているか否かを判定する（Ｓ９０７）。その条件を満たしている場合には（Ｓ９０７：Ｙｅｓ）、Ｃａｓｅ−４の処理を実行する（Ｓ９１６）。
【００８６】
前記条件を満たしていない場合には（Ｓ９０７：Ｎｏ）、そのイベントの直後のイベントが無音イベントか否かを判定する（Ｓ９０８）。無音である場合には（Ｓ９０８：Ｙｅｓ）、Ｃａｓｅ−６の処理を実行する（Ｓ９１７）。
【００８７】
無音でない場合には（Ｓ９０８：Ｎｏ）、次のイベントデータを読出すべく、イベントカウンタに「１」を加算し、イベントポインタを歩進させる（Ｓ９０９。そして、イベントデータの最後まで処理が終了したか否かを判定し（Ｓ９１０）、最後まで終了していない場合には（Ｓ９１０：Ｎｏ）、Ｓ９０２からの処理を繰り返し、終了している場合には（Ｓ９１０：Ｙｅｓ）、このパターンデータ生成処理を終了する。
【００８８】
図１０は、Ｃａｓｅ−０の処理（Ｓ９１１）を示すフローチャートである。この処理は、そのイベントを無音に設定するための処理であり、当初音量を「０」に設定し、イベントデータ格納領域にｔｉｃｋ値と当初音量「０」とを格納する（Ｓ１００１）。
【００８９】
図１１は、Ｃａｓｅ−１の処理（Ｓ９１２）を示すフローチャートである。この処理では、最初に図４のｐ１とｐ２との間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１１０１）。
【００９０】
ｓｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ１の音高を加算した値が代入され、ｓｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）が代入される。また、ｅｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。
【００９１】
ｐ１の位置とｐ２の位置とが設定されると、次に、その２点間を直線補間すべく演算１が実行される（Ｓ１１０２）。ここで、図１２を参照して演算１の処理について説明する。図１２は演算１の処理を示すフローチャートである。この演算１の処理では、最初に、ｅｔ値からｓｔ値を減算して２点間の分割数であるｓｔｅｐ値を求めると共に、そのｓｔｅｐ値における音高の増加量の割合である補間係数ｆを算出する（Ｓ１２０１）。即ち、補間係数ｆは、図４のｐ１とｐ２との２点間の傾きを意味している。
【００９２】
補間係数ｆを算出すると、補間位置ｎを初期値に設定し（Ｓ１２０２）、補間位置ｎに関する補間音高値Ｎを算出する（Ｓ１２０３）。この補間音高値Ｎは、補間係数ｆに補間位置ｎを乗算し、その値にｓｐ値を加算することで算出される。即ち、補間音高値Ｎは、図４のｐ１とｐ２とを結ぶ直線を意味し、「Ｎ＝ｓｐ＋（ｆ＊ｎ）」で算出される。補間位置ｎに関して、補間音高値Ｎを算出すると、補間音高値Ｎをｐｉｔｃｈ−ｎ、補間位置ｎにｓｔ値を加算した値をｔｉｃｋ‐ｎとして、イベントデータ格納領域のイベント２の「生成音高」領域に歌唱データとして格納する（Ｓ１２０４）。
【００９３】
そして、次の補間位置ｎにおける補間音高値Ｎを算出すべく、補間位置ｎに「１」を加算し（Ｓ１２０５）、補間位置ｎを歩進させ、その補間位置ｎがｓｔｅｐ値から「１」を減算した値より大きいか否かを判定する（Ｓ１２０６）。即ち、補間位置ｎが図４のｐ２より前の位置であるか否かを判定し、補間位置ｎが図４のｐ２より前の位置であれば、（Ｓ１２０６：Ｎｏ）、Ｓ１２０３からの処理を繰り返し、図４のｐ２より後の位置であれば（Ｓ１２０６：Ｙｅｓ）、演算１の処理を終了する。こうして図４のｐ１とｐ２との間が直線補間されることになる。
【００９４】
再び、図１１に戻って説明を続ける。図４のｐ１とｐ２との間が設定されると、次に、図４のｐ２とｐ３との間を設定すべく、ｐ２の位置とｐ３の位置とが設定される（Ｓ１１０３）。ｐ２の位置はｓｐ値とｓｔ値とによって設定され、ｐ３の位置はｅｐ値とｅｔ値とによって設定される。
【００９５】
ｓｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｓｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｅｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。
【００９６】
ｐ２の位置とｐ３の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ２とｐ３との２点間が直線補間される。ここまで処理によって、イベント２の音高は変化領域１０１において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【００９７】
上述したステップまでは音高についての処理したが、ここからのステップは音量についての処理になる。音量についての処理では、最初に、図４のｖ１とｖ２との間を設定すべく、図４に示すｖ１とｖ２との位置が設定される（Ｓ１１０５）。ｖ１の位置はｓｐ値とｓｔ値とによって設定され、ｖ２の位置はｅｐ値とｅｔ値とによって設定される。
【００９８】
ｓｐ値には、イベント２の直前のイベント１の音量が無音であるため「０」が代入され、ｓｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）が代入される。また、ｅｐ値には、イベント２の当初音量に、遷移パラメータｖ２の音量を加算した値が代入され、ｅｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｖ２の時刻を加算した値が代入される。
【００９９】
ｐ１の位置とｐ２の位置とが設定されると、次に、その２点間を直線補間すべく演算２が実行される（Ｓ１１０６）。ここで、図１３を参照して演算２の処理について説明する。図１３は演算２の処理を示すフローチャートである。この演算２の処理では、最初に、ｅｔ値からｓｔ値を減算して２点間の分割数であるｓｔｅｐ値を求めると共に、そのｓｔｅｐ値における音高の増加量の割合である補間係数ｆを算出する（Ｓ１３０１）。即ち、補間係数ｆは、図４のｖ１とｖ２との２点間の傾きを意味する。
【０１００】
補間係数ｆを算出すると、補間位置ｎを初期値に設定し（Ｓ１３０２）、補間位置ｎに関する補間音量値Ｎを算出する（１３０３）。この補間音量値Ｎは、補間係数ｆに補間位置ｎを乗算し、その値にｓｐ値を加算することで算出される。即ち、補間音量値Ｎは、図４のｖ１とｖ２との間の直線を意味し、「Ｎ＝ｓｐ＋（ｆ＊ｎ）」で算出される。補間位置ｎに関して、補間音量値Ｎを算出すると、補間音量値Ｎをｖｏｌｕｍｅ−ｎ、補間位置ｎにｓｔ値を加算した値をｔｉｃｋ‐ｎとして、イベントデータ格納領域のイベント２の「生成音量」領域に歌唱データとして格納する（ｓ１３０４）。
【０１０１】
そして、次の補間位置ｎにおける補間音量値Ｎを算出すべく、補間位置ｎに「１」を加算し（Ｓ１３０５）、補間位置ｎを歩進させ、その補間位置ｎがｓｔｅｐ値から「１」を減算した値より大きいか否かを判定する（Ｓ１３０６）。即ち、補間位置ｎが図４のｖ２より前の位置であるか否かを判定し、補間位置ｎが図４のｖ２より前の位置であれば、（Ｓ１３０６：Ｎｏ）、Ｓ１３０３からの処理を繰り返し、図４のｖ２より後の位置であれば（Ｓ１３０６：Ｙｅｓ）、演算２の処理を終了する。こうして図４のｖ１とｖ２との間が直線補間されることになる。
【０１０２】
再び、図１１に戻って説明を続ける。図４のｖ１とｖ２との間が設定されると、次に、図４のｖ２とｖ３との間を設定すべく、ｖ２の位置とｖ３の位置とが設定される（Ｓ１１０７）。ｖ２の位置はｓｐ値とｓｔ値とによって設定され、ｖ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１０３】
ｓｐ値には、イベント２の当初音量に遷移パラメータｖ２の音量を加算した値が代入され、ｓｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｖ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント２の当初音量に、遷移パラメータｖ３の音量を加算した値が代入され、ｅｔ値は、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｖ３の時刻を加算した値が代入される。
【０１０４】
ｖ２の位置とｖ３の位置とが設定されると、上述したのと同様に演算２が実行され（Ｓ１１０６）、ｖ２とｖ３との２点間が直線補間される。ここまで処理によって、イベント２の音量は変化領域１０７において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１０５】
図１４は、Ｃａｓｅ−２の処理（Ｓ９１４）を示すフローチャートである。この処理では、最初に図４のｐ１とｐ２との間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１４０１）。
【０１０６】
ｓｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ１の音高を加算した値が代入され、ｓｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ１の時刻を加算した値が代入される。また、ｅｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。ｐ１の位置とｐ２の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ１とｐ２との２点間が直線補間される。
【０１０７】
次に、図４のｐ２とｐ３との間を設定すべく、ｐ２の位置とｐ３の位置とが設定される（Ｓ１４０２）。ｐ２の位置はｓｐ値とｓｔ値とによって設定され、ｐ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１０８】
ｓｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｓｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント３（イベント２の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｅｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。ｐ２の位置とｐ３の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ２とｐ３との２点間が直線補間される。
【０１０９】
次に、図４のｐ３とｐ４との間を設定すべく、ｐ３の位置とｐ４の位置とが設定される（Ｓ１４０３）。ｐ３の位置はｓｐ値とｓｔ値とによって設定され、ｐ４の位置はｅｐ値とｅｔ値とによって設定される。
【０１１０】
ｓｐ値には、イベント３（イベント２の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｓｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。また、ｅｐ値には、イベント３（イベント２の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ４の音高を加算した値が代入され、ｅｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ４の時刻を加算した値が代入される。
【０１１１】
ｐ３の位置とｐ４の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ３とｐ４との２点間が直線補間される。ここまで処理によって、イベント２の音高は変化領域１０２において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１１２】
図１５は、Ｃａｓｅ−３の処理（Ｓ９１５）を示すフローチャートである。この処理では、最初に図４のｐ１とｐ２との間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１５０１）。
【０１１３】
ｓｐ値には、イベント３の当初音高を１００倍した値に、遷移パラメータｐ１の音高を加算した値が代入され、ｓｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ１の時刻を加算した値が代入される。また、ｅｐ値には、イベント３の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。ｐ１の位置とｐ２の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ１とｐ２との２点間が直線補間される。
【０１１４】
次に、図４のｐ２とｐ３との間を直線補間すべく、ｐ２の位置とｐ３の位置とが設定される（Ｓ１５０２）。ｐ２の位置はｓｐ値とｓｔ値とによって設定され、ｐ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１１５】
ｓｐ値には、イベント３の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｓｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント４（イベント３の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｅｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。ｐ２の位置とｐ３の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ２とｐ３との２点間が直線補間される。
【０１１６】
次に、図４のｐ３とｐ４との間を直線補間すべく、ｐ３の位置とｐ４の位置とが設定される（Ｓ１５０３）。ｐ３の位置はｓｐ値とｓｔ値とによって設定され、ｐ４の位置はｅｐ値とｅｔ値とによって設定される。
【０１１７】
ｓｐ値には、イベント４の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｓｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。また、ｅｐ値には、イベント４（イベント３の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ４の音高を加算した値が代入され、ｅｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ４の時刻を加算した値が代入される。
【０１１８】
ｐ３の位置とｐ４の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ３とｐ４との２点間が直線補間される。ここまで処理によって、イベント３の音高は変化領域１０３において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１１９】
図１６は、Ｃａｓｅ−４の処理（Ｓ９１６）を示すフローチャートである。この処理では、最初に図４のｐ１とｐ２間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１６０１）。
【０１２０】
ｓｐ値には、イベント４の当初音高を１００倍した値に、遷移パラメータｐ１の音高を加算した値が代入され、ｓｔ値には、イベント５の発音開始時刻Ｔ４（後の境界）に遷移パラメータｐ１の時刻を加算した値が代入される。また、ｅｐ値には、イベント４の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、イベント５の発音開始時刻Ｔ４（後の境界）に、遷移パラメータｐ２の時刻を加算した値が代入される。ｐ１の位置とｐ２の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ１とｐ２との２点間が直線補間される。
【０１２１】
次に、図４のｐ２とｐ３との間を直線補間すべく、ｐ２の位置とｐ３の位置とが設定される（Ｓ１６０２）。ｐ２の位置はｓｐ値とｓｔ値とによって設定され、ｐ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１２２】
ｓｐ値には、イベント４の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｓｔ値には、イベント５の発音開始時刻Ｔ４（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント５（イベント４の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｅｔ値には、イベント５の発音開始時刻Ｔ４（後の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。
【０１２３】
ｐ２の位置とｐ３の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ２とｐ３との２点間が直線補間される。ここまで処理によって、イベント４の音高は変化領域１０４において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１２４】
図１７は、Ｃａｓｅ−５の処理（Ｓ９１３）を示すフローチャートである。この処理では、最初に、イベント５の音長を４分割し、イベント５の発音開始時刻Ｔ４から１／４の時刻をｐ１とする。次に同様に２／４の時刻をｐ２とする。さらに同様に３／４の時刻をｐ３とする。ｐ１およびｐ３は当初音高と同じになるように設定する。
【０１２５】
次に、図４のｐ１とｐ２との間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１７０２）。
【０１２６】
ｓｐ値には、イベント５の当初音高を１００倍した値が代入され、ｓｔ値には遷移パラメータｐ１の時刻が代入される。また、ｅｐ値には、イベント５の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、遷移パラメータｐ２の時刻が代入される。ｐ１の位置とｐ２の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ１とｐ２との２点間が直線補間される。
【０１２７】
次に、図４のｐ２とｐ３との間を設定すべく、ｐ２の位置とｐ３の位置とが設定される（Ｓ１７０３）。ｐ２の位置はｓｐ値とｓｔ値とによって設定され、ｐ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１２８】
ｓｐ値には、イベント５の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｓｔ値には、遷移パラメータｐ２の時刻が代入される。また、ｅｐ値には、イベント５の当初音高を１００倍した値が代入され、ｅｔ値には、遷移パラメータｐ３の時刻が代入される。
【０１２９】
ｐ２の位置とｐ３の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ２とｐ３との２点間が直線補間される。ここまで処理によって、イベント５の音高は変化領域１０５において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１３０】
図１８は、Ｃａｓｅ−６の処理（Ｓ９１７）を示すフローチャートである。この処理では、最初に図４のｐ１とｐ２との間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１８０１）。
【０１３１】
ｓｐ値には、イベント５の当初音高を１００倍した値に、遷移パラメータｐ１の音高を加算した値が代入され、ｓｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に、遷移パラメータｐ１の時刻を加算した値が代入される。また、ｅｐ値には、イベント５の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。
【０１３２】
ｐ１の位置とｐ２の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ１とｐ２との２点間が直線補間される。ここまで処理によって、イベント５の音高は変化領域１０６において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１３３】
上述したステップまでは音高についての処理したが、ここからは音量についての処理になる。音量についての処理では、最初に、図４のｖ１とｖ２との間を設定すべく、図４に示すｖ１とｖ２との位置が設定される（Ｓ１８０２）。ｖ１の位置はｓｐ値とｓｔ値とによって設定され、ｖ２の位置はｅｐ値とｅｔ値とによって設定される。
【０１３４】
ｓｐ値には、イベント５の当初音量に、遷移パラメータｖ１の音量を加算した値が代入され、ｓｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ１の時刻を加算した値が代入される。また、ｅｐ値には、イベント５の当初音量に、遷移パラメータｖ２の音量を加算した値が代入され、ｅｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ２の時刻を加算した値が代入される。ｖ１の位置とｖ２の位置とが設定されると、上述したのと同様に演算２が実行され（Ｓ１１０６）、ｖ１とｖ２との２点間が直線補間される。
【０１３５】
次に、図４のｖ２とｖ３との間を設定すべく、ｖ２の位置とｖ３の位置とが設定される（Ｓ１８０３）。ｖ２の位置はｓｐ値とｓｔ値とによって設定され、ｖ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１３６】
ｓｐ値には、イベント５の当初音量に遷移パラメータｖ２の音量を加算した値が代入され、ｓｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント５の当初音量に、遷移パラメータｖ３の音量を加算した値が代入され、ｅｔ値は、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ３の時刻を加算した値が代入される。ｖ２の位置とｖ３の位置とが設定されると、上述したのと同様に演算２が実行され（Ｓ１１０６）、ｖ２とｖ３との２点間が直線補間される。
【０１３７】
次に、図４のｖ３とｖ４との間を設定すべく、ｖ３の位置とｖ４の位置とが設定される（Ｓ１８０４）。ｖ３の位置はｓｐ値とｓｔ値とによって設定され、ｖ４の位置はｅｐ値とｅｔ値とによって設定される。
【０１３８】
ｓｐ値には、イベント５の当初音量に遷移パラメータｖ３の音量を加算した値が代入され、ｓｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ３の時刻を加算した値が代入される。また、ｅｐ値には、音量「０」が代入され、ｅｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ４の時刻を加算した値が代入される。
【０１３９】
ｖ３の位置とｖ４の位置とが設定されると、上述したのと同様に演算２が実行され（Ｓ１１０６）、ｖ３とｖ４との２点間が直線補間される。ここまで処理によって、イベント５の音量は変化領域１０８において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１４０】
上記実施例において、請求項１記載の音高生成ステップとしては、図９のＳ９０３、図１１のＣａｓｅ−１の処理において、Ｓ１１０５より前のステップが該当する。請求項２記載の音高生成ステップとしては、図９のＳ９０５、図１４のＣａｓｅ−２の処理が該当する。請求項３記載の音高生成ステップとしては、図９のＳ９０６、図１５のＣａｓｅ−３の処理が該当する。請求項４記載の音高生成ステップとしては、図９のＳ９０７、図１６のＣａｓｅ−４の処理が該当する。請求項５記載の音高生成ステップとしては、図９のＳ９０８、図１８のＣａｓｅ−６の処理において、Ｓ１８０２より前のスッテップが該当する。請求項６記載の音量生成ステップとしては、図９のＳ９０３、図１１のＣａｓｅ−１の処理において、Ｓ１１０５以降のステップが該当する。請求項７記載の音量生成ステップとしては、図９のＳ９０８、図１８のＣａｓｅ−６の処理において、Ｓ１８０２以降のステップが該当する。
【０１４１】
以上、実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【０１４２】
例えば、本実施例の歌唱データ生成プログラムでは、Ｃａｓｅ−１においてイベント２の音高は、イベント２の発音開始時刻Ｔ１からイベント２の当初音高より低い音高を連続させた後に、段階的にイベント２の当初音高になるように制御する場合について説明した。しかしながら、この場合、イベント２の発音開始時刻Ｔ１における音高を、イベント２の当初音高より低い音高に設定し、その音高を所定時間連続させることなく、段階的にイベント２の当初音高になるように制御しても良い。
【０１４３】
また、Ｃａｓｅ−６においてイベント５の音量は、イベント６の発音開始時刻Ｔ５（後の境界）から所定時間前において、イベント５の当初音量から段階的に下降し、その後、上昇するように制御する場合について説明した。しかしながら、この場合、イベント５の音量を、イベント６の発音開始時刻Ｔ５（後の境界）から所定時間前において、イベント５の当初音量から段階的に下降させることなく、そのイベント５の当初音量から所定量上昇させ、その後「０」に向けて下降するように制御しても良い。
【０１４４】
また、本実施例では、遷移パラメータ格納領域に格納される遷移パラメータは固定値である場合について説明した。しかしながら、遷移パラメータは、任意の値に変更できるようにしても良い。また、当然に、遷移パラメータの値は本実施例の値に限定されるものではない。
【図面の簡単な説明】
【図１】本発明の実施例である歌唱データ生成プログラムを搭載した歌唱音生成装置の電気的ブロック図である。
【図２】イベントデータ格納領域を示すテーブルである。
【図３】（ａ）は、各イベントに対応する歌詞を示す図である。（ｂ）は、各イベントの当初音高の変化を示すグラフである。（ｃ）は、（ｂ）で示した各イベントの当初音高に遷移パラメータを付与し歌唱データとして生成される各イベントの音高の変化を示すグラフである。（ｄ）は、各イベントの当初音量の変化を示すグラフである。（ｅ）は、（ｄ）で示した各イベントの当初音高に遷移パラメータを付与し歌唱データとして生成される各イベントの音量の変化を示すグラフである。
【図４】図３（ｃ）、（ｄ）の変化領域１０１〜１０８の拡大図である。
【図５】遷移パラメータ格納領域を示すテーブルである。
【図６】歌唱音生成装置のメイン処理を示すフローチャートである。
【図７】歌唱データ生成処理を示すフローチャートである。
【図８】イベントデータ生成処理を示すフローチャートである。
【図９】パターンデータ生成処理を示すフローチャートである。
【図１０】Ｃａｓｅ−０の処理を示すフローチャートである。
【図１１】Ｃａｓｅ−１の処理を示すフローチャートである。
【図１２】演算１の処理を示すフローチャートである。
【図１３】演算２の処理を示すフローチャートである。
【図１４】Ｃａｓｅ−２の処理を示すフローチャートである。
【図１５】Ｃａｓｅ−３の処理を示すフローチャートである。
【図１６】Ｃａｓｅ−４の処理を示すフローチャートである。
【図１７】Ｃａｓｅ−５の処理を示すフローチャートである。
【図１８】Ｃａｓｅ−６の処理を示すフローチャートである。
【符号の説明】
１        歌唱音生成装置
【図１】
2004325831.tif 000003
【図２】
2004325831.tif 000004
【図３】
2004325831.tif 000005
【図４】
2004325831.tif 000006
【図５】
2004325831.tif 000007
【図６】
2004325831.tif 000008
【図７】
2004325831.tif 000009
【図８】
2004325831.tif 000010
【図９】
2004325831.tif 000011
【図１０】
2004325831.tif 000012
【図１１】
2004325831.tif 000013
【図１２】
2004325831.tif 000014
【図１３】
2004325831.tif 000015
【図１４】
2004325831.tif 000016
【図１５】
2004325831.tif 000017
【図１６】
2004325831.tif 000018
【図１７】
2004325831.tif 000019
【図１８】
2004325831.tif 000020
【手続補正書】
【提出日】平成15年6月19日(2003.6.19)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップで記憶させた前記複数の音符データの内、一の音符データの前が所定時間以上の無音である場合には、前記一の音符データの音高を、その発音開始時刻において前記一の音符データの音高より所定量低く設定し、段階的に前記一の音符データの音高になるように生成する音高生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項２】音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、前記一の音符データの音高を、その音高より段階的に所定量上昇させた後、前記他の音符データの音高より段階的に所定量下降させ、更に、段階的に前記他の音符データの音高になるように生成する音高生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項３】音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、前記一の音符データの音高を、その音高より段階的に所定量下降させた後、前記他の音符データの音高より段階的に所定量上昇させ、更に、段階的に前記他の音符データの音高になるように生成する音高生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項４】音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が所定範囲内である場合には、前記他の音符データとの境界の前後所定時間範囲内において、前記一の音符データの音高を、段階的に前記他の音符データの音高より所定量低くなるように下降させた後、段階的に前記他の音符データの音高になるように生成する音高データ生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項５】音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの音高を、その発音終了時刻より所定時間前の時刻から発音終了時刻までの間において、段階的に所定量下降させるように生成する音高生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項６】音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの前が所定時間以上の無音である場合には、前記一の音符データの音量を、その発音開始時刻から前記一の音符データの音量より段階的に所定量上昇させた後、前記一の音符データの音量まで段階的に下降するよう生成する音量生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【請求項７】音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する歌唱データ生成プログラムにおいて、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの発音開始時刻から所定時間後の時刻から発音終了時刻までの間において、前記一の音符データの音量を、その音量から段階的に下降させた後に、段階的に上昇させ、更に、段階的に下降するよう生成する音量生成ステップを備えていることを特徴とする歌唱データ生成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、歌唱データ生成プログラムに関し、特に、自然な人声音として発音させることができる歌唱データを生成することができる歌唱データ生成プログラムに関するものである。
【０００２】
【従来の技術】従来より、音声合成技術を音楽に適用し、歌詞データに基づいて自然な歌唱音を合成出力する歌唱音合成装置が提案されている。この歌唱音合成装置は、歌詞データとメロディーデータとを記憶し、該メロディーデータの読出に対応して前記歌詞データを読み出し、当該歌詞データに対応した音韻を発音させて当該歌詞を歌唱させるように構成されている。この歌唱音合成装置に関しては、如何に、自然な人声音として発音させるかが課題となっている。
【０００３】
この課題を解決すべく、例えば、特許３３０７２８３号公報には、発音させる音韻のピッチを上昇させるときのピッチ変化速度を、発音させる音韻のピッチを下降させるときのピッチ変化速度よりも遅い速度に設定する技術が開示されている（特許文献１）。
【０００４】
また、特開２００１−５６６９５号公報には、連続音声波形のうちピッチ周波数が一定である定常区間で、このピッチ周波数とは異なるピッチ周波数までピッチ周波数が連続的に変化し、その後、元のピッチ周波数までピッチ周波数が連続的に変化するように、ポルタメント効果を付与する技術が開示されている（特許文献２）。
【０００５】
【特許文献１】
特許３３０７２８３号公報（第４，５段落等、第図７等）
【特許文献２】
特開２００１−５６６９５号公報（第４図等）
【０００６】
【発明が解決しようとする課題】しかしながら、上述した技術では、依然として自然な人声音としては違和感を感じ、一層、自然な人声音で発音させることが要望されている。
【０００７】
本発明は、この問題を解消すべくなされたものであって、自然な人声音として発音させることができる歌唱データを生成することができる歌唱データ生成プログラムを提供することを目的とするものである。
【０００８】
【課題を解決するための手段】この目的を達成するために請求項１記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップで記憶させた前記複数の音符データの内、一の音符データの前が所定時間以上の無音である場合には、前記一の音符データの音高を、その発音開始時刻において前記一の音符データの音高より所定量低く設定し、段階的に前記一の音符データの音高になるように生成する音高生成ステップを備えている。
【０００９】
ここで、音高生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音高を、その発音開始時刻において前記一の音符データの音高より所定量低く、段階的に前記一の音符データの音高になるように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップで記憶させた前記複数の音符データの内、一の音符データの前が所定時間以上の無音であるか否かを判断する判断ステップと、その判断ステップで他の音符データの音量が所定時間以上の無音であると判断した場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００１０】
請求項２に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、前記一の音符データの音高を、その音高より段階的に所定量上昇させた後、前記他の音符データの音高より段階的に所定量下降させ、更に、段階的に前記他の音符データの音高になるように生成する音高生成ステップを備えている。
【００１１】
ここで、音高生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音高を、前記他の音符データとの発音境界の前後所定時間の範囲内において、その音高より段階的に所定量上昇させた後、前記他の音符データの音高より段階的に所定量下降させ、更に、段階的に前記他の音符データの音高になるように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低いか否かを判断する判断ステップと、その判断ステップで他の音符データの音高が前記一の音符データの音高より所定量低いと判断した場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００１２】
請求項３に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、前記一の音符データの音高を、その音高より段階的に所定量下降させた後、前記他の音符データの音高より段階的に所定量上昇させ、更に、段階的に前記他の音符データの音高になるように生成する音高生成ステップを備えている。
【００１３】
ここで、音高生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音高を、前記他の音符データとの発音境界の前後所定時間の範囲内において、その音高より段階的に所定量下降させた後、前記他の音符データの音高より段階的に所定量上昇させ、更に、段階的に前記他の音符データの音高になるように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高いか否かを判断する判断ステップと、その判断ステップで他の音符データの音高が前記一の音符データの音高より所定量高いと判断した場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００１４】
請求項４に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が所定範囲内である場合には、前記他の音符データとの境界の前後所定時間範囲内において、前記一の音符データの音高を、段階的に前記他の音符データの音高より所定量低くなるように下降させた後、段階的に前記他の音符データの音高になるように生成する音高データ生成ステップを備えている。
【００１５】
ここで、音高生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音高を、前記他の音符データとの境界の前後所定時間範囲内において、段階的に前記他の音符データの音高より所定量低くなるように下降させた後、段階的に前記他の音符データの音高になるように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が所定範囲内であるか否かを判断する判断ステップと、その判断ステップで前記条件に該当すると判断された場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００１６】
請求項５に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成する生成プログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの音高を、その発音終了時刻より所定時間前の時刻から発音終了時刻までの間において、段階的に所定量下降させるように生成する音高生成ステップを備えている。
【００１７】
ここで、音高生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音高を、その発音終了時刻より所定時間前の時刻から発音終了時刻までの間において、段階的に所定量下降させるように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音であるか否かを判断する判断ステップと、その判断ステップで前記他の音符データの音量が所定時間以上の無音であると判断された場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００１８】
請求項６に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、
一の音符データの前が所定時間以上の無音である場合には、前記一の音符データの音量を、その発音開始時刻から前記一の音符データの音量より段階的に所定量上昇させた後、前記一の音符データの音量まで段階的に下降するよう生成する音量生成ステップを備えている。
【００１９】
ここで、音量生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音量を、その発音開始時刻から前記一の音符データの音量より段階的に所定量上昇させた後、前記一の音符データの音量まで段階的に下降するように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの前が所定時間以上の無音であるか否かを判断する判断ステップと、その判断ステップで前記他の音符データの音量が所定時間以上の無音であると判断された場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００２０】
請求項７に記載の歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとを記憶させる記憶ステップを備え、その記憶ステップで記憶させた各データに基いて、前記歌詞データを歌唱させるための歌唱データを生成するプログラムであって、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの発音開始時刻から所定時間後の時刻から発音終了時刻までの間において、前記一の音符データの音量を、その音量から段階的に下降させた後に、段階的に上昇させ、更に、段階的に下降するよう生成する音量生成ステップを備えている。
【００２１】
ここで、音量生成ステップは、例えば、前記記憶ステップに記憶されている一の音符データの音量を、前記一の音符データの発音開始時刻から所定時間後の時刻から発音終了時刻までの間において、その音量から段階的に下降させた後に、段階的に上昇させ、更に、段階的に下降するように遷移させる遷移パラメータを記憶させる遷移パラメータ記憶ステップと、前記記憶ステップに記憶させた前記複数の音符データの内、一の音符データの後が所定時間以上の無音であるか否かを判断する判断ステップと、その判断ステップで前記他の音符データの音量が所定時間以上の無音であると判断された場合には、前記遷移パラメータ記憶ステップに記憶されている遷移パラメータを、前記一の音符データに付与する遷移パラメータ付与ステップとを備えている。
【００２２】
【発明の効果】請求項１に記載の歌唱データ生成プログラムによれば、一の音符データの前が所定時間以上の無音である場合には、一の音符データの音高を、その発音開始時刻において前記一の音符データの音高より所定量低く設定し、段階的に前記一の音符データの音高になるように生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２３】
請求項２に記載の歌唱データ生成プログラムによれば、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、一の音符データの音高を、その音高より段階的に所定量上昇させた後、前記他の音符データの音高より段階的に所定量下降させ、更に、段階的に前記他の音符データの音高になるように生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２４】
請求項３に記載の歌唱データ生成プログラムによれば、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高い場合には、前記他の音符データとの発音境界の前後所定時間の範囲内において、前記一の音符データの音高を、その音高より段階的に所定量下降させた後、前記他の音符データの音高より段階的に所定量上昇させ、更に、段階的に前記他の音符データの音高になるように生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２５】
請求項４に記載の歌唱データ生成プログラムによれば、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が所定範囲内である場合には、前記他の音符データとの境界の前後所定時間範囲内において、前記一の音符データの音高を、段階的に前記他の音符データの音高より所定量低くなるように下降させた後、段階的に前記他の音符データの音高になるように生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２６】
請求項５に記載の歌唱データ生成プログラムによれば、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの音高を、その発音終了時刻より所定時間前の時刻から発音終了時刻までの間において、段階的に所定量下降させるように生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２７】
請求項６に記載の歌唱データ生成プログラムによれば、一の音符データの前が所定時間以上の無音である場合には、前記一の音符データの音量を、その発音開始時刻から前記一の音符データの音量より段階的に所定量上昇させた後、前記一の音符データの音量まで段階的に下降するよう生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２８】
請求項７に記載の歌唱データ生成プログラムによれば、一の音符データの後が所定時間以上の無音である場合には、前記一の音符データの発音開始時刻から所定時間後の時刻から発音終了時刻までの間において、前記一の音符データの音量を、その音量から段階的に下降させた後に、段階的に上昇させ、更に、段階的に下降するよう生成するので、自然な人声音として発音させることができる歌唱データを生成することができるという効果がある。
【００２９】
【発明の実施の形態】以下、本発明の好ましい実施例について、添付図面を参照して説明する。図１は、本発明の実施例である歌唱データ生成プログラムを搭載した歌唱音生成装置１の電気的構成を示すブロック図である。この歌唱音生成装置１に搭載される歌唱データ生成プログラムは、音高と音量と発音開始時刻とを有する複数の音符データと、その複数の音符データの各々に対応する複数の歌詞データとに基いて、その歌詞データを歌唱させるための歌唱データを生成するプログラムである。
【００３０】
歌唱音生成装置１は、バスライン３を介して、中央演算装置であるＣＰＵ２と、電気的に書換え不可能な不揮発性記憶装置であるＲＯＭ４と、電気的に書換え可能な不揮発性記憶装置であるハードディスク５と、各種のデータを一時的に記憶するＲＡＭ６と、記憶媒体８との間でデータの送受信を行うインターフェイスである入出力ポート７と、各種モードを選択可能な操作子を含む各種操作子９と、ＤＳＰで構成され、デジタル信号の歌唱音を生成する歌唱音源１０とが各々接続され、歌唱音源１０にはデジタル信号をアナログ信号に変換するＤ／Ａコンバータ１１が接続されている。
【００３１】
この歌唱音生成装置１によれば、ＣＰＵ２の制御の下で、ＲＯＭ４に記憶されている歌唱データ生成プログラムが起動し、記憶媒体８に記憶されている演奏データと歌詞データとが入出力ポート７を介して入力されると、演奏データに含まれる音符データがＥＥＰＲＯ５のイベントデータ格納領域（図２参照）にイベントデータ毎に格納される。また、ハードディスク５には、予めイベントデータ格納領域に格納された音符データの変化パターンに対応する遷移パラメータが遷移パラメータ格納領域（図５参照）に格納されている。
【００３２】
そして、イベントデータ格納領域に格納した音符データを順次読込んで、その音符データとその直前の音符データ又はその直後の音符データとを比較することにより、その音符データの変化パターンを検出する。その音符データの変化パターンを検出すると、その変化パターンに対応する遷移パラメータを、その音符データに付与し、歌唱データとして生成する。こうして生成された歌唱データは、歌唱音源１０でデジタル信号の歌唱音に生成され、Ｄ／Ａコンバータ１１でアナログ信号の歌唱音として変換されて出力される。
【００３３】
図２は、イベントデータ格納領域を示すテーブルである。尚、このテーブルには、イベント１からイベント３だけを図示し、その他のイベントについての図示は省略してある。記憶媒体８から入力される演奏データはＳＭＦ（スタンダード・ミディ・ファイル）の形式で構成され、歌詞データはテキストファイル形式で構成されている。また、演奏データは、ノート情報（ノート番号、ベロシティ、ノートオン、ノートオフ）と、テンポ情報と、コントロールチェンジと、デルタタイム等のデータで構成されている。尚、演奏データに含まれるノート番号と、ベロシティと、デルタタイムとを、特に、音符データと称す。
【００３４】
この１つの音符データには、１つの歌詞データが対応付けられている。つまり歌詞「あ」に対応する音符は１つのみである。従って、ノート情報の内のノートオンからノートオフまでの間を一つの音節に対応する音符データとして捉え、ＳＭＦの先頭から音符順にテキスト形式の歌詞を対応させる。
【００３５】
イベントデータ格納領域には、各イベント毎に、１つの音符データに対応する１つの歌詞データを「歌詞」、ノート番号を「当初音高」、ベロシティを「当初音量」、デルタタイムから生成される演奏データの先頭からの時刻（ｔｉｃｋ）を当該音符データの「演奏開始時刻」として格納する。
【００３６】
ここで、ｔｉｃｋは、演奏のテンポの基本になるクロックパルス１つを１ｔｉｃｋとし、４／４拍子を例にとると、４分音符は９６ｔｉｃｋで、１小節に対応するｔｉｃｋは３８４ｔｉｃｋとなる。従って、時刻は演奏テンポの設定により変化する。当初音高は、音高を半音単位で０から１２７のステップで表わしたものである。たとえば８８鍵のピアノの最低音は２１に相当し、音階はＡ０で表される。また最高音階は１０８に相当し、Ｃ８で表される。この音高を示す単位であるセントは、１オクターブを１２００で表現し、半音は１００セントに相当するものとする。
【００３７】
その他にも、イベントデータ格納領域には、各イベント毎に歌唱データとして「生成音高」と「生成音量」とが格納される。「生成音高」は、歌唱データとして出力するための音高と、その音高に対応する時刻とを組にしたデータであって、各イベント毎に（ｐｉｔｃｈ−１，ｔｉｃｋ−１）から（ｐｉｔｃｈ−ｎ，ｔｉｃｋ−ｎ）までが順番に格納される。尚、実際に出力されるデータ形式は、例えばＭＩＤＩのエクスクルーシブメッセージのように接続された歌唱音源１０に対応する形式とする。
【００３８】
「生成音量」は、歌唱データとして出力するための音量と、その音量に対応する時刻とを組にしたものであって、各イベント毎に（ｖｏｌｕｍｅ−１，ｔｉｃｋ−１）から（Ｖｏｌｕｍｅ−ｎ，ｔｉｃｋ−ｎ）までが順番に格納される。尚、実際に出力されるデータ形式は、例えばＭＩＤＩのエクスクルーシブメッセージのように接続された歌唱音源１０に対応する形式とする。
【００３９】
図３は、各イベントの歌詞、当初音高、当初音量の変化と、その当初音高、当初音量に遷移パラメータを付与し歌唱データとして生成される各イベントの音高、音量の変化との対比を示す図である。尚、図３（ａ）〜（ｅ）の横軸は時間を表し、図３（ｂ）及び（Ｃ）の縦軸は音高を表し、図３（ｄ）及び（ｅ）の縦軸は音量を表し、Ｔ１からＴ５は、各イベントの変化ポイント（境界線）を表している。
【００４０】
図３（ａ）は、各イベントに対応する歌詞を示す図である。本実施例では、イベント１とイベント６とは「無音」であり、イベント２には歌詞「あ」、イベント３には歌詞「お」、イベント４には歌詞「い」、イベント５には歌詞「う」、の歌詞がそれぞれ対応付けられている。
【００４１】
図３（ｂ）は、各イベントの当初音高の変化を示すグラフである。各イベントの当初音高は、各イベントの発音時間内においては一定値のままで、各境界線（Ｔ１からＴ５）上において、隣接するイベントの当初音高に変化するように遷移する。一方、図３（ｃ）は、図３（ｂ）で示した各イベントの当初音高に遷移パラメータを付与し歌唱データとして生成される各イベントの音高の変化を示すグラフである。
【００４２】
イベント１とイベント２との境界線Ｔ１（イベント２の発音開始時刻）から所定時間経過後の変化領域１０１について着目する。ここで、図３（ａ）に示すように、イベント２には有音である歌詞「あ」が対応付けられており、そのイベント２の直前のイベント１は所定時間以上の「無音」である。即ち、一の音符データの前が所定時間以上の無音である場合、一の音符データとしてのイベント２の音高は、変化領域１０１に示すように、イベント２の発音開始時刻Ｔ１において、イベント２の当初音高より低く設定され、その低い音高で所定時間遷移した後に、段階的にイベント２の当初音高になるように遷移する。尚、このようなパターンをＣａｓｅ−１として扱う。
【００４３】
イベント２とイベント３との境界線Ｔ２（イベント３の発音開始時刻）の前後所定時間内の変化領域１０２について着目する。ここで、図３（ｂ）に示すように、イベント３の当初音高は、イベント２の当初音高より所定量低く設定されている。即ち、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低い場合には、一の音符データとしてのイベント２の音高は、変化領域１０２に示すように、イベント２の当初音高より段階的に所定量上昇した後、他の音符データとしてのイベント３の当初音高より段階的に所定量下降し、更に、段階的にイベント３の当初音高になるように遷移する。尚、このような場合をＣａｓｅ−２として扱う。
【００４４】
イベント３とイベント４との境界線Ｔ３（イベント４の発音開始時刻）の前後所定時間内の変化領域１０３について着目する。ここで、図３（ｂ）に示すように、イベント４の当初音高は、イベント３の当初音高より所定量高く設定されている。即ち、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高い場合には、一の音符データとしてのイベント３の音高は、変化領域１０３に示すように、イベント３の当初音高より段階的に所定量下降した後、他の音符データとしてのイベント４の当初音高より段階的に所定量上昇し、更に、段階的にイベント４の当初音高になるように遷移する。尚、このような場合をＣａｓｅ−３として扱う。
【００４５】
イベント４とイベント５との境界線Ｔ４（イベント５の発音開始時刻）の前後所定時間内の変化領域１０４について着目する。ここで、図３（ａ）、（ｂ）に示すように、イベント４には歌詞「い」が対応付けられ、イベント５には歌詞「う」が対応付けられている。また、イベント４の当初音高と、イベント５の当初音高とは略同等に設定されている。即ち、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が略同等（所定範囲内）である場合には、一の音符データとしてのイベント４の音高は、境界線Ｔ４に向けて段階的にイベント４の当初音高より所定量低くなるように下降し、段階的に他の音符データとしてのイベント５の当初音高になるように遷移する。尚、このような場合をＣａｓｅ−４として扱う。また、本実施例では、一の音符データに対応する歌詞と他の音符データに対応する歌詞とが異なる場合をＣａｓｅ−４として扱うが、両者に対応する歌詞が同じであっても良いことはいうまでもない。
【００４６】
イベント５における変化領域１０５について着目する。ここで、イベント５の音長は、他のイベントの音長に比べて長く設定されている。即ち、一の音符データの音長が所定以上の長さの場合には、一の音符データとしてのイベント５の音高は、イベント５の当初音高より段階的に下降した後に、段階的にイベント５の当初音高に上昇するように遷移する。尚、このような場合をＣａｓｅ−５として扱う。
【００４７】
イベント５とイベント６との境界線Ｔ５（イベント６の発音開始時刻）の前後所定時間内の変化領域１０６について着目する。ここで、図３（ａ）に示すように、イベント５には有音である歌詞「う」が対応付けられており、そのイベント５の直後のイベント６は所定時間以上の「無音」である。即ち、一の音符データの後が所定時間以上の無音である場合には、一の音符データとしてのイベント５の音高は、段階的に所定量下降するように遷移する。尚、このような場合をＣａｓｅ−６として扱う。
【００４８】
図３（ｄ）は、各イベントの当初音量の変化を示すグラフである。各イベントの当初音量は、各イベントの発音時間内においては一定値のままで、各境界線（Ｔ１からＴ５）上において、隣接するイベントの当初音量に変化する。一方、図３（ｅ）は、図３（ｄ）で示した各イベントの当初音量に遷移パラメータを付与し歌唱データとして生成される各イベントの音量の変化を示すグラフである。
【００４９】
イベント１とイベント２との境界線Ｔ１（イベント２の発音開始時刻）から所定時間経過後の変化領域１０７について着目する。上述した通り、一の音符データの前が所定時間以上の無音である場合、一の音符データとしてのイベント２の音量は、変化領域１０７に示すように、「無音」からイベント２の当初音量より段階的に所定量上昇し、その後、イベント２の当初音量まで段階的に下降するよう遷移する。尚、このような場合をＣａｓｅ−１ｖとして扱う。
【００５０】
イベント５とイベント６との境界線付近である変化領域１０８について着目する。上述した通り、一の音符データの後が所定時間以上の無音である場合には、一の音符データとしてのイベント５の音量は、イベント５の当初音量から段階的に下降した後に、段階的に上昇し、更に、段階的に下降するよう遷移する。尚、このような場合をＣａｓｅ−６ｖとして扱う。
【００５１】
図４は、図３（ｃ）、（ｅ）における変化領域１０１〜１０８の拡大図であり、図５は、遷移パラメータ格納領域を示すテーブルである。図２に示すイベントデータ格納領域に格納された「発音開始時刻」、「当初音高」、「当初音量」からなる音符データは、その音符データの直前または直後の音符データと比較することで、その音符データが上述したＣａｓｅ−１〜Ｃａｓｅ−６のいずれのケースに該当するか否かが判断される。
【００５２】
遷移パラメータ格納領域には、各ケース毎に、その音符データの音高、音量を変化領域１０１〜１０８に示すように遷移させるために、図４に示すｐ１〜ｐ４およびｖ１〜ｖ４の各ポイントを設定する遷移パラメータが格納されている。この遷移パラメータには、音高に関する遷移パラメータと、音量に関する遷移パラメータとが設定されており、音高に関する遷移パラメータは（音高，ｔｉｃｋ）、音量に関する遷移パラメータは（音量、ｔｉｃｋ）を一組として格納されている。
【００５３】
例えば、図５において、Ｃａｓｅ−１について着目すると、図４のｐ１，ｐ２，ｐ３の各ポイントを設定するための音高に関する遷移パラメータとして（−３０，０）、（−３０，５）、（０，１０）が設定されている。ここで、上述した通り、Ｃａｓｅ−１は、一の音符データの前が所定時間以上の無音であるケースであり、一の音符データとしてはイベント２の音符データが該当し、当初音高は「６４」、発音開始時刻は「３８４」としてイベントデータ格納領域に格納されている。尚、当初音高「６４」には、更に１００が乗算され、その当初音高は「６４００」として制御される。
【００５４】
よって、図４に示すｐ１〜ｐ３の各ポイントは、イベント２の当初音高と発音開始時刻とに、上述した遷移パラメータを加算して、ｐ１は（６３７０，３８４）、ｐ２は（６３７０，３８９）、ｐ３は（６４００，３９４）として設定される。こうして設定される図４のｐ１〜ｐ３の各ポイント間を直線補間すれば、イベント２の音高は、変化領域１０１において、上述した通りに遷移する。
【００５５】
また、Ｃａｓｅ−１には、図４のｖ１，ｖ２，ｖ３の各ポイントを設定するための音量に関する遷移パラメータとして（Ｍ，０）、（５，８）、（０，１５）が設定されている。尚、Ｍは音量の絶対値が「０」である事、即ちミュートであることを意味している。ここで、イベント２の当初音量は「４０」、発音開始時刻は「３８４」として格納されている。
【００５６】
よって、図４に示すｖ１〜ｖ３の各ポイントは、イベント２の当初音量と発音開始時刻とに、上述した音量に関する遷移パラメータを加算して、ｖ１は（Ｍ，０）、ｖ２は（４５，３９２）、ｖ３は（４０，３９９）として設定される。こうして設定される図４のｖ１〜ｖ３の各ポイント間を直線補間すれば、イベント２の音高は、変化領域１０８において、上述した通りに遷移する。
【００５７】
次に、Ｃａｓｅ−２について着目すると、図４のｐ１，ｐ２，ｐ３，ｐ４の各ポイントを設定するための音高に関する遷移パラメータとして（０，−１５）、（＋２５，−１０）、（−２０，５）、（０，１０）が設定されている。ここで、上述した通り、Ｃａｓｅ−２は、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量低いケースであり、一の音符データとしてはイベント２の音符データが該当し、当初音高は「６４」としてイベントデータ格納領域に格納されている。また、他の音符データとしてはイベント３の音符データが該当し、当初音高は「５８」、演奏開始時刻は「４８０」としてイベントデータ格納領域に格納されている。
【００５８】
よって、図４に示すｐ１とｐ２とは、イベント２の当初音高「６４００」とイベント３の演奏開始時刻「４８０」に遷移パラメータを加算してｐ１は（６４００，４６５）、ｐ２は（６４２５，４７０）として設定され、図４に示すｐ３とｐ４とは、イベント３の当初音高「５８００」とイベント３の演奏開始時刻「４８０」に遷移パラメータを加算してｐ３は（５７８０，４８５）、ｐ４は（５８００，４９０）として設定される。こうして設定される図４のｐ１〜ｐ４の各ポイントの間を直線補間すれば、イベント２の音高は、変化領域１０２において、上述した通りに遷移する。
【００５９】
次に、Ｃａｓｅ−３について着目すると、図４のｐ１，ｐ２，ｐ３，ｐ４の各ポイントを設定するための音高に関する遷移パラメータとして（０，−１０）、（−２０，−５）、（２５，１０）、（０，１５）が設定されている。このケースはＣａｓｅ−２の逆のケースであり、一の音符データの後に連続する他の音符データの音高が前記一の音符データの音高より所定量高いケースであり、一の音符データとしてはイベント３の音符データが該当し、他の音符データとしてはイベント４の音符データが該当する。
【００６０】
図４に示すｐ１とｐ２とは、イベント３の当初音高とイベント４の演奏開始時刻とに遷移パラメータを加算して設定され、図４に示すｐ３とｐ４とは、イベント４の当初音高とイベント３の演奏開始時刻とに遷移パラメータを加算して設定される。こうして設定される図４のｐ１〜ｐ４の各ポイントの間を直線補間すれば、イベント３の音高は、上述した通りに遷移する。
【００６１】
次に、Ｃａｓｅ−４について着目すると、図４のｐ１，ｐ２，ｐ３，の各ポイントを設定するための音高に関する遷移パラメータとして（０，−８）、（−２０，０）、（０，１２）が設定されている。このケースは、一の音符データと、その一の音符データの後に連続する他の音符データとの音高差が略同等（所定範囲内）であるケースであり、一の音符データとしてはイベント４の音符データが該当し、他の音符データとしてはイベント５の音符データが該当する。
【００６２】
図４に示すｐ１は、イベント４の当初音高とイベント５の演奏開始時刻とに遷移パラメータを加算して設定され、図４に示すｐ２とｐ３とは、イベント５の当初音高とイベント５の演奏開始時刻とに遷移パラメータを加算して設定される。こうして設定される図４のｐ１〜ｐ３の各ポイントの間を直線補間すれば、イベント４の音高は、上述した通りに遷移する。
【００６３】
次に、Ｃａｓｅ−５について着目すると、図４のｐ１，ｐ２，ｐ３の各ポイントを設定するための音高に関する遷移パラメータとしてｐ１、（−２５，ｐ２）、ｐ３が設定されている。このケースは、一の音符データの音長が所定以上の長さを有するケースである。実施例では２分音符（１９２ｔｉｃｋ）以上の歌唱長において、このケースを採用する。本実施例では一の音符データとしてイベント５の音符データが該当する。このケースでは、まず、イベント５の歌唱長を４分割する。遷移パラメータｐ１の時刻はイベント５の発音開始時刻Ｔ４（前の境界）からの１／４の時刻とし、ｐ２の時刻は２／４の時刻とし、ｐ３の時刻は３／４の時刻とし、ｐ１とｐ３との音高はイベント５の当初音高と同じに設定されている。
【００６４】
図４に示すｐ２の音高は、イベント５の当初音高に遷移パラメータを加算して設定される。こうして設定される図４のｐ１〜ｐ３の各ポイントの間を直線補間すれば、イベント５の音高は、変化領域１０５において、上述した通りに遷移する。
【００６５】
次に、Ｃａｓｅ−６について着目すると、図４のｐ１，ｐ２，ｐ３の各ポイントを設定するための音高に関する遷移パラメータとして（０，−１０）、（−２０，１０）が設定されている。このケースは、一の音符データの後が所定時間以上の無音であるケースであり、一の音符データとしてはイベント５の音符データが該当する。
【００６６】
図４に示すｐ１とｐ２とは、イベント５の当初音高とイベント６の演奏開始時刻に遷移パラメータを加算して設定される。こうして設定される図４のｐ１とｐ２との各ポイントの間を直線補間すれば、イベント５の音高は、変化領域１０６において、上述した通りに遷移する。
【００６７】
また、Ｃａｓｅ−１には、図４のｖ１，ｖ２，ｖ３の各ポイントを設定するための音量に関する遷移パラメータとして（０，−２０）、（−１５，−５）、（−１０，０）、（Ｍ，１０）が設定されている。
【００６８】
よって、図４のｖ１〜ｖ４の各ポイントは、イベント５の当初音高とイベント６の演奏開始時刻とのデータに遷移パラメータを加算して設定される。こうして設定される図４のｖ１〜ｖ４の各ポイントの間を直線補間すれば、イベント５の音量は、変化領域１０８において、上述した通りに遷移する。
【００６９】
次に、上述のように構成された歌唱音生成装置１の動作について、図６乃至図１８のフローチャートを参照して説明する。図６は、本装置１のメイン処理（Ｓ６００）を示すフローチャートである。メイン処理では（Ｓ６００）、最初に初期設定処理が行われ（Ｓ６０１）、各レジスタ、メモリー領域、イベントデータ格納領域等が初期化される。初期設定処理が終了すると、モード入力処理が行われる（Ｓ６０２）。モード入力処理は、歌唱データ生成モード、当初の演奏データによる演奏モード、生成された歌唱データによる歌唱モード、歌唱データの生成に関する編集モード等の各モードを選択、入力する処理である。
【００７０】
そして、入力されたモードが歌唱データ生成モードか否か（Ｓ６０３）、あるいは、その他のモードか否か（Ｓ６０５）が判断される。その結果、歌唱データ生成モードであれば（Ｓ６０３：Ｙｅｓ）、歌唱データ生成処理（Ｓ６０４）を実行し、その他のモードであれば（Ｓ６０５：Ｙｅｓ）、その他のモード処理を実行する（Ｓ６０６）。
【００７１】
各モード処理が終了した場合や、いずれのモードも入力されなかった場合（Ｓ６０３、Ｓ６０５：Ｎｏ）には、メイン処理を終了する指示の有無が判断される（Ｓ６０７）。その結果、メイン処理を終了する指示がなければ（Ｓ６０７：Ｎｏ）、Ｓ６０２からの処理が繰り返され、終了する指示があれば（Ｓ６０７：Ｙｅｓ）、メイン処理を終了する。
【００７２】
図７は、上述した歌唱データ生成処理（Ｓ６０４）を示すフローチャートである。この歌唱データ生成処理では、最初にイベントデータ生成処理（Ｓ７０１）を実行する。イベントデータ生成処理は、演奏データと、それに対応づけられた歌詞データとを読み込んで、イベントデータとしてイベントデータ格納領域に「演奏開始時刻」、「歌詞」、「当初音高」、「当初音量」を順次格納する処理である。
【００７３】
イベントデータ生成処理（Ｓ７０１）が終了すると、パターンデータ生成処理（Ｓ７０２）を実行する。パターンデータ生成処理は、イベントデータ格納領域に格納したイベントデータに基づき、歌唱データとしての「生成音高」、「生成音量」を生成し、これらをイベントデータ格納領域に順次格納する処理である。
【００７４】
図８は、上述したイベントデータ生成処理（Ｓ７０１）を示すフローチャートである。イベントデータ生成処理では、最初に、イベントポインタと、歌詞読出ポインタと、音符読出ポインタとの各ポインタを先頭に設定する（Ｓ８０１）。
ここで、イベントポインタはイベントデータ格納領域のイベント番号を示すポインタである。歌詞読出ポインタは音符データに対応する歌詞データを読出すためのポインタである。音符読出ポインタは演奏データを読出すためのポインタである。
【００７５】
各ポインタを先頭にすると（Ｓ８０１）、音符読出ポインタの示す演奏データを読出し、その演奏データから音符データを読み出す（Ｓ８０２）。この演奏データはＭＩＤＩメッセージであり、ＭＩＤＩメッセージのノート情報のうち、先ずノート・オフか否かを判定する（Ｓ８０３）。ノート・オフでなければ（Ｓ８０３：Ｎｏ）、ノート・オンか否かを判定する（Ｓ８０４）。ノート・オンであれば（Ｓ８０４：Ｙｅｓ）、歌詞読出ポイントの示すアドレスから音符データに対応する歌詞データを読出す（Ｓ８０５）。こうして新規イベントとして、デルタタイムを基にイベントデータの開始ｔｉｃｋ、歌詞、ノートナンバー、ベロシティの各データをイベントポインタの示すイベントデータ格納領域の発音開始時刻、歌詞、当初音高、当初音量の各記憶領域にそれぞれ格納する（Ｓ８０６）。
【００７６】
一方、ノート・オフである場合には（Ｓ８０３：Ｙｅｓ）、次の音符データに含まれるノート・オンメッセージまでのデルタタイムから当該ノート・オフメッセージから次のノート・オンメッセージまでの時間が所定時間以上か否かを判定する（Ｓ８１０）。具体的には、本実施例では、所定時間として３２分音符（１２ｔｉｃｋ）が設定されており、３２分音符以上であれば（Ｓ８１０：Ｙｅｓ）、新規イベントとして休符（無音）イベントを生成し、休符イベントをイベントポインタの示すイベントデータ格納領域に格納する（Ｓ８１１）。
【００７７】
上述した通り、イベントデータ格納領域に各データを格納すると、次のイベントデータを読み出すため、イベントポインタと歌詞読出しポインタとに「１」を加算し（Ｓ８０７）、各ポインタを歩進させる。また、音符データのみを歩進させる場合のジャンプ先を確保するために、Ｓ８０７と分離して音符読出しポインタに「１」を加算し（Ｓ８０８）、音符読出ポインタを歩進させる。
【００７８】
即ち、ノート・オンでない場合には（Ｓ８０４：Ｎｏ）や、所定時間が３２分音符未満である場合には（Ｓ８１０：Ｎｏ）、ノート情報以外の情報をバイパスし、次の音符データを判定するためステップ８０８へスキップする。ここで、所定時間が３２分音符未満では、歌唱音独特のレガートな発音になるような音符データの生成を行う。これらは元々歌唱向きに作られていない演奏データのため、各音符の終端は次の音符の発音開始時刻より前にノート・オフメッセージが設定されていることが多いためである。尚、ノート・オフの時間としては上述した３２分音符に限定されるものではなく、この値を自由に変更できるようにしても良い。
【００７９】
そして、音符読出しポインタが最終データポイントを超過したか否かを判定し（Ｓ８０９）、超過していない場合には（Ｓ８０９：Ｎｏ）、Ｓ８０２からの処理を繰り返し、超過している場合には（Ｓ８０９：Ｙｅｓ）、このルーチンの処理を終了し、パターンデータ生成処理（Ｓ７０２）を実行する。
【００８０】
図９は、パターンデータ生成処理（Ｓ７０２）を示すフローチャートである。このパターンデータ生成処理では、最初に、イベントデータ格納領域から先頭のイベントデータを読出し（Ｓ９０１）、その読出したイベントデータのうち、先ず、そのイベントの当初音量が無音であるか否かを判定する（Ｓ９０２）。その結果、無音であれば（Ｓ９０２：Ｙｅｓ）、無音イベントとしての処理をするためにＣａｓｅ−０の処理を実行する（Ｓ９１１）。
【００８１】
無音でない場合には（Ｓ９０２：Ｎｏ）、そのイベントの直前のイベントが無音イベントか否かを判定する（Ｓ９０３）。その結果、そのイベントの直前のイベントが無音であれば（Ｓ９０３：Ｙｅｓ）、Ｃａｓｅ−１の処理を実行する（Ｓ９１２）。
【００８２】
そのイベントの直前のイベントが無音でない場合には（Ｓ９０３：Ｎｏ）、そのイベントの音符長が所定以上の長さであるか否か判定する（Ｓ９０４）。この判定は直後のイベントのｔｉｃｋと比較することで判定される。その結果、所定以上の長さであれば（Ｓ９０４：Ｙｅｓ）、Ｃａｓｅ−５の処理を実行する（Ｓ９１３）。
【００８３】
所定以上の長さでない場合には（Ｓ９０４：Ｎｏ）、そのイベントの直後のイベントの当初音高が、そのイベントの当初音高より所定以上（例えば１音）乖離して低い音高になっているか否かを判定する（Ｓ９０５）。低い音高になっている場合には（Ｓ９０５：Ｙｅｓ）、Ｃａｓｅ−２の処理を実行する（Ｓ９１４）。
【００８４】
低い音高になっていない場合には（Ｓ９０５：Ｎｏ）、そのイベントの直後のイベントの当初音高が、そのイベントの当初音高より所定以上乖離して高い音高になっているか否かを判定する（Ｓ９０６）。高い音高になっている場合には（Ｓ９０６：Ｙｅｓ）、Ｃａｓｅ−３の処理を実行する（Ｓ９１５）。
【００８５】
高い音高になっていない場合には（Ｓ９０６：Ｎｏ）、そのイベントの直後のイベントの当初音高が、そのイベントの当初音高と同一であるか否かを判定すると共に、両イベントの歌詞が異なっているか否かを判定する（Ｓ９０７）。その条件を満たしている場合には（Ｓ９０７：Ｙｅｓ）、Ｃａｓｅ−４の処理を実行する（Ｓ９１６）。
【００８６】
前記条件を満たしていない場合には（Ｓ９０７：Ｎｏ）、そのイベントの直後のイベントが無音イベントか否かを判定する（Ｓ９０８）。無音である場合には（Ｓ９０８：Ｙｅｓ）、Ｃａｓｅ−６の処理を実行する（Ｓ９１７）。
【００８７】
無音でない場合には（Ｓ９０８：Ｎｏ）、次のイベントデータを読出すべく、イベントカウンタに「１」を加算し、イベントポインタを歩進させる（Ｓ９０９。そして、イベントデータの最後まで処理が終了したか否かを判定し（Ｓ９１０）、最後まで終了していない場合には（Ｓ９１０：Ｎｏ）、Ｓ９０２からの処理を繰り返し、終了している場合には（Ｓ９１０：Ｙｅｓ）、このパターンデータ生成処理を終了する。
【００８８】
図１０は、Ｃａｓｅ−０の処理（Ｓ９１１）を示すフローチャートである。この処理は、そのイベントを無音に設定するための処理であり、当初音量を「０」に設定し、イベントデータ格納領域にｔｉｃｋ値と当初音量「０」とを格納する（Ｓ１００１）。
【００８９】
図１１は、Ｃａｓｅ−１の処理（Ｓ９１２）を示すフローチャートである。この処理では、最初に図４のｐ１とｐ２との間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１１０１）。
【００９０】
ｓｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ１の音高を加算した値が代入され、ｓｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）が代入される。また、ｅｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。
【００９１】
ｐ１の位置とｐ２の位置とが設定されると、次に、その２点間を直線補間すべく演算１が実行される（Ｓ１１０２）。ここで、図１２を参照して演算１の処理について説明する。図１２は演算１の処理を示すフローチャートである。この演算１の処理では、最初に、ｅｔ値からｓｔ値を減算して２点間の分割数であるｓｔｅｐ値を求めると共に、そのｓｔｅｐ値における音高の増加量の割合である補間係数ｆを算出する（Ｓ１２０１）。即ち、補間係数ｆは、図４のｐ１とｐ２との２点間の傾きを意味している。
【００９２】
補間係数ｆを算出すると、補間位置ｎを初期値に設定し（Ｓ１２０２）、補間位置ｎに関する補間音高値Ｎを算出する（Ｓ１２０３）。この補間音高値Ｎは、補間係数ｆに補間位置ｎを乗算し、その値にｓｐ値を加算することで算出される。即ち、補間音高値Ｎは、図４のｐ１とｐ２とを結ぶ直線を意味し、「Ｎ＝ｓｐ＋（ｆ＊ｎ）」で算出される。補間位置ｎに関して、補間音高値Ｎを算出すると、補間音高値Ｎをｐｉｔｃｈ−ｎ、補間位置ｎにｓｔ値を加算した値をｔｉｃｋ‐ｎとして、イベントデータ格納領域のイベント２の「生成音高」領域に歌唱データとして格納する（Ｓ１２０４）。
【００９３】
そして、次の補間位置ｎにおける補間音高値Ｎを算出すべく、補間位置ｎに「１」を加算し（Ｓ１２０５）、補間位置ｎを歩進させ、その補間位置ｎがｓｔｅｐ値から「１」を減算した値より大きいか否かを判定する（Ｓ１２０６）。即ち、補間位置ｎが図４のｐ２より前の位置であるか否かを判定し、補間位置ｎが図４のｐ２より前の位置であれば、（Ｓ１２０６：Ｎｏ）、Ｓ１２０３からの処理を繰り返し、図４のｐ２より後の位置であれば（Ｓ１２０６：Ｙｅｓ）、演算１の処理を終了する。こうして図４のｐ１とｐ２との間が直線補間されることになる。
【００９４】
再び、図１１に戻って説明を続ける。図４のｐ１とｐ２との間が設定されると、次に、図４のｐ２とｐ３との間を設定すべく、ｐ２の位置とｐ３の位置とが設定される（Ｓ１１０３）。ｐ２の位置はｓｐ値とｓｔ値とによって設定され、ｐ３の位置はｅｐ値とｅｔ値とによって設定される。
【００９５】
ｓｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｓｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｅｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。
【００９６】
ｐ２の位置とｐ３の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ２とｐ３との２点間が直線補間される。ここまで処理によって、イベント２の音高は変化領域１０１において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【００９７】
上述したステップまでは音高についての処理したが、ここからのステップは音量についての処理になる。音量についての処理では、最初に、図４のｖ１とｖ２との間を設定すべく、図４に示すｖ１とｖ２との位置が設定される（Ｓ１１０５）。ｖ１の位置はｓｐ値とｓｔ値とによって設定され、ｖ２の位置はｅｐ値とｅｔ値とによって設定される。
【００９８】
ｓｐ値には、イベント２の直前のイベント１の音量が無音であるため「０」が代入され、ｓｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）が代入される。また、ｅｐ値には、イベント２の当初音量に、遷移パラメータｖ２の音量を加算した値が代入され、ｅｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｖ２の時刻を加算した値が代入される。
【００９９】
ｐ１の位置とｐ２の位置とが設定されると、次に、その２点間を直線補間すべく演算２が実行される（Ｓ１１０６）。ここで、図１３を参照して演算２の処理について説明する。図１３は演算２の処理を示すフローチャートである。この演算２の処理では、最初に、ｅｔ値からｓｔ値を減算して２点間の分割数であるｓｔｅｐ値を求めると共に、そのｓｔｅｐ値における音高の増加量の割合である補間係数ｆを算出する（Ｓ１３０１）。即ち、補間係数ｆは、図４のｖ１とｖ２との２点間の傾きを意味する。
【０１００】
補間係数ｆを算出すると、補間位置ｎを初期値に設定し（Ｓ１３０２）、補間位置ｎに関する補間音量値Ｎを算出する（１３０３）。この補間音量値Ｎは、補間係数ｆに補間位置ｎを乗算し、その値にｓｐ値を加算することで算出される。
即ち、補間音量値Ｎは、図４のｖ１とｖ２との間の直線を意味し、「Ｎ＝ｓｐ＋（ｆ＊ｎ）」で算出される。補間位置ｎに関して、補間音量値Ｎを算出すると、補間音量値Ｎをｖｏｌｕｍｅ−ｎ、補間位置ｎにｓｔ値を加算した値をｔｉｃｋ‐ｎとして、イベントデータ格納領域のイベント２の「生成音量」領域に歌唱データとして格納する（ｓ１３０４）。
【０１０１】
そして、次の補間位置ｎにおける補間音量値Ｎを算出すべく、補間位置ｎに「１」を加算し（Ｓ１３０５）、補間位置ｎを歩進させ、その補間位置ｎがｓｔｅｐ値から「１」を減算した値より大きいか否かを判定する（Ｓ１３０６）。即ち、補間位置ｎが図４のｖ２より前の位置であるか否かを判定し、補間位置ｎが図４のｖ２より前の位置であれば、（Ｓ１３０６：Ｎｏ）、Ｓ１３０３からの処理を繰り返し、図４のｖ２より後の位置であれば（Ｓ１３０６：Ｙｅｓ）、演算２の処理を終了する。こうして図４のｖ１とｖ２との間が直線補間されることになる。
【０１０２】
再び、図１１に戻って説明を続ける。図４のｖ１とｖ２との間が設定されると、次に、図４のｖ２とｖ３との間を設定すべく、ｖ２の位置とｖ３の位置とが設定される（Ｓ１１０７）。ｖ２の位置はｓｐ値とｓｔ値とによって設定され、ｖ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１０３】
ｓｐ値には、イベント２の当初音量に遷移パラメータｖ２の音量を加算した値が代入され、ｓｔ値には、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｖ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント２の当初音量に、遷移パラメータｖ３の音量を加算した値が代入され、ｅｔ値は、イベント２の発音開始時刻Ｔ１（前の境界）に遷移パラメータｖ３の時刻を加算した値が代入される。
【０１０４】
ｖ２の位置とｖ３の位置とが設定されると、上述したのと同様に演算２が実行され（Ｓ１１０６）、ｖ２とｖ３との２点間が直線補間される。ここまで処理によって、イベント２の音量は変化領域１０７において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１０５】
図１４は、Ｃａｓｅ−２の処理（Ｓ９１４）を示すフローチャートである。この処理では、最初に図４のｐ１とｐ２との間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１４０１）。
【０１０６】
ｓｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ１の音高を加算した値が代入され、ｓｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ１の時刻を加算した値が代入される。また、ｅｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。ｐ１の位置とｐ２の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ１とｐ２との２点間が直線補間される。
【０１０７】
次に、図４のｐ２とｐ３との間を設定すべく、ｐ２の位置とｐ３の位置とが設定される（Ｓ１４０２）。ｐ２の位置はｓｐ値とｓｔ値とによって設定され、ｐ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１０８】
ｓｐ値には、イベント２の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｓｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント３（イベント２の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｅｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。ｐ２の位置とｐ３の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ２とｐ３との２点間が直線補間される。
【０１０９】
次に、図４のｐ３とｐ４との間を設定すべく、ｐ３の位置とｐ４の位置とが設定される（Ｓ１４０３）。ｐ３の位置はｓｐ値とｓｔ値とによって設定され、ｐ４の位置はｅｐ値とｅｔ値とによって設定される。
【０１１０】
ｓｐ値には、イベント３（イベント２の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｓｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。また、ｅｐ値には、イベント３（イベント２の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ４の音高を加算した値が代入され、ｅｔ値には、イベント３の発音開始時刻Ｔ２（後の境界）に遷移パラメータｐ４の時刻を加算した値が代入される。
【０１１１】
ｐ３の位置とｐ４の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ３とｐ４との２点間が直線補間される。ここまで処理によって、イベント２の音高は変化領域１０２において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１１２】
図１５は、Ｃａｓｅ−３の処理（Ｓ９１５）を示すフローチャートである。この処理では、最初に図４のｐ１とｐ２との間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１５０１）。
【０１１３】
ｓｐ値には、イベント３の当初音高を１００倍した値に、遷移パラメータｐ１の音高を加算した値が代入され、ｓｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ１の時刻を加算した値が代入される。また、ｅｐ値には、イベント３の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。ｐ１の位置とｐ２の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ１とｐ２との２点間が直線補間される。
【０１１４】
次に、図４のｐ２とｐ３との間を直線補間すべく、ｐ２の位置とｐ３の位置とが設定される（Ｓ１５０２）。ｐ２の位置はｓｐ値とｓｔ値とによって設定され、ｐ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１１５】
ｓｐ値には、イベント３の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｓｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント４（イベント３の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｅｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。ｐ２の位置とｐ３の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ２とｐ３との２点間が直線補間される。
【０１１６】
次に、図４のｐ３とｐ４との間を直線補間すべく、ｐ３の位置とｐ４の位置とが設定される（Ｓ１５０３）。ｐ３の位置はｓｐ値とｓｔ値とによって設定され、ｐ４の位置はｅｐ値とｅｔ値とによって設定される。
【０１１７】
ｓｐ値には、イベント４の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｓｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。また、ｅｐ値には、イベント４（イベント３の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ４の音高を加算した値が代入され、ｅｔ値には、イベント４の発音開始時刻Ｔ３（後の境界）に遷移パラメータｐ４の時刻を加算した値が代入される。
【０１１８】
ｐ３の位置とｐ４の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ３とｐ４との２点間が直線補間される。ここまで処理によって、イベント３の音高は変化領域１０３において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１１９】
図１６は、Ｃａｓｅ−４の処理（Ｓ９１６）を示すフローチャートである。この処理では、最初に図４のｐ１とｐ２間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１６０１）。
【０１２０】
ｓｐ値には、イベント４の当初音高を１００倍した値に、遷移パラメータｐ１の音高を加算した値が代入され、ｓｔ値には、イベント５の発音開始時刻Ｔ４（後の境界）に遷移パラメータｐ１の時刻を加算した値が代入される。また、ｅｐ値には、イベント４の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、イベント５の発音開始時刻Ｔ４（後の境界）に、遷移パラメータｐ２の時刻を加算した値が代入される。ｐ１の位置とｐ２の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ１とｐ２との２点間が直線補間される。
【０１２１】
次に、図４のｐ２とｐ３との間を直線補間すべく、ｐ２の位置とｐ３の位置とが設定される（Ｓ１６０２）。ｐ２の位置はｓｐ値とｓｔ値とによって設定され、ｐ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１２２】
ｓｐ値には、イベント４の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｓｔ値には、イベント５の発音開始時刻Ｔ４（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント５（イベント４の次のイベント）の当初音高を１００倍した値に、遷移パラメータｐ３の音高を加算した値が代入され、ｅｔ値には、イベント５の発音開始時刻Ｔ４（後の境界）に遷移パラメータｐ３の時刻を加算した値が代入される。
【０１２３】
ｐ２の位置とｐ３の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ２とｐ３との２点間が直線補間される。ここまで処理によって、イベント４の音高は変化領域１０４において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１２４】
図１７は、Ｃａｓｅ−５の処理（Ｓ９１３）を示すフローチャートである。この処理では、最初に、イベント５の音長を４分割し、イベント５の発音開始時刻Ｔ４から１／４の時刻をｐ１とする。次に同様に２／４の時刻をｐ２とする。さらに同様に３／４の時刻をｐ３とする。ｐ１およびｐ３は当初音高と同じになるように設定する。
【０１２５】
次に、図４のｐ１とｐ２との間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１７０２）。
【０１２６】
ｓｐ値には、イベント５の当初音高を１００倍した値が代入され、ｓｔ値には遷移パラメータｐ１の時刻が代入される。また、ｅｐ値には、イベント５の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、遷移パラメータｐ２の時刻が代入される。ｐ１の位置とｐ２の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ１とｐ２との２点間が直線補間される。
【０１２７】
次に、図４のｐ２とｐ３との間を設定すべく、ｐ２の位置とｐ３の位置とが設定される（Ｓ１７０３）。ｐ２の位置はｓｐ値とｓｔ値とによって設定され、ｐ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１２８】
ｓｐ値には、イベント５の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｓｔ値には、遷移パラメータｐ２の時刻が代入される。また、ｅｐ値には、イベント５の当初音高を１００倍した値が代入され、ｅｔ値には、遷移パラメータｐ３の時刻が代入される。
【０１２９】
ｐ２の位置とｐ３の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ２とｐ３との２点間が直線補間される。ここまで処理によって、イベント５の音高は変化領域１０５において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１３０】
図１８は、Ｃａｓｅ−６の処理（Ｓ９１７）を示すフローチャートである。この処理では、最初に図４のｐ１とｐ２との間を設定すべく、図４のｐ１とｐ２との位置が設定される。ｐ１の位置はｓｐ値とｓｔ値とによって設定され、ｐ２の位置はｅｐ値とｅｔ値とによって設定される（Ｓ１８０１）。
【０１３１】
ｓｐ値には、イベント５の当初音高を１００倍した値に、遷移パラメータｐ１の音高を加算した値が代入され、ｓｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に、遷移パラメータｐ１の時刻を加算した値が代入される。また、ｅｐ値には、イベント５の当初音高を１００倍した値に、遷移パラメータｐ２の音高を加算した値が代入され、ｅｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｐ２の時刻を加算した値が代入される。
【０１３２】
ｐ１の位置とｐ２の位置とが設定されると、上述したのと同様に演算１が実行され（Ｓ１１０２）、ｐ１とｐ２との２点間が直線補間される。ここまで処理によって、イベント５の音高は変化領域１０６において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１３３】
上述したステップまでは音高についての処理したが、ここからは音量についての処理になる。音量についての処理では、最初に、図４のｖ１とｖ２との間を設定すべく、図４に示すｖ１とｖ２との位置が設定される（Ｓ１８０２）。ｖ１の位置はｓｐ値とｓｔ値とによって設定され、ｖ２の位置はｅｐ値とｅｔ値とによって設定される。
【０１３４】
ｓｐ値には、イベント５の当初音量に、遷移パラメータｖ１の音量を加算した値が代入され、ｓｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ１の時刻を加算した値が代入される。また、ｅｐ値には、イベント５の当初音量に、遷移パラメータｖ２の音量を加算した値が代入され、ｅｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ２の時刻を加算した値が代入される。ｖ１の位置とｖ２の位置とが設定されると、上述したのと同様に演算２が実行され（Ｓ１１０６）、ｖ１とｖ２との２点間が直線補間される。
【０１３５】
次に、図４のｖ２とｖ３との間を設定すべく、ｖ２の位置とｖ３の位置とが設定される（Ｓ１８０３）。ｖ２の位置はｓｐ値とｓｔ値とによって設定され、ｖ３の位置はｅｐ値とｅｔ値とによって設定される。
【０１３６】
ｓｐ値には、イベント５の当初音量に遷移パラメータｖ２の音量を加算した値が代入され、ｓｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ２の時刻を加算した値が代入される。また、ｅｐ値には、イベント５の当初音量に、遷移パラメータｖ３の音量を加算した値が代入され、ｅｔ値は、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ３の時刻を加算した値が代入される。ｖ２の位置とｖ３の位置とが設定されると、上述したのと同様に演算２が実行され（Ｓ１１０６）、ｖ２とｖ３との２点間が直線補間される。
【０１３７】
次に、図４のｖ３とｖ４との間を設定すべく、ｖ３の位置とｖ４の位置とが設定される（Ｓ１８０４）。ｖ３の位置はｓｐ値とｓｔ値とによって設定され、ｖ４の位置はｅｐ値とｅｔ値とによって設定される。
【０１３８】
ｓｐ値には、イベント５の当初音量に遷移パラメータｖ３の音量を加算した値が代入され、ｓｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ３の時刻を加算した値が代入される。また、ｅｐ値には、音量「０」が代入され、ｅｔ値には、イベント６の発音開始時刻Ｔ５（後の境界）に遷移パラメータｖ４の時刻を加算した値が代入される。
【０１３９】
ｖ３の位置とｖ４の位置とが設定されると、上述したのと同様に演算２が実行され（Ｓ１１０６）、ｖ３とｖ４との２点間が直線補間される。ここまで処理によって、イベント５の音量は変化領域１０８において、上述したように遷移する歌唱データとして生成されるので、その歌唱データに基づいて歌詞データを自然な人声音として発音させることができる。
【０１４０】
上記実施例において、請求項１記載の音高生成ステップとしては、図９のＳ９０３、図１１のＣａｓｅ−１の処理において、Ｓ１１０５より前のステップが該当する。請求項２記載の音高生成ステップとしては、図９のＳ９０５、図１４のＣａｓｅ−２の処理が該当する。請求項３記載の音高生成ステップとしては、図９のＳ９０６、図１５のＣａｓｅ−３の処理が該当する。請求項４記載の音高生成ステップとしては、図９のＳ９０７、図１６のＣａｓｅ−４の処理が該当する。請求項５記載の音高生成ステップとしては、図９のＳ９０８、図１８のＣａｓｅ−６の処理において、Ｓ１８０２より前のスッテップが該当する。請求項６記載の音量生成ステップとしては、図９のＳ９０３、図１１のＣａｓｅ−１の処理において、Ｓ１１０５以降のステップが該当する。請求項７記載の音量生成ステップとしては、図９のＳ９０８、図１８のＣａｓｅ−６の処理において、Ｓ１８０２以降のステップが該当する。
【０１４１】
以上、実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【０１４２】
例えば、本実施例の歌唱データ生成プログラムでは、Ｃａｓｅ−１においてイベント２の音高は、イベント２の発音開始時刻Ｔ１からイベント２の当初音高より低い音高を連続させた後に、段階的にイベント２の当初音高になるように制御する場合について説明した。しかしながら、この場合、イベント２の発音開始時刻Ｔ１における音高を、イベント２の当初音高より低い音高に設定し、その音高を所定時間連続させることなく、段階的にイベント２の当初音高になるように制御しても良い。
【０１４３】
また、Ｃａｓｅ−６においてイベント５の音量は、イベント６の発音開始時刻Ｔ５（後の境界）から所定時間前において、イベント５の当初音量から段階的に下降し、その後、上昇するように制御する場合について説明した。しかしながら、この場合、イベント５の音量を、イベント６の発音開始時刻Ｔ５（後の境界）から所定時間前において、イベント５の当初音量から段階的に下降させることなく、そのイベント５の当初音量から所定量上昇させ、その後「０」に向けて下降するように制御しても良い。
【０１４４】
また、本実施例では、遷移パラメータ格納領域に格納される遷移パラメータは固定値である場合について説明した。しかしながら、遷移パラメータは、任意の値に変更できるようにしても良い。また、当然に、遷移パラメータの値は本実施例の値に限定されるものではない。
【図面の簡単な説明】
【図１】本発明の実施例である歌唱データ生成プログラムを搭載した歌唱音生成装置の電気的ブロック図である。
【図２】イベントデータ格納領域を示すテーブルである。
【図３】（ａ）は、各イベントに対応する歌詞を示す図である。（ｂ）は、各イベントの当初音高の変化を示すグラフである。（ｃ）は、（ｂ）で示した各イベントの当初音高に遷移パラメータを付与し歌唱データとして生成される各イベントの音高の変化を示すグラフである。（ｄ）は、各イベントの当初音量の変化を示すグラフである。（ｅ）は、（ｄ）で示した各イベントの当初音高に遷移パラメータを付与し歌唱データとして生成される各イベントの音量の変化を示すグラフである。
【図４】図３（ｃ）、（ｄ）の変化領域１０１〜１０８の拡大図である。
【図５】遷移パラメータ格納領域を示すテーブルである。
【図６】歌唱音生成装置のメイン処理を示すフローチャートである。
【図７】歌唱データ生成処理を示すフローチャートである。
【図８】イベントデータ生成処理を示すフローチャートである。
【図９】パターンデータ生成処理を示すフローチャートである。
【図１０】Ｃａｓｅ−０の処理を示すフローチャートである。
【図１１】Ｃａｓｅ−１の処理を示すフローチャートである。
【図１２】演算１の処理を示すフローチャートである。
【図１３】演算２の処理を示すフローチャートである。
【図１４】Ｃａｓｅ−２の処理を示すフローチャートである。
【図１５】Ｃａｓｅ−３の処理を示すフローチャートである。
【図１６】Ｃａｓｅ−４の処理を示すフローチャートである。
【図１７】Ｃａｓｅ−５の処理を示すフローチャートである。
【図１８】Ｃａｓｅ−６の処理を示すフローチャートである。
【符号の説明】
１        歌唱音生成装置


【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図１７
【補正方法】変更
【補正の内容】
【図１７】
2004325831.tif 000021