以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
図1は、電子鍵盤楽器の一実施形態100の外観例を示す図である。電子鍵盤楽器100は、演奏操作子としての複数の鍵からなる鍵盤101と、音量の指定、ソング再生のテンポ設定、ソング再生開始、伴奏再生、発声モード(ボコーダモード:オン/オフ)等の各種設定を指示する第1のスイッチパネル102と、ソングや伴奏の選曲や音色の選択等を行う第2のスイッチパネル103と、ソング再生時の歌詞、楽譜や各種設定情報を表示するLCD104(Liquid Crystal Display:液晶ディスプレイ)等を備える。また、電子鍵盤楽器100は、特には図示しないが、演奏により生成された楽音を放音するスピーカを裏面部、側面部、又は背面部等に備える。
図2は、図1の電子鍵盤楽器100の制御システム200の一実施形態のハードウェア構成例を示す図である。図2において、制御システム200は、CPU(中央演算処理装置)201、ROM(リードオンリーメモリ)202、RAM(ランダムアクセスメモリ)203、音源LSI(大規模集積回路)204、音声合成LSI205、図1の鍵盤101、第1のスイッチパネル102、及び第2のスイッチパネル103が接続されるキースキャナ206、及び図1のLCD104が接続されるLCDコントローラ208が、それぞれシステムバス209に接続されている。また、CPU201には、自動演奏のシーケンスを制御するためのタイマ210が接続される。更に、音源LSI204及び音声合成LSI205からそれぞれ出力される楽音出力データ218及び歌声音声出力データ217は、D/Aコンバータ211、212によりそれぞれアナログ楽音出力信号及びアナログ歌声音声出力信号に変換される。アナログ楽音出力信号及びアナログ歌声音声出力信号は、ミキサ213で混合され、その混合信号がアンプ214で増幅された後に、特には図示しないスピーカ又は出力端子から出力される。また、音源LSI204の出力は、音声合成LSI205に入力される。音源LSI204と音声合成LSI205は、1つのLSIに統合されてもよい。
CPU201は、RAM203をワークメモリとして使用しながらROM202に記憶された制御プログラムを実行することにより、図1の電子鍵盤楽器100の制御動作を実行する。また、ROM202は、上記制御プログラム及び各種固定データのほか、歌詞データ及び伴奏データを含む曲データを記憶する。
CPU201には、本実施形態で使用するタイマ210が実装されており、例えば電子鍵盤楽器100における自動演奏の進行をカウントする。
音源LSI204は、CPU201からの発音制御指示に従って、例えば特には図示しない波形ROMから楽音波形データを読み出し、D/Aコンバータ211に出力する。音源LSI204は、同時に最大256ボイスを発振させる能力を有する。
音声合成LSI205は、CPU201から、歌詞のテキストデータと音高に関する情報を歌声データ215として与えられると、それに対応する歌声の音声データを合成し、D/Aコンバータ212に出力する。
なお、第1のスイッチパネル102でボコーダモードがオンされた場合(第1のモードが指定された場合)には、音源LSI204から出力される所定の発音チャネル(複数チャネル可能)の楽音出力データは、発声音源用楽音出力データ220として、音声合成LSI205に入力される。
キースキャナ206は、図1の鍵盤101の押鍵/離鍵状態、第1のスイッチパネル102、及び第2のスイッチパネル103のスイッチ操作状態を定常的に走査し、CPU201に割り込みを掛けて状態変化を伝える。
LCDコントローラ609は、LCD505の表示状態を制御するIC(集積回路)である。
図3は、本実施形態における音声合成部、音響効果付加部、及び音声学習部の構成例を示すブロック図である。ここで、音声合成部302及び音響効果付加部322は、図2の音声合成LSI205が実行する一機能として電子鍵盤楽器100に内蔵される。
音声合成部302は、後述するソング再生処理により図1の鍵盤101上の押鍵に基づいて図2のキースキャナ206を介してCPU201から指示される歌詞及び音高の情報を含む歌声データ215を入力することにより、歌声音声出力データ321を合成し出力する。このとき音声合成部302のプロセッサは、鍵盤101上の複数の鍵(操作子)のなかのいずれかの鍵への操作に応じて、音響モデル部306に設定されている学習済み音響モデルに対して、歌詞情報と、いずれかの鍵に対応付けられている音高情報を含む歌声データ215を入力するとともに、その入力に応じて音響モデル部306が出力したスペクトル情報318と、音源LSI204が出力した発声音源用楽音出力データ220(ボコーダモードオンの場合)又は音響モデル部306が出力した音源情報319(ボコーダモードオフの場合)とに基づいて、歌い手の歌声を推論した歌声音声出力データ321(第1音源情報使用推論歌声データ)を出力する音源情報使用推論歌声データ出力処理を実行する。
音響効果付加部322は、更に効果の情報が含まれる歌声データ215を入力することにより、音声合成部302が出力する歌声音声出力データ321に対して、ビブラート効果、トレモロ効果、又はワウ効果などの音響効果を付加し、最終的な歌声音声出力データ217(図2参照)を出力する。
音響効果付加部322は、更に効果の情報が含まれる歌声データ215を入力することにより、音声合成部302が出力する歌声音声出力データ321に対して、ビブラート効果、トレモロ効果、又はワウ効果などの音響効果を付加し、最終的な歌声音声出力データ217(図2参照)を出力する。音声学習部301は例えば、図3に示されるように、図1の電子鍵盤楽器100とは別に外部に存在するサーバコンピュータ300が実行する一機能として実装されてよい。或いは、図3には図示していないが、音声学習部301は、図2の音声合成LSI205の処理能力に余裕があれば、音声合成LSI205が実行する一機能として電子鍵盤楽器100に内蔵されてもよい。
図2の音声学習部301及び音声合成部302は、例えば下記非特許文献1に記載の「深層学習に基づく統計的音声合成」の技術に基づいて実装される。
(非特許文献1)
橋本佳,高木信二「深層学習に基づく統計的音声合成」日本音響学会誌73巻1号(2017),pp.55−62
図3に示されるように例えば外部のサーバコンピュータ300が実行する機能である図2の音声学習部301は、学習用テキスト解析部303と学習用音響特徴量抽出部304とモデル学習部305とを含む。
音声学習部301において、学習用歌声音声データ312としては、例えば適当なジャンルの複数の歌唱曲を或る歌い手が歌った音声を録音したものが使用される。また、学習用歌声データ311としては、各歌唱曲の歌詞テキストが用意される。
学習用テキスト解析部303は、歌詞テキストを含む学習用歌声データ311を入力してそのデータを解析する。この結果、学習用テキスト解析部303は、学習用歌声データ311に対応する音素、音高等を表現する離散数値系列である学習用言語特徴量系列313を推定して出力する。
学習用音響特徴量抽出部304は、上記学習用歌声データ311の入力に合わせてその学習用歌声データ311に対応する歌詞テキストを或る歌い手が歌うことによりマイク等を介して集録された学習用歌声音声データ312を入力して分析する。この結果、学習用音響特徴量抽出部304は、学習用歌声音声データ312に対応する音声の特徴を表す学習用音響特徴量系列314を抽出して出力する。
モデル学習部305は、下記(1)式に従って、学習用言語特徴量系列313(これを
と置く)と、音響モデル(これを
と置く)とから、学習用音響特徴量系列314(これを
と置く)が生成される確率(これを
と置く)を最大にするような音響モデル
を、機械学習により推定する。即ち、テキストである言語特徴量系列と音声である音響特徴量系列との関係が、音響モデルという統計モデルによって表現される。
ここで、
は、その右側に記載される関数に関して最大値を与える、その下側に記載されている引数を算出する演算を示す。
モデル学習部305は、(1)式によって機械学習を行った結果算出される音響モデル
を表現するモデルパラメータを学習結果315として出力する。
この学習結果315(モデルパラメータ)は例えば、図3に示されるように、図1の電子鍵盤楽器100の工場出荷時に、図2の電子鍵盤楽器100の制御システムのROM202に記憶され、電子鍵盤楽器100のパワーオン時に、図2のROM202から音声合成LSI205内の後述する音響モデル部306にロードされてよい。或いは、学習結果315は例えば、図3に示されるように、演奏者が電子鍵盤楽器100の第2のスイッチパネル103を操作することにより、特には図示しないインターネットやUSB(Universal Serial Bus)ケーブル等のネットワークからネットワークインタフェース219を介して、音声合成LSI205内の後述する音響モデル部306にダウンロードされてもよい。
音声合成LSI205が実行する機能である音声合成部302は、テキスト解析部307と音響モデル部306と発声モデル部308とを含む。音声合成部302は、歌詞テキストを含む歌声データ215に対応する歌声音声出力データ321を、音響モデル部306に設定された音響モデルという統計モデルを用いて予測することにより合成する、統計的音声合成処理を実行する。
テキスト解析部307は、自動演奏に合わせた演奏者の演奏の結果として、図2のCPU201より指定される歌詞の音素、音高等に関する情報を含む歌声データ215を入力し、そのデータを解析する。この結果、テキスト解析部307は、歌声データ215に対応する音素、品詞、単語等を表現する言語特徴量系列316を解析して出力する。
音響モデル部306は、言語特徴量系列316を入力することにより、それに対応する音響特徴量系列317を推定して出力する。即ち音響モデル部306は、下記(2)式に従って、テキスト解析部307から入力する言語特徴量系列316(これを再度
と置く)と、モデル学習部305での機械学習により学習結果315として設定された音響モデル
とに基づいて、音響特徴量系列317(これを再度
と置く)が生成される確率(これを
と置く)を最大にするような音響特徴量系列317の推定値
を推定する。
発声モデル部308は、音響特徴量系列317を入力することにより、CPU201より指定される歌詞テキストを含む歌声データ215に対応する歌声音声出力データ321を生成する。歌声音声出力データ321は、後述する音響効果付加部322にて音響効果が付加されて最終的な歌声音声出力データ217に変換され、図2のD/Aコンバータ212からミキサ213及びアンプ214を介して出力され、特には図示しないスピーカから放音される。
学習用音響特徴量系列314や音響特徴量系列317で表される音響特徴量は、人間の声道をモデル化したスペクトル情報と、人間の声帯をモデル化した音源情報とを含む。スペクトル情報としては例えば、メルケプストラムや線スペクトル対(Line Spectral Pairs:LSP)等を採用できる。音源情報としては、人間の音声のピッチ周波数を示す基本周波数(F0)及びパワー値を採用できる。発声モデル部308は、音源生成部309と合成フィルタ部310とを含む。音源生成部309は、人間の声帯をモデル化した部分である。演奏者が図1の第1のスイッチパネル102でボコーダモードをオフにしているとき(第2のモードを指定しているとき)には、ボコーダモードスイッチ320は、音源生成部309を合成フィルタ部310に接続する。この結果、音源生成部309は、音響モデル部306から入力する音源情報319の系列を順次入力することにより、例えば、音源情報319に含まれる基本周波数(F0)及びパワー値で周期的に繰り返されるパルス列(有声音音素の場合)、又は音源情報319に含まれるパワー値を有するホワイトノイズ(無声音音素の場合)、或いはそれらが混合された信号からなる音源信号を生成し、ボコーダモードスイッチ320を介して合成フィルタ部310に入力させる。一方、演奏者が第1のスイッチパネル102でボコーダモードをオンしているとき(切替操作子の操作により第1のモードを指定しているとき)には、ボコーダモードスイッチ320は、図2の音源LSI204の所定の発音チャネル(複数チャネル可能)の発声音源用楽音出力データ220の出力を合成フィルタ部310に入力させる。合成フィルタ部310は、人間の声道をモデル化した部分であり、音響モデル部306から順次入力するスペクトル情報318の系列に基づいて声道をモデル化するデジタルフィルタを形成し、音源生成部309から入力する音源信号又は音源LSI204から入力する所定の発音チャネル(複数チャネル可能)の発声音源用楽音出力データ220を励振源信号として、デジタル信号の歌声音声出力データ217を生成し出力する。なお、ボコーダモードがオフのときには、音源生成部309から入力する音源信号はモノフォニックとなる。一方、ボコーダモードがオンのときには、音源LSI204から入力する発声音源用楽音出力データ220は、所定の発音チャネル分のポリフォニックとなる。
上述のように、演奏者が図1の第1のスイッチパネル102でボコーダモードをオフ(切替操作子の操作により第2のモードを指定)しているときには、音響モデル部306から入力する音源情報319に基づいて音源生成部309が生成した音源信号が、音響モデル部306から入力するスペクトル情報318に基づいて動作する合成フィルタ部310に入力して、合成フィルタ部310から歌声音声出力データ321が出力される。このようにして生成、出力される歌声音声出力データ321は、音響モデル部306によって完全にモデル化された信号となるため、歌い手の歌声に非常に忠実で自然な歌声となる。
一方、演奏者が図1の第1のスイッチパネル102でボコーダモードをオン(第1のモード)しているときには、演奏者の鍵盤101(図1)での演奏に基づいて音源LSI204が生成、出力する発声音源用楽音出力データ220が、音響モデル部306から入力するスペクトル情報318に基づいて動作する合成フィルタ部310に入力して、合成フィルタ部310から歌声音声出力データ321が出力される。このようにして生成、出力される歌声音声出力データ321は、音源LSI204で生成された楽器音を音源信号としている。このため、歌い手の歌声と比べると、忠実性は若干失われるが、音源LSI204で設定された楽器音の雰囲気が良く残ると共に、歌い手の歌声の声質も良く残った歌声となり、効果的な歌声音声出力データ321を出力させることが可能となる。更に、ボコーダモードでは、ポリフォニック動作が可能であるため、複数の歌声がハモるような効果を奏することも可能となる。
なお、音源LSI204は、例えば複数の所定の発音チャネルの出力を発声音源用楽音出力データ220として音声合成LSI205に供給すると同時に、他のチャネルの出力を通常の楽音出力データ218として出力するように動作してもよい。これにより、伴奏音は通常の楽器音で発音させたり、メロディラインの楽器音を発音させると同時にそのメロディの歌声を音声合成LSI205から発声させるというような動作も可能である。
なお、ボコーダモードにおいて合成フィルタ部310に入力される発声音源用楽音出力データ220は、どのような信号でもよいが、音源信号として性質上、倍音成分を多く含み、かつ長く持続する、例えばブラス音、ストリング音、オルガン音のような楽器音が好ましい。勿論、大きな効果を狙って、このような基準に全く従わないような楽器音、例えば動物の鳴き声のような楽器音が使用されても、非常におもしろい効果が得られる。具体的な実施例として、例えば愛犬の鳴き声をサンプリングして得られたデータを楽器音として合成フィルタ部310に入力する。そして、合成フィルタ部310から音響効果付加部322を介して出力される歌声音声出力データ217に基づいてスピーカから発音させる。そうすると、まるで愛犬が歌詞を歌っているように聞こえるという非常におもしろい効果が得られる。
演奏者はスイッチパネル102等の入力操作子(選択操作子)を操作することにより複数の楽器音のなかから使用する楽器音を選択することができる。
本発明の一実施例である電子楽器は、演奏者が図1の第1のスイッチパネル102の操作でボコーダモードのオン(第1のモード)/オフ(第2のモード)を切り換えるだけで、歌い手の歌い方を推論した歌声データを出力する第1のモードと、歌い方の特徴が反映されている複数の歌声データを出力する第2のモードと、を簡単に切り替えることができる。また、本発明の一実施例である電子楽器は、いずれのモードの歌声も簡単に生成して出力することができる。すなわち本発明によれば、様々な歌声を簡単に生成して出力できるので、演奏者はより演奏を楽しむことができる。
学習用歌声音声データ312に対するサンプリング周波数は、例えば16KHz(キロヘルツ)である。また、学習用音響特徴量系列314及び音響特徴量系列317に含まれるスペクトルパラメータとして、例えばメルケプストラム分析処理により得られるメルケプストラムパラメータが採用される場合、その更新フレーム周期は、例えば5msec(ミリ秒)である。更に、メルケプストラム分析処理の場合、分析窓長は25msec、窓関数はブラックマン窓、分析次数は24次である。
音声合成部302から出力される歌声音声出力データ321は更に、音声合成LSI205内の音響効果付加部322により、ビブラート効果、トレモロ効果、又はワウ効果などの音響効果が付加される。
ビブラート効果とは、歌唱において音を伸ばすとき、音高の高さを所定の振れ幅(深さ)で周期的に振らす効果をいう。ビブラート効果を付加するための音響効果付加部322の構成としては、例えば下記特許文献2又は3に記載の技術を採用することができる。
<特許文献2>
特開平06−167976号公報
<特許文献3>
特開平07−199931号公報
トレモロ効果とは、同一又は複数の音を小刻みに演奏する効果をいう。トレモロ効果を付加するための音響効果付加部322の構成としては、例えば下記特許文献4に記載の技術を採用することができる。
<特許文献4>
特開平07−028471号公報
ワウ効果とは、バンドパスフィルタの利得がピークとなる周波数を動かすことによって、「ワウワウ」としゃべっているような効果を得るものである。ワウ効果を付加するための音響効果付加部322の構成としては、例えば下記特許文献5に記載の技術を採用することができる。
<特許文献5>
特開平05−006173号公報
演奏者は、歌声音声を指示するための鍵盤101(図1)上の第1鍵(第1操作子)によって、歌声音声出力データ321の出力を継続させている状態(第1鍵を押している状態)で、鍵盤101上の第2鍵(第2操作子)を繰り返し連打する操作を行うと、音響効果付加部322において、ビブラート効果、トレモロ効果、又はワウ効果のうち、第1のスイッチパネル102(図1)で予め選択した音響効果を付加させることができる。
この場合更に、演奏者は、歌声指定している第1鍵の音高に対して、連打する第2鍵を、第2鍵と第1鍵の音高差が所望の音高差となるように指定することにより、音響効果付加部322における音高効果の程度を可変させることができる。例えば、第2鍵と第1鍵の間の音高差が1オクターブ離れていれば、音響効果の深さ(デプス)の最大値が設定され、音高差が小さくなるにつれて音響効果の程度が弱くなるように可変させることができる。
なお、連打する鍵盤101上の第2鍵は、白鍵でもよいが、例えば黒鍵とした場合には、歌声音声の音高を指定するための第1鍵の演奏操作を邪魔しにくくて済む。
このように、本実施形態では、音声合成部302から出力される歌声音声出力データ321に対して、音響効果付加部322にて更に多彩な音響効果を付加させて、最終的な歌声音声出力データ217を生成することが可能となる。
なお、設定された時間(たとえば、数百ミリ秒)、第2鍵に対する押鍵を検出しない場合に、音響効果の付加を終了する。
別の実施例として、第1鍵が押されている状態で第2鍵が1度押されただけで、すなわち上述のように第2鍵が連打されていなくても、このような音響効果を付加してもよい。この場合も、第1鍵と第2鍵との間の音高差に応じて、このような音響効果の深さを変更してもよい。また、第2鍵が押されている間、音響効果を付加させて、第2鍵に対する離鍵の検出に応じて、音響効果の付加を終了してもよい。
また別の実施例としては、第1鍵が押されている状態で第2鍵が押された後、第1鍵が離鍵されても、このような音響効果を付加してもよい。また、第1鍵及び第2鍵を連打する「トリル」を検出することにより、このような音高効果を付加してもよい。
なお、本明細書においては、これらの音響効果を付加する演奏法のことを、便宜上、「いわゆるレガート奏法」と言う場合がある。
次に、図3の音声学習部301及び音声合成部302からなる統計的音声合成処理の第1の実施形態について説明する。統計的音声合成処理の第1の実施形態では、音響モデル部306に設定される学習結果315(モデルパラメータ)によって表現される音響モデルとして、前述した非特許文献1、及び下記非特許文献2に記載のHMM(Hidden Markov Model:隠れマルコフモデル)を用いる。
(非特許文献2)
酒向慎司、才野慶二郎、南角吉彦、徳田恵一、北村正「声質と歌唱スタイルを自動学習可能な歌声合成システム」情報処理学会研究報告音楽情報科学(MUS)2008(12(2008−MUS−074)),pp.39−44,2008−02−08
統計的音声合成処理の第1の実施形態では、ユーザが或るメロディーにそった歌詞を発声する際、声帯の振動や声道特性の歌声の特徴パラメータがどのような時間変化をしながら発声されるかが、HMM音響モデルによって学習される。より具体的には、HMM音響モデルは、学習用の歌声データから求めたスペクトル、基本周波数、およびそれらの時間構造を音素単位でモデル化したものである。
まず、HMM音響モデルが採用される図3の音声学習部301の処理について説明する。音声学習部301内のモデル学習部305は、学習用テキスト解析部303が出力する学習用言語特徴量系列313と、学習用音響特徴量抽出部304が出力する上記学習用音響特徴量系列314とを入力することにより、前述した(1)式に基づいて、尤度が最大となるHMM音響モデルの学習を行う。HMM音響モデルの尤度関数は下記(3)式で示される。
ここで、
はフレームtにおける音響特徴量、Tはフレーム数、
はHMM音響モデルの状態系列、
はフレームtにおけるHMM音響モデルの状態番号を表す。また、
は状態
から状態
への状態遷移確率を表し、
は平均ベクトル
、共分散行列
の正規分布であり、状態
の出力確率分布を表す。尤度最大化基準によるHMM音響モデルの学習は、期待値最大化(Expectation Maximization:EM)アルゴリズムを利用することで効率良く行われる。
歌声音声のスペクトルパラメータは、連続HMMによってモデル化することができる。一方、対数基本周波数(F0)は有声区間では連続値をとり、無声区間では値を持たない可変次元の時間系列信号であるため、通常の連続HMMや離散HMMで直接モデル化することはできない。そこで、可変次元に対応した多空間上の確率分布に基づくHMMであるMSD−HMM(Multi−Space probability DistributionHMM)を用い、スペクトルパラメータとしてメルケプストラムを多次元ガウス分布、対数基本周波数(F0)の有声音を1次元空間、無声音を0次元空間のガウス分布として同時にモデル化する。
また、歌声を構成する音素の特徴は、音響的な特徴は同一の音素であっても、様々な要因の影響を受けて変動することが知られている。例えば、基本的な音韻単位である音素のスペクトルや対数基本周波数(F0)は、歌唱スタイルやテンポ、或いは、前後の歌詞や音高等によって異なる。このような音響特徴量に影響を与える要因のことをコンテキストと呼ぶ。第1の実施形態の統計的音声合成処理では、音声の音響的な特徴を精度良くモデル化するために、コンテキストを考慮したHMM音響モデル(コンテキスト依存モデル)を採用することができる。具体的には、学習用テキスト解析部303は、フレーム毎の音素、音高だけでなく、直前、直後の音素や、現在位置、直前、直後のビブラートやアクセント等も考慮した学習用言語特徴量系列313を出力してよい。更に、コンテキストの組合せの効率化のために、決定木に基づくコンテキストクラスタリングが用いられてよい。これは、二分木を用いてHMM音響モデルの集合を木構造に分割することで、類似したコンテキストの組合せごとにHMM音響モデルをクラスタリングする手法である。木の各ノードには、「直前の音素は/a/であるか?」等のコンテキストを二分する質問があり、各リーフノードには、特定のHMM音響モデルに相当する学習結果315(モデルパラメータ)がある。任意のコンテキストの組合せは、ノードにある質問に沿って木を辿ることで、何れかのリーフノードに到達でき、そのリーフノードに対応する学習結果315(モデルパラメータ)を選択できる。適切な決定木構造を選択することで、高精度かつ汎化性能の高いHMM音響モデル(コンテキスト依存モデル)を推定することができる。
図4は、統計的音声合成処理の第1の実施形態における、HMMの決定木についての説明図である。コンテキストに依存するそれぞれの音素について、その音素の各状態は、例えば図4(a)に示される#1、#2、#3の3つの状態401からなるHMMに対応付けられる。各状態に対して入出力する矢印は、状態遷移を示している。例えば、状態401(#1)は例えば、その音素の開始付近をモデル化する状態である。また、状態401(#2)は例えば、その音素の中心付近をモデル化する状態である。更に、状態401(#3)は例えば、その音素の終了付近をモデル化する状態である。
また、音素長に依存して、図4(a)のHMMが示す#1から#3の各状態401が継続する長さが、図4(b)の状態継続長モデルにより決定される。図3のモデル学習部305は、図3の学習用テキスト解析部303が図3の学習用歌声データ311から抽出した状態継続長に関する多数の音素のコンテキストに対応する学習用言語特徴量系列313から、状態継続長を決定するための状態継続長決定木402を学習により生成し、学習結果315として音声合成部302内の音響モデル部306に設定する。
また、図3のモデル学習部305は例えば、図3の学習用音響特徴量抽出部304が図3の学習用歌声音声データ312から抽出したメルケプストラムパラメータに関する多数の音素に対応する学習用音響特徴量系列314から、メルケプストラムパラメータを決定するためのメルケプストラムパラメータ決定木403を学習により生成し、学習結果315として音声合成部302内の音響モデル部306に設定する。
更に、図3のモデル学習部305は例えば、図3の学習用音響特徴量抽出部304が図3の学習用歌声音声データ312から抽出した対数基本周波数(F0)に関する多数の音素に対応する学習用音響特徴量系列314から、対数基本周波数(F0)を決定するための対数基本周波数決定木404を学習により生成し、学習結果315として音声合成部302内の音響モデル部306に設定する。なお、前述したように、対数基本周波数(F0)の有声区間と無声区間はそれぞれ、可変次元に対応したMSD−HMMにより、1次元及び0次元のガウス分布としてモデル化され、対数基本周波数決定木404が生成される。
その他、図3のモデル学習部305は、図3の学習用テキスト解析部303が図3の学習用歌声データ311から抽出した状態継続長に関する多数の音素のコンテキストに対応する学習用言語特徴量系列313から、音高のビブラートやアクセント等のコンテキストを決定するための決定木を学習により生成し、学習結果315として音声合成部302内の音響モデル部306に設定してもよい。
次に、HMM音響モデルが採用される図3の音声合成部302の処理について説明する。音響モデル部306は、テキスト解析部307が出力する歌詞の音素、音高、その他のコンテキストに関する言語特徴量系列316を入力することにより、コンテキスト毎に図4に例示される各決定木402、403、404等を参照してHMMを連結し、連結した各HMMから出力確立が最大となる音響特徴量系列317(スペクトル情報318と音源情報319)を予測する。
このとき、音響モデル部306は、前述した(2)式に従って、テキスト解析部307から入力する言語特徴量系列316(=
)と、モデル学習部305での機械学習により学習結果315として設定された音響モデル(=
)とに基づいて、音響特徴量系列317(=
)が生成される確率(=
)を最大にするような音響特徴量系列317の推定値(=
)を推定する。ここで、前述した(2)式は、図4(b)の状態継続長モデルによって推定される状態系列
を用いることで、下記(4)式により近似される。
ここで、
であり、
と
はそれぞれ状態
における平均ベクトルと共分散行列である。言語特徴量系列
を用い、音響モデル部306に設定された各決定木を辿ることにより、平均ベクトルと共分散行列が算出される。(4)式より、音響特徴量系列317の推定値(=
)は平均ベクトル(=
)によって得られるが、
は状態が遷移する部分で階段状に変化する不連続な系列となる。このような不連続な音響特徴量系列317から合成フィルタ部310が歌声音声出力データ321を合成した場合、自然性という観点からは低品質な合成音声となってしまう。そこで、統計的音声合成処理の第1の実施形態では、モデル学習部305において動的特徴量を考慮した学習結果315(モデルパラメータ)の生成アルゴリズムが採用されてよい。静的特徴量
と動的特徴量
からフレームtにおける音響特徴量系列(=
)が構成されるとき、各時刻の音響特徴量系列(=
)は、下記(5)式で示される。
ここで、
は静的特徴量系列
から動的特徴量を含む音響特徴量系列
を求める行列である。モデル学習部305は、上述の(5)式を制約として前述の(4)式を、下記(6)式に示されるように解く。
ここで、
は、動的特徴量を制約としながら出力確率が最大となる静的特徴量系列である。動的特徴量を考慮することで状態境界の不連続が解決され、滑らかに変化する音響特徴量系列317を得ることができ、合成フィルタ部310において、高品質な歌声音声出力データ321を生成することが可能となる。
ここで、歌声データの音素境界は楽譜が定める音符の境界とは一致しないことが多い。このような時間的な揺らぎは、音楽表現という観点からは本質的なものといえる。そこで、上述のHMM音響モデルを採用した統計的音声合成処理の第1の実施形態において、歌声の発声において、発声する際の音韻の違いや音高やリズムなど、様々な影響を受けた時間の偏りがあると仮定し、学習データにおける発声のタイミングと楽譜とのずれをモデル化する技術が採用されてもよい。具体的には、音符単位のずれモデルとして、音符単位に見た歌声と楽譜のずれを1次元ガウス分布によって表し、他のスペクトルパラメータや対数基本周波数(F0)等と同様にして、コンテキストに依存したHMM音響モデルとして扱ってよい。このような、「ずれ」のコンテキストを含むHMM音響モデルを用いた歌声合成では、まず楽譜の表す時間境界を定めた後、音符単位のずれモデルと音素状態継続長モデルの両者の同時確率を最大化することで、学習データにおける音符の揺らぎを考慮した時間構造を決定することが可能となる。
次に、図3の音声学習部301及び音声合成部302からなる統計的音声合成処理の第2の実施形態について説明する。統計的音声合成処理の第1の実施形態では、言語特徴量系列316から音響特徴量系列317を予測するために、音響モデル部306がディープニューラルネットワーク(Deep Neural Network:DNN)により実装される。これに対応して、音声学習部301内のモデル学習部305は、言語特徴量から音響特徴量へのDNN内の各ニューロンの非線形変換関数を表すモデルパラメータを学習し、そのモデルパラメータを学習結果315として音声合成部302内の音響モデル部306のDNNに出力する。
通常、音響特徴量は例えば5.1msec(ミリ秒)幅のフレームを単位として算出され、言語特徴量は音素を単位として算出される。従って、音響特徴量と言語特徴量は時間単位が異なる。HMM音響モデルを採用した統計的音声合成処理の第1の実施形態では、音響特徴量と言語特徴量の対応はHMMの状態系列によって表現され,モデル学習部305は、音響特徴量と言語特徴量の対応関係を、図3の学習用歌声データ311及び学習用歌声音声データ312に基づき自動学習した。これに対して、DNNを採用した統計的音声合成処理の第2の実施形態では、音響モデル部306に設定されるDNNは、入力である言語特徴量系列316と出力である音響特徴量系列317の一対一の対応関係を表すモデルであるため、時間単位の異なる入出力データ対を用いてDNNを学習させることはできない。このため、統計的音声合成処理の第2の実施形態では、予めフレーム単位の音響特徴量系列と音素単位の言語特徴量系列の対応関係が設定され、フレーム単位の音響特徴量と言語特徴量の対が生成される。
図5は、上述の対応関係を示す音声合成LSI205の動作説明図である。例えば、童謡「きらきら星」の歌い出しの歌詞文字列「き」「ら」「き」(図5(a))に対応する言語特徴量系列である歌声音素列「/k/」「/i/」「/r/」「/a/」「/k/」「/i/」(図5(b))が得られているときに、これらの言語特徴量系列が、フレーム単位の音響特徴量系列(図5(c))に対して、1対多の関係(図5の(b)と(c)の関係)で対応付けられる。なお、言語特徴量は音響モデル部306におけるDNNへの入力として使用されるため、数値データとして表現する必要がある。このため、言語特徴量系列としては、「直前の音素は「/a/」であるか?」や「現在の単語に含まれる音素の数は?」等のコンテキストに関する質問に対する二値のデータ(0又は1)、或いは、連続値での回答を連結して得られる数値データが用意される。
統計的音声合成処理の第2の実施形態における図3の音声学習部301内のモデル学習部305は、図5の破線矢印群501として示されるように、フレーム単位で、図5(b)に対応する学習用言語特徴量系列313の音素列と図5(c)に対応する学習用音響特徴量系列314の対を音響モデル部306のDNNに順次与えて学習を行う。なお、音響モデル部306内のDNNは、図5のグレー色の丸印群として示されるように、入力層、1つ以上の中間層、及び出力層からなるニューロン群を含む。
一方、音声合成時には、上記フレーム単位で、図5(b)に対応する言語特徴量系列316の音素列が音響モデル部306のDNNに入力される。この結果、音響モデル部306のDNNは、図5の太実線矢印群502として示されるように、上記フレーム単位で、音響特徴量系列317を出力する。従って、発声モデル部308においても、上述のフレーム単位で、音響特徴量系列317に含まれる音源情報319及びスペクトル情報318がそれぞれ音源生成部309及び合成フィルタ部310に与えられて、音声合成が実行される。
この結果、発声モデル部308は、図5の太実線矢印群503として示されるように、フレーム毎に、例えば225サンプル(samples)ずつの歌声音声出力データ321を出力する。フレームは5.1msecの時間幅を有するため、1サンプルは「5.1msec÷225≒0.0227msec」であり、従って、歌声音声出力データ321のサンプリング周波数は1/0.0227≒44kHz(キロヘルツ)である。
DNNの学習は、フレーム単位の音響特徴量と言語特徴量の対を用いて、下記の(7)式で演算される二乗誤差最小化基準によって行われる。
ここで、
と
はそれぞれt番目のフレームtにおける音響特徴量と言語特徴量、
は音響モデル部306のDNNのモデルパラメータ、
はDNNによって表される非線形変換関数である。DNNのモデルパラメータは誤差逆伝播法によって効率良く推定することができる。前述した(1)式によって表される統計的音声合成におけるモデル学習部305の処理との対応関係を考慮すると、DNNの学習は下記の(8)式のように表すことができる。
ここで、下記(9)式が成立する。
上記(8)式及び(9)式のように、音響特徴量と言語特徴量の関係は、DNNの出力を平均ベクトルとする正規分布
によって表すことができる。DNNを用いた統計的音声合成処理の第2の実施形態では、通常、言語特徴量系列
に非依存な共分散行列、即ち全てのフレームにおいて同じ共分散行列
が用いられる。また、共分散行列
を単位行列とすると、(8)式は(7)式と等価な学習処理を示している。
図5で説明したように、音響モデル部306のDNNは、フレーム毎に独立に音響特徴量系列317を推定する。このため、得られる音響特徴量系列317には、合成音声の品質を低下させるような不連続が含まれる。そこで、本実施形態では例えば、統計的音声合成処理の第1の実施形態の場合と同様な、動的特徴量を用いたパラメータ生成アルゴリズムを利用することにより、合成音声の品質を改善することができる。
図3から図5で説明した統計的音声合成処理を利用した図1及び図2の電子鍵盤楽器100の実施形態の動作について、以下に詳細に説明する。図6は、本実施形態において、図2のROM202からRAM203に読み込まれる曲データのデータ構成例を示す図である。このデータ構成例は、MIDI(Musical Instrument Digital Interface)用ファイルフォーマットの一つであるスタンダードMIDIファイルのフォーマットに準拠している。この曲データは、チャンクと呼ばれるデータブロックから構成される。具体的には、曲データは、ファイルの先頭にあるヘッダチャンクと、それに続く歌詞パート用の歌詞データが格納されるトラックチャンク1と、伴奏パート用の演奏データが格納されるトラックチャンク2とから構成される。
ヘッダチャンクは、ChunkID、ChunkSize、FormatType、NumberOfTrack、及びTimeDivisionの4つの値からなる。ChunkIDは、ヘッダチャンクであることを示す"MThd"という半角4文字に対応する4バイトのアスキーコード「4D 54 68 64」(数字は16進数)である。ChunkSizeは、ヘッダチャンクにおいて、ChunkIDとChunkSizeを除く、FormatType、NumberOfTrack、及びTimeDivisionの部分のデータ長を示す4バイトデータであり、データ長は6バイト:「00 00 00 06」(数字は16進数)に固定されている。FormatTypeは、本実施形態の場合、複数トラックを使用するフォーマット1を意味する2バイトのデータ「00 01」(数字は16進数)である。NumberOfTrackは、本実施形態の場合、歌詞パートと伴奏パートに対応する2トラックを使用することを示す2バイトのデータ「00 02」(数字は16進数)である。TimeDivisionは、4分音符あたりの分解能を示すタイムベース値を示すデータであり、本実施形態の場合、10進法で480を示す2バイトのデータ「01 E0」(数字は16進数)である。
トラックチャンク1、2はそれぞれ、ChunkID、ChunkSizeと、DeltaTime_1[i]及びEvent_1[i](トラックチャンク1/歌詞パートの場合)又はDeltaTime_2[i]及びEvent_2[i](トラックチャンク2/伴奏パートの場合)からなる演奏データ組(0≦i≦L:トラックチャンク1/歌詞パートの場合、0≦i≦M:トラックチャンク2/伴奏パートの場合)とからなる。ChunkIDは、トラックチャンクであることを示す"MTrk"という半角4文字に対応する4バイトのアスキーコード「4D 54 72 6B」(数字は16進数)である。ChunkSizeは、各トラックチャンクにおいて、ChunkIDとChunkSizeを除く部分のデータ長を示す4バイトデータである。
DeltaTime_1[i]は、その直前のEvent_1[i−1]の実行時刻からの待ち時間(相対時間)を示す1〜4バイトの可変長データである。同様に、DeltaTime_2[i]は、その直前のEvent_2[i−1]の実行時刻からの待ち時間(相対時間)を示す1〜4バイトの可変長データである。Event_1[i]は、トラックチャンク1/歌詞パートにおいて、歌詞の発声タイミングと音高を指示するメタイベント(タイミング情報)である。Event_2[i]は、トラックチャンク2/伴奏パートにおいて、ノートオン又はノートオフを指示するMIDIイベント、又は拍子を指示するメタイベント(タイミング情報)である。トラックチャンク1/歌詞パートに対して、各演奏データ組DeltaTime_1[i]及びEvent_1[i]において、その直前のEvent_1[i−1]の実行時刻からDeltaTime_1[i]だけ待った上でEvent_1[i]が実行されることにより、歌詞の発声進行が実現される。一方、トラックチャンク2/伴奏パートに対して、各演奏データ組DeltaTime_2[i]及びEvent_2[i]において、その直前のEvent_2[i−1]の実行時刻からDeltaTime_2[i]だけ待った上でEvent_2[i]が実行されることにより、自動伴奏の進行が実現される。
図7は、本実施形態における電子楽器の制御処理例を示すメインフローチャートである。この制御処理は例えば、図2のCPU201が、ROM202からRAM203にロードされた制御処理プログラムを実行する動作である。
CPU201は、まず初期化処理を実行した後(ステップS701)、ステップS702からS708の一連の処理を繰り返し実行する。
この繰返し処理において、CPU201はまず、スイッチ処理を実行する(ステップS702)。ここでは、CPU201は、図2のキースキャナ206からの割込みに基づいて、図1の第1のスイッチパネル102又は第2のスイッチパネル103のスイッチ操作に対応する処理を実行する。
次に、CPU201は、図2のキー・スキャナ206からの割込みに基づいて図1の鍵盤101の何れかの鍵が操作されたか否かを判定して処理する鍵盤処理を実行する(ステップS703)。ここでは、CPU201は、演奏者による何れかの鍵の押鍵又は離鍵の操作に応じて、図2の音源LSI204に対して、発音開始又は発音停止を指示する楽音制御データ216を出力する。
次に、CPU201は、図1のLCD104に表示すべきデータを処理し、そのデータを、図2のLCDコントローラ208を介してLCD104に表示する表示処理を実行する(ステップS704)。LCD104に表示されるデータとしては、例えば演奏される歌声音声出力データ217に対応する歌詞とその歌詞に対応するメロディの楽譜や、各種設定情報がある。
次に、CPU201は、ソング再生処理を実行する(ステップS705)。この処理においては、CPU201が、演奏者の演奏に基づいて図5で説明した制御処理を実行し、歌声データ215を生成して音声合成LSI205に出力する。
続いて、CPU201は、音源処理を実行する(ステップS706)。音源処理において、CPU201は、音源LSI204における発音中の楽音のエンベロープ制御等の制御処理を実行する。
続いて、CPU201は、音声合成処理を実行する(ステップS707)。音声合成処理において、CPU201は、音声合成LSI205による音声合成の実行を制御する。
最後にCPU201は、演奏者が特には図示しないパワーオフスイッチを押してパワーオフしたか否かを判定する(ステップS708)。ステップS708の判定がNOならば、CPU201は、ステップS702の処理に戻る。ステップS708の判定がYESならば、CPU201は、図7のフローチャートで示される制御処理を終了し、電子鍵盤楽器100の電源を切る。
図8(a)、(b)、及び(c)はそれぞれ、図7のステップS701の初期化処理、図7のステップS702のスイッチ処理における後述する図9のステップS902のテンポ変更処理、及び同じく図9のステップS906のソング開始処理の詳細例を示すフローチャートである。
まず、図7のステップS701の初期化処理の詳細例を示す図8(a)において、CPU201は、TickTimeの初期化処理を実行する。本実施形態において、歌詞の進行及び自動伴奏は、TickTimeという時間を単位として進行する。図6の曲データのヘッダチャンク内のTimeDivision値として指定されるタイムベース値は4分音符の分解能を示しており、この値が例えば480ならば、4分音符は480TickTimeの時間長を有する。また、図6の曲データのトラックチャンク内の待ち時間DeltaTime_1[i]値及びDeltaTime_2[i]値も、TickTimeの時間単位によりカウントされる。ここで、1TickTimeが実際に何秒になるかは、曲データに対して指定されるテンポによって異なる。今、テンポ値をTempo[ビート/分]、上記タイムベース値をTimeDivisionとすれば、TickTimeの秒数は、次式により算出される。
TickTime[秒]=60/Tempo/TimeDivision (10)
そこで、図8(a)のフローチャートで例示される初期化処理において、CPU201はまず、上記(10)式に対応する演算処理により、TickTime[秒]を算出する(ステップS801)。なお、テンポ値Tempoは、初期状態では図2のROM202に所定の値、例えば60[ビート/秒]が記憶されているとする。或いは、不揮発性メモリに、前回終了時のテンポ値が記憶されていてもよい。
次に、CPU201は、図2のタイマ210に対して、ステップS801で算出したTickTime[秒]によるタイマ割込みを設定する(ステップS802)。この結果、タイマ210において上記TickTime[秒]が経過する毎に、CPU201に対して歌詞進行及び自動伴奏のための割込み(以下「自動演奏割込み」と記載)が発生する。従って、この自動演奏割込みに基づいてCPU201で実行される自動演奏割込み処理(後述する図10)では、1TickTime毎に歌詞進行及び自動伴奏を進行させる制御処理が実行されることになる。
続いて、CPU201は、図2のRAM203の初期化等のその他初期化処理を実行する(ステップS803)。その後、CPU201は、図8(a)のフローチャートで例示される図7のステップS701の初期化処理を終了する。
図8(b)及び(c)のフローチャートについては、後述する。図9は、図7のステップS702のスイッチ処理の詳細例を示すフローチャートである。
CPU201はまず、図1の第1のスイッチパネル102内のテンポ変更スイッチにより歌詞進行及び自動伴奏のテンポが変更されたか否かを判定する(ステップS901)。その判定がYESならば、CPU201は、テンポ変更処理を実行する(ステップS902)。この処理の詳細は、図8(b)を用いて後述する。ステップS901の判定がNOならば、CPU201は、ステップS902の処理はスキップする。
次に、CPU201は、図1の第2のスイッチパネル103において何れかのソング曲が選曲されたか否かを判定する(ステップS903)。その判定がYESならば、CPU201は、ソング曲読込み処理を実行する(ステップS904)。この処理は、図6で説明したデータ構造を有する曲データを、図2のROM202からRAM203に読み込む処理である。なお、ソング曲読込み処理は、演奏中でなくても、演奏開始前でもよい。これ以降、図6に例示されるデータ構造内のトラックチャンク1又は2に対するデータアクセスは、RAM203に読み込まれた曲データに対して実行される。ステップS903の判定がNOならば、CPU201は、ステップS904の処理はスキップする。
続いて、CPU201は、図1の第1のスイッチパネル102においてソング開始スイッチが操作されたか否かを判定する(ステップS905)。その判定がYESならば、CPU201は、ソング開始処理を実行する(ステップS906)。この処理の詳細は、図8(c)を用いて後述する。ステップS905の判定がNOならば、CPU201は、ステップS906の処理はスキップする。
更にCPU201は、図1の第1のスイッチパネル102においてボコーダモードが変更されたか否かを判定する(ステップS907)。その判定がYESならば、CPU201は、ボコーダモード変更処理を実行する(ステップS908)。即ち、CPU201は、今までボコーダモードがオフであった場合には、ボコーダモードをオンにする。逆に、CPU201は、今までボコーダモードがオンであった場合には、ボコーダモードをオフにする。ステップS907の判定がNOならば、CPU201は、ステップS908の処理はスキップする。なお、CPU201は、ボコーダモードのオン又はオフは、例えばRAM203上の所定の変数の値を1又は0に変更することにより、設定する。また、CPU201は、ボコーダモードをオンにするときは、図3のボコーダモードスイッチ320を制御して、図2の音源LSI204の所定の発音チャネル(複数チャネル可能)の発声音源用楽音出力データ220の出力を合成フィルタ部310に入力させる。一方、CPU201は、ボコーダモードをオフにするときは、図3のボコーダモードスイッチ320を制御して、図3の音源生成部309からの音源信号の出力を合成フィルタ部310に入力させる。
続いて、CPU201は、図1の第1のスイッチパネル102においてエフェクト選択スイッチが操作されたか否かを判定する(ステップS909)。その判定がYESならば、CPU201は、エフェクト選択処理を実行する(ステップS910)。ここでは、前述したように、図3の音響効果付加部322が歌声音声出力データ321の発声音声に対して音響効果を付加するときに、ビブラート効果、トレモロ効果、又はワウ効果のうちどの音響効果を付加するかを、第1のスイッチパネル102によって演奏者に選択させる。この選択の結果、CPU201は、上記音響効果のうち演奏者が選択した何れかを、音声合成LSI205内の音響効果付加部322に設定する。ステップS909の判定がNOならば、CPU201は、ステップS910の処理はスキップする。
設定によっては、複数の効果を同時に付加するようにしてもよい。
最後に、CPU201は、図1の第1のスイッチパネル102又は第2のスイッチパネル103においてその他のスイッチが操作されたか否かを判定し、各スイッチ操作に対応する処理を実行する(ステップS911)。この処理は、演奏者が前述のボコーダモードを選択したときに、図2又は図3の音源LSI204から音声合成LSI205内の発声モデル部308に供給される発声音源用楽音出力データ220の楽器音として、少なくともブラス音、ストリング音、オルガン音、及び動物の鳴き声のいずれかを含む複数の楽器音のなかからブラス音、ストリング音、オルガン音、及び動物の鳴き声のうちのいずれかの楽器音を選択させる第2のスイッチパネル103上の音色選択スイッチに対する処理を含む。
その後、CPU201は、図9のフローチャートで例示される図7のステップS702のスイッチ処理を終了する。この処理は、例えばボコーダモード用の楽音の音色の選択や、ボコーダモード用の所定の発音チャネルの選択のスイッチ動作を含む。
図8(b)は、図9のステップS902のテンポ変更処理の詳細例を示すフローチャートである。前述したように、テンポ値が変更されるとTickTime[秒]も変更になる。図8(b)のフローチャートでは、CPU201は、このTickTime[秒]の変更に関する制御処理を実行する。
まず、CPU201は、図7のステップS701の初期化処理で実行された図8(a)のステップS801の場合と同様にして、前述した(10)式に対応する演算処理により、TickTime[秒]を算出する(ステップS811)。なお、テンポ値Tempoは、図1の第1のスイッチパネル102内のテンポ変更スイッチにより変更された後の値がRAM203等に記憶されているものとする。
次に、CPU201は、図7のステップS701の初期化処理で実行された図8(a)のステップS802の場合と同様にして、図2のタイマ210に対して、ステップS811で算出したTickTime[秒]によるタイマ割込みを設定する(ステップS812)。その後、CPU201は、図8(b)のフローチャートで例示される図9のステップS902のテンポ変更処理を終了する。
図8(c)は、図9のステップS906のソング開始処理の詳細例を示すフローチャートである。
まず、CPU201は、自動演奏の進行において、TickTimeを単位として、直前のイベントの発生時刻からの相対時間をカウントするためのRAM203上の変数DeltaT_1(トラックチャンク1)及びDeltaT_2(トラックチャンク2)の値を共に0に初期設定する。次に、CPU201は、図6に例示される曲データのトラックチャンク1内の演奏データ組DeltaTime_1[i]及びEvent_1[i](1≦i≦L−1)の夫々iの値を指定するためのRAM203上の変数AutoIndex_1と、同じくトラックチャンク2内の演奏データ組DeltaTime_2[i]及びEvent_2[i](1≦i≦M−1)の夫々iを指定するためのRAM203上の変数AutoIndex_2の各値を共に0に初期設定する(以上、ステップS821)。これにより、図6の例では、初期状態としてまず、トラックチャンク1内の先頭の演奏データ組DeltaTime_1[0]とEvent_1[0]、及びトラックチャンク2内の先頭の演奏データ組DeltaTime_2[0]とEvent_2[0]がそれぞれ参照される。
次に、CPU201は、現在のソング位置を指示するRAM203上の変数SongIndexの値を0に初期設定する(ステップS822)。
更に、CPU201は、歌詞及び伴奏の進行をするか(=1)しないか(=0)を示すRAM203上の変数SongStartの値を1(進行する)に初期設定する(ステップS823)。
その後、CPU201は、演奏者が、図1の第1のスイッチパネル102により歌詞の再生に合わせて伴奏の再生を行う設定を行っているか否かを判定する(ステップS824)。
ステップS824の判定がYESならば、CPU201は、RAM203上の変数Bansouの値を1(伴奏有り)に設定する(ステップS825)。逆に、ステップS824の判定がNOならば、CPU201は、変数Bansouの値を0(伴奏無し)に設定する(ステップS826)。ステップS825又はS826の処理の後、CPU201は、図8(c)のフローチャートで示される図9のステップS906のソング開始処理を終了する。
図13は、図2のタイマ210においてTickTime[秒]毎に発生する割込み(図8(a)のステップS802又は図8(b)のステップS812を参照)に基づいて実行される自動演奏割込み処理の詳細例を示すフローチャートである。以下の処理は、図6に例示される曲データのトラックチャンク1及び2の演奏データ組に対して実行される。
まず、CPU201は、トラックチャンク1に対応する一連の処理(ステップS1001からS1006)を実行する。始めにCPU201は、SongStart値が1であるか否か、即ち歌詞及び伴奏の進行が指示されているか否かを判定する(ステップS1001)。
CPU201は、歌詞及び伴奏の進行が指示されていないと判定した(ステップS1001の判定がNOである)場合には、CPU201は、歌詞及び伴奏の進行は行わずに図10のフローチャートで例示される自動演奏割込み処理をそのまま終了する。
CPU201は、歌詞及び伴奏の進行が指示されていると判定した(ステップS1001の判定がYESである)場合には、トラックチャンク1に関する前回のイベントの発生時刻からの相対時刻を示すDeltaT_1値が、AutoIndex_1値が示すこれから実行しようとする演奏データ組の待ち時間DeltaTime_1[AutoIndex_1]に一致したか否かを判定する(ステップS1002)。
ステップS1002の判定がNOならば、CPU201は、トラックチャック1に関して、前回のイベントの発生時刻からの相対時刻を示すDeltaT_1値を+1インクリメントさせて、今回の割込みに対応する1TickTime単位分だけ時刻を進行させる(ステップS1003)。その後、CPU201は、後述するステップS1007に移行する。
ステップS1002の判定がYESになると、CPU201は、トラックチャック1に関して、AutoIndex_1値が示す演奏データ組のイベントEvent[AutoIndex_1]を実行する(ステップS1004)。このイベントは、歌詞データを含むソングイベントである。
続いて、CPU201は、トラックチャンク1内の次に実行すべきソングイベントの位置を示すAutoIndex_1値を、RAM203上の変数SongIndexに格納する(ステップS1004)。
更に、CPU201は、トラックチャンク1内の演奏データ組を参照するためのAutoIndex_1値を+1インクリメントする(ステップS1005)。
また、CPU201は、トラックチャンク1に関して今回参照したソングイベントの発生時刻からの相対時刻を示すDeltaT_1値を0にリセットする(ステップS1006)。その後、CPU201は、ステップS1007の処理に移行する。
次に、CPU201は、トラックチャンク2に対応する一連の処理(ステップS1007からS1013)を実行する。始めにCPU201は、トラックチャンク2に関する前回のイベントの発生時刻からの相対時刻を示すDeltaT_2値が、AutoIndex_2値が示すこれから実行しようとする演奏データ組の待ち時間DeltaTime_2[AutoIndex_2]に一致したか否かを判定する(ステップS1007)。
ステップS1007の判定がNOならば、CPU201は、トラックチャック2に関して、前回のイベントの発生時刻からの相対時刻を示すDeltaT_2値を+1インクリメントさせて、今回の割込みに対応する1TickTime単位分だけ時刻を進行させる(ステップS1008)。その後、CPU201は、図10のフローチャートで示される自動演奏割込み処理を終了する。
ステップS1007の判定がYESならば、CPU201は、伴奏再生を指示するRAM203上の変数Bansouの値が1(伴奏有り)であるか否かを判定する(ステップS1009)(図8(c)のステップS824からS826を参照)。
ステップS1009の判定がYESならば、CPU201は、AutoIndex_2値が示すトラックチャック2に関する伴奏に関するイベントEvent_2[AutoIndex_2]を実行する(ステップS1010)。ここで実行されるイベントEvent_2[AutoIndex_2]が、例えばノートオンイベントであれば、そのノートオンイベントにより指定されるキーナンバー及びベロシティにより、図2の音源LSI204に対して伴奏用の楽音の発音命令が発行される。一方、イベントEvent_2[AutoIndex_2]が、例えばノートオフイベントであれば、そのノートオフイベントにより指定されるキーナンバー及びベロシティにより、図2の音源LSI204に対して発音中の伴奏用の楽音の消音命令が発行される。
一方、ステップS1009の判定がNOならば、CPU201は、ステップS1010をスキップすることにより、今回の伴奏に関するイベントEvent_2[AutoIndex_2]は実行せずに、歌詞に同期した進行のために、次のステップS1011の処理に進んで、イベントを進める制御処理のみを実行する。
ステップS1010の後又はステップS1009の判定がNOの場合に、CPU201は、トラックチャンク2上の伴奏データのための演奏データ組を参照するためのAutoIndex_2値を+1インクリメントする(ステップS1011)。
また、CPU201は、トラックチャンク2に関して今回実行したイベントの発生時刻からの相対時刻を示すDeltaT_2値を0にリセットする(ステップS1012)。
そして、CPU201は、AutoIndex_2値が示す次に実行されるトラックチャンク2上の演奏データ組の待ち時間DeltaTime_2[AutoIndex_2]が0であるか否か、即ち、今回のイベントと同時に実行されるイベントであるか否かを判定する(ステップS1013)。
ステップS1013の判定がNOならば、CPU201は、図10のフローチャートで示される今回の自動演奏割込み処理を終了する。
ステップS1013の判定がYESならば、CPU201は、ステップS1009に戻って、AutoIndex_2値が示すトラックチャンク2上で次に実行される演奏データ組のイベントEvent_2[AutoIndex_2]に関する制御処理を繰り返す。CPU201は、今回同時に実行される回数分だけ、ステップS1009からS1013の処理を繰り返し実行する。以上の処理シーケンスは、例えば和音等のように複数のノートオンイベントが同時タイミングで発音されるような場合に実行される。
図11は、図7のステップS705のソング再生処理の詳細例を示すフローチャートである。
まずCPU201は、図10の自動演奏割込み処理におけるステップS1004で、RAM203上の変数SongIndexに、値がセットされてNull値でなくなっているか否かを判定する(ステップS1101)。このSongIndex値は、現在のタイミングが歌声の再生タイミングになっているか否かを示すものである。
ステップS1101の判定がYESになった、即ち現時点がソング再生のタイミングになったら、CPU201は、図7のステップS703の鍵盤処理により演奏者による図1の鍵盤101上で新たな押鍵が検出されているか否かを判定する(ステップS1102)。
ステップS1102の判定がYESならば、CPU201は、演奏者による押鍵により指定された音高を、発声音高として特には図示しないレジスタ又はRAM203上の変数にセットする(ステップS1103)。
次に、CPU201は、例えばRAM203上の所定の変数の値をチェックすることにより、現在ボコーダモードがオンになっているかオフになっているかを判定する(ステップS1105)。
ステップS1105の判定がボコーダモード:オンならば、CPU201は、ステップS1103で設定された押鍵に基づく音高がセットされた発声音高で図9のステップS909で予め設定されている楽音の音色と所定の発音チャネルで楽音を発音させるためのノートオンデータを生成し、音源LSI204に対して楽音の発音処理を指示する(ステップS1106)。音源LSI204は、CPU201から指定された所定の音色の所定の発音チャネル分の楽音信号を生成、発声音源用楽音出力データ220として、音声合成LSI205内のボコーダモードスイッチ320を介して合成フィルタ部310に入力させる。
ステップS1105の判定がボコーダモード:オフならば、CPU201は、ステップS1106の処理はスキップする。この結果、音声合成LSI205内の音源生成部309からの音源信号の出力が、ボコーダモードスイッチ320を介して合成フィルタ部310に入力される。
続いて、CPU201は、RAM203上の変数SongIndexが示すRAM203上の曲データのトラックチャンク1上のソングイベントEvent_1[SongIndex]から、歌詞文字列を読み出す。CPU201は、読み出した歌詞文字列に対応する歌声音声出力データ321を、ステップS1103で設定された押鍵に基づく音高がセットされた発声音高で発声させるための歌声データ215を生成し、音声合成LSI205に対して発声処理を指示する(ステップS1107)。音声合成LSI205は、図3から図5を用いて説明した統計的音声合成処理の第1の実施形態又は第2の実施形態を実行することにより、RAM203から曲データとして指定される歌詞を、演奏者が鍵盤101上で押鍵した鍵の音高にリアルタイムに対応して歌う歌声音声出力データ321を合成して出力する。
この結果、ステップS1105の判定がボコーダモード:オンならば、演奏者の鍵盤101(図1)での演奏に基づいて音源LSI204が生成、出力する発声音源用楽音出力データ220が、音響モデル部306から入力するスペクトル情報318に基づいて動作する合成フィルタ部310に入力して、ポリフォニック動作で合成フィルタ部310から歌声音声出力データ321が出力される。
一方、ステップS1105の判定がボコーダモード:オフならば、演奏者の鍵盤101(図1)での演奏に基づいて音源生成部309が生成、出力する音源信号が、音響モデル部306から入力するスペクトル情報318に基づいて動作する合成フィルタ部310に入力して、モノフォニック動作で合成フィルタ部310から歌声音声出力データ321が出力される。
一方、ステップS1101の判定により現時点がソング再生のタイミングになったと判定されると共に、ステップS1102の判定がNO、即ち現時点で新規押鍵が検出されていないと判定された場合には、CPU201は、RAM203上の変数SongIndexが示すRAM203上の曲データのトラックチャンク1上のソングイベントEvent_1[SongIndex]から音高のデータを読み出し、この音高を発声音高として特には図示しないレジスタ又はRAM203上の変数にセットする(ステップS1104)。
その後、CPU201は、前述したステップS1105以降の処理を実行することにより、音声合成LSI205に対して歌声音声出力データ321、217の発声処理を指示する(ステップS1105〜S1107)。音声合成LSI205は、図3から図5を用いて説明した統計的音声合成処理の第1の実施形態又は第2の実施形態を実行することにより、演奏者が鍵盤101上でいずれの鍵も押鍵していなくても、RAM203から曲データとして指定される歌詞を、同じく曲データとしてデフォルト指定されている音高に対応して歌う歌声音声出力データ217を合成して出力する。
ステップS1107の処理の後、CPU201は、RAM203上の変数SongIndexが示す再生を行ったソング位置を、RAM203上の変数SongIndex_preに記憶させる(ステップS1108)。
更に、CPU201は、変数SongIndexの値をNull値にクリアして、これ以降のタイミングをソング再生のタイミングでない状態にする(ステップS1109)。その後、CPU201は、図11のフローチャートで示される図7のステップS705のソング再生処理を終了する。
前述したステップS1101の判定がNOである、即ち現時点がソング再生のタイミングではないときには、CPU201は、図7のステップS703の鍵盤処理により演奏者による図1の鍵盤101上で効果付加のための「いわゆるレガート奏法」が検出されているか否かを判定する(ステップS1110)。前述したように、このレガート奏法は、例えば、ステップS1102でソング再生のための第1鍵が押鍵されている状態で、他の第2鍵を繰り返し連打する奏法である。この場合、CPU201は、ステップS1110において、第2鍵の押鍵を検出したときに、その押鍵の繰返し速度が所定の速度以上であるときに、レガート奏法が実行されていると判定する。
ステップS1108の判定がNOならば、CPU201はそのまま、図11のフローチャートで示される図7のステップS705のソング再生処理を終了する。
ステップS1110の判定がYESの場合には、CPU201は、ステップS1103で設定されている発声音高と、「いわゆるレガート奏法」により図1の鍵盤101上で繰り返し連打されている鍵の音高との音高差を計算する(ステップS1111)。
続いて、CPU201は、ステップS1109で計算した音高差に応じたエフェクト量を、図2の音声合成LSI205内の音響効果付加部322(図3)に設定する(ステップS1112)。この結果、音響効果付加部322は、音声合成部302内の合成フィルタ部310かから出力される歌声音声出力データ321に対して、図9のステップS908で選択された音響効果の付加処理を上記エフェクト量で実行し、最終的な歌声音声出力データ217(図2、図3)を出力する。
以上のステップS1111とステップS1112の処理により、音声合成部302から出力される歌声音声出力データ321に対して、ビブラート効果、トレモロ効果、又はワウ効果などの音響効果を付加することが可能となり、多彩な歌声表現が実現される。
ステップS1109の処理の後、CPU201は、図11のフローチャートで示される図7のステップS705のソング再生処理を終了する。
図3及び図4を用いて説明したHMM音響モデルを採用した統計的音声合成処理の第1の実施形態では、特定の歌い手や歌唱スタイルなどの微妙な音楽表現を再現することが可能となり、接続歪みのない滑らかな歌声音質を実現することが可能となる。更に、学習結果315(モデルパラメータ)の変換により、別の歌い手への適応や、多様な声質や感情を表現することが可能となる。更に、HMM音響モデルにおける全てのモデルパラメータを、学習用歌声データ311及び学習用歌声音声データ312からから自働学習できることにより、特定の歌い手の特徴をHMM音響モデルとして獲得し、合成時にそれらの特徴を再現するような歌声合成システムを自動的に構築することが可能となる。歌声の基本周波数や長さは楽譜のメロディやテンポに従うものであり、ピッチの時間変化やリズムの時間構造を楽譜から一意に定めることもできるが、そこから合成される歌声は単調で機械的なものになり,歌声としての魅力に欠けるものである。実際の歌声には,楽譜通りの画一化されたものだけではなく,声質のほかに声の高さやそれらの時間的な構造の変化により、それぞれの歌い手独自のスタイルが存在している。HMM音響モデルを採用する統計的音声合成処理の第1の実施形態では、歌声におけるスペクトル情報とピッチ情報の時系列変化をコンテキストに基づいてモデル化することができ、さらに楽譜情報を考慮することで、実際の歌声により近い歌声再生が可能となる。更に、統計的音声合成処理の第1の実施形態で採用されるHMM音響モデルは、あるメロディに沿った歌詞を発声する際、歌い手の声帯の振動や声道特性における歌声の音響特徴量系列がどのような時間変化をしながら発声されるか、という生成モデルに相当する。更に、統計的音声合成処理の第1の実施形態において、音符と歌声の「ずれ」のコンテキストを含むHMM音響モデルを用いることにより、歌い手の発声特性に依存して複雑に変化する傾向を有する歌唱法を正確に再現できる歌声音声の合成が実現される。このようなHMM音響モデルを採用する統計的音声合成処理の第1の実施形態の技術が、例えば電子鍵盤楽器100によるリアルタイム演奏の技術と融合されることにより、素片合成方式等による従来の電子楽器では不可能であった、モデルとなる歌い手の歌唱法及び声質を正確に反映させることのでき、まるでその歌い手が実際に歌っているような歌声の演奏を、電子鍵盤楽器100の鍵盤演奏等に合わせて、実現することが可能となる。
図3及び図5を用いて説明したDNN音響モデルを採用した統計的音声合成処理の第2の実施形態では、言語特徴量系列と音響特徴量系列の関係の表現として、統計的音声合成処理の第1の実施形態における決定木に基づくコンテキストに依存したHMM音響モデルが、DNNに置き換えられる。これにより、決定木では表現することが困難な複雑な非線形変換関数によって言語特徴量系列と音響特徴量系列の関係を表現することが可能となる。また、決定木に基づくコンテキストに依存したHMM音響モデルでは、決定木に基づいて対応する学習データも分類されるため、各コンテキストに依存したHMM音響モデルに割り当てられる学習データが減少してしまう。これに対し、DNN音響モデルでは学習データ全体から単一のDNNを学習するため、学習データを効率良く利用することが可能となる。このため、DNN音響モデルはHMM音響モデルよりも高精度に音響特徴量を予測することが可能となり、合成音声の自然性を大幅に改善することが可能となる。更に、DNN音響モデルでは、フレームに関する言語特徴量系列を利用可能することが可能となる。即ち、DNN音響モデルでは、予め音響特徴量系列と言語特徴量系列の時間的な対応関係が決められるため、HMM音響モデルでは考慮することが困難であった「現在の音素の継続フレーム数」、「現在のフレームの音素内位置」などのフレームに関する言語特徴量を利用することが可能となる。これにより、フレームに関する言語特徴量を用いることで、より詳細な特徴をモデル化することが可能となり,合成音声の自然性を改善することが可能となる。このようなDNN音響モデルを採用する統計的音声合成処理の第2の実施形態の技術が、例えば電子鍵盤楽器100によるリアルタイム演奏の技術と融合されることにより、鍵盤演奏等に基づく歌声の演奏を、モデルとなる歌い手の歌唱法及び声質に更に自然に近づけることが可能となる。
以上説明した実施形態では、音声合成方式として統計的音声合成処理の技術を採用することにより、従来の素片合成方式に比較して格段に少ないメモリ容量を実現することが可能となる。例えば、素片合成方式の電子楽器では、音声素片データのために数百メガバイトに及ぶ記憶容量を有するメモリが必要であったが、本実施形態では、図3の学習結果315のモデルパラメータを記憶させるために、わずか数メガバイトの記憶容量を有するメモリのみで済む。このため、より低価格の電子楽器を実現することが可能となり、高音質の歌声演奏システムをより広いユーザ層に利用してもらうことが可能となる。
更に、従来の素片データ方式では、素片データの人手による調整が必要なため、歌声演奏のためのデータの作成に膨大な時間(年単位)と労力を必要としていたが、本実施形態によるHMM音響モデル又はDNN音響モデルのための学習結果315のモデルパラメータの作成では、データの調整がほとんど必要ないため、数分の一の作成時間と労力で済む。これによっても、より低価格の電子楽器を実現することが可能となる。また、一般ユーザが、クラウドサービスとして利用可能なサーバコンピュータ300や或いは音声合成LSI205に内蔵された学習機能を使って、自分の声、家族の声、或いは有名人の声等を学習させ、それをモデル音声として電子楽器で歌声演奏させることも可能となる。この場合にも、従来よりも格段に自然で高音質な歌声演奏を、より低価格の電子楽器として実現することが可能となる。
本実施形態では特に、演奏者は第1のスイッチパネル102でボコーダモードのオン/オフを切り替えることができ、ボコーダモードがオフの場合には、図3の音声合成部302で生成、出力される歌声音声出力データ321は、音響モデル部306によって完全にモデル化された信号となるため、上述のように歌い手の歌声に非常に忠実で自然な歌声とすることができる。一方、ボコーダモードがオンの場合には、音源LSI204で生成された楽器音の発声音源用楽音出力データ220を音源信号とするため、音源LSI204で設定された楽器音の雰囲気が良く残ると共に、歌い手の歌声の声質も良く残った歌声となり、効果的な歌声音声出力データ321を出力させることが可能となる。更に、ボコーダモードでは、ポリフォニック動作が可能であるため、複数の歌声がハモるような効果を奏することも可能となる。これにより、演奏者に指定される各音高に基づいて学習された歌い手の歌声に応じた歌声で良好に歌う電子楽器を提供することが可能となる。
なお、音声合成LSI205の処理能力に余裕があれば、ボコーダモードがオフの場合に、音源生成部309から生成される音源信号をポリフォニックにして合成フィルタ部310からポリフォニックの歌声音声出力データ321が出力されるようにしてもよい。
なお、1つの楽曲の演奏の途中で、ボコーダモードのオン/オフが切り換えられるようにしてもよい。
以上説明した実施形態は、電子鍵盤楽器について本発明を実施したものであるが、本発明は電子弦楽器等他の電子楽器にも適用することができる。
また、図3の発声モデル部308として採用可能な音声合成方式は、ケプストラム音声合成方式には限定されず、LSP音声合成方式をはじめとして様々な音声合成方式を採用することが可能である。
更に、以上説明した実施形態では、HMM音響モデルを用いた統計的音声合成処理の第1の実施形態又はDNN音響モデルを用いた遠後の第2の実施形態の音声合成方式について説明したが、本発明はこれに限られるものではなく、例えばHMMとDNNを組み合わせた音響モデル等、統計的音声合成処理を用いた技術であればどのような音声合成方式が採用されてもよい。
以上説明した実施形態では、歌詞情報は曲データとして与えられたが、演奏者がリアルタイムに歌う内容を音声認識して得られるテキストデータが歌詞情報としてリアルタイムに与えられてもよい。
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
各音高情報がそれぞれ対応付けられている複数の操作子と、
学習用歌詞情報及び学習用音高情報を含む学習用楽譜データと、歌い手の学習用歌声データと、を用いた機械学習処理により学習させた学習済み音響モデルであって、歌わせる歌詞情報と、音高情報と、を入力することにより、前記歌い手の声道をモデル化したスペクトル情報と、前記歌い手の声帯をモデル化した音源情報と、を出力する学習済み音響モデルを記憶しているメモリと、
プロセッサと、
を含み、
前記プロセッサは、
第1モードが選択されている際に、前記複数の操作子のなかのいずれかの操作子への操作に応じて、前記学習済み音響モデルに対して、前記歌詞情報と、前記いずれかの操作子に対応付けられている音高情報と、を入力するとともに、前記入力に応じて前記学習済み音響モデルから出力された前記スペクトル情報と、前記いずれかの操作子に対応付けられている音高情報に応じた楽器音波形データと、に基づいて前記歌い手の歌声を推論した第1楽器音使用推論歌声データを出力する楽器音使用推論歌声データ出力処理、
を実行し、
第2モードが選択されている際に、前記複数の操作子のなかのいずれかの操作子への操作に応じて、前記学習済み音響モデルに対して、前記歌詞情報と、前記いずれかの操作子に対応付けられている音高情報と、を入力するとともに、前記入力に応じて前記学習済み音響モデルから出力された前記スペクトル情報と、前記音源情報と、に基づいて前記歌い手の歌声を推論した第1音源情報使用推論歌声データを出力する音源情報使用推論歌声データ出力処理、
を実行する電子楽器。
(付記2)
付記1に記載の電子楽器において、
前記複数の操作子は、操作された前記いずれかの操作子としての第1操作子と、前記第1操作子からみて設定された条件を満たす第2操作子と、を含み、
前記楽器音使用推論歌声データ出力処理により前記第1楽器音使用推論歌声データが出力されている際に、前記第1操作子への操作が継続している状態で前記第2操作子が繰り返し操作された場合に、前記第1楽器音使用推論歌声データに対して少なくともビブラート、トレモロ及びワウワウのいずれかのエフェクトをかける第1モードエフェクト処理、
を実行し、
前記音源情報使用推論歌声データ出力処理により前記第1音源情報使用推論歌声データが出力されている際に、前記第1操作子への操作が継続している状態で前記第2操作子が繰り返し操作された場合に、前記第1音源情報使用推論歌声データに対して少なくともビブラート、トレモロ及びワウワウのいずれかのエフェクトをかける第2モードエフェクト処理、
を実行する。
(付記3)
付記2に記載の電子楽器において、
前記第1モードエフェクト処理及び第2モードエフェクト処理は、前記第1操作子に対応付けられている音高情報が示す音高と、前記第2操作子に対応付けられている音高情報が示す音高と、の音高差に応じて前記エフェクトの程度をそれぞれ変更している。
(付記4)
付記1から付記3のいずれかに記載の電子楽器において、
前記複数の操作子は、操作された前記いずれかの操作子としての第3操作子と、第4操作子と、を含み、
前記第1モードと前記第2モードとを切り換える切替操作子、を有し、
前記楽器音使用推論歌声データ出力処理は、前記切替操作子の操作により前記第1モードが選択されている際に、前記第3操作子及び前記第4操作子が同時に操作されている場合、前記第3操作子及び前記第4操作子にそれぞれ対応付けられている各音高情報に応じた各楽器音波形データに基づいて、前記歌い手の歌声を推論した複数の前記第1楽器音使用推論歌声データをそれぞれ出力し、
前記音源情報使用推論歌声データ出力処理は、前記切替操作子の操作により前記第2モードが選択されている際に、前記第3操作子及び前記第4操作子が同時に操作されている場合、前記第3操作子及び前記第4操作子のいずれかに対応付けられている音高情報に応じて前記歌い手の声帯をモデル化した音源情報に基づいて、前記歌い手の歌声を推論した前記第1音源情報使用推論歌声データを出力する。
(付記5)
付記1から付記4のいずれかに記載の電子楽器において、
少なくともブラス音、ストリング音、オルガン音、及び動物の鳴き声のいずれかを含む複数の楽器音のなかから前記ブラス音、前記ストリング音、前記オルガン音、及び前記動物の鳴き声のうちのいずれかの楽器音を選択させる選択操作子、
を有し、
前記楽器音使用推論歌声データ出力処理は、前記第1モードが選択されている際に、前記選択操作子により選択された楽器音に応じた前記楽器音波形データに基づいて、前記歌い手の歌声を推論した前記第1楽器音使用推論歌声データを出力する。
(付記6)
付記1から付記5のいずれかに記載の電子楽器において、
前記メモリは、メロディデータと、自動演奏させる伴奏データと、を有する曲データを記憶しており、
前記メロディデータは、各音高情報と、前記各音高情報に応じた音を出力する各タイミング情報と、前記各音高情報に対応付けられている各歌詞情報と、を含み、
前記プロセッサは、
前記伴奏データに基づいて発音部に発音させる伴奏データ自動演奏処理と、
前記学習済み音響モデルに対して、操作された前記いずれかの操作子に対応付けられている音高情報を入力する代わりに、前記メロディデータに含まれる音高情報を入力するとともに、前記メロディデータに含まれる歌詞情報を入力する入力処理と、
を実行し、
前記楽器音使用推論歌声データ出力処理は、前記メロディデータに含まれるタイミング情報が示すタイミングに応じて前記複数の操作子のなかのいずれの操作子も演奏者に操作されなかった場合に、前記入力処理に応じて前記学習済み音響モデルから出力された前記スペクトル情報と、前記入力処理により入力された前記メロディデータに含まれる音高情報に応じた楽器音波形データと、に基づいて、前記歌い手の歌声を推論した第2楽器音使用推論歌声データを、前記メロディデータに含まれるタイミング情報が示すタイミングに合わせて出力し、
前記音源情報使用推論歌声データ出力処理は、前記メロディデータに含まれる音高情報に応じた音を出力するタイミング情報が示すタイミングに応じて前記複数の操作子のなかのいずれの操作子も演奏者に操作されなかった場合に、前記入力処理に応じて前記学習済み音響モデルから出力された前記スペクトル情報と、前記音源情報と、に基づいて、前記歌い手の歌声を推論した第2音源情報使用推論歌声データを、前記メロディデータに含まれるタイミング情報が示すタイミングに合わせて出力する。
(付記7)
各音高情報がそれぞれ対応付けられている複数の操作子と、
学習用歌詞情報及び学習用音高情報を含む学習用楽譜データと、歌い手の学習用歌声データと、を用いた機械学習処理により学習させた学習済み音響モデルであって、歌わせる歌詞情報と、音高情報と、を入力することにより、前記歌い手の声道をモデル化したスペクトル情報と、前記歌い手の声帯をモデル化した音源情報と、を出力する学習済み音響モデルを記憶しているメモリと、
を含む電子楽器のコンピュータに、
第1モードが選択されている際に、前記複数の操作子のなかのいずれかの操作子への操作に応じて、前記学習済み音響モデルに対して、前記歌詞情報と、前記いずれかの操作子に対応付けられている音高情報と、を入力するとともに、前記入力に応じて前記学習済み音響モデルから出力された前記スペクトル情報と、前記いずれかの操作子に対応付けられている音高情報に応じた楽器音波形データと、に基づいて前記歌い手の歌声を推論した第1楽器音使用推論歌声データを出力する楽器音使用推論歌声データ出力処理、
を実行させ、
第2モードが選択されている際に、前記複数の操作子のなかのいずれかの操作子への操作に応じて、前記学習済み音響モデルに対して、前記歌詞情報と、前記いずれかの操作子に対応付けられている音高情報と、を入力するとともに、前記入力に応じて前記学習済み音響モデルから出力された前記スペクトル情報と、前記音源情報と、に基づいて前記歌い手の歌声を推論した第1音源情報使用推論歌声データを出力する音源情報使用推論歌声データ出力処理、
を実行させる方法。
(付記8)
各音高情報がそれぞれ対応付けられている複数の操作子と、
学習用歌詞情報及び学習用音高情報を含む学習用楽譜データと、歌い手の学習用歌声データと、を用いた機械学習処理により学習させた学習済み音響モデルであって、歌わせる歌詞情報と、音高情報と、を入力することにより、前記歌い手の声道をモデル化したスペクトル情報と、前記歌い手の声帯をモデル化した音源情報と、を出力する学習済み音響モデルを記憶しているメモリと、
を含む電子楽器のコンピュータに、
第1モードが選択されている際に、前記複数の操作子のなかのいずれかの操作子への操作に応じて、前記学習済み音響モデルに対して、前記歌詞情報と、前記いずれかの操作子に対応付けられている音高情報と、を入力するとともに、前記入力に応じて前記学習済み音響モデルから出力された前記スペクトル情報と、前記いずれかの操作子に対応付けられている音高情報に応じた楽器音波形データと、に基づいて前記歌い手の歌声を推論した第1楽器音使用推論歌声データを出力する楽器音使用推論歌声データ出力処理、
を実行させ、
第2モードが選択されている際に、前記複数の操作子のなかのいずれかの操作子への操作に応じて、前記学習済み音響モデルに対して、前記歌詞情報と、前記いずれかの操作子に対応付けられている音高情報と、を入力するとともに、前記入力に応じて前記学習済み音響モデルから出力された前記スペクトル情報と、前記音源情報と、に基づいて前記歌い手の歌声を推論した第1音源情報使用推論歌声データを出力する音源情報使用推論歌声データ出力処理、
を実行させるプログラム。