(57)【要約】【課題】ラップ等の演奏を可能とする情報処理装置、方法、及びプログラム、並びにそのような情報処理装置を備える電子楽器に関し、楽器や歌唱の演奏において所望の抑揚を簡単な操作で付加可能とする。【解決手段】ベンド処理部３２０は、ベンドスライダ１０５及びベンドスイッチ１０６によって、自動進行するラップ音声などの音楽情報に対して、拍などの所定の進行単位毎にその進行単位の期間内で変化する音楽情報のベンドカーブなどの抑揚パターンを、ユーザに例えばリアルタイムで指定させる。ベンド処理部３２０は、拍などの進行単位毎に、その進行単位に対して指定された抑揚パターンに対応するピッチベンドなどの抑揚を、音声合成部３０２で自動演奏されているラップ音などに付加する。【選択図】図３
2020148914.tif 000002
【特許請求の範囲】
【請求項１】
曲データの第１タイミングから第２タイミングの前までの第１区間が対応付けられる第１操作子を含む複数の操作子と、
少なくとも１つのプロセッサと、
を備え、前記少なくとも１つのプロセッサは、
前記第１操作子へのユーザ操作に基づいて、前記第１区間に付与する抑揚のパターンを決定し、
決定された前記パターンの抑揚で、前記第１区間に含まれるデータが示す歌詞が歌われるように、前記第１区間に含まれるデータを出力する、
情報処理装置。
【請求項２】
前記複数の操作子は、前記第１操作子と隣接して配置される第２操作子を有し、
前記第２操作子は、前記曲データに含まれる前記第２タイミングから第３タイミングの前までの第２区間が対応付けられ、
前記少なくとも１つのプロセッサは、
前記第２操作子へのユーザ操作に基づいて、前記第２区間に付与する抑揚のパターンを決定し、
決定された前記パターンの抑揚で、前記第２区間に含まれるデータが示す歌詞が歌われるように、前記第２区間に含まれるデータを出力する、
請求項１に記載の情報処理装置。
【請求項３】
前記少なくとも１つのプロセッサは、
前記第１区間の歌声の最後のピッチと前記第２区間の歌声の最初のピッチとが連続的に繋がるように、少なくとも前記第１区間に含まれるデータの出力及び、前記第２区間に含まれるデータの出力のいずれかを調整する、
請求項２に記載の情報処理装置。
【請求項４】
或る１曲の曲データのなかの互いに重複しない部分データがそれぞれ対応付けられる区間数は、前記複数の操作子の数より多く、
前記少なくとも１つのプロセッサは、
再生される前記曲データの進行に合わせて、前記複数の操作子に対応付ける区間を変更する、
請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
学習用歌詞データ及び学習用音高データを含む楽譜データと、前記楽譜データに対応する或る歌い手の歌声データと、を用いた機械学習処理により得られた学習済み音響モデルであって、任意の歌詞データと、任意の音高データと、を入力することにより、前記或る歌い手の歌声の音響特徴量を示すデータを出力する学習済み音響モデルを記憶しているメモリを備え、
前記少なくとも１つのプロセッサは、
前記学習済み音響モデルへの前記任意の歌詞データと前記任意の音高データとの入力に応じて前記学習済み音響モデルが出力した前記或る歌い手の歌声の音響特徴量を示すデータに基づいて、前記或る歌い手の歌声を推論し、
推論された前記或る歌い手の前記第１区間の歌声に、決定された前記パターンの抑揚がつくように、前記第１区間に含まれるデータを出力する、
請求項１から４のいずれかに記載の情報処理装置。
【請求項６】
曲データの第１タイミングから第２タイミングの前までの第１区間が対応付けられる第１操作子を含む複数の操作子と、
複数の鍵を含む鍵盤と、
少なくとも１つのプロセッサと、
を備え、前記少なくとも１つのプロセッサは、
前記第１操作子へのユーザ操作に基づいて、前記第１区間に付与する抑揚のパターンを決定し、
決定された前記パターンの抑揚で、前記第１区間に含まれるデータが示す歌詞が歌われるように、前記第１区間に含まれるデータを出力する、
電子楽器。
【請求項７】
曲データの第１タイミングから第２タイミングの前までの第１区間が対応付けられる第１操作子を含む複数の操作子を備える情報処理装置のコンピュータに、
前記第１操作子へのユーザ操作に基づいて、前記第１区間に付与する抑揚のパターンを決定させ、
決定された前記パターンの抑揚で、前記第１区間に含まれるデータが示す歌詞が歌われるように、前記第１区間に含まれるデータを出力させる、
方法。
【請求項８】
曲データの第１タイミングから第２タイミングの前までの第１区間が対応付けられる第１操作子を含む複数の操作子を備える情報処理装置のコンピュータに、
前記第１操作子へのユーザ操作に基づいて、前記第１区間に付与する抑揚のパターンを決定させ、
決定された前記パターンの抑揚で、前記第１区間に含まれるデータが示す歌詞が歌われるように、前記第１区間に含まれるデータを出力させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラップ等の演奏を可能とする情報処理装置、方法、及びプログラム、並びにそのような情報処理装置を備える電子楽器に関する。
【背景技術】
【０００２】
ラップと呼ばれる歌唱法がある。ラップは、音楽のリズム、韻律、又はメロディーラインの時間進行に合わせて、話し言葉などの内容を歌唱してゆく音楽手法の１つである。ラップでは特に、抑揚を即興的に変化させることにより、個性豊かな音楽表現を行うことができる。
【０００３】
このように、ラップは、歌詞があり、フロー（リズム、韻律、メロディーライン）があるもので、それを歌唱しようとすると非常にハードルが高い。ラップにおける上記フローに含まれる各音楽要素のうち少なくともいくつかが自動化され、それに合わせて残りの音楽要素を電子楽器等で演奏できれば、初心者等でもラップを身近なものとすることができる。
【０００４】
歌唱を自動化するための第１の従来技術として、録音された音声の素片を接続し加工する素片連結型の合成方式により音声合成された歌声を出力する電子楽器が知られている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−０５０２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記従来技術では、合成音声による歌唱の自動進行に合わせて電子楽器上で音高指定を行うことはできるが、ラップ特有の抑揚をリアルタイムで制御することはできなかった。また、ラップに限らず、楽器演奏において高度な抑揚を付けることは、従来困難であった。
【０００７】
そこで、本発明の目的は、楽器や歌唱の演奏において所望の抑揚を簡単な操作で付加可能とすることにある。
【課題を解決するための手段】
【０００８】
態様の一例の情報処理装置では、曲データの第１タイミングから第２タイミングの前までの第１区間が対応付けられる第１操作子を含む複数の操作子と、少なくとも１つのプロセッサと、を備え、少なくとも１つのプロセッサは、第１操作子へのユーザ操作に基づいて、第１区間に付与する抑揚のパターンを決定し、決定されたパターンの抑揚で、第１区間に含まれるデータが示す歌詞が歌われるように、第１区間に含まれるデータを出力する。
【発明の効果】
【０００９】
本発明によれば、楽器や歌唱の演奏において所望の抑揚を簡単な操作で付加することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】電子鍵盤楽器の一実施形態の外観例を示す図である。
【図２】電子鍵盤楽器の制御システムの一実施形態のハードウェア構成例を示すブロック図である。
【図３】実施形態の主要機能を示すブロック図である。
【図４】実施形態におけるベンドスライダ、ベンドスイッチ、及びベンドカーブ指定動作の説明図である。
【図５】実施形態のデータ構成例を示す図である。
【図６】実施形態におけるベンドカーブ設定テーブルのデータ構成例を示す図である。
【図７】実施形態におけるベンドカーブテーブルのデータ構成例を示す図である。
【図８】本実施形態における電子楽器の制御処理例を示すメインフローチャートである。
【図９】初期化処理、テンポ変更処理、及びラップ開始処理の詳細例を示すフローチャートである。
【図１０】スイッチ処理の詳細例を示すフローチャートである。
【図１１】ベンドカーブ設定処理の詳細例を示すフローチャートである。
【図１２】自動演奏割込み処理の詳細例を示すフローチャートである。
【図１３】ラップ再生処理の詳細例を示すフローチャートである。
【図１４】ベンド処理の詳細例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。図１は、情報処理装置としての自動演奏装置を搭載した電子鍵盤楽器の一実施形態１００の外観例を示す図である。電子鍵盤楽器１００は、演奏操作子としての複数の鍵からなる鍵盤１０１と、音量の指定、ラップ再生のテンポ設定、ラップ再生開始、伴奏再生等の各種設定を指示する第１のスイッチパネル１０２と、ラップや伴奏の選曲や音色の選択等を行う第２のスイッチパネル１０３と、ラップ再生時の歌詞、楽譜や各種設定情報を表示するＬＣＤ１０４（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶ディスプレイ）と、発声されるラップ音声の例えば音高に対して抑揚パターンであるベンドカーブを指定するベンドスライダ１０５と、ベンドスライダ１０５の指定の有効／無効を指定するベンドスイッチ１０６を備える。また、電子鍵盤楽器１００は、特には図示しないが、演奏により生成された楽音を放音するスピーカを裏面部、側面部、又は背面部等に備える。
【００１２】
図２は、図１の自動演奏装置を搭載した電子鍵盤楽器１００の制御システム２００の一実施形態のハードウェア構成例を示す図である。図２において、制御システム２００は、ＣＰＵ（中央演算処理装置）２０１、ＲＯＭ（リードオンリーメモリ）２０２、ＲＡＭ（ランダムアクセスメモリ）２０３、音源ＬＳＩ（大規模集積回路）２０４、音声合成ＬＳＩ２０５、図１の鍵盤１０１、第１のスイッチパネル１０２、第２のスイッチパネル１０３、ベンドスライダ１０５、及びベンドスイッチ１０６が接続されるキースキャナ２０６、及び図１のＬＣＤ１０４が接続されるＬＣＤコントローラ２０８が、それぞれシステムバス２０９に接続されている。また、ＣＰＵ２０１には、自動演奏のシーケンスを制御するためのタイマ２１０が接続される。更に、音源ＬＳＩ２０４及び音声合成ＬＳＩ２０５からそれぞれ出力される楽音出力データ２１８及びラップ音声出力データ２１７は、Ｄ／Ａコンバータ２１１、２１２によりそれぞれアナログ楽音出力信号及びアナログラップ音声出力信号に変換される。アナログ楽音出力信号及びアナログラップ音声出力信号は、ミキサ２１３で混合され、その混合信号がアンプ２１４で増幅された後に、特には図示しないスピーカ又は出力端子から出力される。
【００１３】
ＣＰＵ２０１は、ＲＡＭ２０３をワークメモリとして使用しながらＲＯＭ２０２に記憶された自動演奏制御プログラムを実行することにより、図１の電子鍵盤楽器１００の制御動作を実行する。また、ＲＯＭ２０２は、上記制御プログラム及び各種固定データのほか、歌詞データ及び伴奏データを含む曲データを記憶する。
【００１４】
ＣＰＵ２０１には、本実施形態で使用するタイマ２１０が実装されており、例えば電子鍵盤楽器１００における自動演奏の進行をカウントする。
【００１５】
音源ＬＳＩ２０４は、ＣＰＵ２０１からの発音制御指示に従って、例えば特には図示しない波形ＲＯＭから楽音波形データを読み出し、Ｄ／Ａコンバータ２１１に出力する。音源ＬＳＩ２０４は、同時に最大２５６ボイスを発振させる能力を有する。
【００１６】
音声合成ＬＳＩ２０５は、ＣＰＵ２０１から、歌詞のテキストデータと音高に関する情報をラップデータ２１５として与えられると、それに対応するラップ音声の音声データを合成し、Ｄ／Ａコンバータ２１２に出力する。
【００１７】
キースキャナ２０６は、図１の鍵盤１０１の押鍵／離鍵状態、第１のスイッチパネル１０２、第２のスイッチパネル１０３、ベンドスライダ１０５、及びベンドスイッチ１０６のスイッチ操作状態を定常的に走査し、ＣＰＵ２０１に割り込みを掛けて状態変化を伝える。
【００１８】
ＬＣＤコントローラ６０９は、ＬＣＤ５０５の表示状態を制御するＩＣ（集積回路）である。
【００１９】
図３は、本実施形態における主要機能を示すブロック図である。ここで、音声合成部３０２は、図２の音声合成ＬＳＩ２０５が実行する一機能として電子鍵盤楽器１００に内蔵される。この音声合成部３０２は、後述するラップ再生処理により図２のＣＰＵ２０１から指示されるラップデータ２１５を入力することにより、ラップ音声出力データ２１７を合成し出力する。
【００２０】
音声学習部３０１は例えば、図３に示されるように、図１の電子鍵盤楽器１００とは別に外部に存在するサーバコンピュータ３００が実行する一機能として実装されてよい。或いは、図３には図示していないが、音声学習部３０１は、図２の音声合成ＬＳＩ２０５の処理能力に余裕があれば、音声合成ＬＳＩ２０５が実行する一機能として電子鍵盤楽器１００に内蔵されてもよい。音源ＬＳＩ２０４は、図２に示されるものである。
【００２１】
ベンド処理部３２０は、図２のＣＰＵ２０１が後述するベンドカーブ設定処理（図１１参照）及びベンド処理（図１４参照）のプログラムを実行する機能であり、図１又は図２に示されるベンドスライダ１０５及びベンドスイッチ１０６の状態を図２に示されるキースキャナ２０６からシステムバス２０９を介して取り込むことにより、ラップ音声の例えば音高に対して抑揚パターンであるベンドカーブの変化を付ける処理を実行する。
【００２２】
図２の音声学習部３０１及び音声合成部３０２は、例えば下記非特許文献１に記載の「深層学習に基づく統計的音声合成」の技術に基づいて実装される。
【００２３】
（非特許文献１）
橋本佳，高木信二「深層学習に基づく統計的音声合成」日本音響学会誌７３巻１号（２０１７），ｐｐ．５５−６２
【００２４】
図３に示されるように例えば外部のサーバコンピュータ３００が実行する機能である図２の音声学習部３０１は、学習用テキスト解析部３０３と学習用音響特徴量抽出部３０４とモデル学習部３０５とを含む。
【００２５】
音声学習部３０１において、学習用ラップ音声データ３１２としては、例えば複数のラップ曲を或るラップ歌手が歌った音声を録音したものが使用される。また、学習用ラップデータ３１１としては、各ラップ曲の歌詞テキストが用意される。
【００２６】
学習用テキスト解析部３０３は、歌詞テキストを含む学習用ラップデータ３１１を入力してそのデータを解析する。この結果、学習用テキスト解析部３０３は、学習用ラップデータ３１１に対応する音素、音高等を表現する離散数値系列である学習用言語特徴量系列３１３を推定して出力する。
【００２７】
学習用音響特徴量抽出部３０４は、上記学習用ラップデータ３１１の入力に合わせてその学習用ラップデータ３１１に対応する歌詞テキストを或るラップ歌手が歌うことによりマイク等を介して集録された学習用ラップ音声データ３１２を入力して分析する。この結果、学習用音響特徴量抽出部３０４は、学習用ラップ音声データ３１２に対応する音声の特徴を表す学習用音響特徴量系列３１４を抽出して出力する。
【００２８】
モデル学習部３０５は、学習用言語特徴量系列３１３と、音響モデルとから、学習用音響特徴量系列３１４が生成される確率を最大にするような音響モデルを、機械学習により推定する。即ち、テキストである言語特徴量系列と音声である音響特徴量系列との関係が、音響モデルという統計モデルによって表現される。
【００２９】
モデル学習部３０５は、機械学習を行った結果算出される音響モデルを表現するモデルパラメータを学習結果３１５として出力する。
【００３０】
この学習結果３１５（モデルパラメータ）は例えば、図３に示されるように、図１の電子鍵盤楽器１００の工場出荷時に、図２の電子鍵盤楽器１００の制御システムのＲＯＭ２０２に記憶され、電子鍵盤楽器１００のパワーオン時に、図２のＲＯＭ２０２から音声合成ＬＳＩ２０５内の後述する音響モデル部３０６にロードされてよい。或いは、学習結果３１５は例えば、図３に示されるように、演奏者が電子鍵盤楽器１００の第２のスイッチパネル１０３を操作することにより、特には図示しないインターネットやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ケーブル等のネットワークからネットワークインタフェース２１９を介して、音声合成ＬＳＩ２０５内の後述する音響モデル部３０６にダウンロードされてもよい。
【００３１】
音声合成ＬＳＩ２０５が実行する機能である音声合成部３０２は、テキスト解析部３０７と音響モデル部３０６と発声モデル部３０８とを含む。音声合成部３０２は、歌詞テキストを含むラップデータ２１５に対応するラップ音声出力データ２１７を、音響モデル部３０６に設定された音響モデルという統計モデルを用いて予測することにより合成する、統計的音声合成処理を実行する。
【００３２】
テキスト解析部３０７は、自動演奏に合わせた演奏者の演奏の結果として、図２のＣＰＵ２０１より指定される歌詞の音素、音高等に関する情報を含むラップデータ２１５を入力し、そのデータを解析する。この結果、テキスト解析部３０７は、ラップデータ２１５に対応する音素、品詞、単語等を表現する言語特徴量系列３１６を解析して出力する。
【００３３】
音響モデル部３０６は、言語特徴量系列３１６を入力することにより、それに対応する音響特徴量系列３１７を推定して出力する。即ち音響モデル部３０６は、テキスト解析部３０７から入力する言語特徴量系列３１６と、モデル学習部３０５での機械学習により学習結果３１５として設定された音響モデルとに基づいて、音響特徴量系列３１７が生成される確率を最大にするような音響特徴量系列３１７の推定値を推定する。
【００３４】
発声モデル部３０８は、音響特徴量系列３１７を入力することにより、ＣＰＵ２０１より指定される歌詞テキストを含むラップデータ２１５に対応するラップ音声出力データ２１７を生成する。ラップ音声出力データ２１７は、図２のＤ／Ａコンバータ２１２からミキサ２１３及びアンプ２１４を介して出力され、特には図示しないスピーカから放音される。
【００３５】
学習用音響特徴量系列３１４や音響特徴量系列３１７で表される音響特徴量は、人間の声道をモデル化したスペクトル情報と、人間の声帯をモデル化した音源情報とを含む。スペクトルパラメータとしては例えば、メルケプストラムや線スペクトル対（Ｌｉｎｅ  Ｓｐｅｃｔｒａｌ  Ｐａｉｒｓ：ＬＳＰ）等を採用できる。音源情報としては、人間の音声のピッチ周波数を示す基本周波数（Ｆ０）及びパワー値を採用できる。発声モデル部３０８は、音源生成部３０９と合成フィルタ部３１０とを含む。音源生成部３０９は、人間の声帯をモデル化した部分であり、音響モデル部３０６から入力する音源情報３１９の系列を順次入力することにより、例えば、音源情報３１９に含まれる基本周波数（Ｆ０）及びパワー値で周期的に繰り返されるパルス列（有声音音素の場合）、又は音源情報３１９に含まれるパワー値を有するホワイトノイズ（無声音音素の場合）、或いはそれらが混合された信号からなる音源信号を生成する。合成フィルタ部３１０は、人間の声道をモデル化した部分であり、音響モデル部３０６から順次入力するスペクトル情報３１８の系列に基づいて声道をモデル化するデジタルフィルタを形成し、音源生成部３０９から入力する音源信号を励振源信号として、デジタル信号のラップ音声出力データ２１７を生成し出力する。
【００３６】
学習用ラップ音声データ３１２に対するサンプリング周波数は、例えば１６ＫＨｚ（キロヘルツ）である。また、学習用音響特徴量系列３１４及び音響特徴量系列３１７に含まれるスペクトルパラメータとして、例えばメルケプストラム分析処理により得られるメルケプストラムパラメータが採用される場合、その更新フレーム周期は、例えば５ｍｓｅｃ（ミリ秒）である。更に、メルケプストラム分析処理の場合、分析窓長は２５ｍｓｅｃ、窓関数はブラックマン窓、分析次数は２４次である。
【００３７】
次に、図３の音声学習部３０１及び音声合成部３０２からなる統計的音声合成処理の第１の実施形態について説明する。統計的音声合成処理の第１の実施形態では、音響モデル部３０６に設定される学習結果３１５（モデルパラメータ）によって表現される音響モデルとして、前述した非特許文献１、及び下記非特許文献２に記載のＨＭＭ（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ：隠れマルコフモデル）を用いる。
【００３８】
（非特許文献２）
酒向慎司、才野慶二郎、南角吉彦、徳田恵一、北村正「声質と歌唱スタイルを自動学習可能な歌声合成システム」情報処理学会研究報告音楽情報科学（ＭＵＳ）２００８（１２（２００８−ＭＵＳ−０７４）），ｐｐ．３９−４４，２００８−０２−０８
【００３９】
統計的音声合成処理の第１の実施形態では、ユーザが或るメロディーにそった歌詞を発声する際、声帯の振動や声道特性のラップ音声の特徴パラメータがどのような時間変化をしながら発声されるかが、ＨＭＭ音響モデルによって学習される。より具体的には、ＨＭＭ音響モデルは、学習用のラップデータから求めたスペクトル、基本周波数、およびそれらの時間構造を音素単位でモデル化したものである。
【００４０】
次に、図３の音声学習部３０１及び音声合成部３０２からなる統計的音声合成処理の第２の実施形態について説明する。統計的音声合成処理の第２の実施形態では、言語特徴量系列３１６から音響特徴量系列３１７を予測するために、音響モデル部３０６がディープニューラルネットワーク（Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＤＮＮ）により実装される。これに対応して、音声学習部３０１内のモデル学習部３０５は、言語特徴量から音響特徴量へのＤＮＮ内の各ニューロンの非線形変換関数を表すモデルパラメータを学習し、そのモデルパラメータを学習結果３１５として音声合成部３０２内の音響モデル部３０６のＤＮＮに出力する。
【００４１】
図３で説明した統計的音声合成処理を利用した図１及び図２の電子鍵盤楽器１００の実施形態のラップを含む曲の自動演奏動作について、以下に詳細に説明する。図４は、本実施形態における図１又は図２のベンドスライダ１０５及びベンドスイッチ１０６を用いたベンドカーブ指定動作の説明図である。本実施形態では、自動進行するラップ曲に対して、例えば拍（所定の進行単位）毎に各拍の期間内で変化するラップの音高の抑揚パターンであるベンドカーブを指定することができる。
【００４２】
このベンドカーブの指定及びそれに基づくベンド付加は、ユーザが、例えば連続する１６拍（４／４拍子の曲の場合は４小節）毎に、指定手段である図４に示されるベンドスライダ１０５のボリュームを用いて、自動進行するラップ曲に対してリアルタイムで実行することができる。ベンドスライダ１０５は、例えば１６個（図４の例では８個のみ示されている）のスライダを備え、左から右に順に、各スライダはそれぞれ現在自動進行中のラップ曲のこれから実行される１６拍分の各拍のベンドカーブの種類を指定することができる。指定されるベンドカーブとしては複数種類のベンドカーブパターン４０１を用意することができる（図４の例ではベンドスライダ１０５の左側に＃０から＃３までの４パターンのベンドカーブパターン４０１が例示されている）。ユーザは、ベンドスライダ１０５の１６個のスライダ毎に、各スライダのスライド位置として複数のベンドカーブパターン４０１のうちの１つをそれぞれ指定することができる。
【００４３】
例えば１６個のスライダからなるベンドスライダ１０５の上部には、指定手段である例えば１６個のスイッチからなるベンドスイッチ１０６が配置されている。ベンドスイッチ１０６の各スイッチはそれぞれ、夫々の下部に配置されているベンドスライダ１０５の各スライダに対応している。ユーザは、上記１６拍の任意の拍に対して、ベンドスイッチ１０６内の対応するスイッチをオフ操作することにより、ベンドスライダ１０５内の対応するスライダの設定を無効にすることができる。これにより、その拍に対しては、ベンド効果がかからないようにすることができる。
【００４４】
以上のベンドスライダ１０５及びベンドスイッチ１０６による連続する１６拍の各拍に対するベンドカーブの設定は、図３で説明したベンド処理部３２０によって取り込まれる。付加手段として動作するベンド処理部３２０は、音声合成部３０２（図２、図３参照）において自動進行しているラップ曲の自動演奏において、連続する各１６拍（４／４拍子の場合は各４小節）分の各拍毎に、ベンドスライダ１０５及びベンドスイッチ１０６により指定されたベンドカーブに対応するラップ音声の音高の抑揚を、音声合成部３０２に対して指示する。
【００４５】
具体的には、ベンド処理部３２０は、拍の進行毎に、その拍に対して指定されているベンドカーブに基づいて、音高の変更情報を音声合成部３０２に対して指定する。１拍内のピッチベンドの時間分解能は例えば４８であり、ベンド処理部３２０は、１拍を４８分割したタイミング毎に、音声合成部３０２に対して、指定されているベンドカーブに対応する音高変更情報を音声合成部３０２に対して指定する。図３で説明した音声合成部３０２は、音響モデル部３０６から出力される音源情報３１９の音高を、ベンド処理部３２０から指定された音高変更情報に基づいて変更し、その変更された音源情報３１９を音源生成部３０９に供給する。
【００４６】
以上のようにして、本実施形態では、ラップ曲の例えば歌詞と時間進行は自動演奏にまかせて、ユーザは進行単位（例えば拍）毎にラップらしい例えば音高のベンドカーブの抑揚パターンを指定することが可能となり、ラップ演奏を手軽に楽しむことが可能となる。
【００４７】
特にこの場合、ユーザは、例えば１６拍分の拍の夫々に対応するベンドスライダ１０５及びベンドスイッチ１０６を用いて、自動進行中の自動演奏の１６拍毎に、ラップ音声の音高のための拍毎のベンドカーブを、リアルタイムで指定することができ、ラップ曲を自動演奏しながら自分のラップ演奏に加わることが可能となる。
【００４８】
なお、ユーザは、例えば拍毎のベンドカーブの指定を、自動演奏のラップ曲に対応させて予め指定し記憶し、ベンド処理部３２０は、ラップ曲の自動演奏の実行時に、そのベンドカーブの指定を読み込んで、指定されたベンドカーブに対応するラップ音声の音高の抑揚を、音声合成部３０２に対して指示するようにすることもできる。
【００４９】
これにより、ユーザは、ラップ曲に対するラップ音声の音高の抑揚付けを、じっくりと行うことが可能となる。
【００５０】
図５は、本実施形態において、図２のＲＯＭ２０２からＲＡＭ２０３に読み込まれる曲データのデータ構成例を示す図である。このデータ構成例は、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）用ファイルフォーマットの一つであるスタンダードＭＩＤＩファイルのフォーマットに準拠している。この曲データは、チャンクと呼ばれるデータブロックから構成される。具体的には、曲データは、ファイルの先頭にあるヘッダチャンクと、それに続く歌詞パート用の歌詞データが格納されるトラックチャンク１と、伴奏パート用の演奏データが格納されるトラックチャンク２とから構成される。
【００５１】
ヘッダチャンクは、ＣｈｕｎｋＩＤ、ＣｈｕｎｋＳｉｚｅ、ＦｏｒｍａｔＴｙｐｅ、ＮｕｍｂｅｒＯｆＴｒａｃｋ、及びＴｉｍｅＤｉｖｉｓｉｏｎの４つの値からなる。ＣｈｕｎｋＩＤは、ヘッダチャンクであることを示す"MThd"という半角４文字に対応する４バイトのアスキーコード「4D 54 68 64」（数字は１６進数）である。ＣｈｕｎｋＳｉｚｅは、ヘッダチャンクにおいて、ＣｈｕｎｋＩＤとＣｈｕｎｋＳｉｚｅを除く、ＦｏｒｍａｔＴｙｐｅ、ＮｕｍｂｅｒＯｆＴｒａｃｋ、及びＴｉｍｅＤｉｖｉｓｉｏｎの部分のデータ長を示す４バイトデータであり、データ長は６バイト：「00 00 00 06」（数字は１６進数）に固定されている。ＦｏｒｍａｔＴｙｐｅは、本実施形態の場合、複数トラックを使用するフォーマット１を意味する２バイトのデータ「00 01」（数字は１６進数）である。ＮｕｍｂｅｒＯｆＴｒａｃｋは、本実施形態の場合、歌詞パートと伴奏パートに対応する２トラックを使用することを示す２バイトのデータ「00 02」（数字は１６進数）である。ＴｉｍｅＤｉｖｉｓｉｏｎは、４分音符あたりの分解能を示すタイムベース値を示すデータであり、本実施形態の場合、１０進法で４８０を示す２バイトのデータ「01 E0」（数字は１６進数）である。
【００５２】
トラックチャンク１、２はそれぞれ、ＣｈｕｎｋＩＤ、ＣｈｕｎｋＳｉｚｅと、ＤｅｌｔａＴｉｍｅ＿１［ｉ］及びＥｖｅｎｔ＿１［ｉ］（トラックチャンク１／歌詞パートの場合）又はＤｅｌｔａＴｉｍｅ＿２［ｉ］及びＥｖｅｎｔ＿２［ｉ］（トラックチャンク２／伴奏パートの場合）からなる演奏データ組（０≦ｉ≦Ｌ：トラックチャンク１／歌詞パートの場合、０≦ｉ≦Ｍ：トラックチャンク２／伴奏パートの場合）とからなる。ＣｈｕｎｋＩＤは、トラックチャンクであることを示す"MTrk"という半角４文字に対応する４バイトのアスキーコード「4D 54 72 6B」（数字は１６進数）である。ＣｈｕｎｋＳｉｚｅは、各トラックチャンクにおいて、ＣｈｕｎｋＩＤとＣｈｕｎｋＳｉｚｅを除く部分のデータ長を示す４バイトデータである。
【００５３】
ＤｅｌｔａＴｉｍｅ＿１［ｉ］は、その直前のＥｖｅｎｔ＿１［ｉ−１］の実行時刻からの待ち時間（相対時間）を示す１〜４バイトの可変長データである。同様に、ＤｅｌｔａＴｉｍｅ＿２［ｉ］は、その直前のＥｖｅｎｔ＿２［ｉ−１］の実行時刻からの待ち時間（相対時間）を示す１〜４バイトの可変長データである。Ｅｖｅｎｔ＿１［ｉ］は、トラックチャンク１／歌詞パートにおいて、ラップの歌詞の発声タイミングと音高を指示するメタイベントである。Ｅｖｅｎｔ＿２［ｉ］は、トラックチャンク２／伴奏パートにおいて、ノートオン又はノートオフを指示するＭＩＤＩイベント、又は拍子を指示するメタイベントである。トラックチャンク１／歌詞パートに対して、各演奏データ組ＤｅｌｔａＴｉｍｅ＿１［ｉ］及びＥｖｅｎｔ＿１［ｉ］において、その直前のＥｖｅｎｔ＿１［ｉ−１］の実行時刻からＤｅｌｔａＴｉｍｅ＿１［ｉ］だけ待った上でＥｖｅｎｔ＿１［ｉ］が実行されることにより、歌詞の発声進行が実現される。一方、トラックチャンク２／伴奏パートに対して、各演奏データ組ＤｅｌｔａＴｉｍｅ＿２［ｉ］及びＥｖｅｎｔ＿２［ｉ］において、その直前のＥｖｅｎｔ＿２［ｉ−１］の実行時刻からＤｅｌｔａＴｉｍｅ＿２［ｉ］だけ待った上でＥｖｅｎｔ＿２［ｉ］が実行されることにより、自動伴奏の進行が実現される。
【００５４】
図６は、ベンドスライダ１０５、ベンドスイッチ１０６（図１、図２、図４参照）、及びベンド処理部３２０（図３参照）によって指定される拍毎のベンドカーブの設定を記憶するベンドカーブ設定テーブル６００のデータ構成例を示す図である。このベンドカーブ設定テーブル６００は、例えば図２のＲＡＭ２０３に記憶される。ベンドカーブ設定テーブル６００は、連続する１６拍毎に、小節番号と拍番号と指定されたベンドカーブ番号を記憶する。例えば、最初の連続する１６拍であるデータ群６０１（＃０）には、小節番号０〜３と、各小節内の拍番号０〜３と、ベンドカーブ番号０〜３（図４の４０１（＃０）〜４０１（＃３）に対応）が記憶される。なお、ベンドスイッチ１０６によりオフされた拍については、ベンドカーブ番号はＮｕｌｌ値（図６では「−」で示される）となる。
【００５５】
図７は、図４の４０１（＃０）〜４０１（＃３）に対応するベンドカーブの抑揚パターンに対応する例えば４パターンのベンドカーブを記憶するベンドカーブテーブル７００を示す図である。このベンドカーブテーブル７００は、例えば工場設定により図２のＲＯＭ２０２に記憶される。図７において、４０１（＃０）、４０１（＃１）、４０１（＃２）、及び４０１（＃３）はそれぞれ、図４に示されるベンドカーブのパターンに対応し、例えばＲＯＭ２０２上でのそれぞれの先頭の記憶アドレスは、ＢｅｎｄＣｕｒｖｅ［０］、ＢｅｎｄＣｕｒｖｅ［１］、ＢｅｎｄＣｕｒｖｅ［２］、及びＢｅｎｄＣｕｒｖｅ［３］である。Ｒは、ベンドカーブの分解能であり、例えばＲ＝４８である。各ベンドカーブにおいて、アドレスオフセットは、それぞれの上記先頭の記憶アドレスからのオフセット値を示しており、０〜Ｒ−１（例えば０〜４７）までのオフセット値毎にそれぞれ記憶エリアがあり、各記憶エリアにはベンド値が記憶される。このベンド値は、変更前の音高値に対する倍率値であり、例えば、値「１．００」の場合は音高変化がないことを示しており、値「２．００」の場合は音高が２倍にされることを示している。
【００５６】
図８は、本実施形態における電子楽器の制御処理例を示すメインフローチャートである。この制御処理は例えば、図２のＣＰＵ２０１が、ＲＯＭ２０２からＲＡＭ２０３にロードされた制御処理プログラムを実行する動作である。
【００５７】
ＣＰＵ２０１は、まず初期化処理を実行した後（ステップＳ８０１）、ステップＳ８０２からＳ８０８の一連の処理を繰り返し実行する。
【００５８】
この繰返し処理において、ＣＰＵ２０１はまず、スイッチ処理を実行する（ステップＳ８０２）。ここでは、ＣＰＵ２０１は、図２のキースキャナ２０６からの割込みに基づいて、図１の第１のスイッチパネル１０２、第２のスイッチパネル１０３、ベンドスライダ１０５、又はベンドスイッチ１０６の各スイッチ操作に対応する処理を実行する。
【００５９】
次に、ＣＰＵ２０１は、図２のキー・スキャナ２０６からの割込みに基づいて図１の鍵盤１０１の何れかの鍵が操作されたか否かを判定して処理する鍵盤処理を実行する（ステップＳ８０３）。ここでは、ＣＰＵ２０１は、演奏者による何れかの鍵の押鍵又は離鍵の操作に応じて、図２の音源ＬＳＩ２０４に対して、発音開始又は発音停止を指示する楽音制御データ２１６を出力する。
【００６０】
次に、ＣＰＵ２０１は、図１のＬＣＤ１０４に表示すべきデータを処理し、そのデータを、図２のＬＣＤコントローラ２０８を介してＬＣＤ１０４に表示する表示処理を実行する（ステップＳ８０４）。ＬＣＤ１０４に表示されるデータとしては、例えば演奏されるラップ音声出力データ２１７に対応する歌詞とその歌詞に対応するメロディの楽譜や、各種設定情報がある。
【００６１】
次に、ＣＰＵ２０１は、ラップ再生処理を実行する（ステップＳ８０５）。この処理においては、ＣＰＵ２０１が、演奏者の演奏に基づいて図５で説明した制御処理を実行し、ラップデータ２１５を生成して音声合成ＬＳＩ２０５に出力する。
【００６２】
続いて、ＣＰＵ２０１は、音源処理を実行する（ステップＳ８０６）。音源処理において、ＣＰＵ２０１は、音源ＬＳＩ２０４における発音中の楽音のエンベロープ制御等の制御処理を実行する。
【００６３】
最後にＣＰＵ２０１は、演奏者が特には図示しないパワーオフスイッチを押してパワーオフしたか否かを判定する（ステップＳ８０７）。ステップＳ８０７の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ８０２の処理に戻る。ステップＳ８０７の判定がＹＥＳならば、ＣＰＵ２０１は、図８のフローチャートで示される制御処理を終了し、電子鍵盤楽器１００の電源を切る。
【００６４】
図９（ａ）、（ｂ）、及び（ｃ）はそれぞれ、図８のステップＳ８０１の初期化処理、図８のステップＳ８０２のスイッチ処理における後述する図１０のステップＳ１００２のテンポ変更処理、及び同じく図１０のステップＳ１００６のラップ開始処理の詳細例を示すフローチャートである。
【００６５】
まず、図８のステップＳ８０１の初期化処理の詳細例を示す図９（ａ）において、ＣＰＵ２０１は、ＴｉｃｋＴｉｍｅの初期化処理を実行する。本実施形態において、歌詞の進行及び自動伴奏は、ＴｉｃｋＴｉｍｅという時間を単位として進行する。図５の曲データのヘッダチャンク内のＴｉｍｅＤｉｖｉｓｉｏｎ値として指定されるタイムベース値は４分音符の分解能を示しており、この値が例えば４８０ならば、４分音符は４８０ＴｉｃｋＴｉｍｅの時間長を有する。また、図５の曲データのトラックチャンク内の待ち時間ＤｅｌｔａＴｉｍｅ＿１［ｉ］値及びＤｅｌｔａＴｉｍｅ＿２［ｉ］値も、ＴｉｃｋＴｉｍｅの時間単位によりカウントされる。ここで、１ＴｉｃｋＴｉｍｅが実際に何秒になるかは、曲データに対して指定されるテンポによって異なる。今、テンポ値をＴｅｍｐｏ［ビート／分］、上記タイムベース値をＴｉｍｅＤｉｖｉｓｉｏｎとすれば、ＴｉｃｋＴｉｍｅの秒数は、下記（１）式により算出される。
【００６６】
ＴｉｃｋＴｉｍｅ［秒］＝６０／Ｔｅｍｐｏ／ＴｉｍｅＤｉｖｉｓｉｏｎ  （１）
【００６７】
そこで、図９（ａ）のフローチャートで例示される初期化処理において、ＣＰＵ２０１はまず、上記（１０）式に対応する演算処理により、ＴｉｃｋＴｉｍｅ［秒］を算出する（ステップＳ９０１）。なお、テンポ値Ｔｅｍｐｏは、初期状態では図２のＲＯＭ２０２に所定の値、例えば６０［ビート／秒］が記憶されているとする。或いは、不揮発性メモリに、前回終了時のテンポ値が記憶されていてもよい。
【００６８】
次に、ＣＰＵ２０１は、図２のタイマ２１０に対して、ステップＳ９０１で算出したＴｉｃｋＴｉｍｅ［秒］によるタイマ割込みを設定する（ステップＳ９０２）。この結果、タイマ２１０において上記ＴｉｃｋＴｉｍｅ［秒］が経過する毎に、ＣＰＵ２０１に対して歌詞進行、自動伴奏、及びベンド処理のための割込み（以下「自動演奏割込み」と記載）が発生する。従って、この自動演奏割込みに基づいてＣＰＵ２０１で実行される自動演奏割込み処理（後述する図１２）では、１ＴｉｃｋＴｉｍｅ毎に歌詞進行及び自動伴奏を進行させる制御処理が実行されることになる。
【００６９】
また、後述するベンド処理は、１ＴｉｃｋＴｉｍｅをＤ分周した時間単位で実行される。このＤは、図３で説明した、４分音符あたりの分解能を示すタイムベース値ＴｉｍｅＤｉｖｉｓｉｏｎと、図７で説明したベンドカーブテーブル７００の分解能Ｒを用いて、下記（２）式により算出される。
【００７０】
Ｄ＝ＴｉｍｅＤｉｖｉｓｉｏｎ／Ｒ  （２）
【００７１】
例えば前述のように、４分音符（４／４拍子の場合の１拍）が４８０ＴｉｃｋＴｉｍｅであり、Ｒ＝４８であるる場合には、Ｄ＝４８０／Ｒ＝４８０／４８＝１０ＴｉｃｋＴｉｍｅ毎にベンド処理が実行されることになる。
【００７２】
続いて、ＣＰＵ２０１は、図２のＲＡＭ２０３の初期化等のその他初期化処理を実行する（ステップＳ９０３）。その後、ＣＰＵ２０１は、図９（ａ）のフローチャートで例示される図８のステップＳ８０１の初期化処理を終了する。
【００７３】
図９（ｂ）及び（ｃ）のフローチャートについては、後述する。図１０は、図８のステップＳ８０２のスイッチ処理の詳細例を示すフローチャートである。
【００７４】
ＣＰＵ２０１はまず、図１の第１のスイッチパネル１０２内のテンポ変更スイッチにより歌詞進行及び自動伴奏のテンポが変更されたか否かを判定する（ステップＳ１００１）。その判定がＹＥＳならば、ＣＰＵ２０１は、テンポ変更処理を実行する（ステップＳ１００２）。この処理の詳細は、図９（ｂ）を用いて後述する。ステップＳ１００１の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ１００２の処理はスキップする。
【００７５】
次に、ＣＰＵ２０１は、図１の第２のスイッチパネル１０３において何れかのラップ曲が選曲されたか否かを判定する（ステップＳ１００３）。その判定がＹＥＳならば、ＣＰＵ２０１は、ラップ曲読込み処理を実行する（ステップＳ１００４）。この処理は、図５で説明したデータ構造を有する曲データを、図２のＲＯＭ２０２からＲＡＭ２０３に読み込む処理である。これ以降、図５に例示されるデータ構造内のトラックチャンク１又は２に対するデータアクセスは、ＲＡＭ２０３に読み込まれた曲データに対して実行される。ステップＳ１００３の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ１００４の処理はスキップする。
【００７６】
続いて、ＣＰＵ２０１は、図１の第１のスイッチパネル１０２においてラップ開始スイッチが操作されたか否かを判定する（ステップＳ１００５）。その判定がＹＥＳならば、ＣＰＵ２０１は、ラップ開始処理を実行する（ステップＳ１００６）。この処理の詳細は、図９（ｃ）を用いて後述する。ステップＳ１００５の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ１００６の処理はスキップする。
【００７７】
更に、ＣＰＵ２０１は、図１の第１のスイッチパネル１０２においてベンドカーブ設定開始スイッチが操作されたか否かを判定する（ステップＳ１００７）。その判定がＹＥＳならば、ＣＰＵ２０１は、図１のベンドスライダ１０５及びベンドスイッチ１０６によるベンドカーブ設定処理を実行する（ステップＳ１００８）。この処理の詳細は、図１１を用いて後述する。ステップＳ１００７の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ１００８の処理はスキップする。
【００７８】
最後に、ＣＰＵ２０１は、図１の第１のスイッチパネル１０２又は第２のスイッチパネル１０３においてその他のスイッチが操作されたか否かを判定し、各スイッチ操作に対応する処理を実行する（ステップＳ１００９）。その後、ＣＰＵ２０１は、図１０のフローチャートで例示される図８のステップＳ８０２のスイッチ処理を終了する。
【００７９】
図９（ｂ）は、図１０のステップＳ１００２のテンポ変更処理の詳細例を示すフローチャートである。前述したように、テンポ値が変更されるとＴｉｃｋＴｉｍｅ［秒］も変更になる。図９（ｂ）のフローチャートでは、ＣＰＵ２０１は、このＴｉｃｋＴｉｍｅ［秒］の変更に関する制御処理を実行する。
【００８０】
まず、ＣＰＵ２０１は、図８のステップＳ８０１の初期化処理で実行された図９（ａ）のステップＳ９０１の場合と同様にして、前述した（１０）式に対応する演算処理により、ＴｉｃｋＴｉｍｅ［秒］を算出する（ステップＳ９１１）。なお、テンポ値Ｔｅｍｐｏは、図１の第１のスイッチパネル１０２内のテンポ変更スイッチにより変更された後の値がＲＡＭ２０３等に記憶されているものとする。
【００８１】
次に、ＣＰＵ２０１は、図８のステップＳ８０１の初期化処理で実行された図９（ａ）のステップＳ９０２の場合と同様にして、図２のタイマ２１０に対して、ステップＳ９１１で算出したＴｉｃｋＴｉｍｅ［秒］によるタイマ割込みを設定する（ステップＳ９１２）。その後、ＣＰＵ２０１は、図９（ｂ）のフローチャートで例示される図１０のステップＳ１００２のテンポ変更処理を終了する。
【００８２】
図９（ｃ）は、図１０のステップＳ１００６のラップ開始処理の詳細例を示すフローチャートである。
【００８３】
まず、ＣＰＵ２０１は、自動演奏の進行において、ＴｉｃｋＴｉｍｅを単位として、自動演奏開始時からの経過時間を示すためのＲＡＭ２０３上の変数ＥｌａｐｓｅＴｉｍｅの値を０に初期設定する。また、同じくＴｉｃｋＴｉｍｅを単位として、直前のイベントの発生時刻からの相対時間をカウントするためのＲＡＭ２０３上の変数ＤｅｌｔａＴ＿１（トラックチャンク１）及びＤｅｌｔａＴ＿２（トラックチャンク２）の値を共に０に初期設定する。次に、ＣＰＵ２０１は、図５に例示される曲データのトラックチャンク１内の演奏データ組ＤｅｌｔａＴｉｍｅ＿１［ｉ］及びＥｖｅｎｔ＿１［ｉ］（１≦ｉ≦Ｌ−１）の夫々ｉの値を指定するためのＲＡＭ２０３上の変数ＡｕｔｏＩｎｄｅｘ＿１と、同じくトラックチャンク２内の演奏データ組ＤｅｌｔａＴｉｍｅ＿２［ｉ］及びＥｖｅｎｔ＿２［ｉ］（１≦ｉ≦Ｍ−１）の夫々ｉを指定するためのＲＡＭ２０３上の変数ＡｕｔｏＩｎｄｅｘ＿２の各値を共に０に初期設定する。また、ＴｉｃｋＴｉｍｅを単位とする分周時間を示すＲＡＭ２０３上の変数ＤｉｖｉｄｉｎｇＴｉｍｅの値を、前述の（２）式で算出される値Ｄを用いてＤ−１に設定する。更に、図７で説明したベンドカーブテーブル７００上のオフセットアドレスを示すＲＡＭ２０３上の変数ＢｅｎｄＡｄｒｅｓｓＯｆｆｓｅｔの値を、前述した同じく図７で説明した分解能Ｒを用いて、Ｒ−１の値に初期設定する。例えばＲ−１＝４８−１＝４７である（以上、ステップＳ９２１）。これにより、図５の例では、初期状態としてまず、トラックチャンク１内の先頭の演奏データ組ＤｅｌｔａＴｉｍｅ＿１［０］とＥｖｅｎｔ＿１［０］、及びトラックチャンク２内の先頭の演奏データ組ＤｅｌｔａＴｉｍｅ＿２［０］とＥｖｅｎｔ＿２［０］がそれぞれ参照される。
【００８４】
次に、ＣＰＵ２０１は、現在のラップ位置を指示するＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘの値を０に初期設定する（ステップＳ９２２）。
【００８５】
更に、ＣＰＵ２０１は、歌詞及び伴奏の進行をするか（＝１）しないか（＝０）を示すＲＡＭ２０３上の変数ＳｏｎｇＳｔａｒｔの値を１（進行する）に初期設定する（ステップＳ９２３）。
【００８６】
その後、ＣＰＵ２０１は、演奏者が、図１の第１のスイッチパネル１０２によりラップ歌詞の再生に合わせて伴奏の再生を行う設定を行っているか否かを判定する（ステップＳ９２４）。
【００８７】
ステップＳ９２４の判定がＹＥＳならば、ＣＰＵ２０１は、ＲＡＭ２０３上の変数Ｂａｎｓｏｕの値を１（伴奏有り）に設定する（ステップＳ９２５）。逆に、ステップＳ９２４の判定がＮＯならば、ＣＰＵ２０１は、変数Ｂａｎｓｏｕの値を０（伴奏無し）に設定する（ステップＳ９２６）。ステップＳ９２５又はＳ９２６の処理の後、ＣＰＵ２０１は、図９（ｃ）のフローチャートで示される図１０のステップＳ１００６のラップ開始処理を終了する。
【００８８】
図１１は、図１０のステップＳ１００８のベンドカーブ設定処理の詳細例を示すフローチャートである。まず、ＣＰＵ２０１は、例えば１６拍（４／４拍子の場合は４小節）単位の設定開始位置（小節番号）を指定する（ステップＳ１１０１）。ベンドカーブ設定処理は、自動演奏の進行とともにリアルタイムで実行されるようにすることができるため、初期値は例えば０小節目であり、１６拍ごとの設定が完了する毎に、自動的に次の１６小節目、３２小節目、・・・が順次指定されるようにしてよい。また、現在の自動演奏中の拍に対しても設定の変更を行えるようにするために、ユーザは、例えば第１のスイッチパネル１０２上の特には図示しないスイッチにより、現在演奏中の拍を含む連続する１６拍を設定開始位置として指定するようにすることもできる。
【００８９】
次に、ＣＰＵ２０１は、ステップＳ１１０１で指定された１６拍（４小節分）分のラップの歌詞データをＲＯＭ２０２から取得する（ステップＳ１１０２）。ＣＰＵ２０１は、このように取得されたラップの歌詞データを、ユーザによるベンドカーブ指定を支援するために、例えば図２のＬＣＤ１０４に表示させることができる。
【００９０】
次に、ＣＰＵ２０１は、連続する１６拍中の拍位置の初期値を０とする（ステップＳ１１０３）。
【００９１】
その後、ＣＰＵ２０１は、ステップＳ１１０３で連続する１６拍中の拍位置を示すＲＡＭ２０３上の変数ｉの値を０に初期設定した後、ステップＳ１１０６でｉの値を１ずつインクリメントしながら、ステップＳ１１０７でｉの値が１５を超えたと判断するまでステップＳ１１０４とステップＳ１１０５（＃０から＃３の何れか）を１６拍分繰り返し実行する。
【００９２】
上記繰返し処理において、まずＣＰＵ２０１は、図４で説明したベンドスライダ１０５上の拍位置ｉのスライダのスライダ値（ｓ）を、図２のベンドスライダ１０５からキースキャナ２０６を介して読み込み、その値を判定する（ステップＳ１１０４）。
【００９３】
次に、ＣＰＵ２０１は、拍位置ｉのスライダ値がｓ＝０の場合には、図４又は図７のベンドカーブ４０１（＃０）の番号０を、図６のベンドカーブ設定テーブル６００のベンドカーブ番号項目に記憶させる。このときの小節番号と拍番号の各項目の値は、下記（３）式及び（４）式により算出され記憶される（以上、ステップＳ１１０５（＃０））。
【００９４】
小節番号＝（Ｓ１１０１で指定の小節番号）＋（４／ｉの整数部）  （３）
拍番号＝拍位置ｉ/４の余り  （４）
【００９５】
また、ＣＰＵ２０１は、拍位置ｉのスライダ値がｓ＝１の場合には、図４又は図７のベンドカーブ４０１（＃１）の番号１を、図６のベンドカーブ設定テーブル６００のベンドカーブ番号項目に記憶させる。このときの小節番号と拍番号の各項目の値は、上記（３）式及び（４）式により算出され記憶される（以上、ステップＳ１１０５（＃１））。
【００９６】
また、ＣＰＵ２０１は、拍位置ｉのスライダ値がｓ＝２の場合には、図４又は図７のベンドカーブ４０１（＃１）の番号２を、図６のベンドカーブ設定テーブル６００のベンドカーブ番号項目に記憶させる。このときの小節番号と拍番号の各項目の値は、上記（３）式及び（４）式により算出され記憶される（以上、ステップＳ１１０５（＃２））。
【００９７】
また、ＣＰＵ２０１は、拍位置ｉのスライダ値がｓ＝３の場合には、図４又は図７のベンドカーブ４０１（＃１）の番号３を、図６のベンドカーブ設定テーブル６００のベンドカーブ番号項目に記憶させる。このときの小節番号と拍番号の各項目の値は、上記（３）式及び（４）式により算出され記憶される（以上、ステップＳ１１０５（＃３））。
【００９８】
ＣＰＵ２０１は、上記処理の繰返しにおいて、ステップＳ１１０７で変数ｉの値が１５に達したと判定した場合には、図１１のフローチャートの処理を終了し、図１０のステップＳ１００８のベンドカーブ設定処理を終了する。
【００９９】
図１２は、図２のタイマ２１０においてＴｉｃｋＴｉｍｅ［秒］毎に発生する割込み（図９（ａ）のステップＳ９０２又は図９（ｂ）のステップＳ９１２を参照）に基づいて実行される自動演奏割込み処理の詳細例を示すフローチャートである。以下の処理は、図５に例示される曲データのトラックチャンク１及び２の演奏データ組に対して実行される。
【０１００】
まず、ＣＰＵ２０１は、トラックチャンク１に対応する一連の処理（ステップＳ１２０１からＳ１２０７）を実行する。始めにＣＰＵ２０１は、ＳｏｎｇＳｔａｒｔ値が１であるか否か、即ち歌詞及び伴奏の進行が指示されているか否かを判定する（ステップＳ１２０１）。
【０１０１】
ＣＰＵ２０１は、歌詞及び伴奏の進行が指示されていないと判定した（ステップＳ１２０１の判定がＮＯである）場合には、歌詞及び伴奏の進行は行わずに図１２のフローチャートで例示される自動演奏割込み処理をそのまま終了する。
【０１０２】
ＣＰＵ２０１は、歌詞及び伴奏の進行が指示されていると判定した（ステップＳ１２０１の判定がＹＥＳである）場合にはまず、自動演奏の開始時からのＴｉｃｋＴｉｍｅを単位とする経過時間を示すＲＡＭ２０３上の変数ＥｌａｐｓｅＴｉｍｅの値を１インクリメントする。図１２の自動演奏割込み処理はＴｉｃｋＴｉｍｅ秒毎に発生するため、この割込みの発生毎に１ずつ累算した値が、ＥｌａｐｓｅＴｉｍｅの値となる。この変数ＥｌａｐｓｅＴｉｍｅの値は、後述する図１４のベンド処理のステップＳ１４０６において、現在の小節番号と拍番号を算出するために使用される。
【０１０３】
次に、ＣＰＵ２０１は、トラックチャンク１に関する前回のイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿１値が、ＡｕｔｏＩｎｄｅｘ＿１値が示すこれから実行しようとする演奏データ組の待ち時間ＤｅｌｔａＴｉｍｅ＿１［ＡｕｔｏＩｎｄｅｘ＿１］に一致したか否かを判定する（ステップＳ１２０３）。
【０１０４】
ステップＳ１２０３の判定がＮＯならば、ＣＰＵ２０１は、トラックチャック１に関して、前回のイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿１値を＋１インクリメントさせて、今回の割込みに対応する１ＴｉｃｋＴｉｍｅ単位分だけ時刻を進行させる（ステップＳ１２０４）。その後、ＣＰＵ２０１は、後述するステップＳ１２０８に移行する。
【０１０５】
ステップＳ１２０３の判定がＹＥＳになると、ＣＰＵ２０１は、トラックチャック１に関して、ＡｕｔｏＩｎｄｅｘ＿１値が示す演奏データ組のイベントＥｖｅｎｔ［ＡｕｔｏＩｎｄｅｘ＿１］を実行する（ステップＳ１２０５）。このイベントは、歌詞データを含むラップイベントである。
【０１０６】
続いて、ＣＰＵ２０１は、トラックチャンク１内の次に実行すべきラップイベントの位置を示すＡｕｔｏＩｎｄｅｘ＿１値を、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘに格納する（ステップＳ１２０５）。
【０１０７】
更に、ＣＰＵ２０１は、トラックチャンク１内の演奏データ組を参照するためのＡｕｔｏＩｎｄｅｘ＿１値を＋１インクリメントする（ステップＳ１２０６）。
【０１０８】
また、ＣＰＵ２０１は、トラックチャンク１に関して今回参照したラップイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿１値を０にリセットする（ステップＳ１２０７）。その後、ＣＰＵ２０１は、ステップＳ１２０８の処理に移行する。
【０１０９】
次に、ＣＰＵ２０１は、トラックチャンク２に対応する一連の処理（ステップＳ１２０８からＳ１２１４）を実行する。始めにＣＰＵ２０１は、トラックチャンク２に関する前回のイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿２値が、ＡｕｔｏＩｎｄｅｘ＿２値が示すこれから実行しようとする演奏データ組の待ち時間ＤｅｌｔａＴｉｍｅ＿２［ＡｕｔｏＩｎｄｅｘ＿２］に一致したか否かを判定する（ステップＳ１２０８）。
【０１１０】
ステップＳ１２０８の判定がＮＯならば、ＣＰＵ２０１は、トラックチャック２に関して、前回のイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿２値を＋１インクリメントさせて、今回の割込みに対応する１ＴｉｃｋＴｉｍｅ単位分だけ時刻を進行させる（ステップＳ１２０９）。その後、ＣＰＵ２０１は、ステップＳ１２１１のベンド処理に進む。
【０１１１】
ステップＳ１２０８の判定がＹＥＳならば、ＣＰＵ２０１は、伴奏再生を指示するＲＡＭ２０３上の変数Ｂａｎｓｏｕの値が１（伴奏有り）であるか否かを判定する（ステップＳ１２１０）（図９（ｃ）のステップＳ９２４からＳ９２６を参照）。
【０１１２】
ステップＳ１２１０の判定がＹＥＳならば、ＣＰＵ２０１は、ＡｕｔｏＩｎｄｅｘ＿２値が示すトラックチャック２に関する伴奏に関するイベントＥｖｅｎｔ＿２［ＡｕｔｏＩｎｄｅｘ＿２］を実行する（ステップＳ１２１１）。ここで実行されるイベントＥｖｅｎｔ＿２［ＡｕｔｏＩｎｄｅｘ＿２］が、例えばノートオンイベントであれば、そのノートオンイベントにより指定されるキーナンバー及びベロシティにより、図２の音源ＬＳＩ２０４に対して伴奏用の楽音の発音命令が発行される。一方、イベントＥｖｅｎｔ＿２［ＡｕｔｏＩｎｄｅｘ＿２］が、例えばノートオフイベントであれば、そのノートオフイベントにより指定されるキーナンバー及びベロシティにより、図２の音源ＬＳＩ２０４に対して発音中の伴奏用の楽音の消音命令が発行される。
【０１１３】
一方、ステップＳ１２１０の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ１２１１をスキップすることにより、今回の伴奏に関するイベントＥｖｅｎｔ＿２［ＡｕｔｏＩｎｄｅｘ＿２］は実行せずに、歌詞に同期した進行のために、次のステップＳ１２１２の処理に進んで、イベントを進める制御処理のみを実行する。
【０１１４】
ステップＳ１２１１の後又はステップＳ１２１０の判定がＮＯの場合に、ＣＰＵ２０１は、トラックチャンク２上の伴奏データのための演奏データ組を参照するためのＡｕｔｏＩｎｄｅｘ＿２値を＋１インクリメントする（ステップＳ１２１２）。
【０１１５】
また、ＣＰＵ２０１は、トラックチャンク２に関して今回実行したイベントの発生時刻からの相対時刻を示すＤｅｌｔａＴ＿２値を０にリセットする（ステップＳ１２１３）。
【０１１６】
そして、ＣＰＵ２０１は、ＡｕｔｏＩｎｄｅｘ＿２値が示す次に実行されるトラックチャンク２上の演奏データ組の待ち時間ＤｅｌｔａＴｉｍｅ＿２［ＡｕｔｏＩｎｄｅｘ＿２］が０であるか否か、即ち、今回のイベントと同時に実行されるイベントであるか否かを判定する（ステップＳ１２１４）。
【０１１７】
ステップＳ１２１４の判定がＮＯならば、ＣＰＵ２０１は、ステップＳ１２１１のベンド処理に進む。
【０１１８】
ステップＳ１２１４の判定がＹＥＳならば、ＣＰＵ２０１は、ステップＳ１２１０に戻って、ＡｕｔｏＩｎｄｅｘ＿２値が示すトラックチャンク２上で次に実行される演奏データ組のイベントＥｖｅｎｔ＿２［ＡｕｔｏＩｎｄｅｘ＿２］に関する制御処理を繰り返す。ＣＰＵ２０１は、今回同時に実行される回数分だけ、ステップＳ１２１０からＳ１２１４の処理を繰り返し実行する。以上の処理シーケンスは、例えば和音等のように複数のノートオンイベントが同時タイミングで発音されるような場合に実行される。
【０１１９】
ステップＳ１２０９の処理の後、又はステップＳ１２１４の判定がＮＯの場合に、ＣＰＵ２０１は、ベンド処理を実行する（ステップＳ１２１１）。ここでは、図１０のステップＳ１００８のベンドカーブ設定処理により図６に例示されるベンドカーブ設定テーブル６００に設定された小節毎および小節内の拍毎のベンドカーブの設定に基づいて、実際に図３の音声合成部３０２に対してベンドが実行される図３のベンド処理部３２０に対応する処理が実行される。この処理の詳細については、図１４のフローチャートを用いて後述する。このステップＳ１２０９の処理の後、図１２のフローチャートで示される今回の自動演奏割込み処理を終了する。
【０１２０】
図１３は、図８のステップＳ８０５のラップ再生処理の詳細例を示すフローチャートである。
【０１２１】
まずＣＰＵ２０１は、図１２の自動演奏割込み処理におけるステップＳ１２０５で、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘに、値がセットされてＮｕｌｌ値でなくなっているか否かを判定する（ステップＳ１３０１）。このＳｏｎｇＩｎｄｅｘ値は、現在のタイミングがラップ音声の再生タイミングになっているか否かを示すものである。
【０１２２】
ステップＳ１３０１の判定がＹＥＳになった、即ち現時点がラップ再生のタイミングになったら、ＣＰＵ２０１は、図８のステップＳ８０３の鍵盤処理により演奏者による図１の鍵盤１０１上で新たな押鍵が検出されているか否かを判定する（ステップＳ１３０２）。
【０１２３】
ステップＳ１３０２の判定がＹＥＳならば、ＣＰＵ２０１は、演奏者による押鍵により指定された音高を、発声音高として特には図示しないレジスタ又はＲＡＭ２０３上の変数にセットする（ステップＳ１３０３）。
【０１２４】
続いて、ＣＰＵ２０１は、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘが示すＲＡＭ２０３上の曲データのトラックチャンク１上のラップイベントＥｖｅｎｔ＿１［ＳｏｎｇＩｎｄｅｘ］から、ラップの歌詞文字列を読み出す。ＣＰＵ２０１は、読み出した歌詞文字列に対応するラップ音声出力データ２１７を、ステップＳ１３０３で設定された押鍵に基づく音高がセットされた発声音高で発声させるためのラップデータ２１５を生成し、音声合成ＬＳＩ２０５に対して発声処理を指示する（ステップＳ１３０５）。音声合成ＬＳＩ２０５は、図３で説明した統計的音声合成処理を実行することにより、ＲＡＭ２０３から曲データとして指定される歌詞を、演奏者が鍵盤１０１上で押鍵した鍵の音高にリアルタイムに対応して歌うラップ音声出力データ２１７を合成して出力する。
【０１２５】
一方、ステップＳ１３０１の判定により現時点がラップ再生のタイミングになったと判定されると共に、ステップＳ１３０２の判定がＮＯ、即ち現時点で新規押鍵が検出されていないと判定された場合には、ＣＰＵ２０１は、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘが示すＲＡＭ２０３上の曲データのトラックチャンク１上のラップイベントＥｖｅｎｔ＿１［ＳｏｎｇＩｎｄｅｘ］から音高のデータを読み出し、この音高を発声音高として特には図示しないレジスタ又はＲＡＭ２０３上の変数にセットする（ステップＳ１３０４）。
【０１２６】
ラップ演奏の場合、音高は、メロディーの音高に連動していてもよいし、連動していなくてもよい。
【０１２７】
その後、ＣＰＵ２０１は、前述したステップＳ１３０５の処理を実行することにより、ラップイベントＥｖｅｎｔ＿１［ＳｏｎｇＩｎｄｅｘ］から読み出した歌詞文字列に対応するラップ音声出力データ２１７を、ステップＳ１３０４で設定された発声音高で発声させるためのラップデータ２１５を生成し、音声合成ＬＳＩ２０５に対して発声処理を指示する（ステップＳ１３０５）。音声合成ＬＳＩ２０５は、図３で説明した統計的音声合成処理を実行することにより、演奏者が鍵盤１０１上でいずれの鍵も押鍵していなくても、ＲＡＭ２０３から曲データとして指定される歌詞を、同じく曲データとしてデフォルト指定されている音高に対応して歌うラップ音声出力データ２１７を合成して出力する。
【０１２８】
ステップＳ１３０５の処理の後、ＣＰＵ２０１は、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘが示す再生を行ったラップ位置を、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘ＿ｐｒｅに記憶させる（ステップＳ１３０６）。
【０１２９】
更に、ＣＰＵ２０１は、変数ＳｏｎｇＩｎｄｅｘの値をＮｕｌｌ値にクリアして、これ以降のタイミングをラップ再生のタイミングでない状態にする（ステップＳ１３０７）。その後、ＣＰＵ２０１は、図１３のフローチャートで示される図８のステップＳ８０５のラップ再生処理を終了する。
【０１３０】
前述したステップＳ１３０１の判定がＮＯである、即ち現時点がラップ再生のタイミングではないときには、ＣＰＵ２０１は、図８のステップＳ８０３の鍵盤処理により演奏者による図１の鍵盤１０１上で新たな押鍵が検出されているか否かを判定する（ステップＳ１３０８）。
【０１３１】
ステップＳ１３０８の判定がＮＯならば、ＣＰＵ２０１はそのまま、図１３のフローチャートで示される図８のステップＳ８０５のラップ再生処理を終了する。
【０１３２】
ステップＳ１３０８の判定がＹＥＳならば、ＣＰＵ２０１は、現在音声合成ＬＳＩ２０５が発声処理中の、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘ＿ｐｒｅが示すＲＡＭ２０３上の曲データのトラックチャンク１上のラップイベントＥｖｅｎｔ＿１［ＳｏｎｇＩｎｄｅｘ＿ｐｒｅ］の歌詞文字列に対応するラップ音声出力データ２１７の音高を、ステップＳ１３０８で検出された演奏者の押鍵に基づく音高に変更することを指示するラップデータ２１５を生成し、音声合成ＬＳＩ２０５に出力する（ステップＳ１３０９）。このとき、ラップデータ２１５において、既に発声処理中の歌詞の音素のうち後半部分の音素、例えば歌詞文字列「き」であればそれを構成する音素列「／ｋ／」「／ｉ／」のうちの後半の「／ｉ／」が始まるフレームが、音高への変更の開始位置にセットされる。音声合成ＬＳＩ２０５は、図３を用いて説明した統計的音声合成処理を実行することにより、現在発声中のラップ音声の音高を、演奏者が鍵盤１０１上で押鍵した鍵の音高にリアルタイムに変更して歌うラップ音声出力データ２１７を合成して出力する。
【０１３３】
以上のステップＳ１３０９の処理により、現在の押鍵タイミングの直前の本来のタイミングから発声されているラップ音声出力データ２１７の発声がその音高が演奏者により演奏された音高に変更されて、現在の押鍵タイミングでその発声を継続させることが可能となる。
【０１３４】
ステップＳ１３０９の処理の後、ＣＰＵ２０１は、図１３のフローチャートで示される図８のステップＳ８０５のラップ再生処理を終了する。
【０１３５】
図１４は、図１２の自動演奏割込み処理におけるステップＳ１２１１のベンド処理の詳細処理例を示すフローチャートである。まず、ＣＰＵ２０１は、ＲＡＭ２０３内の変数ＤｉｖｉｄｉｎｇＴｉｍｅの値を１インクリメントする（ステップＳ１４０１）。
【０１３６】
その後、ＣＰＵ２０１は、変数ＤｉｖｉｄｉｎｇＴｉｍｅの値が前述した（２）式で算出される値Ｄに一致したか否かを判定する（ステップＳ１４０２）。ステップＳ１４０２の判定がＮＯならば、ＣＰＵ２０１は、図１４のフローチャートで例示される図１２のステップＳ１２１１のベンド処理をそのまま終了する。ＤはＴｉｃｋＴｉｍｅを何分周するかを示す値であり、従って、図１２の自動演奏割込み処理は１ＴｉｃｋＴｉｍｅ毎に実行されるが、その中から呼び出される図１４のベンド処理の実質的な処理はＤＴｉｃｋＴｉｍｅ毎に実行されることになる。例えば、Ｄ＝１０とすれば、ベンド処理は１０ＴｉｃｋＴｉｍｅ毎に実行される。前述した図９（ｃ）のラップ開始処理のステップＳ９２１で、変数ＤｉｖｉｄｉｎｇＴｉｍｅの値はＤ−１に初期設定されているため、自動演奏の開始時の最初の自動演奏割込み処理の実行時には、ステップＳ１４０１の処理の後、ステップＳ１４０２の判定は必ずＹＥＳとなる。
【０１３７】
ステップＳ１４０２の判定がＹＥＳとなると、ＣＰＵ２０１は、変数ＤｉｖｉｄｉｎｇＴｉｍｅの値を０にリセットする（ステップＳ１４０３）。
【０１３８】
次に、ＣＰＵ２０１は、ＲＡＭ２０３上の変数ＢｅｎｄＡｄｒｅｓｓＯｆｆｓｅｔの値が１つのベンドカーブ内の最終アドレスＲ−１に一致しているか否かを判定する（ステップＳ１４０４）。ここでは、１つの拍に対するベンド処理が終了したか否かが判定される。前述した図９（ｃ）のラップ開始処理のステップＳ９２１で、変数ＢｅｎｄＡｄｒｅｓｓＯｆｆｓｅｔの値はＲ−１に初期設定されているため、自動演奏の開始時の最初の自動演奏割込み処理の実行時にはステップＳ１４０４の判定が必ずＹＥＳになる。
【０１３９】
ステップＳ１４０４の判定がＹＥＳになると、ＣＰＵ２０１は、変数ＢｅｎｄＡｄｒｅｓｓＯｆｆｓｅｔの値を、ベンドカーブの先頭を示す値０（図７参照）にリセットする（ステップＳ１４０５）。
【０１４０】
その後、ＣＰＵ２０１は、変数ＥｌａｐｓｅＴｉｍｅの値から、現在の小節番号と拍番号を算出する（ステップＳ１４０６）。４／４拍子の場合、１拍のＴｉｃｋＴｉｍｅ数はＴｉｍｅＤｉｖｉｓｉｏｎの値で与えられるため、変数ＥｌａｐｓｅＴｉｍｅをＴｉｍｅＤｉｖｉｓｉｏｎの値で割り、更にその結果を４（１小節あたりの拍数）で割ることにより、現在の小節番号と拍番号を算出することができる。
【０１４１】
次に、ＣＰＵ２０１は、図６に例示されるベンドカーブ設定テーブル６００から、ステップＳ１４０６で算出した小節番号と拍番号に対応するベンドカーブ番号を取得し、その値をＲＡＭ２０３上の変数ＣｕｒｖｅＮｕｍにセットする（ステップＳ１４０７）。
【０１４２】
一方、ＲＡＭ２０３上の変数ＢｅｎｄＡｄｒｅｓｓＯｆｆｓｅｔの値が１つのベンドカーブ内の最終アドレスＲ−１に達しておらず、ステップＳ１４０４の判定がＮＯの場合には、ＣＰＵ２０１は、ベンドカーブ内のオフセットアドレスを示す変数ＢｅｎｄＡｄｒｅｓｓＯｆｆｓｅｔの値を１インクリメントする（ステップＳ１４０９）。
【０１４３】
次に、ＣＰＵ２０１は、今回又は前回以前の自動演奏割込み処理でのステップＳ１４０７の実行により、変数ＣｕｒｖｅＮｕｍにデータがベンドカーブ番号が得られているか否かを判定する（ステップＳ１４０８）。
【０１４４】
ステップＳ１４０８の判定がＹＥＳならば、ＣＰＵ２０１は、変数ＣｕｒｖｅＮｕｍに得られているベンドカーブ番号に対応するＲＯＭ２０２の当該ベンドカーブデータの先頭アドレスＢｅｎｄＣｕｒｖｅ［ＣｕｒｖｅＮｕｍ］に、変数ＢｅｎｄＡｄｒｅｓｓＯｆｆｓｅｔに得られているオフセット値を加算して得られるベンドカーブテーブル７００のアドレスからベンド値を取得する（図７参照）（ステップＳ１４１０）。
【０１４５】
最後に、ＣＰＵ２０１は、図１３のステップＳ１３０９で説明した場合と同様に、現在音声合成ＬＳＩ２０５が発声処理中の、ＲＡＭ２０３上の変数ＳｏｎｇＩｎｄｅｘ＿ｐｒｅが示すＲＡＭ２０３上の曲データのトラックチャンク１上のラップイベントＥｖｅｎｔ＿１［ＳｏｎｇＩｎｄｅｘ＿ｐｒｅ］の歌詞文字列に対応するラップ音声出力データ２１７の音高を、ステップＳ１４１０で取得されたベンド値から算出される音高に変更することを指示するラップデータ２１５を生成し、音声合成ＬＳＩ２０５に出力する。その後、ＣＰＵ２０１は、図１４のフローチャートで例示される図１２のステップＳ１２１１のベンド処理を終了する。
【０１４６】
変数ＣｕｒｖｅＮｕｍにベンドカーブ番号が得られておらずステップＳ１４０８の判定がＮＯならば、ユーザはその拍に対してはベンドカーブの設定を無効にしたので、ＣＰＵ２０１は、そのまま図１４のフローチャートで例示される図１２のステップＳ１２１１のベンド処理を終了する。
【０１４７】
以上のようにして、本実施形態では、拍毎に、ユーザによりリアルタイムで又は予めその拍に対して指定されたベンドカーブに対応するベンド処理が、ラップ音に対して実行されるようにすることが可能となる。
【０１４８】
以上説明した実施形態に加えて、図３のベンド処理部３２０は、拍と拍の接続部分で異なるベンドカーブが指定されたような場合に、ベンドカーブによって変更される前の拍の最後の音高と今回の拍の最初の音高とが不連続にならないように、前の拍の最後の音高を引き継ぐか、両方の音高を時間的に補間するかの処理を行うようにすることができる。これにより、異音の発生等を抑制した良い音質のラップ音を再生することが可能となる。
【０１４９】
以上説明した実施形態では、ユーザは例えば連続する１６拍（４／４拍子の場合は４小節）内で拍毎にベンドカーブを設定するように実施されているが、１６拍分のベンドカーブのセットを一括して指定するようなユーザインタフェースが実施されてもよい。これにより、有名なラップ歌手のラップ演奏をそのまま模擬して指定するようなことが簡単に行えるようになる。
【０１５０】
また、小節の先頭などの拍の連続する所定数（例えば４拍）毎に又はランダムに、ベンドカーブを変化して抑揚を強調するような強調手段を更に備えることもできる。これにより、より多彩なラップ表現が可能となる。
【０１５１】
上述の実施形態では、ベンド処理が、ラップ音声の音高に対してピッチベンドとして実行されたが、音高以外の、例えば音の強さや音色などに対して実行されてもよい。これにより、より多彩なラップ表現が可能となる。
【０１５２】
上述の実施形態では、抑揚パターンの指定がラップ音声に対して行われたが、ラップ音声以外の楽器音の音楽情報に対して実行されてもよい。
【０１５３】
図３及び図４を用いて説明したＨＭＭ音響モデルを採用した統計的音声合成処理の第１の実施形態では、特定の歌い手や歌唱スタイルなどの微妙な音楽表現を再現することが可能となり、接続歪みのない滑らかな音声音質を実現することが可能となる。更に、学習結果３１５（モデルパラメータ）の変換により、別のラップ歌手への適応や、多様な声質や感情を表現することが可能となる。更に、ＨＭＭ音響モデルにおける全てのモデルパラメータを、学習用ラップデータ３１１及び学習用ラップ音声データ３１２からから自動学習できることにより、特定の歌い手の特徴をＨＭＭ音響モデルとして獲得し、合成時にそれらの特徴を再現するような音声合成システムを自動的に構築することが可能となる。音声の基本周波数や長さは楽譜のメロディやテンポに従うものであり、ピッチの時間変化やリズムの時間構造を楽譜から一意に定めることもできるが、そこから合成されるラップ音声は単調で機械的なものになり，ラップ音声としての魅力に欠けるものである。実際のラップ音声には，楽譜通りの画一化されたものだけではなく，声質のほかに声の高さやそれらの時間的な構造の変化により、それぞれの歌い手独自のスタイルが存在している。ＨＭＭ音響モデルを採用する統計的音声合成処理の第１の実施形態では、ラップ音声におけるスペクトル情報とピッチ情報の時系列変化をコンテキストに基づいてモデル化することができ、さらに楽譜情報を考慮することで、実際のラップ音声により近い音声再生が可能となる。更に、統計的音声合成処理の第１の実施形態で採用されるＨＭＭ音響モデルは、あるメロディに沿った歌詞を発声する際、歌い手の声帯の振動や声道特性における音声の音響特徴量系列がどのような時間変化をしながら発声されるか、という生成モデルに相当する。更に、統計的音声合成処理の第１の実施形態において、音符と音声の「ずれ」のコンテキストを含むＨＭＭ音響モデルを用いることにより、歌い手の発声特性に依存して複雑に変化する傾向を有する歌唱法を正確に再現できるラップ音声の合成が実現される。このようなＨＭＭ音響モデルを採用する統計的音声合成処理の第１の実施形態の技術が、例えば電子鍵盤楽器１００によるリアルタイム演奏の技術と融合されることにより、素片合成方式等による従来の電子楽器では不可能であった、モデルとなる歌い手の歌唱法及び声質を正確に反映させることのでき、まるでそのラップ歌手が実際にラップを行っているようなラップ音声の演奏を、電子鍵盤楽器１００の鍵盤演奏等に合わせて、実現することが可能となる。
【０１５４】
図３及び図５を用いて説明したＤＮＮ音響モデルを採用した統計的音声合成処理の第２の実施形態では、言語特徴量系列と音響特徴量系列の関係の表現として、統計的音声合成処理の第１の実施形態における決定木に基づくコンテキストに依存したＨＭＭ音響モデルが、ＤＮＮに置き換えられる。これにより、決定木では表現することが困難な複雑な非線形変換関数によって言語特徴量系列と音響特徴量系列の関係を表現することが可能となる。また、決定木に基づくコンテキストに依存したＨＭＭ音響モデルでは、決定木に基づいて対応する学習データも分類されるため、各コンテキストに依存したＨＭＭ音響モデルに割り当てられる学習データが減少してしまう。これに対し、ＤＮＮ音響モデルでは学習データ全体から単一のＤＮＮを学習するため、学習データを効率良く利用することが可能となる。このため、ＤＮＮ音響モデルはＨＭＭ音響モデルよりも高精度に音響特徴量を予測することが可能となり、合成音声の自然性を大幅に改善することが可能となる。更に、ＤＮＮ音響モデルでは、フレームに関する言語特徴量系列を利用可能することが可能となる。即ち、ＤＮＮ音響モデルでは、予め音響特徴量系列と言語特徴量系列の時間的な対応関係が決められるため、ＨＭＭ音響モデルでは考慮することが困難であった「現在の音素の継続フレーム数」、「現在のフレームの音素内位置」などのフレームに関する言語特徴量を利用することが可能となる。これにより、フレームに関する言語特徴量を用いることで、より詳細な特徴をモデル化することが可能となり，合成音声の自然性を改善することが可能となる。このようなＤＮＮ音響モデルを採用する統計的音声合成処理の第２の実施形態の技術が、例えば電子鍵盤楽器１００によるリアルタイム演奏の技術と融合されることにより、鍵盤演奏等に基づくラップ音声の演奏を、モデルとなるラップ歌手の歌唱法及び声質に更に自然に近づけることが可能となる。
【０１５５】
以上説明した実施形態では、音声合成方式として統計的音声合成処理の技術を採用することにより、従来の素片合成方式に比較して格段に少ないメモリ容量を実現することが可能となる。例えば、素片合成方式の電子楽器では、音声素片データのために数百メガバイトに及ぶ記憶容量を有するメモリが必要であったが、本実施形態では、図３の学習結果３１５のモデルパラメータを記憶させるために、わずか数メガバイトの記憶容量を有するメモリのみで済む。このため、より低価格の電子楽器を実現することが可能となり、高音質のラップ演奏システムをより広いユーザ層に利用してもらうことが可能となる。
【０１５６】
更に、従来の素片データ方式では、素片データの人手による調整が必要なため、ラップ演奏のためのデータの作成に膨大な時間（年単位）と労力を必要としていたが、本実施形態によるＨＭＭ音響モデル又はＤＮＮ音響モデルのための学習結果３１５のモデルパラメータの作成では、データの調整がほとんど必要ないため、数分の一の作成時間と労力で済む。これによっても、より低価格の電子楽器を実現することが可能となる。また、一般ユーザが、クラウドサービスとして利用可能なサーバコンピュータ３００や或いは音声合成ＬＳＩ２０５に内蔵された学習機能を使って、自分の声、家族の声、或いは有名人の声等を学習させ、それをモデル音声として電子楽器でラップ演奏させることも可能となる。この場合にも、従来よりも格段に自然で高音質なラップ演奏を、より低価格の電子楽器として実現することが可能となる。
【０１５７】
以上説明した実施形態は、電子鍵盤楽器について本発明を実施したものであるが、本発明は電子弦楽器等他の電子楽器にも適用することができる。
【０１５８】
また、図３の発声モデル部３０８として採用可能な音声合成方式は、ケプストラム音声合成方式には限定されず、ＬＳＰ音声合成方式をはじめとして様々な音声合成方式を採用することが可能である。
【０１５９】
更に、以上説明した実施形態では、ＨＭＭ音響モデルを用いた統計的音声合成処理の第１の実施形態又はＤＮＮ音響モデルを用いた遠後の第２の実施形態の音声合成方式について説明したが、本発明はこれに限られるものではなく、例えばＨＭＭとＤＮＮを組み合わせた音響モデル等、統計的音声合成処理を用いた技術であればどのような音声合成方式が採用されてもよい。
【０１６０】
以上説明した実施形態では、ラップの歌詞情報は曲データとして与えられたが、演奏者がリアルタイムに歌う内容を音声認識して得られるテキストデータがラップの歌詞情報としてリアルタイムに与えられてもよい。
【０１６１】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
曲データの第１タイミングから第２タイミングの前までの第１区間が対応付けられる第１操作子を含む複数の操作子と、
少なくとも１つのプロセッサと、
を備え、前記少なくとも１つのプロセッサは、
前記第１操作子へのユーザ操作に基づいて、前記第１区間に付与する抑揚のパターンを決定し、
決定された前記パターンの抑揚で、前記第１区間に含まれるデータが示す歌詞が歌われるように、前記第１区間に含まれるデータを出力する、
情報処理装置。
（付記２）
前記複数の操作子は、前記第１操作子と隣接して配置される第２操作子を有し、
前記第２操作子は、前記曲データに含まれる前記第２タイミングから第３タイミングの前までの第２区間が対応付けられ、
前記少なくとも１つのプロセッサは、
前記第２操作子へのユーザ操作に基づいて、前記第２区間に付与する抑揚のパターンを決定し、
決定された前記パターンの抑揚で、前記第２区間に含まれるデータが示す歌詞が歌われるように、前記第２区間に含まれるデータを出力する、
付記１に記載の情報処理装置。
（付記３）
前記少なくとも１つのプロセッサは、
前記第１区間の歌声の最後のピッチと前記第２区間の歌声の最初のピッチとが連続的に繋がるように、少なくとも前記第１区間に含まれるデータの出力及び、前記第２区間に含まれるデータの出力のいずれかを調整する、
付記２に記載の情報処理装置。
（付記４）
或る１曲の曲データのなかの互いに重複しない部分データがそれぞれ対応付けられる区間数は、前記複数の操作子の数より多く、
前記少なくとも１つのプロセッサは、
再生される前記曲データの進行に合わせて、前記複数の操作子に対応付ける区間を変更する、
付記１から３のいずれかに記載の情報処理装置。
（付記５）
学習用歌詞データ及び学習用音高データを含む楽譜データと、前記楽譜データに対応する或る歌い手の歌声データと、を用いた機械学習処理により得られた学習済み音響モデルであって、任意の歌詞データと、任意の音高データと、を入力することにより、前記或る歌い手の歌声の音響特徴量を示すデータを出力する学習済み音響モデルを記憶しているメモリを備え、
前記少なくとも１つのプロセッサは、
前記学習済み音響モデルへの前記任意の歌詞データと前記任意の音高データとの入力に応じて前記学習済み音響モデルが出力した前記或る歌い手の歌声の音響特徴量を示すデータに基づいて、前記或る歌い手の歌声を推論し、
推論された前記或る歌い手の前記第１区間の歌声に、決定された前記パターンの抑揚がつくように、前記第１区間に含まれるデータを出力する、
付記１から４のいずれかに記載の情報処理装置。
（付記６）
曲データの第１タイミングから第２タイミングの前までの第１区間が対応付けられる第１操作子を含む複数の操作子と、
複数の鍵を含む鍵盤と、
少なくとも１つのプロセッサと、
を備え、前記少なくとも１つのプロセッサは、
前記第１操作子へのユーザ操作に基づいて、前記第１区間に付与する抑揚のパターンを決定し、
決定された前記パターンの抑揚で、前記第１区間に含まれるデータが示す歌詞が歌われるように、前記第１区間に含まれるデータを出力する、
電子楽器。
（付記７）
曲データの第１タイミングから第２タイミングの前までの第１区間が対応付けられる第１操作子を含む複数の操作子を備える情報処理装置のコンピュータに、
前記第１操作子へのユーザ操作に基づいて、前記第１区間に付与する抑揚のパターンを決定させ、
決定された前記パターンの抑揚で、前記第１区間に含まれるデータが示す歌詞が歌われるように、前記第１区間に含まれるデータを出力させる、
方法。
（付記８）
曲データの第１タイミングから第２タイミングの前までの第１区間が対応付けられる第１操作子を含む複数の操作子を備える情報処理装置のコンピュータに、
前記第１操作子へのユーザ操作に基づいて、前記第１区間に付与する抑揚のパターンを決定させ、
決定された前記パターンの抑揚で、前記第１区間に含まれるデータが示す歌詞が歌われるように、前記第１区間に含まれるデータを出力させる、
プログラム。
【符号の説明】
【０１６２】
１００  電子鍵盤楽器
１０１  鍵盤
１０２  第１のスイッチパネル
１０３  第２のスイッチパネル
１０４  ＬＣＤ
１０５  ベンドスライダ
１０６  ベンドスイッチ
２００  制御システム
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  音源ＬＳＩ
２０５  音声合成ＬＳＩ
２０６  キースキャナ
２０８  ＬＣＤコントローラ
２０９  システムバス
２１０  タイマ
２１１、２１２  Ｄ／Ａコンバータ
２１３  ミキサ
２１４  アンプ
２１５  ラップデータ
２１６  発音制御データ
２１７  ラップ音声出力データ
２１８  楽音出力データ
２１９  ネットワークインタフェース
３００  サーバコンピュータ
３０１  音声学習部
３０２  音声合成部
３０３  学習用テキスト解析部
３０４  学習用音響特徴量抽出
３０５  モデル学習部
３０６  音響モデル部
３０７  テキスト解析部
３０８  発声モデル部
３０９  音源生成部
３１０  合成フィルタ部
３１１  学習用ラップデータ
３１２  学習用ラップ音声データ
３１３  学習用言語特徴量系列
３１４  学習用音響特徴量系列
３１５  学習結果
３１６  言語情報量系列
３１７  音響特徴量系列
３１８  スペクトル情報
３１９  音源情報
３２０  ベンド処理部
【図１】
2020148914.tif 000003
【図２】
2020148914.tif 000004
【図３】
2020148914.tif 000005
【図４】
2020148914.tif 000006
【図５】
2020148914.tif 000007
【図６】
2020148914.tif 000008
【図７】
2020148914.tif 000009
【図８】
2020148914.tif 000010
【図９】
2020148914.tif 000011
【図１０】
2020148914.tif 000012
【図１１】
2020148914.tif 000013
【図１２】
2020148914.tif 000014
【図１３】
2020148914.tif 000015
【図１４】
2020148914.tif 000016
【手続補正書】
【提出日】令和2年1月9日(2020.1.9)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、ラップ等の演奏を可能とする鍵盤楽器、方法、及びプログラムに関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
そこで、本発明の目的は、音声において所望の抑揚を簡単な操作で付加可能とすることにある。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
態様の一例の鍵盤楽器では、複数の鍵を含む鍵盤と、鍵の長手方向の後ろ側かつ楽器ケースの天面に設けられている複数の操作子であって、出力させる音声データの第１タイミングから第２タイミングの前までの第１区間データが対応付けられる第１操作子と、前記音声データの前記第２タイミングから第３タイミングの前までの第２区間データが対応付けられる第２操作子と、を含む複数の操作子と、少なくとも１つのプロセッサと、を備え、前記少なくとも１つのプロセッサは、前記第１操作子への第１ユーザ操作に基づいて第１パターンの抑揚を決定し、決定された前記第１パターンの抑揚で、前記第１区間データに応じた発音を指示し、前記第２操作子への第２ユーザ操作に基づいて第２パターンの抑揚を決定し、決定された前記第２パターンの抑揚で、前記第２区間データに応じた発音を指示する。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の鍵を含む鍵盤と、
鍵の長手方向の後ろ側かつ楽器ケースの天面に設けられている複数の操作子であって、出力させる音声データの第１タイミングから第２タイミングの前までの第１区間データが対応付けられる第１操作子と、前記音声データの前記第２タイミングから第３タイミングの前までの第２区間データが対応付けられる第２操作子と、を含む複数の操作子と、
少なくとも１つのプロセッサと、
を備え、前記少なくとも１つのプロセッサは、
前記第１操作子への第１ユーザ操作に基づいて第１パターンの抑揚を決定し、
決定された前記第１パターンの抑揚で、前記第１区間データに応じた発音を指示し、
前記第２操作子への第２ユーザ操作に基づいて第２パターンの抑揚を決定し、
決定された前記第２パターンの抑揚で、前記第２区間データに応じた発音を指示する、
鍵盤楽器。
【請求項２】
前記少なくとも１つのプロセッサは、
前記音声データに含まれる区間データの数が、前記複数の操作子の数より多い場合、
前記第１操作子に対応付けられている第１区間データの出力後、前記第１操作子に対応付ける区間データを、前記第１区間データから、前記第１区間より後の区間データに変更する、
請求項１に記載の鍵盤楽器。
【請求項３】
前記少なくとも１つのプロセッサは、
前記第１区間データの音声の最後のピッチと前記第２区間データの音声の最初のピッチとが連続的に繋がるように、少なくとも前記第１区間データの出力及び、前記第２区間データの出力のいずれかを調整する、
請求項１または２に記載の鍵盤楽器。
【請求項４】
前記複数の操作子は、スライド操作子を含み、
前記少なくとも１つのプロセッサは、
前記スライド操作子へのスライド操作に基づくスライド操作量に応じて、予め設定されている複数の抑揚パターンのなかからいずれかの抑揚パターンを決定する、
請求項１乃至３のいずれかに記載の鍵盤楽器。
【請求項５】
前記少なくとも１つのプロセッサは、
前記鍵盤への操作により指定された音高で音声を発音させる、
請求項１乃至４のいずれかに記載の鍵盤楽器。
【請求項６】
或る歌い手の歌声データの機械学習処理により得られた学習済み音響モデルであって、任意の歌詞データと、任意の音高データと、を入力することにより、前記或る歌い手の歌声の音響特徴量を示すデータを出力する学習済み音響モデルを記憶しているメモリを備え、
前記少なくとも１つのプロセッサは、
前記学習済み音響モデルへの前記任意の歌詞データと前記任意の音高データとの入力に応じて前記学習済み音響モデルが出力した前記或る歌い手の歌声の音響特徴量を示すデータに基づいて、前記或る歌い手の歌声を推論し、
推論された前記或る歌い手の前記第１区間データの歌声に、決定された前記パターンの抑揚を付与し、前記第１区間データを出力する、
請求項１から５のいずれかに記載の鍵盤楽器。
【請求項７】
鍵の長手方向の後ろ側かつ楽器ケースの天面に設けられている複数の操作子は少なくとも第１操作子及び第２操作子を含み、前記複数の操作子を備える鍵盤楽器のコンピュータに、
出力させる音声データの第１タイミングから第２タイミングの前までの第１区間データが対応付けられた前記第１操作子への第１ユーザ操作に基づいて第１パターンの抑揚を決定させ、
決定された前記第１パターンの抑揚で、前記第１区間データに応じた発音を指示させ、
前記音声データの前記第２タイミングから第３タイミングの前までの第２区間データが対応付けられた前記第２操作子への第２ユーザ操作に基づいて第２パターンの抑揚を決定させ、
決定された前記第２パターンの抑揚で、前記第２区間データに応じた発音を指示させる、
方法。
【請求項８】
鍵の長手方向の後ろ側かつ楽器ケースの天面に設けられている複数の操作子は少なくとも第１操作子及び第２操作子を含み、前記複数の操作子を備える鍵盤楽器のコンピュータに、
出力させる音声データの第１タイミングから第２タイミングの前までの第１区間データが対応付けられた前記第１操作子への第１ユーザ操作に基づいて第１パターンの抑揚を決定させ、
決定された前記第１パターンの抑揚で、前記第１区間データに応じた発音を指示させ、
前記音声データの前記第２タイミングから第３タイミングの前までの第２区間データが対応付けられた前記第２操作子への第２ユーザ操作に基づいて第２パターンの抑揚を決定させ、
決定された前記第２パターンの抑揚で、前記第２区間データに応じた発音を指示させる、
プログラム。