(57)【要約】  生成する歌唱音の発音音高を、発音する音節に応じた期間で確定することができる歌唱音生成装置を提供する。ＣＰＵ１０は、音高を指定した、発音または発音解除の指示を取得し、取得された音節情報に応じて判定時間幅Ｔを決定し、取得された発音または発音解除の指示に基づいて、判定時間幅Ｔの経過後に単一の発音音高を確定し、取得された音節情報と確定された発音音高とに基づいて歌唱音を生成する。
2019003350.tif 000002
【特許請求の範囲】
【請求項１】
発音する１つの音節を示す音節情報を取得する音節取得部と、
前記音節取得部により取得された音節情報に応じて待機時間を決定する決定部と、
音高を指定した、発音または発音解除の指示を取得する指示取得部と、
前記指示取得部により取得された発音または発音解除の指示に基づいて、前記指示取得部により発音の指示が取得されてから前記決定部により決定された待機時間の経過後に、単一の発音音高を確定する確定部と、
前記音節取得部により取得された音節情報と前記確定部により確定された発音音高とに基づいて歌唱音を生成する生成部と、を有する歌唱音生成装置。
【請求項２】
前記生成部は、いずれの音高の発音の指示も維持されていない場合における第１の音高を指示する発音の指示に基づき前記第１の音高で前記歌唱音の生成を開始し、前記第１の音高を指示する発音の指示から前記待機時間の経過までの間に前記第１の音高とは異なる第２の音高を指示する発音の指示が取得され且つ、前記第２の音高を指示する発音の指示が前記待機時間の経過したタイミングで維持されているときは、生成する前記歌唱音の発音音高を前記第１の音高から前記第２の音高に修正する請求項１に記載の歌唱音生成装置。
【請求項３】
前記生成部は、いずれの音高の発音の指示も維持されていない場合における第１の音高を指示する発音の指示に基づき前記第１の音高で前記歌唱音の生成を開始し、前記第１の音高を指示する発音の指示から前記待機時間の経過までの間に前記第１の音高とは異なる第２の音高を指示する発音の指示が取得された場合であっても、前記待機時間の経過したタイミングで、前記第１の音高を指示する発音の指示が維持され且つ前記第２の音高を指示する発音の指示が維持されていないときは、生成する前記歌唱音の発音音高を修正しない請求項１または２に記載の歌唱音生成装置。
【請求項４】
前記決定部は、前記待機時間を、前記取得された音節情報が示す音素種別に基づき決定する請求項１〜３のいずれか１項に記載の歌唱音生成装置。
【請求項５】
前記決定部は、前記待機時間を、前記取得された音節情報が示す音量エンベロープの波形に基づき決定する請求項１〜３のいずれか１項に記載の歌唱音生成装置。
【請求項６】
前記音節取得部は、複数の音節情報の中から、予め定められた順番で、前記１つの音節を示す音節情報を取得する請求項１〜５のいずれか１項に記載の歌唱音生成装置。
【請求項７】
発音する１つの音節を示す音節情報を取得する音節取得ステップと、
前記音節取得ステップにより取得された音節情報に応じて待機時間を決定する決定ステップと、
音高を指定した、発音または発音解除の指示を取得する指示取得ステップと、
前記指示取得ステップにより取得された発音または発音解除の指示に基づいて、前記指示取得ステップにより発音の指示が取得されてから、前記決定ステップにより決定された待機時間の経過後に、単一の発音音高を確定する確定ステップと、
前記音節取得ステップにより取得された音節情報と前記確定ステップにより確定された発音音高とに基づいて歌唱音を生成する生成ステップと、を有する歌唱音生成方法。
【請求項８】
発音する１つの音節を示す音節情報を取得する音節取得ステップと、
前記音節取得ステップにより取得された音節情報に応じて待機時間を決定する決定ステップと、
音高を指定した、発音または発音解除の指示を取得する指示取得ステップと、
前記指示取得ステップにより取得された発音または発音解除の指示に基づいて、前記指示取得ステップにより発音の指示が取得されてから、前記決定ステップにより決定された待機時間の経過後に、単一の発音音高を確定する確定ステップと、
前記音節取得ステップにより取得された音節情報と前記確定ステップにより確定された発音音高とに基づいて歌唱音を生成する生成ステップと、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発音指示に基づき歌唱音を生成する歌唱音生成装置及び方法、プログラムに関する。
【背景技術】
【０００２】
従来、音声合成技術を用い、演奏者による演奏に応じて歌唱合成して発音する装置が知られている（特許文献１）。この装置は、歌詞データが示す歌詞における歌唱位置を演奏に応じて更新する。すなわちこの装置は、１つ１つの演奏操作に応じて、予め歌詞データにおいて定められている順番で歌詞を読み出し、演奏で指定される音高で単音の歌唱音を発音する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４７３５５４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、鍵盤等の演奏操作子の操作においては、ユーザのミスタッチに起因して複数の操作子が操作され、複数の音高が指定されてしまう場合がある。上記従来の装置で、ミスタッチにより複数の発音が指示されると、意図せずに歌詞が余分に読み出されるおそれがある。仮に、指示された複数の音高のそれぞれに逐一対応して歌唱音が生成・出力されるとすると、聴衆にミスタッチが明確に認識されてしまうおそれがある。【０００５】
本発明の目的は、生成する歌唱音の発音音高を、発音する音節に応じた期間で確定することができる歌唱音生成装置及び方法、プログラムを提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本発明によれば、発音する１つの音節を示す音節情報を取得する音節取得部と、前記音節取得部により取得された音節情報に応じて待機時間を決定する決定部と、音高を指定した、発音または発音解除の指示を取得する指示取得部と、前記指示取得部により取得された発音または発音解除の指示に基づいて、前記指示取得部により発音の指示が取得されてから前記決定部により決定された待機時間の経過後に、単一の発音音高を確定する確定部と、前記音節取得部により取得された音節情報と前記確定部により確定された発音音高とに基づいて歌唱音を生成する生成部と、を有する歌唱音生成装置が提供される。【０００７】
なお、上記括弧内の符号は例示である。
【発明の効果】
【０００８】
本発明によれば、生成する歌唱音の発音音高を、発音する音節に応じた期間で確定することができる。
【図面の簡単な説明】
【０００９】
【図１】歌唱音生成装置の模式図である。
【図２】電子楽器のブロック図である。
【図３】演奏が行われる場合の処理の流れの一例を示すフローチャートである。
【図４】歌詞テキストデータの一例を示す図である。
【図５】音声素片データの種類の一例を示す図である。
【図６】音素種別情報の模式図である。
【図７】音節を発音する際の経過時間に対する音量エンベロープを示す図である。
【図８】出力音生成処理のフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施の形態を説明する。
【００１１】
図１は、本発明の一実施の形態に係る歌唱音生成装置の模式図である。この歌唱音生成装置は、一例として鍵盤楽器である電子楽器１００として構成され、本体部３０及びネック部３１を有する。本体部３０は、第１面３０ａ、第２面３０ｂ、第３面３０ｃ、第４面３０ｄを有する。第１面３０ａは、複数の鍵から成る鍵盤部ＫＢが配設される鍵盤配設面である。第２面３０ｂは裏面である。第２面３０ｂにはフック３６、３７が設けられる。フック３６、３７間には不図示のストラップを架けることができ、演奏者は通常、ストラップを肩に掛けて鍵盤部ＫＢの操作等の演奏を行う。従って、肩掛けした使用時で、特に鍵盤部ＫＢの音階方向（鍵の配列方向）が左右方向となるとき、第１面３０ａ及び鍵盤部ＫＢが聴取者側を向き、第３面３０ｃ、第４面３０ｄはそれぞれ概ね下方、上方を向く。ネック部３１は本体部３０の側部から延設される。ネック部３１には、進み操作子３４、戻し操作子３５をはじめとする各種の操作子が配設される。本体部３０の第４面３０ｄには、液晶等で構成される表示ユニット３３が配設される。
【００１２】
電子楽器１００は、演奏操作子への操作に応じて歌唱模擬を行う楽器である。ここで、歌唱模擬とは、歌唱合成により人間の声を模擬した音声を出力することである。鍵盤部ＫＢの各鍵は白鍵、黒鍵が音高順に並べられ、各鍵は、それぞれ異なる音高に対応付けられている。電子楽器１００を演奏する場合、ユーザは、鍵盤部ＫＢの所望の鍵を押下する。電子楽器１００はユーザにより操作された鍵を検出し、操作された鍵に応じた音高の歌唱音を発音する。なお、発音される歌唱音の音節の順番は予め定められている。
【００１３】
図２は、電子楽器１００のブロック図である。電子楽器１００は、ＣＰＵ（Central Processing Unit）１０と、タイマ１１と、ＲＯＭ（Read Only Memory）１２と、ＲＡＭ（Random Access Memory）１３と、データ記憶部１４と、演奏操作子１５と、他操作子１６と、パラメータ値設定操作子１７と、表示ユニット３３と、音源１９と、効果回路２０と、サウンドシステム２１と、通信Ｉ／Ｆ（Interface）と、バス２３と、を備える。ＣＰＵ１０は、電子楽器１００全体の制御を行う中央処理装置である。タイマ１１は、時間を計測するモジュールである。ＲＯＭ１２は制御プログラムや各種のデータなどを格納する不揮発性のメモリである。ＲＡＭ１３はＣＰＵ１０のワーク領域及び各種のバッファなどとして使用される揮発性のメモリである。表示ユニット３３は、液晶ディスプレイパネル、有機ＥＬ（Electro-Luminescence）パネルなどの表示モジュールである。表示ユニット３３は、電子楽器１００の動作状態、各種設定画面、ユーザに対するメッセージなどを表示する。
【００１４】
演奏操作子１５は、主として音高を指定する演奏操作を受け付けるモジュールである。本実施の形態では、鍵盤部ＫＢ、進み操作子３４、戻し操作子３５は演奏操作子１５に含まれる。一例として、演奏操作子１５が鍵盤である場合、演奏操作子１５は、各鍵に対応するセンサのオン／オフに基づくノートオン／ノートオフ、押鍵の強さ（速さ、ベロシティ）などの演奏情報を出力する。この演奏情報は、ＭＩＤＩ（musical instrument digital interface）メッセージ形式であってもよい。他操作子１６は、例えば、電子楽器１００に関する設定など、演奏以外の設定を行うための操作ボタンや操作つまみなどの操作モジュールである。パラメータ値設定操作子１７は、主として歌唱音の属性についてのパラメータを設定するために使用される、操作ボタンや操作つまみなどの操作モジュールである。このパラメータとしては、例えば、和声（Harmonics）、明るさ（Brightness）、共鳴（Resonance）、性別要素（Gender Factor）等がある。和声とは、声に含まれる倍音成分のバランスを設定するパラメータである。明るさとは、声の明暗を設定するパラメータであり、トーン変化を与える。共鳴とは、歌唱音声や楽器音の、音色や強弱を設定するパラメータである。性別要素とは、フォルマントを設定するパラメータであり、声の太さ、質感を女性的、或いは、男性的に変化させる。外部記憶装置３は、例えば、電子楽器１００に接続される外部機器であり、例えば、音声データを記憶する装置である。通信Ｉ／Ｆ２２は、外部機器と通信する通信モジュールである。バス２３は電子楽器１００における各部の間のデータ転送を行う。
【００１５】
データ記憶部１４は、歌唱用データ１４ａを格納する。歌唱用データ１４ａには歌詞テキストデータ、音韻情報データベースなどが含まれる。歌詞テキストデータは、歌詞を記述するデータである。歌詞テキストデータには、曲ごとの歌詞が音節単位で区切られて記述されている。すなわち、歌詞テキストデータは歌詞を音節に区切った文字情報を有し、この文字情報は音節に対応する表示用の情報でもある。ここで音節とは、１回の演奏操作に応じて出力する音のまとまりである。音韻情報データベースは、音声素片データ（音節情報）を格納するデータベースである。音声素片データは音声の波形を示すデータであり、例えば、音声素片のサンプル列のスペクトルデータを波形データとして含む。また、音声素片データには、音声素片の波形のピッチを示す素片ピッチデータが含まれる。歌詞テキストデータ、音声素片データは、それぞれ、データベースにより管理されてもよい。
【００１６】
音源１９は、複数の発音チャンネルを有するモジュールである。音源１９には、ＣＰＵ１０の制御の基で、ユーザの演奏に応じて１つの発音チャンネルが割り当てられる。歌唱音を発音する場合、音源１９は、割り当てられた発音チャンネルにおいて、データ記憶部１４から演奏に対応する音声素片データを読み出して歌唱音データを生成する。効果回路２０は、音源１９が生成した歌唱音データに対して、パラメータ値設定操作子１７により指定された音響効果を適用する。サウンドシステム２１は、効果回路２０による処理後の歌唱音データを、デジタル／アナログ変換器によりアナログ信号に変換する。そして、サウンドシステム２１は、アナログ信号に変換された歌唱音を増幅してスピーカなどから出力する。
【００１７】
図３は、電子楽器１００による演奏が行われる場合の処理の流れの一例を示すフローチャートである。ここでは、ユーザにより演奏曲の選択と選択した曲の演奏とが行われる場合の処理について説明する。また、説明を簡単にするため、複数の鍵が同時に操作された場合であっても、単音のみを出力する場合について説明する。この場合、同時に操作された鍵の音高のうち、最も高い音高のみについて処理してもよいし、最も低い音高のみについて処理してもよい。なお、以下に説明する処理は、例えば、ＣＰＵ１０がＲＯＭ１２やＲＡＭ１３に記憶されたプログラムを実行し、電子楽器１００が備える各種構成を制御する制御部として機能することにより実現される。
【００１８】
電源がオンにされると、ＣＰＵ１０は、演奏する曲を選択する操作がユーザから受け付けられるまで待つ（ステップＳ１０１）。なお、一定時間経過しても曲選択の操作がない場合は、ＣＰＵ１０は、デフォルトで設定されている曲が選択されたと判断してもよい。ＣＰＵ１０は、曲の選択を受け付けると、選択された曲の歌唱用データ１４ａの歌詞テキストデータを読み出す。そして、ＣＰＵ１０は、歌詞テキストデータに記述された先頭の音節にカーソル位置を設定する（ステップＳ１０２）。ここで、カーソルとは、次に発音する音節の位置を示す仮想的な指標である。次に、ＣＰＵ１０は、鍵盤部ＫＢの操作に基づくノートオンを検出したか否かを判定する（ステップＳ１０３）。ＣＰＵ１０は、ノートオンが検出されない場合、ノートオフを検出したか否かを判別する（ステップＳ１０７）。一方、ノートオンを検出した場合、すなわち新たな押鍵を検出した場合は、ＣＰＵ１０は、音を出力中であればその音の出力を停止する（ステップＳ１０４）。次にＣＰＵ１０は、ノートオンに応じた歌唱音を発音する出力音生成処理を実行する（ステップＳ１０５）。
【００１９】
この出力音生成処理を略説する。ＣＰＵ１０はまず、カーソル位置に対応する音節の音声素片データを読み出し、ノートオンに対応する音高で、読み出した音声素片データが示す波形の音を出力する。具体的には、ＣＰＵ１０は、音声素片データに含まれる素片ピッチデータが示す音高と、操作された鍵に対応する音高との差分を求め、この差分に相当する周波数だけ波形データが示すスペクトル分布を周波数軸方向に移動させる。これにより、電子楽器１００は、操作された鍵に対応する音高で歌唱音を出力することができる。次に、ＣＰＵ１０は、カーソル位置（読出位置）を更新し（ステップＳ１０６）、処理をステップＳ１０７に進める。
【００２０】
ここで、ステップＳ１０５、Ｓ１０６の処理に係るカーソル位置の決定と歌唱音の発音について、具体例を用いて説明する。なお、ステップＳ１０５の出力音生成処理の詳細については図８でも説明する。まず、カーソル位置の更新について説明する。図４は、歌詞テキストデータの一例を示す図である。図４の例では、歌詞テキストデータには、５つの音節ｃ１〜ｃ５の歌詞が記述されている。各字「は」、「る」、「よ」、「こ」、「い」は、日本語のひらがなの１字を示し、各字が１音節に対応する。ＣＰＵ１０は、音節単位でカーソル位置を更新する。例えば、カーソルが音節ｃ３に位置している場合、「よ」に対応する音声素片データをデータ記憶部１４から読み出し、「よ」の歌唱音を発音する。ＣＰＵ１０は、「よ」の発音が終了すると、次の音節ｃ４にカーソル位置を移動させる。このように、ＣＰＵ１０は、ノートオンに応じて次の音節にカーソル位置を順次移動させる。
【００２１】
次に、歌唱音の発音について説明する。図５は、音声素片データの種類の一例を示す図である。ＣＰＵ１０は、カーソル位置に対応する音節を発音させるために、音韻情報データベースから、音節に対応する音声素片データを抽出する。音声素片データには、音素連鎖データと、定常部分データの２種類が存在する。音素連鎖データとは、「無音（＃）から子音」、「子音から母音」、「母音から（次の音節の）子音又は母音」など、発音が変化する際の音声素片を示すデータである。定常部分データは、母音の発音が継続する際の音声素片を示すデータである。例えば、カーソル位置が音節ｃ１の「は（ｈａ）」に設定されている場合、音源１９は、「無音→子音ｈ」に対応する音声連鎖データ「＃−ｈ」と、「子音ｈ→母音ａ」に対応する音声連鎖データ「ｈ−ａ」と、「母音ａ」に対応する定常部分データ「ａ」と、を選択する。そして、ＣＰＵ１０は、演奏が開始されて押鍵を検出すると、音声連鎖データ「＃−ｈ」、音声連鎖データ「ｈ−ａ」、定常部分データ「ａ」に基づく歌唱音を、操作された鍵に応じた音高、操作に応じたベロシティで出力する。このようにして、カーソル位置の決定と歌唱音の発音が実行される。
【００２２】
図３のステップＳ１０７でノートオフを検出した場合は、ＣＰＵ１０は、音を出力中であればその音の出力を停止して（ステップＳ１０８）、処理をステップＳ１０９に進める。一方、ノートオフが検出されない場合は、ＣＰＵ１０は処理をステップＳ１０９に進める。ステップＳ１０９では、ＣＰＵ１０は、演奏が終了したか否かを判別する。そしてＣＰＵ１０は、演奏を終了していない場合は処理をステップＳ１０３に戻す。一方、演奏を終了した場合は、ＣＰＵ１０は、音を出力中であればその音の出力を停止して（ステップＳ１１０）、図３に示す処理を終了する。なお、ＣＰＵ１０は、演奏を終了したか否かを、例えば、選択曲の最後尾の音節が発音されたか否か、あるいは他操作子１６により演奏を終了する操作が行われた否か、などに基づき判別できる。
【００２３】
図６は、音素種別情報の模式図である。ＲＯＭ１２には図６に示す音素種別情報Ｑが記憶されている。音素種別情報Ｑは、歌唱音声に包含され得る各音素の種別を指定する。具体的には、音素種別情報Ｑは、音声合成処理に適用される音声素片を構成する各音素を第１種別ｑ１と第２種別ｑ２とに区別する。ここで、音節によって母音開始遅延量が異なる。母音開始遅延量は、音節の発音開始から当該音節における母音の発音開始までの遅延量であり、母音の直前に位置する子音の継続長（子音区間長）とも換言され得る。例えば、母音自体（あ[a]，い[i]，う[M]，え[e]，お[o]）は母音開始遅延量が０である（[]内はX-SAMPAに準拠した音素表記）。第１種別ｑ１は、母音開始遅延量が相対的に大きい音素（例えば母音開始遅延量が所定の閾値を上回る音素）の種別であり、第２種別ｑ２は、母音開始遅延量が第１種別ｑ１の音素と比較して相対的に小さい音素（例えば母音開始遅延量が閾値を下回る音素）の種別である。例えば、半母音（/w/,/y/），鼻音（/m/,/n/），破擦音（/ts/），摩擦音（/s/,/f/），拗音（/kja/,/kju/,/kjo/）等の子音は第１種別ｑ１に分類され、母音（/a/,/i/,/u/），流音（/r/,/l/），破裂音（/t/,/k/,/p/）等の音素は第２種別ｑ２に分類される。なお、例えば２個の母音を連続させた２重母音については、後方の母音にアクセントがある場合には第１種別ｑ１に分類し、前方の母音にアクセントがある場合には第２種別ｑ２に分類するという取扱いを採用してもよい。
【００２４】
ＣＰＵ１０は、音素種別情報Ｑを参照し、読み出された音節情報で指定される音節（複数の音素で構成される場合は最初の音素）に該当する音素種別を特定する。例えばＣＰＵ１０は、音節の最初の音素が第１種別ｑ１、第２種別ｑ２、母音の何れに該当するかを判定する。最初の音素は、音声素片データ中の音素連鎖データから取得可能である。なお、歌唱用データ１４ａには、複数の音節情報のそれぞれに、図６に示す音素種別情報が対応付けられていてもよい。その場合、ＣＰＵ１０は、読み出された音節情報で指定される音節に該当する音素種別を、当該音節情報に対応付けられた音素種別情報により特定してもよい。
【００２５】
図８でも述べるが、ＣＰＵ１０は、音素種別を特定（抽出）できた場合、その音素種別に基づいて判定時間幅Ｔを決定する（例えば、母音開始遅延量に応じて決定）。またＣＰＵ１０は、音素種別を特定できなかった場合、読み出された音節情報が示す音量エンベロープの波形データに基づき判定時間幅Ｔを決定する。ここで、音素種別を特定（抽出）できないケースには、例えば、電子楽器１００に音素種別情報Ｑが記憶されておらず、且つ、読み出された音節情報に音素種別情報が対応付けられていないケースが該当する。このほか音素種別を特定（抽出）できないケースには、音素種別情報Ｑは記憶されているが、読み出された音節情報に対応する音素種別が音素種別情報Ｑに登録されておらず、且つ読み出された音節情報に音素種別情報が対応付けられていないケース等が該当する。
【００２６】
図７は、音節を発音する際の経過時間に対する音量エンベロープを示す図である。ＣＰＵ１０は、音素種別を特定できなかった場合、例えば、読み出された音節情報が示す音量エンベロープの波形が立ち上がりからピークに達するまでの時間に基づき判定時間幅Ｔを決定する。波形の立ち上がり時点ｔ１からピーク時点ｔ３までの時間をｔＰとする。ＣＰＵ１０は、時間ｔＰの所定割合（例えば、７０％）に相当する、時点ｔ１から時点ｔ２までの時間を、判定時間幅Ｔと決定する。
【００２７】
図８は、図３のステップＳ１０５で実行される出力音生成処理のフローチャートである。まず、ＣＰＵ１０は、カーソル位置に対応する音節の音節情報（音声素片データ）を読み出す（ステップＳ２０１）。カーソル位置に対応する音節が、今回発音する音節である。従ってＣＰＵ１０は、複数の音節情報の中から、予め定められた順番で、発音する１つの音節を示す音節情報を取得する。次にＣＰＵ１０は、読み出した音節情報から音素種別を特定可能か否かを判別する（ステップＳ２０２）。ここでは上述したように、ＣＰＵ１０は、読み出された音節情報で指定される音節に該当する音素種別が音素種別情報Ｑ（図６）に登録されているか、または音節情報に音素種別情報が対応付けられている場合に、音素種別を特定可能と判別する。なお、何らかの事情により音素種別情報Ｑを参照できない場合も、音節情報で指定される音節に該当する音素種別が音素種別情報Ｑに登録されていない場合に該当する。
【００２８】
その判別の結果、ＣＰＵ１０は、音素種別を特定可能な場合は音節情報を特定し（ステップＳ２０３）、特定した音節情報に基づいて判定時間幅Ｔを決定する（ステップＳ２０４）。例えばＣＰＵ１０は、発音する音節（最初の音素）の母音開始遅延量に応じて判定時間幅Ｔを決定する。具体的には、ＣＰＵ１０は、音素種別が母音のときは母音開始遅延量が０であるので、判定時間幅Ｔを０と決定する。ＣＰＵ１０は、音素種別が第２種別ｑ２のときは判定時間幅Ｔを所定値に決定し、音素種別が第１種別ｑ１のときは、母音開始遅延量が比較的大きいため、判定時間幅Ｔを、上記所定値よりも大きい値に決定する。その後、処理はステップＳ２０６に進む。
【００２９】
ステップＳ２０２の判別の結果、読み出した音節情報から音素種別を特定可能でない場合は、ＣＰＵ１０は、読み出された音節情報から取得される波形データに基づいて判定時間幅Ｔを決定する（ステップＳ２０５）。すなわち、上述したように、ＣＰＵ１０は、音節情報が示す音量エンベロープの波形（図７）における立ち上がりからピークに達するまでの時間ｔＰの所定割合（例えば、７０％）を、判定時間幅Ｔと決定する。なお、所定割合は例示の値に限定されない。また、判定時間幅Ｔは時間ｔＰより短ければよく、時間ｔＰから所定の時間を差し引いた値を判定時間幅Ｔとして決定してもよい。その後、処理はステップＳ２０６に進む。
【００３０】
ステップＳ２０６では、ＣＰＵ１０は、ステップＳ１０３におけるノートオンの検出タイミングと上記決定した判定時間幅Ｔとに基づいて、ミスタッチを判定するための判定タイミングを算出する。判定時間幅Ｔ（待機時間）は、誤操作の判定のために設けられる期間であり、ノートオンの検出タイミングから判定時間幅Ｔが経過した時点が判定タイミングとなる。なお、ステップＳ１０３でノートオンが検出された時に計時が開始されている。ノートオンの検出タイミングから判定タイミングまでの間に音高を複数指定する操作が行われた場合、ＣＰＵ１０は、ミスタッチがあったと判定できる。次に、ＣＰＵ１０は、読み出した音節情報から波形データを抽出する（ステップＳ２０７）。次にＣＰＵ１０は、ノートオンに対応する音高で、抽出した波形データが示す波形の音を生成し、出力する。具体的には、ＣＰＵ１０は、音声素片データに含まれる素片ピッチデータが示す音高と、ノートオンに対応する音高との差分を求め、この差分に相当する周波数だけ波形データが示すスペクトル分布を周波数軸方向に移動させる。これにより、電子楽器１００は、操作された鍵に対応する音高で歌唱音を出力することができる。
【００３１】
次にＣＰＵ１０は、演奏情報を蓄積するための記憶領域をＲＡＭ１３（またはデータ記憶部１４でもよい）に確保する（ステップＳ２０９）。この記憶領域は、判定タイミングが到来するまでになされた演奏操作子１５の演奏操作を示す情報（ノートオン、ノートオフ）を記憶するための領域である。演奏操作子１５の演奏操作は、音高を指定した、発音または発音解除の指示に該当し、ＣＰＵ１０は、この指示を取得する指示取得部に該当する。次にＣＰＵ１０は、ステップＳ１０３で検出したノートオンに関する情報（音高とタイミング）を記憶領域に記憶する（ステップＳ２１０）。そしてＣＰＵ１０は、判定タイミングが到来したか否かを判別する（ステップＳ２１１）。
【００３２】
その判別の結果、判定タイミングが到来していない場合は、ＣＰＵ１０は、新たな演奏操作（ノートオンまたはノートオフ）が検出されたか否かを判別する（ステップＳ２１２）。そしてＣＰＵ１０は、新たな演奏操作が検出されない場合は、処理をステップＳ２１１に戻す（ステップＳ２１２）。また、新たな演奏操作が検出された場合は、ＣＰＵ１０は、新たな演奏操作を示す演奏情報を記憶領域に記憶して（ステップＳ２１３）、処理をステップＳ２１１に戻す。従って、新たな発音指示または発音解除指示が検出される毎に、その情報が蓄積される。
【００３３】
ステップＳ２１１の判別の結果、判定タイミングが到来した場合は、ＣＰＵ１０は、処理をステップＳ２１４に進める。ＣＰＵ１０は、ステップＳ２１４〜Ｓ２１７で、ステップＳ１０３で検出されたノートオンと、判定タイミングの到来までに検出されたノートオンまたはノートオフとに基づいて、単一の発音音高を確定する処理を実行する。まず、ＣＰＵ１０は、記憶領域に蓄積された演奏情報に基づいて、音の出力を直ちに停止すべきか否かを判別する（ステップＳ２１４）。具体的には、ＣＰＵ１０は、ノートオン状態の（押下され離操作されていない）鍵が存在していない場合に、音の出力を直ちに停止すべきと判定する。音の出力を直ちに停止すべきと判定した場合（ステップＳ２１５：ＹＥＳ）、ＣＰＵ１０は、出力中の音を停止し（ステップＳ２１６）、図８に示す処理を終了する。一方、音の出力を直ちに停止すべきでないと判定した場合は、ＣＰＵ１０は、記憶領域に記憶された演奏情報に基づいて、出力すべき音高を検出する（ステップＳ２１７）。これにより、出力すべき単一の音高が確定する。
【００３４】
ここで、出力すべき音高の検出について具体的に説明する。まず、ステップＳ１０３では、いずれの音高の発音の指示も維持されていない場合（全鍵が離鍵状態）において検出された発音の指示（ノートオン）であり、このノートオンの音高を「第１の音高」と呼称する。従って、ステップＳ２０８では第１の音高で歌唱音の生成が開始される。また、第１の音高を指定する発音の指示の後で、判定タイミングの到来前に、第１の音高とは異なる「第２の音高」を指定する発音の指示（ノートオン）があった場合を考える。
【００３５】
一般に、演奏時のミスタッチの訂正が必要となるパターンは複数想定される。ここでは、一例として、第１パターン、第２パターンについて説明する。第１パターンは、所望鍵（例えば、Ｃ３）を操作しようとして、別の鍵（例えば、Ｄ３）を押下操作してしまうパターンである。ユーザは、ミスタッチを是正するために、最初に行った押下操作（ノートオン）を短い時間で取り止めて（ノートオフ）、改めて所望鍵を押下（ノートオン）することが想定される。そして、ユーザは通常、所望鍵を押下した後はその操作を所望の時間長維持する。第２パターンは、所望鍵（例えば、Ｃ３）を操作しようとして、隣接する鍵（例えば、Ｄ３）と所望鍵を同時に押下操作してしまうパターンである。ユーザは、ミスタッチを是正するために、最初に押下した２つの鍵に対する操作（ノートオン）のうち、所望鍵に対する操作を維持したまま、誤操作の鍵のみを離操作（ノートオフ）することが想定される。
【００３６】
ＣＰＵ１０は、記憶領域に記憶された演奏情報を参照し、判定タイミングの到来までに最初のノートオンとは別の音高を指定するノートオンが検出された場合は、判定タイミングの到来時点で押鍵状態を維持した鍵を、所望鍵であると判定する。そしてＣＰＵ１０は、所望鍵と判定された鍵に対応する音高（例えば、Ｃ３）を、出力すべき音高として検出する。このほか、最初は所望鍵を押下したが、その後、所望鍵の押下を継続したまま一時的に他の鍵を押下して離す、というミスタッチも考えられる。この場合は、最初のノートオンの音高が出力すべき音高として検出される。なお、最初に押下した鍵が離鍵されると共に、最初の鍵とは異なる鍵が２以上押下され、それら２以上の鍵が判定タイミングの到来時点で押下状態となっている場合も考えられる。この場合は、押下状態となっている２以上の鍵のうち最後に押下された鍵の音高が、出力すべき音高として検出されるとしてもよい。
【００３７】
なお、ミスタッチにおいて、所望鍵から空間的に離間した鍵を操作してしまうことは稀であることが想定される。そのため、ミスタッチの判定対象とする操作を、隣接する鍵の操作に限定してもよい。この場合、隣接しない鍵の操作は、新たに行われた正常な操作として扱ってよい。つまり、離間した鍵の操作は、ステップＳ１０３の処理で検出された操作として扱ってもよい。また、上述の所望鍵の判定方法は一例であり、ＣＰＵ１０は、演奏情報に含まれるノートオン、ノートオフ、ベロシティなど任意の情報を参照して、所望鍵を判定してもよい。
【００３８】
次に、ＣＰＵ１０は、出力中の音高を修正すべきか否かを判別する（ステップＳ２１８）。具体的には、ＣＰＵ１０は、ステップＳ２０８で生成した音高と、ステップＳ２１７で検出した音高とが一致しないか否かを確認し、両者が一致しない場合に、出力中の音高を修正すべきと判別する。そしてＣＰＵ１０は、出力中の音高を修正すべきでないと判別した場合は、図８に示す処理を終了させる。この場合、音高修正はなされない。一方、出力中の音高を修正すべきと判別した場合は、ＣＰＵ１０は、出力中の音の音高を、ステップＳ２１７で検出した音高に変更（修正）するよう調整して（ステップＳ２１９）、図８に示す処理を終了させる。例えばＣＰＵ１０は、ピッチシフトにより音高を変更し、このピッチシフトにおいては、シフトする音高の差分に相当する周波数だけ、波形データが示すスペクトル分布を周波数軸方向に移動させる。ＣＰＵ１０は例えば、２０セント単位など、段階的に音高を変更してもよい。
【００３９】
このように、図８に示す処理によれば、判定タイミングの到来までは、ノートオンがあっても新たな音節が読み出されることがない。すなわち、誤操作の訂正操作の全てが歌詞の読み出しに反映されて意図しない先の歌詞までが読み出されてしまうということがない。特に、単一の発音音高を確定する処理（ステップＳ２１４〜Ｓ２１７）を要約すると次のようになる。
【００４０】
まず、第１の音高を指示する発音の指示から判定タイミングの到来までの間に第１の音高とは異なる第２の音高を指示する発音の指示が取得され且つ、その第２の音高を指示する発音の指示が判定タイミングにおいて維持されているときは、第２の音高が、出力すべき音高として検出される。この場合、生成する歌唱音の発音音高が第１の音高から第２の音高に修正される（Ｓ２１９）。これにより、判定時間幅Ｔの範囲内で、操作し直しによる音高修正が可能となる。ミスタッチに対して、発音する音節（すなわち歌詞）を変えないまま、消音せずに短時間で音高を修正できるので、聴感上、ミスタッチがあったことを感じさせにくい。
【００４１】
一方、第１の音高を指示する発音の指示から判定タイミングの到来までの間に第１の音高とは異なる第２の音高を指示する発音の指示が取得された場合であっても、判定タイミングの到来時に第１の音高を指示する発音の指示が維持され且つ第２の音高を指示する発音の指示が維持されていないときは、生成する歌唱音の発音音高は修正されない。これにより、判定時間幅Ｔの範囲内でミス操作をしてもそれが判定タイミングの到来前に解消されたなら元の音高が維持される。
【００４２】
本実施の形態によれば、ＣＰＵ１０は、取得された音節情報に応じて判定時間幅Ｔを決定し、取得された発音または発音解除の指示に基づいて、判定時間幅Ｔの経過後に単一の発音音高を確定し、取得された音節情報と確定された発音音高とに基づいて歌唱音を生成する。これにより、生成する歌唱音の発音音高を、発音する音節に応じた期間で確定することができる。
【００４３】
特に、ＣＰＵ１０は、判定時間幅Ｔを、取得された音節情報が示す音素種別に基づき決定するか、または取得された音節情報が示す音量エンベロープの波形に基づき決定する。これにより、例えば、音程感覚が薄い音節情報に対してミス操作の是正機会を長くすることで、小さな違和感にて正規の音高を発音できる。すなわち、母音や母音開始遅延量が小さい音節は、ミスタッチ是正のための音高修正が目立ちやすい。一方、子音区間は母音区間に比べて音程感が薄い。そこでＣＰＵ１０は、音素種別に基づき判定時間幅Ｔを決定する場合、母音開始遅延量に応じて判定時間幅Ｔを決定する。すなわちＣＰＵ１０は、母音開始遅延量が大きい音素については、母音開始遅延量が小さい音素に対して相対的に判定時間幅Ｔを長く設定する。これにより、ミスタッチを目立ちにくくしつつも、母音開始遅延量が大きい音節に関してはミスタッチの是正機会を長く確保できる。
【００４４】
また、音節情報が示す音量エンベロープの波形（図７）に基づいて判定時間幅Ｔを決定する場合、ＣＰＵ１０は、波形の立ち上がりからピークに達するまでの時間ｔＰよりも短い時間を判定時間幅Ｔとして決定する。これにより、発音音量が十分に立ち上がる前に生成音高を修正可能にして、ミスタッチを目立ちにくくすることができる。
【００４５】
またＣＰＵ１０は、最初のノートオンと、判定タイミングの到来までに検出されたノートオンまたはノートオフとに基づいて、単一の発音音高を確定する。これにより、判定タイミングの到来前における操作のやり直しによる音高修正が可能であると共に、一時的なミス操作で音高が逐一修正されることを回避できる。
【００４６】
なお、判定時間幅Ｔは絶対時間で規定することに限定されない。例えば、テンポに応じた相対的な時間であってもよい。また、判定時間幅Ｔを音素種別に基づき決定する場合、第１種別ｑ１と第２種別ｑ２のような２段階に限定されず、音素種類毎、あるいは音素種類グループ毎に異なる値の判定時間幅Ｔを決定してもよい。
【００４７】
なお、本実施の形態では、演奏操作子１５が鍵盤である場合について説明したが、演奏操作子１５は、ギターのように弦が並べて配置された形状であってもよい。また、音高を指定した発音または発音解除の指示は、鍵のような操作子で入力される構成に限定されない。また、演奏操作子１５は、鍵盤や弦、或いは、音高指定用の複数のボタンをタッチパネルに表示したものであってもよい。例えば、アプリ上でのタッチ操作により音高が指定される場合、ノートオン操作が継続したまま音高が変化するというミス操作も想定されるからである。また、演奏操作子１５は、複数の異なる音高を入力するための操作受付部が空間的に並べて配置されたものであってもよい。また、ＭＩＤＩ形式のデータを扱う場合について説明したがこれに限られない。例えば、ＣＰＵ１０は、マイク入力などの音声データを解析し、発音のタイミングや音高を抽出することで、発音または発音解除の指示を取得してもよい。従って、本発明の歌唱音生成装置が適用される装置は鍵盤楽器に限らない。
【００４８】
また、本実施の形態では、歌唱される歌詞として日本語の歌詞を例示したがこれには限らず、他言語であってもよい。１文字と１音節とは必ずしも対応しない。例えば、濁点を有する「だ」（ｄａ）は、「た」（ｔａ）と「"」の２文字が１音節に対応する。また、例えば英語の歌詞が「september」の場合、「sep」「tem」「ber」の３音節となる。「sep」は１音節であるが、「s」「e」「p」の３文字が１音節に対応する。ＣＰＵ１０は、演奏操作子１５をユーザが操作する度に、各音節を、操作された鍵の音高で順次発音する。
【００４９】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【００５０】
なお、本発明を達成するためのソフトウェアによって表される制御プログラムを記憶した記憶媒体を、本楽器に読み出すことによって同様の効果を奏するようにしてもよく、その場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した、非一過性のコンピュータ読み取り可能な記録媒体は本発明を構成することになる。また、プログラムコードを伝送媒体等を介して供給してもよく、その場合は、プログラムコード自体が本発明を構成することになる。なお、これらの場合の記憶媒体としては、ＲＯＭのほか、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード等を用いることができる。「非一過性のコンピュータ読み取り可能な記録媒体」は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含む。
【符号の説明】
【００５１】
１０  ＣＰＵ（音節取得部、決定部、指示取得部、確定部、生成部）
１００  電子楽器
【図１】
2019003350.tif 000003
【図２】
2019003350.tif 000004
【図３】
2019003350.tif 000005
【図４】
2019003350.tif 000006
【図５】
2019003350.tif 000007
【図６】
2019003350.tif 000008
【図７】
2019003350.tif 000009
【図８】
2019003350.tif 000010
【国際調査報告】
2019003350.tif 000011
2019003350.tif 000012
2019003350.tif 000013
2019003350.tif 000014