[1.実施形態]
[1.1.構成]
図1は、この発明の一実施形態である歌唱合成システムを実現するコンピュータ1の構成を示すブロック図である。図1において、コンピュータ1は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HD(Hard Disk)104、表示部105、操作部106、データ入出力部107、D/A(Digital to Analog)コンバータ108、アンプ109およびスピーカ110を有している。アンプ109およびスピーカ110以外の構成部は、バス115を介して接続されており、互いにデータの送受信が可能である。
CPU101は汎用的なデータ処理を行うマイクロプロセッサであり、ROM102に記憶されたBIOS(Basic Input/Output System)等の制御用プログラムおよびHD104に記憶されたOS(Operating System)に従い、コンピュータ1の他の構成部の制御処理を行う。
ROM102はBIOS等の制御用プログラムを格納する不揮発性メモリである。また、RAM103はCPU101や他の構成部が利用するデータを一時的に記憶するための揮発性メモリである。ROM102内のBIOSは、コンピュータ1の電源が投入されたときに、CPU101によって読み出され、RAM103に書き込まれる。CPU101は、このRAM103内のBIOSに従ってハードウェアの利用環境を構築する。
HD104は大容量の記憶領域を有する不揮発性のメモリであり、HD104に記憶されるデータは書き換え可能である。HD104には、OSと、各種のアプリケーションと、各アプリケーションにより利用されるデータが記憶されている。CPU101は、BIOSによるハードウェア環境の構築後、HD104からOSを読み出してRAM103に書き込み、OSに従ってGUI(Graphical User Interface)環境およびアプリケーションの実行環境の構築等の処理を行う。
HD104に記憶されているアプリケーションのうち主要なものとして、歌唱合成アプリケーションがある。CPU101は、マウス操作等により、歌唱合成アプリケーションの実行指示をユーザから受け取ると、HD104から歌唱合成アプリケーションを読み出してRAM103に書き込み、歌唱合成アプリケーションに従って各種処理を行う環境を構築する。このようにしてコンピュータ1は、本実施形態に係る歌唱合成システムとして機能する。
表示部105は、液晶ディスプレイと、CPU101による制御の下、液晶ディスプレイを駆動する駆動回路とを有し、文字、図形等の情報を表示する。操作部106はキーパッドやマウス等を有し、ユーザによって行われる操作内容を反映したデータをCPU101に送信する。
データ入出力部107は、例えばUSB(Universal Serial
Bus)インタフェース等、各種データを入出力可能なインタフェースであり、外部機器からデータを受信し、受信したデータをCPU101に転送し、またCPU101により生成されたデータを外部機器に送信する。
D/Aコンバータ108は、CPU101からデジタル音声データを受信し、これをアナログ音声信号に変換し、アンプ109に出力する。アンプ109は、このアナログ音声信号を増幅し、スピーカ110から音として出力する。
図2は、CPU101が歌唱合成アプリケーションに従って提供する歌唱合成システムの機能を示すブロック図である。歌唱合成システムは、スコアデータ編集部20と歌唱合成部30から構成されている。スコアデータ編集部20は、歌唱スコアデータをユーザに表示し、またユーザの操作に従い編集し、編集した歌唱スコアデータを歌唱合成部30に引き渡すモジュールである。ここで、歌唱スコアデータは、歌唱楽曲を構成する時系列の歌唱音のそれぞれの音高を指定する音高データ、発音期間を指定する発音期間データ、歌詞に対応する発音記号等を含む。歌唱合成部30は、この歌唱スコアデータに基づき、歌唱音声データを合成するモジュールである。
スコアデータ編集部20は、データ入力手段201、整形手段202、記憶手段203、表示手段204、操作手段205、選択手段206、状態変更手段207、データ変更手段208、位置制御手段209、指定手段210およびデータ出力手段211を備えている。これらのうち記憶手段203は、コンピュータ1のRAM103およびHD104である。また、それ以外の要素は、歌唱合成アプリケーションを構成するソフトウェアモジュールである。
歌唱合成部30は、データ入力手段301、記憶手段302、素片データベース303、データ選択手段304、音高調整手段305、継続期間調整手段306、音量調整手段307、ビブラート付加手段308、操作手段309、音声出力手段310およびデータ出力手段311を備えている。これらのうち素片データベース303および記憶手段302は、コンピュータ1のRAM103もしくはHD104である。また、それ以外の要素は、歌唱合成アプリケーションを構成するソフトウェアモジュールである。
なお、スコアデータ編集部20および歌唱合成部30の各構成要素の機能については、説明の重複を避けるため、本実施形態の動作説明の項において併せて説明する。
[1.2.動作]
本発明の特徴は、スコアデータ編集部20にある。しかしながら、スコアデータ編集部20により行われる処理の技術的意義を理解するためには、このスコアデータ編集部20の出力データを利用して歌唱合成を行う歌唱合成部30の処理内容を理解しておくのが好ましい。そこで、以下では、まず歌唱合成部30の動作について説明し、その後、スコアデータ編集部20の動作を説明する。
まず、歌唱合成部30のデータ入力手段301は、スコアデータ編集部20から歌唱スコアデータを受信し、受信した歌唱スコアデータを記憶手段302に記憶させる。
図3は、この歌唱スコアデータの構成を示す図である。歌唱スコアデータには、歌唱演奏を表すパートデータが、1もしくは複数含まれている。また、歌唱スコアデータには、このパートデータの他に、演奏で用いられる拍子およびテンポを示すデータ、および分解能を示すデータが含まれている。図3に示される歌唱スコアデータは、パート1〜3の3つのパートデータを含み、拍子として4/4拍子が、テンポとして120が、また分解能として480が設定されている。テンポに関する数値「120」は、この歌唱スコアデータが示す楽曲が、1分間に4分音符を120含むテンポで演奏されることを示している。また、分解能に関する数値「480」は、この歌唱スコアデータにおいて、1つの4分音符を480分割した時間が単位時間として用いられていることを示している。
パートデータは、そのパートを構成する複数の歌唱音のそれぞれにつき、音高、発音期間、発音記号、音の強さ、アクセントの強さ、レガートの強さ、ビブラートの強さ、ビブラート期間に関するデータの組であるノートデータを複数含んでいる。
音高および発音期間を示すデータは、音の発音を指示するにあたり不可欠な基本属性データである。また、発音記号、音の強さ、アクセントの強さ、レガートの強さおよびビブラートの強さを示すデータは、音に対し表情付け等の指示を与える付加属性データである。付加属性データは基本属性データに対する付加的なデータであるため、如何なる種類のデータを付加属性データとして用いるかは様々に変更可能である。さらに、ビブラート期間に関するデータは、付加属性データの1つである「ビブラートの強さ」により示される表情付けが、基本属性データにより示される音に対し、どの期間において適用されるかを示す時間データである。
発音期間に関するデータは、発音期間の始期を示すデータと発音期間の終期を示すデータとにより構成されている。また、ビブラートの期間に関するデータは、ビブラート期間の始期およびビブラート期間の時間長を示すデータにより構成されている。パートデータにおいては、以上説明したノートデータが、例えば発音期間の始期の早い順に、また発音期間の始期が同じ場合には音高が高い順に、並んでいる。また、各ノートデータには、それぞれを識別するための番号が付されている。以下、例えば番号N1001が付されたノートデータを、ノートN1001のように表す。
本実施形態においては、歌唱スコアデータが含む発音期間の始期および発音期間の終期を示すデータは、各々、「小節番号+拍番号+単位時間番号」の形式で表現される。例えば、「0005:03:240」は、第5小節の第3拍のタイミングから単位時間240個の時間、すなわち1/2拍分の時間が経過したタイミングを表している。なお、歌唱スコアデータにおけるタイミングの表現の方法は、「小節番号+拍番号+単位時間番号」に限られない。通常の「時間+分+秒」の形式等、様々な表現方法が採用可能である。また、基準となるタイミングからの絶対時間ではなく、先行のデータからの相対時間により後続のデータのタイミングを特定する方法を採用してもよい。
本実施形態において、音の強さは0〜127の数値で表される。また、アクセントとは、音の立ち上がり部分を強調する音楽的な表情のことをいい、アクセントの強さは、「強」「中」「弱」に対応する「H」、「M」、「L」の文字で表される。また、レガートとは、音高が異なる隣り合う2つの音に関し、音声の変化をなめらかに行う音楽的な表情のことをいい、レガートの強さは、アクセントの場合と同様に「H」、「M」、「L」の文字で表される。なお、本実施形態においては、レガートに関するデータは、レガートが付される隣り合う2つの音のうち、先行する音のノートデータに対して与えられるものとする。ビブラートとは、音に震えを与える音楽的な表情のことをいい、ビブラートの強さは、アクセントの場合と同様に「H」、「M」、「L」の文字で表される。なお、アクセント、レガートおよびビブラートが付されないノートデータに関しては、対応する欄は空欄となる。
ビブラート期間の始期は、ビブラートをノートデータが示す音に付加する期間の開始タイミングを示すデータであり、発音期間の始期からビブラートの開始タイミングまでの時間長を単位時間数で表した数値である。ビブラートの時間長は、ビブラートを付加する時間長を単位時間数で表した数値である。
以上説明したような歌唱スコアデータがデータ入力手段301により記憶手段302に記憶されると、データ選択手段304は、歌唱スコアデータによって指示された歌唱音の歌唱音声データを生成するために必要となるデータを素片データベース303から読み出す処理を行う。
図4は素片データベース303の構成を示す図である。素片データベース303は、複数の歌唱者の各々に対応した個人別データベースに分かれている。図4に示される例では、素片データベース303はそれぞれ3人の歌唱者に対応する個人別データベース303a〜cを含んでいる。
各歌唱者に対応した個人別データベースには、その歌唱者の歌唱音声波形から採取された素片データが複数含まれている。素片データとは、歌唱音声波形から、音声学的な特徴部分を切り出して符号化した音声データである。
ここで、素片データについて、「さいた」という歌詞を歌唱する場合を例として説明する。「さいた」という歌詞は発音記号で「saita」と表される。発音記号「saita」で表される音声の波形を特徴により分析すると、「s」の音の立ち上がり部分→「s」の音→「s」の音から「a」の音への遷移部分→「a」の音・・・と続き、「a」の音の減衰部分で終わる。それぞれの素片データは、これらの音声学的な特徴部分に対応する音声データである。
以下の説明において、ある発音記号で表される音の立ち上がり部分に対応する素片データを、その発音記号の前に「#」を付けて、「#s」のように表す。また、ある発音記号で表される音の減衰部分に対応する素片データを、その発音記号の後に「#」を付けて、「a#」のように表す。また、ある発音記号で表される音から他の発音記号で表される音への遷移部分に対応する素片データを、それらの発音記号の間に「−」を入れて、「s−a」のように表す。
素片データベース303の素片データ群3030には、歌唱者が通常に歌唱した場合の歌唱音声波形から採取された、あらゆる音および音の組み合わせに関する素片データが格納されている。
また、素片データベース303の素片データ群3031H〜Lには、それぞれ歌唱者が強いアクセント、中程度のアクセントおよび弱いアクセントを付加して歌唱した場合の歌唱音声波形から採取された、あらゆる音および音の組み合わせに関する素片データが格納されている。ただし、アクセントは音の減衰部分に付加されることはないので、素片データ群3031H〜Lには、音の減衰部分に対応する素片データは含まれていない。
さらに、素片データベース303の素片データ群3032H〜Lには、それぞれ歌唱者が強いレガート、中程度のレガートおよび弱いレガートを付加して歌唱した場合の歌唱音声波形から採取された、あらゆる音の組み合わせに関する素片データが格納されている。本実施形態においては、レガートは音の遷移部分に付加される表情であるものとし、従って、素片データ群3032H〜Lには、音の遷移部分に対応する素片データのみが含まれている。なお、レガートが付加される素片データに関しては、上記の例に限られず、他の素片データにレガートを付ける態様も考えられる。
次に、データ選択手段304が素片データベース303から歌唱音声データを生成するために必要となる素片データを読み出す処理を、図3に示した歌唱スコアデータを用いて説明する。
まず、データ選択手段304は、歌唱スコアデータにおいてノートデータの並び順に、発音期間の始期および終期を参照し、先行するノートデータの発音期間の終期と、後続のノートデータの発音期間の始期との差が所定の期間、例えば単位時間48個分より短ければ、これら2つのノートデータの発音記号が示す音声は連続して発音されると判定する。逆に、差が単位時間48個分以上であれば、2つのノートデータの発音記号が示す音声は切れて発音されると判断する。図3の例では、データ選択手段304はノートN1001〜N1003の発音記号が連続して発音され、またノートN1004以降の発音記号は別の一連の発音を成すと判断する。
続いて、データ選択手段304は、連続して発音されると判断した発音記号を繋ぎ合わせ、一連の発音記号列を生成する。図3の例では、「sakura」が生成される。続いて、データ選択手段304は生成した発音記号列を素片データの単位に分解する。「sakura」は、「#s」「s」「s−a」「a」「a−k」「k」「k−u」「u」「u−r」「r」「r−a」「a」「a#」の素片データの単位に分解される。
続いて、データ選択手段304は、各ノートデータのアクセントの強さおよびレガートの強さに関するデータを参照し、「#s」「s」「s−a」「a」「a−k」「k」「k−u」「u」「u−r」「r」「r−a」「a」「a#」のそれぞれに対応する素片データを、適する素片データ群から読み出す。例えば、ノートN1001にはアクセントの強さとして「H」が指定されているので、ノートN1001に対応する素片データ、すなわち「#s」「s」「s−a」「a」は素片データ群3031Hから読み出される。データ選択手段304は、読み出した素片データを、歌唱スコアデータと共に音高調整手段305に送信する。
音高調整手段305は、受信した素片データに対し、歌唱スコアデータに含まれる音高に関するデータに基づき、音高調整を行う。音高調整手段305は、音高調整を行った素片データを、歌唱スコアデータと共に継続期間調整手段306に送信する。
継続期間調整手段306は、受信した素片データに対し、歌唱スコアデータに含まれる発音期間に関するデータに基づき、素片の継続時間の調整を施す。以下、継続期間調整手段306が素片データに対し時間調整を行うための、継続期間の算出の手順を説明する。
まず、継続期間調整手段306は、受信した各素片データに対応した歌唱タイミングデータを作成し、記憶手段302に書き込む。図5は歌唱タイミングデータの構成を示す図である。歌唱タイミングデータは、各素片データに関し、素片番号、素片名称、素片時間長、母音素片か否かに関する情報、発音期間の始期および調整後素片時間長の項目を有している。継続期間調整手段306は、各素片データを受信した段階で、これらの項目を有する歌唱タイミングデータのブランクフォームを生成し、これらの歌唱タイミングデータの素片番号の項目に一連の番号を、また素片名称の項目に各素片データの名称を書き込む。
続いて、継続期間調整手段306は、各素片データのデータ量から、各素片データによって表された各素片の時間長を算出し、素片時間長の項目に書き込む。図5の例では、例えば素片番号1の素片データは、単位時間15個分の時間長を持つ音声データである。続いて、継続期間調整手段306は、各素片データのうち、一連の素片列の途中に位置し、かつ母音を示す素片データに関し、母音素片の欄に「Yes」を書き込む。以下、母音素片の欄に「Yes」が書き込まれた素片データを、母音素片データと呼ぶ。図5の例では、素片番号4、8および12の素片データが母音素片データである。
続いて、継続期間調整手段306は歌唱スコアデータの発音記号を示すデータを参照し、母音素片データに対応するノートデータを特定する。この場合、素片番号4、8および12の母音素片データは、それぞれノートN1001〜N1003に対応する。続いて、継続期間調整手段306は、歌唱タイミングデータの母音素片データに関する発音期間の始期の欄に、対応するノートデータの歌唱スコアデータにおける発音期間の始期のデータを書き込む。例えば、歌唱タイミングデータにおける素片番号4の素片データは、母音「a」の素片に関するものであり、この母音「a」は、歌唱スコアデータにおいてノートN1001に割り当てられた発音記号「sa」に属している。従って、素片番号4の素片データの発音期間の始期の欄には、歌唱スコアデータにおけるノートN1001の発音期間の始期である「0001:01:020」が書き込まれる。
続いて、継続期間調整手段306は、最後の素片データ、すなわち素片番号13の素片データの発音期間の始期の欄に、対応するノートデータの発音期間の終期のデータを書き込む。素片番号13の素片データに対応するノートデータはノートN1003であり、その歌唱スコアデータにおける発音期間の終期は「0001:04:424」であるので、歌唱タイミングデータにおける素片番号13の素片データの発音期間の始期の欄には、「0001:04:424」が書き込まれる。
本実施形態においては、上記のように、母音素片データが示す音の発音期間の始期が、歌唱演奏データにおけるノートデータの発音期間の始期により示されるタイミングと一致するように、素片の時間長が調整される。これは、歌唱者は、音符により示される発音期間の始期に、母音の音を発し始めるように歌唱することが多いためである。また、本実施形態においては、一連の発音記号列の最後において、母音素片データが示す音の発音期間の終期が、歌唱演奏データにおけるノートデータの発音期間の終期により示されるタイミングと一致するように、素片の時間長が調整される。これは、一連として発音される歌詞の最後の部分において、歌唱者が音符により示される発音期間の終期に、母音の音の発声を終了することが多いためである。しかしながら、これらのタイミングの設定の方法はこれに限られず、例えば子音から母音への遷移部分の発音期間の始期を、ノートデータが示す発音期間の始期と一致させる等、様々な方法が適用可能である。
続いて、継続期間調整手段306は、各母音素片データの発音期間の始期から順次、先行する素片データの素片時間長を差し引き、その結果得られるタイミングに関するデータを、その先行する素片データの発音期間の始期の欄に書き込む。例えば、素片番号3の素片データの発音期間の始期は、素片番号4の母音素片の発音期間の始期である「0001:01:020」から、素片番号3の素片時間長である「032」を差し引いた「0000:04:468」となる。同様に、素片番号2の素片データの発音期間の始期は、素片番号3の発音期間の始期である「0000:04:468」から、素片番号2の素片時間長である「013」を差し引いた「0000:04:455」となる。
続いて、継続期間調整手段306は、母音素片データの発音期間の始期と、後続の素片データの発音期間の始期から、母音素片データの実際に発音すべき時間長を算出し、算出した時間長を調整後素片時間長として書き込む。例えば、素片番号4の母音素片データは、素片番号5の発音期間の始期から素片番号4の発音期間の始期を差し引くことにより、「345」となる。さらに、継続期間調整手段306は母音素片データ以外の素片データに関し、素片時間長のデータを、調整後素片時間長の欄に書き込む。以上の処理により、記憶手段302内に、完成した歌唱タイミングデータが得られる。
継続期間調整手段306は、歌唱タイミングデータの素片時間長のデータと、調整後素片時間長のデータに基づき、母音素片データに関し継続期間の調整を行う。なお、以上の説明では母音素片データに関してのみ、継続期間の調整を行うものとして説明したが、他の素片データに対しても歌唱スコアデータのテンポ等に応じて継続期間の調整を行ってもよい。継続期間調整手段306は、以上のように必要な時間調整を行った後の全ての素片データを、歌唱スコアデータと共に音量調整手段307に送信する。
音量調整手段307に送られる歌唱スコアデータは、個々の素片データに対応した音の強さに関するデータを含んでいる。音量調整手段307は、このデータに基づき、各素片データの音量調整を行う。さらに、音量調整手段307は、音量調整を行った素片データのそれぞれに関し、先行するデータの最後の音量と後続のデータの最初の音量とが一致するように、素片データの終端付近もしくは先頭付近の音量調整を行う。音量調整手段307は音量調整を行った素片データを繋ぎ合わせ、繋ぎ合わせた音声データを、歌唱スコアデータと共にビブラート付加手段308に送信する。
ビブラート付加手段308に送られる歌唱スコアデータは、ビブラートの強さおよびビブラート期間に関するデータを含んでいる。ビブラート付加手段308は、これらのデータに基づき、音量調整手段307から受信した音声データに、音量および音高の変化を加える。ビブラート付加手段308は、音量および音高の変化を加えた音声データを、歌唱音声データとして記憶手段302に記憶させる。
ユーザが、操作手段309を用いて歌唱合成部30に対し再生の指示を与えると、音声出力手段310は記憶手段302から歌唱音声データを読み出し、図1におけるD/Aコンバータ108に出力する。その結果、ユーザは歌唱スコアデータにより示される歌唱演奏を聴くことができる。
なお、歌唱合成部30による歌唱演奏をより自然なものとするために、素片データベース303には、同じ発音記号で表される音の特徴部分に関し、異なるテンポや音高、またはアクセントおよびレガート以外の音楽的な表情等に応じた異なる素片データをさらに複数格納させ、データ選択手段304には、それらの素片データから最適なものを読み出させるようにしてもよい。
また、上記の説明において、歌唱合成部30において用いられる素片データは音声波形を符号化した音声データであったが、素片データの形式はこれに限られない。例えば、素片データベース303には、音声波形から得られる音声データの周波数成分の特徴をパラメータ化したものを素片データとして格納させ、データ選択手段304等が素片データに含まれるパラメータに基づいて音声データを再生成することにより、歌唱音声データを生成させるようにしてもよい。
次に、スコアデータ編集部20の動作を説明する。まず、スコアデータ編集部20のデータ入力手段201は、外部機器等から歌唱スコアデータを受信し、受信した歌唱スコアデータを整形手段202に送信する。データ入力手段201が外部機器等から受信する歌唱スコアデータの構成は、図3に示したものと同じである。
整形手段202は、歌唱スコアデータの各パートデータに含まれるノートデータを、発音期間の始期の早い順に、また発音期間の始期が同じ場合には、音高の高い順に並び替える。整形手段202はノートデータの並び替えを行った歌唱スコアデータを、記憶手段203に記憶させる。以下の説明においては、図3に示した歌唱スコアデータが整形手段202により記憶手段203に記憶されたものとする。
[1.2.1.一般的なデータの表示および変更動作]
整形手段202の指示により記憶手段203に歌唱スコアデータが記憶されると、選択手段206は歌唱スコアデータに含まれるデータの項目に応じて、表示編集指示データを作成し、記憶手段203に記憶させる。図6は、表示編集指示データの構成を示す図である。
表示編集指示データは、歌唱スコアデータに含まれる各パートデータに対応するデータシートを含んでいる。各データシートには、そのパートデータを表示するか否かを「Yes」もしくは「No」で示す、パート表示の項目が設けられている。選択手段206により表示編集指示データが作成された時点では、全てのパートデータのパート表示の項目にはデフォルトとして「Yes」が書き込まれる。
各パートデータに対応したデータシートは、データ名称、表示および編集の欄を持っている。データ名称の欄には、歌唱スコアデータに含まれるデータの項目名が書き込まれる。その際、例えば発音期間の始期および発音期間の終期のように、互いに関連するものは1つにまとめられる。表示の欄には、対応するデータを表示するか否かを示す「Yes」または「No」が書き込まれる。ただし、音高および発音期間に関するデータは、「パート表示」において「Yes」が選ばれた以上、常に表示されるため、ユーザにより選択ができないことを示す「−」が書き込まれている。同様に、編集の欄には、対応するデータを編集可能とするか否かを示す「Yes」または「No」が書き込まれる。選択手段206により表示編集指示データが作成された時点では、音高および発音期間を示すデータの表示の欄以外には、デフォルトとして「No」が書き込まれる。
続いて、選択手段206は、表示手段204に、表示編集指示データの確認および変更をユーザに対し促すためのメッセージ窓を表示させる。図7はそのメッセージ窓を示す図である。図7に示すように、表示手段204はメッセージ窓や、以下に説明するピアノロール表示の画面において、マウスポインタ501を表示させる。
マウスポインタ501は、ユーザが画面上の特定位置を指定する際に用いる図形である。ユーザがマウスを机上で前後左右に移動させる等の操作を行うと、操作手段205はその操作に応じて、位置データを位置制御手段209に送信する。位置制御手段209は受信した位置データに基づき、マウスポインタ501の表示位置を表示手段204に対し指示する。表示手段204は位置制御手段209の指示に従った位置にマウスポインタ501を再表示する。
ユーザは、マウスをクリックする等の操作を行うことにより、マウスポインタ501の位置に表示される図形等に対し、何らかの操作を行うことができる。例えば、図7の画面において、ユーザがマウスポインタ501をセル502の上に移動した後、マウスをクリックすると、位置制御手段209はマウスがクリックされた時点のマウスポインタ501の位置としてセル502を特定し、セル502がクリックされたことを示すデータを選択手段206に送信する。
続いて、選択手段206は、セル502に対応するデータを表示編集指示データから読み出し、ユーザにより変更可能な状態とする。表示手段204はセル502の文字を、例えば枠で囲んで表示することにより、セル502に対応するデータが変更可能な状態であることをユーザに示す。
ユーザが上記のように、あるデータを変更可能な状態にした後、データの変更指示を行うと、選択手段206はユーザの変更指示に応じて、先に読み出したデータを変更した後、その変更後のデータで表示編集指示データを書き換える。
ユーザが図7のメッセージ窓において、表示させたいパートデータ、表示させたいデータの種類および編集を可能としたいデータの種類を「Yes」および「No」で指定した後、「OK」を指示すると、選択手段206はユーザの指定に従い変更を行った表示編集指示データを、記憶手段203に記憶させる。
続いて、表示手段204は、歌唱スコアデータおよび表示編集指示データに基づき、ピアノロール表示を行う。図8は、ユーザによりパート1のみの表示が指定され、パート1に関し、音の強さ、アクセントおよびレガートに関するデータの表示と、音の強さの編集を可能とする指定がされた場合に、表示手段204により表示されるピアノロール表示の画面である。
図8において、ノートバー401a〜fのそれぞれは、ノートデータに対応している。画面の上下方向は音の高さに対応しており、画面左部に示されるピアノ鍵盤の図により、ユーザは各ノートバーが示すノートデータの音高を確認することができる。画面の左右方向は時間に対応しており、ユーザは各ノートバーの左端の位置および右端の位置から、ノートバーが示すノートデータの発音期間の始期および発音期間の終期を確認することができる。ユーザにより複数のパートデータの表示が指示された場合、表示手段204は、例えばパートデータごとに異なる色でノートバーを表示する。
数字601a〜fは、それぞれの下に表示されているノートバーに対応するノートデータの、音の強さを表している。記号602aおよび記号602bは、それぞれの上に表示されているノートバーに対応するノートデータに、アクセントが付けられていることを示している。また、記号602aおよび記号602bの右の文字は、アクセントの強さを表している。記号603aおよび記号603bは、それぞれの上に表示されているノートバーに対応するノートデータに、レガートが付けられていることを示している。また、記号603aおよび記号603bの右の文字は、レガートの強さを表している。
ユーザは、図8の画面において、音の強さに関するデータを変更することができる。ユーザは、例えばマウスを用いて数字601aの上にマウスポインタ501を移動し、クリック等の操作を行う。ユーザの操作に応じて、位置制御手段209は状態変更手段207に対し、数字601aがクリックされたことを示すデータを送信する。
状態変更手段207は、歌唱スコアデータを参照して、数字601aに対応するデータがパート1の音の強さに関するデータであることを特定する。続いて、状態変更手段207は表示編集指示データを参照して、パート1の音の強さに関する編集の欄が「Yes」となっているか否かを判定する。パート1の音の強さに関する編集の欄が「Yes」となっていない場合、状態変更手段207は何も行わない。一方、パート1の音の強さに関する編集の欄が「Yes」となっている場合、状態変更手段207はデータ変更手段208に対し、数字601aに対応するデータを変更可能な状態にするよう指示する。
データ変更手段208は、歌唱スコアデータから数字601aに対応するデータ、すなわちノートN1001の音の強さを読み出し、ユーザにより変更可能な状態とする。同時に、表示手段204は数字601aを、例えば枠で囲んで表示する。また、表示手段204は、変更可能な状態となっているデータを含むパート1に関する全てのノートバーを、斜線を付して表示する。図8は、表示手段204により、枠および斜線が付された状態の画面が示されている。なお、いずれかのデータが編集可能となっているパートデータのノートバーを、他のパートデータのノートバーと区別する方法は、斜線を付す以外に、色や線の太さを変えたり、ノートバーを点滅させる等、様々な方法が適用可能である。
続いて、ユーザはキーパッド等を用いて数字601aに示される数字の変更の指示を行うか、変更を行わずに現在のデータを維持する指示を行う。ユーザにより変更の指示が行われた場合、データ変更手段208はその指示に従い、先に読み出したデータを変更した後、変更後のデータで歌唱スコアデータを書き換え、そのデータを変更不可能な状態に戻す。ユーザにより現在のデータを維持する指示が行われた場合、データ変更手段208は先に読み出したデータを変更せず、変更不可能な状態に戻す。
データ変更手段208により、ノートN1001の音の強さに関するデータが変更不可能な状態に戻されると、状態変更手段207は歌唱スコアデータを参照し、次に変更可能な状態とすべきデータを特定する。この場合、歌唱スコアデータにおいてノートN1001の次に位置するノートN1002の、音の強さに関するデータが特定される。状態変更手段207はデータ変更手段208に対し、ノートN1002の音の強さに関するデータを変更可能な状態にするよう指示する。
その後、上記と同様のデータ変更処理が、パート1の後続するノートデータに関し、順次繰り返される。その結果、ユーザは数字601a→数字601b→数字601c・・・と、順次、異なるノートデータに含まれる同じ種類のデータを変更することができる。上記のデータ変更処理は、パート1のパートデータにおける最後のノートデータに関し処理が完了するか、ユーザがデータ変更処理の中止を指示すると終了する。
ユーザが図7のメッセージ窓において、複数のデータの種類に関して編集の欄を「Yes」と指定した場合、状態変更手段207はあるデータに関してデータ変更処理が完了した際に、次に変更可能な状態とすべきデータとして、後続のノートデータの同じ種類のデータを選択してもよいし、同じノートデータの他の種類のデータを選択してもよい。後者の場合、例えば図7のメッセージ窓において「アクセント」および「レガート」の欄が「Yes」に指定されたとすると、ユーザは記号602a→記号603a→記号602b・・・と、順次、異なるノートデータに含まれる、互いに関連する異なる種類のデータを変更することができる。
また、上記の例ではデータ変更処理の対象となるノートデータの選択の順番は、歌唱スコアデータの並び順に従って、発音期間の始期が早い順、また発音期間の始期が同じノートデータが複数ある場合には、音高が高い順となっているが、それに限られない。例えば、音の強さ等の任意のデータに基づいて順序を決定してもよい。また、一定の条件を満たすデータを含むノートデータに関してのみ、選択の対象としてもよい。例えば、アクセントが付けられているノートデータに関してのみ、音の強さの昇順で、音の強さに関するデータを順次変更する、といった指定を行うと、ユーザは数字601d→数字601aの順序で変更作業を行うことができる。
[1.2.2.付加属性データの適用期間もしくは適用タイミングの表示および変更動作]
ユーザはマウス等の操作により、いつでも図7に示したメッセージ窓を表示させ、表示編集指示データの内容を変更することができる。図9は、ユーザが図7のメッセージ窓において、パート1およびパート2のパート表示の項目に「Yes」を指定し、パート1に関して、ビブラートに関するデータの表示および編集の欄に「Yes」を指定し、他の欄には「No」を指定して「OK」をクリックした際に表示されるピアノロール表示の画面である。
図9の画面において、ノートバー402a〜fのそれぞれは、パート2に含まれるノートデータに対応している。図形604aおよび図形604bは、それぞれの上に表示されているノートバーに対応するノートデータに、ビブラートが付けられていることを示している。また、図形604aおよび図形604bの右の文字は、ビブラートの強さを表している。
図3に示したように、ビブラートに関するデータとしては、ビブラートの強さに加え、ビブラート期間の始期およびビブラート期間の時間長がある。すなわち、付加属性データとしての「ビブラートの強さ」に対し、「ビブラートの強さ」が示す表情付けの適用期間を示す「ビブラート期間の始期」および「ビブラート期間の時間長」が、時間データとして対応付けられている。表示手段204は、ビブラート期間の始期およびビブラート期間の時間長に基づき、対応するノートバーに対して、時間を示す左右方向の適する位置に、適するサイズで、ビブラート期間を示す図形を表示する。
例えば、図3のデータにおいて、ノートN1003のビブラート期間の始期は120、ビブラート期間の時間長は480となっている。表示手段204は、これらのデータに基づき、ノートN1003に対応するノートバー401cの左端から単位時間120個分を示す距離だけ右方向に移動した位置に、図形604aの左端がくるように図形604aを表示する。また、表示手段204は、図形604aの左右方向の長さが単位時間480個分を示す距離となるように、図形604aを表示する。
ユーザは、図9の画面において、図形604aおよび図形604bの位置およびサイズを変更することにより、対応するデータを変更することができる。例えば、ユーザはマウスポインタ501を図形604aの中央付近に移動し、図形604aに対しドラッグアンドドロップ、すなわちマウスのボタンを押下し、そのままマウスを移動した後、ボタンから手を離す操作を行う。
この場合、マウスのボタンが押下された時点で、位置制御手段209から指定手段210に、図形604aの中央付近でボタンが押下されたことを示すデータが送信される。指定手段210は、歌唱スコアデータを参照して、図形604aに対応するデータが、パート1のビブラートに関するデータであることを特定する。続いて、指定手段210は表示編集指示データを参照して、パート1のビブラートに関する編集の欄が「Yes」となっているか否かを判定する。パート1のビブラートに関する編集の欄が「Yes」となっていない場合、指定手段210は何も行わない。一方、パート1のビブラートに関する編集の欄が「Yes」となっている場合、指定手段210はデータ変更手段208に対し、図形604aに対応するデータを変更可能な状態にするよう指示する。
データ変更手段208は、指定手段210からの指示に従い、歌唱スコアデータからノートN1003のビブラート期間の始期を読み出し、変更可能な状態とする。続いて、ユーザがマウスのボタンから手を離した時点で、位置制御手段209からデータ変更手段208に対し、マウスの移動方向および移動距離、すなわちマウスポインタ501の移動方向および移動距離を示すデータが送信される。
データ変更手段208は、マウスポインタ501の移動方向および左右方向の移動距離に応じて、先に読み出したデータを変更した後、変更後のデータで歌唱スコアデータを書き換える。例えば、マウスのボタンが押下された後、マウスポインタ501が右方向に単位時間100個分だけ移動した後、ボタンからユーザの手が離された場合、データ変更手段208はノートN1003のビブラート期間の始期に100を加算する。
なお、データ変更手段208は上記のようにビブラート期間の始期を変更する際、ビブラート期間がノートデータの発音期間を超えることがないよう、データの変更範囲を制限する。例えば、歌唱スコアデータによれば、ノートN1003の発音期間は単位時間904個分である。一方、ノートN1003のビブラート期間の時間長は480である。従って、ユーザが図形604aを大きく右方向にドラッグする操作を行っても、ノートN1003のビブラート期間の始期が424を超えることはない。
また、ユーザは図形604aの左端付近をドラッグアンドドロップすることにより、ビブラート期間の終わりのタイミングに変更を加えることなく、ビブラート期間の始期およびビブラート期間の時間長を同時に変更することができる。また、ユーザは図形604aの右端付近をドラッグアンドドロップすることにより、ビブラート期間の始期を変えることなく、ビブラート期間の時間長を変更することができる。それらの場合においても、ビブラート期間がノートデータの発音期間を超えることはない。
なお、ビブラートに関するデータのように、表情付け等の適用期間が重要である付加属性データの他に、ボリュームの変更のように、表情付け等の適用タイミングが重要である付加属性データもある。そのような付加属性データには、時間長に関する時間データは対応付けられておらず、タイミングに関する時間データが対応付けられている。そのような付加属性データに関しては、表示手段204は、左右方向の幅に意味を持たない記号等を画面の対応する位置に表示する。
[1.2.3.歌唱タイミングデータの表示および変更動作]
スコアデータ編集部20は、歌唱合成部30において生成される歌唱タイミングデータ(図5参照)の内容を表示することもできる。歌唱タイミングデータは、既に説明したように、歌唱合成部30において演奏される歌唱音声に含まれる素片のそれぞれについて、発音期間に関するデータを「発音期間の始期」および「調整後素片時間長」として含んでいる。
各素片の発音期間は、その歌唱演奏に用いられる素片データのサイズにより左右される。素片データは、データ選択手段304により素片データベース303から選択されるが、素片データベース303には、図4に示したように、異なる複数の歌唱者の歌唱音声波形から採取された素片データ群が、複数の個人別データベースとして格納されている。
継続期間調整手段306は、いずれの個人別データベースから素片データが選択された場合でも、歌唱演奏データに含まれる発音期間の始期に関するデータに、母音素片データの発音期間の始期を一致させるように素片の時間長を調整する。しかしながら、歌唱者によっては、母音素片データの前に位置する子音から母音への遷移部分の時間長が長く、そのため、歌唱合成部30により演奏される歌唱音声において、聴衆にとって歌唱のタイミングが早く感じられる場合がある。また、その逆の場合もある。
上記のような事情から、ユーザが歌唱演奏における各素片の発音期間を確認したい、と考える場合、ユーザはスコアデータ編集部20に対し、歌唱タイミングデータの表示を指示する。スコアデータ編集部20は歌唱スコアデータを、歌唱タイミングデータの送信指示と共に、データ出力手段211を介して歌唱合成部30に送信する。
歌唱合成部30は、スコアデータ編集部20から歌唱スコアデータおよび歌唱タイミングデータの送信指示を受信すると、受信した歌唱スコアデータに基づき、既に説明した処理を行って歌唱タイミングデータを生成する。その後、歌唱合成部30は生成した歌唱タイミングデータを、データ出力手段311を介してスコアデータ編集部20に送信する。
スコアデータ編集部20はデータ入力手段201を介して歌唱タイミングデータを受信し、記憶手段203に記憶する。表示手段204は歌唱タイミングデータに基づき、各素片データが示す音声の発音期間を示す図形を、ピアノロール表示の画面上に表示する。
図10は、歌唱タイミングデータの内容が表示されたピアノロール表示の画面を示す図である。図10において、左右方向のスケールは、図9等の場合と比較し、同じ長さが1/4の時間を示すように拡大されている。図形605a〜eは、それぞれの上に表示されている記号606a〜eにより示される発音記号に対応する素片データを示す図形である。
例えば、図形605aは、記号606aにより示される発音記号「s」に対応する素片データとして、素片データ「#s」「s」「s−a」の3つの素片データを表している。図形605aの左右方向の頂点の位置が、それらの各素片データが示す音声の開始および終了のタイミングを示している。すなわち、図形605aの左部分の三角形は素片データ「#s」を、中央部分の長方形は素片データ「s」を、右部分の三角形は素片データ「s−a」に対応している。図形605b以降も同様である。なお、図形605aの右部分の三角形と、図形605bの左部分の三角形は、共に素片データ「s−a」に対応している。
表示手段204は、各ノートデータに対応する素片データを、歌唱スコアデータにおける発音記号のデータから特定する。例えば、ノートN1001の発音記号は「sa」であるので、対応する素片データは「#s」「s」「s−a」「a」「a−k」となる。また、表示手段204は、各素片データに対応する図形の左右方向の表示位置およびサイズを、歌唱タイミングデータにおける発音期間の始期および調整後素片時間長のデータに基づき決定する。
ユーザは、上述したビブラート期間を示す図形604aに対する操作と同様に、図形605a〜eを操作することにより、歌唱タイミングデータにおける発音期間の始期および調整後素片時間長に関するデータを変更することができる。なお、ピアノロール表示において、素片データに対応する図形に対するユーザの操作により、歌唱タイミングデータに変更が加えられた場合には、歌唱スコアデータにおける対応するノートデータの発音期間に関するデータが、同時に変更されるようにしてもよい。
ユーザは、上記のように歌唱スコアデータに対し変更を加えた後、歌唱演奏の実行を指示する。スコアデータ編集部20はユーザの指示に応じて、歌唱スコアデータをデータ出力手段211を介して歌唱合成部30に送信する。また、記憶手段203に歌唱タイミングデータが記憶され、かつその歌唱タイミングデータに変更が加えられている場合には、スコアデータ編集部20は歌唱スコアデータの代わりに、変更後の歌唱タイミングデータを歌唱合成部30に送信する。
歌唱合成部30は、スコアデータ編集部20から歌唱スコアデータを受信した場合、既に説明した動作に従って、歌唱タイミングデータを作成した後、歌唱音声データを生成し、その歌唱音声データを再生することにより歌唱演奏を行う。また、歌唱合成部30は、スコアデータ編集部20から歌唱タイミングデータを受信した場合、受信した歌唱タイミングデータを用いて歌唱音声データを生成し、その歌唱音声データを再生することにより歌唱演奏を行う。
以上のように、本実施形態によれば、ユーザは、歌唱スコアデータに基づく歌唱演奏を聴覚により確認するとともに、歌唱タイミングデータの表示を見ることにより、各素片の発音期間を視覚により把握することができる。従って、ユーザは、本実施形態によるスコアデータ表示編集装置に慣れ親しむに従い、歌唱スコアデータに基づいて行われるであろう歌唱演奏を視覚により把握しながら、歌唱演奏のためのスコアデータの編集をすることができるようになる。
[2.変形例]
上述した実施形態は、本発明の実施形態の例示であり、上記実施形態に対しては、本発明の主旨から逸脱しない範囲で様々な変形を加えることができる。
例えば、スコアデータ表示編集装置により編集されたスコアデータが、歌唱合成装置に対してではなく、単声楽器の音を出力可能な音源装置に対して送信されてもよい。ただし、その場合にはスコアデータに発音記号に関するデータは含まれず、また歌唱タイミングデータの内容が表示されることはない。
また、歌唱スコアデータの形式としては、例えばMIDI(Musical Instrument Digital Interface)規格に従ったデータ形式など、他のデータ形式が用いられてもよい。
また、上述した実施形態においては、汎用的なコンピュータに、アプリケーションに従った処理を実行させることにより、歌唱合成システムを実現したが、同様の歌唱合成システムを専用のハードウェアにより構成してもよい。さらに、汎用的なコンピュータを用いる場合、専用のハードウェアを用いる場合のいずれにおいても、歌唱合成システムの構成要素は一つの筐体に配置される必要はない。例えば、歌唱合成システムの個々の構成要素が独立した装置を形成し、それらが互いにLAN等により接続されていてもよい。
1…コンピュータ、101…CPU、102…ROM、103…RAM、104…HD、105…表示部、106…操作部、107…データ入出力部、108…D/Aコンバータ、109…アンプ、110…スピーカ、115…バス、20…スコアデータ編集部、30…歌唱合成部、201・301…データ入力手段、202…整形手段、203・302…記憶手段、204…表示手段、205・309…操作手段、206…選択手段、207…状態変更手段、208…データ変更手段、209…位置制御手段、210…指定手段、211・311…データ出力手段、303…素片データベース、304…データ選択手段、305…音高調整手段、306…継続期間調整手段、307…音量調整手段、308…ビブラート付加手段、310…音声出力手段。