(57)【要約】【課題】鍵盤等の操作子の操作に応じて歌声を再生する電子楽器、電子楽器の制御方法、及びプログラムに関し、演奏者がどのように演奏操作子を指定しても、指定しなくても、良好に歌詞に対応した歌声が発声されるように制御する。【解決手段】本来のタイミングｔ１、ｔ２、ｔ４等に合わせて、演奏者により鍵盤の鍵等の操作子が操作されることにより音高Ｅ４、Ｅ４、Ｇ４が指定された場合に、上記タイミングに合わせて、曲データに含まれる歌詞情報「き／Ｔｗｉｎ（第１文字）」、「ら／ｋｌｅ（第２文字）」、及び「ら／ｋｌｅ（第４文字）」等に応じた歌声が、演奏指定された各音高で出力される。本来のタイミングの何れかのタイミング例えばｔ３において、演奏者により鍵盤の鍵等の操作子が操作されないことにより音高が指定されない場合に、そのタイミングｔ３に合わせて、曲データに含まれる歌詞情報「き／ｔｗｉｎ（第３文字）」に応じた歌声が、曲データに含まれる音高Ｂ４で出力される。【選択図】図５
2020003816.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１音高を示す第１音高情報を含む音高情報と、前記第１音高に対応する第１文字を含む歌詞情報と、を有する曲データの前記第１音高を指定すべきタイミングに合わせて操作子が操作されることにより指定された音高を検出する検出処理と、
前記指定された音高が検出された場合には、前記第１文字に応じた歌声を前記指定された音高で出力するが、前記指定された音高が検出されない場合には、前記第１文字に応じた歌声を前記曲データに含まれる前記第１音高情報が示す前記第１音高で出力するように制御する歌声出力制御処理と、
を実行する電子楽器。
【請求項２】
出力される前記歌声に合わせて伴奏データを出力する伴奏データ出力処理、を実行する請求項１に記載の電子楽器。
【請求項３】
前記曲データは、前記第１音高の次に指定すべき第２音高を示す情報と、前記歌詞情報としての前記第２音高に対応する第２文字と、を含み、
前記歌声出力制御処理により前記第１文字に応じた歌声の出力後、前記第２音高を指定すべきタイミングの到来前に前記いずれかの操作子が操作されることにより音高が指定された場合に、前記第１文字に応じた歌声の音高を、前記操作に応じて指定された音高に変更する音高変更処理、を実行する請求項１または２に記載の電子楽器。
【請求項４】
前記歌声を音声合成により生成する音声合成処理、を実行し、
前記歌声出力制御処理は、音高を指定すべきタイミングに応じて音高が指定された場合に、指定されたタイミングに応じて前記音声合成処理により音声合成された歌声を指定された音高で出力するとともに、音高を指定すべきタイミングに応じて音高が指定されない場合に、指定すべきタイミングに合わせて前記音声合成処理により音声合成された歌声を指定すべき音高で出力する請求項１乃至３のいずれかに記載の電子楽器。
【請求項５】
前記音声合成処理は、或る歌手が歌った歌声データ及び歌詞データによる機械学習により生成された学習済みモデルに基づいて、前記或る歌手に応じた歌声を音声合成する請求項４に記載の電子楽器。
【請求項６】
前記操作子を操作することにより音高を指定すべきタイミングに合わせて、指定すべき音高を示す識別子を表示する表示処理、を実行する請求項１乃至５のいずれかに記載の電子楽器。
【請求項７】
電子楽器のコンピュータに、
少なくとも第１音高を示す第１音高情報を含む音高情報と、前記第１音高に対応する第１文字を含む歌詞情報と、を有する曲データの前記第１音高を指定すべきタイミングに合わせて操作子が操作されることにより指定された音高を検出する検出処理と、
前記指定された音高が検出された場合には、前記第１文字に応じた歌声を前記指定された音高で出力するが、前記指定された音高が検出されない場合には、前記第１文字に応じた歌声を前記曲データに含まれる前記第１音高情報が示す前記第１音高で出力するように制御する歌声出力制御処理と、
を実行させる方法。
【請求項８】
電子楽器のコンピュータに、
少なくとも第１音高を示す第１音高情報を含む音高情報と、前記第１音高に対応する第１文字を含む歌詞情報と、を有する曲データの前記第１音高を指定すべきタイミングに合わせて操作子が操作されることにより指定された音高を検出する検出処理と、
前記指定された音高が検出された場合には、前記第１文字に応じた歌声を前記指定された音高で出力するが、前記指定された音高が検出されない場合には、前記第１文字に応じた歌声を前記曲データに含まれる前記第１音高情報が示す前記第１音高で出力するように制御する歌声出力制御処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵盤等の操作子の操作に応じて歌声を再生する電子楽器、電子楽器の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、鍵盤等の操作子の操作に応じて歌声（ボーカル）を再生するようにした電子楽器の技術が知られている（例えば特許文献１）。この従来技術は、音程を指示する鍵盤操作子と、歌詞データが記憶された記憶手段と、該記憶手段から歌詞データを読み出すべき旨を指示する指示手段と、該指示手段による指示があった場合に前記記憶手段から歌詞データを順次読み出す読出手段と、該読出手段により読み出された歌詞データに応じた音色で鍵盤操作子で指示された音程の歌声を発生する音源、とを備える。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−３３２４４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上述のような従来技術では、例えば電子楽器により出力される伴奏データの進行に合わせて歌詞に応じた歌声を出力しようとした場合に、演奏者がどの鍵を指定しても鍵が指定されるごとに歌詞に応じた歌声が順次出力されると、演奏者による鍵の指定の仕方によっては、出力される歌声と伴奏データの進行とが合わない。例えば、１小節に４つの音符が含まれている場合、演奏者が１小節の区間で４つ以上音高を指定した場合は伴奏データの進行より歌詞が先に進んでしまうし、演奏者が１小節の区間で指定した音高が３つ以下の場合は伴奏データの進行より歌詞が遅れてしまう。
【０００５】
このように、演奏者が音高を鍵盤等で指定するごとに歌詞が順次進んでいってしまえば、例えば伴奏に対して歌詞が進みすぎてしまうことや、逆に遅れすぎてしまうことになる。
【課題を解決するための手段】
【０００６】
態様の一例の電子楽器は、
少なくとも第１音高を示す第１音高情報を含む音高情報と、前記第１音高に対応する第１文字を含む歌詞情報と、を有する曲データの前記第１音高を指定すべきタイミングに合わせて操作子が操作されることにより指定された音高を検出する検出処理と、
前記指定された音高が検出された場合には、前記第１文字に応じた歌声を前記指定された音高で出力するが、前記指定された音高が検出されない場合には、前記第１文字に応じた歌声を前記曲データに含まれる前記第１音高情報が示す前記第１音高で出力するように制御する歌声出力制御処理と、
を実行する。
【発明の効果】
【０００７】
本発明によれば、歌詞の進行を良好に制御する電子楽器を提供できる。
【図面の簡単な説明】
【０００８】
【図１】電子鍵盤楽器の一実施形態の外観例を示す図である。
【図２】電子鍵盤楽器の制御システムの一実施形態のハードウェア構成例を示すブロック図である。
【図３】音声合成ＬＳＩの構成例を示すブロック図である。
【図４】音声合成ＬＳＩの動作説明図である。
【図５】歌詞制御技術の説明図である。
【図６】本実施形態のデータ構成例を示す図である。
【図７】本実施形態における電子楽器の制御処理例を示すメインフローチャートである。
【図８】初期化処理、テンポ変更処理、及びソング開始処理の詳細例を示すフローチャートである。
【図９】スイッチ処理の詳細例を示すフローチャートである。
【図１０】自動演奏割込み処理の詳細例を示すフローチャートである。
【図１１】ソング再生処理の第１の実施形態の詳細例を示すフローチャートである。
【図１２】ソング再生処理の第２の実施形態の詳細例を示すフローチャートである。
【図１３】ＭｕｓｉｃＸＭＬ形式による歌詞制御データの構成例を示す図である。
【図１４】ＭｕｓｉｃＸＭＬ形式による歌詞制御データによる楽譜表示例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
【００１０】
図１は、電子鍵盤楽器の一実施形態１００の外観例を示す図である。電子鍵盤楽器１００は、演奏操作子としての複数の鍵からなる鍵盤１０１と、音量の指定、ソング再生のテンポ設定、ソング再生開始、伴奏再生等の各種設定を指示する第１のスイッチパネル１０２と、ソングや伴奏の選曲や音色の選択等を行う第２のスイッチパネル１０３と、ソング再生時の歌詞、楽譜や各種設定情報を表示するＬＣＤ１０４（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶ディスプレイ）等を備える。また、電子鍵盤楽器１００は、特には図示しないが、演奏により生成された楽音を放音するスピーカを裏面部、側面部、又は背面部等に備える。
【００１１】
図２は、図１の電子鍵盤楽器１００の制御システム２００の一実施形態のハードウェア構成例を示す図である。図２において、制御システム２００は、ＣＰＵ（中央演算処理装置）２０１、ＲＯＭ（リードオンリーメモリ）２０２、ＲＡＭ（ランダムアクセスメモリ）２０３、音源ＬＳＩ（大規模集積回路）２０４、音声合成ＬＳＩ２０５、図１の鍵盤１０１、第１のスイッチパネル１０２、及び第２のスイッチパネル１０３が接続されるキースキャナ２０６、及び図１のＬＣＤ１０４が接続されるＬＣＤコントローラ２０８が、それぞれシステムバス２０９に接続されている。また、ＣＰＵ２０１には、自動演奏のシーケンスを制御するためのタイマ２１０が接続される。更に、音源ＬＳＩ２０４及び音声合成ＬＳＩ２０５からそれぞれ出力される楽音出力データ２１８及び歌声音声出力データ２１７は、Ｄ／Ａコンバータ２１１、２１２によりそれぞれアナログ楽音出力信号及びアナログ歌声音声出力信号に変換される。アナログ楽音出力信号及びアナログ歌声音声出力信号は、ミキサ２１３で混合され、その混合信号がアンプ２１４で増幅された後に、特には図示しないスピーカ又は出力端子から出力される。
【００１２】
ＣＰＵ２０１は、ＲＡＭ２０３をワークメモリとして使用しながらＲＯＭ２０２に記憶された制御プログラムを実行することにより、図１の電子鍵盤楽器１００の制御動作を実行する。また、ＲＯＭ２０２は、上記制御プログラム及び各種固定データのほか、歌詞データ及び伴奏データを含む曲データを記憶する。
【００１３】
ＣＰＵ２０１には、本実施形態で使用するタイマ２１０が実装されており、例えば電子鍵盤楽器１００における自動演奏の進行をカウントする。
【００１４】
音源ＬＳＩ２０４は、ＣＰＵ２０１からの発音制御指示に従って、例えば特には図示しない波形ＲＯＭから楽音波形データを読み出し、Ｄ／Ａコンバータ２１１に出力する。音源ＬＳＩ２０４は、同時に最大２５６ボイスを発振させる能力を有する。
【００１５】
音声合成ＬＳＩ２０５は、ＣＰＵ２０１から、歌詞のテキストデータと音高と音長と開始フレームに関する情報を歌声データ２１５として与えられると、それに対応する歌声の音声データを合成し、Ｄ／Ａコンバータ２１２に出力する。
【００１６】
キースキャナ２０６は、図１の鍵盤１０１の押鍵／離鍵状態、第１のスイッチパネル１０２、及び第２のスイッチパネル１０３のスイッチ操作状態を定常的に走査し、ＣＰＵ２０１に割り込みを掛けて状態変化を伝える。
【００１７】
ＬＣＤコントローラ２０８は、ＬＣＤ１０４の表示状態を制御するＩＣ（集積回路）である。
【００１８】
図３は、図２の音声合成ＬＳＩ２０５の構成例を示すブロック図である。この音声合成ＬＳＩ２０５は、後述するソング再生処理により図２のＣＰＵ２０１から指示される歌声データ２１５を入力することにより、例えば下記文献に記載の「深層学習に基づく統計的音声合成」の技術に基づいて、歌声音声出力データ２１７を合成し出力する。
【００１９】
（文献）
橋本佳，高木信二「深層学習に基づく統計的音声合成」日本音響学会誌７３巻１号（２０１７），ｐｐ．５５−６２
【００２０】
音声合成ＬＳＩ２０５は、音声学習部３０１と音声合成部３０２を含む。音声学習部３０１は、学習用テキスト解析部３０３と学習用音響特徴量抽出部３０４とモデル学習部３０５とを含む。
【００２１】
学習用テキスト解析部３０３は、歌詞テキストと音高と音長を含む学習用歌声データ３１１を入力してそのデータを解析する。この結果、学習用テキスト解析部３０３は、学習用歌声データ３１１に対応する音素、品詞、単語、音高などを表現する離散数値系列である学習用言語特徴量系列３１３を推定して出力する。
【００２２】
学習用音響特徴量抽出部３０４は、上記歌詞テキストを或る歌手が歌うことによりマイク等を介して集録された学習用歌声音声データ３１２を入力して分析する。この結果、学習用音響特徴量抽出部３０４は、学習用歌声音声データ３１２に対応する音声の特徴を表す学習用音響特徴量系列３１４を抽出して出力する。
【００２３】
モデル学習部３０５は、下記（１）式に従って、学習用言語特徴量系列３１３（これを
2020003816.tif 000003
と置く）と、音響モデル（これを
2020003816.tif 000004
と置く）とから、学習用音響特徴量系列３１４（これを
2020003816.tif 000005
と置く）が生成される確率（これを
2020003816.tif 000006
と置く）を最大にするような音響モデル
2020003816.tif 000007
を、機械学習により推定する。即ち、テキストである言語特徴量系列と音声である音響特徴量系列との関係が、音響モデルという統計モデルによって表現される。
【００２４】
【数１】
2020003816.tif 000008
【００２５】
モデル学習部３０５は、（１）式によって機械学習を行った結果算出される音響モデル
2020003816.tif 000009
を表現するモデルパラメータを学習結果３１５として出力し、音声合成部３０２内の音響モデル部３０６に設定する。
【００２６】
音声合成部３０２は、テキスト解析部３０７と音響モデル部３０６と発声モデル部３０８とを含む。音声合成部３０２は、歌詞テキストを含む歌声データ２１５に対応する歌声音声出力データ２１７を、音響モデル部３０６に設定された音響モデルという統計モデルを用いて予測することにより合成する、統計的音声合成処理を実行する。
【００２７】
テキスト解析部３０７は、自動演奏に合わせた演奏者の演奏の結果として、図２のＣＰＵ２０１より指定される歌詞のテキストデータと音高と音長と開始フレームに関する情報を含む歌声データ２１５を入力し、そのデータを解析する。この結果、テキスト解析部３０７は、歌声データ２１５に対応する音素、品詞、単語などを表現する言語特徴量系列３１６を解析して出力する。
【００２８】
音響モデル部３０６は、言語特徴量系列３１６を入力することにより、それに対応する音響特徴量系列３１７を推定して出力する。即ち音響モデル部３０６は、下記（２）式に従って、テキスト解析部３０７から入力する言語特徴量系列３１６（これを再度
2020003816.tif 000010
と置く）と、モデル学習部３０５での機械学習により学習結果３１５として設定された音響モデル
2020003816.tif 000011
とに基づいて、音響特徴量系列３１７（これを再度
2020003816.tif 000012
と置く）が生成される確率（これを
2020003816.tif 000013
と置く）を最大にするような音響特徴量系列３１７の推定値
2020003816.tif 000014
を推定する。
【００２９】
【数２】
2020003816.tif 000015
【００３０】
発声モデル部３０８は、音響特徴量系列３１７を入力することにより、ＣＰＵ２０１より指定される歌詞テキストを含む歌声データ２１５に対応する歌声音声出力データ２１７を生成する。歌声音声出力データ２１７は、図２のＤ／Ａコンバータ２１２からミキサ２１３及びアンプ２１４を介して出力され、特には図示しないスピーカから放音される。
【００３１】
学習用音響特徴量系列３１４や音響特徴量系列３１７で表される音響特徴量は、人間の声道をモデル化したスペクトル情報と、人間の声帯をモデル化した音源情報とを含む。スペクトルパラメータとしては例えば、メルケプストラムや線スペクトル対（Ｌｉｎｅ  Ｓｐｅｃｔｒａｌ  Ｐａｉｒｓ：ＬＳＰ）等を採用できる。音源情報としては、人間の音声のピッチ周波数を示す基本周波数（Ｆ０）を採用できる。発声モデル部３０８は、音源生成部３０９と合成フィルタ部３１０とを含む。音源生成部３０９は、音響モデル部３０６から入力する音源情報３１９の系列を順次入力することにより、例えば、音源情報３１９に含まれる基本周波数（Ｆ０）で周期的に繰り返され、音源情報３１９に含まれるパワー値を有するパルス列（有声音音素の場合）、又は音源情報３１９に含まれるパワー値を有するホワイトノイズ（無声音音素の場合）からなる音源信号を生成する。合成フィルタ部３１０は、音響モデル部３０６から順次入力するスペクトル情報３１８の系列に基づいて声道をモデル化するデジタルフィルタを形成し、音源生成部３０９から入力する音源信号を励振源信号として、デジタル信号の歌声音声出力データ２１７を生成し出力する。
【００３２】
本実施形態では、言語特徴量系列３１６から音響特徴量系列３１７を予測するために、音響モデル部３０６がディープニューラルネットワーク（Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＤＮＮ）により実装される。これに対応して、音声学習部３０１内のモデル学習部３０５は、言語特徴量から音響特徴量へのＤＮＮ内の各ニューロンの非線形変換関数を表すモデルパラメータを学習し、そのモデルパラメータを学習結果３１５として音声合成部３０２内の音響モデル部３０６のＤＮＮに出力する。
【００３３】
通常、音響特徴量は例えば５．１ｍｓｅｃ（ミリ秒）幅のフレームを単位として算出され、言語特徴量は音素を単位として算出される。従って、音響特徴量と言語特徴量は時間単位が異なる。ＤＮＮである音響モデル部３０６は、入力である言語特徴量系列３１６と出力である音響特徴量系列３１７の一対一の対応関係を表すモデルであるため、時間単位の異なる入出力データ対を用いてＤＮＮを学習させることはできない。このため、本実施形態では、予めフレーム単位の音響特徴量系列と音素単位の言語特徴量系列の対応関係が設定され、フレーム単位の音響特徴量と言語特徴量の対が生成される。
【００３４】
図４は、上述の対応関係を示す音声合成ＬＳＩ２０５の動作説明図である。例えば、童謡「きらきら星」の歌い出しの歌詞文字列「き」「ら」「き」（図４（ａ））に対応する言語特徴量系列である歌声音素列「／ｋ／」「／ｉ／」「／ｒ／」「／ａ／」「／ｋ／」「／ｉ／」（図４（ｂ））が得られているときに、これらの言語特徴量系列が、フレーム単位の音響特徴量系列（図４（ｃ））に対して、１対多の関係（図４の（ｂ）と（ｃ）の関係）で対応付けられる。なお、言語特徴量は音響モデル部３０６におけるＤＮＮへの入力として使用されるため、数値データとして表現する必要がある。このため、言語特徴量系列としては、「直前の音素は「／ａ／」であるか？」や「現在の単語に含まれる音素の数は？」などのコンテキストに関する質問に対する二値のデータ（０又は１）、或いは、連続値での回答を連結して得られる数値データが用意される。
【００３５】
図３の音声学習部３０１内のモデル学習部３０５は、図４の破線矢印群４０１として示されるように、フレーム単位で、図４（ｂ）に対応する学習用言語特徴量系列３１３の音素列と図４（ｃ）に対応する学習用音響特徴量系列３１４の対を音響モデル部３０６のＤＮＮに順次与えて学習を行う。なお、音響モデル部３０６内のＤＮＮは、図４のグレー色の丸印群として示されるように、入力層、１つ以上の中間層、及び出力層からなるニューロン群を含む。
【００３６】
一方、音声合成時には、上記フレーム単位で、図４（ｂ）に対応する言語特徴量系列３１６の音素列が音響モデル部３０６のＤＮＮに入力される。この結果、音響モデル部３０６のＤＮＮは、図４の太実線矢印群４０２として示されるように、上記フレーム単位で、音響特徴量系列３１７を出力する。従って、発声モデル部３０８においても、上述のフレーム単位で、音響特徴量系列３１７に含まれる音源情報３１９及びスペクトル情報３１８がそれぞれ音源生成部３０９及び合成フィルタ部３１０に与えられて、音声合成が実行される。
【００３７】
この結果、発声モデル部３０８は、図４の太実線矢印群４０３として示されるように、フレーム毎に、例えば２２５サンプル（ｓａｍｐｌｅｓ）ずつの歌声音声出力データ２１７を出力する。フレームは５．１ｍｓｅｃの時間幅を有するため、１サンプルは「５．１ｍｓｅｃ÷２２５≒０．０２２７ｍｓｅｃ」であり、従って、歌声音声出力データ２１７のサンプリング周波数は１／０．０２２７≒４４ｋＨｚ（キロヘルツ）である。
【００３８】
ＤＮＮの学習は、フレーム単位の音響特徴量と言語特徴量の対を用いて、下記の（３）式で演算される二乗誤差最小化基準によって行われる。
【００３９】
【数３】
2020003816.tif 000016
【００４０】
ここで、
2020003816.tif 000017
と
2020003816.tif 000018
はそれぞれｔ番目のフレームｔにおける音響特徴量と言語特徴量、
2020003816.tif 000019
は音響モデル部３０６のＤＮＮのモデルパラメータ、
2020003816.tif 000020
はＤＮＮによって表される非線形変換関数である。ＤＮＮのモデルパラメータは誤差逆伝播法によって効率良く推定することができる。前述した（１）式によって表される統計的音声合成におけるモデル学習部３０５の処理との対応関係を考慮すると、ＤＮＮの学習は下記の（４）式のように表すことができる。
【００４１】
【数４】
2020003816.tif 000021
【００４２】
ここで、下記（５）式が成立する。
【数５】
2020003816.tif 000022
【００４３】
上記（４）式及び（５）式のように、音響特徴量と言語特徴量の関係は、ＤＮＮの出力を平均ベクトルとする正規分布
2020003816.tif 000023
によって表すことができる。ＤＮＮを用いた統計的音声合成処理では、通常、言語特徴量
2020003816.tif 000024
に非依存な共分散行列、即ち全てのフレームにおいて同じ共分散行列
2020003816.tif 000025
が用いられる。また、共分散行列
2020003816.tif 000026
を単位行列とすると、（４）式は（３）式と等価な学習処理を示している。
【００４４】
図４で説明したように、音響モデル部３０６のＤＮＮは、フレーム毎に独立に音響特徴量系列３１７を推定する。このため、得られる音響特徴量系列３１７には、合成音声の品質を低下させるような不連続が含まれる。そこで、本実施形態では例えば、動的特徴量を用いたパラメータ生成アルゴリズムを利用することにより、合成音声の品質を改善することができる。
【００４５】
図１、図２、及び図３の構成例を有する本実施形態の動作について、以下に詳細に説明する。図５は、歌詞制御技術の説明図である。図５（ａ）は、自動演奏に従って進行する歌詞テキストとメロディの関係を示す図である。例えば、前述した童謡「きらきら星」の歌い出しの場合、曲データには、「き／Ｔｗｉｎ（第１文字）」「ら／ｋｌｅ（第２文字）」「き／ｔｗｉｎ（第３文字）」「ら／ｋｌｅ（第４文字）」の歌詞の各文字（歌詞情報）と、歌詞の各文字を出力するｔ１、ｔ２、ｔ３、ｔ４の各タイミング情報と、歌詞の各文字のメロディ音高「Ｅ４（第１音高）」「Ｅ４（第２音高）」「Ｂ４（第３音高）」「Ｂ４（第４音高）」等の各音高情報が、含まれている。ｔ４の後のｔ５、ｔ６、ｔ７の各タイミングには、「ひ／ｌｉｔ（第５文字）」「か／ｔｌｅ（第６文字）」「る／ｓｔａｒ（第７文字）」の歌詞の各文字が対応付けられている。
【００４６】
例えば、図５（ｂ）における、ｔ１、ｔ２、ｔ３、ｔ４のタイミングは、図５（ａ）の本来の発声タイミングｔ１、ｔ２、ｔ３、ｔ４に対応している。ここで、演奏者が、本来の発声タイミングに対応したタイミングｔ１とｔ２で、図１の鍵盤１０１において、曲データに含まれる音高情報が示す第１音高Ｅ４と同じ音高Ｅ４の鍵を２度正しく押鍵したとする。この場合、図２のＣＰＵ２０１は、タイミングｔ１及びｔ２それぞれに応じたタイミングで、歌詞「き／Ｔｗｉｎ（第１文字）」及び「ら／ｋｌｅ（第２文字）」と、演奏者に指定された音高Ｅ４を示す情報と、例えばそれぞれ四分音符長の時間長を示す情報（少なくとも曲データ及び演奏者による演奏のいずれかに基づいて得られる）と、が含まれる歌声データ２１５を、図２の音声合成ＬＳＩ２０５に出力する。この結果、音声合成ＬＳＩ２０５は、タイミングｔ１及びｔ２でそれぞれ歌詞「き／Ｔｗｉｎ（第１文字）」及び「ら／ｋｌｅ（第２文字）」に対応するそれぞれ四分音符長の歌声音声出力データ２１７を第１音高（＝指定された音高）Ｅ４と、第２音高（＝指定された音高）Ｅ４でそれぞれ出力する。タイミングｔ１、ｔ２に対応する判定「○」印は、曲データに含まれる音高情報が示す音高及び歌詞情報に応じて発声が正しく行われたことを示している。
【００４７】
また、演奏者は、本来の発声タイミングに対応したタイミングｔ４で、図１の鍵盤１０１において、本来の第４音高Ｂ４とは異なる音高Ｇ４の鍵を押鍵したとする。この場合、ＣＰＵ２０１は、タイミングｔ４で歌詞「ら／ｋｌｅ（第４文字）」が指定され、タイミングｔ４で演奏された鍵に対応する音高Ｇ４が指定され、例えば八分音符長の時間長が指定された歌声データ２１５を、図２の音声合成ＬＳＩ２０５に出力する。この結果、音声合成ＬＳＩ２０５は、タイミングｔ４で歌詞「ら／ｋｌｅ（第４文字）」に対応する八分音符長の歌声音声出力データ２１７を、演奏（押鍵）された音高Ｇ４で出力する。
【００４８】
この本実施形態によれば、演奏者が本来の発声タイミングに応じたタイミングで演奏（押鍵）の操作を行った場合でも、演奏者による操作により指定された音高を歌声音声出力データ２１７に反映させることにより、発声される歌声に演奏者の意図をより良く反映させることを可能にする。
【００４９】
次に、本来の発声タイミングで、演奏者がそのタイミングに合わせて図１の鍵盤１０１のいずれの鍵も押鍵せずに、音高が指定されなかった場合には、以下の制御が実行される。図２のＣＰＵ２０１は、そのタイミングに対応する文字（歌詞情報）に応じた歌声を、曲データに含まれる音高情報が示す音高で出力するように制御する。この結果、図２又は図３の音声合成ＬＳＩ２０５は、上記タイミングに合わせて、そのタイミングに対応する文字に応じた歌声音声出力データ２１７を、曲データに含まれる音高情報が示す音高で出力する。
【００５０】
例えば、図５（ｂ）において、演奏者が、本来の発声タイミングに対応したタイミングｔ３に合わせて、図１の鍵盤１０１の鍵を演奏（押鍵）しなかったとする。この場合、図２のＣＰＵ２０１は、タイミングｔ３に対応する歌詞情報「き／ｔｗｉｎ（第３文字）」に応じた歌声を、曲データに含まれる音高情報が示す第３音高Ｂ４で出力するように指定した歌声データ２１５を、図２の音声合成ＬＳＩ２０５に出力する。この結果、図２又は図３の音声合成ＬＳＩ２０５は、上記タイミングｔ３に合わせて、タイミングｔ３に対応する歌詞情報「き／ｔｗｉｎ（第３文字）」に応じた歌声音声出力データ２１７を、対応する第３音高Ｂ４で出力する。
【００５１】
図５（ｃ）のタイミングｔ３は、本実施形態による上述の制御動作が行われなかったと仮定した場合において、演奏者が、本来の発声タイミングに対応したタイミングｔ３に応じて、図１の鍵盤１０１の鍵を押鍵しなかった場合の制御動作を説明したものである。本実施形態による上述の制御動作が行われなかった場合には、図５（ｃ）のタイミングｔ３では、本来発声されるべき歌詞文字列「き／ｔｗｉｎ（第３文字）」の発声は行われない。
【００５２】
以上のように、演奏者が本来の発声タイミングで演奏操作を行わなかった場合には、本実施形態による制御動作が実行されない場合には、発声されるべき歌詞文字列の発声が行われず、不自然な感じになってしまっていた。例えば、自動伴奏に合わせてメロディを演奏している場合に、自動伴奏による出力が歌詞に応じた歌声の出力より先に進んでしまう。これに対して、本実施形態では、演奏者が本来の発声タイミングで演奏操作を行わなかった場合には、曲データに含まれるそのタイミングに対応する歌詞情報（文字）に応じた歌声を、曲データに含まれる歌詞情報（文字）に対応する音高で出力させることが可能となる。これにより、本実施形態では、自然な歌詞進行を行うことができる。
【００５３】
次に、本来の発声タイミングのいずれのタイミングも到来していないタイミングで、演奏者が図１の鍵盤１０１の任意の鍵（操作子）を演奏（押鍵）操作すると、図２のＣＰＵ２０１は、音声合成ＬＳＩ２０５において出力されている歌声音声出力データ２１７に応じた歌声の音高を、演奏操作により指定された音高に変更することを指示する歌声データ２１５を、図２の音声合成ＬＳＩ２０５に出力する。この結果、図２又は図３の音声合成ＬＳＩ２０５は、上記本来の発声タイミングのいずれのタイミングも到来していないタイミングで、発声中の歌声音声出力データ２１７の音高を、ＣＰＵ２０１から指定された音高に変更する。
【００５４】
例えば図５（ｂ）において、本来の発声タイミングｔ１、ｔ２、ｔ３、ｔ４のいずれのタイミングも到来していないタイミングｔ１′、ｔ３′、及びｔ４′で、演奏者が、図１の鍵盤１０１においてそれぞれ音高Ｇ４、Ａ４、及びＥ４の鍵を押鍵したとする。この場合、ＣＰＵ２０１は、音声合成ＬＳＩ２０５においてそれぞれ出力されている歌詞文字列「き／Ｔｗｉｎ（第１文字）」、「き／ｔｗｉｎ（第３文字）」、及び「ら／ｋｌｅ（第４文字）」の歌声音声出力データ２１７の各音高Ｅ４、Ｂ４、及びＧ４を、演奏操作により指定された各音高Ｇ４、Ａ４、及びＥ４にそれぞれ変更して発声を継続させることを指示する歌声データ２１５を、図２の音声合成ＬＳＩ２０５に出力する。この結果、図２又は図３の音声合成ＬＳＩ２０５は、タイミングｔ１′、ｔ３′、及びｔ４′で、発声中の歌詞文字列「き／Ｔｗｉｎ（第１文字）」に応じた「ぃ／ｉｎ（第１文字´）」、「き（第３文字）」に応じた「ぃ／ｉｎ（第３文字´）」、及び「ら（第４文字）」に応じた「ぁ／ｌｅ（第４文字´）」の歌声音声出力データ２１７の各音高を、ＣＰＵ２０１から指定された各音高Ｇ４、Ａ４、及びＥ４にそれぞれ変更して発声を継続する。
【００５５】
図５（ｃ）のタイミングｔ１′、ｔ３′、及びｔ４′は、本実施形態による上述の制御動作が行われなかったと仮定した場合において、演奏者が、本来の発声タイミング以外のタイミングｔ１′、ｔ３′、及びｔ４′で、図１の鍵盤１０１の鍵を演奏（押鍵）した場合の制御動作を説明したものである。本実施形態による上述の制御動作が行われなかった場合には、図５（ｃ）のタイミングｔ１′、ｔ３′、及びｔ４′では、本来の発声タイミングではない次の歌詞に応じた歌声がそれぞれ出力され、歌詞が進行してしまう。
【００５６】
以上のように、演奏者が本来の発声タイミング以外のタイミングで演奏操作を行った場合には、本実施形態による制御動作が実行されない場合には、歌詞の進行が先に進んでしまって、不自然な感じになってしまっていた。これに対して、本実施形態では、そのタイミングに発声されている歌声音声出力データ２１７の音高を演奏者により演奏された音高に変更して継続させる。この場合には、例えば図５（ｂ）の本来の各ソング再生タイミングｔ１、ｔ３、及びｔ４で発声された「き／Ｔｗｉｎ（第１文字）」、「き／ｔｗｉｎ（第３文字）」、及び「ら／ｋｌｅ（第４文字）」に対応する歌声音声出力データ２１７が途切れることなく、その音高が各押鍵タイミングｔ１′、ｔ３′、及びｔ４′において新たな押鍵により指定された音高に連続的に変化してゆくように聞こえる。これにより、本実施形態では、自然な歌詞進行を行うことができる。
【００５７】
なお、演奏者が本来の発声タイミング以外のタイミングで演奏操作を行った場合に、そのタイミングに発声されている歌声音声出力データ２１７に基づく発声の音高を演奏者により指定された音高に変更して、新たに繰り返すように制御してもよい。この場合には、例えば図５（ｂ）の本来の各ソング再生タイミングｔ１、ｔ３、及びｔ４で発声された「き／Ｔｗｉｎ（第１文字）」、「き／ｔｗｉｎ（第３文字）」、及び「ら／ｋｌｅ（第４文字）」に対応する歌声音声出力データ２１７に続けて、押鍵タイミングｔ１′、ｔ３′、及びｔ４′において新たな押鍵により指定されたそれぞれの音高で、「き／Ｔｗｉｎ（第１文字）」、「き／ｔｗｉｎ（第３文字）」、及び「ら／ｋｌｅ（第４文字）」に対応する歌声音声出力データ２１７が別に発声されるように聞こえる。或いは、発声タイミング以外のタイミングでは、歌声音声出力データ２１７の発声を行わないように制御されてもよい。
【００５８】
更には、演奏者が本来の発声タイミング以外のタイミングで演奏操作を行った場合に、そのタイミングの直前ではなく直後のタイミングで発声されるべき歌声音声出力データ２１７の発声が、演奏者により指定された音高で先行して発声されるように制御されてもよい。この場合には、例えば図５（ｂ）の本来の各ソング再生タイミングｔ２、ｔ４、及びｔ５で発声されるべき「ら／ｋｌｅ（第２文字）」、「ら／ｋｌｅ（第４文字）」、及び「ひ／ｌｉｔ（第５文字）」に対応する歌声音声出力データ２１７に先行して、押鍵タイミングｔ１′、ｔ３′、及びｔ４′において新たな押鍵により指定されたそれぞれの音高で「ら／ｋｌｅ（第２文字）」、「ら／ｋｌｅ（第４文字）」、及び「ひ／ｌｉｔ（第５文字）」に対応する歌声音声出力データ２１７が発声されてもよい。
【００５９】
図６は、本実施形態において、図２のＲＯＭ２０２からＲＡＭ２０３に読み込まれる曲データのデータ構成例を示す図である。このデータ構成例は、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）用ファイルフォーマットの一つであるスタンダードＭＩＤＩファイルのフォーマットに準拠している。この曲データは、チャンクと呼ばれるデータブロックから構成される。具体的には、曲データは、ファイルの先頭にあるヘッダチャンクと、それに続く歌詞パート用の歌詞データが格納されるトラックチャンク１と、伴奏パート用の演奏データが格納されるトラックチャンク２とから構成される。
【００６０】
ヘッダチャンクは、ＣｈｕｎｋＩＤ、ＣｈｕｎｋＳｉｚｅ、ＦｏｒｍａｔＴｙｐｅ、ＮｕｍｂｅｒＯｆＴｒａｃｋ、及びＴｉｍｅＤｉｖｉｓｉｏｎの４つの値からなる。ＣｈｕｎｋＩＤは、ヘッダチャンクであることを示す"MThd"という半角４文字に対応する４バイトのアスキーコード「4D 54 68 64」（数字は１６進数）である。ＣｈｕｎｋＳｉｚｅは、ヘッダチャンクにおいて、ＣｈｕｎｋＩＤとＣｈｕｎｋＳｉｚｅを除く、ＦｏｒｍａｔＴｙｐｅ、ＮｕｍｂｅｒＯｆＴｒａｃｋ、及びＴｉｍｅＤｉｖｉｓｉｏｎの部分のデータ長を示す４バイトデータであり、データ長は６バイト：「00 00 00 06」（数字は１６進数）に固定されている。ＦｏｒｍａｔＴｙｐｅは、本実施形態の場合、複数トラックを使用するフォーマット１を意味する２バイトのデータ「00 01」（数字は１６進数）である。ＮｕｍｂｅｒＯｆＴｒａｃｋは、本実施形態の場合、歌詞パートと伴奏パートに対応する２トラックを使用することを示す２バイトのデータ「00 02」（数字は１６進数）である。ＴｉｍｅＤｉｖｉｓｉｏｎは、４分音符あたりの分解能を示すタイムベース値を示すデータであり、本実施形態の場合、１０進法で４８０を示す２バイトのデータ「01 E0」（数字は１６進数）である。
【００６１】
トラックチャンク１、２はそれぞれ、ＣｈｕｎｋＩＤ、ＣｈｕｎｋＳｉｚｅと、ＤｅｌｔａＴｉｍｅ＿１［ｉ］及びＥｖｅｎｔ＿１［ｉ］（トラックチャンク１／歌詞パートの場合）又はＤｅｌｔａＴｉｍｅ＿２［ｉ］及びＥｖｅｎｔ＿２［ｉ］（トラックチャンク２／伴奏パートの場合）からなる演奏データ組（０≦ｉ≦Ｌ：トラックチャンク１／歌詞パートの場合、０≦ｉ≦Ｍ：トラックチャンク２／伴奏パートの場合）とからなる。ＣｈｕｎｋＩＤは、トラックチャンクであることを示す"MTrk"という半角４文字に対応する４バイトのアスキーコード「4D 54 72 6B」（数字は１６進数）である。ＣｈｕｎｋＳｉｚｅは、各トラックチャンクにおいて、ＣｈｕｎｋＩＤとＣｈｕｎｋＳｉｚｅを除く部分のデータ長を示す４バイトデータである。
【００６２】
ＤｅｌｔａＴｉｍｅ＿１［ｉ］は、その直前のＥｖｅｎｔ＿１［ｉ−１］の実行時刻からの待ち時間（相対時間）を示す１〜４バイトの可変長データである。同様に、ＤｅｌｔａＴｉｍｅ＿２［ｉ］は、その直前のＥｖｅｎｔ＿２［ｉ−１］の実行時刻からの待ち時間（相対時間）を示す１〜４バイトの可変長データである。Ｅｖｅｎｔ＿１［ｉ］は、トラックチャンク１／歌詞パートにおいて、歌詞の発声タイミングと音高を指示するメタイベントである。Ｅｖｅｎｔ＿２［ｉ］は、トラックチャンク２／伴奏パートにおいて、ノートオン又はノートオフを指示するＭＩＤＩイベント、又は拍子を指示するメタイベントである。トラックチャンク１／歌詞パートに対して、各演奏データ組ＤｅｌｔａＴｉｍｅ＿１［ｉ］及びＥｖｅｎｔ＿１［ｉ］において、その直前のＥｖｅｎｔ＿１［ｉ−１］の実行時刻からＤｅｌｔａＴｉｍｅ＿１［ｉ］だけ待った上でＥｖｅｎｔ＿１［ｉ］が実行されることにより、歌詞の発声進行が実現される。一方、トラックチャンク２／伴奏パートに対して、各演奏データ組ＤｅｌｔａＴｉｍｅ＿２［ｉ］及びＥｖｅｎｔ＿２［ｉ］において、その直前のＥｖｅｎｔ＿２［ｉ−１］の実行時刻からＤｅｌｔａＴｉｍｅ＿２［ｉ］だけ待った上でＥｖｅｎｔ＿２［ｉ］が実行されることにより、自動伴奏の進行が実現される。
【００６３】
図７は、本実施形態における電子楽器の制御処理例を示すメインフローチャートである。この制御処理は例えば、図２のＣＰＵ２０１が、ＲＯＭ２０２からＲＡＭ２０３にロードされた制御処理プログラムを実行する動作である。
【００６４】
ＣＰＵ２０１は、まず初期化処理を実行した後（ステップＳ７０１）、ステップＳ７０２からＳ７０８の一連の処理を繰り返し実行する。
【００６５】
この繰返し処理において、ＣＰＵ２０１はまず、スイッチ処理を実行する（ステップＳ７０２）。ここでは、ＣＰＵ２０１は、図２のキースキャナ２０６からの割込みに基づいて、図１の第１のスイッチパネル１０２又は第２のスイッチパネル１０３のスイッチ操作に対応する処理を実行する。
【００６６】
次に、ＣＰＵ２０１は、図２のキースキャナ２０６からの割込みに基づいて図１の鍵盤１０１の何れかの鍵が操作されたか否かを判定して処理する鍵盤処理を実行する（ステップＳ７０３）。ここでは、ＣＰＵ２０１は、演奏者による何れかの鍵の押鍵又は離鍵の操作に応じて、図２の音源ＬＳＩ２０４に対して、発音開始又は発音停止を指示する発音制御データ２１６を出力する。
【００６７】
次に、ＣＰＵ２０１は、図１のＬＣＤ１０４に表示すべきデータを処理し、そのデータを、図２のＬＣＤコントローラ２０８を介してＬＣＤ１０４に表示する表示処理を実行する（ステップＳ７０４）。ＬＣＤ１０４に表示されるデータとしては、例えば演奏される歌声音声出力データ２１７に対応する歌詞とその歌詞に対応するメロディの楽譜や、各種設定情報がある（後述する図１３及び図１４を参照）。
【００６８】
次に、ＣＰＵ２０１は、ソング再生処理を実行する（ステップＳ７０５）。この処理においては、ＣＰＵ２０１が、演奏者の演奏に基づいて図５で説明した制御処理を実行し、歌声データ２１５を生成して音声合成ＬＳＩ２０５に出力する。
【００６９】
続いて、ＣＰＵ２０１は、音源処理を実行する（ステップＳ７０６）。音源処理において、ＣＰＵ２０１は、音源ＬＳＩ２０４における発音中の楽音のエンベロープ制御等の制御処理を実行する。
【００７０】
続いて、ＣＰＵ２０１は、音声合成処理を実行する（ステップＳ７０７）。音声合成処理において、ＣＰＵ２０１は、音声合成ＬＳＩ２０５による音声合成の実行を制御する。
【００７１】
最後にＣＰＵ２０１は、演奏者が特には図示しないパワーオフスイッチを押してパワーオフしたか否かを判定する（ステップＳ７０８）。ステップＳ７０８の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ７０２の処理に戻る。ステップＳ７０８の判定がＹＥＳならば、ＣＰＵ２０１は、図７のフローチャートで示される制御処理を終了し、電子鍵盤楽器１００の電源を切る。
【００７２】
図８（ａ）、（ｂ）、及び（ｃ）はそれぞれ、図７のステップＳ７０１の初期化処理、図７のステップＳ７０２のスイッチ処理における後述する図９のステップＳ９０２のテンポ変更処理、及び同じく図９のステップＳ９０６のソング開始処理の詳細例を示すフローチャートである。
【００７３】
まず、図７のステップＳ７０１の初期化処理の詳細例を示す図８（ａ）において、ＣＰＵ２０１は、ＴｉｃｋＴｉｍｅの初期化処理を実行する。本実施形態において、歌詞の進行及び自動伴奏は、ＴｉｃｋＴｉｍｅという時間を単位として進行する。図６の曲データのヘッダチャンク内のＴｉｍｅＤｉｖｉｓｉｏｎ値として指定されるタイムベース値は４分音符の分解能を示しており、この値が例えば４８０ならば、４分音符は４８０ＴｉｃｋＴｉｍｅの時間長を有する。また、図６の曲データのトラックチャンク内の待ち時間ＤｅｌｔａＴｉｍｅ＿１［ｉ］値及びＤｅｌｔａＴｉｍｅ＿２［ｉ］値も、ＴｉｃｋＴｉｍｅの時間単位によりカウントされる。ここで、１ＴｉｃｋＴｉｍｅが実際に何秒になるかは、曲データに対して指定されるテンポによって異なる。今、テンポ値をＴｅｍｐｏ［ビート／分］、上記タイムベース値をＴｉｍｅＤｉｖｉｓｉｏｎとすれば、ＴｉｃｋＴｉｍｅの秒数は、次式により算出される。
【００７４】
ＴｉｃｋＴｉｍｅ［秒］＝６０／Ｔｅｍｐｏ／ＴｉｍｅＤｉｖｉｓｉｏｎ  （６）
【００７５】
そこで、図８（ａ）のフローチャートで例示される初期化処理において、ＣＰＵ２０１はまず、上記（６）式に対応する演算処理により、ＴｉｃｋＴｉｍｅ［秒］を算出する（ステップＳ８０１）。なお、テンポ値Ｔｅｍｐｏは、初期状態では図２のＲＯＭ２０２に所定の値、例えば６０［ビート／秒］が記憶されているとする。或いは、不揮発性メモリに、前回終了時のテンポ値が記憶されていてもよい。
【００７６】
次に、ＣＰＵ２０１は、図２のタイマ２１０に対して、ステップＳ８０１で算出したＴｉｃｋＴｉｍｅ［秒］によるタイマ割込みを設定する（ステップＳ８０２）。この結果、タイマ２１０において上記ＴｉｃｋＴｉｍｅ［秒］が経過する毎に、ＣＰＵ２０１に対して歌詞進行及び自動伴奏のための割込み（以下「自動演奏割込み」と記載）が発生する。従って、この自動演奏割込みに基づいてＣＰＵ２０１で実行される自動演奏割込み処理（後述する図１０）では、１ＴｉｃｋＴｉｍｅ毎に歌詞進行及び自動伴奏を進行させる制御処理が実行されることになる。
【００７７】
続いて、ＣＰＵ２０１は、図２のＲＡＭ２０３の初期化等のその他初期化処理を実行する（ステップＳ８０３）。その後、ＣＰＵ２０１は、図８（ａ）のフローチャートで例示される図７のステップＳ７０１の初期化処理を終了する。
【００７８】
図８（ｂ）及び（ｃ）のフローチャートについては、後述する。図９は、図７のステップＳ７０２のスイッチ処理の詳細例を示すフローチャートである。
【００７９】
ＣＰＵ２０１はまず、図１の第１のスイッチパネル１０２内のテンポ変更スイッチにより歌詞進行及び自動伴奏のテンポが変更されたか否かを判定する（ステップＳ９０１）。その判定がＹＥＳならば、ＣＰＵ２０１は、テンポ変更処理を実行する（ステップＳ９０２）。この処理の詳細は、図８（ｂ）を用いて後述する。ステップＳ９０１の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ９０２の処理はスキップする。
【００８０】
次に、ＣＰＵ２０１は、図１の第２のスイッチパネル１０３において何れかのソング曲が選曲されたか否かを判定する（ステップＳ９０３）。その判定がＹＥＳならば、ＣＰＵ２０１は、ソング曲読込み処理を実行する（ステップＳ９０４）。この処理は、図６で説明したデータ構造を有する曲データを、図２のＲＯＭ２０２からＲＡＭ２０３に読み込む処理である。これ以降、図６に例示されるデータ構造内のトラックチャンク１又は２に対するデータアクセスは、ＲＡＭ２０３に読み込まれた曲データに対して実行される。ステップＳ９０３の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ９０４の処理はスキップする。
【００８１】
続いて、ＣＰＵ２０１は、図１の第１のスイッチパネル１０２においてソング開始スイッチが操作されたか否かを判定する（ステップＳ９０５）。その判定がＹＥＳならば、ＣＰＵ２０１は、ソング開始処理を実行する（ステップＳ９０６）。この処理の詳細は、図８（ｃ）を用いて後述する。ステップＳ９０５の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ９０６の処理はスキップする。
【００８２】
最後に、ＣＰＵ２０１は、図１の第１のスイッチパネル１０２又は第２のスイッチパネル１０３においてその他のスイッチが操作されたか否かを判定し、各スイッチ操作に対応する処理を実行する（ステップＳ９０７）。その後、ＣＰＵ２０１は、図９のフローチャートで例示される図７のステップＳ７０２のスイッチ処理を終了する。
【００８３】
図８（ｂ）は、図９のステップＳ９０２のテンポ変更処理の詳細例を示すフローチャートである。前述したように、テンポ値が変更されるとＴｉｃｋＴｉｍｅ［秒］も変更になる。図８（ｂ）のフローチャートでは、ＣＰＵ２０１は、このＴｉｃｋＴｉｍｅ［秒］の変更に関する制御処理を実行する。
【００８４】
まず、ＣＰＵ２０１は、図７のステップＳ７０１の初期化処理で実行された図８（ａ）のステップＳ８０１の場合と同様にして、前述した（６）式に対応する演算処理により、ＴｉｃｋＴｉｍｅ［秒］を算出する（ステップＳ８１１）。なお、テンポ値Ｔｅｍｐｏは、図１の第１のスイッチパネル１０２内のテンポ変更スイッチにより変更された後の値がＲＡＭ２０３等に記憶されているものとする。
【００８５】
次に、ＣＰＵ２０１は、図７のステップＳ７０１の初期化処理で実行された図８（ａ）のステップＳ８０２の場合と同様にして、図２のタイマ２１０に対して、ステップＳ８１１で算出したＴｉｃｋＴｉｍｅ［秒］によるタイマ割込みを設定する（ステップＳ８１２）。その後、ＣＰＵ２０１は、図８（ｂ）のフローチャートで例示される図９のステップＳ９０２のテンポ変更処理を終了する。
【００８６】
図８（ｃ）は、図９のステップＳ９０６のソング開始処理の詳細例を示すフローチャートである。
【００８７】
まず、ＣＰＵ２０１は、自動演奏の進行において、ＴｉｃｋＴｉｍｅを単位として、直前のイベントの発生時刻からの相対時間をカウントするためのＲＡＭ２０３上の変数ＤｅｌｔａＴ＿１（トラックチャンク１）及びＤｅｌｔａＴ＿２（トラックチャンク２）の値を共に０に初期設定する。次に、ＣＰＵ２０１は、図６に例示される曲データのトラックチャンク１内の演奏データ組ＤｅｌｔａＴｉｍｅ＿１［ｉ］及びＥｖｅｎｔ＿１［ｉ］（１≦ｉ≦Ｌ−１）の夫々ｉを指定するためのＲＡＭ２０３上の変数ＡｕｔｏＩｎｄｅｘ＿１と、同じくトラックチャンク２内の演奏データ組ＤｅｌｔａＴｉｍｅ＿２［ｉ］及びＥｖｅｎｔ＿２［ｉ］（１≦ｉ≦Ｍ−１）の夫々ｉを指定するためのＲＡＭ２０３上の変数ＡｕｔｏＩｎｄｅｘ＿２の各値を共に０に初期設定する（以上、ステップＳ８２１）。これにより、図６の例では、初期状態としてまず、トラックチャンク１内の先頭の演奏データ組ＤｅｌｔａＴｉｍｅ＿１［０］とＥｖｅｎｔ＿１［０］、及びトラックチャンク２内の先頭の演奏データ組ＤｅｌｔａＴｉｍｅ＿２［０］とＥｖｅｎｔ＿２［０］がそれぞれ参照される。
【００８８】
次に、ＣＰＵ２０１は、現在のソング位置を指示するＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘの値を０に初期設定する（ステップＳ８２２）。
【００８９】
更に、ＣＰＵ２０１は、歌詞及び伴奏の進行をするか（＝１）しないか（＝０）を示すＲＡＭ２０３上の変数ＳｏｎｇＳｔａｒｔの値を１（進行する）に初期設定する（ステップＳ８２３）。
【００９０】
その後、ＣＰＵ２０１は、演奏者が、図１の第１のスイッチパネル１０２により歌詞の再生に合わせて伴奏の再生を行う設定を行っているか否かを判定する（ステップＳ８２４）。
【００９１】
ステップＳ８２４の判定がＹＥＳならば、ＣＰＵ２０１は、ＲＡＭ２０３上の変数Ｂａｎｓｏｕの値を１（伴奏有り）に設定する（ステップＳ８２５）。逆に、ステップＳ８２４の判定がＮＯならば、ＣＰＵ２０１は、変数Ｂａｎｓｏｕの値を０（伴奏無し）に設定する（ステップＳ８２６）。ステップＳ８２５又はＳ８２６の処理の後、ＣＰＵ２０１は、図８（ｃ）のフローチャートで示される図９のステップＳ９０６のソング開始処理を終了する。
【００９２】
図１０は、図２のタイマ２１０においてＴｉｃｋＴｉｍｅ［秒］毎に発生する割込み（図８（ａ）のステップＳ８０２又は図８（ｂ）のステップＳ８１２を参照）に基づいて実行される自動演奏割込み処理の詳細例を示すフローチャートである。以下の処理は、図６に例示される曲データのトラックチャンク１及び２の演奏データ組に対して実行される。
【００９３】
まず、ＣＰＵ２０１は、トラックチャンク１に対応する一連の処理（ステップＳ１００１からＳ１００６）を実行する。始めにＣＰＵ２０１は、ＳｏｎｇＳｔａｒｔ値が１であるか否か、即ち歌詞及び伴奏の進行が指示されているか否かを判定する（ステップＳ１００１）。
【００９４】
ＣＰＵ２０１は、歌詞及び伴奏の進行が指示されていないと判定した（ステップＳ１００１の判定がＮＯである）場合には、ＣＰＵ２０１は、歌詞及び伴奏の進行は行わずに図１０のフローチャートで例示される自動演奏割込み処理をそのまま終了する。
【００９５】
ＣＰＵ２０１は、歌詞及び伴奏の進行が指示されていると判定した（ステップＳ１００１の判定がＹＥＳである）場合には、トラックチャンク１に関する前回のイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿１値が、ＡｕｔｏＩｎｄｅｘ＿１値が示すこれから実行しようとする演奏データ組の待ち時間ＤｅｌｔａＴｉｍｅ＿１［ＡｕｔｏＩｎｄｅｘ＿１］に一致したか否かを判定する（ステップＳ１００２）。
【００９６】
ステップＳ１００２の判定がＮＯならば、ＣＰＵ２０１は、トラックチャック１に関して、前回のイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿１値を＋１インクリメントさせて、今回の割込みに対応する１ＴｉｃｋＴｉｍｅ単位分だけ時刻を進行させる（ステップＳ１００３）。その後、ＣＰＵ２０１は、後述するステップＳ１００７に移行する。
【００９７】
ステップＳ１００２の判定がＹＥＳになると、ＣＰＵ２０１は、トラックチャック１に関して、ＡｕｔｏＩｎｄｅｘ＿１値が示す演奏データ組のイベントＥｖｅｎｔ［ＡｕｔｏＩｎｄｅｘ＿１］を実行する（ステップＳ１００４）。このイベントは、歌詞データを含むソングイベントである。
【００９８】
続いて、ＣＰＵ２０１は、トラックチャンク１内の次に実行すべきソングイベントの位置を示すＡｕｔｏＩｎｄｅｘ＿１値を、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘに格納する（ステップＳ１００４）。
【００９９】
更に、ＣＰＵ２０１は、トラックチャンク１内の演奏データ組を参照するためのＡｕｔｏＩｎｄｅｘ＿１値を＋１インクリメントする（ステップＳ１００５）。
【０１００】
また、ＣＰＵ２０１は、トラックチャンク１に関して今回参照したソングイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿１値を０にリセットする（ステップＳ１００６）。その後、ＣＰＵ２０１は、ステップＳ１００７の処理に移行する。
【０１０１】
次に、ＣＰＵ２０１は、トラックチャンク２に対応する一連の処理（ステップＳ１００７からＳ１０１３）を実行する。始めにＣＰＵ２０１は、トラックチャンク２に関する前回のイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿２値が、ＡｕｔｏＩｎｄｅｘ＿２値が示すこれから実行しようとする演奏データ組の待ち時間ＤｅｌｔａＴｉｍｅ＿２［ＡｕｔｏＩｎｄｅｘ＿２］に一致したか否かを判定する（ステップＳ１００７）。
【０１０２】
ステップＳ１００７の判定がＮＯならば、ＣＰＵ２０１は、トラックチャック２に関して、前回のイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿２値を＋１インクリメントさせて、今回の割込みに対応する１ＴｉｃｋＴｉｍｅ単位分だけ時刻を進行させる（ステップＳ１００８）。その後、ＣＰＵ２０１は、図１０のフローチャートで示される自動演奏割込み処理を終了する。
【０１０３】
ステップＳ１００７の判定がＹＥＳならば、ＣＰＵ２０１は、伴奏再生を指示するＲＡＭ２０３上の変数Ｂａｎｓｏｕの値が１（伴奏有り）であるか否かを判定する（ステップＳ１００９）（図８（ｃ）のステップＳ８２４からＳ８２６を参照）。
【０１０４】
ステップＳ１００９の判定がＹＥＳならば、ＣＰＵ２０１は、ＡｕｔｏＩｎｄｅｘ＿２値が示すトラックチャック２に関する伴奏に関するイベントＥｖｅｎｔ＿２［ＡｕｔｏＩｎｄｅｘ＿２］を実行する（ステップＳ１０１０）。ここで実行されるイベントＥｖｅｎｔ＿２［ＡｕｔｏＩｎｄｅｘ＿２］が、例えばノートオンイベントであれば、そのノートオンイベントにより指定されるキーナンバー及びベロシティにより、図２の音源ＬＳＩ２０４に対して伴奏用の楽音の発音命令が発行される。一方、イベントＥｖｅｎｔ＿２［ＡｕｔｏＩｎｄｅｘ＿２］が、例えばノートオフイベントであれば、そのノートオフイベントにより指定されるキーナンバー及びベロシティにより、図２の音源ＬＳＩ２０４に対して発音中の伴奏用の楽音の消音命令が発行される。
【０１０５】
一方、ステップＳ１００９の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ１０１０をスキップすることにより、今回の伴奏に関するイベントＥｖｅｎｔ＿２［ＡｕｔｏＩｎｄｅｘ＿２］は実行せずに、歌詞に同期した進行のために、次のステップＳ１０１１の処理に進んで、イベントを進める制御処理のみを実行する。
【０１０６】
ステップＳ１０１０の後又はステップＳ１００９の判定がＮＯの場合に、ＣＰＵ２０１は、トラックチャンク２上の伴奏データのための演奏データ組を参照するためのＡｕｔｏＩｎｄｅｘ＿２値を＋１インクリメントする（ステップＳ１０１１）。
【０１０７】
また、ＣＰＵ２０１は、トラックチャンク２に関して今回実行したイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿２値を０にリセットする（ステップＳ１０１２）。
【０１０８】
そして、ＣＰＵ２０１は、ＡｕｔｏＩｎｄｅｘ＿２値が示す次に実行されるトラックチャンク２上の演奏データ組の待ち時間ＤｅｌｔａＴｉｍｅ＿２［ＡｕｔｏＩｎｄｅｘ＿２］が０であるか否か、即ち、今回のイベントと同時に実行されるイベントであるか否かを判定する（ステップＳ１０１３）。
【０１０９】
ステップＳ１０１３の判定がＮＯならば、ＣＰＵ２０１は、図１０のフローチャートで示される今回の自動演奏割込み処理を終了する。
【０１１０】
ステップＳ１０１３の判定がＹＥＳならば、ＣＰＵ２０１は、ステップＳ１００９に戻って、ＡｕｔｏＩｎｄｅｘ＿２値が示すトラックチャンク２上で次に実行される演奏データ組のイベントＥｖｅｎｔ＿２［ＡｕｔｏＩｎｄｅｘ＿２］に関する制御処理を繰り返す。ＣＰＵ２０１は、今回同時に実行される回数分だけ、ステップＳ１００９からＳ１０１３の処理を繰り返し実行する。以上の処理シーケンスは、例えば和音などのように複数のノートオンイベントが同時タイミングで発音されるような場合に実行される。
【０１１１】
図１１は、図７のステップＳ７０５のソング再生処理の第１の実施形態の詳細例を示すフローチャートである。この処理は、図５で説明した本実施形態による制御処理を実行するものである。
【０１１２】
まずＣＰＵ２０１は、図１０の自動演奏割込み処理におけるステップＳ１００４で、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘに、値がセットされてＮｕｌｌ値でなくなっているか否かを判定する（ステップＳ１１０１）。このＳｏｎｇＩｎｄｅｘ値は、現在のタイミングが歌声の再生タイミングになっているか否かを示すものである。
【０１１３】
ステップＳ１１０１の判定がＹＥＳになった、即ち現時点がソング再生のタイミング（図５の例のｔ１、ｔ２、ｔ３、ｔ４等）になったら、ＣＰＵ２０１は、図７のステップＳ７０３の鍵盤処理により演奏者による図１の鍵盤１０１上で新たな押鍵が検出されているか否かを判定する（ステップＳ１１０２）。
【０１１４】
ステップＳ１１０２の判定がＹＥＳならば、ＣＰＵ２０１は、演奏者による押鍵により指定された指定音高を、発声音高として特には図示しないレジスタ又はＲＡＭ２０３上の変数にセットする（ステップＳ１１０３）。
【０１１５】
続いて、ＣＰＵ２０１は、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘが示すＲＡＭ２０３上の曲データのトラックチャンク１上のソングイベントＥｖｅｎｔ＿１［ＳｏｎｇＩｎｄｅｘ］から、歌詞文字列を読み出す。ＣＰＵ２０１は、読み出した歌詞文字列に対応する歌声音声出力データ２１７を、ステップＳ１１０３で設定された押鍵に基づく指定音高がセットされた発声音高で発声させるための歌声データ２１５を生成し、音声合成ＬＳＩ２０５に対して発声処理を指示する（ステップＳ１１０５）。
【０１１６】
以上のステップＳ１１０３とＳ１１０５の処理は、図５（ｂ）のソング再生タイミングｔ１、ｔ２、又はｔ４に関して前述した制御処理に対応する。
【０１１７】
一方、ステップＳ１１０１の判定により現時点がソング再生のタイミング（図５の例のｔ１、ｔ２、ｔ３、ｔ４等）になったと判定されると共に、ステップＳ１１０２の判定がＮＯ、現時点で即ち新規押鍵が検出されていないと判定された場合には、ＣＰＵ２０１は、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘが示すＲＡＭ２０３上の曲データのトラックチャンク１上のソングイベントＥｖｅｎｔ＿１［ＳｏｎｇＩｎｄｅｘ］から音高のデータを読み出し、この音高を発声音高として特には図示しないレジスタ又はＲＡＭ２０３上の変数にセットする（ステップＳ１１０４）。
【０１１８】
その後、ＣＰＵ２０１は、前述したステップＳ１１０５の処理を実行することにより、ソングイベントＥｖｅｎｔ＿１［ＳｏｎｇＩｎｄｅｘ］から読み出した歌詞文字列に対応する歌声音声出力データ２１７を、ステップＳ１１０４で設定された発声音高で発声させるための歌声データ２１５を生成し、音声合成ＬＳＩ２０５に対して発声処理を指示する（ステップＳ１１０５）。
【０１１９】
以上のステップＳ１１０４とＳ１１０５の処理は、図５（ｂ）のソング再生タイミングｔ３に関して前述した制御処理に対応する。
【０１２０】
ステップＳ１１０５の処理の後、ＣＰＵ２０１は、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘが示す再生を行ったソング位置を、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘ＿ｐｒｅに記憶させる（ステップＳ１１０６）。
【０１２１】
更に、ＣＰＵ２０１は、変数ＳｏｎｇＩｎｄｅｘの値をＮｕｌｌ値にクリアして、これ以降のタイミングをソング再生のタイミングでない状態にする（ステップＳ１１０７）。その後、ＣＰＵ２０１は、図１１のフローチャートで示される図７のステップＳ７０５のソング再生処理を終了する。
【０１２２】
前述したステップＳ１１０１の判定がＮＯである、即ち現時点がソング再生のタイミングではないときには、ＣＰＵ２０１は、図７のステップＳ７０３の鍵盤処理により演奏者による図１の鍵盤１０１上で新たな押鍵が検出されているか否かを判定する（ステップＳ１１０８）。
【０１２３】
ステップＳ１１０８の判定がＮＯならば、ＣＰＵ２０１はそのまま、図１１のフローチャートで示される図７のステップＳ７０５のソング再生処理を終了する。
【０１２４】
ステップＳ１１０８の判定がＹＥＳならば、ＣＰＵ２０１は、現在音声合成ＬＳＩ２０５が発声処理中の、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘ＿ｐｒｅが示すＲＡＭ２０３上の曲データのトラックチャンク１上のソングイベントＥｖｅｎｔ＿１［ＳｏｎｇＩｎｄｅｘ＿ｐｒｅ］の歌詞文字列に対応する歌声音声出力データ２１７の音高を、ステップＳ１１０８で検出された演奏者の押鍵に基づく指定音高に変更することを指示する歌声データ２１５を生成し、音声合成ＬＳＩ２０５に出力する（ステップＳ１１０９）。このとき、歌声データ２１５において、既に発声処理中の歌詞の音素のうち後半部分の音素、例えば歌詞文字列「き」であればそれを構成する音素列「／ｋ／」「／ｉ／」のうちの後半の「／ｉ／」が始まるフレーム（図４（ｂ）及び（ｃ）を参照）が、指定音高への変更の開始位置にセットされる。
【０１２５】
以上のステップＳ１１０９の処理により、現在の押鍵タイミングの直前の本来のタイミング、例えば図５（ｂ）のｔ１、ｔ３、及びｔ４からそれぞれ発声されている歌声音声出力データ２１７の発声がその音高が演奏者により演奏された指定音高に変更されて、例えば図５（ｂ）の現在の押鍵タイミングｔ１′、ｔ３′、及びｔ４′でそれぞれの発声を継続させることが可能となる。
【０１２６】
ステップＳ１１０９の処理の後、ＣＰＵ２０１は、図１１のフローチャートで示される図７のステップＳ７０５のソング再生処理を終了する。
【０１２７】
図１２は、図７のステップＳ７０５のソング再生処理の第２の実施形態の詳細例を示すフローチャートである。この処理は、図５で説明した本実施形態による他の制御処理を実行するものである。図１２において、図１１の第１の実施形態の場合と同じステップ番号を付したステップは、第１の実施形態の場合と同じ処理を実行するものとする。図１２の第２の実施形態の制御処理が図１１の第１の実施形態の制御処理と異なる部分は、第１の実施形態の説明で前述したステップＳ１１０１の判定がＮＯである、即ち現時点がソング再生のタイミングではない場合であって、ステップＳ１１０８の判定がＹＥＳのとき、即ち演奏者による新たな押鍵が検出されている場合のステップＳ１２０１とＳ１２０２の制御処理である。
【０１２８】
図１２において、ステップＳ１１０８の判定がＹＥＳの場合に、ＣＰＵ２０１はまず、演奏者による押鍵により指定された指定音高を、発声音高として特には図示しないレジスタ又はＲＡＭ２０３上の変数にセットする（ステップＳ１２０１）。
【０１２９】
その後、ＣＰＵ２０１は、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘが示すＲＡＭ２０３上の曲データのトラックチャンク１上のソングイベントＥｖｅｎｔ＿１［ＳｏｎｇＩｎｄｅｘ］から、歌詞文字列を読み出す。ＣＰＵ２０１は、読み出した歌詞文字列に対応する歌声音声出力データ２１７を、ステップＳ１１０３で設定された押鍵に基づく指定音高がセットされた発声音高で新たに発声させるための歌声データ２１５を生成し、音声合成ＬＳＩ２０５に対して発声処理を指示する（ステップＳ１２０２）。
【０１３０】
ステップＳ１２０２の処理の後、ＣＰＵ２０１は、図１２のフローチャートで示される図７のステップＳ７０５のソング再生処理を終了する。
【０１３１】
上述の第２の実施形態の制御処理により、前述したように、例えば図５（ｂ）の本来のソング再生タイミングｔ１、ｔ３、及びｔ４でそれぞれ発声された「き／Ｔｗｉｎ（第１文字）」、「き／ｔｗｉｎ（第３文字）」、及び「ら／ｋｌｅ（第４文字）」に対応する歌声音声出力データ２１７に続けて、各押鍵タイミングｔ１′、ｔ３′、及びｔ４′において新たな押鍵により指定されたそれぞれの指定音高で「き／Ｔｗｉｎ（第１文字）」、「き／ｔｗｉｎ（第３文字）」、及び「ら／ｋｌｅ（第４文字）」にそれぞれ対応する歌声音声出力データ２１７が別に発声されるように聞こえる効果がある。
【０１３２】
図１３は、図６のデータ構造として例示した曲データをＭｕｓｉｃＸＭＬ形式で実施した場合の曲データの構成例を示す図である。このようなデータ構成により、歌詞文字列（文字）とメロディ（音符）の楽譜データを持たせることが可能となる。そして、このような曲データをＣＰＵ２０１が例えば図７のステップＳ７０４の表示処理でパースすることにより、例えば図１の鍵盤１０１上で、現在ソング再生中の歌詞文字列に対応するメロディに対応する鍵を光らせて演奏者による歌詞文字列に対応する鍵の押鍵をガイドさせるような機能を持たせることが可能となる。同時に、例えば図１４に示されるような表示例の現在ソング再生中の歌詞文字列とそれに対応する楽譜を、図１のＬＣＤ１０４に表示させることが可能となる。
【０１３３】
以上説明した実施形態では、言語特徴量系列３１６から音響特徴量系列３１７を予測するために、音響モデル部３０６がＤＮＮ（ディープニューラルネットワーク）により実装される。その他、上記予測のために、音響モデル部３０６がＨＭＭ（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ：隠れマルコフモデル）によって実装されてもよい。この場合、音声学習部３０１内のモデル学習部３０５は、音声の音響的な特徴を精度良くモデル化するために，コンテキストを考慮したモデルを学習する。音響特徴量を詳細にモデル化するために、直前、直後の音素だけでなく、アクセント、品詞、文長などの要因も考慮する。しかし、コンテキストの組み合わせが膨大なものとなるため、すべてのコンテキストの組み合わせについて精度良くコンテキスト依存モデルを学習することができる音声データを用意することは困難である。この問題を解決するために、モデル学習部３０５は、決定木に基づくコンテキストクラスタリングの技術を採用することができる。決定木に基づくコンテキストクラスタリングでは、「直前の音素は／ａ／であるか？」などのコンテキストに関する質問を用いてコンテキストに依存したモデルを分類し，類似したコンテキストのモデルパラメータを、学習結果３１５として音響モデル部３０６に設定する。決定木の構造によって考慮されるコンテキストが変化するため，適切な決定木構造を選択することで高精度かつ汎化性能の高いコンテキストに依存したモデルを推定できる。図３の音声合成部３０２内の音響モデル部３０６は、テキスト解析部３０７により歌声データ２１５から抽出された言語特徴量系列３１６に従って、コンテキストに依存したＨＭＭを連結し，出力確率が最大となる音響特徴量系列３１７を予測する。
【０１３４】
以上説明した実施形態は、電子鍵盤楽器について本発明を実施したものであるが、本発明は電子弦楽器など他の電子楽器にも適用することができる。
【０１３５】
その他、本発明は上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。上述した実施形態には種々の段階が含まれており、開示される複数の構成要件による適宜の組み合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、効果が得られるのであれば、この構成要件が削除された構成が発明として抽出され得る。
【０１３６】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
少なくとも第１音高を示す情報と、前記第１音高に対応する第１文字を含む歌詞情報と、を有する曲データの前記第１音高を指定すべきタイミングに応じて複数の操作子のうちのいずれかの操作子が操作されることにより音高が指定された場合に、前記第１文字に応じた歌声を、前記操作に応じて指定された音高で出力する歌声出力処理と、
前記第１音高を指定すべきタイミングに応じて前記複数の操作子のうちのいずれの操作子も操作されないことにより音高が指定されない場合に、前記第１文字に応じた歌声を、前記第１音高を指定すべきタイミングに合わせて前記第１音高で出力するように制御する歌声出力制御処理と、
を実行する電子楽器。
（付記２）
前記歌声出力処理及び前記歌声出力制御処理に合わせて伴奏データを出力する伴奏データ出力処理、を実行する付記１に記載の電子楽器。
（付記３）
前記曲データは、前記第１音高の次に指定すべき第２音高を示す情報と、前記歌詞情報としての前記第２音高に対応する第２文字と、を含み、
前記歌声出力処理又は前記歌声出力制御処理により前記第１文字に応じた歌声の出力後、前記第２音高を指定すべきタイミングの到来前に前記いずれかの操作子が操作されることにより音高が指定された場合に、前記第１文字に応じた歌声の音高を、前記操作に応じて指定された音高に変更する音高変更処理、を実行する付記１または２に記載の電子楽器。
（付記４）
前記歌声を音声合成により生成する音声合成処理、を実行し、
前記歌声出力処理は、音高を指定すべきタイミングに応じて音高が指定された場合に、指定されたタイミングに応じて前記音声合成処理により音声合成された歌声を指定された音高で出力するとともに、音高を指定すべきタイミングに応じて音高が指定されない場合に、指定すべきタイミングに合わせて前記音声合成処理により音声合成された歌声を指定すべき音高で出力する付記１乃至３のいずれかに記載の電子楽器。
（付記５）
前記音声合成処理は、或る歌手が歌った歌声データ及び歌詞データによる機械学習により生成された学習済みモデルに基づいて、前記或る歌手に応じた歌声を音声合成する付記４に記載の電子楽器。
（付記６）
前記操作子を操作することにより音高を指定すべきタイミングに合わせて、指定すべき音高を示す識別子を表示する表示処理、を実行する付記１乃至５のいずれかに記載の電子楽器。
（付記７）
電子楽器のコンピュータに、
少なくとも第１音高を示す情報と、前記第１音高に対応する第１文字を含む歌詞情報と、を有する曲データの前記第１音高を指定すべきタイミングに応じて複数の操作子のうちのいずれかの操作子が操作されることにより音高が指定された場合に、前記第１文字に応じた歌声を、前記操作に応じて指定された音高で出力する歌声出力処理と、
前記第１音高を指定すべきタイミングに応じて前記複数の操作子のうちのいずれの操作子も操作されないことにより音高が指定されない場合に、前記第１文字に応じた歌声を、前記第１音高を指定すべきタイミングに合わせて前記第１音高で出力するように制御する歌声出力制御処理と、
を実行させる方法。
（付記８）
電子楽器のコンピュータに、
少なくとも第１音高を示す情報と、前記第１音高に対応する第１文字を含む歌詞情報と、を有する曲データの前記第１音高を指定すべきタイミングに応じて複数の操作子のうちのいずれかの操作子が操作されることにより音高が指定された場合に、前記第１文字に応じた歌声を、前記操作に応じて指定された音高で出力する歌声出力処理と、
前記第１音高を指定すべきタイミングに応じて前記複数の操作子のうちのいずれの操作子も操作されないことにより音高が指定されない場合に、前記第１文字に応じた歌声を、前記第１音高を指定すべきタイミングに合わせて前記第１音高で出力するように制御する歌声出力制御処理と、
を実行させるプログラム。
【符号の説明】
【０１３７】
１００  電子鍵盤楽器
１０１  鍵盤
１０２  第１のスイッチパネル
１０３  第２のスイッチパネル
１０４  ＬＣＤ
２００  制御システム
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  音源ＬＳＩ
２０５  音声合成ＬＳＩ
２０６  キースキャナ
２０８  ＬＣＤコントローラ
２０９  システムバス
２１０  タイマ
２１１、２１２  Ｄ／Ａコンバータ
２１３  ミキサ
２１４  アンプ
３０１  音声学習部
３０２  音声合成部
３０３  学習用テキスト解析部
３０４  学習用音響特徴量抽出
３０５  モデル学習部
３０６  音響モデル部
３０７  テキスト解析部
３０８  発声モデル部
３０９  音源生成部
３１０  合成フィルタ部
３１１  学習用歌声データ
３１２  学習用歌声音声データ
３１３  学習用言語特徴量系列
３１４  学習用音響特徴量系列
３１５  学習結果
３１６  言語特徴量系列
３１７  音響特徴量系列
３１８  スペクトル情報
３１９  音源情報
【図１】
2020003816.tif 000027
【図２】
2020003816.tif 000028
【図３】
2020003816.tif 000029
【図４】
2020003816.tif 000030
【図５】
2020003816.tif 000031
【図６】
2020003816.tif 000032
【図７】
2020003816.tif 000033
【図８】
2020003816.tif 000034
【図９】
2020003816.tif 000035
【図１０】
2020003816.tif 000036
【図１１】
2020003816.tif 000037
【図１２】
2020003816.tif 000038
【図１３】
2020003816.tif 000039
【図１４】
2020003816.tif 000040
【手続補正書】
【提出日】令和1年9月17日(2019.9.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
音高データ及び歌詞データを有する曲データの再生を開始する処理と、
前記曲データの再生中、前記歌詞データにおける新らたな歌詞に応じた歌声の発声タイミングに対応するタイミングにユーザにより音高が指定されない場合には、前記新らたな歌詞に応じた歌声を前記曲データに含まれる音高データに基づく音高で出力するとともに、前記新らたな歌詞に応じた歌声の発声タイミングに対応したタイミングにユーザにより音高が指定された場合には、前記新らたな歌詞に応じた歌声をユーザにより指定された音高で出力するように制御する歌声出力制御処理と、
を実行する電子楽器。
【請求項２】
前記歌声出力制御処理は、或る歌詞に応じた歌声の発声中にユーザにより音高が指定された場合には、発声中の歌声の音高をユーザにより指定された音高に変更する、請求項１に記載の電子楽器。
【請求項３】
前記曲データは、ユーザにより指定されることにより音高が変更される歌詞パートと、前記歌詞パートの進行に合わせて進行する伴奏パートと、を有することを特徴とする請求項１または２に記載の電子楽器。
【請求項４】
ユーザが音高を指定すべきタイミングより前に、ユーザが指定すべき音高を示す識別子を表示する表示処理、を実行する請求項１乃至３のいずれかに記載の電子楽器。
【請求項５】
複数の鍵を有する鍵盤を備え、
前記表示処理において、ユーザが指定すべき音高に応じた鍵を光らせることにより、前記識別子を鍵に表示する請求項４に記載の電子楽器。
【請求項６】
或る歌手の歌声データを機械学習することにより生成された学習済みモデルを記憶しているメモリを備え、
前記歌声は、前記学習済みモデルに基づいて音声合成されることにより生成されている、請求項１乃至５のいずれかに記載の電子楽器。
【請求項７】
電子楽器のコンピュータに、
音高データ及び歌詞データを有する曲データの再生を開始する処理と、
前記曲データの再生中、前記歌詞データにおける新らたな歌詞に応じた歌声の発声タイミングに対応するタイミングにユーザにより音高が指定されない場合には、前記新らたな歌詞に応じた歌声を前記曲データに含まれる音高データに基づく音高で出力するとともに、前記新らたな歌詞に応じた歌声の発声タイミングに対応したタイミングにユーザにより音高が指定された場合には、前記新らたな歌詞に応じた歌声をユーザにより指定された音高で出力するように制御する歌声出力制御処理と、
を実行させる方法。
【請求項８】
電子楽器のコンピュータに、
音高データ及び歌詞データを有する曲データの再生を開始する処理と、
前記曲データの再生中、前記歌詞データにおける新らたな歌詞に応じた歌声の発声タイミングに対応するタイミングにユーザにより音高が指定されない場合には、前記新らたな歌詞に応じた歌声を前記曲データに含まれる音高データに基づく音高で出力するとともに、前記新らたな歌詞に応じた歌声の発声タイミングに対応したタイミングにユーザにより音高が指定された場合には、前記新らたな歌詞に応じた歌声をユーザにより指定された音高で出力するように制御する歌声出力制御処理と、
を実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
態様の一例の電子楽器は、
音高データ及び歌詞データを有する曲データの再生を開始する処理と、
前記曲データの再生中、前記歌詞データにおける新らたな歌詞に応じた歌声の発声タイミングに対応するタイミングにユーザにより音高が指定されない場合には、前記新らたな歌詞に応じた歌声を前記曲データに含まれる音高データに基づく音高で出力するとともに、前記新らたな歌詞に応じた歌声の発声タイミングに対応したタイミングにユーザにより音高が指定された場合には、前記新らたな歌詞に応じた歌声をユーザにより指定された音高で出力するように制御する歌声出力制御処理と、
を実行する。