(57)【要約】【課題】  自由に行われる演奏に合わせて歌唱音声を合成することができる技術的手段を提供する。【解決手段】  演奏データ発生装置１は、ユーザの演奏操作に応じて演奏データたるＭＩＤＩメッセージを発生し、歌唱合成装置２は、演奏データ発生装置１からＭＩＤＩメッセージが順次与えられるのに応じて、予め記憶した歌詞データを歌唱位置を変えつつ順次利用し、ＭＩＤＩメッセージにより定まるピッチおよび発音期間を持った歌唱音声をリアルタイムに合成する。【選択図】図１
2008170592.tif 000002
【特許請求の範囲】
【請求項１】
演奏データ発生装置と、歌唱合成装置とを具備し、
前記演奏データ発生装置は、
操作部と、
前記操作部の操作に応じて、演奏データを発生する演奏データ発生手段と、
前記演奏データ発生手段により発生された演奏データを前記歌唱合成装置に送信する送信手段とを具備し、
前記歌唱合成装置は、
各種の音声素片の波形を表す音声素片データを記憶する音声素片データベースと、
歌詞データの入力に用いられる歌詞データ入力手段と、
前記歌詞データを記憶する歌詞データ記憶手段と、
前記演奏データ発生装置の送信手段から送信される演奏データを受信する受信手段と、
前記受信手段により演奏データが受信されるのに応じて、前記歌詞データが示す歌詞における歌唱位置の更新制御を行う歌唱位置更新手段と、
前記歌詞データが示す歌詞において前記歌唱位置更新手段により歌唱位置とされた部分を構成する１または複数の音声素片に対応した音声素片データを前記音声素片データベースから読み出し、読み出した音声素片データを用いて、前記演奏データにより指定されるピッチおよび発音期間を持った歌唱音声データを合成する歌唱音声データ合成手段と、
前記歌唱音声データ合成手段により合成された歌唱音声データを音声として出力する音声出力手段とを具備することを特徴とする歌唱合成システム。
【請求項２】
各種の音声素片の波形を表す音声素片データを記憶する音声素片データベースと、
歌詞データの入力に用いられる歌詞データ入力手段と、
前記歌詞データを記憶する歌詞データ記憶手段と、
演奏データを受信する受信手段と、
前記受信手段により演奏データが受信されるのに応じて、前記歌詞データが示す歌詞における歌唱位置の更新制御を行う歌唱位置更新手段と、
前記歌詞データが示す歌詞において前記歌唱位置更新手段により歌唱位置とされた部分を構成する１または複数の音声素片に対応した音声素片データを前記音声素片データベースから読み出し、読み出した音声素片データを用いて、前記演奏データにより指定されるピッチおよび発音期間を持った歌唱音声データを合成する歌唱音声データ合成手段と、
前記歌唱音声データ合成手段により合成された歌唱音声データを音声として出力する音声出力手段と
を具備することを特徴とする歌唱合成装置。
【請求項３】
前記受信手段が受信する演奏データには、歌唱位置の変更を指示する演奏データが含まれ、
前記歌唱位置更新手段は、前記受信手段によって歌唱位置の変更を指示する演奏データが受信された場合に、該演奏データに従って歌唱位置を変更することを特徴とする請求項２に記載の歌唱合成装置。
【請求項４】
歌唱合成に関するモードとして、同時には１つの歌唱音の出力のみを許可するモノフォニックモードが設定されている場合において、発音期間がオーバラップした複数の音の出力を指示する複数の演奏データが順次受信された場合に、前記歌唱音声データ合成手段は、後着の演奏データの受信に応じて、合成する歌唱音声データのピッチを先着の演奏データが指定するピッチから後着の演奏データが指定するピッチへと変化させることを特徴とする請求項２または３に記載の歌唱合成装置。
【請求項５】
歌唱合成に関するモードとして、同時に複数の歌唱音の出力を許可するポリフォニックモードが設定されている場合において、発音期間がオーバラップした複数の音の出力を指示する複数の演奏データが順次受信された場合に、前記歌唱音声データ合成手段は、前記複数の演奏データの各々が受信されるのに応じて、各演奏データにより指示されるピッチを持った各歌唱音声データを合成することを特徴とする請求項２または３に記載の歌唱合成装置。
【請求項６】
前記演奏データには発音の開始を指示するノートオンメッセージと発音中の音の発音の終了を指示するノートオフメッセージとがあり、前記歌唱位置更新手段は、２つのノートオンメッセージが時間的に前後して受信された場合において、後続のノートオンメッセージが受信されたときに、先行するノートオンメッセージの受信により開始された発音を終了させるノートオフメッセージが既に受信されている場合には歌唱位置の更新を行い、前記先行するノートオンメッセージの受信により開始された発音を終了させるノートオフメッセージが未だ受信されていない場合には現状の歌唱位置を維持することを特徴とする請求項２〜５のいずれか１の請求項に記載の歌唱合成装置。
【請求項７】
新たなノートオンメッセージの受信に伴って前記歌唱位置更新手段により歌唱位置の更新が行われる場合において、前記歌唱音声データ合成手段は、先行するノートオフメッセージの受信時から当該新たなノートオンメッセージの受信時までのノート間ギャップの時間長に基づき、当該新たなノートオンメッセージの受信に伴って行う歌唱音声データの合成に用いる音声素片データの選択制御を行うことを特徴とする請求項６に記載の歌唱合成装置。
【請求項８】
新たなノートオンメッセージの受信に伴って前記歌唱位置更新手段により歌唱位置の更新が行われる場合において、前記歌唱音声データ合成手段は、先行するノートオフメッセージの受信時から所定長の発音維持時間が経過するまでの期間、または前記先行するノートオフメッセージの受信時から前記新たなノートオンメッセージが受信されるまでの期間のうち短い方の期間、更新前の歌唱位置に対応した歌唱部分の最後の音素から無音へと遷移する音声素片の音声素片データを用いて歌唱音声データの合成を行う請求項６に記載の歌唱合成装置。
【請求項９】
新たなノートオンメッセージの受信に伴って前記歌唱位置更新手段により歌唱位置の更新が行われる場合において、前記歌唱音声データ合成手段は、当該新たなノートオンメッセージの受信に伴って行う歌唱音声データの合成において、先行するノートオフメッセージの受信時から当該新たなノートオンメッセージの受信時までのノート間ギャップの時間長が前記発音維持時間よりも長い場合には、無音から更新後の歌唱位置の歌唱部分の最初の音素へと遷移する音声素片の音声素片データを最初に選択して歌唱音声データの合成を開始し、前記ノート間ギャップが前記発音維持時間以内である場合には更新前の歌唱位置の歌唱部分の最後の音素から更新後の歌唱位置の歌唱部分の最初の音素へと遷移する音声素片の音声素片データを最初に選択して歌唱音声データの合成を開始することを特徴とする請求項８に記載の歌唱合成装置。
【請求項１０】
前記歌唱音声データ合成手段は、歌唱音声データにおける子音区間の持続時間を指定された一定時間長とする強制指定モードでの歌唱合成と、歌唱音声データにおける子音部分の持続時間を子音の音声素片データ通りの時間とする固定モードでの歌唱合成を行う機能を有し、前記強制指定モードでの歌唱合成が指示された場合、演奏データに合わせて出力する歌唱音声データが母音のみのものであるか子音と母音の組み合わせのものであるかによらず、常に演奏データの受信時刻から所定時間が経過したときに母音区間の発音が開始されるように歌唱音声データの出力タイミングの制御を行うことを特徴とする請求項２〜９のいずれか１の請求項に記載の歌唱合成装置。
【請求項１１】
コンピュータを、
各種の音声素片の波形を表す音声素片データを記憶する音声素片データベースと、
歌詞データの入力に用いられる歌詞データ入力手段と、
前記歌詞データを記憶する歌詞データ記憶手段と、
演奏データを受信する受信手段と、
前記受信手段により演奏データが受信されるのに応じて、前記歌詞データが示す歌詞において歌唱位置を順次更新する歌唱位置更新手段と、
前記歌詞データが示す歌詞において前記歌唱位置更新手段により歌唱位置とされた部分を構成する１または複数の音声素片に対応した音声素片データを前記音声素片データベースから読み出し、読み出した音声素片データを用いて、前記演奏データにより指定されるピッチおよび発音期間を持った歌唱音声データを合成する歌唱音声データ合成手段と、
前記歌唱音声データ合成手段により合成された歌唱音声データを音声として出力する音声出力手段と
して機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、歌唱音声の合成を行う歌唱合成システムに関する。
【背景技術】
【０００２】
従来の歌唱合成装置は、ユーザの操作に応じて、曲を構成する個々の音符を示す情報と、これらの音符に合わせて歌唱する歌詞を示す情報とを含む歌唱合成スコアを予め記憶し、この記憶された歌唱合成スコアに従って歌唱音声を合成するものが一般的であった（例えば特許文献１参照）。
【特許文献１】特開２００６−２５９７６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の歌唱合成装置は、予め作成された歌唱合成スコア通りのピッチおよび音長で歌唱を合成することができるに過ぎず、演奏に合わせて、リアルタイムに歌唱音声のピッチや発音期間を変化させることができないという問題があった。
【０００４】
この発明は、以上説明した事情に鑑みてなされたものであり、自由に行われる演奏に合わせて歌唱音声を合成することができる技術的手段を提供することを目的としている。
【課題を解決するための手段】
【０００５】
この発明は、演奏データ発生装置と、歌唱合成装置とを具備し、前記演奏データ発生装置は、操作部と、前記操作部の操作に応じて、演奏データを発生する演奏データ発生手段と、前記演奏データ発生手段により発生された演奏データを前記歌唱合成装置に送信する送信手段とを具備し、前記歌唱合成装置は、各種の音声素片の波形を表す音声素片データを記憶する音声素片データベースと、歌詞データの入力に用いられる歌詞データ入力手段と、前記歌詞データを記憶する歌詞データ記憶手段と、前記演奏データ発生装置の送信手段から送信される演奏データを受信する受信手段と、前記受信手段により演奏データが受信されるのに応じて、前記歌詞データが示す歌詞における歌唱の更新制御を行う歌唱位置更新手段と、前記歌詞データが示す歌詞において前記歌唱位置更新手段により歌唱位置とされた部分を構成する１または複数の音声素片に対応した音声素片データを前記音声素片データベースから読み出し、読み出した音声素片データを用いて、前記演奏データにより指定されるピッチおよび発音期間を持った歌唱音声データを合成する歌唱音声データ合成手段と、前記歌唱音声データ合成手段により合成された歌唱音声データを音声として出力する音声出力手段とを具備することを特徴とする歌唱合成システムを提供する。
かかる発明によれば、ユーザが演奏データ発生装置の操作部の操作を行うと、それに応じて演奏データが歌唱合成装置に送られ、歌唱合成装置では、予め記憶された歌詞データを利用し、演奏データの受信に応じて歌詞データにおける歌唱位置を更新しつつ、演奏データにより指定されたピッチおよび発音期間を持った歌唱位置の歌唱音声の合成が行われる。従って、ユーザは、演奏データ発生装置を用いて自由に演奏を行い、その演奏に合わせて歌唱合成を行わせることができる。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照し、この発明の実施の形態を説明する。
＜Ａ．実施形態の構成＞
図１は、この発明の一実施形態である歌唱合成システムの構成を示すブロック図である。この歌唱合成システムは、演奏データ発生装置１と、歌唱合成装置２とをＭＩＤＩケーブル等の通信ケーブル３により接続してなるものである。この歌唱合成システムにおいて、演奏データ発生装置１は、ユーザの演奏操作に応じて演奏データたるＭＩＤＩメッセージを発生し、歌唱合成装置２は、演奏データ発生装置１からＭＩＤＩメッセージが順次与えられるのに応じて、予め記憶した歌詞データを歌唱位置を変えつつ順次利用し、ＭＩＤＩメッセージにより定まるピッチおよび発音期間を持った歌唱音声をリアルタイムに合成するものである。
【０００７】
演奏データ発生装置１は、例えばＭＩＤＩ鍵盤楽器であり、その構成は次の通りである。まず、ＣＰＵ１１は、演奏データ発生装置１の各部を制御する制御中枢である。不揮発性メモリ１２は、例えばＲＯＭであり、この演奏データ発生装置１の基本的な動作を制御するための制御プログラムや各種のアプリケーションプログラムを記憶している。
【０００８】
鍵盤部１３は、ユーザによって押鍵される複数の鍵とこれらの各鍵の状態を示す信号をＣＰＵ１１に供給するキースイッチ回路とにより構成されている。表示部１４は、装置の動作状態やユーザに対するメッセージなどを表示するための装置である。操作部１５は、ユーザからの操作を受け付け、ＣＰＵ１１に対して各種のコマンドやデータを与えるための装置であり、音色指定スイッチなど、鍵盤演奏音のパラメータ設定のための操作子、ピッチベンドホイールなど、各種の効果の発生を指示するための操作子、歌唱位置の変更（後述）など、歌唱合成装置２に対する制御コマンドの発生を指示するための操作子を含む。
【０００９】
音源１６は、ＣＰＵ１１からの指令に従い、デジタル楽音信号を形成する装置である。サウンドシステム１７は、音源１６において形成されたデジタル楽音信号をアナログ楽音信号に変換するＤ／Ａ変換器と、このアナログ楽音信号を増幅するアンプと、このアンプの出力信号を音として出力するスピーカ等により構成されている。
【００１０】
インタフェース群１８は、演奏データであるＭＩＤＩメッセージを送信するためのＭＩＤＩインタフェースや、磁気ディスクやＣＤ−ＲＯＭなどの外部記憶媒体との間でデータの授受を行うためのドライバなどにより構成されている。
【００１１】
ＲＡＭ１９は、ＣＰＵ１１によってワークエリアとして使用される揮発性メモリである。ＣＰＵ１１は、操作部１５を介して与えられる指令に従い、不揮発性メモリ１２内のアプリケーションプログラムをＲＡＭ１９にロードして実行する。
【００１２】
不揮発性メモリ１２に記憶されたアプリケーションプログラムのうち重要なものとして、ＭＩＤＩメッセージ発生プログラム１２１がある。このＭＩＤＩメッセージ発生プログラム１２１は、鍵盤部１３に対する操作および操作部１５に対する操作を検知し、検知結果に応じて、ＭＩＤＩメッセージを発生し、音源１６に楽音信号を形成させ、あるいはインタフェース群１８の中のＭＩＤＩインタフェースを介してＭＩＤＩメッセージの送信を行うプログラムである。
【００１３】
歌唱合成装置２は、音声を出力する機能を有するパーソナルコンピュータなどのコンピュータに対し、歌唱合成プログラムをインストールしたものであり、その構成は次の通りである。まず、ＣＰＵ２１は、歌唱合成装置２の各部を制御する制御中枢である。ＲＯＭ２２は、ローダなど、この歌唱合成装置の基本的な動作を制御するための制御プログラムを記憶している。表示部２３は、装置の動作状態や入力データおよび操作者に対するメッセージなどを表示するための装置である。操作部２４は、ユーザからコマンドや各種の情報を受け取るための手段であり、キーボードやマウスなどの各種の操作子により構成されている。
【００１４】
インタフェース群２５は、演奏データであるＭＩＤＩメッセージの受信のためのＭＩＤＩインタフェースや、ネットワークを介して他の装置との間でデータ通信を行うためのネットワークインタフェースや、磁気ディスクやＣＤ−ＲＯＭなどの外部記憶媒体との間でデータの授受を行うためのドライバなどにより構成されている。
【００１５】
ＨＤＤ（ハードディスク装置）２６は、各種のプログラムやデータベースなどの情報を記憶するための不揮発性記憶装置である。ＲＡＭ２７は、ＣＰＵ２１によってワークエリアとして使用される揮発性メモリである。ＣＰＵ２１は、操作部２４を介して与えられる指令に従い、ＨＤＤ２６内のプログラムをＲＡＭ２７にロードして実行する。
【００１６】
サウンドシステム２８は、この歌唱合成装置２において合成された音声を出力する手段であり、合成音声のサンプルデータである歌唱音声データをアナログ音声信号に変換するＤ／Ａ変換器と、このアナログ音声信号を増幅するアンプと、このアンプの出力信号を音として出力するスピーカ等により構成されている。
【００１７】
ＨＤＤ２６に記憶される情報として、歌詞データ入力プログラム６１と、歌唱合成プログラム６２と、歌詞データ群６３と、音声素片データベース６４がある。歌詞データ入力プログラム６１は、テキストエディタと同様のプログラムであり、操作部２４の操作により入力される文字列を歌詞データとしてＲＡＭ２７内に格納する。また、歌詞データ入力プログラム６１は、操作部２４の操作により格納コマンドが入力された場合、ＲＡＭ２７内の歌詞データをＨＤＤ２６に格納する。歌詞データ群６３は、このようにして格納される歌詞データおよびインタフェース群２５を介して外部から入力される歌詞データの集合体である。
【００１８】
音声素片データベース６４は、ＣＶ（子音から母音への遷移部）、ＶＶ（母音から他の母音への遷移部）、ＶＣ（母音から子音への遷移部）などの音素から音素への遷移部分（Ａｒｔｉｃｕｌａｔｉｏｎ）や母音Ｖの伸ばし音（Ｓｔａｔｉｏｎａｒｙ）など、歌声の素材となる各種の音声素片を示す音声素片データの集合体である。これらの音声素片データは、実際の人間が発した音声波形から抽出された音声素片に基づいて作成されたデータである。音声素片データベース６４は、日本語用のものと英語用のものが用意されている。また、各言語に対応した音声素片データベース６４では、男性歌手、女性歌手、澄んだ声の歌手、ハスキーな声の歌手など、声質の異なった歌手毎に、各歌手の歌唱音声波形から得られた音声素片データのグループが用意されている。ユーザは、操作部２４の操作により、以上のような各種の音声素片データのグループの中から歌唱合成に使用する音声素片データのグループを選択することができる。
【００１９】
各音声素片データは、音声素片の波形を示す波形データを含んでいる。本実施形態において、この波形データは、音声素片の波形を所定のサンプリングレートでサンプリングしたサンプル列を一定時間長のフレームに分割し、ＦＦＴ（高速フーリエ変換）を行うことにより得られたフレーム毎のスペクトルデータ（振幅スペクトルおよび位相スペクトル）である。また、各音声素片データは、音声素片を構成する音素の種類と各音素の開始時刻（例えば音声素片が音素Ｃから音素Ｖへの遷移部分である場合における各音素の開始時刻）を示すセグメンテーションデータを含む。
【００２０】
本実施形態において歌唱合成装置２では、音声素片データに含まれる波形データにピッチ変換を施して利用することにより、演奏データ発生装置１から受信されるノートオンメッセージのノートナンバに対応したピッチを持った歌唱音声を合成する。このピッチ変換を行うために、その対象である波形データのピッチに関する情報が必要である。そこで、ある好ましい態様では、歌唱合成の際のピッチ変換の便宜のため、音声素片の波形のピッチを示す素片ピッチデータが音声素片データの一部として音声素片データベース６４に格納される。
【００２１】
好ましい態様において、歌唱合成プログラム６２は、例えばインターネット内のサイトからインタフェース群２５の中の適当なものを介してダウンロードされ、ＨＤＤ２６にインストールされる。また、他の態様において、歌唱合成プログラム６２は、ＣＤ−ＲＯＭ、ＭＤなどのコンピュータ読み取り可能な記憶媒体に記憶された状態で取引される。この態様では、インタフェース群２５の中の適当なものを介して記憶媒体から歌唱合成プログラム６２が読み出され、ＨＤＤ２６にインストールされる。
【００２２】
本実施形態の特徴は、ＣＰＵ２１が歌唱合成プログラム６２に従って行う歌唱合成処理の内容にある。図２はこの歌唱合成プログラム６２の構成を示すブロック図である。図２に示すように、歌唱合成プログラム６２は、各々所定の機能を実現するプログラムであるＭＩＤＩメッセージ受信処理部７１と、音声合成部７２とにより構成されている。また、音声合成部７２は、各々所定の機能を実現するプログラムである歌唱位置更新処理部７２１と、歌詞表示制御部７２２と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５とにより構成されている。なお、本実施形態では、ＣＰＵ２１がＭＩＤＩメッセージ受信処理部７１等の各プログラムを実行することにより歌唱音声の合成を行うが、これらの各プログラムを複数のプロセッサが分担して並列実行するように構成してもよい。また、ＭＩＤＩメッセージ受信処理部７１等の各プログラムの一部を電子回路により構成してもよい。
【００２３】
ＭＩＤＩメッセージ受信処理部７１は、インタフェース群２５の中のＭＩＤＩインタフェースがＭＩＤＩメッセージを受信したときに起動される割り込みルーチンである。このＭＩＤＩメッセージ受信処理部７１は、ＭＩＤＩインタフェースにより受信されたＭＩＤＩメッセージを解釈し、解釈結果に従って、音声合成部７２内の各部に制御情報を供給する。
【００２４】
歌唱位置更新処理部７２１は、歌詞データが示す歌詞のうち歌唱合成を行う歌唱対象部分の位置、すなわち、歌唱位置の更新を行うルーチンである。この歌唱位置更新処理部７２１は、歌詞データが示す歌詞のうち歌唱対象部分となっている表音文字を歌詞表示制御部７２２、素片選択部７２３および素片連結部７２５に通知する。歌唱位置更新処理部７２１が歌唱位置の更新を行う契機には、次の２種類がある。
【００２５】
第１の契機は、ＭＩＤＩメッセージとしてノートオンメッセージがＭＩＤＩインタフェースによって受信され、そのノートオンメッセージがＭＩＤＩメッセージ受信処理部７１から歌唱位置更新処理部７２１に引き渡されたときである。この場合、歌唱位置更新処理部７２１は、例えば日本語の歌唱の場合には、歌詞を構成する表音文字列のうち現在の歌唱対象部分となっている表音文字の次の表音文字を新たな歌唱対象部分とする。また、英語の歌唱の場合には、通常、１つの音符に合わせて発声させる母音文字または子音文字および母音文字の組が発音の単位となる。そこで、英語の歌唱の場合には、歌唱位置更新処理部７２１は、歌詞を構成する表音文字列のうち現在の歌唱対象部分の直後にあり、発音の単位となる母音文字または子音文字および母音文字の組を新たな歌唱対象部分とする。
【００２６】
以上は歌唱位置の更新に関する原則であるが、本実施形態では、新たなノートオンメッセージが受信されても、先行するノートオンメッセージに対応した歌唱音声の発音期間との関係如何によっては、例外的に歌唱位置が更新されない場合がある。さらに詳述すると、本実施形態では、ノートオンメッセージの受信により発音期間が開始され、そのノートオンメッセージと対をなすノートオフメッセージが受信された場合、そのノートオフメッセージの受信に応じて発音期間が終了するように発音期間の制御が行われる。歌唱位置更新処理部７２１は、２つのノートオンメッセージが時間的に前後して受信された場合において、後続のノートオンメッセージが受信されたときに、先行するノートオンメッセージの受信により開始された発音を終了させるノートオフメッセージが既に受信されている場合には歌唱位置の更新を行い、先行するノートオンメッセージの受信により開始された発音を終了させるノートオフメッセージが未だ受信されていない場合には現状の歌唱位置を維持する。
【００２７】
第２の契機は、ＭＩＤＩメッセージとして歌唱位置変更指示を含むシステムイクスクルーシブメッセージがＭＩＤＩインタフェースによって受信され、その歌唱位置変更指示がＭＩＤＩメッセージ受信処理部７１から歌唱位置更新処理部７２１に引き渡されたときである。歌唱位置変更指示には、１つ前の音符に戻る、２つ前の音符に戻る、…、曲の先頭に戻る等の各種の指示がある。歌唱位置更新処理部７２１は、この歌唱位置変更指示に従い、歌詞データにおける歌唱位置を変更する。
【００２８】
歌詞表示制御部７２２は、ＲＡＭ２７内において歌唱対象となっている歌詞データに従い、表示部２３に歌詞を表示するルーチンである。この歌詞の表示の際、歌詞表示制御部７２２は、歌唱位置更新処理部７２１により歌唱位置とされている文字を他の文字とは異なる態様（例えば異なる色）で表示させる。
【００２９】
素片選択部７２３は、現在の歌唱位置にある表音文字（英語の場合は母音文字または子音文字と母音文字の組）を参照し、必要であれば、これに加えて、その直前に歌唱対象部分であった表音文字とを参照することにより、音声波形の合成を行う１または複数の音声素片を決定し、その音声素片に対応した音声素片データを音声素片データベース６４から読み出して、変換処理部７２４に引き渡すルーチンである。
【００３０】
変換処理部７２４は、素片選択部７２３から引き渡される音声素片データのうち母音に対応した区間のものに対し、ピッチ変換を施すとともに逆ＦＦＴを施し、ＭＩＤＩメッセージ受信処理部７１から引き渡されるピッチデータが示すピッチを持った歌唱音声データ（時間領域のデジタル音声信号）として出力するルーチンである。また、この変換処理部７２４は、子音や母音の歌唱音声データの持続時間を調整する役割をも果たす。さらに変換処理部７２４は、ビブラート、ピッチベンド、音の強弱等、音楽的表情付けのためのピッチの変更や音量の変更を歌唱音声データに施す機能を備えている。音楽的表情付けのための指令は、演奏データ発生装置１からＭＩＤＩメッセージとして歌唱合成装置２に供給され、ＭＩＤＩメッセージ受信処理部７１を介して変換処理部７２４に与えられる。この変換処理部７２４と前述の素片選択部７２３は、歌詞データが示す歌詞において歌唱位置更新処理部７２１により歌唱位置とされた部分を構成する１または複数の音声素片に対応した音声素片データを音声素片データベース６４から読み出し、読み出した音声素片データを用いて、ＭＩＤＩメッセージ（通常はノートオンメッセージとノートオフメッセージのペア）により指定されるピッチおよび発音期間を持った歌唱音声データを合成する歌唱音声データ合成手段を構成している。
【００３１】
素片連結部７２５は、最終的に得られる歌唱音声が一連の音声素片が滑らかに繋がったものとなるように、変換処理部７２４の処理を経た歌唱音声データの調整を行うプログラムである。さらに素片連結部７２５は、ＭＩＤＩメッセージ受信処理部７１による制御の下、ＲＡＭ２７内のバッファ領域を利用して、歌唱音声データに遅延処理を施してサウンドシステム２８に与え、歌唱音声データが歌唱音声として放音されるタイミング制御を行う機能を備えている。
以上が本実施形態の構成の詳細である。
【００３２】
＜Ｂ．実施形態の動作＞
以下、本実施形態の動作を説明する。
【００３３】
＜＜Ｂ１．歌唱合成の準備作業＞＞
ユーザは、歌唱合成装置２に歌唱合成を行わせるに当たり、必要なアプリケーションプログラムの立ち上げを行う。すなわち、操作部２４の操作により、歌詞データ入力プログラム６１および歌唱合成プログラム６２の起動をＣＰＵ２１に指示し、操作部１５の操作により、ＭＩＤＩメッセージ発生プログラム１２１の起動をＣＰＵ１１に指示する。
【００３４】
次にユーザは、歌唱対象となる歌詞データの準備を行う。すなわち、ユーザは、歌詞データ入力プログラム６１が起動されている状態において、操作部２４の操作により歌詞を構成する表音文字列を入力する。歌詞データ入力プログラム６１は、入力される表音文字列を用いてＲＡＭ２７内に歌詞データを作成する。なお、歌唱対象である歌詞データがＨＤＤ２６内に記憶されている場合には、操作部２４の操作により、その歌詞データをＨＤＤ２６からＲＡＭ２７に転送してもよい。
【００３５】
次にユーザは、操作部２４の操作により、歌唱を行う歌手の指定を行う。これにより歌唱合成プログラム６２は、その後の歌唱合成の際、音声素片データベース６４内の各歌手に対応した音声素片データのグループのうち、操作によって指定された歌手に対応した音声素片データのグループを使用することとなる。
【００３６】
次にユーザは、操作部２４の操作により、歌唱合成に関する各種のモード設定を行う。このモード設定は、演奏データ発生装置１の操作部１５の操作により行うこともできる。すなわち、操作部１５の操作によりモード設定を指示するコマンドが入力されると、演奏データ発生装置１では、指示されたモードへの移行を指示するＭＩＤＩメッセージがＭＩＤＩメッセージ発生プログラム１２１により発生され、歌唱合成装置２に送られる。そして、歌唱合成装置２では、このＭＩＤＩメッセージが歌唱合成プログラム６２のＭＩＤＩメッセージ受信処理部７１に引き渡され、ＭＩＤＩメッセージにより指示されたモードへ移行するための制御が行われるのである。なお、本実施形態において設定可能な各種のモードおよびそのモードでの歌唱合成装置２の動作については後述する。
【００３７】
最後にユーザは、歌唱合成開始の指示を操作部２４の操作によりＣＰＵ２１に指示する。この指示は、歌唱合成プログラム６２により認知される。これにより歌唱合成の準備が完了する。
【００３８】
＜＜Ｂ２．ＭＩＤＩメッセージの発生およびＭＩＤＩメッセージに基づく歌唱合成＞＞
以上のようにして歌唱合成の準備が完了すると、ユーザは、演奏データ発生装置１の鍵盤部１３を用いて鍵盤演奏を行い、必要に応じて操作部１５を操作する。演奏データ発生装置１では、鍵盤部１３や操作部１５の操作イベントがＭＩＤＩメッセージ発生プログラム１２１に引き渡される。ＭＩＤＩメッセージ発生プログラム１２１は、この操作イベントに対応したＭＩＤＩメッセージを発生し、発生したＭＩＤＩメッセージをインタフェース群１８内のＭＩＤＩインタフェースを介して歌唱合成装置２に送る。
【００３９】
＜＜＜Ｂ２−１．全般的動作＞＞＞
歌唱合成装置２では、インタフェース群２５の中のＭＩＤＩインタフェースがＭＩＤＩメッセージを受信する度に、ＣＰＵ２１に対する割り込み要求が発生し、ＭＩＤＩインタフェースにより受信されたＭＩＤＩメッセージがＭＩＤＩメッセージ受信処理部７１に引き渡される。ＭＩＤＩメッセージ受信処理部７１は、このＭＩＤＩメッセージを解釈し、解釈結果に従って、音声合成部７２の各部の制御を行う。
【００４０】
ＭＩＤＩメッセージ受信処理部７１は、ノートオンメッセージまたはノートオフメッセージが引き渡された場合、そのメッセージを歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に引き渡す。歌唱位置更新処理部７２１は、ＲＡＭ２７内において歌唱対象となっている歌詞データ中の歌唱位置を管理しており、基本的にはノートオンメッセージが引き渡されたときに歌唱位置を更新する。すなわち、歌唱位置更新処理部７２１は、例えば歌詞データが「さいたさいた…」という歌詞を示す場合には、１個目のノートオンメッセージが引き渡されたときに歌唱位置を歌詞の最初の表音文字「さ」とし、２個目のノートオンメッセージが引き渡されたとき歌唱位置を「さ」から「い」に移動し、３個目のノートオンメッセージが引き渡されたとき歌唱位置を「い」から「た」に移動し、…という具合に、歌唱位置を表音文字１個分ずつ進めるのである（図２参照）。
【００４１】
歌詞表示制御部７２２は、ＲＡＭ２７内において歌唱対象となっている歌詞データに従い、表示部２３に歌詞を表示する。そして、歌詞表示制御部７２２は、歌唱位置更新処理部７２１により歌唱位置とされている文字を他の文字とは異なる態様（例えば異なる色）で表示させる。
【００４２】
素片選択部７２３は、基本的には歌詞データが示す表音文字列のうち歌唱位置更新処理部７２１が特定する歌唱位置にある表音文字（日本語の場合は１個、英語の場合は１個または複数）の音声波形の合成に用いる１または複数の音声素片を決定し、その音声素片に対応した音声素片データを音声素片データベース６４から読み出して、変換処理部７２４に引き渡す。
【００４３】
変換処理部７２４は、ＭＩＤＩメッセージ受信処理部７１からノートオンメッセージが引き渡されたとき、このノートオンメッセージから発音すべき音のピッチを指定するノートナンバを取り出す。そして、その時点において素片選択部７２３から引き渡されている音声素片データのうち母音に対応した区間のものに対し、ノートナンバに対応したピッチへのピッチ変換を施す。上述したように音声素片データが音声素片のサンプル列のスペクトルデータを波形データとして含む場合、このピッチ変換は、例えばノートナンバが示すピッチと音声素片データに含まれる素片ピッチデータが示すピッチとの差分を求め、この差分に相当する周波数だけ波形データが示すスペクトル分布を周波数軸方向に移動させる操作を行うことにより実行可能である。変換処理部７２４は、このようなピッチ変換を経た音声素片データに逆ＦＦＴを施し、時間領域のデジタル音声信号である歌唱音声データを出力する。
【００４４】
その際に、変換処理部７２４は、歌唱音声データの持続時間を調整する。さらに詳述すると、基本的に本実施形態では、ノートオンメッセージの受信をトリガとして歌唱対象部分の発音を開始させ、このノートオンメッセージと対をなすノートオフメッセージの受信または後続の音符のノートオンメッセージの受信をトリガとして歌唱対象部分の発音を終了させる。すなわち、歌唱対象部分の発音が開始される時点では、その発音がいつ終了するのか不明であり、発音期間も不明である。そこで、本実施形態において、変換処理部７２４は、現在の歌唱対象部分についての発音を終了させるイベントが発生し、その発音終了時期になるまでの間、現在の歌唱対象部分における母音の伸ばし音部分の音声素片が持続するように、母音の伸ばし音部分の歌唱音声データの持続時間の調整を行う。母音の伸ばし音部分の持続時間を素片選択部７２３から引き渡された音声素片データが示す音声波形の本来の持続時間よりも短くする場合には、発音を終了させるイベントの発生時に時間領域の歌唱音声データの出力を打ち切ればよい。歌唱音声データの持続時間を素片選択部７２３から引き渡された音声素片データが示す音声波形の本来の持続時間よりも長くする場合には、母音の伸ばし音のうち周期性のある区間の波形を表す音声素片データを繰り返し使用し、ピッチ変換および逆ＦＦＴを繰り返せばよい。また、本実施形態では、子音の時間長をユーザの指定に従って変化させる場合がある（後述）。変換処理部７２４は、その場合における子音の歌唱音声データの持続時間の調整も行う。
【００４５】
素片連結部７２５は、変換処理部７２４の処理を経た歌唱音声データ（時間領域の信号）を受け取り、各歌唱音声データを時間軸上において連結したデジタル音声信号をＲＡＭ２７内のバッファ領域に格納し、適切な遅延処理を施してサウンドシステム２８に与える。
以上が本実施形態の全般的動作である。
【００４６】
＜＜＜Ｂ２−２．子音長の制御＞＞＞
本実施形態において、演奏データ発生装置１から歌唱合成装置２に送信されるＭＩＤＩメッセージの中には、ノートオンメッセージやノートオフメッセージの他に、特定のモードの設定を指示するＭＩＤＩメッセージや特定のモードにおいて歌唱合成の制御に用いる各種のパラメータを伝えるＭＩＤＩメッセージが含まれる。
【００４７】
例えば本実施形態において歌唱合成装置２は、歌唱合成の際の子音の時間長の制御に関するモードとして、強制指定モードまたは固定モードの設定を指示するＭＩＤＩメッセージ（例えばシステムイクスクルーシブメッセージやＮＲＰＮ）を演奏データ発生装置１から受信する場合がある。
【００４８】
強制指定モードは、子音の種類および子音と母音の組み合わせによらず、常に子音の時間長を一定時間長Ｔｃとするモードである。ここで、時間長Ｔｃはユーザが操作部１５の操作等により自由に指定することができるパラメータであり、強制指定モードの設定を指示するＭＩＤＩメッセージは、この時間長Ｔｃを指定する情報を含む。
【００４９】
ＭＩＤＩメッセージ受信処理部７１は、この強制指定モードの設定を指示するＭＩＤＩメッセージを受け取ったとき、子音の時間長の制御に関するモードを強制指定モードとした旨の通知を変換処理部７２４および素片連結部７２５に送る。また、ＭＩＤＩメッセージ受信処理部７１は、子音の時間長Ｔｃを指定する情報を素片選択部７２３および変換処理部７２４に送る。以後、この強制指定モードである間にノートオンメッセージが受信されると、上述したように、ＭＩＤＩメッセージ受信処理部７１は、そのノートオンメッセージを歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送る。そして、歌唱合成装置２では次のような動作が行われる。
【００５０】
まず、ノートオンメッセージに合わせて発音すべき音声が子音から始まる場合、その子音の音声素片データが素片選択部７２３から変換処理部７２４に送られる。この場合、変換処理部７２４は、子音の音声素片データを時間領域の歌唱音声データとする際にその継続時間長が指定された時間長Ｔｃとなるように長さ調節を行う。長さ調節の方法には各種考えられるが、例えば音声素片データを構成するフレームの一部を間引くことにより継続時間長を短くし、既存のフレームのコピーを継ぎ足すことにより継続時間長を長くするという方法が考えられる。なお、同一種類の子音の音声素片について、各種の継続時間長を持った複数種類の音声素片データを音声素片データベース６４内に用意しておき、指定された時間長Ｔｃに対応した音声素片データを素片選択部７２３が音声素片データベース６４から読み出して変換処理部７２４に与えるようにしてもよい。このような態様では、変換処理部７２４は、子音の歌唱音声データの継続時間長の調節を行わなくてもよい。
【００５１】
また、ノートオンメッセージに合わせて発音すべき音声が子音および母音からなる場合、素片連結部７２５は、図３に示すように、ＭＩＤＩメッセージ受信処理部７１におけるノートオンメッセージの受信後直ちに子音から発音が開始されるように素片連結後のデジタル音声信号のサウンドシステム２８への出力タイミングの調節を行う。また、ノートオンメッセージに合わせて発音すべき音声が母音のみからなる場合、素片連結部７２５は、ＭＩＤＩメッセージ受信処理部７１におけるノートオンメッセージの受信時刻から一定時間Ｔｃだけ経過したときに、母音の発音が開始されるように素片連結後のデジタル音声信号のサウンドシステム２８への出力タイミングの調節を行う。
【００５２】
このように強制指定モードでは、子音の長さＴｃが子音の種類および後続の母音の種類によらず固定されるため、子音から母音への遷移を自然かつ円滑なものにするのがやや困難である。しかし、強制指定モードでは、音符に合わせて発音する音声が子音および母音の組み合わせであるか母音のみであるかに拘わらず、常にノートオンメッセージの受信時刻から一定時間Ｔｃだけ経過した時刻において母音の発音が行われる。従って、合成される歌唱音声のリズムが明確になるという利点がある。
【００５３】
一方、固定モードは、子音の時間長の制御は行わず、音声素片データが示す通りの音声波形および持続時間を持った子音を発生させるモードである。ＭＩＤＩメッセージ受信処理部７１は、この固定モードの設定を指示するＭＩＤＩメッセージを受け取ったとき、子音の時間長の制御に関するモードを固定モードとした旨の通知を変換処理部７２４および素片連結部７２５に送る。以後、この固定モードである間にノートオンメッセージが受信されると、ＭＩＤＩメッセージ受信処理部７１は、そのノートオンメッセージを歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送る。そして、歌唱合成装置２では次のような動作が行われる。
【００５４】
まず、変換処理部７２４は、素片選択部７２３から子音の音声素片データが引き渡された場合に、強制指定モードのような長さ調節を行うことなく、その音声素片データ通りの継続時間長を持った時間領域の歌唱音声データを出力する。
【００５５】
また、素片連結部７２５は、ノートオンメッセージに合わせて発音すべき音声が子音および母音からなるか母音のみからなるかに拘わらず、図４に示すように、ＭＩＤＩメッセージ受信処理部７１におけるノートオンメッセージの受信後直ちに歌唱音声の発音が開始されるように素片連結後のデジタル音声信号のサウンドシステム２８への出力タイミングの調節を行う。
【００５６】
図４に例示するように、子音の継続時間は、子音の種類および子音の種類と母音の種類の組み合わせにより異なる場合がある。また、歌唱音声が母音のみからなる場合もある。このため、固定モードでの歌唱合成は、ノートオンメッセージの受信時刻から母音の発音時刻までの遅延が不揃いとなり。合成される歌唱音声のリズムがやや明確でなくなる場合がある。しかしながら、固定モードは、音声波形から採取された音声素片データ通りの時間長で子音を合成するため、子音から母音への遷移を自然かつ円滑なものにすることができるという利点がある。従って、ユーザは、リズムの明確さを重視する場合には強制指定モードを選択し、子音から母音への遷移の自然さを重視する場合には固定モードを選択すればよい。
【００５７】
ノートオンメッセージの受信により発音が開始された歌唱音声の発音期間は、基本的には図３および図４に示すように、ノートオフメッセージの受信後、予め設定された発音維持時間Ｔｆが経過したときに終了する。本実施形態において、ユーザは、操作部２４の操作により発音維持時間Ｔｆを入力し、あるいは操作部１５の操作により発音維持時間Ｔｆを指定するＭＩＤＩメッセージを演奏データ発生装置1から歌唱合成装置２に送信させることができる。この発音維持時間Ｔｆは、歌唱合成プログラム６２の音声合成部７２における変換処理部７２４に設定される。変換処理部７２４は、ＭＩＤＩメッセージ受信処理部７１を介してノートオフメッセージを受信した場合、その時点から発音維持時間Ｔｆが経過したときに、そのノートオフメッセージと対をなすノートオンメッセージの受信に応じて合成を開始した歌唱音声の発音を終了させる。
【００５８】
日本語の歌唱音声を合成する場合、ノートオンメッセージの受信に応じて合成する歌唱音声の最後の音素は母音である。従って、変換処理部７２４は、図３および図４に例示するように、ノートオフメッセージの受信後、発音維持時間Ｔｆが経過するまでの期間を要して、歌唱音声の最後の音素である母音から無音へと遷移する音声素片の歌唱音声データの合成および出力を行う。また、言語によっては、ノートオンメッセージの受信に応じて合成する歌唱音声の最後の音素が子音である場合もある（例えば英語の場合）。この場合、変換処理部７２４は、ノートオフメッセージの受信後、発音維持時間Ｔｆが経過するまでの期間を要して、素片選択部７２３から引き渡された歌唱音声の終端部分（最後から２番目の母音の音素から最後の子音の音素へと遷移する音声素片）の音声素片データを用いた歌唱音声データの合成（ピッチ変換および時間領域の信号への変換）および出力を行う。
【００５９】
＜＜＜Ｂ２−３．発音期間がオーバラップした複数のノートオンメッセージの取り扱い＞＞＞
本実施形態では、歌唱合成に関するモードとして、モノフォニックモードとポリフォニックモードが用意されている。両者では、時間軸上において発音期間がオーバラップする複数のノートオンメッセージが受信された場合の歌唱合成方法の方法が異なる。
【００６０】
モノフォニックモードは、同時には１つの歌唱音の出力のみを許可するモードである。モノフォニックモードの設定を指示するＭＩＤＩメッセージが演奏データ発生装置１から歌唱合成装置２に送信され、ＭＩＤＩメッセージ受信処理部７１に引き渡された場合、ＭＩＤＩメッセージ受信処理部７１は、歌唱合成のモードをモノフォニックモードとした旨を歌唱位置更新処理部７２１、素片選択部７２３および変換処理部７２４に通知する。
【００６１】
図５（ａ）〜（ｃ）は、このようにしてモノフォニックモードの設定がなされた状態において、発音期間がオーバラップした複数のノートオンメッセージが受信されたときの本実施形態の動作を示すものである。
【００６２】
この例では、Ｃ音、Ｄ音、Ｅ音、Ｃ音を指定する各ノートオンメッセージがＭＩＤＩメッセージ受信処理部７１により順次受信されている。ここで、２番目のＤ音のノートオンメッセージは、最初のＣ音のノートオンメッセージと対をなすノートオフメッセージの受信前に受信されている。また、２番目のＤ音のノートオンメッセージと３番目のＥ音のノートオンメッセージとの関係も同様である。しかし、４番目のＣ音のノートオンメッセージは、３番目のＥ音のノートオンメッセージと対をなすノートオフメッセージが受信された後に受信されている。すなわち、この例では、１番目と２番目のノートオンメッセージ、２番目と３番目のノートオンメッセージは、相前後しているもの同士で各々の発音期間がオーバラップしており、３番目と４番目のノートオンメッセージは各々の発音期間が重複していない。また、この例において、歌唱対象である歌詞データの内容は、「さいたさいた…」であり、子音の持続時間の制御に関するモードは固定モードであるとする。
【００６３】
モノフォニックモードにおいて、図示の例のようなノートオンメッセージが受信された場合、発音期間のオーバラップしたノートオンメッセージに関しては、後着のノートオンメッセージを優先させる後着優先制御（すなわち、先行ノートオンメッセージと対をなすノートオフメッセージは無視する）を行いつつ、レガート唱法による歌唱合成を行う。具体的には次の通りである。
【００６４】
まず、１番目のＣ音のノートオンメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。
【００６５】
これにより歌唱位置更新処理部７２１は、歌詞データにおける最初の表音文字である「さ」に歌唱位置を置く。素片選択部７２３は、その時点において発音期間中であるノートオンメッセージ（既に受信されているが、対をなすノートオフメッセージが未だに受信されていない状態のノートオンメッセージ）がないことから、音声素片＃−ｓ、ｓ−ａ、ａ、ａ−＃に対応した各音声素片データを音声素片データベース６４から読み出して変換処理部７２４に引き渡す。ここで、＃−ｓは無音から子音ｓへの遷移部分の音声素片、ｓ−ａは子音ｓから母音ａへの遷移部分の音声素片、ａは母音ａの伸ばし音の音声素片、ａ−＃は母音ａから無音への遷移部分の音声素片である。
【００６６】
変換処理部７２４は、ノートオンメッセージからノートナンバ（この場合、Ｃ音のノートナンバ）を取り出すとともに、素片選択部７２３から引き渡された各音声素片データのうち音声素片ｓ−ａの母音区間および音声素片ａの全区間の波形データについて、ノートナンバに対応したピッチへのピッチ変換を施す。そして、このピッチ変換の後、音声素片データに逆ＦＦＴを施し、時間領域の歌唱音声データを発生する。また、変換処理部７２４は、母音ａの伸ばし音の音声素片データのピッチ変換および逆ＦＦＴの際、後続のノートオンメッセージ（この場合、Ｄ音のノートオンメッセージ）がＭＩＤＩメッセージ受信処理部７１により受信されるまでの間、時間領域の歌唱音声データが持続するように、歌唱音声データの持続時間の調整を行う。
【００６７】
次に、２番目のＤ音のノートオンメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。
【００６８】
このとき歌唱位置更新処理部７２１は、先行するノートオンメッセージ（Ｃ音のノートオンメッセージ）と対をなすノートオフメッセージが未だ受信されていないことから、現状の歌唱位置「さ」を維持する。
【００６９】
変換処理部７２４は、ノートオンメッセージからノートナンバ（この場合、Ｄ音のノートナンバ）を取り出す。そして、直前のノートオンメッセージのノートナンバ（この場合、Ｃ音のノートナンバ）に対応したピッチから緩やかなスロープを描いて今回のノートオンメッセージのＤ音のノートナンバに対応したピッチへと遷移するピッチ曲線を求める。そして、その時点において合成中の伸ばし音の音声素片ａの音声素片データについて、このピッチ曲線に従ってピッチを変化させるピッチ変換を行う。そして、ピッチ変換の後、音声素片データに逆ＦＦＴを施し、時間領域の歌唱音声データを発生する。また、変換処理部７２４は、伸ばし音ａの音声素片データのピッチ変換および逆ＦＦＴの際、後続のノートオンメッセージ（この場合、Ｅ音のノートオンメッセージ）がＭＩＤＩメッセージ受信処理部７１により受信されるまでの間、伸ばし音ａの歌唱音声データが持続するように、伸ばし音ａの歌唱音声データの持続時間の調整を行う。
【００７０】
図示の例では、２番目のノートオンメッセージの発音期間中に１番目のノートオンメッセージと対をなすノートオフメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。しかし、モノフォニックモードでは、このノートオフメッセージは無視される。
【００７１】
次に、３番目のＥ音のノートオンメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。
【００７２】
この場合も歌唱位置更新処理部７２１は、先行するノートオンメッセージ（Ｄ音のノートオンメッセージ）と対をなすノートオフメッセージが未だ受信されていないことから、現状の歌唱位置「さ」を維持する。
【００７３】
変換処理部７２４は、ノートオンメッセージからノートナンバ（この場合、Ｅ音のノートナンバ）を取り出す。そして、直前のノートオンメッセージのノートナンバ（この場合、Ｄ音のノートナンバ）に対応したピッチから緩やかなスロープを描いて今回のノートオンメッセージのＥ音のノートナンバに対応したピッチへと遷移するピッチ曲線を求める。そして、伸ばし音の音声素片ａの音声素片データについて、このピッチ曲線に従ってピッチを変化させるピッチ変換を行う。そして、ピッチ変換の後、音声素片データに逆ＦＦＴを施し、時間領域の歌唱音声データを発生する。また、変換処理部７２４は、伸ばし音ａの音声素片データのピッチ変換および逆ＦＦＴの際、３番目のＥ音のノートオフメッセージがＭＩＤＩメッセージ受信処理部７１により受信されるまでの間、時間領域の歌唱音声データが持続するように、歌唱音声データの持続時間の調整を行う。
【００７４】
次に、３番目のＥ音のノートオフメッセージが受信されると、変換処理部７２４は、このＥ音のノートオフメッセージの受信時から発音維持時間Ｔｆが経過するまでの期間、またはこのＥ音のノートオフメッセージの受信時から新たなノートオンメッセージ（図示の例ではＣ音のノートオンメッセージ）が受信されるまでの期間のうち短い方の期間、現状の歌唱位置に対応した歌唱部分「さ」の最後の音素ａを無音へと遷移させる音声素片ａ−＃の音声素片データを用いてＥ音のピッチの歌唱音声データの合成を行う。図５では前者の例が示されている。
【００７５】
次に、４番目のＣ音のノートオンメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。この場合、Ｃ音のノートオンメッセージの受信時において、先行するＥ音の発音期間を終了させるノートオフメッセージが既に受信されているため、歌唱位置更新処理部７２１は、歌詞データにおける２番目の表音文字である「い」に歌唱位置を更新する。そして、音声合成部７２では、この更新後の歌唱位置に対応した歌唱部分の歌唱音声データの合成が行われる。一方、Ｅ音のノートオフメッセージの受信時刻より前にＣ音のノートオンメッセージが受信された場合、歌唱位置更新処理部７２１は、歌詞データにおける歌唱位置の更新を行わない。この場合、音声合成部７２では、２番目、３番目のノートオンメッセージの受信時と同様、４番目のＣ音のノートオンメッセージにより指定されるピッチを持った伸ばし音ａの歌唱音声データが合成される。
【００７６】
素片連結部７２５は、このようにノートオンメッセージが受信される毎に、そのノートオンメッセージの受信に応じて変換処理部７２４から出力される時間領域の各歌唱音声データを滑らかに繋いで出力する。図示の例の場合、１番目から３番目の各ノートオンメッセージに対応して変換処理部７２４が出力する歌唱音声データは時間軸上において持続時間が連続したものとなる。このため、１番目から３番目の各ノートオンメッセージが順次受信されるのに応じて、レガート唱法により「さああ」と滑らかに歌唱する歌唱音声のデジタル音声信号が素片連結部７２５から出力される。
以上がモノフォニックモードにおける動作例である。
【００７７】
一方、ポリフォニックモードの設定を指示するＭＩＤＩメッセージが演奏データ発生装置１から歌唱合成装置２に送信され、ＭＩＤＩメッセージ受信処理部７１に引き渡された場合、ＭＩＤＩメッセージ受信処理部７１は、歌唱合成のモードをポリフォニックモードとした旨を歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に通知する。ポリフォニックモードは、同時に複数の歌唱音の出力を許可するモードである。
【００７８】
図６（ａ）〜（ｃ）は、このようにしてポリフォニックモードの設定がなされた状態において、発音期間がオーバラップした複数のノートオンメッセージが受信されたときの本実施形態の動作を示すものである。
【００７９】
各ノートオンメッセージの発音期間およびノートナンバは前掲図５（ａ）に示すものと同様である。また、この例でも、歌唱対象である歌詞データの内容は、「さいたさいた…」であり、子音の持続時間の制御に関するモードは固定モードである。
【００８０】
ポリフォニックモードにおいて、図示の例のようなノートオンメッセージが受信された場合、発音期間のオーバラップしたノートオンメッセージに関しては、合唱の歌唱合成を行う。具体的には次の通りである。
【００８１】
まず、１番目のＣ音のノートオンメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。
【００８２】
これにより歌唱位置更新処理部７２１は、歌詞データにおける最初の歌唱対象部分である「さ」に歌唱位置を置く。素片選択部７２３は、歌唱対象部分「さ」を構成する音声素片＃−ｓ、ｓ−ａ、ａ、ａ−＃に対応した各音声素片データを音声素片データベース６４から読み出して変換処理部７２４に引き渡す。
【００８３】
変換処理部７２４は、ノートオンメッセージからＣ音のノートナンバを取り出すとともに、素片選択部７２３から引き渡された各音声素片データのうち音声素片ｓ−ａの母音区間および音声素片ａの全区間の波形データについて、ノートナンバに対応したピッチへのピッチ変換を施す。そして、このピッチ変換の後、音声素片データに逆ＦＦＴを施し、時間領域の歌唱音声データを発生する。また、変換処理部７２４は、Ｃ音のノートオンメッセージと対をなすノートオフメッセージが受信されるまでの間,母音ａの伸ばし音の音声素片データのピッチ変換および逆ＦＦＴの際、歌唱音声データの持続時間の引き延ばしを行う。
【００８４】
次に、２番目のＤ音のノートオンメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。
【００８５】
この場合、歌唱位置更新処理部７２１は、先行するＣ音のノートオフメッセージが未だにノートオン状態であることから、歌唱位置の更新は行わない。そして、素片選択部７２３は、Ｄ音のノートオンメッセージが与えられるのに応じて、現在の歌唱位置にある歌唱対象部分「さ」を構成する音声素片＃−ｓ、ｓ−ａ、ａ、ａ−＃に対応した各音声素片データを音声素片データベース６４から読み出して変換処理部７２４に引き渡す。
【００８６】
このとき変換処理部７２４は、Ｃ音のノートオンメッセージに応じて開始した音声素片＃ｓ、ｓ−ａ、ａ、ａ−＃の各音声素片データの処理のうち伸ばし音ａの音声素片データの処理（具体的にはピッチ変換、逆ＦＦＴおよび持続時間の引き延ばしの処理）を継続中であるが、これに加えて、Ｄ音のノートオンメッセージに応じた音声素片＃−ｓ、ｓ−ａ、ａ、ａ−＃の各音声素片データの処理を開始する。すなわち、Ｃ音のピッチの伸ばし音ａの歌唱音声データを出力しつつ、これと並行して、母音区間のピッチがＤ音のピッチである音声素片＃−ｓ、ｓ−ａ、ａの歌唱音声データの出力を行うのである。Ｃ音のノートオンメッセージに対応した歌唱音声データの出力と同様、このＤ音のノートオンメッセージに対応した伸ばし音ａの歌唱音声データの出力は、対をなすノートオフメッセージが受信されるまで維持される。
【００８７】
図示の例では、２番目のＤ音のノートオンメッセージの発音期間中に１番目のＣ音のノートオンメッセージと対をなすノートオフメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。これにより変換処理部７２４は、ノートオフメッセージの受信時から発音維持時間Ｔｆが経過するまでの期間、歌唱位置に対応した歌唱部分「さ」の最後の音素ａを無音へと遷移させる音声素片ａ−＃の音声素片データを用いてＣ音のピッチの歌唱音声データの合成を行う。
【００８８】
次に、３番目のＥ音のノートオンメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。
【００８９】
この場合も、歌唱位置更新処理部７２１は、先行するＤ音のノートオンメッセージが未だにノートオン状態であることから、歌唱位置の更新は行わない。そして、素片選択部７２３は、Ｅ音のノートオンメッセージが与えられるのに応じて、現在の歌唱位置にある歌唱対象部分「さ」を構成する音声素片＃−ｓ、ｓ−ａ、ａに対応した各音声素片データを音声素片データベース６４から読み出して変換処理部７２４に引き渡す。
【００９０】
このとき変換処理部７２４は、図示の例ではＤ音の伸ばし音ａの歌唱音声データの出力を継続中であるが、これに加えて、母音区間のピッチがＥ音のピッチである音声素片＃−ｓ、ｓ−ａ、ａの歌唱音声データの出力を開始する。
【００９１】
図示の例では、３番目のＥ音のノートオンメッセージの発音期間中に２番目のＤ音のノートオンメッセージと対をなすノートオフメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。この場合も、変換処理部７２４は、ノートオフメッセージの受信時から発音維持時間Ｔｆが経過するまでの期間、音声素片ａ−＃の音声素片データを用いてＤ音のピッチの歌唱音声データの合成を行う。
【００９２】
素片連結部７２５は、このようにして変換処理部７２４からピッチの異なった複数種類の歌唱音声データが出力される場合には、それらを加算し、加算結果であるデジタル音声信号をサウンドシステム２８に出力する。
【００９３】
その後、３番目のＥ音のノートオンメッセージと対をなすノートオフメッセージが受信され、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。
【００９４】
変換処理部７２４は、このＥ音のノートオフメッセージの受信時から発音維持時間Ｔｆが経過するまでの期間、またはこのＥ音のノートオフメッセージの受信時から新たなノートオンメッセージ（図示の例ではＣ音のノートオンメッセージ）が受信されるまでの期間のうち短い方の期間、現状の歌唱位置に対応した歌唱部分「さ」の最後の音素ａを無音へと遷移させる音声素片ａ−＃の音声素片データを用いてＥ音のピッチの歌唱音声データの合成を行う。図６では前者の例が示されている。
【００９５】
そして、Ｅ音のノートオフメッセージの受信後に４番目のＣ音のノートオンメッセージが受信されると、このＣ音のノートオンメッセージは、ＭＩＤＩメッセージ受信処理部７１を介して、歌唱位置更新処理部７２１と、素片選択部７２３と、変換処理部７２４と、素片連結部７２５に送られる。
【００９６】
ここで、４番目のＣ音のノートオンメッセージの受信時には、３番目のＥ音のノートオフメッセージが既に受信されているため、歌唱位置更新処理部７２１は、歌詞データにおける２番目の表音文字である「い」に歌唱位置を更新する。そして、音声合成部７２では、この更新後の歌唱位置に対応した歌唱部分の歌唱音声データの合成が行われる。一方、Ｅ音のノートオフメッセージの受信時刻より前にＣ音のノートオンメッセージが受信された場合、歌唱位置更新処理部７２１は、歌詞データにおける歌唱位置の更新を行わない。この場合、音声合成部７２では、２番目、３番目のノートオンメッセージの受信時と同様、４番目のＣ音のノートオンメッセージにより指定されるピッチを持った伸ばし音ａの歌唱音声データが合成される。
以上がポリフォニックモードにおける動作例である。
【００９７】
＜＜＜Ｂ２−４．ノート間ギャップの時間長に応じた歌唱音声データの合成制御＞＞＞
本実施形態では、新たなノートオンメッセージの受信に伴って歌唱位置更新処理部７２１により歌唱位置の更新が行われる場合に、音声合成部７２では、先行するノートオフメッセージの受信時から当該新たなノートオンメッセージの受信時までのノート間ギャップＴｂの時間長に基づき、当該新たなノートオンメッセージの受信に伴って行う歌唱音声データの合成に用いる音声素片データの選択制御を行う。
【００９８】
図７は、このような歌唱位置の更新が行われる場合における音声素片データの選択制御の例を示すものである。この例において、更新前の歌唱位置における歌唱部分の最後の音素はａであり、更新後の歌唱位置における歌唱部分の最初の音素はｉである。以下、この図７を参照し、本実施形態における音声素片データの選択制御方法の詳細について説明する。
【００９９】
本実施形態において、音声合成部７２における素片選択部７２３および変換処理部７２４は、時間的に前後して受信される２つのノートオンメッセージについて、先行するノートオンメッセージと対をなすノートオフメッセージの受信時から後続のノートオンメッセージの受信時までの時間間隔であるノート間ギャップＴｂを監視している。そして、新たなノートオンメッセージの受信に伴って歌唱位置の更新が行われ、その歌唱位置における歌唱音声データの合成を行う場合、素片選択部７２３および変換処理部７２４は、先行するノートオフメッセージの受信時から当該新たなノートオンメッセージの受信時までのノート間ギャップＴｂの時間長が発音維持時間Ｔｆよりも長いか否かを判断する。
【０１００】
図７（ａ）に示す例では、先行するノートオフメッセージから後続のノートンメッセージまでのノート間ギャップＴｂの時間長が発音維持時間Ｔｆより短く、変換処理部７２４が更新前の歌唱部分の最後の音素ａから無音へと遷移する音声素片ａ−＃の音声素片データを用いて歌唱音声データを合成している期間に後続のノートオンメッセージが受信されている。この場合、素片選択部７２３は、更新前の歌唱位置の歌唱部分の最後の音素ａから更新後の歌唱位置の歌唱部分の最初の音素ｉへと遷移する音声素片ａ−ｉの音声素片データを伸ばし音ｉの音声素片データとともに変換処理部７２４に引き渡す。変換処理部７２４は、後続のノートオンメッセージの受信後直ちに音声素片ａ−ｉの音声素片データを用いた歌唱音声データの合成を行い、これに続いて音声素片ｉの音声素片データを用いた歌唱音声データの合成を行う。
【０１０１】
一方、図７（ｂ）に示す例では、先行するノートオフメッセージから後続のノートンメッセージまでのノート間ギャップＴｂの時間長が発音維持時間Ｔｆより長く、変換処理部７２４が音声素片ａ−＃の音声素片データを用いた歌唱音声データの合成を終了した後、後続のノートオンメッセージが受信されている。この場合、素片選択部７２３は、無音から更新後の歌唱位置の歌唱部分の最初の音素ｉへと遷移する音声素片＃−ｉの音声素片データを伸ばし音ｉの音声素片データとともに変換処理部７２４に引き渡す。変換処理部７２４は、後続のノートオンメッセージの受信後直ちに音声素片＃−ｉの音声素片データを用いた歌唱音声データの合成を行い、これに続いて音声素片ｉの音声素片データを用いた歌唱音声データの合成を行う。前掲図５および図６の例では、４番目のＣ音のノートオンメッセージの受信時に、この図７（ｂ）に示す方法により、最初の音声素片データの選択が行われている。
【０１０２】
このように本実施形態では、歌詞位置の更新が行われる場合においてノート間ギャップＴｂが発音維持時間Ｔｆより短い場合には、合成される歌唱音声の波形を更新前の歌唱位置の最後の音素のものから更新後の歌唱位置の最初の音素のものへと滑らかに遷移させることができ、滑らかな歌唱を実現することができる。また、ノート間ギャップＴｂが発音維持時間Ｔｆより長い場合には、更新前の歌唱位置に対応した歌唱音声と更新後の歌唱位置に対応した歌唱音声との間に無音を挿入し、歯切れのよい歌唱を実現することができる。
【０１０３】
＜＜＜Ｂ２−５．音楽的表情付けを指示するＭＩＤＩメッセージの取り扱い＞＞＞
本実施形態では、例えば操作部１５の操作に応じて、ピッチベンドを指示するＭＩＤＩメッセージやビブラートを指示するＭＩＤＩメッセージが演奏データ発生装置１から歌唱合成装置２に送信されることがある。また、本実施形態では、演奏データ発生装置１の動作モードがアフタータッチの検出を行うモードとなっている場合には、鍵盤部１３において押鍵された鍵に加わる圧力が検出され、鍵に対する圧力を示すＭＩＤＩメッセージが演奏データ発生装置１から歌唱合成装置２に送信される。歌唱合成装置２では、このような音楽的表情付けのためのＭＩＤＩメッセージが受信された場合に、それに対応した歌唱合成の制御が行われる。
【０１０４】
例えばピッチベンドを指示するＭＩＤＩメッセージが受信された場合、そのＭＩＤＩメッセージはＭＩＤＩメッセージ受信処理部７１を介して変換処理部７２４に引き渡される。変換処理部７２４は、音声素片データのピッチ変換を行って歌唱音声データを出力する際、このＭＩＤＩメッセージにより指示されたピッチベンド効果が得られるように、出力する歌唱音声データのピッチに変化を与える。ビブラートを指示するＭＩＤＩメッセージが受信された場合も同様である。鍵に対する圧力を示すＭＩＤＩメッセージも、ＭＩＤＩメッセージ受信処理部７１を介して変換処理部７２４に引き渡される。この場合、変換処理部７２４は、ＭＩＤＩメッセージが示す圧力値に応じて、出力する歌唱音声データが示す音声波形の振幅や音色を調整する。
【０１０５】
＜＜＜Ｂ２−６．歌唱位置の変更＞＞＞
本実施形態では、ユーザは操作部１５の操作を行うことにより、歌唱位置変更指示を含むＭＩＤＩメッセージを演奏データ発生装置１から歌唱合成装置２に送信することができる。歌唱合成装置２において、歌唱位置変更指示を含むＭＩＤＩメッセージは、ＭＩＤＩメッセージ受信処理部７１を介して歌唱位置更新処理部７２１に送られる。歌唱位置更新処理部７２１は、このＭＩＤＩメッセージに含まれる歌唱位置変更指示に従い、歌唱位置を、１つ前の音符に対応した位置に戻す、２つ前の音符に対応した位置に戻す、…、曲の先頭に戻す等の歌唱位置の変更を行う。このように歌唱位置の変更が行われると、以後は、変更後の歌唱位置から歌唱音声の合成が再開される。従って、ユーザは、歌詞の中の所望の位置から歌唱合成を行うことができる。
以上が本実施形態の動作の詳細である。
【０１０６】
＜Ｃ．実施形態の効果＞
以上説明したように、本実施形態によれば、ユーザが演奏データ発生装置１の演奏操作を行うと、演奏データであるＭＩＤＩメッセージが歌唱合成装置２に送られ、歌唱合成装置２では、予め記憶された歌詞データを利用し、ＭＩＤＩメッセージの受信に応じて歌詞データにおける歌唱位置を更新しつつ、ＭＩＤＩメッセージにより指定されたピッチおよび発音期間を持った歌唱位置の歌唱音声の合成が行われる。従って、ユーザは、自由に演奏を行い、その演奏に合わせて歌唱合成装置２に歌唱音声を合成させることができる。
【０１０７】
＜Ｄ．他の実施形態＞
以上、この発明の一実施形態を説明したが、この発明には、これ以外にも各種の実施形態が考えられる。例えば次の通りである。
【０１０８】
（１）歌手や声質を指定する操作子を演奏データ発生装置１に設け、演奏データ発生装置１は、この操作子の操作に応じて歌手や声質を指定するＭＩＤＩメッセージを歌唱合成装置２に送り、歌唱合成装置２ではこのＭＩＤＩメッセージにより指定された歌手または声質に対応した音声素片データを素片選択部７２３が選択するように構成してもよい。
【０１０９】
（２）ポリフォニックモードにおいて、オーバラップした複数のノートオンメッセージに対応した複数種類のピッチの歌唱音声を合成する場合に、各歌唱音声に用いる音声素片データを異ならせてもよい。例えばピッチに応じて声質の異なった複数種類の音声素片データを用いる態様が考えられる。
【０１１０】
（３）ポリフォニックモードにおいて、オーバラップした複数のノートオンメッセージに応じて、子音および母音からなる複数種類のピッチの歌唱音声を合成する場合に、後発のノートオンメッセージに対応した歌唱音声については子音を省略し、母音のみを合成するようにしてもよい。
【０１１１】
（４）上記実施形態では、子音の持続時間の制御に関するモードとして強制指定モードと固定モードを設けたが、両者の長所を持ち合わせたモードを設けてもよい。すなわち、変換処理部７２４は、子音に関して、素片選択部７２３から引き渡された音声素片データ通りの持続時間を持った時間領域の歌唱音声データを出力するとともに、子音の持続時間を素片連結部７２５に通知する。素片連結部７２５は、ＲＡＭ２７のバッファ領域内のデジタル音声信号を読み出してサウンドシステム２８に出力する際、子音の持続時間が短いときは出力タイミングを遅らせ、子音の持続時間が長いときには出力タイミングを早めることにより、常にノートオンメッセージの受信時刻から一定時間が経過したときに母音区間の出力が開始されるようにデジタル音声信号の出力タイミングの調整を行う。この態様によれば、子音から母音への遷移の自然さを保ちつつリズムの明確な歌唱音声を合成することができる。
【０１１２】
（５）上記実施形態では、ポリフォニックモードにおいて、新たなノートオンメッセージが受信された場合に、その直前の先行ノートオンメッセージに対応した発音期間が終了しているか否かにより歌唱位置の更新を行うか否かを決定した。しかし、このようにする代わりに、例えばｍ音（ｍ≧２）までの同時発音を許可する場合には、ｍ個だけ前のノートオンメッセージに対応した発音期間が終了しているか否かにより歌唱位置の更新を行うか否かを決定するようにしてもよい。
【図面の簡単な説明】
【０１１３】
【図１】この発明の一実施形態である歌唱合成システムの構成を示すブロック図である。
【図２】同実施形態における歌唱合成プログラムの構成を示すブロック図である。
【図３】同実施形態における強制指定モードでの歌唱合成のタイミング制御を示す図である。
【図４】同実施形態における固定モードでの歌唱合成のタイミング制御を示す図である。
【図５】同実施形態におけるモノフォニックモードでの動作例を図である。
【図６】同実施形態におけるポリフォニックモードでの動作例を図である。
【図７】同実施形態におけるノート間ギャップの時間長に基づく音声素片の選択方法を示す図である。
【符号の説明】
【０１１４】
１……演奏データ発生装置、２……歌唱合成装置、３……通信ケーブル、１１，２１……ＣＰＵ、１２……不揮発性メモリ、１３……鍵盤部、１４，２３……表示部、１５，２４……操作部、１６……音源、１７，２８……サウンドシステム、１８，２５……インタフェース群、１９，２７……ＲＡＭ、２２……ＲＯＭ、２６……ＨＤＤ、１２１……ＭＩＤＩメッセージ発生プログラム、６１……歌詞データ入力プログラム、６２……歌唱合成プログラム、６３……歌詞データ群、６４……音声素片データベース、７１……ＭＩＤＩメッセージ受信処理部、７２……音声合成部、７２１……歌唱位置更新処理部、７２２……歌詞表示制御部、７２３……素片選択部、７２４……変換処理部、７２５……素片連結部。
【図１】
2008170592.tif 000003
【図２】
2008170592.tif 000004
【図３】
2008170592.tif 000005
【図４】
2008170592.tif 000006
【図５】
2008170592.tif 000007
【図６】
2008170592.tif 000008
【図７】
2008170592.tif 000009