(57)【特許請求の範囲】
【請求項１】
複数種の文字及び数値を含む歌詞データをそれぞれ同様の操作形態にて入力可能な入力手段と、
この入力手段から入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、数値及び文字が続けて入力されたときには、この入力された数値に対応する数の音符に対して、前記入力された文字を割り当てる歌詞割当手段と、
この歌詞割当手段によって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させる発音制御手段と、
を備えたことを特徴とする音声割当装置。
【請求項２】
複数種の文字及び当該文字とは異なる記号を含む歌詞データをそれぞれ同様の操作形態にて入力可能な入力手段と、
この入力手段から入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、文字及び記号が続けて入力されたときには、この入力された文字及び記号を併せて１つの音符に対して割り当てる歌詞割当手段と、
この歌詞割当手段によって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させると共に、１つの音符に対して文字及び記号が割り当てられている場合は、この音符の音長よりも短い時間で音声を発音させる発音制御手段と、
を備えたことを特徴とする音声割当装置。
【請求項３】
複数種の文字及び数値を含む歌詞データをそれぞれ同様の操作形態にて入力する入力処理と、
この入力処理によって入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、数値及び文字が続けて入力されたときには、この入力された数値に対応する数の音符に対して、前記入力された文字を割り当てる歌詞割当処理と、
この歌詞割当処理によって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させる発音制御処理と、
を実行することを特徴とする音声割当方法。
【請求項４】
複数種の文字及び当該文字とは異なる記号を含む歌詞データをそれぞれ同様の操作形態にて入力する入力処理と、
この入力処理によって入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、文字及び記号が続けて入力されたときには、この入力された文字及び記号を併せて１つの音符に対して割り当てる歌詞割当処理と、
この歌詞割当処理によって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させると共に、１つの音符に対して文字及び記号が割り当てられている場合は、この音符の音長よりも短い時間で音声を発音させる発音制御処理と、
を実行することを特徴とする音声割当方法。
【請求項５】
コンピュータに、
複数種の文字及び数値を含む歌詞データをそれぞれ同様の形態の操作に応じて入力する手順Ａと、
この手順Ａによって入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、数値及び文字が続けて入力されたときには、この入力された数値に対応する数の音符に対して、前記入力された文字を割り当てる手順Ｂと、
この手順Ｂによって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させる手順Ｃと、
を実行させるための音声割当処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
コンピュータに、
複数種の文字及び当該文字とは異なる記号を含む歌詞データをそれぞれ同様の形態の操作に応じて入力する手順Ａと、
この手順Ａによって入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、文字及び記号が続けて入力されたときには、この入力された文字及び記号を併せて１つの音符に対して割り当てる手順Ｂと、
この手順Ｂによって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させると共に、１つの音符に対して文字及び記号が割り当てられている場合は、この音符の音長よりも短い時間で音声を発音させる手順Ｃと、
を実行させるための音声割当処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声割当装置及び音声割当方法並びに音声割当処理のプログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
自動演奏装置の中には、演奏する曲のメロディに歌詞を割り当てて、自動演奏とともに歌詞の音声を発音させる機能をもったものがある。メロディに歌詞を割り当てる場合には、演奏曲の音符を表示装置の画面に表示させて、１つ１つの音符ごとに歌詞の文字を割り当てている。例えば、図１７において、図の左上の５個の音符に対して、「きみがぼく」と各音符ごとに１つの文字を割り当てている。また、図の右上の６個の音符の中の最後の４個の音符に、１つの文字「さ」を割り当てて発音を伸ばす場合には、最初の音符に「さ」の文字を割り当て、残りの３個の音符には、それぞれ「さ（ＳＡ）」の音声の母音である「あ（Ａ）」の文字を各音符ごとに割り当てている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来の歌詞割当の技術においては、複数の音符に１つの音声が対応する場合には、２番目以降の音符すべてに母音の文字を割り当てる操作が煩雑であった。また、音声を発音しない音符に対して無音の割当ができなかった。
本発明の第１の課題は、複数の音符に１つの音声が対応する場合の文字の割当の操作を簡単にすることである。
本発明の第２の課題は、音声を発音しない音符に対して無音の割当ができるようにすることである。
【０００８】
【課題を解決するための手段】
請求項１に係る発明は、複数種の文字及び数値を含む歌詞データをそれぞれ同様の操作形態にて入力可能な入力手段と、この入力手段から入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、数値及び文字が続けて入力されたときには、この入力された数値に対応する数の音符に対して、前記入力された文字を割り当てる歌詞割当手段と、この歌詞割当手段によって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させる発音制御手段と、を備えた構成になっている。
【０００９】
請求項３に係る発明は、複数種の文字及び数値を含む歌詞データをそれぞれ同様の操作形態にて入力する入力処理と、この入力処理によって入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、数値及び文字が続けて入力されたときには、この入力された数値に対応する数の音符に対して、前記入力された文字を割り当てる歌詞割当処理と、この歌詞割当処理によって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させる発音制御処理と、を実行する。
【００１０】
請求項５に係る発明は、複数種の文字及び数値を含む歌詞データをそれぞれ同様の形態の操作に応じて入力する手順Ａと、この手順Ａによって入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、数値及び文字が続けて入力されたときには、この入力された数値に対応する数の音符に対して、前記入力された文字を割り当てる手順Ｂと、この手順Ｂによって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させる手順Ｃと、を含む音声割当処理のプログラムを記録した記録媒体である。
【００１１】
請求項１、請求項３、請求項５に係る発明によれば、文字が続けて入力された場合には、その入力された各文字を音符１つずつに対して順次割り当て、数値及び文字が続けて入力された場合には、その入力された数値に対応する数の音符に対してその入力された文字を割り当て、その割り当てられた各文字の音声を対応する音符の音高及び音長に基づいて発音させる。
【００１２】
請求項２に係る発明は、複数種の文字及び当該文字とは異なる記号を含む歌詞データをそれぞれ同様の操作形態にて入力可能な入力手段と、この入力手段から入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、文字及び記号が続けて入力されたときには、この入力された文字及び記号を併せて１つの音符に対して割り当てる歌詞割当手段と、この歌詞割当手段によって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させると共に、１つの音符に対して文字及び記号が割り当てられている場合は、この音符の音長よりも短い時間で音声を発音させる発音制御手段と、を備えた構成になっている。
【００１３】
請求項４に係る発明は、複数種の文字及び当該文字とは異なる記号を含む歌詞データをそれぞれ同様の操作形態にて入力する入力処理と、この入力処理によって入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、文字及び記号が続けて入力されたときには、この入力された文字及び記号を併せて１つの音符に対して割り当てる歌詞割当処理と、この歌詞割当処理によって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させると共に、１つの音符に対して文字及び記号が割り当てられている場合は、この音符の音長よりも短い時間で音声を発音させる発音制御処理と、を実行する。
【００１４】
請求項６に係る発明は、複数種の文字及び当該文字とは異なる記号を含む歌詞データをそれぞれ同様の形態の操作に応じて入力する手順Ａと、この手順Ａによって入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、文字及び記号が続けて入力されたときには、この入力された文字及び記号を併せて１つの音符に対して割り当てる手順Ｂと、この手順Ｂによって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させると共に、１つの音符に対して文字及び記号が割り当てられている場合は、この音符の音長よりも短い時間で音声を発音させる手順Ｃと、を含む音声割当処理のプログラムを記録した記録媒体である。
【００１５】
請求項２、請求項４、請求項６に係る発明によれば、文字が続けて入力された場合には、当該入力された各文字を音符１つずつに対して順次割り当て、文字及び記号が続けて入力された場合には、その入力された文字及び記号を併せて１つの音符に対して割り当て、文字のみが割り当てられた音符は、その文字の音声を対応する音符の音高及び音長で発音させ、文字及び記号が割り当てられた音符は、その文字の音声を対応する音符の音高及びその音符の音長よりも短い時間で発音させる。
【００１６】
【発明の実施の形態】
以下、本発明における音声割当装置の実施形態について説明する。
図１は、実施形態における音声割当装置のシステム構成を示す図である。ＣＰＵ１は、システムバス２を介して接続されたキーボード３、メモリ４、ディスプレイ５、及びサウンドシステム６との間で、コマンド及びデータを授受して、この装置全体を制御する。
【００１７】
キーボード３は、図には示さないが、動作モードを切り換えるモード切換キー、歌詞データを入力するための文字キー、記号キー、数値キー、スペースキー、歌詞データを消去するためのデリートキー、カーソルを移動するためのカーソルキーを備えている。メモリ４は、ＣＰＵ１が実行するプログラムを記憶するプログラムエリア、音声波形データ、自動演奏データ、歌詞データを記憶するデータエリア、その他プログラムの実行に必要な各種のレジスタ及びフラグのエリアを備えている。
【００１８】
図２は、メモリ４のデータエリアの内容を示す図である。音声波形データは、歌詞の音声「あ、い、う、え、お、か、き、……」に対応したＰＣＭ波形データを記憶している。発音の際には、発音の音高に応じた読出速度で読み出されて、サウンドシステム６に送出される。自動演奏データは、タイミングデータ及びイベントデータの組合せで構成されている。自動演奏データの最後はＥＮＤデータになっていて、曲の終了を識別する構成になっている。キーオンタイミング又はキーオフタイミングは、オンイベント又はオフイベントまでの時間を表わしている。歌詞データは、自動演奏曲に対応する音声の文字、記号「＋」、「２」〜「９」の数値、及びスペースで構成されている。歌詞データの内容及びその役割についてはさらに後述する。
【００１９】
図１におけるディスプレイ５は、後述する歌詞入力処理や自動演奏処理の際に、音符等からなる楽譜、歌詞、及び、音符に対応する歌詞の文字の関連を明示する画像であるカーソルの画像を表示する。サウンドシステム６は、図には示さないが、音声信号を生成する音源、メモリ４から読み出された音声波形データをデジタルからアナログの音声信号に変換するＤ／Ａコンバータ、音声信号の不要成分を除去するフィルタ、音声信号を増幅するアンプ、スピーカ等を備えている。そして、ＣＰＵ１からの発音処理及び音声波形データに応じて発音を行い、消音処理に応じて消音を行う。
【００２０】
次に、図１に示した音声割当装置の動作について、ＣＰＵ１によって実行されるプログラムのフローチャート、及び、ディスプレイ５の画面に表示された内容に基づいて、詳細に説明する。
【００２１】
図３はＣＰＵ１が実行するプログラムのメインフローである。この処理では、イニシャライズ処理（ステップＡ１）を行った後、メモリから自動演奏データを読み出し（ステップＡ２）、そのデータに基づいて楽譜を作成して、ディスプレイに表示する（ステップＡ３）。次に、その自動演奏データに対応する歌詞データがメモリにあるか否かを判別する（ステップＡ４）。歌詞データがある場合には、歌詞データを読み出し（ステップＡ５）、楽譜に対応させて歌詞をディスプレイに表示する（ステップＡ６）。ステップＡ６において歌詞を表示した後、又は、ステップＡ４において楽譜に対応する歌詞データがない場合には、図４に示すように、楽譜表示のエリアと歌詞表示のエリアにまたがって、カーソルを先頭位置に表示する（ステップＡ７）。すなわち、１つの音符と、その１つの音符に対応する歌詞の文字の関連を明示する画像を画面に表示させる。
【００２２】
次に、モード切換キーが操作されたか否かを判別し（ステップＡ８）、操作されたときは、モードフラグを反転する（ステップＡ９）。また、自動演奏データ及び歌詞データの両アドレスをリセットし、タイマをリセットし、消音処理をし、カーソルが先頭位置にない場合には先頭位置へ移動する（ステップＡ１０）。そして、モードフラグが「１」又は「０」のいずれであるかを判別する（ステップＡ１１）。モードフラグが「１」である場合には、自動演奏処理を行い（ステップＡ１２）、モードフラグが「０」である場合には、歌詞入力処理を行う（ステップＡ１３）。次に、その他の処理を行う（ステップＡ１４）。そして、ステップＡ８〜ステップＡ１４のループ処理を繰り返し実行する。
【００２３】
ステップＡ１０において、タイマをリセットした後は、一定時間ごとに、図５に示すタイマインタラプト処理のルーチンに入って、タイマ値をインクリメントして（ステップＢ１）、再びメインルーチンに戻る。このタイマ値は、図３のステップＡ１２における自動演奏処理の場合において、自動演奏データの時間経過を表わしており、このタイマ値によってキーオンタイミング及びキーオフタイミングになったか否かを判別する。
【００２４】
次に、図３のメインフローのステップＡ１３における歌詞入力処理について説明する。入力する歌詞データとしては、発音の音声の対象となる「文字」、文字同士を結合する「＋」記号、自動演奏データの複数の音符にわたって１つの音声を伸ばして発音する場合にその対象となる音符数を示す「２」〜「９」の数値、及び発音を禁止したり、短く発音するスタッカートの場合の「スペース」で構成されている。この歌詞入力の際には、図４に示したように、自動演奏データの音符及び歌詞入力の対象となる音符の位置にカーソルがディスプレイの画面に表示され、ユーザはこの画面を見ながら歌詞入力を行う。
【００２５】
図６〜図９は、歌詞入力処理のフローであり、図１０は、自動演奏データと歌詞データとの関係を示す図であり、図１１〜図１４は、入力する歌詞データに応じた表示例を示す図である。
【００２６】
図６において、カーソル位置の移動操作がされたか否かを判別する（ステップＣ１）。カーソルを歩進する操作がされた場合には、次アドレスの歌詞データの種類を判別する（ステップＣ２）。次アドレスの歌詞データが、文字、記号、スペースである場合、又は歌詞データが無い場合には、自動演奏データのアドレスに「４」を加算し、そのアドレスのデータがＥＮＤデータであるか否かを判別する（ステップＣ３）。
【００２７】
例えば、図１０（Ａ）において、カーソル位置が音符ｎ７にある場合には、カーソル位置は歩進することができない。すなわちこの場合は、自動演奏データのアドレスは、図１０（Ｂ）のｎ７のキーオンタイミングデータのアドレスになっているので、ステップＣ３において、自動演奏データのアドレスに「４」を加算すると、加算したアドレスのデータはＥＮＤデータになる。したがって、加算したアドレスのデータがＥＮＤデータである場合には、カーソルの移動はできない。一方、ステップＣ３において、加算したアドレスのデータがＥＮＤデータでない場合には、自動演奏データ用の現アドレスに「４」を加算した次アドレスをカーソル移動対象の音符のアドレスとして指定する（ステップＣ４）。
【００２８】
ステップＣ２において、次アドレスの歌詞データが数値である場合には、その数値に対応する複数の音符が１つの文字の歌詞に対応する。図１０（Ａ）の例では、歌詞「か」の音声をｎ２、ｎ３、ｎ４の３個の音符に割り当てている場合である。この場合には、図１０（Ｂ）に示すように、歌詞データの文字「か」及び数値「３」に対して、自動演奏データのｎ２のキーオンタイミングデータからｎ４のキーオフイベントまでのアドレスのデータが対応する。したがって、次アドレスの歌詞データに対応する自動演奏データのアドレスは、その数値に「４」を乗算した値を自動演奏データの現アドレスに加算したアドレスとなる。図６のステップＣ５では、次アドレスの自動演奏データがＥＮＤデータであるか否かを判別する（ステップＣ５）。加算したアドレスのデータがＥＮＤデータである場合には、カーソルの移動はできないので、カーソル歩進操作は無効となり、他のキー入力を判別するが、加算したアドレスのデータがＥＮＤデータでない場合には、自動演奏データ用の現アドレスに数値に「４」を乗算した値を加算した次アドレスをカーソル移動対象の音符のアドレスとして指定する（ステップＣ６）。
【００２９】
ステップＣ４又はステップＣ６において、次アドレスを指定した後は、現アドレスに歌詞データがあるか否かを判別する（ステップＣ７）。歌詞データがある場合には、次アドレスの歌詞データの種類を判別する（ステップＣ８）。次アドレスの歌詞データが数値である場合には、歌詞データのアドレスに「２」を加算し（ステップＣ９）、カーソル位置を歩進する（ステップＣ１０）。例えば、図１０の例で、現アドレスの歌詞データが文字「か」である場合には、次アドレスの歌詞データは数値「３」である。この場合には、ステップＣ９において歌詞データの現アドレスに「２」を加算して、現アドレスを文字「な」のアドレスに変更する。また、ステップＣ６の処理によって、自動演奏データの現アドレスは、ｎ５のキーオンタイミングデータのアドレスに変更されている。したがって、ステップＣ１０の処理によって、カーソル位置は図１０（Ａ）のｎ５の音符及び歌詞の文字「な」の位置に変更される。
【００３０】
ステップＣ８において、次アドレスの歌詞データが記号である場合には、歌詞データのアドレスに「２」を加算して（ステップＣ１１）、さらに加算したアドレスの次アドレスの歌詞データの種類を判別する（ステップＣ１２）。次アドレスの歌詞データが文字、スペース又は歌詞データである場合には、さらに歌詞データのアドレスに「１」を加算する（ステップＣ１３）。そして、カーソル位置を歩進する（ステップＣ１０）。
【００３１】
例えば、図１０（Ｂ）において、現アドレスの歌詞データが「は」である場合には、次アドレスの歌詞データは記号「＋」である。この場合には、ステップＣ１１の処理によって、歌詞データの現アドレスに「２」を加算して、歌詞データ「る」のアドレスを現アドレスとし、さらに、ステップＣ１３の処理によって、現アドレスに「１」を加算して、歌詞データ「か」のアドレスとする。また、ステップＣ１０の処理によって、カーソル位置は、図１０（Ａ）のｎ１の音符の位置からｎ２の音符の位置に移動される。
【００３２】
ステップＣ１２において、次アドレスの歌詞データが記号である場合には、再びステップＣ１１において歌詞データのアドレスに「２」を加算する。例えば、自動演奏データの１つの音符に対して、３つの歌詞の文字「あなた」が割り当てられている場合には、歌詞データは文字「あ」、記号「＋」、文字「な」、記号「＋」、文字「た」になっている。この場合には、ステップＣ１１及びＣ１２の処理によって歌詞データのアドレスが「４」加算され、さらにステップＣ１３において歌詞データのアドレスが「１」加算されることになる。
【００３３】
ステップＣ７において、現アドレスに歌詞データが無い場合、又は、ステップＣ８において、次アドレスの歌詞データが文字若しくはスペースである場合、若しくは歌詞データが無い場合には、歌詞データのアドレスに「１」を加算して（ステップＣ１３）、カーソル位置を歩進する（ステップＣ１０）。
【００３４】
ステップＣ１において、カーソル位置移動の操作が後退である場合には、自動演奏データのアドレスが先頭アドレスであるか否かを判別する（ステップＣ１４）。先頭アドレスである場合には、カーソル位置の後退はできないので、カーソル後退操作は無効になり、他のキー入力を判別するが、先頭アドレスでない場合には、直前アドレスの歌詞データの種類を判別する（ステップＣ１５）。直前アドレスの歌詞データが無い場合には、歌詞データの現アドレスから「１」を減算し（ステップＣ１６）、自動演奏データのアドレスから「４」を減算する（ステップＣ１７）。そして、カーソル位置を後退する（ステップＣ１８）。
【００３５】
ステップＣ１５において、直前アドレスの歌詞データが文字又はスペースである場合には、歌詞データの現アドレスから「１」を減算し（ステップＣ１９）、さらにその直前アドレスの歌詞データの種類を判別する（ステップＣ２０）。直前アドレスの歌詞データが記号である場合には、歌詞データの現アドレスから「２」を減算して（ステップＣ２１）、再びステップＣ２０において歌詞データの種類を判別する。歌詞データが文字又はスペースである場合には、自動演奏データの現アドレスから「４」を減算する（ステップＣ１７）。そして、カーソル位置を後退する（ステップＣ１８）。
【００３６】
例えば、図１０（Ａ）において、カーソル位置がｎ２の音符にある場合に、カーソル位置の後退操作をすると、図１０（Ｂ）において、その時の現アドレスの歌詞データは「か」であるので、直前アドレスの歌詞データは「る」であり、さらにその直前アドレスの歌詞データは記号「＋」である。この場合には、ステップＣ１９の処理で歌詞データのアドレスから「１」を減算して、歌詞データ「る」のアドレスを現アドレスとし、ステップＣ１７の処理で歌詞データのアドレスから「２」を減算して、歌詞データ「は」のアドレスを現アドレスとする。そして、ステップＣ１７の処理で自動演奏データのアドレスを「４」だけ減算する。したがって、図１０（Ｂ）において、自動演奏データのアドレスをｎ２のキーオンタイミングデータからｎ１のキーオンタイミングデータのアドレスに変更する。また、ステップＣ１８の処理でカーソル位置を図１０（Ａ）のｎ２の音符の位置からｎ１の音符の位置に後退する。
【００３７】
ステップＣ１５において、直前アドレスの歌詞データが数値である場合には、歌詞データの現アドレスから「２」を減算し（ステップＣ２２）、自動演奏データの現アドレスから、数値に「４」を乗算した値を減算する（ステップＣ２３）。そして、カーソル位置を後退する（ステップＣ１８）。
【００３８】
例えば、図１０（Ａ）において、カーソル位置がｎ５の音符にある場合に、カーソル位置の後退操作をすると、図１０（Ｂ）において、その時の現アドレスの歌詞データは「な」であるので、直前アドレスの歌詞データは数値「３」である。この場合には、ステップＣ２２の処理で歌詞データ「な」のアドレスから「２」を減算して、歌詞データ「か」のアドレスを現アドレスとする。また、ステップＣ２３の処理で自動演奏データのアドレスを「３×４＝１２」だけ減算して、図１０（Ｂ）において、自動演奏データのアドレスをｎ５のキーオンタイミングデータからｎ２のキーオンタイミングデータのアドレスに変更する。また、ステップＣ１８の処理でカーソル位置を図１０（Ａ）のｎ５の音符の位置からｎ２の音符の位置に後退する。
【００３９】
ステップＣ１０においてカーソル位置を歩進した後、若しくは、ステップＣ１８においてカーソル位置を後退した後、又は、ステップＣ１においてカーソル移動操作が無い場合、若しくはステップＣ３、Ｃ５、Ｃ１４においてカーソル移動操作を無効と判別した場合には、図８のフローにおいて、デリートキーの操作があるか否かを判別する（ステップＣ２４）。デリートキーの操作があった場合には、現アドレスに歌詞データがあるか否かを判別する（ステップＣ２５）。歌詞データが無い場合には直ちにメインフローに戻るが、歌詞データがある場合には、現アドレスの歌詞データを消去する（ステップＣ２６）。この後、次アドレスの歌詞データの種別を判別する（ステップＣ２７）。判別した歌詞データが文字又はスペースである場合には、ステップＣ２６の処理によって生じた空き領域をつめる（ステップＣ２８）。そして、表示を更新して（ステップＣ２９）、メインフローに戻る。
【００４０】
例えば、図１１（Ａ）において、カーソル位置が歌詞の文字「が」にある場合にデリートキーが操作されたときは、ステップＣ２６の処理で歌詞データ「が」が消去される。またこの場合には、次アドレスの歌詞データは文字「ぼ」であり、かつ、図１１（Ｄ）に示す歌詞データの文字「が」の領域が空き領域になるので、ステップＣ２８の処理でこの空き領域をつめる。この結果、図１１（Ｂ）に示す歌詞に変更される。
【００４１】
ステップＣ２７において判別した歌詞データが数値である場合には、歌詞データのアドレスをインクリメントして（ステップＣ３０）、現アドレスの歌詞データすなわち数値を消去する（ステップＣ３１）。そして、次アドレスに歌詞データがあるか否かを判別する（ステップＣ３２）。歌詞データがある場合には、ステップＣ３１の処理によって生じた空き領域をつめる（ステップＣ３３）。空き領域をつめた後、又は、ステップＣ３２において次アドレスに歌詞データが無い場合には、歌詞データのアドレスをデクリメントする（ステップＣ３４）。そして、表示を更新して（ステップＣ２９）、メインフローに戻る。
【００４２】
ステップＣ２７において判別した歌詞データが記号である場合には、歌詞データのアドレスをインクリメントし（ステップＣ３５）、レジスタＡＣの値をインクリメントする（ステップＣ３６）。ＡＣは、自動演奏データと歌詞データとの間のアドレスの調整を行うためのレジスタである。なお、イニシャライズにおいて、ＡＣは「０」にリセットされている。ＡＣをインクリメントした後、現アドレスの歌詞データを消去する（ステップＣ３７）。この後さらに歌詞データのアドレスをインクリメントして（ステップＣ３８）、ＡＣの値をインクリメントし（ステップＣ３９）、現アドレスの歌詞データを消去する（ステップＣ４０）。
【００４３】
次に、次アドレスの歌詞データが記号であるか否かを判別する（ステップＣ４１）。記号である場合には、ステップＣ３５に移行して、ステップＣ４１までの上記各処理を実行する。ステップＣ４１において、次アドレスの歌詞データが記号でない場合には、次アドレスに歌詞データがあるか否かを判別する（ステップＣ４２）。歌詞データがある場合には、ステップＣ３７及びＣ４０における歌詞データの消去によって生じた空き領域をつめる（ステップＣ４２）。空き領域をつめた後、又はステップＣ４２において次アドレスに歌詞データがない場合には、歌詞データのアドレスからＡＣの値を減算して（ステップＣ４４）、ＡＣを「０」にリセットする（ステップＣ４５）。この後、表示を更新して（ステップＣ２９）、メインフローに戻る。
【００４４】
例えば、図１１（Ｄ）において、現アドレスの歌詞データが「ぼ」であり、そのアドレスがｋである場合において、ステップＣ２６の処理でこの歌詞データを消去したときは、ステップＣ２７において判別した次アドレスｋ＋１の歌詞データは記号「＋」である。したがって、ステップＣ３５で歌詞データのアドレスｋをｋ＋１にインクリメントして、ステップＣ３６でＡＣの値を「０」から「１」にインクリメントする。そして、ステップＣ３７で現アドレスｋ＋１の歌詞データの記号「＋」を消去する。さらに、ステップＣ３８で歌詞データのアドレスｋ＋１をｋ＋２にインクリメントして、ステップＣ３９でＡＣの値を「１」から「２」にインクリメントする。そして、ステップＣ４０で現アドレスｋ＋２の歌詞データの「く」を消去する。
【００４５】
次に、ステップＣ４１で次アドレスｋ＋３の歌詞データが記号でない（文字「を」である）と判別され、ステップＣ４２で次アドレスｋ＋３に歌詞データがあると判別される。したがって、ステップＣ４３で消去によって生じた空き領域ｋ、ｋ＋１、ｋ＋２をつめる。そして、歌詞データの現アドレスｋ＋２からＡＣの値「２」を減算して、現アドレスｋとする。この結果、図１１（Ｄ）の歌詞データは、現アドレスｋの領域に「を」がセットされることになる。
【００４６】
ステップＣ２４において、デリートキーが操作されない場合には、図８のフローにおいて、入力キーが操作されたか否かを判別する（ステップＣ４６）。入力キーが操作されない場合はメインフローに戻るが、入力キーが操作されたときは、全ての音符に歌詞データの割当が済んでいるか否かを判別する（ステップＣ４７）。全ての音符に歌詞データの割当が済んでいない場合には、現在の自動演奏データのアドレスが先頭アドレスであるか否かを判別する（ステップＣ４８）。先頭アドレスでない場合には、直前アドレスに歌詞データがあるか否かを判別する（ステップＣ４９）。直前アドレスに歌詞データがない場合には直ちにメインフローに戻るが、歌詞データがある場合には、入力キーを種別する（ステップＣ５０）。
【００４７】
入力キーが文字である場合には、現アドレスに歌詞データがあるか否かを判別し（ステップＣ５１）、歌詞データがある場合には、現アドレス以降の歌詞データを１つずつ後退させて、現アドレスを空き領域にする（ステップＣ５２）。現アドレスに歌詞データがなく空き領域である場合、又はデータを後退させて空き領域にした場合には、その空き領域に入力キーに応じた歌詞データの文字を書き込む（ステップＣ５３）。
【００４８】
次に、直前アドレスの歌詞データの種類を判別する（ステップＣ５４）。直前アドレスの歌詞データが文字、数値、又はスペースである場合には、歌詞データのアドレスを１つインクリメントし（ステップＣ５５）、自動演奏データのアドレスを４つインクリメントする（ステップＣ５６）。そして、表示を更新して（ステップＣ５７）、メインフローに戻る。ステップＣ５４において、直前アドレスの歌詞データが記号「＋」である場合には、歌詞データのアドレスは１つインクリメントし（ステップＣ５８）、自動演奏データのアドレスはインクリメントせずに、表示を更新して（ステップＣ５７）、メインフローに戻る。
【００４９】
例えば、図１２において、歌詞データの文字「あ」「う」が自動演奏データの２つの音符にそれぞれ対応して表示され、自動演奏データ及び歌詞データの現アドレスを示す位置にカーソルが表示されている状態において、文字「お」がキー入力されたときは、ステップＣ５２で「う」のアドレス以降の歌詞データを後退させて、「う」のアドレスを空き領域にして、ステップＣ５３でその空き領域に入力キーに応じた歌詞データ「お」を書き込む。そして、ステップＣ５５及びステップＣ５６で歌詞データの現アドレス及び自動演奏データの現アドレスをインクリメントする。また、ステップＣ５７で表示を更新して、歌詞データの文字「あ」「お」「う」が自動演奏データの３つの音符にそれぞれ対応して表示され、カーソル位置は次の音符に移動する。
【００５０】
ステップＣ５０において、入力キーが数値である場合には、文字の割り当てられていない音符数をカウントし（ステップＣ５９）、そのカウント値に「１」を加算した値が入力された数値より小さいか否かを判別する（ステップＣ６０）。「１」を加算するのは、すでに数値入力の前に音声を伸ばす最初の文字が１つの音符に対応して入力されており、その音符も入力される数値に含まれるからである。カウント値＋「１」が入力数値より小さい場合には、入力数値に対して音符数が足りないので、キー入力が無効となりメインフローに戻る。カウント値＋「１」が入力数値以上である場合には、直前アドレスの歌詞データの種類を判別する（ステップＣ６１）。直前アドレスの歌詞データがスペース又は数値である場合には、数値の入力が無効であるのでメインフローに戻る。直前アドレスの歌詞データが文字である場合には、さらに２つ前のアドレスの歌詞データの種類を判別する（ステップＣ６２）。２つ前のアドレスの歌詞データが記号「＋」である場合には、直前アドレスの歌詞データは、３つ前のアドレスの文字の歌詞データと結合しているので、キー入力が無効となりメインフローに戻る。
【００５１】
ステップＣ６２において、２つ前のアドレスの歌詞データがスペース、数値又は文字である場合には、入力数値は有効である。この場合には、歌詞データの現アドレスに歌詞データがあるか否かを判別し（ステップＣ６３）、歌詞データがある場合には、現アドレス以降の歌詞データを１つずつ後退させて、現アドレスを空き領域にする（ステップＣ６４）。現アドレスに歌詞データがなく空き領域である場合、又はデータを後退させて空き領域にした場合には、その空き領域に入力キーに応じた歌詞データを書き込む（ステップＣ６５）。そして、歌詞データのアドレスを１つインクリメントする（ステップＣ６６）。次に、入力キーの種別を判別する（ステップＣ６７）。入力キーが数値である場合には、その数値から「１」を減算して「４」を乗算した値を自動演奏データのアドレスに加算する（ステップＣ６８）。そして、表示を更新して（ステップＣ６９）、メインフローに戻る。
【００５２】
例えば、図１３において、直前アドレスに歌詞データ「さ」が入力されて、歌詞データの文字「た」「の」「さ」が自動演奏データの３つの音符にそれぞれ対応して表示され、「さ」に対応する音符の次の音符の位置にカーソルが表示されている状態において、数値「４」がキー入力されたときは、ステップＣ５９でカウントされた文字の割当のない音符数「３」に「１」を加算した数「４」は、入力数値「４」と同じであると判別される。また、ステップＣ６１で直前アドレスの歌詞データ「さ」が文字と判別され、２つ前のアドレスの歌詞データ「の」も文字であると判別される。次に、ステップＣ６３で現アドレスに歌詞データがないと判別される。そして、図１３に示すように、ステップＣ６５で歌詞データの数値「４」が書き込まれ、ステップＣ６６〜ステップＣ６８を経て、ステップＣ６９で表示が更新される。この表示更新によって、図１３に示すように、４つの音符に対して、１つの文字「さ」及び音声を伸ばす３つの記号「ー」が自動的に表示される。この場合において、４つ目の音符は曲の最後の音符であるので、カーソル位置は音符のない位置に表示される。
【００５３】
ステップＣ５０において、入力キーの種別がスペースである場合には、直前アドレスの歌詞データの種別を判別する（ステップＣ７０）。直前アドレスの歌詞データが文字、数値、又はスペースである場合には、歌詞データの現アドレスに歌詞データがあるか否かを判別し（ステップＣ６３）、歌詞データがある場合には、現アドレス以降の歌詞データを１つずつ後退させて、現アドレスを空き領域にする（ステップＣ６４）。現アドレスに歌詞データがなく空き領域である場合、又はデータを後退させて空き領域にした場合には、その空き領域に入力キーに応じたスペース（発音禁止）の歌詞データを書き込む（ステップＣ６５）。そして、歌詞データのアドレスを１つインクリメントする（ステップＣ６６）。次に、入力キーの種別を判別する（ステップＣ６７）。入力キーがスペースである場合には、自動演奏データのアドレスに「４」を加算する（ステップＣ７１）。そして、表示を更新して（ステップＣ６９）、メインフローに戻る。
【００５４】
ステップＣ７０において、直前アドレスの歌詞データが記号「＋」である場合には、３つ前のアドレスの歌詞データの種別を判別する（ステップＣ７２）。その歌詞データが、記号でなく文字、数値、又はスペースである場合には、現アドレスに歌詞データがあるか否かを判別する（ステップＣ７３）。歌詞データがある場合には、現アドレス以降の歌詞データを１つずつ後退させて、現アドレスを空き領域にする（ステップＣ７４）。現アドレスに歌詞データがなく空き領域である場合、又はデータを後退させて空き領域にした場合には、その空き領域に入力キーに応じた歌詞データの文字を書き込む（ステップＣ７５）。次に、歌詞データのアドレスを１つインクリメントする（ステップＣ７６）。そして、表示を更新する（ステップＣ７７）。この場合には、スタッカート的な発音を行うので、歌詞の文字は他と表示形態を変える。ステップＣ７７の表示更新の後は、メインフローに戻る。
【００５５】
例えば、図１４において、歌詞データの文字「い」「き」が自動演奏データの２つの音符にそれぞれ対応して表示され、自動演奏データ及び歌詞データの現アドレスを示す位置にカーソルが表示されている状態において、記号「＋」がキー入力された後に、スペースがキー入力されたときは、ステップＣ７２で３つ前のアドレスの歌詞データである文字「い」を判別し、ステップＣ７３〜ステップＣ７６を経て、ステップＣ７７で表示を変更する。この場合は、スタッカートの発音になるので、対応する２番目の音符の上にスタッカートを示す「・」を表示するとともに、歌詞の文字「き」の表示形態を変える。
【００５６】
さらに、文字「み」がキー入力された後に、記号「＋」がキー入力され、その後にスペースがキー入力されたときは、ステップＣ７２で３つ前のアドレスの歌詞データである「スペース」を判別し、ステップＣ７３〜ステップＣ７６を経て、ステップＣ７７で表示を変更する。この場合も、スタッカートの発音になるので、対応する３番目の音符の上にスタッカートを示す「・」を表示するとともに、歌詞の文字「み」の表示形態を変える。
【００５７】
図８のステップＣ７２において、３つ前のアドレスの歌詞データが記号「＋」である場合には、その記号「＋」によって２つ前のアドレスの文字（２つ前の歌詞データは文字以外にないが、これについては後述する）が、４つ前のアドレスの文字（これも文字以外にない）と結合するので、ステップＣ５０で判別されたキー入力のスペースは無効になる。したがって、ステップＣ７２において、３つ前のアドレスの歌詞データが記号「＋」である場合には、ステップＣ７８に移行して新たな入力キーの操作を判別する。
【００５８】
全ての音符に歌詞データの割当が済んでいる場合には、任意の音符に記号「＋」を付けてその後に入力する文字と記号「＋」の前に入力した文字とを結合させる場合のみ有効であり、記号「＋」以外の歌詞データを入力することはできない。したがって、ステップＣ４７において全ての音符に歌詞データの割当が済んでいる場合には、入力キーは記号「＋」であるか否かを判別し（ステップＣ７９）、記号でない場合には、直ちにメインフローに戻る。入力キーが記号である場合には、現在の自動演奏データのアドレスが先頭アドレスであるか否かを判別する（ステップＣ８０）。先頭アドレスである場合には、記号の入力は無効であるので、直ちにメインフローに戻る。
【００５９】
ステップＣ５０において、入力キーが記号「＋」である場合、又は、ステップＣ８０で現在の自動演奏データのアドレスが先頭アドレスでない場合には、図９のフローにおいて、直前アドレスの歌詞データの種別を判別する（ステップＣ８１）。直前アドレスの歌詞データがスペース又は数値である場合には、記号「＋」によって歌詞データ同士を結合できないので、キー入力を無効として直ちにメインフローに戻る。また、直前アドレスの歌詞データが記号である場合には、記号のキー入力が２つ連続するので、この場合もキー入力を無効として直ちにメインフローに戻る。
【００６０】
ステップＣ８１において、直前アドレスの歌詞データが文字である場合には、現アドレスに歌詞データがあるか否かを判別する（ステップＣ８２）。歌詞データがある場合には、現アドレス以降の歌詞データを１つずつ後退させて、現アドレスを空き領域にする（ステップＣ８３）。現アドレスに歌詞データがなく空き領域である場合、又はデータを後退させて空き領域にした場合には、その空き領域に入力キーに応じた歌詞データの文字を書き込む（ステップＣ８４）。そして、歌詞データのアドレスを１つインクリメントする（ステップＣ８５）。次に、図８のフローのステップＣ７８に移行して、入力キーが操作されたか否かを判別する。
【００６１】
図１５及び図１６は、図３のフローのステップＡ１２の自動演奏処理のフローである。この処理では、自動演奏データの読み出しを行い（ステップＤ１）、その読出データの判別を行う（ステップＤ２）。読出データがタイミングデータである場合には、図５のタイマインタラプトでインクリメントされるタイマ値が、読み出したタイミングデータに達したか否かを判別する（ステップＤ３）。タイミングデータに達したときは、タイミングデータの次のイベントデータを実行するので、自動演奏データのアドレスをインクリメントして（ステップＤ４）、ステップＤ１に移行して、次の自動演奏データを読み出す。
【００６２】
ステップＤ２において、その読出データがキーオンイベントである場合には、そのイベントデータが最初のキーオンイベントであるか否かを判別する（ステップＤ５）。最初のキーオンイベントでない場合には、カーソル位置を次のキーオンイベントに歩進するが（ステップＤ６）、最初のキーオンイベントである場合には、まだそのイベントに対する自動演奏処理がなされていないので、カーソル位置の歩進は行わない。
【００６３】
次に、メモリのレジスタＣＴが「０」であるか否かを判別する（ステップＤ７）。ＣＴは、歌詞データの中の数値「２」〜「９」のいずれかのデータをストアするレジスタであり、メインフローのイニシャライズ処理では「０」にリセットされている。ステップＤ７において、ＣＴが「０」である場合には、歌詞データがあるか否かを判別する（ステップＤ８）。歌詞データがある場合には、その歌詞データを読み出し（ステップＤ９）、読出データが文字であるかスペースのいずれであるかを判別する（ステップＤ１０）。
【００６４】
読出データが文字である場合には、歌詞データのアドレスをインクリメントする（ステップＤ１１）。そして、インクリメントしたアドレスの歌詞データの種類を判別する（ステップＤ１２）。その歌詞データが文字又はスペースである場合には、前アドレスで読み出した文字に対応する音声波形データを選択して、キーオンイベントの音高の読出速度で読み出す（ステップＤ１３）。次に、自動演奏データのアドレスをインクリメントして（ステップＤ１４）、メインフローに戻る。
【００６５】
ステップＤ７において、ＣＴが「０」でない場合には、１つの文字を複数の音符に割り当てて音声を伸ばす場合であるので、前アドレスで読み出した文字の母音部に対応する音声波形データを選択して、キーオンイベントの音高の読出速度で読み出す（ステップＤ１５）。次に、ＣＴの値をデクリメントする（ステップＤ１６）。そして、自動演奏データのアドレスをインクリメントする（ステップＤ１７）。次に、ステップＣ１６の処理でＣＴが「０」になったか否かを判別する（ステップＤ１８）。ＣＴが「０」でない場合にはメインフローに戻るが、ＣＴが「０」になった場合には、歌詞データのアドレスをインクリメントしてステップＤ８に移行して、歌詞データの有無を判別する。
【００６６】
ステップＤ１０において、読出データがスペースである場合には、その音符については無音であるので、自動演奏データのアドレス及び歌詞データのアドレスの両アドレスをインクリメントする（ステップＤ２０）。そして、メインフローに戻る。すなわち、任意の１つの音符に対して、特定の記号であるスペースが割り当てられている場合には、その１つの音符の発音は禁止する。すなわち、１つの音符に対して特定の記号（スペース）が入力されて割り当てられた場合には、その１つの音符については発音を禁止させる。
【００６７】
ステップＤ２において、読出データがキーオフイベントである場合には、現在発音中の音符に対応する文字の音声を消音する（ステップＤ２１）。次に、自動演奏データ用アドレスをインクリメントして（ステップＤ２２）、メインフローに戻る。
【００６８】
ステップＤ２において、読出データがＥＮＤデータである場合、又はステップＤ８において歌詞データが無い場合には、モードフラグを「０（歌詞入力処理モード）」にセットして（ステップＤ２３）、自動演奏データのアドレス及び歌詞データのアドレスの両アドレスをリセットし、カーソルを先頭位置へ移動する（ステップＤ２４）。そして、メインフローに戻る。
【００６９】
ステップＤ１２において、歌詞データが数値又は記号である場合には、数値であるか又は記号「＋」であるかの種類を判別する（ステップＤ２５）。数値である場合には、図１６のフローにおいて、レジスタＣＴにその数値をセットし（ステップＤ２６）、前アドレスで読み出した文字に対応する音声波形データを選択して、キーオンイベントの音高の読出速度で読み出す（ステップＤ２７）。そして、ＣＴの値をデクリメントして（ステップＤ２８）、自動演奏データのアドレスをインクリメントする（ステップＤ２９）。そして、メインフローに戻る。すなわち、１つの音符に対して任意の１つの文字及び数値が入力された場合には、その１つの音符を含む数値で示す複数の音符に入力された１つの文字を対応させて割り当て、その１つの文字の音声を複数の音符の音高及び音長に基づいて発音させる。
【００７０】
図１５のステップＤ２５において、歌詞データが記号である場合には、図１６のフローにおいて、歌詞データのアドレスをインクリメントする（ステップＤ３０）。そして、歌詞データを読み出し（ステップＤ３１）、読出データが文字であるかスペースであるかを判別する（ステップＤ３２）。文字である場合には、歌詞データのアドレスをインクリメントする（ステップＤ３３）。そして、そのアドレスの歌詞データが文字であるか記号「＋」であるかを判別する（ステップＤ３４）。記号「＋」である場合には、歌詞データのアドレスをインクリメントして（ステップＤ３５）、そのアドレスの歌詞データを読み出し（ステップＤ３６）、ステップＤ３３に移行して、歌詞データのアドレスをインクリメントする。そして、ステップＤ３４において、歌詞データが記号「＋」である場合には、ステップＤ３５、Ｄ３６、Ｄ３３、Ｄ３４のループ処理を繰り返す。この場合には、１つの音符に対して、記号「＋」で結合されている複数の文字の歌詞データを読み出す。
【００７１】
ステップＤ３４において、歌詞データが文字である場合には、前アドレスまでに連続して読み出した文字に対応する音声波形データを選択して、キーオンイベントの音高の読出速度で順次読み出す（ステップＤ３７）。次に、自動演奏データのアドレスをインクリメントする（ステップＤ３８）。そして、メインフローに戻る。すなわち、１つの音符に対して特定の記号が入力された場合には、当該特定の記号の前後に入力された文字を結合して複数の文字を当該１つの音符に対応させて割り当て、当該割り当てられた複数の文字の音声を対応する１つの音符の音高及び音長に基づいて発音させる。
【００７２】
ステップＤ３２において、読出データがスペースである場合には、自動演奏データのアドレスをインクリメントして（ステップＤ３９）、キーオフタイミングデータを読み出す（ステップＤ４０）。次に、キーオフタイミングデータから直前のキーオンタイミングデータを減算した値を「２」で除算し、さらにその除算した値をキーオフタイミングデータから減算する演算を行って、その演算結果をキーオフタイミングデータとする（ステップＤ４１）。この場合には、発音時間を自動演奏データの音長の半分に短縮する。
【００７３】
次に、前アドレスで読み出した文字に対応する音声波形データを選択して、キーオンイベントの音高の読出速度で読み出す（ステップＤ４２）。次に、自動演奏データのアドレスをインクリメントする（ステップＤ４３）。そして、図１５のステップＤ３に移行して、タイマ値が音長を短縮したキーオフタイミングデータに達したか否かを判別する。すなわち、キーボード３から任意の１つの文字の入力の後に特定の記号が入力された場合において、当該特定の記号の直後に別の特定の記号が入力された場合には、当該任意の１つの文字、前記特定の記号及び前記別の特定の記号を１つの音符に割り当て、当該１つの音符の音長よりも短い時間で発音させる。
【００７６】
上記実施形態における音声割当装置の第１の発明は、複数種の文字及び数値を含む歌詞データをそれぞれ同様の操作形態にて入力可能な入力手段（キーボード３）と、この入力手段から入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、数値及び文字が続けて入力されたときには、この入力された数値に対応する数の音符に対して、前記入力された文字を割り当てる歌詞割当手段（ＣＰＵ１）と、この歌詞割当手段によって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させる発音制御手段（ＣＰＵ１）と、を備えた構成になっている。
【００７７】
上記構成によれば、文字が続けて入力された場合には、その入力された各文字を音符１つずつに対して順次割り当て、数値及び文字が続けて入力された場合には、その入力された数値に対応する数の音符に対してその入力された文字を割り当て、その割り当てられた各文字の音声を対応する音符の音高及び音長に基づいて発音させる。したがって、複数の音符に長く伸ばして発音する１つの音声が対応する場合の文字の割当の操作を簡単にすることができる。
【００８０】
また、上記実施形態における音声割当装置の第２の発明は、複数種の文字及び当該文字とは異なる記号を含む歌詞データをそれぞれ同様の操作形態にて入力可能な入力手段（キーボード３）と、この入力手段から入力される歌詞データを楽曲の各音符に対して割り当てる際に、文字が続けて入力されたときには、この入力された各文字を音符１つずつに対して順次割り当て、文字及び記号（＋スペース）が続けて入力されたときには、この入力された文字及び記号を併せて１つの音符に対して割り当てる歌詞割当手段（ＣＰＵ１）と、この歌詞割当手段によって各音符に対して割り当てられた各文字に対応する音声を、前記各音符の音高及び音長に応じて発音させると共に、１つの音符に対して文字及び記号が割り当てられている場合は、この音符の音長よりも短い時間（音長÷２）で音声を発音させる発音制御手段（ＣＰＵ１）と、を備えた構成になっている。
上記構成によれば、文字が続けて入力された場合には、その入力された各文字を音符１つずつに対して順次割り当て、文字及び記号が続けて入力された場合には、その入力された文字及び記号を併せて１つの音符に対して割り当て、文字のみが割り当てられた音符は、その文字の音声を対応する音符の音高及び音長で発音させ、文字及び記号が割り当てられた音符は、その文字の音声を対応する音符の音高及びその音符の音長よりも短い時間で発音させる。したがって、スタッカートのように音長の半分に対して無音の割当ができ、さらにその音声割当を簡単な歌詞入力操作で実現することができる。
【００８３】
なお、上記実施形態においては、音声割当装置の発明について説明したが、この音声割当装置が実行する音声割当方法もまた、発明を構成する。
【００９０】
また、上記実施形態における音声割当方法における音声割当処理のプログラムを、フレキシブルディスク、ハードディスク、ＣＤ、光ディスクその他の記録媒体に記録して、汎用のパソコンやワークステーションによってこの記録媒体のプログラムを読み出して実行することもできる。すなわち、記録媒体の発明が成立する。
【００９７】
なお、上記実施形態においては、文字を結合する特定の記号や無音を示す特定の記号を入力するキーとして、「＋」キーや「スペース」キーを用いたが、他のキーを用いてもよい。また、どのキーを用いるかはユーザが任意に指定する構成にしてもよい。
【００９９】
【発明の効果】
請求項１、３、５の発明によれば、文字が続けて入力された場合には、その入力された各文字を音符１つずつに対して順次割り当て、数値及び文字が続けて入力された場合には、その入力された数値に対応する数の音符に対してその入力された文字を割り当て、その割り当てられた各文字の音声を対応する音符の音高及び音長に基づいて発音させる。したがって、複数の音符に長く伸ばして発音する１つの音声が対応する場合の文字の割当の操作を簡単にすることができる。
【０１００】
請求項２、４、６の発明によれば、文字が続けて入力された場合には、その入力された各文字を音符１つずつに対して順次割り当て、文字及び記号が続けて入力された場合には、その入力された文字及び記号を併せて１つの音符に対して割り当て、文字のみが割り当てられた音符は、その文字の音声を対応する音符の音高及び音長で発音させ、文字及び記号が割り当てられた音符は、その文字の音声を対応する音符の音高及びその音符の音長よりも短い時間で発音させる。したがって、簡単な歌詞入力操作でスタッカートのように音長の半分に対して無音の割当ができるようにすることができる。
【図面の簡単な説明】
【図１】本発明の実施形態における音声割当装置のシステム構成を示すブロック図。
【図２】図１のメモリに記憶されたデータの例を示す図。
【図３】図１のＣＰＵによって実行されるプログラムのメインフローチャート。
【図４】図１のディスプレイに表示された画面表示の例を示す図。
【図５】図３のメインフローチャートにおけるタイマインタラプトのフローチャート。
【図６】図３のメインフローチャートにおける歌詞入力処理のフローチャート。
【図７】図６に続く歌詞入力処理のフローチャート。
【図８】図７に続く歌詞入力処理のフローチャート。
【図９】図８に続く歌詞入力処理のフローチャート。
【図１０】実施形態における自動演奏データと歌詞データとの関係を示す図。
【図１１】実施形態における歌詞入力処理の表示例を示す図。
【図１２】実施形態における歌詞入力処理の表示例を示す図。
【図１３】実施形態における歌詞入力処理の表示例を示す図。
【図１４】実施形態における歌詞入力処理の表示例を示す図。
【図１５】メインフローチャートにおける自動演奏処理のフローチャート。
【図１６】図１５に続く自動演奏処理のフローチャート。
【図１７】従来例における歌詞入力処理の方法を説明する図。
【符号の説明】
１  ＣＰＵ
３  キーボード
４  メモリ
５  ディスプレイ
６  サウンドシステム
【図１】
0003687375.tif 000002
【図２】
0003687375.tif 000003
【図３】
0003687375.tif 000004
【図４】
0003687375.tif 000005
【図５】
0003687375.tif 000006
【図６】
0003687375.tif 000007
【図７】
0003687375.tif 000008
【図８】
0003687375.tif 000009
【図９】
0003687375.tif 000010
【図１０】
0003687375.tif 000011
【図１１】
0003687375.tif 000012
【図１２】
0003687375.tif 000013
【図１３】
0003687375.tif 000014
【図１４】
0003687375.tif 000015
【図１５】
0003687375.tif 000016
【図１６】
0003687375.tif 000017
【図１７】
0003687375.tif 000018