説明

歌唱合成のための装置およびプログラム

【課題】 自由に行われる演奏に合わせて歌唱音声を合成することができる技術的手段を提供する。
【解決手段】 演奏データ発生装置1は、ユーザの演奏操作に応じて演奏データたるMIDIメッセージを発生し、歌唱合成装置2は、演奏データ発生装置1からMIDIメッセージが順次与えられるのに応じて、予め記憶した歌詞データを歌唱位置を変えつつ順次利用し、MIDIメッセージにより定まるピッチおよび発音期間を持った歌唱音声をリアルタイムに合成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、歌唱音声の合成を行う歌唱合成システムに関する。
【背景技術】
【0002】
従来の歌唱合成装置は、ユーザの操作に応じて、曲を構成する個々の音符を示す情報と、これらの音符に合わせて歌唱する歌詞を示す情報とを含む歌唱合成スコアを予め記憶し、この記憶された歌唱合成スコアに従って歌唱音声を合成するものが一般的であった(例えば特許文献1参照)。
【特許文献1】特開2006−259768号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、従来の歌唱合成装置は、予め作成された歌唱合成スコア通りのピッチおよび音長で歌唱を合成することができるに過ぎず、演奏に合わせて、リアルタイムに歌唱音声のピッチや発音期間を変化させることができないという問題があった。
【0004】
この発明は、以上説明した事情に鑑みてなされたものであり、自由に行われる演奏に合わせて歌唱音声を合成することができる技術的手段を提供することを目的としている。
【課題を解決するための手段】
【0005】
この発明は、演奏データ発生装置と、歌唱合成装置とを具備し、前記演奏データ発生装置は、操作部と、前記操作部の操作に応じて、演奏データを発生する演奏データ発生手段と、前記演奏データ発生手段により発生された演奏データを前記歌唱合成装置に送信する送信手段とを具備し、前記歌唱合成装置は、各種の音声素片の波形を表す音声素片データを記憶する音声素片データベースと、歌詞データの入力に用いられる歌詞データ入力手段と、前記歌詞データを記憶する歌詞データ記憶手段と、前記演奏データ発生装置の送信手段から送信される演奏データを受信する受信手段と、前記受信手段により演奏データが受信されるのに応じて、前記歌詞データが示す歌詞における歌唱の更新制御を行う歌唱位置更新手段と、前記歌詞データが示す歌詞において前記歌唱位置更新手段により歌唱位置とされた部分を構成する1または複数の音声素片に対応した音声素片データを前記音声素片データベースから読み出し、読み出した音声素片データを用いて、前記演奏データにより指定されるピッチおよび発音期間を持った歌唱音声データを合成する歌唱音声データ合成手段と、前記歌唱音声データ合成手段により合成された歌唱音声データを音声として出力する音声出力手段とを具備することを特徴とする歌唱合成システムを提供する。
かかる発明によれば、ユーザが演奏データ発生装置の操作部の操作を行うと、それに応じて演奏データが歌唱合成装置に送られ、歌唱合成装置では、予め記憶された歌詞データを利用し、演奏データの受信に応じて歌詞データにおける歌唱位置を更新しつつ、演奏データにより指定されたピッチおよび発音期間を持った歌唱位置の歌唱音声の合成が行われる。従って、ユーザは、演奏データ発生装置を用いて自由に演奏を行い、その演奏に合わせて歌唱合成を行わせることができる。
【発明を実施するための最良の形態】
【0006】
以下、図面を参照し、この発明の実施の形態を説明する。
<A.実施形態の構成>
図1は、この発明の一実施形態である歌唱合成システムの構成を示すブロック図である。この歌唱合成システムは、演奏データ発生装置1と、歌唱合成装置2とをMIDIケーブル等の通信ケーブル3により接続してなるものである。この歌唱合成システムにおいて、演奏データ発生装置1は、ユーザの演奏操作に応じて演奏データたるMIDIメッセージを発生し、歌唱合成装置2は、演奏データ発生装置1からMIDIメッセージが順次与えられるのに応じて、予め記憶した歌詞データを歌唱位置を変えつつ順次利用し、MIDIメッセージにより定まるピッチおよび発音期間を持った歌唱音声をリアルタイムに合成するものである。
【0007】
演奏データ発生装置1は、例えばMIDI鍵盤楽器であり、その構成は次の通りである。まず、CPU11は、演奏データ発生装置1の各部を制御する制御中枢である。不揮発性メモリ12は、例えばROMであり、この演奏データ発生装置1の基本的な動作を制御するための制御プログラムや各種のアプリケーションプログラムを記憶している。
【0008】
鍵盤部13は、ユーザによって押鍵される複数の鍵とこれらの各鍵の状態を示す信号をCPU11に供給するキースイッチ回路とにより構成されている。表示部14は、装置の動作状態やユーザに対するメッセージなどを表示するための装置である。操作部15は、ユーザからの操作を受け付け、CPU11に対して各種のコマンドやデータを与えるための装置であり、音色指定スイッチなど、鍵盤演奏音のパラメータ設定のための操作子、ピッチベンドホイールなど、各種の効果の発生を指示するための操作子、歌唱位置の変更(後述)など、歌唱合成装置2に対する制御コマンドの発生を指示するための操作子を含む。
【0009】
音源16は、CPU11からの指令に従い、デジタル楽音信号を形成する装置である。サウンドシステム17は、音源16において形成されたデジタル楽音信号をアナログ楽音信号に変換するD/A変換器と、このアナログ楽音信号を増幅するアンプと、このアンプの出力信号を音として出力するスピーカ等により構成されている。
【0010】
インタフェース群18は、演奏データであるMIDIメッセージを送信するためのMIDIインタフェースや、磁気ディスクやCD−ROMなどの外部記憶媒体との間でデータの授受を行うためのドライバなどにより構成されている。
【0011】
RAM19は、CPU11によってワークエリアとして使用される揮発性メモリである。CPU11は、操作部15を介して与えられる指令に従い、不揮発性メモリ12内のアプリケーションプログラムをRAM19にロードして実行する。
【0012】
不揮発性メモリ12に記憶されたアプリケーションプログラムのうち重要なものとして、MIDIメッセージ発生プログラム121がある。このMIDIメッセージ発生プログラム121は、鍵盤部13に対する操作および操作部15に対する操作を検知し、検知結果に応じて、MIDIメッセージを発生し、音源16に楽音信号を形成させ、あるいはインタフェース群18の中のMIDIインタフェースを介してMIDIメッセージの送信を行うプログラムである。
【0013】
歌唱合成装置2は、音声を出力する機能を有するパーソナルコンピュータなどのコンピュータに対し、歌唱合成プログラムをインストールしたものであり、その構成は次の通りである。まず、CPU21は、歌唱合成装置2の各部を制御する制御中枢である。ROM22は、ローダなど、この歌唱合成装置の基本的な動作を制御するための制御プログラムを記憶している。表示部23は、装置の動作状態や入力データおよび操作者に対するメッセージなどを表示するための装置である。操作部24は、ユーザからコマンドや各種の情報を受け取るための手段であり、キーボードやマウスなどの各種の操作子により構成されている。
【0014】
インタフェース群25は、演奏データであるMIDIメッセージの受信のためのMIDIインタフェースや、ネットワークを介して他の装置との間でデータ通信を行うためのネットワークインタフェースや、磁気ディスクやCD−ROMなどの外部記憶媒体との間でデータの授受を行うためのドライバなどにより構成されている。
【0015】
HDD(ハードディスク装置)26は、各種のプログラムやデータベースなどの情報を記憶するための不揮発性記憶装置である。RAM27は、CPU21によってワークエリアとして使用される揮発性メモリである。CPU21は、操作部24を介して与えられる指令に従い、HDD26内のプログラムをRAM27にロードして実行する。
【0016】
サウンドシステム28は、この歌唱合成装置2において合成された音声を出力する手段であり、合成音声のサンプルデータである歌唱音声データをアナログ音声信号に変換するD/A変換器と、このアナログ音声信号を増幅するアンプと、このアンプの出力信号を音として出力するスピーカ等により構成されている。
【0017】
HDD26に記憶される情報として、歌詞データ入力プログラム61と、歌唱合成プログラム62と、歌詞データ群63と、音声素片データベース64がある。歌詞データ入力プログラム61は、テキストエディタと同様のプログラムであり、操作部24の操作により入力される文字列を歌詞データとしてRAM27内に格納する。また、歌詞データ入力プログラム61は、操作部24の操作により格納コマンドが入力された場合、RAM27内の歌詞データをHDD26に格納する。歌詞データ群63は、このようにして格納される歌詞データおよびインタフェース群25を介して外部から入力される歌詞データの集合体である。
【0018】
音声素片データベース64は、CV(子音から母音への遷移部)、VV(母音から他の母音への遷移部)、VC(母音から子音への遷移部)などの音素から音素への遷移部分(Articulation)や母音Vの伸ばし音(Stationary)など、歌声の素材となる各種の音声素片を示す音声素片データの集合体である。これらの音声素片データは、実際の人間が発した音声波形から抽出された音声素片に基づいて作成されたデータである。音声素片データベース64は、日本語用のものと英語用のものが用意されている。また、各言語に対応した音声素片データベース64では、男性歌手、女性歌手、澄んだ声の歌手、ハスキーな声の歌手など、声質の異なった歌手毎に、各歌手の歌唱音声波形から得られた音声素片データのグループが用意されている。ユーザは、操作部24の操作により、以上のような各種の音声素片データのグループの中から歌唱合成に使用する音声素片データのグループを選択することができる。
【0019】
各音声素片データは、音声素片の波形を示す波形データを含んでいる。本実施形態において、この波形データは、音声素片の波形を所定のサンプリングレートでサンプリングしたサンプル列を一定時間長のフレームに分割し、FFT(高速フーリエ変換)を行うことにより得られたフレーム毎のスペクトルデータ(振幅スペクトルおよび位相スペクトル)である。また、各音声素片データは、音声素片を構成する音素の種類と各音素の開始時刻(例えば音声素片が音素Cから音素Vへの遷移部分である場合における各音素の開始時刻)を示すセグメンテーションデータを含む。
【0020】
本実施形態において歌唱合成装置2では、音声素片データに含まれる波形データにピッチ変換を施して利用することにより、演奏データ発生装置1から受信されるノートオンメッセージのノートナンバに対応したピッチを持った歌唱音声を合成する。このピッチ変換を行うために、その対象である波形データのピッチに関する情報が必要である。そこで、ある好ましい態様では、歌唱合成の際のピッチ変換の便宜のため、音声素片の波形のピッチを示す素片ピッチデータが音声素片データの一部として音声素片データベース64に格納される。
【0021】
好ましい態様において、歌唱合成プログラム62は、例えばインターネット内のサイトからインタフェース群25の中の適当なものを介してダウンロードされ、HDD26にインストールされる。また、他の態様において、歌唱合成プログラム62は、CD−ROM、MDなどのコンピュータ読み取り可能な記憶媒体に記憶された状態で取引される。この態様では、インタフェース群25の中の適当なものを介して記憶媒体から歌唱合成プログラム62が読み出され、HDD26にインストールされる。
【0022】
本実施形態の特徴は、CPU21が歌唱合成プログラム62に従って行う歌唱合成処理の内容にある。図2はこの歌唱合成プログラム62の構成を示すブロック図である。図2に示すように、歌唱合成プログラム62は、各々所定の機能を実現するプログラムであるMIDIメッセージ受信処理部71と、音声合成部72とにより構成されている。また、音声合成部72は、各々所定の機能を実現するプログラムである歌唱位置更新処理部721と、歌詞表示制御部722と、素片選択部723と、変換処理部724と、素片連結部725とにより構成されている。なお、本実施形態では、CPU21がMIDIメッセージ受信処理部71等の各プログラムを実行することにより歌唱音声の合成を行うが、これらの各プログラムを複数のプロセッサが分担して並列実行するように構成してもよい。また、MIDIメッセージ受信処理部71等の各プログラムの一部を電子回路により構成してもよい。
【0023】
MIDIメッセージ受信処理部71は、インタフェース群25の中のMIDIインタフェースがMIDIメッセージを受信したときに起動される割り込みルーチンである。このMIDIメッセージ受信処理部71は、MIDIインタフェースにより受信されたMIDIメッセージを解釈し、解釈結果に従って、音声合成部72内の各部に制御情報を供給する。
【0024】
歌唱位置更新処理部721は、歌詞データが示す歌詞のうち歌唱合成を行う歌唱対象部分の位置、すなわち、歌唱位置の更新を行うルーチンである。この歌唱位置更新処理部721は、歌詞データが示す歌詞のうち歌唱対象部分となっている表音文字を歌詞表示制御部722、素片選択部723および素片連結部725に通知する。歌唱位置更新処理部721が歌唱位置の更新を行う契機には、次の2種類がある。
【0025】
第1の契機は、MIDIメッセージとしてノートオンメッセージがMIDIインタフェースによって受信され、そのノートオンメッセージがMIDIメッセージ受信処理部71から歌唱位置更新処理部721に引き渡されたときである。この場合、歌唱位置更新処理部721は、例えば日本語の歌唱の場合には、歌詞を構成する表音文字列のうち現在の歌唱対象部分となっている表音文字の次の表音文字を新たな歌唱対象部分とする。また、英語の歌唱の場合には、通常、1つの音符に合わせて発声させる母音文字または子音文字および母音文字の組が発音の単位となる。そこで、英語の歌唱の場合には、歌唱位置更新処理部721は、歌詞を構成する表音文字列のうち現在の歌唱対象部分の直後にあり、発音の単位となる母音文字または子音文字および母音文字の組を新たな歌唱対象部分とする。
【0026】
以上は歌唱位置の更新に関する原則であるが、本実施形態では、新たなノートオンメッセージが受信されても、先行するノートオンメッセージに対応した歌唱音声の発音期間との関係如何によっては、例外的に歌唱位置が更新されない場合がある。さらに詳述すると、本実施形態では、ノートオンメッセージの受信により発音期間が開始され、そのノートオンメッセージと対をなすノートオフメッセージが受信された場合、そのノートオフメッセージの受信に応じて発音期間が終了するように発音期間の制御が行われる。歌唱位置更新処理部721は、2つのノートオンメッセージが時間的に前後して受信された場合において、後続のノートオンメッセージが受信されたときに、先行するノートオンメッセージの受信により開始された発音を終了させるノートオフメッセージが既に受信されている場合には歌唱位置の更新を行い、先行するノートオンメッセージの受信により開始された発音を終了させるノートオフメッセージが未だ受信されていない場合には現状の歌唱位置を維持する。
【0027】
第2の契機は、MIDIメッセージとして歌唱位置変更指示を含むシステムイクスクルーシブメッセージがMIDIインタフェースによって受信され、その歌唱位置変更指示がMIDIメッセージ受信処理部71から歌唱位置更新処理部721に引き渡されたときである。歌唱位置変更指示には、1つ前の音符に戻る、2つ前の音符に戻る、…、曲の先頭に戻る等の各種の指示がある。歌唱位置更新処理部721は、この歌唱位置変更指示に従い、歌詞データにおける歌唱位置を変更する。
【0028】
歌詞表示制御部722は、RAM27内において歌唱対象となっている歌詞データに従い、表示部23に歌詞を表示するルーチンである。この歌詞の表示の際、歌詞表示制御部722は、歌唱位置更新処理部721により歌唱位置とされている文字を他の文字とは異なる態様(例えば異なる色)で表示させる。
【0029】
素片選択部723は、現在の歌唱位置にある表音文字(英語の場合は母音文字または子音文字と母音文字の組)を参照し、必要であれば、これに加えて、その直前に歌唱対象部分であった表音文字とを参照することにより、音声波形の合成を行う1または複数の音声素片を決定し、その音声素片に対応した音声素片データを音声素片データベース64から読み出して、変換処理部724に引き渡すルーチンである。
【0030】
変換処理部724は、素片選択部723から引き渡される音声素片データのうち母音に対応した区間のものに対し、ピッチ変換を施すとともに逆FFTを施し、MIDIメッセージ受信処理部71から引き渡されるピッチデータが示すピッチを持った歌唱音声データ(時間領域のデジタル音声信号)として出力するルーチンである。また、この変換処理部724は、子音や母音の歌唱音声データの持続時間を調整する役割をも果たす。さらに変換処理部724は、ビブラート、ピッチベンド、音の強弱等、音楽的表情付けのためのピッチの変更や音量の変更を歌唱音声データに施す機能を備えている。音楽的表情付けのための指令は、演奏データ発生装置1からMIDIメッセージとして歌唱合成装置2に供給され、MIDIメッセージ受信処理部71を介して変換処理部724に与えられる。この変換処理部724と前述の素片選択部723は、歌詞データが示す歌詞において歌唱位置更新処理部721により歌唱位置とされた部分を構成する1または複数の音声素片に対応した音声素片データを音声素片データベース64から読み出し、読み出した音声素片データを用いて、MIDIメッセージ(通常はノートオンメッセージとノートオフメッセージのペア)により指定されるピッチおよび発音期間を持った歌唱音声データを合成する歌唱音声データ合成手段を構成している。
【0031】
素片連結部725は、最終的に得られる歌唱音声が一連の音声素片が滑らかに繋がったものとなるように、変換処理部724の処理を経た歌唱音声データの調整を行うプログラムである。さらに素片連結部725は、MIDIメッセージ受信処理部71による制御の下、RAM27内のバッファ領域を利用して、歌唱音声データに遅延処理を施してサウンドシステム28に与え、歌唱音声データが歌唱音声として放音されるタイミング制御を行う機能を備えている。
以上が本実施形態の構成の詳細である。
【0032】
<B.実施形態の動作>
以下、本実施形態の動作を説明する。
【0033】
<<B1.歌唱合成の準備作業>>
ユーザは、歌唱合成装置2に歌唱合成を行わせるに当たり、必要なアプリケーションプログラムの立ち上げを行う。すなわち、操作部24の操作により、歌詞データ入力プログラム61および歌唱合成プログラム62の起動をCPU21に指示し、操作部15の操作により、MIDIメッセージ発生プログラム121の起動をCPU11に指示する。
【0034】
次にユーザは、歌唱対象となる歌詞データの準備を行う。すなわち、ユーザは、歌詞データ入力プログラム61が起動されている状態において、操作部24の操作により歌詞を構成する表音文字列を入力する。歌詞データ入力プログラム61は、入力される表音文字列を用いてRAM27内に歌詞データを作成する。なお、歌唱対象である歌詞データがHDD26内に記憶されている場合には、操作部24の操作により、その歌詞データをHDD26からRAM27に転送してもよい。
【0035】
次にユーザは、操作部24の操作により、歌唱を行う歌手の指定を行う。これにより歌唱合成プログラム62は、その後の歌唱合成の際、音声素片データベース64内の各歌手に対応した音声素片データのグループのうち、操作によって指定された歌手に対応した音声素片データのグループを使用することとなる。
【0036】
次にユーザは、操作部24の操作により、歌唱合成に関する各種のモード設定を行う。このモード設定は、演奏データ発生装置1の操作部15の操作により行うこともできる。すなわち、操作部15の操作によりモード設定を指示するコマンドが入力されると、演奏データ発生装置1では、指示されたモードへの移行を指示するMIDIメッセージがMIDIメッセージ発生プログラム121により発生され、歌唱合成装置2に送られる。そして、歌唱合成装置2では、このMIDIメッセージが歌唱合成プログラム62のMIDIメッセージ受信処理部71に引き渡され、MIDIメッセージにより指示されたモードへ移行するための制御が行われるのである。なお、本実施形態において設定可能な各種のモードおよびそのモードでの歌唱合成装置2の動作については後述する。
【0037】
最後にユーザは、歌唱合成開始の指示を操作部24の操作によりCPU21に指示する。この指示は、歌唱合成プログラム62により認知される。これにより歌唱合成の準備が完了する。
【0038】
<<B2.MIDIメッセージの発生およびMIDIメッセージに基づく歌唱合成>>
以上のようにして歌唱合成の準備が完了すると、ユーザは、演奏データ発生装置1の鍵盤部13を用いて鍵盤演奏を行い、必要に応じて操作部15を操作する。演奏データ発生装置1では、鍵盤部13や操作部15の操作イベントがMIDIメッセージ発生プログラム121に引き渡される。MIDIメッセージ発生プログラム121は、この操作イベントに対応したMIDIメッセージを発生し、発生したMIDIメッセージをインタフェース群18内のMIDIインタフェースを介して歌唱合成装置2に送る。
【0039】
<<<B2−1.全般的動作>>>
歌唱合成装置2では、インタフェース群25の中のMIDIインタフェースがMIDIメッセージを受信する度に、CPU21に対する割り込み要求が発生し、MIDIインタフェースにより受信されたMIDIメッセージがMIDIメッセージ受信処理部71に引き渡される。MIDIメッセージ受信処理部71は、このMIDIメッセージを解釈し、解釈結果に従って、音声合成部72の各部の制御を行う。
【0040】
MIDIメッセージ受信処理部71は、ノートオンメッセージまたはノートオフメッセージが引き渡された場合、そのメッセージを歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に引き渡す。歌唱位置更新処理部721は、RAM27内において歌唱対象となっている歌詞データ中の歌唱位置を管理しており、基本的にはノートオンメッセージが引き渡されたときに歌唱位置を更新する。すなわち、歌唱位置更新処理部721は、例えば歌詞データが「さいたさいた…」という歌詞を示す場合には、1個目のノートオンメッセージが引き渡されたときに歌唱位置を歌詞の最初の表音文字「さ」とし、2個目のノートオンメッセージが引き渡されたとき歌唱位置を「さ」から「い」に移動し、3個目のノートオンメッセージが引き渡されたとき歌唱位置を「い」から「た」に移動し、…という具合に、歌唱位置を表音文字1個分ずつ進めるのである(図2参照)。
【0041】
歌詞表示制御部722は、RAM27内において歌唱対象となっている歌詞データに従い、表示部23に歌詞を表示する。そして、歌詞表示制御部722は、歌唱位置更新処理部721により歌唱位置とされている文字を他の文字とは異なる態様(例えば異なる色)で表示させる。
【0042】
素片選択部723は、基本的には歌詞データが示す表音文字列のうち歌唱位置更新処理部721が特定する歌唱位置にある表音文字(日本語の場合は1個、英語の場合は1個または複数)の音声波形の合成に用いる1または複数の音声素片を決定し、その音声素片に対応した音声素片データを音声素片データベース64から読み出して、変換処理部724に引き渡す。
【0043】
変換処理部724は、MIDIメッセージ受信処理部71からノートオンメッセージが引き渡されたとき、このノートオンメッセージから発音すべき音のピッチを指定するノートナンバを取り出す。そして、その時点において素片選択部723から引き渡されている音声素片データのうち母音に対応した区間のものに対し、ノートナンバに対応したピッチへのピッチ変換を施す。上述したように音声素片データが音声素片のサンプル列のスペクトルデータを波形データとして含む場合、このピッチ変換は、例えばノートナンバが示すピッチと音声素片データに含まれる素片ピッチデータが示すピッチとの差分を求め、この差分に相当する周波数だけ波形データが示すスペクトル分布を周波数軸方向に移動させる操作を行うことにより実行可能である。変換処理部724は、このようなピッチ変換を経た音声素片データに逆FFTを施し、時間領域のデジタル音声信号である歌唱音声データを出力する。
【0044】
その際に、変換処理部724は、歌唱音声データの持続時間を調整する。さらに詳述すると、基本的に本実施形態では、ノートオンメッセージの受信をトリガとして歌唱対象部分の発音を開始させ、このノートオンメッセージと対をなすノートオフメッセージの受信または後続の音符のノートオンメッセージの受信をトリガとして歌唱対象部分の発音を終了させる。すなわち、歌唱対象部分の発音が開始される時点では、その発音がいつ終了するのか不明であり、発音期間も不明である。そこで、本実施形態において、変換処理部724は、現在の歌唱対象部分についての発音を終了させるイベントが発生し、その発音終了時期になるまでの間、現在の歌唱対象部分における母音の伸ばし音部分の音声素片が持続するように、母音の伸ばし音部分の歌唱音声データの持続時間の調整を行う。母音の伸ばし音部分の持続時間を素片選択部723から引き渡された音声素片データが示す音声波形の本来の持続時間よりも短くする場合には、発音を終了させるイベントの発生時に時間領域の歌唱音声データの出力を打ち切ればよい。歌唱音声データの持続時間を素片選択部723から引き渡された音声素片データが示す音声波形の本来の持続時間よりも長くする場合には、母音の伸ばし音のうち周期性のある区間の波形を表す音声素片データを繰り返し使用し、ピッチ変換および逆FFTを繰り返せばよい。また、本実施形態では、子音の時間長をユーザの指定に従って変化させる場合がある(後述)。変換処理部724は、その場合における子音の歌唱音声データの持続時間の調整も行う。
【0045】
素片連結部725は、変換処理部724の処理を経た歌唱音声データ(時間領域の信号)を受け取り、各歌唱音声データを時間軸上において連結したデジタル音声信号をRAM27内のバッファ領域に格納し、適切な遅延処理を施してサウンドシステム28に与える。
以上が本実施形態の全般的動作である。
【0046】
<<<B2−2.子音長の制御>>>
本実施形態において、演奏データ発生装置1から歌唱合成装置2に送信されるMIDIメッセージの中には、ノートオンメッセージやノートオフメッセージの他に、特定のモードの設定を指示するMIDIメッセージや特定のモードにおいて歌唱合成の制御に用いる各種のパラメータを伝えるMIDIメッセージが含まれる。
【0047】
例えば本実施形態において歌唱合成装置2は、歌唱合成の際の子音の時間長の制御に関するモードとして、強制指定モードまたは固定モードの設定を指示するMIDIメッセージ(例えばシステムイクスクルーシブメッセージやNRPN)を演奏データ発生装置1から受信する場合がある。
【0048】
強制指定モードは、子音の種類および子音と母音の組み合わせによらず、常に子音の時間長を一定時間長Tcとするモードである。ここで、時間長Tcはユーザが操作部15の操作等により自由に指定することができるパラメータであり、強制指定モードの設定を指示するMIDIメッセージは、この時間長Tcを指定する情報を含む。
【0049】
MIDIメッセージ受信処理部71は、この強制指定モードの設定を指示するMIDIメッセージを受け取ったとき、子音の時間長の制御に関するモードを強制指定モードとした旨の通知を変換処理部724および素片連結部725に送る。また、MIDIメッセージ受信処理部71は、子音の時間長Tcを指定する情報を素片選択部723および変換処理部724に送る。以後、この強制指定モードである間にノートオンメッセージが受信されると、上述したように、MIDIメッセージ受信処理部71は、そのノートオンメッセージを歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送る。そして、歌唱合成装置2では次のような動作が行われる。
【0050】
まず、ノートオンメッセージに合わせて発音すべき音声が子音から始まる場合、その子音の音声素片データが素片選択部723から変換処理部724に送られる。この場合、変換処理部724は、子音の音声素片データを時間領域の歌唱音声データとする際にその継続時間長が指定された時間長Tcとなるように長さ調節を行う。長さ調節の方法には各種考えられるが、例えば音声素片データを構成するフレームの一部を間引くことにより継続時間長を短くし、既存のフレームのコピーを継ぎ足すことにより継続時間長を長くするという方法が考えられる。なお、同一種類の子音の音声素片について、各種の継続時間長を持った複数種類の音声素片データを音声素片データベース64内に用意しておき、指定された時間長Tcに対応した音声素片データを素片選択部723が音声素片データベース64から読み出して変換処理部724に与えるようにしてもよい。このような態様では、変換処理部724は、子音の歌唱音声データの継続時間長の調節を行わなくてもよい。
【0051】
また、ノートオンメッセージに合わせて発音すべき音声が子音および母音からなる場合、素片連結部725は、図3に示すように、MIDIメッセージ受信処理部71におけるノートオンメッセージの受信後直ちに子音から発音が開始されるように素片連結後のデジタル音声信号のサウンドシステム28への出力タイミングの調節を行う。また、ノートオンメッセージに合わせて発音すべき音声が母音のみからなる場合、素片連結部725は、MIDIメッセージ受信処理部71におけるノートオンメッセージの受信時刻から一定時間Tcだけ経過したときに、母音の発音が開始されるように素片連結後のデジタル音声信号のサウンドシステム28への出力タイミングの調節を行う。
【0052】
このように強制指定モードでは、子音の長さTcが子音の種類および後続の母音の種類によらず固定されるため、子音から母音への遷移を自然かつ円滑なものにするのがやや困難である。しかし、強制指定モードでは、音符に合わせて発音する音声が子音および母音の組み合わせであるか母音のみであるかに拘わらず、常にノートオンメッセージの受信時刻から一定時間Tcだけ経過した時刻において母音の発音が行われる。従って、合成される歌唱音声のリズムが明確になるという利点がある。
【0053】
一方、固定モードは、子音の時間長の制御は行わず、音声素片データが示す通りの音声波形および持続時間を持った子音を発生させるモードである。MIDIメッセージ受信処理部71は、この固定モードの設定を指示するMIDIメッセージを受け取ったとき、子音の時間長の制御に関するモードを固定モードとした旨の通知を変換処理部724および素片連結部725に送る。以後、この固定モードである間にノートオンメッセージが受信されると、MIDIメッセージ受信処理部71は、そのノートオンメッセージを歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送る。そして、歌唱合成装置2では次のような動作が行われる。
【0054】
まず、変換処理部724は、素片選択部723から子音の音声素片データが引き渡された場合に、強制指定モードのような長さ調節を行うことなく、その音声素片データ通りの継続時間長を持った時間領域の歌唱音声データを出力する。
【0055】
また、素片連結部725は、ノートオンメッセージに合わせて発音すべき音声が子音および母音からなるか母音のみからなるかに拘わらず、図4に示すように、MIDIメッセージ受信処理部71におけるノートオンメッセージの受信後直ちに歌唱音声の発音が開始されるように素片連結後のデジタル音声信号のサウンドシステム28への出力タイミングの調節を行う。
【0056】
図4に例示するように、子音の継続時間は、子音の種類および子音の種類と母音の種類の組み合わせにより異なる場合がある。また、歌唱音声が母音のみからなる場合もある。このため、固定モードでの歌唱合成は、ノートオンメッセージの受信時刻から母音の発音時刻までの遅延が不揃いとなり。合成される歌唱音声のリズムがやや明確でなくなる場合がある。しかしながら、固定モードは、音声波形から採取された音声素片データ通りの時間長で子音を合成するため、子音から母音への遷移を自然かつ円滑なものにすることができるという利点がある。従って、ユーザは、リズムの明確さを重視する場合には強制指定モードを選択し、子音から母音への遷移の自然さを重視する場合には固定モードを選択すればよい。
【0057】
ノートオンメッセージの受信により発音が開始された歌唱音声の発音期間は、基本的には図3および図4に示すように、ノートオフメッセージの受信後、予め設定された発音維持時間Tfが経過したときに終了する。本実施形態において、ユーザは、操作部24の操作により発音維持時間Tfを入力し、あるいは操作部15の操作により発音維持時間Tfを指定するMIDIメッセージを演奏データ発生装置1から歌唱合成装置2に送信させることができる。この発音維持時間Tfは、歌唱合成プログラム62の音声合成部72における変換処理部724に設定される。変換処理部724は、MIDIメッセージ受信処理部71を介してノートオフメッセージを受信した場合、その時点から発音維持時間Tfが経過したときに、そのノートオフメッセージと対をなすノートオンメッセージの受信に応じて合成を開始した歌唱音声の発音を終了させる。
【0058】
日本語の歌唱音声を合成する場合、ノートオンメッセージの受信に応じて合成する歌唱音声の最後の音素は母音である。従って、変換処理部724は、図3および図4に例示するように、ノートオフメッセージの受信後、発音維持時間Tfが経過するまでの期間を要して、歌唱音声の最後の音素である母音から無音へと遷移する音声素片の歌唱音声データの合成および出力を行う。また、言語によっては、ノートオンメッセージの受信に応じて合成する歌唱音声の最後の音素が子音である場合もある(例えば英語の場合)。この場合、変換処理部724は、ノートオフメッセージの受信後、発音維持時間Tfが経過するまでの期間を要して、素片選択部723から引き渡された歌唱音声の終端部分(最後から2番目の母音の音素から最後の子音の音素へと遷移する音声素片)の音声素片データを用いた歌唱音声データの合成(ピッチ変換および時間領域の信号への変換)および出力を行う。
【0059】
<<<B2−3.発音期間がオーバラップした複数のノートオンメッセージの取り扱い>>>
本実施形態では、歌唱合成に関するモードとして、モノフォニックモードとポリフォニックモードが用意されている。両者では、時間軸上において発音期間がオーバラップする複数のノートオンメッセージが受信された場合の歌唱合成方法の方法が異なる。
【0060】
モノフォニックモードは、同時には1つの歌唱音の出力のみを許可するモードである。モノフォニックモードの設定を指示するMIDIメッセージが演奏データ発生装置1から歌唱合成装置2に送信され、MIDIメッセージ受信処理部71に引き渡された場合、MIDIメッセージ受信処理部71は、歌唱合成のモードをモノフォニックモードとした旨を歌唱位置更新処理部721、素片選択部723および変換処理部724に通知する。
【0061】
図5(a)〜(c)は、このようにしてモノフォニックモードの設定がなされた状態において、発音期間がオーバラップした複数のノートオンメッセージが受信されたときの本実施形態の動作を示すものである。
【0062】
この例では、C音、D音、E音、C音を指定する各ノートオンメッセージがMIDIメッセージ受信処理部71により順次受信されている。ここで、2番目のD音のノートオンメッセージは、最初のC音のノートオンメッセージと対をなすノートオフメッセージの受信前に受信されている。また、2番目のD音のノートオンメッセージと3番目のE音のノートオンメッセージとの関係も同様である。しかし、4番目のC音のノートオンメッセージは、3番目のE音のノートオンメッセージと対をなすノートオフメッセージが受信された後に受信されている。すなわち、この例では、1番目と2番目のノートオンメッセージ、2番目と3番目のノートオンメッセージは、相前後しているもの同士で各々の発音期間がオーバラップしており、3番目と4番目のノートオンメッセージは各々の発音期間が重複していない。また、この例において、歌唱対象である歌詞データの内容は、「さいたさいた…」であり、子音の持続時間の制御に関するモードは固定モードであるとする。
【0063】
モノフォニックモードにおいて、図示の例のようなノートオンメッセージが受信された場合、発音期間のオーバラップしたノートオンメッセージに関しては、後着のノートオンメッセージを優先させる後着優先制御(すなわち、先行ノートオンメッセージと対をなすノートオフメッセージは無視する)を行いつつ、レガート唱法による歌唱合成を行う。具体的には次の通りである。
【0064】
まず、1番目のC音のノートオンメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。
【0065】
これにより歌唱位置更新処理部721は、歌詞データにおける最初の表音文字である「さ」に歌唱位置を置く。素片選択部723は、その時点において発音期間中であるノートオンメッセージ(既に受信されているが、対をなすノートオフメッセージが未だに受信されていない状態のノートオンメッセージ)がないことから、音声素片#−s、s−a、a、a−#に対応した各音声素片データを音声素片データベース64から読み出して変換処理部724に引き渡す。ここで、#−sは無音から子音sへの遷移部分の音声素片、s−aは子音sから母音aへの遷移部分の音声素片、aは母音aの伸ばし音の音声素片、a−#は母音aから無音への遷移部分の音声素片である。
【0066】
変換処理部724は、ノートオンメッセージからノートナンバ(この場合、C音のノートナンバ)を取り出すとともに、素片選択部723から引き渡された各音声素片データのうち音声素片s−aの母音区間および音声素片aの全区間の波形データについて、ノートナンバに対応したピッチへのピッチ変換を施す。そして、このピッチ変換の後、音声素片データに逆FFTを施し、時間領域の歌唱音声データを発生する。また、変換処理部724は、母音aの伸ばし音の音声素片データのピッチ変換および逆FFTの際、後続のノートオンメッセージ(この場合、D音のノートオンメッセージ)がMIDIメッセージ受信処理部71により受信されるまでの間、時間領域の歌唱音声データが持続するように、歌唱音声データの持続時間の調整を行う。
【0067】
次に、2番目のD音のノートオンメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。
【0068】
このとき歌唱位置更新処理部721は、先行するノートオンメッセージ(C音のノートオンメッセージ)と対をなすノートオフメッセージが未だ受信されていないことから、現状の歌唱位置「さ」を維持する。
【0069】
変換処理部724は、ノートオンメッセージからノートナンバ(この場合、D音のノートナンバ)を取り出す。そして、直前のノートオンメッセージのノートナンバ(この場合、C音のノートナンバ)に対応したピッチから緩やかなスロープを描いて今回のノートオンメッセージのD音のノートナンバに対応したピッチへと遷移するピッチ曲線を求める。そして、その時点において合成中の伸ばし音の音声素片aの音声素片データについて、このピッチ曲線に従ってピッチを変化させるピッチ変換を行う。そして、ピッチ変換の後、音声素片データに逆FFTを施し、時間領域の歌唱音声データを発生する。また、変換処理部724は、伸ばし音aの音声素片データのピッチ変換および逆FFTの際、後続のノートオンメッセージ(この場合、E音のノートオンメッセージ)がMIDIメッセージ受信処理部71により受信されるまでの間、伸ばし音aの歌唱音声データが持続するように、伸ばし音aの歌唱音声データの持続時間の調整を行う。
【0070】
図示の例では、2番目のノートオンメッセージの発音期間中に1番目のノートオンメッセージと対をなすノートオフメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。しかし、モノフォニックモードでは、このノートオフメッセージは無視される。
【0071】
次に、3番目のE音のノートオンメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。
【0072】
この場合も歌唱位置更新処理部721は、先行するノートオンメッセージ(D音のノートオンメッセージ)と対をなすノートオフメッセージが未だ受信されていないことから、現状の歌唱位置「さ」を維持する。
【0073】
変換処理部724は、ノートオンメッセージからノートナンバ(この場合、E音のノートナンバ)を取り出す。そして、直前のノートオンメッセージのノートナンバ(この場合、D音のノートナンバ)に対応したピッチから緩やかなスロープを描いて今回のノートオンメッセージのE音のノートナンバに対応したピッチへと遷移するピッチ曲線を求める。そして、伸ばし音の音声素片aの音声素片データについて、このピッチ曲線に従ってピッチを変化させるピッチ変換を行う。そして、ピッチ変換の後、音声素片データに逆FFTを施し、時間領域の歌唱音声データを発生する。また、変換処理部724は、伸ばし音aの音声素片データのピッチ変換および逆FFTの際、3番目のE音のノートオフメッセージがMIDIメッセージ受信処理部71により受信されるまでの間、時間領域の歌唱音声データが持続するように、歌唱音声データの持続時間の調整を行う。
【0074】
次に、3番目のE音のノートオフメッセージが受信されると、変換処理部724は、このE音のノートオフメッセージの受信時から発音維持時間Tfが経過するまでの期間、またはこのE音のノートオフメッセージの受信時から新たなノートオンメッセージ(図示の例ではC音のノートオンメッセージ)が受信されるまでの期間のうち短い方の期間、現状の歌唱位置に対応した歌唱部分「さ」の最後の音素aを無音へと遷移させる音声素片a−#の音声素片データを用いてE音のピッチの歌唱音声データの合成を行う。図5では前者の例が示されている。
【0075】
次に、4番目のC音のノートオンメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。この場合、C音のノートオンメッセージの受信時において、先行するE音の発音期間を終了させるノートオフメッセージが既に受信されているため、歌唱位置更新処理部721は、歌詞データにおける2番目の表音文字である「い」に歌唱位置を更新する。そして、音声合成部72では、この更新後の歌唱位置に対応した歌唱部分の歌唱音声データの合成が行われる。一方、E音のノートオフメッセージの受信時刻より前にC音のノートオンメッセージが受信された場合、歌唱位置更新処理部721は、歌詞データにおける歌唱位置の更新を行わない。この場合、音声合成部72では、2番目、3番目のノートオンメッセージの受信時と同様、4番目のC音のノートオンメッセージにより指定されるピッチを持った伸ばし音aの歌唱音声データが合成される。
【0076】
素片連結部725は、このようにノートオンメッセージが受信される毎に、そのノートオンメッセージの受信に応じて変換処理部724から出力される時間領域の各歌唱音声データを滑らかに繋いで出力する。図示の例の場合、1番目から3番目の各ノートオンメッセージに対応して変換処理部724が出力する歌唱音声データは時間軸上において持続時間が連続したものとなる。このため、1番目から3番目の各ノートオンメッセージが順次受信されるのに応じて、レガート唱法により「さああ」と滑らかに歌唱する歌唱音声のデジタル音声信号が素片連結部725から出力される。
以上がモノフォニックモードにおける動作例である。
【0077】
一方、ポリフォニックモードの設定を指示するMIDIメッセージが演奏データ発生装置1から歌唱合成装置2に送信され、MIDIメッセージ受信処理部71に引き渡された場合、MIDIメッセージ受信処理部71は、歌唱合成のモードをポリフォニックモードとした旨を歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に通知する。ポリフォニックモードは、同時に複数の歌唱音の出力を許可するモードである。
【0078】
図6(a)〜(c)は、このようにしてポリフォニックモードの設定がなされた状態において、発音期間がオーバラップした複数のノートオンメッセージが受信されたときの本実施形態の動作を示すものである。
【0079】
各ノートオンメッセージの発音期間およびノートナンバは前掲図5(a)に示すものと同様である。また、この例でも、歌唱対象である歌詞データの内容は、「さいたさいた…」であり、子音の持続時間の制御に関するモードは固定モードである。
【0080】
ポリフォニックモードにおいて、図示の例のようなノートオンメッセージが受信された場合、発音期間のオーバラップしたノートオンメッセージに関しては、合唱の歌唱合成を行う。具体的には次の通りである。
【0081】
まず、1番目のC音のノートオンメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。
【0082】
これにより歌唱位置更新処理部721は、歌詞データにおける最初の歌唱対象部分である「さ」に歌唱位置を置く。素片選択部723は、歌唱対象部分「さ」を構成する音声素片#−s、s−a、a、a−#に対応した各音声素片データを音声素片データベース64から読み出して変換処理部724に引き渡す。
【0083】
変換処理部724は、ノートオンメッセージからC音のノートナンバを取り出すとともに、素片選択部723から引き渡された各音声素片データのうち音声素片s−aの母音区間および音声素片aの全区間の波形データについて、ノートナンバに対応したピッチへのピッチ変換を施す。そして、このピッチ変換の後、音声素片データに逆FFTを施し、時間領域の歌唱音声データを発生する。また、変換処理部724は、C音のノートオンメッセージと対をなすノートオフメッセージが受信されるまでの間,母音aの伸ばし音の音声素片データのピッチ変換および逆FFTの際、歌唱音声データの持続時間の引き延ばしを行う。
【0084】
次に、2番目のD音のノートオンメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。
【0085】
この場合、歌唱位置更新処理部721は、先行するC音のノートオフメッセージが未だにノートオン状態であることから、歌唱位置の更新は行わない。そして、素片選択部723は、D音のノートオンメッセージが与えられるのに応じて、現在の歌唱位置にある歌唱対象部分「さ」を構成する音声素片#−s、s−a、a、a−#に対応した各音声素片データを音声素片データベース64から読み出して変換処理部724に引き渡す。
【0086】
このとき変換処理部724は、C音のノートオンメッセージに応じて開始した音声素片#s、s−a、a、a−#の各音声素片データの処理のうち伸ばし音aの音声素片データの処理(具体的にはピッチ変換、逆FFTおよび持続時間の引き延ばしの処理)を継続中であるが、これに加えて、D音のノートオンメッセージに応じた音声素片#−s、s−a、a、a−#の各音声素片データの処理を開始する。すなわち、C音のピッチの伸ばし音aの歌唱音声データを出力しつつ、これと並行して、母音区間のピッチがD音のピッチである音声素片#−s、s−a、aの歌唱音声データの出力を行うのである。C音のノートオンメッセージに対応した歌唱音声データの出力と同様、このD音のノートオンメッセージに対応した伸ばし音aの歌唱音声データの出力は、対をなすノートオフメッセージが受信されるまで維持される。
【0087】
図示の例では、2番目のD音のノートオンメッセージの発音期間中に1番目のC音のノートオンメッセージと対をなすノートオフメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。これにより変換処理部724は、ノートオフメッセージの受信時から発音維持時間Tfが経過するまでの期間、歌唱位置に対応した歌唱部分「さ」の最後の音素aを無音へと遷移させる音声素片a−#の音声素片データを用いてC音のピッチの歌唱音声データの合成を行う。
【0088】
次に、3番目のE音のノートオンメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。
【0089】
この場合も、歌唱位置更新処理部721は、先行するD音のノートオンメッセージが未だにノートオン状態であることから、歌唱位置の更新は行わない。そして、素片選択部723は、E音のノートオンメッセージが与えられるのに応じて、現在の歌唱位置にある歌唱対象部分「さ」を構成する音声素片#−s、s−a、aに対応した各音声素片データを音声素片データベース64から読み出して変換処理部724に引き渡す。
【0090】
このとき変換処理部724は、図示の例ではD音の伸ばし音aの歌唱音声データの出力を継続中であるが、これに加えて、母音区間のピッチがE音のピッチである音声素片#−s、s−a、aの歌唱音声データの出力を開始する。
【0091】
図示の例では、3番目のE音のノートオンメッセージの発音期間中に2番目のD音のノートオンメッセージと対をなすノートオフメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。この場合も、変換処理部724は、ノートオフメッセージの受信時から発音維持時間Tfが経過するまでの期間、音声素片a−#の音声素片データを用いてD音のピッチの歌唱音声データの合成を行う。
【0092】
素片連結部725は、このようにして変換処理部724からピッチの異なった複数種類の歌唱音声データが出力される場合には、それらを加算し、加算結果であるデジタル音声信号をサウンドシステム28に出力する。
【0093】
その後、3番目のE音のノートオンメッセージと対をなすノートオフメッセージが受信され、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。
【0094】
変換処理部724は、このE音のノートオフメッセージの受信時から発音維持時間Tfが経過するまでの期間、またはこのE音のノートオフメッセージの受信時から新たなノートオンメッセージ(図示の例ではC音のノートオンメッセージ)が受信されるまでの期間のうち短い方の期間、現状の歌唱位置に対応した歌唱部分「さ」の最後の音素aを無音へと遷移させる音声素片a−#の音声素片データを用いてE音のピッチの歌唱音声データの合成を行う。図6では前者の例が示されている。
【0095】
そして、E音のノートオフメッセージの受信後に4番目のC音のノートオンメッセージが受信されると、このC音のノートオンメッセージは、MIDIメッセージ受信処理部71を介して、歌唱位置更新処理部721と、素片選択部723と、変換処理部724と、素片連結部725に送られる。
【0096】
ここで、4番目のC音のノートオンメッセージの受信時には、3番目のE音のノートオフメッセージが既に受信されているため、歌唱位置更新処理部721は、歌詞データにおける2番目の表音文字である「い」に歌唱位置を更新する。そして、音声合成部72では、この更新後の歌唱位置に対応した歌唱部分の歌唱音声データの合成が行われる。一方、E音のノートオフメッセージの受信時刻より前にC音のノートオンメッセージが受信された場合、歌唱位置更新処理部721は、歌詞データにおける歌唱位置の更新を行わない。この場合、音声合成部72では、2番目、3番目のノートオンメッセージの受信時と同様、4番目のC音のノートオンメッセージにより指定されるピッチを持った伸ばし音aの歌唱音声データが合成される。
以上がポリフォニックモードにおける動作例である。
【0097】
<<<B2−4.ノート間ギャップの時間長に応じた歌唱音声データの合成制御>>>
本実施形態では、新たなノートオンメッセージの受信に伴って歌唱位置更新処理部721により歌唱位置の更新が行われる場合に、音声合成部72では、先行するノートオフメッセージの受信時から当該新たなノートオンメッセージの受信時までのノート間ギャップTbの時間長に基づき、当該新たなノートオンメッセージの受信に伴って行う歌唱音声データの合成に用いる音声素片データの選択制御を行う。
【0098】
図7は、このような歌唱位置の更新が行われる場合における音声素片データの選択制御の例を示すものである。この例において、更新前の歌唱位置における歌唱部分の最後の音素はaであり、更新後の歌唱位置における歌唱部分の最初の音素はiである。以下、この図7を参照し、本実施形態における音声素片データの選択制御方法の詳細について説明する。
【0099】
本実施形態において、音声合成部72における素片選択部723および変換処理部724は、時間的に前後して受信される2つのノートオンメッセージについて、先行するノートオンメッセージと対をなすノートオフメッセージの受信時から後続のノートオンメッセージの受信時までの時間間隔であるノート間ギャップTbを監視している。そして、新たなノートオンメッセージの受信に伴って歌唱位置の更新が行われ、その歌唱位置における歌唱音声データの合成を行う場合、素片選択部723および変換処理部724は、先行するノートオフメッセージの受信時から当該新たなノートオンメッセージの受信時までのノート間ギャップTbの時間長が発音維持時間Tfよりも長いか否かを判断する。
【0100】
図7(a)に示す例では、先行するノートオフメッセージから後続のノートンメッセージまでのノート間ギャップTbの時間長が発音維持時間Tfより短く、変換処理部724が更新前の歌唱部分の最後の音素aから無音へと遷移する音声素片a−#の音声素片データを用いて歌唱音声データを合成している期間に後続のノートオンメッセージが受信されている。この場合、素片選択部723は、更新前の歌唱位置の歌唱部分の最後の音素aから更新後の歌唱位置の歌唱部分の最初の音素iへと遷移する音声素片a−iの音声素片データを伸ばし音iの音声素片データとともに変換処理部724に引き渡す。変換処理部724は、後続のノートオンメッセージの受信後直ちに音声素片a−iの音声素片データを用いた歌唱音声データの合成を行い、これに続いて音声素片iの音声素片データを用いた歌唱音声データの合成を行う。
【0101】
一方、図7(b)に示す例では、先行するノートオフメッセージから後続のノートンメッセージまでのノート間ギャップTbの時間長が発音維持時間Tfより長く、変換処理部724が音声素片a−#の音声素片データを用いた歌唱音声データの合成を終了した後、後続のノートオンメッセージが受信されている。この場合、素片選択部723は、無音から更新後の歌唱位置の歌唱部分の最初の音素iへと遷移する音声素片#−iの音声素片データを伸ばし音iの音声素片データとともに変換処理部724に引き渡す。変換処理部724は、後続のノートオンメッセージの受信後直ちに音声素片#−iの音声素片データを用いた歌唱音声データの合成を行い、これに続いて音声素片iの音声素片データを用いた歌唱音声データの合成を行う。前掲図5および図6の例では、4番目のC音のノートオンメッセージの受信時に、この図7(b)に示す方法により、最初の音声素片データの選択が行われている。
【0102】
このように本実施形態では、歌詞位置の更新が行われる場合においてノート間ギャップTbが発音維持時間Tfより短い場合には、合成される歌唱音声の波形を更新前の歌唱位置の最後の音素のものから更新後の歌唱位置の最初の音素のものへと滑らかに遷移させることができ、滑らかな歌唱を実現することができる。また、ノート間ギャップTbが発音維持時間Tfより長い場合には、更新前の歌唱位置に対応した歌唱音声と更新後の歌唱位置に対応した歌唱音声との間に無音を挿入し、歯切れのよい歌唱を実現することができる。
【0103】
<<<B2−5.音楽的表情付けを指示するMIDIメッセージの取り扱い>>>
本実施形態では、例えば操作部15の操作に応じて、ピッチベンドを指示するMIDIメッセージやビブラートを指示するMIDIメッセージが演奏データ発生装置1から歌唱合成装置2に送信されることがある。また、本実施形態では、演奏データ発生装置1の動作モードがアフタータッチの検出を行うモードとなっている場合には、鍵盤部13において押鍵された鍵に加わる圧力が検出され、鍵に対する圧力を示すMIDIメッセージが演奏データ発生装置1から歌唱合成装置2に送信される。歌唱合成装置2では、このような音楽的表情付けのためのMIDIメッセージが受信された場合に、それに対応した歌唱合成の制御が行われる。
【0104】
例えばピッチベンドを指示するMIDIメッセージが受信された場合、そのMIDIメッセージはMIDIメッセージ受信処理部71を介して変換処理部724に引き渡される。変換処理部724は、音声素片データのピッチ変換を行って歌唱音声データを出力する際、このMIDIメッセージにより指示されたピッチベンド効果が得られるように、出力する歌唱音声データのピッチに変化を与える。ビブラートを指示するMIDIメッセージが受信された場合も同様である。鍵に対する圧力を示すMIDIメッセージも、MIDIメッセージ受信処理部71を介して変換処理部724に引き渡される。この場合、変換処理部724は、MIDIメッセージが示す圧力値に応じて、出力する歌唱音声データが示す音声波形の振幅や音色を調整する。
【0105】
<<<B2−6.歌唱位置の変更>>>
本実施形態では、ユーザは操作部15の操作を行うことにより、歌唱位置変更指示を含むMIDIメッセージを演奏データ発生装置1から歌唱合成装置2に送信することができる。歌唱合成装置2において、歌唱位置変更指示を含むMIDIメッセージは、MIDIメッセージ受信処理部71を介して歌唱位置更新処理部721に送られる。歌唱位置更新処理部721は、このMIDIメッセージに含まれる歌唱位置変更指示に従い、歌唱位置を、1つ前の音符に対応した位置に戻す、2つ前の音符に対応した位置に戻す、…、曲の先頭に戻す等の歌唱位置の変更を行う。このように歌唱位置の変更が行われると、以後は、変更後の歌唱位置から歌唱音声の合成が再開される。従って、ユーザは、歌詞の中の所望の位置から歌唱合成を行うことができる。
以上が本実施形態の動作の詳細である。
【0106】
<C.実施形態の効果>
以上説明したように、本実施形態によれば、ユーザが演奏データ発生装置1の演奏操作を行うと、演奏データであるMIDIメッセージが歌唱合成装置2に送られ、歌唱合成装置2では、予め記憶された歌詞データを利用し、MIDIメッセージの受信に応じて歌詞データにおける歌唱位置を更新しつつ、MIDIメッセージにより指定されたピッチおよび発音期間を持った歌唱位置の歌唱音声の合成が行われる。従って、ユーザは、自由に演奏を行い、その演奏に合わせて歌唱合成装置2に歌唱音声を合成させることができる。
【0107】
<D.他の実施形態>
以上、この発明の一実施形態を説明したが、この発明には、これ以外にも各種の実施形態が考えられる。例えば次の通りである。
【0108】
(1)歌手や声質を指定する操作子を演奏データ発生装置1に設け、演奏データ発生装置1は、この操作子の操作に応じて歌手や声質を指定するMIDIメッセージを歌唱合成装置2に送り、歌唱合成装置2ではこのMIDIメッセージにより指定された歌手または声質に対応した音声素片データを素片選択部723が選択するように構成してもよい。
【0109】
(2)ポリフォニックモードにおいて、オーバラップした複数のノートオンメッセージに対応した複数種類のピッチの歌唱音声を合成する場合に、各歌唱音声に用いる音声素片データを異ならせてもよい。例えばピッチに応じて声質の異なった複数種類の音声素片データを用いる態様が考えられる。
【0110】
(3)ポリフォニックモードにおいて、オーバラップした複数のノートオンメッセージに応じて、子音および母音からなる複数種類のピッチの歌唱音声を合成する場合に、後発のノートオンメッセージに対応した歌唱音声については子音を省略し、母音のみを合成するようにしてもよい。
【0111】
(4)上記実施形態では、子音の持続時間の制御に関するモードとして強制指定モードと固定モードを設けたが、両者の長所を持ち合わせたモードを設けてもよい。すなわち、変換処理部724は、子音に関して、素片選択部723から引き渡された音声素片データ通りの持続時間を持った時間領域の歌唱音声データを出力するとともに、子音の持続時間を素片連結部725に通知する。素片連結部725は、RAM27のバッファ領域内のデジタル音声信号を読み出してサウンドシステム28に出力する際、子音の持続時間が短いときは出力タイミングを遅らせ、子音の持続時間が長いときには出力タイミングを早めることにより、常にノートオンメッセージの受信時刻から一定時間が経過したときに母音区間の出力が開始されるようにデジタル音声信号の出力タイミングの調整を行う。この態様によれば、子音から母音への遷移の自然さを保ちつつリズムの明確な歌唱音声を合成することができる。
【0112】
(5)上記実施形態では、ポリフォニックモードにおいて、新たなノートオンメッセージが受信された場合に、その直前の先行ノートオンメッセージに対応した発音期間が終了しているか否かにより歌唱位置の更新を行うか否かを決定した。しかし、このようにする代わりに、例えばm音(m≧2)までの同時発音を許可する場合には、m個だけ前のノートオンメッセージに対応した発音期間が終了しているか否かにより歌唱位置の更新を行うか否かを決定するようにしてもよい。
【図面の簡単な説明】
【0113】
【図1】この発明の一実施形態である歌唱合成システムの構成を示すブロック図である。
【図2】同実施形態における歌唱合成プログラムの構成を示すブロック図である。
【図3】同実施形態における強制指定モードでの歌唱合成のタイミング制御を示す図である。
【図4】同実施形態における固定モードでの歌唱合成のタイミング制御を示す図である。
【図5】同実施形態におけるモノフォニックモードでの動作例を図である。
【図6】同実施形態におけるポリフォニックモードでの動作例を図である。
【図7】同実施形態におけるノート間ギャップの時間長に基づく音声素片の選択方法を示す図である。
【符号の説明】
【0114】
1……演奏データ発生装置、2……歌唱合成装置、3……通信ケーブル、11,21……CPU、12……不揮発性メモリ、13……鍵盤部、14,23……表示部、15,24……操作部、16……音源、17,28……サウンドシステム、18,25……インタフェース群、19,27……RAM、22……ROM、26……HDD、121……MIDIメッセージ発生プログラム、61……歌詞データ入力プログラム、62……歌唱合成プログラム、63……歌詞データ群、64……音声素片データベース、71……MIDIメッセージ受信処理部、72……音声合成部、721……歌唱位置更新処理部、722……歌詞表示制御部、723……素片選択部、724……変換処理部、725……素片連結部。

【特許請求の範囲】
【請求項1】
演奏データ発生装置と、歌唱合成装置とを具備し、
前記演奏データ発生装置は、
操作部と、
前記操作部の操作に応じて、演奏データを発生する演奏データ発生手段と、
前記演奏データ発生手段により発生された演奏データを前記歌唱合成装置に送信する送信手段とを具備し、
前記歌唱合成装置は、
各種の音声素片の波形を表す音声素片データを記憶する音声素片データベースと、
歌詞データの入力に用いられる歌詞データ入力手段と、
前記歌詞データを記憶する歌詞データ記憶手段と、
前記演奏データ発生装置の送信手段から送信される演奏データを受信する受信手段と、
前記受信手段により演奏データが受信されるのに応じて、前記歌詞データが示す歌詞における歌唱位置の更新制御を行う歌唱位置更新手段と、
前記歌詞データが示す歌詞において前記歌唱位置更新手段により歌唱位置とされた部分を構成する1または複数の音声素片に対応した音声素片データを前記音声素片データベースから読み出し、読み出した音声素片データを用いて、前記演奏データにより指定されるピッチおよび発音期間を持った歌唱音声データを合成する歌唱音声データ合成手段と、
前記歌唱音声データ合成手段により合成された歌唱音声データを音声として出力する音声出力手段とを具備することを特徴とする歌唱合成システム。
【請求項2】
各種の音声素片の波形を表す音声素片データを記憶する音声素片データベースと、
歌詞データの入力に用いられる歌詞データ入力手段と、
前記歌詞データを記憶する歌詞データ記憶手段と、
演奏データを受信する受信手段と、
前記受信手段により演奏データが受信されるのに応じて、前記歌詞データが示す歌詞における歌唱位置の更新制御を行う歌唱位置更新手段と、
前記歌詞データが示す歌詞において前記歌唱位置更新手段により歌唱位置とされた部分を構成する1または複数の音声素片に対応した音声素片データを前記音声素片データベースから読み出し、読み出した音声素片データを用いて、前記演奏データにより指定されるピッチおよび発音期間を持った歌唱音声データを合成する歌唱音声データ合成手段と、
前記歌唱音声データ合成手段により合成された歌唱音声データを音声として出力する音声出力手段と
を具備することを特徴とする歌唱合成装置。
【請求項3】
前記受信手段が受信する演奏データには、歌唱位置の変更を指示する演奏データが含まれ、
前記歌唱位置更新手段は、前記受信手段によって歌唱位置の変更を指示する演奏データが受信された場合に、該演奏データに従って歌唱位置を変更することを特徴とする請求項2に記載の歌唱合成装置。
【請求項4】
歌唱合成に関するモードとして、同時には1つの歌唱音の出力のみを許可するモノフォニックモードが設定されている場合において、発音期間がオーバラップした複数の音の出力を指示する複数の演奏データが順次受信された場合に、前記歌唱音声データ合成手段は、後着の演奏データの受信に応じて、合成する歌唱音声データのピッチを先着の演奏データが指定するピッチから後着の演奏データが指定するピッチへと変化させることを特徴とする請求項2または3に記載の歌唱合成装置。
【請求項5】
歌唱合成に関するモードとして、同時に複数の歌唱音の出力を許可するポリフォニックモードが設定されている場合において、発音期間がオーバラップした複数の音の出力を指示する複数の演奏データが順次受信された場合に、前記歌唱音声データ合成手段は、前記複数の演奏データの各々が受信されるのに応じて、各演奏データにより指示されるピッチを持った各歌唱音声データを合成することを特徴とする請求項2または3に記載の歌唱合成装置。
【請求項6】
前記演奏データには発音の開始を指示するノートオンメッセージと発音中の音の発音の終了を指示するノートオフメッセージとがあり、前記歌唱位置更新手段は、2つのノートオンメッセージが時間的に前後して受信された場合において、後続のノートオンメッセージが受信されたときに、先行するノートオンメッセージの受信により開始された発音を終了させるノートオフメッセージが既に受信されている場合には歌唱位置の更新を行い、前記先行するノートオンメッセージの受信により開始された発音を終了させるノートオフメッセージが未だ受信されていない場合には現状の歌唱位置を維持することを特徴とする請求項2〜5のいずれか1の請求項に記載の歌唱合成装置。
【請求項7】
新たなノートオンメッセージの受信に伴って前記歌唱位置更新手段により歌唱位置の更新が行われる場合において、前記歌唱音声データ合成手段は、先行するノートオフメッセージの受信時から当該新たなノートオンメッセージの受信時までのノート間ギャップの時間長に基づき、当該新たなノートオンメッセージの受信に伴って行う歌唱音声データの合成に用いる音声素片データの選択制御を行うことを特徴とする請求項6に記載の歌唱合成装置。
【請求項8】
新たなノートオンメッセージの受信に伴って前記歌唱位置更新手段により歌唱位置の更新が行われる場合において、前記歌唱音声データ合成手段は、先行するノートオフメッセージの受信時から所定長の発音維持時間が経過するまでの期間、または前記先行するノートオフメッセージの受信時から前記新たなノートオンメッセージが受信されるまでの期間のうち短い方の期間、更新前の歌唱位置に対応した歌唱部分の最後の音素から無音へと遷移する音声素片の音声素片データを用いて歌唱音声データの合成を行う請求項6に記載の歌唱合成装置。
【請求項9】
新たなノートオンメッセージの受信に伴って前記歌唱位置更新手段により歌唱位置の更新が行われる場合において、前記歌唱音声データ合成手段は、当該新たなノートオンメッセージの受信に伴って行う歌唱音声データの合成において、先行するノートオフメッセージの受信時から当該新たなノートオンメッセージの受信時までのノート間ギャップの時間長が前記発音維持時間よりも長い場合には、無音から更新後の歌唱位置の歌唱部分の最初の音素へと遷移する音声素片の音声素片データを最初に選択して歌唱音声データの合成を開始し、前記ノート間ギャップが前記発音維持時間以内である場合には更新前の歌唱位置の歌唱部分の最後の音素から更新後の歌唱位置の歌唱部分の最初の音素へと遷移する音声素片の音声素片データを最初に選択して歌唱音声データの合成を開始することを特徴とする請求項8に記載の歌唱合成装置。
【請求項10】
前記歌唱音声データ合成手段は、歌唱音声データにおける子音区間の持続時間を指定された一定時間長とする強制指定モードでの歌唱合成と、歌唱音声データにおける子音部分の持続時間を子音の音声素片データ通りの時間とする固定モードでの歌唱合成を行う機能を有し、前記強制指定モードでの歌唱合成が指示された場合、演奏データに合わせて出力する歌唱音声データが母音のみのものであるか子音と母音の組み合わせのものであるかによらず、常に演奏データの受信時刻から所定時間が経過したときに母音区間の発音が開始されるように歌唱音声データの出力タイミングの制御を行うことを特徴とする請求項2〜9のいずれか1の請求項に記載の歌唱合成装置。
【請求項11】
コンピュータを、
各種の音声素片の波形を表す音声素片データを記憶する音声素片データベースと、
歌詞データの入力に用いられる歌詞データ入力手段と、
前記歌詞データを記憶する歌詞データ記憶手段と、
演奏データを受信する受信手段と、
前記受信手段により演奏データが受信されるのに応じて、前記歌詞データが示す歌詞において歌唱位置を順次更新する歌唱位置更新手段と、
前記歌詞データが示す歌詞において前記歌唱位置更新手段により歌唱位置とされた部分を構成する1または複数の音声素片に対応した音声素片データを前記音声素片データベースから読み出し、読み出した音声素片データを用いて、前記演奏データにより指定されるピッチおよび発音期間を持った歌唱音声データを合成する歌唱音声データ合成手段と、
前記歌唱音声データ合成手段により合成された歌唱音声データを音声として出力する音声出力手段と
して機能させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−170592(P2008−170592A)
【公開日】平成20年7月24日(2008.7.24)
【国際特許分類】
【出願番号】特願2007−2200(P2007−2200)
【出願日】平成19年1月10日(2007.1.10)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】