(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面を参照して説明する。
【0011】
<第1実施形態>
図1は、実施形態に係る歌唱合成装置1のシステム構成例を示す図である。
この図に示されるように、歌唱合成装置1は、コンピューター10に指示部20とスピーカー30とを接続した構成となっている。このうち、コンピューター10には、音声合成用のアプリケーションプログラムがインストールされるとともに、音声合成用データや、楽曲データなどが予め格納されている。
指示部20は、88鍵からなる鍵盤22を含み、鍵の操作に応じた情報を例えばMIDI(Musical Instrument Digital Interface)規格に準拠して出力する。鍵の操作に応じた情報には、例えば押鍵が発生したことを示す情報(キーオンデータ)や、当該鍵の音高(ノートデータ)などが含まれる。なお、本実施形態において歌詞に基づく音声合成(歌唱)の指示は、プレイヤーが演奏の進行に合わせて歌詞パートの旋律にしたがって鍵を操作することに行われる。
【0012】
図2は、歌唱合成装置1の構成を示すブロック図である。コンピューター10では、上記アプリケーションプログラムをCPUが実行することによって、シーケンサー110、楽音合成部118、バッファ格納部122、バッファ読出部126、音声合成部128およびミキサー140の機能ブロックが構築される。
この歌唱合成装置1では、複数の楽曲データがディスクドライブなどの記憶部102に格納されている。楽曲データは、楽曲の伴奏音を1以上のトラックで規定する伴奏データと、歌詞を示す歌詞データとの組から構成される。ここで、プレイヤーが所望の楽曲を選択すると、当該楽曲の伴奏データがシーケンサー110にセットされる一方、当該楽曲の歌詞データがバッファ格納部122にセットされる構成となっている。
【0013】
シーケンサー110は、セットされた楽曲の伴奏データを解釈して、発生すべき楽音を規定する楽音情報を、演奏の開始時から演奏の進行に合わせて時系列の順で出力する。ここで、伴奏データとして例えばMIDI規格に準拠したものが用いられる場合、当該伴奏データはイベントと、イベント同士の時間間隔を示すデュレーションとの組み合わせで規定される。このため、シーケンサー110は、デュレーションで示される時間が経過する毎にイベントを示すデータを楽音情報として出力することになる。つまり、シーケンサー110が楽曲の伴奏データを解釈することで当該楽曲の自動演奏が行われる。
また、シーケンサー110は、楽音情報を出力するとともに、演奏開始からのデュレーションの積算値を出力する。この積算値によって、演奏の進行状態、すなわち楽曲のどの部分が演奏されているか把握することができる。
楽音合成部118は、いわゆる音源であり、シーケンサー110から供給される楽音情報にしたがって伴奏音の波形を示す楽音信号を合成する。
なお、本実施形態においては必ずしも伴奏演奏を音として出力する必要はないので、楽音合成部118は必須ではない。また、シーケンサー110もデュレーションの積算値を出力できれば良いので、楽音情報を出力することは必須ではない。
【0014】
バッファ格納部122は、セットされた楽曲の歌詞データをデュレーションの積算値、すなわち演奏の進行に合わせて記憶部102から読み出してバッファ124に格納する。バッファ124は、コンピューター10のメモリーに割り当てられた一時記憶領域である。バッファ読出部126は、指示部20から押鍵されたことを示すキーオンデータが供給されたときにバッファ124から歌詞データを1音符分読み出す。
ライブラリ130には、単一の音素や音素から音素への遷移部分など、歌唱音声の素材となる各種の音声素片の波形を定義した音声素片データが予めデータベース化して登録されている。
音声合成部128は、読み出された歌詞データの1音符分の文字を指示部20から供給されたノートデータの音高で、ライブラリ130に登録された音声素片データを用いて音声合成して、歌唱音声の波形を示す音声信号として出力する。
【0015】
ミキサー140は、楽音合成部118による楽音信号と歌唱合成部128による音声信号とをミキシングする。このため、ミキサー140がミキシング部として機能する。D/A変換部142は、ミキシングされた信号をアナログ変換して出力し、外部スピーカー30は、アナログ変換された信号を内蔵アンプにより適宜増幅した後、音響変換して放音する。
【0016】
図3は、歌詞データの一例を示す図である。この図の例では、楽曲として「さくら」の歌詞データが旋律(歌詞の上に表示された楽譜)とともに示されている。
歌詞データは、歌詞を示す文字情報であり、歌唱に対応した文字(文字列を含む。以下同じ)が図において破線で区切られて旋律の音符に対応付けられている。また、この例では、1つの音符に1つ文字が割り当てられているが、曲(歌詞)によっては、1つの音符に対して複数の文字が割り当てられる場合もある。
この例において、歌詞データは、1〜4小節分が第1ブロック、5〜8小節分が第2ブロック、9〜12小節分が第3ブロック、13および14小節分が第4ブロックとして、それぞれ分割されている。このブロックは、バッファ格納部122によってバッファ124に格納される単位である。
なお、「さくら」の著作権の保護期間は、我が国の著作権法第51条及び第57条の規定によりすでに満了している。
【0017】
次に、本実施形態に係る歌唱合成装置1における動作について説明する。この実施形態では、プレイヤーの操作などに応じて、コンピューター10又は指示部20から演奏開始が指示されると、第1に、演奏の進行に合わせて楽音信号を合成する楽音信号合成処理と、第2に、バッファ124に歌詞データをブロック単位で格納する格納処理と、第3に、指示部20の鍵操作に応じて歌詞データの文字を読み出す読出処理と、が互いに独立して実行される。
このうち、楽音信号合成処理は、シーケンサー110が演奏の進行に合わせて楽音情報を供給する一方、楽音合成部118が当該楽音情報に基づいて楽音信号を合成する処理であって、この処理自体は周知である(例えば特開平7−199975号公報等参照)。このため、楽音信号合成処理の詳細については説明を省略し、以下においては、格納処理と読出処理とについて説明する。
【0018】
図4は、格納処理を示すフローチャートである。
演奏開始が指示されると、バッファ格納部122は、歌詞データのうちの第1ブロックをバッファ124に格納する(ステップSa11)。次に、バッファ格納部122は、変数nに初期値の「2」をセットし(ステップSa12)、現時点において進行している演奏箇所が第n番目のセット地点に達しているか否か、つまり、演奏が当該セット地点の歌唱位置に対応する位置に達しているか否かを判別する(ステップSa13)。ここで、第n番目のセット地点とは、歌詞データにおける第nブロックの終了点よりも時間軸において手前となるように楽曲毎に予め定められた地点である。
図3の例でいえば、第2ブロックのセット地点P2は4小節目の開始点に設定され、第3ブロックのセット地点P3は8小節目の開始点に設定され、第4ブロックのセット地点P4は12小節目の開始点に設定される。
なお、第1ブロックのセット地点P1は、楽曲の開始地点であり、すでにステップSa11で処理済であるので、変数nに応じて次のステップSa13〜Sa16の処理を実行するにあたってnの初期値は「1」ではなく「2」としている。
【0019】
演奏が進行している地点が第nブロックのセット地点に達していない場合(ステップSa13の判別結果が「No」である場合)、処理手順がステップSa13に戻る。一方、演奏進行地点が第nブロックのセット地点に達したとき(ステップSa13の判別結果が「Yes」になるとき)、バッファ格納部122は、歌詞データのうち第nのブロックをバッファ124に格納する(ステップSa14)。
この後、バッファ格納部122は現時点における変数nが最大値であるか否かを判別する(ステップSa15)。ここで、変数nの最大値とは、歌詞データのブロック個数であり、
図3の例でいえば「4」である。 変数nが最大値であれば(ステップSa15の判別結果が「Yes」であれば)、この楽曲についての格納処理は終了する。
一方、変数nが最大値でなければ(ステップSa15の判別結果が「No」であれば)、バッファ格納部122は、変数を「1」だけインクリメントして(ステップSa16)、処理手順をステップSa13に戻す。
【0020】
このような格納処理によれば、歌詞データの各ブロックのそれぞれは演奏の進行に対して先んじたタイミングでバッファ124に格納される。バッファ124に格納された歌詞データを、指示部20による指示にしたがって読み出して音声信号を合成するための処理が、次の読出処理である。
【0021】
図5は、読出処理を示すフローチャートである。
まず、演奏開始が指示されると、バッファ読出部126は、バッファ124に対する歌詞データの読出ポインタを先頭の音符にセットする(ステップSb11)。
図3の例でいえば、符号Stが付された音符である。
次に、バッファ読出部126は、鍵盤22で押鍵が発生したか否か、具体的には指示部20からキーオンデータが供給されたか否かを判別する(ステップSb12)。
押鍵が発生していなければ(ステップSb12の判別結果が「No」であれば)、処理手順が再びステップSb12に戻る。一方、押鍵が発生したとき(ステップSb12の判別結果が「Yes」となったとき)、バッファ読出部126は、現時点においてセットされている読出ポインタの音符に対応した文字をバッファ124から読み出して歌唱合成部128に供給する(ステップSb13)。
図3の例において読出ポインタが音符Stにセットされている場合に、「さ」の文字がバッファ124から読み出されて歌唱合成部128に供給される。
【0022】
続いて、バッファ読出部126は、読出ポインタが歌詞データの最終音符、
図3の例でいえば符号Endが付された音符であるか否かを判別する(ステップSb14)。この判別結果が「Yes」であれば、歌唱パートが終了してバッファ124から読み出すべき歌詞データが存在しないことを示すので、この楽曲についての読出処理は終了する。
一方、この判別結果が「No」であれば、バッファ読出部126は、歌詞データの読出ポインタを次の音符にセットして(ステップSb15)、処理手順をステップSb12に戻す。これにより、押鍵が発生すると、読出ポインタの音符に対応した文字がバッファ124から読み出されて歌唱合成部128に供給された後、次の押鍵に備えて読出ポインタが例えば
図3に示されるように次の音符に移動させられる。
なお、バッファ124の記憶領域はリングバッファとして使用され、ステップSb13で読み出された文字の記憶領域は、次のブロックの格納(
図4のステップSa14)に利用される。したがって、バッファ124には、最大で1ブロックのセット地点以降の歌詞データと次の1ブロックの歌詞データとが格納されることになるので、それに相当するデータ量が十分格納可能な容量があれば良い。また、バッファ124はリングバッファ形式である必要はなく、FIFO形式等他の形式であっても良い。
【0023】
音声合成部128は、押鍵によって供給された歌詞データの文字で示される音素列を音声素片の列に変換し、これらの音声素片に対応する音声素片データをライブラリ130から選択して接続するとともに、接続した音声素片データに対して各々のピッチを指示部20から供給されたノートデータに合わせて変換して、歌唱音声の波形を示す音声信号を合成する。このため、押鍵されたときに、当該押鍵によって読み出された文字が指定された音高で音声合成されることになる。
なお、
図3の例において、スラーのように複数の音符列にまたがって文字が対応付けられている箇所では、当該音符列における最初の音符に対応した押鍵の操作によって当該文字が読み出され、当該音符列における2番目以降の音符に対応した押鍵の操作では当該文字に対応して合成した音声(当該文字の母音)の音高を当該鍵のノートに応じて変更する処理となる。
【0024】
図6は、本実施形態における具体的な動作を示す図である。
この図では、「さくら」(
図3参照)が楽曲として選択された場合において、プレイヤーが、伴奏音を聞きながら演奏の進行に合わせて旋律における「ラ」の鍵を矩形状の枠51において横方向の長さで示される時間分押下したときに、「さ」が当該期間分、音声合成されることを示している。同様にして縦方向で音高が規定される鍵を、プレイヤーが枠52〜57で示されるように押下したときに、「く」、「ら」、「さ」、「く」、「ら」、「や」が順番に音声合成されることを示している。
なお、例えば、枠53ではなく、旋律の「シ」とは異なる「ファ」の鍵が押下されたとき、音声合成部128には、歌詞データの文字である「ら」とともに、当該鍵のノートデータとして「ファ」が供給されるので、「ら」の歌詞は「ファ」の音高で合成される。
【0025】
本実施形態によれば、歌詞データの各ブロックのそれぞれが演奏の進行に対し先行したタイミングでバッファ124に順次格納されるので、バッファ124に歌詞データの1曲分を格納する構成と比較して、バッファ124に要求される容量は少なくて済む。また、バッファ124に格納された歌詞データは、指示部20による発声が指示される毎に音符の順で読み出されて音声信号が合成される。このため、プレイヤーが演奏の進行に合わせて鍵操作することによって、音声合成による歌唱することが可能になる。
【0026】
<第2実施形態>
第1実施形態では、音声合成による歌唱の指示が、プレイヤーが伴奏音に合わせて鍵盤22を操作することによって行われるので、適切なタイミングで鍵盤22が操作されないと、伴奏音に対しずれて歌唱されてしまう。そこで、この点を考慮した第2実施形態について説明する。
【0027】
図7は、第2実施形態において構築される機能ブロックを示す図である。
この図において、第1実施形態(
図2参照)と相違する点は、第1に、シーケンサー110から出力されるデュレーションの積算値がバッファ読出部126にも供給される点である。このため、第2実施形態ではバッファ読出部126が、バッファ格納部122と同様に演奏の進行状態を把握することができる構成となっている。第2実施形態では、第2に、バッファ読出部126が、バッファ124に格納された歌詞データをスキャニングして、当該歌詞データに予め定められた設定地点を特定する構成となっている。
【0028】
図8は、設定地点の一例を示す図である。この図の例では、
図3で示された「さくら」の歌詞データに対して設定地点Qが3小節目の開始点に1つ定められている状態を示している。
第2実施形態に係る歌唱合成装置1の動作にあっては、楽音信号合成処理および格納処理については第1実施形態と同様であるが、読出処理が第1実施形態と相違している。そこで、第2実施形態の動作については、読出処理を中心に説明する。
【0029】
図9は、第2実施形態における読出処理を示すフローチャートである。
まず、演奏開始が指示されると、バッファ読出部126は、バッファ124に格納された第1ブロックの歌詞データをスキャニングして、当該歌詞データに予め定められた設定地点を特定する(ステップSb101)。この後、バッファ読出部126は、読出ポインタを先頭の音符にセットし(ステップSb11)、鍵盤22で押鍵が発生したか否かを判別する(ステップSb12)。
【0030】
押鍵が発生したとき、バッファ読出部126は、現在の演奏箇所が設定地点よりも時間軸において前であるか否かを判別する(ステップSb201)。演奏箇所が設定地点よりも前である場合、すなわち、演奏が設定地点に到達していない場合(ステップSb201の判別結果が「Yes」である場合)、バッファ読出部126は、さらに現在の読出ポインタが設定地点よりも時間軸において後であるか否かを判別する(ステップSb202)。ここで、読出ポインタは、第1実施形態と同様に歌詞の旋律における音符単位で移動し、当該音符には歌詞データ文字が対応付けられているので、歌詞データのうち、押鍵があったときに読み出しの対象を示すことになる。
読出ポインタが設定地点よりも後である場合、すなわち設定地点よりも後の歌詞データが読み出しの対象になっている場合(ステップSb202の判別結果が「Yes」である場合)、バッファ読出部126は、当該設定地点よりも後に位置する読出ポインタの音符に対応した文字の読み出しを禁止する(ステップSb203)。
【0031】
したがって、現在の演奏箇所が設定地点よりも時間的に手前であって、読出ポインタが設定地点よりも時間的に過ぎているときには、押鍵が発生しても、当該押鍵に対応して歌詞データが読み出されないことになる。
この後、バッファ読出部126は、音声合成部128に対して音声合成の禁止を指示する(ステップSb204)。このため、指示部20で押鍵操作されても、発声しないことになる。
この後、処理手順がステップSb12に戻る。
【0032】
一方、演奏箇所が設定地点よりも前でない場合(ステップSb201の判別結果が「No」である場合)、または、読出ポインタが設定地点よりも後でない場合(ステップSb202の判別結果が「No」である場合)、バッファ読出部126は、読出ポインタの音符に対応した文字の読み出しを解禁し(ステップSb211)、音声合成部128に対して音声合成の禁止を指示していれば、音声合成についても解禁を指示する(ステップSb212、Sb213)。
この後、バッファ読出部126は、現時点においてセットされている読出ポインタの音符に対応した文字をバッファ124から読み出して歌唱合成部128に供給し(ステップSb13)、読出ポイントが歌詞データの最終音符であるか否かを判別し(ステップSb14)。判別結果が「Yes」であれば、この楽曲についての読出処理が終了する一方、この判別結果が「No」であれば、バッファ読出部126は、歌詞データの読出ポインタを次の音符にセットして(ステップSb15)、処理手順をステップSb12に戻す。
【0033】
図10は、第2実施形態における具体的な動作を示す図である。
この図において、「さくら」(
図8参照)が楽曲として選択された場合に、(a)は、演奏の進行に合致したタイミングで鍵盤を操作したときの動作を示しており、
図6とは同一である。これに対して(b)は、演奏の進行に対してやや早めて鍵を操作したときの動作を示している。
ここで、演奏箇所が設定地点Qよりも前であって、読出ポインタが設定地点Qよりも後である場合に、音符57pに対応して「ラ」の音高の鍵がプレイヤーによって枠61のようなタイミングで操作されても、音符57pに対応した歌詞データは読み出されず(ステップSb203)、発声も禁止されるので(ステップSb204)、結果的に当該鍵の操作が無視される。このため、枠61の×印で示されるように音声合成されない。再度、同一の鍵が枠62のように操作されても、読出ポインタが設定地点Qよりも後であるので、当該鍵の操作が無視されて、音声合成されない。
やがて演奏が進行して設定地点Qより前でなくなった場合、音符57pに対応した鍵が枠57のように操作されると、禁止されていた歌詞データの読み出しが解禁されるとともに(ステップSb211)、発声も解禁されるので(ステップSb213)、当該鍵の操作によって「や」の歌詞が音声合成される。
なお、読出ポインタが設定地点Qよりも後でない場合に、第1実施形態と同様な処理となる。
【0034】
このように第2実施形態によれば、演奏が設定地点Qに到達する前であって読出ポインタが設定地点Qよりも後である場合に、読出対象となっている歌詞データは、演奏が設定地点Qに到達するまで読み出されず、発声も禁止される一方、演奏が設定地点Qに到達すれば、再び鍵操作に応じて発声が可能になる。したがって、第2実施形態によれば、不適切な鍵操作によって演奏に対して歌唱がずれてしまっても、設定地点において再び一致させた状態から再開させることができる。
【0035】
なお、第2実施形態では、設定地点を1箇所としたが複数箇所に設けても良い。また、設定地点を歌詞データに設けたが、演奏の進行に応じた地点を特定できれば良いので、伴奏データに設けても良い。伴奏データに設けるとき、バッファ読出部126は、シーケンサー110にセットされた設定地点が設けられた伴奏データをスキャニングして、設定地点を特定することになる(ステップSb101)。
【0036】
<第3実施形態>
第1実施形態では、音符に対応付けられた歌詞データが、鍵盤22に対する操作の順に読み出されるので、
図6において枠53bのような鍵の操作により音高を異ならせる程度でしか、歌唱をアレンジすることができない。そこで、この点を考慮した第3実施形態について説明する。
この第3実施形態において構築される機能ブロックについては、
図7に示した第2実施形態と同様であり、歌詞データについても、設定地点が定められている点において第2実施形態と同様である。第3実施形態に係る歌唱合成装置1では、第2実施形態と比較して読出処理が相違している。
【0037】
図11は、第3実施形態における読出処理を示すフローチャートである。
この
図11が、
図9と相違する点は、第1に
図9におけるステップSb203の後のSb204がステップSb205に置き換わった点、および、第2に
図9におけるステップSb212、Sb213がなくなった点にある。
詳細には、押鍵が発生して、現在の演奏箇所が設定地点よりも時間的に手前であって、読出ポインタが設定地点よりも時間的に過ぎているとき、バッファ読出部126は、当該設定地点よりも後に位置する読出ポインタの音符に対応した文字の読み出しを禁止する(ステップSb203)までは第2実施形態と同様であるが、この後、バッファ読出部126は、音声合成部128に対して最後に合成されていた音声の母音部分を押鍵で指示された音高に変更または継続するように指示する(ステップSb205)。
このため、現在の演奏箇所が設定地点よりも時間的に手前であって、読出ポインタが設定地点よりも時間的に過ぎているときに、押鍵が発生すると、読出ポインタに対応した音符に関連付けられた歌詞データは読み出されないが、最後に合成されていた音声の伸ばし部分である母音が押鍵で指示された音高に変更される。
なお、第2実施形態におけるステップSb212、Sb213が第3実施形態でなくなった理由は、ステップSb204における発声の禁止がなくなったことに伴って、当該禁止を解除するための処理が不要となったためである。
【0038】
図12は、第3実施形態における具体的な動作を示す図である。
この図に示されるように、読出ポインタが設定地点Qよりも前の音符56pであるとき、当該音符56pにしたがって「シ」の鍵が枠56aに示されるように押下されたとき、「ら」の歌詞データが読み出されて音声合成されるとともに、読出ポインタが次の音符57pに移動する(ステップSb15)。
この状態において、例えば「ラ」の鍵が枠56bに示されるように押下されたとき、演奏箇所が設定地点Qよりも前であって、読出ポインタが設定地点Qよりも後であるので、音符57pに対応した歌詞データは読み出されないが(ステップSb203)、音声合成部128によって、最後に合成されていた「ら」の母音「あ」が、押下された鍵の「ラ」の音高に変更される(ステップSb205)。
引き続き「ソ」の鍵が枠56cで、「ラ」の鍵が枠56dで、「シ」の鍵が枠56eで、それぞれ順番に押下されたとき、演奏箇所が設定地点Qよりも前であって、読出ポインタが設定地点Qよりも後であるので、母音「あ」が、押下された鍵の「ソ」、「ラ」、「シ」の音高に順番に変更される(ステップSb205)。
なお、演奏が進行して設定地点Qより前でなくなった場合、音符57pに対応した鍵が枠57のように操作されると、禁止されていた歌詞データの読み出しが解禁されるので(ステップSb211)、当該鍵の操作によって「や」の歌詞が音声合成される。
【0039】
このように第3実施形態によれば、演奏が設定地点に到達する前であって読出ポインタが設定地点よりも後であるときに次々と押鍵されると、読出ポインタに対応した音符に関連付けられた歌詞データは読み出されないが、最後に合成されていた音声の伸ばし部分である母音が押鍵で指示された音高に次々と変更される。このため、設定地点の直前音符についての歌詞をアレンジして歌唱させることが可能になる。
【0040】
なお、第3実施形態においても、第2実施形態と同様に、設定地点を1箇所だけではなく、複数箇所に設けても良いし、設定地点を歌詞データ以外の例えば伴奏データに設けても良い。
【0041】
<応用・変形例>
本発明は、上述した第1乃至第3実施形態に限定されるものではなく、例えば次に述べるような各種の応用・変形が可能である。なお、次に述べる応用・変形の態様は、任意に選択された一または複数を適宜に組み合わせることもできる。
例えば、ある歌詞データのブロックの代替となるブロックを1ないし複数予め用意しておき、次にセットする歌詞データのブロックとして、その代替となるブロックを含めてプレイヤーに選択させるようにしても良い。
【0042】
各実施形態において伴奏データとしてMIDIデータを用いたが、本発明はこれに限られない。例えばコンパクトディスクを再生させることによって楽音信号を得る構成としても良い。この構成において演奏の進行状態を把握するための情報としては、経過時間情報や残り時間情報を用いることができる。
【0043】
また、音声合成部128は、指示部20から供給される打鍵速度(ベロシティデータ)を、合成する音声の強弱(音声信号の振幅)に反映させても良い。
指示部20としては、鍵盤22を有するものを例に挙げて説明したが、キーオンやノートなどを出力することができる演奏機器であればなんでも良い。例えばドラムパッドのようなものを用いても良い。
なお、コンピューター10は、携帯電話機や、タブレット型であっても良いし、外部スピーカー30に頼らずにこれらの機器に内蔵されたスピーカーを用いても良いのはもちろん、指示部20とコンピューター10とが一体となっている構成など、歌唱合成装置1はあらゆる形態であっても良い。