以下、本発明による歌データ入力プログラムの実施形態について図面を参照しながら説明する。図1は、本発明の実施形態に係る歌データ入力プログラムを含むプログラムを実行するコンピュータ装置(歌唱合成装置)をブロック図により示している。
コンピュータ装置は、互いにバス10で接続されたCPU11、フラッシュ・メモリ12、RAM13、補助記憶装置14、音源回路15、入出力インターフェース16及び表示制御回路17を備えている。
CPU11は、所定のプログラムを実行することにより、コンピュータ装置に種々の動作を実行させるようになっている。
フラッシュ・メモリ12は、電源が投入されている間だけでなく遮断されている間も、記憶されたプログラム及びデータを保持するようになっていて、コンピュータ装置の各構成部が有する基本的な機能(例えば、キーボードの操作によるデータの入力やディスプレイによるデータの出力等)を実現するためのシステムプログラム等を予め記憶している。
RAM13は、プログラム及び同プログラムの実行時に使用されるデータを一時的に記憶するようになっている。
補助記憶装置14は、図示しないハード・ディスク・ドライブ(HDD)及び記憶媒体ドライブを備える。
HDDは、ハード・ディスク(HD)を内蔵していて、同HDにプログラム及びデータを記憶させるとともに、同記憶させたプログラム及びデータを読み取ることができるようになっている。記憶媒体ドライブは、着脱可能な記憶媒体を装着していて、同装着された記憶媒体にプログラム及びデータを記憶させるとともに、同記憶させたプログラム及びデータを読み取ることができるようになっている。着脱可能な記憶媒体は、例えば、デジタル・バーサタイル・ディスク(DVD)、コンパクト・ディスク(CD)又はフレキシブル・ディスク(FD)等である。
このように構成された補助記憶装置14は、発音記号データベースHKDB、音声素片データベースOSDB及び図2に示すプログラムを含む種々のプログラム等を記憶している。ここで、発音記号データベースHKDB及び音声素片データベースOSDBについて説明を加える。
発音記号データベースHKDBは、音節毎分割発音記号データの集合体である。
音節毎分割発音記号データは、文字列(本例では、英語の単語)の発音を表す発音記号(本例では、SAMPA(Speech Assessment Methods Phonetic Alphabet))であり、同文字列の音節の区切りを表す音節毎分割位置に区切り記号(本例では、「−」)が挿入された音節毎分割発音記号を表すデータである。
例えば、文字列が3音節からなる「september」であるとき、その発音記号は「septemb@r」であり、従って、音節毎分割発音記号データは「sep−tem−b@r」を表すデータとなる。文字列が2音節からなる「baby」であるとき、その発音記号は「bh eIb i:」であり、従って、音節毎分割発音記号データは「bh eI−b i:」を表すデータとなる。更に、文字列が1音節からなる「love」であるとき、その発音記号は「l0 V」であり、従って、音節毎分割発音記号データは「l0 V」を表すデータとなる。
この発音記号データベースHKDBは、文字列(例えば、「september」、「baby」又は「love」等)を表す文字列データにより検索可能に構築されている。
音声素片データベースOSDBは、発音された音声の音素又は音素の連なりである音素連鎖(音声素片)に対応する部分の音声を表す音声素片データの集合体である。
本例では、音声素片データは、歌声の各音声素片に対応する部分をそれぞれ表すデータであって、所定の微小な時間における歌声の周波数成分を表すデータを時系列的に複数含んだデータである。この音声素片データは、ある特定の人間の歌声から同歌声の各音声素片に対応する部分をそれぞれ抽出し、同抽出された歌声の各部分をそれぞれ所定の微小な時間毎の音に分割し、同分割された音のそれぞれをフーリエ変換することにより生成される。この音声素片データの基となった歌声は、ある特定の音の高さ、音の長さ及び音の大きさ(音の強さ又は音量)等の発音状態において発音されている。即ち、音声素片データは、音の高さ、音の長さ及び音の大きさ等の発音状態に起因するデータを含むデータである。
音声素片データベースOSDBは、音声素片の発音を表す音声素片発音記号(例えば、「s」、「se」又は「b@r」等)を表す音声素片発音記号データにより検索可能に構築されている。
音源回路15は、音を表す音データに基づいて音信号を生成するようになっている。音源回路15には、サウンドシステム15aが接続されている。サウンドシステム15aは、図示しない増幅器及びスピーカを備えていて、音源回路15にて生成された音信号に対応する音を出力するようになっている。
入出力インターフェース16は、信号を入力又は出力することが可能なインターフェースであり、例えば、ユニバーサル・シリアル・バス・インターフェース(USBインターフェース)である。入出力インターフェース16には、キーボード16a及びマウス16bが接続されている。キーボード16aは、改行を表す記号に対応するボタン式スイッチ(エンターキー)及び所定の空白を表す記号に対応するボタン式スイッチ(タブキー)を含む複数の文字又は記号にそれぞれ対応するボタン式スイッチ(キー)を備えている。キーボード16aは、ユーザの操作によりこれらのボタン式スイッチが押し込まれると、それぞれのボタン式スイッチに対応する信号を出力するようになっている。
マウス16bは、2つのボタン式スイッチ及び位置センサを備えている。マウス16bは、ユーザの操作によりこれらのボタン式スイッチが押し込まれると、それぞれのボタン式スイッチに対応する信号を出力するようになっている。マウス16bは、ユーザの操作により同マウス16bが置かれている平面上にて移動させられると、位置センサにより移動した方向及び距離を検出し、同検出された方向及び距離を表す信号を出力するようになっている。
入出力インターフェース16は、キーボード16a及びマウス16bから各種の信号が入力されると、同入力された信号をCPU11に供給するようになっている。CPU11は、供給された信号に基づいて、文字、符号及び図形等からなる画像を表す画像データを生成するようになっている。
このような構成により、例えば、ユーザがキーボード16aのボタン式スイッチを押し込む操作を行うと、同操作が行われる直前の時点にて生成されていた画像データが表す画像に、同押し込まれたボタン式スイッチに対応する文字又は記号が追加された画像を表す画像データがCPU11により生成される。また、ユーザがマウス16bを移動させる操作を行うと、同操作が行われる直前の時点にて生成されていた画像データが表す画像における位置を表し同マウス16bの実際の位置に対応する図形(マウスカーソル)が、同マウス16bが移動した方向及び距離に基づいて移動した画像を表す画像データがCPU11により生成される。
表示制御回路17は、CPU11により生成された画像データに基づいて画像信号を生成するようになっている。表示制御回路17には、液晶ディスプレイ、プラズマ・ディスプレイ又はブラウン管ディスプレイ等の表示器17aが接続されている。表示器17aは、表示制御回路17にて生成された画像信号に対応する画像を表示するようになっている。
次に、上記のように構成されたコンピュータ装置が実行する歌唱合成プログラムの手順について説明する。この歌唱合成プログラムの手順は、本発明による歌データ入力プログラムの手順を含んでいて、図2の機能ブロック図に示したように、歌データ入力部20及び歌声合成部30からなる手順である。
歌データ入力部20は、旋律データと、歌詞データと、ビブラート・データと、からなる歌データをユーザの操作に従って生成する動作をコンピュータ装置に実行させる手順である。
旋律データは、音の高さ及び音の長さを表す音符が複数連なることにより表現される旋律を同複数の音符のそれぞれを表す音符データを複数個用いて表すデータである。
歌詞データは、上記複数の音符データのそれぞれに関連付けられた1つの音節からなる文字列(一音節文字列)をそれぞれ表す一音節文字列データ及び同一音節文字列にそれぞれ対応する発音記号(一音節発音記号)を表す一音節発音記号データからなるデータである。
ビブラート・データは、音の高さ又は音の大きさを周期的に変化させる際の音の高さ又は音の大きさの変化の態様を表すビブラートのパターンと、ビブラートをかけて歌う期間であるビブラート期間の開始時期(ビブラート開始時期)と、ビブラート期間の終了時期(ビブラート終了時期)と、からなるビブラート情報を表すデータである。
歌データ入力部20は、音符ビブラート関連付けパラメータ設定手順21、旋律データ入力部22、ビブラート設定部23、歌詞データ入力部24及び発音記号生成部25からなる。旋律データ入力部22は、音符データ入力手順22a及び音符ビブラート関連付け手順22bからなる。
以下、ユーザが、所望の旋律と、文字列「september」を含む所望の歌詞と、からなる歌の歌声を模擬した音を聴きたいと希望する例を用いて説明を続ける。この例においては、ユーザは、所望の歌データに基づいて合成される音を実際の人間の歌声に近しい音とするために、音の長さが2拍より長い音符の発音期間の後半において、音の高さを振幅が半音である正弦波状に変化させることを希望するものとする。
先ず、ユーザは、後述する音符ビブラート関連付け手順22bにおいて使用される所定の閾値長さ及び所定のビブラート・データを所望の値に設定するために、キーボード16a又はマウス16bを操作する。これにより、上記コンピュータ装置のCPU11は、上記歌唱合成プログラムの実行を開始し、図示しない画像制御プログラムに基づいて入力インターフェースとしての図示しない画像を表示器17aに表示させる。
次いで、ユーザは、この入力インターフェースを介して、閾値長さとして2拍を入力するとともに、ビブラート・データとして、ビブラートのパターンが音の高さを振幅が半音である正弦波状に変化させるパターンであり、ビブラート開始時期が音符が表す音の発音が開始する時期(発音開始時期)から同音の発音期間の半分が経過した時期であり、ビブラート終了時期が音符が表す音の発音が終了する時期(発音終了時期)であるビブラート情報を表すデータを入力する。
これにより、CPU11は、音符ビブラート関連付けパラメータ設定手順21に従って、所定の閾値長さを同入力された閾値長さに設定するとともに、所定のビブラート・データを同入力されたビブラート・データに設定する。
このように、音符ビブラート関連付けパラメータ設定手順21は、ユーザの操作に従って、後述する音符ビブラート関連付け手順22bにおいて使用される閾値長さ及びビブラート・データをユーザが所望する値に設定する動作をコンピュータ装置に実行させる手順である。
次に、ユーザは、所望の旋律データを入力するために、キーボード16a又はマウス16bを操作する。これにより、CPU11は、図示しない画像制御プログラムに基づいて図3に模式的に示した画像を表示器17aに表示させる。
この画像は、同画像の左部に模式的に示されたピアノの鍵盤と、同鍵盤の右側に配置され同鍵盤に対応する左右方向の点線により区画された音階領域と、同画像の上部に示された拍の区切りを表す目盛りである拍目盛りと、同拍目盛りのうちの長い目盛りであって小節の区切りを表す目盛りである小節目盛りと、同拍目盛り及び同小節目盛りの下側に配置され同拍及び小節を表す上下方向の実線により区画された拍領域と、により構成されている。この画像は、ユーザが旋律データを構成する複数の音符データと、歌詞データを構成する複数の文字列データと、を含む歌データを入力するための入力インターフェースを構成している。
次いで、ユーザは、この入力インターフェースを使用して、旋律データを構成する複数の音符データを上記コンピュータ装置に入力する。この入力手順について、以下、ユーザが複数の音符データの1つとして、音の高さがミ(e2)であり、音の発音開始時期が第1小節の2拍目の最初であり、音の発音終了時期が第1小節の4拍目の最後である音符を表す音符データを入力するときを第1の例として、より具体的に説明する。
このとき、ユーザは、マウス16bを移動させることにより、同マウス16bの実際の位置に対応し表示器17aに表示されている画像における位置を表す図形(マウスカーソル)を図3の符号Aが付された点に移動させる。そして、ユーザは、マウス16bのボタン式スイッチを押し込んだ後、同ボタン式スイッチが押し込まれた状態でマウスカーソルを図3の符号Bが付された点に移動させる。その後、ユーザは、同押し込まれたボタン式スイッチを離すことにより同ボタン式スイッチが押し込まれていない状態にする。
これにより、CPU11は、音符データ入力手順22aに従って、音の高さがミ(e2)であり、音の発音開始時期が第1小節の2拍目の最初であり、音の発音終了時期が第1小節の4拍目の最後である音を表す音符データをRAM13に記憶させる。更に、CPU11は、音符データ入力手順22aに従って、同音符データが表す音の高さ、音の発音開始時期及び音の発音終了時期を示す音符を表す図形である音符図形N1を含む画像を表示器17aに表示させる(図4を参照。)。
このように、音符データ入力手順22aは、ユーザにより入力された音符データをRAM13に記憶させるとともに、同記憶された音符データに基づいた画像を表示器17aに表示させる手順である。
次いで、CPU11は、音符ビブラート関連付け手順22bに従って、上記音符データ入力手順22aによりRAM13に記憶された音符データが表す音符が所定の閾値長さ(本例では、2拍)より長い音を示す音符である長音音符であるか否かを判定する判定ステップの処理を行う。この例においては、同記憶された音符データ(音符図形N1に対応する音符データ)が表す音符が示す音の長さは、3拍である。
従って、CPU11は、上記判定ステップにて「Yes」と判定し、上記記憶された音符データと、上記所定のビブラート・データと、を互いに関連付けてRAM13に記憶させる。
このように、音符ビブラート関連付け手順22bは、ユーザにより入力された音符データが表す音符が所定の閾値長さより長い音を示す音符である長音音符であるか否かを判定し、同音符が同長音音符であると判定したとき、同音符を表す音符データと、所定のビブラート・データと、を互いに関連付けてRAM13に記憶させる手順を含んでいる。即ち、音符ビブラート関連付け手順22bは、音符ビブラート関連付け動作をコンピュータ装置に実行させる手順を構成している。
これにより、ユーザが、音符データとビブラート・データとを互いに関連付けるための操作を手動にて行うことなく、適切な期間(ビブラートをかけて歌うことが適切な音符の発音期間のうちの所望の部分)においてビブラートをかけて歌う歌声を模擬した音を合成させるための指示(ビブラート指示)を含むビブラート付歌データを作成するようにビブラート・データが音符データに関連付けられてRAM13に記憶される。従って、ユーザは、迅速に歌データを入力することができる。
そして、CPU11は、音符ビブラート関連付け手順22bに従って、ビブラート・データが表すビブラート情報を表し音符図形N1の下方に配置された図形であるビブラート図形V1を含む画像を表示器17aに表示させる(図4を参照。)。
このように、音符ビブラート関連付け手順22bは、ビブラート・データが関連付けられた音符データに対応する音符図形の下方に配置された同ビブラート・データが表すビブラート情報を表す図形であるビブラート図形を含む画像を表示器17aに表示させる手順を含んでいる。即ち、音符ビブラート関連付け手順22bは、ビブラート表示動作をコンピュータ装置に実行させる手順を構成している。
これにより、ユーザは、所望の期間においてビブラートをかけて歌う歌声を模擬した音を合成させるための指示を含むビブラート付歌データが作成されたか否かを確認することができる。この結果、ユーザは、的確に歌データを編集することができる。
このようにして、ユーザは、1つの音符データをコンピュータ装置に入力する。
次に、ユーザが複数の音符データの他の1つとして、音の高さがソ(g2)であり、音の発音開始時期が第2小節の1拍目の最初であり、音の発音終了時期が第2小節の1拍目の最後である音符を表す音符データを入力するときを第2の例として、具体的に説明する。
このとき、ユーザが上述したマウス16bの操作と同様の操作を行うことにより、CPU11は、音符データ入力手順22aに従って、音の高さがソ(g2)であり、音の発音開始時期が第2小節の1拍目の最初であり、音の発音終了時期が第2小節の1拍目の最後である音符を表す音符データをRAM13に記憶させる。更に、CPU11は、音符データ入力手順22aに従って、同音符データが表す音の高さ、音の発音開始時期及び音の発音終了時期を示す音符を表す図形である音符図形N2を含む画像を表示器17aに表示させる(図5を参照。)。
この例においては、同記憶された音符データ(音符図形N2に対応する音符データ)が表す音符が示す音の長さは、1拍である。従って、CPU11が、音符ビブラート関連付け手順22bに従って、上記判定ステップの処理を行うと、CPU11は、同判定ステップにて「No」と判定する。従って、CPU11は、同記憶された音符データと、所定のビブラート・データと、を互いに関連付けてRAM13に記憶させることなく、音符ビブラート関連付け手順22bに従う処理の実行を一旦終了する。
このようにして、ユーザは、1つの音符データをコンピュータ装置に入力する。
加えて、ユーザは、このマウス16bの操作と同様の操作を繰り返し行うことにより、所望の旋律データを構成する他の複数の音符データをコンピュータ装置に入力する。これにより、所望の旋律データを構成する複数の音符データがRAM13に記憶されるとともに、図5に示したように、同複数の音符データの一部に対応する音符図形N1〜N3が表示器17aに表示される。なお、音符図形N3に対応する音符データが表す音符の音の長さは、2拍であって閾値長さである2拍より長くないので、同音符データと、所定のビブラート・データと、が互いに関連付けられてRAM13に記憶されることはない。
次に、ユーザが、上記音符ビブラート関連付け手順22bによりビブラート・データが関連付けられなかったためビブラートをかけて歌う期間とされていない期間において、ビブラートをかけて歌う歌声を合成させるための歌データを作成することを希望する場合について説明する。
ここでは、ユーザは、音符図形N3が表す音符が表す音の発音開始時期から同音の発音期間の4分の3が経過した時期を開始時期とするとともに、同音の発音終了時期を終了時期とする期間において、この音の高さを変化の大きさの最大値が半音である矩形波状に変化させるパターンに従ってビブラートをかけて歌う歌声を合成させるための歌データの作成を希望するものとする。
この場合、ユーザは、キーボード16a及びマウス16bを操作することにより、音符図形N3を選択状態にする。更に、ユーザは、図示しない入力インターフェースを介して、所望のビブラート情報を表すビブラート・データを入力する。
これにより、CPU11は、ビブラート設定部23の手順に従って、選択状態にされた音符図形N3に対応する音符データと、同入力されたビブラート・データと、を関連付けてRAM13に記憶させる。そして、CPU11は、ビブラート設定部23の手順に従って、同記憶されたビブラート・データが表すビブラート情報を表し音符図形N3の下方に配置された図形であるビブラート図形V2を含む画像を表示器17aに表示させる(図6を参照。)。
このように、ビブラート設定部23は、ユーザの操作に従って、ビブラート・データを音符データに関連付けてRAM13に記憶させるとともに、同ビブラート・データと関連付けて記憶された音符データに対応する音符図形の下方に配置された同ビブラート・データに対応するビブラート図形を含む画像を表示器17aに表示させる手順である。
次いで、ユーザは、所望の歌詞データを構成する文字列データをコンピュータ装置に入力する。この例においては、ユーザは、音符図形N1〜N3が表す音符がそれぞれ表す音に合わせて文字列「september」を発音する歌声を合成させるための操作を行う。即ち、ユーザは、マウス16bを移動させることによりマウスカーソルを音符図形N1上の位置に移動させ、マウス16bのボタン式スイッチを所定の短い時間(本例では、500ms)内に2回押し込む。
これにより、CPU11は、歌詞データ入力部24の手順に従って、音符図形N1の上部に配置された文字列データを入力するための入力カーソルを含む画像を表示器17aに表示させる。この状態において、ユーザは、キーボード16aにより一音節文字列「sep−」を表す一音節文字列データを入力する。これにより、CPU11は、歌詞データ入力部24の手順に従って、音符図形N1の上部に配置された一音節文字列「sep−」を含む画像を表示器17aに表示させる。
そして、ユーザは、表示器17aに表示された画像により入力された文字列データが表す文字列が所望の一音節文字列「sep−」であることを確認すると、キーボード16aのエンターキーを押し込む。これにより、CPU11は、歌詞データ入力部24の手順に従って、ユーザにより選択された音符データ(選択音符データ)である音符図形N1に対応する音符データと、同ユーザにより入力された一音節文字列「sep−」を表す一音節文字列データと、を互いに関連付けてRAM13に記憶させる。そして、CPU11は、歌詞データ入力部24の手順に従って、音符図形N1の上方に配置された一音節文字列C1を含む画像を表示器17aに表示させる(図7を参照。)。
このように、歌詞データ入力部24は、上記旋律データ入力部22により記憶された音符データに対応付けてユーザにより入力された一音節文字列データを同音符データに関連付けて歌詞データの一部としてRAM13に記憶させるとともに、同音符データが表す音符を示す図形の上方に配置された同記憶された一音節文字列データが表す一音節文字列を含む画像を表示器17aに表示させる手順である。
このようにして、ユーザは、1つの一音節文字列データをコンピュータ装置に入力する。
次に、ユーザは、このキーボード16a及びマウス16bの操作と同様の操作を行うことにより、一音節文字列「tem−」を表す一音節文字列データを音符図形N2に対応する音符データに対応付けてコンピュータ装置に入力する。これにより、CPU11は、歌詞データ入力部24の手順に従って、ユーザにより選択された音符データである音符図形N2に対応する音符データと、同ユーザにより入力された一音節文字列「tem−」を表す一音節文字列データと、を互いに関連付けてRAM13に記憶させる。そして、CPU11は、歌詞データ入力部24の手順に従って、音符図形N2の上方に配置された一音節文字列C2を含む画像を表示器17aに表示させる(図7を参照。)。
更に、ユーザは、このキーボード16a及びマウス16bの操作と同様の操作を行うことにより、一音節文字列「ber」を表す一音節文字列データを音符図形N3に対応する音符データに対応付けてコンピュータ装置に入力する。これにより、CPU11は、歌詞データ入力部24の手順に従って、ユーザにより選択された音符データである音符図形N3に対応する音符データと、同ユーザにより入力された一音節文字列「ber」を表す一音節文字列データと、を互いに関連付けてRAM13に記憶させる。そして、CPU11は、歌詞データ入力部24の手順に従って、音符図形N3の上方に配置された一音節文字列C3を含む画像を表示器17aに表示させる(図7を参照。)。
加えて、ユーザは、このキーボード16a及びマウス16bの操作と同様の操作を繰り返し行うことにより、所望の歌詞データを構成する他の複数の一音節文字列データをコンピュータ装置に入力する。これにより、所望の歌詞データを構成する複数の一音節文字列データが、音符データと1つずつ関連付けられてRAM13に記憶される。
次に、ユーザは、音符データと関連付けて記憶された一音節文字列データに対応する一音節発音記号データをコンピュータ装置に生成させるために、キーボード16a及びマウス16bを操作する。
これにより、CPU11は、発音記号生成部25の手順に従って、補助記憶装置14により予め記憶された発音記号データベースHKDBから、音符データと関連付けて記憶された一音節文字列データに対応する一音節発音記号データを取得し、同取得された一音節発音記号データを同音符データと関連付けてRAM13に記憶させるとともに、同音符データに対応する音符図形の下方に配置された同記憶された一音節発音記号データが表す一音節発音記号を含む画像を表示器17aに表示させる。
このようなCPU11の作動を、同CPU11が、音符図形N1〜N3に対応する音符データのそれぞれと関連付けて記憶された一音節文字列データに対応する一音節発音記号データをそれぞれ取得し、同取得された一音節発音記号データを同音符データと関連付けてRAM13に記憶させるときを一例として、より具体的に説明する。
このとき、CPU11は、発音記号生成部25の手順に従って、音符図形N1に対応する音符データと関連付けて記憶された一音節文字列データを取得し、同取得された一音節文字列データが表す一音節文字列「sep−」の末尾の文字が、区切り記号「−」であるか否かを判定する判定ステップの処理を行う。
一音節文字列「sep−」の末尾の文字は、区切り記号「−」である。従って、CPU11は、上記判定ステップにて「Yes」と判定し、音符図形N1に対応する音符データが表す音符の後に連続する音符を表す音符データである音符図形N2に対応する音符データに関連付けて記憶された一音節文字列データを取得する。
そして、CPU11は、発音記号生成部25の手順に従って、音符図形N1に対応する音符データと関連付けて記憶された一音節文字列データが表す一音節文字列「sep−」と、音符図形N2に対応する音符データと関連付けて記憶された一音節文字列データが表す一音節文字列「tem−」と、を連結し、同連結された文字列「sep−tem−」を表す連結文字列データを生成する。
このように、発音記号生成部25は、入力された一音節文字列データが表す一音節文字列の末尾の文字が区切り記号(本例では、「−」)であるとき、同一音節文字列データが表す一音節文字列に、同一音節文字列データと関連付けて記憶された音符データが表す音符の後に連続する音符を表す音符データに関連付けて記憶された一音節文字列データが表す一音節文字列を、発音される順序を維持しながら連結することにより、同連結された文字列を表す連結文字列データを生成する動作をコンピュータ装置に実行させる手順を含んでいる。このような手順により、発音記号生成部25は、複数の音符データにそれぞれ関連付けて記憶された複数の一音節文字列データから、ユーザにより付加された区切り記号に従って、複数の音節からなる文字列を表す1つの連結文字列データを生成する動作をコンピュータ装置に実行させるようになっている。
次に、CPU11が、発音記号生成部25の手順に従って、同生成された連結文字列データが表す文字列「sep−tem−」の末尾の文字が、区切り記号「−」であるか否かを判定する上記判定ステップの処理を行うと、CPU11は、同判定ステップにて「Yes」と判定し、音符図形N2に対応する音符データが表す音符の後に連続する音符を表す音符データである音符図形N3に対応する音符データに関連付けて記憶された一音節文字列データを取得する。
その後、CPU11は、発音記号生成部25の手順に従って、同生成された連結文字列データが表す文字列「sep−tem−」と、音符図形N3に対応する音符データと関連付けて記憶された一音節文字列データが表す一音節文字列「ber」と、を連結し、同連結された文字列「sep−tem−ber」を表す連結文字列データを生成する。
次いで、CPU11が、発音記号生成部25の手順に従って、同生成された連結文字列データが表す文字列「sep−tem−ber」の末尾の文字が、区切り記号「−」であるか否かを判定する上記判定ステップの処理を行うと、CPU11は、同判定ステップにて「No」と判定し、同連結文字列データが表す文字列「sep−tem−ber」から区切り記号「−」を除去することにより取得される文字列「september」を表す文字列データを生成する。
このように、発音記号生成部25は、生成された連結文字列データが表す文字列から区切り記号を除去することにより取得される文字列を表す文字列データを生成する動作をコンピュータ装置に実行させる手順を含んでいる。
そして、CPU11は、発音記号生成部25の手順に従って、補助記憶装置14により予め記憶された発音記号データベースHKDBから、生成された文字列データに対応する音節毎分割発音記号データを検索し、検索して取得された音節毎分割発音記号データが表す音節毎分割発音記号「sep−tem−b@r」を区切り記号に従って分割することにより、3つの一音節発音記号データを生成する。
このように、発音記号生成部25は、補助記憶装置14により予め記憶された発音記号データベースHKDBから、生成された文字列データに対応する音節毎分割発音記号データを検索し、検索して取得された音節毎分割発音記号データが表す音節毎分割発音記号を区切り記号に従って分割することにより、同生成された文字列データが表す文字列の音節の数である文字列音節数の一音節発音記号データを生成する動作をコンピュータ装置に実行させる手順を含んでいる。
次に、CPU11は、発音記号生成部25の手順に従って、生成された一音節発音記号データのそれぞれを、同一音節発音記号データに対応する一音節文字列データが関連付けられてRAM13に記憶された音符データと、それぞれ関連付けて歌詞データの一部としてRAM13に記憶させる。
即ち、CPU11は、音符図形N1に対応する音符データと、一音節発音記号「sep−」を表す一音節発音記号データと、を関連付けてRAM13に記憶させ、音符図形N2に対応する音符データと、一音節発音記号「tem−」を表す一音節発音記号データと、を関連付けてRAM13に記憶させ、音符図形N3に対応する音符データと、一音節発音記号「b@r」を表す一音節発音記号データと、を関連付けてRAM13に記憶させる。
更に、CPU11は、発音記号生成部25の手順に従って、音符図形N1〜N3にそれぞれ対応する音符データと関連付けてRAM13に記憶された上記一音節発音記号データがそれぞれ表す一音節発音記号P1〜P3が、同一音節発音記号データがそれぞれ関連付けられた音符データに対応する音符図形の下方に配置された画像を表示器17aに表示させる(図8を参照。)。
このように、発音記号生成部25は、生成された一音節発音記号データのそれぞれを、同一音節発音記号データに対応する一音節文字列データが関連付けられてRAM13に記憶された音符データにそれぞれ関連付けて歌詞データの一部としてRAM13に記憶させるとともに、同音符データに対応する音符図形の下方に配置された同記憶された一音節発音記号データが表す一音節発音記号を含む画像を表示器17aに表示させる手順を含んでいる。
以上説明したように、ユーザが所望する旋律データ、歌詞データ及びビブラート・データからなる歌データが同ユーザによりコンピュータ装置に入力される。
次に、ユーザは、所望の歌データがコンピュータ装置に入力されたことを表示器17aに表示されている画像等により確認すると、入力した歌データに基づいて歌声を模擬した音を出力させるために、キーボード16a及びマウス16bを操作する。これにより、CPU11は、以下に述べる歌声合成部30の手順に従って、RAM13に記憶された歌データに基づいて歌声を模擬した音を表す歌声データを生成し、生成された歌声データが表す音をサウンドシステム15aに出力させる。これにより、ユーザは、所望の旋律データ及び歌詞データに基づくとともに適切な期間においてビブラートをかけて歌う歌声を模擬した音を聴くことができる。
ここで、再び図2を参照しながら、歌声合成部30の手順について説明する。歌声合成部30の手順の詳細はよく知られていて、例えば、特開2002−202790号公報又は特開2004−258563号公報に記載されている。従って、本明細書においては歌声合成部30の手順の詳細な説明を省略し、概要についてのみ述べる。
歌声合成部30は、上記歌データ入力部20により生成されRAM13に記憶された歌データに基づいて歌声を模擬した音を表す歌声データを生成し、生成された歌声データが表す音をサウンドシステム15aに出力させる手順である。歌声合成部30は、補助記憶装置14により予め記憶された音声素片データベースOSDBを参照する。歌声合成部30は、音声素片データ取得手順31、音高調整手順32、発音期間調整手順33、音量調整手順34、音声素片接続手順35及びビブラート付与手順36からなる。
音声素片データ取得手順31は、上記歌データ入力部20により生成されRAM13に記憶された歌詞データの一部である一音節発音記号データに基づいて音声素片発音記号データを生成し、同生成された音声素片発音記号データに対応する音声素片データを、補助記憶装置14により予め記憶された音声素片データベースOSDBから検索して取得する動作をコンピュータ装置に実行させる手順である。
音高調整手順32は、上記音声素片データ取得手順31により検索して取得された音声素片データと、上記歌データ入力部20によりRAM13に記憶され同音声素片データの基となった一音節発音記号データが関連付けられた音符データと、に基づいて同音声素片データが表す音の高さが同音符データが表す音の高さと一致するように同音声素片データを調整する動作をコンピュータ装置に実行させる手順である。
発音期間調整手順33は、上記音高調整手順32により調整された音声素片データと、上記歌データ入力部20によりRAM13に記憶され同音声素片データの基となった一音節発音記号データが関連付けられた音符データと、に基づいて各音声素片データが表す音声素片の発音が開始する時期(発音開始時期)と、同発音が終了する時期(発音終了時期)と、を決定する動作をコンピュータ装置に実行させる手順である。
発音期間調整手順33は、音声素片データの基となった一音節発音記号データが含む母音である音声素片の発音開始時期と、この一音節発音記号データが関連付けられた音符データが表す音の発音開始時期と、が一致するように、各音声素片データが表す音声素片が発音される期間をそれぞれ調整する。
上述したように、音声素片データは、歌声の各音声素片に対応する部分をそれぞれ表すデータであって、所定の微小な時間における歌声の周波数成分を表すデータを時系列的に複数含んだデータである。従って、発音期間調整手順33は、音声素片データの一部を、適宜、削除したり複製したりすることにより、同音声素片データを調整し、以って、同音声素片データが表す音声素片が発音される期間を変更する。
音量調整手順34は、上記発音期間調整手順33により調整された音声素片データと、上記歌データ入力部20によりRAM13に記憶され同音声素片データの基となった一音節発音記号データが関連付けられた音符データと、に基づいて同音声素片データが表す音の大きさが所定の大きさと一致するように同音声素片データを調整する動作をコンピュータ装置に実行させる手順である。
音声素片接続手順35は、上記音量調整手順34により調整された複数の音声素片データを接続することにより、基本歌声データを生成する動作をコンピュータ装置に実行させる手順である。
ビブラート付与手順36は、上記音符ビブラート関連付け手順22b又は上記ビブラート設定部23の手順により音符データに関連付けてRAM13に記憶されたビブラート・データに従って、上記音声素片接続手順35により生成された基本歌声データが表す音の高さ又は音の大きさを周期的に変化させることにより歌声データを生成する動作をコンピュータ装置に実行させる手順である。ビブラート付与手順36は、生成された歌声データが表す音をサウンドシステム15aに出力させる。
このように、歌唱合成プログラムは、上記コンピュータ装置に実行されることにより、ユーザが所望する歌データに基づいて合成された歌声を模擬した音を同ユーザに聴かせることができるようになっている。
以上説明したように、本発明による歌データ入力プログラムの実施形態によれば、ユーザが、歌データに基づいて合成される音を実際の人間の歌声に近づけるために手動にてビブラート付歌データを作成しなくとも、適切な期間においてビブラートをかけて歌う歌声を模擬した音を合成させるための指示(ビブラート指示)を含むビブラート付歌データが自動的に作成される。従って、ユーザは、迅速に歌データの入力を完了することができる。
更に、歌のジャンル及び歌のテンポ等に応じて、ユーザが上記音符ビブラート関連付け手順22bにおいて使用される所定の閾値長さ及び所定のビブラート・データを変更することができる。この結果、適切な期間において適切なビブラートのパターンを使用するビブラート指示を含むビブラート付歌データを作成することができる。
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記実施形態においては、発音記号データベースHKDBは、英語の単語に関する音節毎分割発音記号データを格納していたが、英語の他、フランス語又はスペイン語等のヨーロッパ系諸言語や、日本語或いは韓国語等の他の言語の単語に関する音節毎分割発音記号データを格納していてもよい。
また、発音記号データベースHKDBは、複数の言語の単語に関する音節毎分割発音記号データを言語毎にそれぞれ格納する複数のデータベースを備えていてもよい。この場合、歌唱合成プログラムは、発音記号データベースHKDBが備える複数のデータベースのうち、ユーザにより選択された言語に対応するデータベースを検索する動作をコンピュータ装置に実行させるように構成されていることが好適である。
更に、上記実施形態においては、歌唱合成プログラムは、ユーザにより1つの音符データが入力される毎に、同入力された1つの音符データが表す音符が所定の閾値長さより長い音を示す音符である長音音符であるか否かを判定するとともに、その判定結果に基づいてビブラート・データを関連付ける動作をコンピュータ装置に実行させるように構成されていたが、ユーザにより複数の音符データが入力された後、ユーザの指示に応じて、同入力された複数の音符データのそれぞれに対して一括して同動作をコンピュータ装置に実行させるように構成されていてもよい。
これにより、ユーザは、入力された歌データを参照することにより、同入力された歌データが表す歌に応じて、所定の閾値長さ及び所定のビブラート・データを適切な値に設定することができる。更に、ユーザにより適切な値に設定された所定の閾値長さ及び所定のビブラート・データに基づいてビブラート付歌データが自動的に作成される。この結果、実際の人間の歌声により一層近しい歌声を模擬した音を合成させるための歌データを迅速に作成することができる。
また、歌唱合成プログラムは、音符ビブラート関連付け手順22bにより音符データに関連付けてRAM13に記憶されたビブラート・データを、ユーザの操作に従って変更する動作をコンピュータ装置に実行させるように構成されていてもよい。
更に、歌唱合成プログラムは、複数の音節からなる文字列を表す文字列データがコンピュータ装置に入力されたとき、入力された文字列データが表す文字列の音節の区切りを予め記憶したデータベースから取得し、同取得された音節の区切りに基づいて同文字列を音節毎に分割することにより1つの音節からなる一音節文字列を表す一音節文字列データを生成し、同生成された一音節文字列データと音符データとを1つずつ関連付けて記憶する動作をコンピュータ装置に実行させるように構成されていてもよい。
また、上記実施形態においては、コンピュータ装置は、ユーザがマウス16bを操作することにより音符データが入力されるように構成されていたが、相互に通信可能に接続された電子楽器を備え、ユーザが同電子楽器を演奏することにより音符データが入力されるように構成されていてもよい。また、コンピュータ装置は、相互に通信可能に接続されたサーバにより音符データ又は文字列データが配信されることにより、同配信された音符データ又は文字列データが入力されるように構成されていてもよい。
10…バス、11…CPU、12…フラッシュ・メモリ、13…RAM、14…補助記憶装置、15…音源回路、15a…サウンドシステム、16…入出力インターフェース、16a…キーボード、16b…マウス、17…表示制御回路、17a…表示器、20…歌データ入力部、21…音符ビブラート関連付けパラメータ設定手順、22…旋律データ入力部、22a…音符データ入力手順、22b…音符ビブラート関連付け手順、23…ビブラート設定部、24…歌詞データ入力部、25…発音記号生成部、30…歌声合成部、31…音声素片データ取得手順、32…音高調整手順、33…発音期間調整手順、34…音量調整手順、35…音声素片接続手順、36…ビブラート付与手順、HKDB…発音記号データベース、OSDB…音声素片データベース。