(57)【要約】【課題】簡単な操作で多彩な音声を発生させることができる音声発生装置を提供する。【解決手段】音声発生装置３０は、発話の音声データを記憶する音声コーパス２１４と、ＭＩＤＩ規格に従って指定されるノート番号と、発話との間の対応関係を記憶する音声選択用データ格納部２１０と、ノート番号に対応する発話の音声波形データと、当該音声波形データに対する制御を指定する制御情報とを伝送するＭＩＤＩメッセージに応答して処理することにより、一連のＭＩＤＩメッセージと、音声選択用データ格納部２１０に記憶された対応関係とに従って、音声コーパス２１４に記憶された音声波形データを用いて発話の音声波形信号を合成するＭＩＤＩ処理部１８２、音声決定部２１２、及び音声波形合成部２１６とを含む。【選択図】      図４
2007256846.tif 000002
【特許請求の範囲】
【請求項１】
複数の発話の音声波形データを記憶するための音声波形データ記憶手段と、
所定の規格に従って指定される予め定められた符号と、前記複数の発話との間の対応関係を記憶するための対応関係記憶手段と、
前記符号に対応する制御対象と、当該制御対象に対する制御を指定する制御情報とを伝送するための、前記所定の規格に従って作成された制御メッセージに応答して、当該制御メッセージを処理することにより、一連の前記制御メッセージと、前記対応関係記憶手段に記憶された対応関係とに従って、前記音声波形データ記憶手段に記憶された音声波形データを用いて発話の音声波形信号を合成するための音声合成手段とを含む、音声発生装置。
【請求項２】
前記規格はＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）規格であり、前記符号は、ＭＩＤＩ規格により指定されるノート番号である、請求項１に記載の音声発生装置。
【請求項３】
前記対応関係記憶手段に記憶された前記対応関係は、前記制御メッセージにより指定されるチャンネル番号と、前記制御メッセージにより指定されるノート番号との組合せごとに、一つの発話を対応付けている、請求項２に記載の音声発生装置。
【請求項４】
ファイル読出のための所定の指示信号に応答して、所定の記憶媒体上の、ＭＩＤＩイベント列を所定のフォーマットで格納した発話ファイルから、ＭＩＤＩイベント列を読込むためのファイル読出手段と、
前記ファイル読出手段により読込まれたＭＩＤＩイベント列を解釈し、前記ＭＩＤＩイベント列により表されるＭＩＤＩメッセージ群を、前記ＭＩＤＩイベント列により規定される時間間隔で順番に発生し、前記音声合成手段に与えるためのＭＩＤＩイベント列解釈手段とをさらに含む、請求項２又は請求項３に記載の音声発生装置。
【請求項５】
複数の発話の音声波形データを記憶するための音声波形データ記憶手段と、所定の規格に従って指定される予め定められた符号と前記複数の発話との間の対応関係を記憶するための対応関係記憶手段と、前記符号に対応する制御対象と、当該制御対象に対する制御を指定する制御情報とを伝送するための、前記所定の規格に従って作成された制御メッセージを受信するための受信手段とを備えたコンピュータにおいて実行されると、当該コンピュータを、請求項１〜請求項４のいずれかに記載の音声発生装置として動作させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は音声によるコミュニケーション技術に関し、特に音声合成技術を用い、発話に障害を持つ人たちの、音声を用いた意思伝達を容易にする技術に関する。
【背景技術】
【０００２】
何らかの原因で発話に障害を持つ人がいる。例えば、呼吸器系・咽喉系等の疾患に対する手術を行なった結果、一時的に発話能力を失った人、又は運動性発話障害により発話能力を失った人等である。そうした人が他人に自己の意思を伝達するためには、例えば手話又は筆談などという方法がある。しかし、手話にせよ筆談にせよ、相手と話者とが同じ場所にいないと困難である。結局、発話に障害を持つ人が他人に意思を伝達するために最も効率のよい方法は、何らかの機構を用いることにより、自己が発話したい音声を発生させる方法であると考えられる。
【０００３】
特許文献１に、そのような音声発生会話装置が開示されている。特許文献１に開示の装置は、予め音声を録音しておくことができる。画面には、発話したい会話を指定するためのキーが表示される。各キーには、対応の音声の内容を示す文字、写真、絵文字等が表示され、そのキーを押すと対応の音声が発生される。音声は予め複数種類のジャンルに分けられている。
【０００４】
特許文献１に記載の装置は、キーの自動送りモードと手動送りモードとを持つ。自動送りモードでは、キーを選択するためのカーソルが所定の時間間隔でスクロール（移動）していく。所望のキーのところにカーソルが移動したところで、確定キーを押すと、そのキーに対応する音声が発生される。手動送りモードでは、キーが自動的に移動することはなく、操作者が自分でジャンルを切替えたりキーを選択し確定させ、対応の音声を発生させる。
【特許文献１】特開２０００−９８８７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし上記した音声発生会話装置では、発生させる音声は予め録音されているものに限られ、話者の感情などを反映させた種々の韻律で音声を発生させることができないという問題がある。また、操作のためのインタフェースにも改良の余地があり、操作に要する時間が長くかかり、意思伝達をスムーズに行なうことが難しいという問題がある。特に、簡単な事項の伝達だけではなく複雑な事項を伝達しようとすると、そのための伝達に長時間を有し、必要最低限の会話以外を行なうことは著しく難しいという問題点がある。
【０００６】
発話に障害があるといえども、思考には問題がない人にとって、他人との音声を用いたコミュニケーションに時間を要するのは大変な無駄であって、これは社会的にも損失である。こうした装置では、操作に要する時間を短縮するために、インタフェースを各個人にあわせて改良することが不可欠である。特許文献１に記載の装置では、そうしたインタフェースの改良が非常に困難であるという問題点がある。
【０００７】
こうした問題は、実は発話に障害を持つ人に特有の問題ではない。一般に、音声を用いて他人とコミュニケーションする際には、同様の問題が生じる。例えばロボットにおいて他人とコミュニケーションする際には、やはり音声を用いるのが最も効率的である。そうした場合には、ロボットが音声を発生させようとする状況にあわせて、適切な韻律で音声を発生させるべきである。発話内容の準備から実際の発声までの期間はできるだけ短くあるべきである。発話メカニズムに改良を施す場合にも、できるだけ効率的に改良をすることができるような機構を用いるべきである。
【０００８】
それゆえに本発明の目的は、簡単な操作で多彩な音声を発生させることができる音声発生装置を提供することである。
【０００９】
本発明の他の目的は、適切な韻律で音声を発生させることができ、かつそのための操作が容易な音声発生装置を提供することである。
【００１０】
本発明の別の目的は、適切な韻律で音声を発生させることができ、そのための操作が容易で、改良も効率的に行なえる音声発生装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明の第１の局面に係る音声発生装置は、複数の発話の音声波形データを記憶するための音声波形データ記憶手段と、所定の規格に従って指定される予め定められた符号と、複数の発話との間の対応関係を記憶するための対応関係記憶手段と、符号に対応する制御対象と、当該制御対象に対する制御を指定する制御情報とを伝送するための、所定の規格に従って作成された制御メッセージに応答して、当該制御メッセージを処理することにより、一連の制御メッセージと、対応関係記憶手段に記憶された対応関係とに従って、音声波形データ記憶手段に記憶された音声波形データを用いて発話の音声波形信号を合成するための音声合成手段とを含む。
【００１２】
音声波形データ記憶手段は、複数の発話の音声波形データを記憶する。この複数の発話は、符号と対応付けられており、その対応関係が対応関係記憶手段に記憶されている。一連の制御メッセージを受信すると、音声合成手段がこれら制御メッセージを処理し、一連の制御メッセージに含まれる制御対象（たとえば符号）及びその制御対象に対する制御情報とを処理することにより、音声波形データ記憶手段に記憶された音声波形データを用いて発話の音声波形信号を合成する。所定の規格に従う外部入力装置を用いれば、その外部入力装置によって発生すべき音声を指定する符号を含む一連の制御メッセージを作成してこの音声発生装置に与えることにより、複数の発話のうちの任意のものを用いた音声合成を行なうことができる。従って、符号を変えるだけで発話を変化させることができる。その結果、簡単な操作で多彩な音声を発生させることができる音声発生装置を提供することである。
【００１３】
好ましくは、規格はＭＩＤＩ規格であり、符号は、ＭＩＤＩ規格により指定されるノート番号である。
【００１４】
ＭＩＤＩ規格は楽器の演奏を指示したり、記録したり、再生演奏したりするための規格である。従って楽器、例えば多数の鍵盤を備えた音楽キーボードなどをこの音声発生装置に対する入力装置として採用することができる。多数の鍵盤を用いることにより、多数の発話のうちの任意のものを容易な操作で指示して音声合成させることができる。
【００１５】
より好ましくは、対応関係記憶手段に記憶された対応関係は、制御メッセージにより指定されるチャンネル番号と、制御メッセージにより指定されるノート番号との組合せごとに、一つの発話を対応付けている。
【００１６】
チャンネル番号とノート番号とに対し、一つの発話が対応付けられている。ＭＩＤＩ規格では、一般に同じノート番号に対し１６チャンネル又はそれ以上の音色を割当てることが可能である。すなわち、上記した音声発生装置に対し、楽器の一つのキーに１６個又はそれ以上の発話を割当てることが可能であり、幅広い範囲の発話を容易な操作で音声合成できる。
【００１７】
さらに好ましくは、音声波形データ記憶手段は、複数の発話の各々に対し、複数通りの音声波形データを記憶しており、音声発生装置はさらに、複数の発話の各々に対し、当該発話に対応する複数の音声波形データの、音声波形データ記憶手段内のアドレスを記憶するための、音声アドレス記憶手段と、各発話に対して音声アドレス記憶手段に記憶された複数の音声波形データのアドレスのうち、何番目のアドレスを選択するかを指定するインデックスを記憶するためのインデックス記憶手段とを含み、音声合成手段は、制御メッセージを受信すると、当該制御メッセージと、対応関係記憶手段に記憶された対応関係とに従って、当該制御メッセージにより指定されるチャンネル番号及びノート番号に対応する発話を特定するための手段と、特定するための手段により特定された発話と、音声アドレス記憶手段に記憶された、当該発話に対応する複数の音声波形データのアドレスと、インデックス記憶手段に記憶されたインデックスとに従って、音声波形データ記憶手段から音声波形データを読出し、音声波形信号を合成するための手段とを含む。
【００１８】
発話の各々について、複数の音声波形データが記憶されている。すなわち、一つの発話でも何通りかの韻律で音声合成を行なうことができる。インデックスを用いることにより、一つの発話の音声合成に、どの音声波形データを使用するべきかを指定することができ、様々な韻律で音声合成することができる。
【００１９】
音声アドレス記憶手段は、各々が複数のエントリを含む複数のアドレステーブルを複数の発話の各々に対して含んでもよい。アドレステーブルの各々の、複数のエントリの各々は、当該エントリに対応する発話の音声波形データの、音声波形データ記憶手段内のアドレスと、当該音声波形データから算出された複数種類の所定の韻律パラメータとを含んでもよい。音声発生装置はさらに、複数のアドレステーブルの各々について、複数種類の所定の韻律パラメータのうちの一つを指定する所定の信号に応答して、複数のエントリを、所定の信号により指定される韻律パラメータに従ってソートして、アドレステーブル上のエントリの配列順序を変更するためのソート手段を含んでもよい。
【００２０】
ソート手段により、任意の韻律パラメータによってアドレステーブル上のエントリの配列順序が変更される。インデックスの値が同じでも、エントリの配列順序が異なると、音声合成の際の韻律が変化する。また、インデックスの値の変化に対する音声合成の韻律の変化の仕方も異なってくる。そのため、利用者の使いやすい形で、音声合成の韻律の変化を指定することができる。
【００２１】
好ましくは、音声合成手段が受信する制御メッセージ列を、直前の制御メッセージの受信からの時間間隔を特定する情報とともにＭＩＤＩイベント列として格納するためのＭＩＤＩイベント列格納手段と、予め定められた保存指示信号に応答して、ＭＩＤＩイベント列格納手段に格納されたＭＩＤＩイベント列を所定のフォーマットで不揮発性記憶媒体上のファイルに出力するためのファイル出力手段とをさらに含む。
【００２２】
ＭＩＤＩイベント列をファイルとして出力することで、一連のＭＩＤＩメッセージによって発話された内容を保存することができる。ＭＩＤＩイベントを解釈しＭＩＤＩメッセージを復元する機能を備えた装置で、このファイルを読み、ＭＩＤＩメッセージに基づいて発話を行なうことで、発話内容を復元させることができる。
【００２３】
より好ましくは、ファイル読出のための所定の指示信号に応答して、所定の記憶媒体上の、ＭＩＤＩイベント列を所定のフォーマットで格納した発話ファイルから、ＭＩＤＩイベント列を読込むためのファイル読出手段と、ファイル読出手段により読込まれたＭＩＤＩイベント列を解釈し、ＭＩＤＩイベント列により表されるＭＩＤＩメッセージ群を、ＭＩＤＩイベント列により規定される時間間隔で順番に発生し、音声合成手段に与えるためのＭＩＤＩイベント列解釈手段とをさらに含む。
【００２４】
ファイル読出手段は、所定のフォーマットで格納された発話ファイルを読込む。ＭＩＤＩイベント列解釈手段は、読込まれた発話ファイルのＭＩＤＩイベント列を解釈し、ＭＩＤＩイベント列で表わされるＭＩＤＩメッセージ群を、ＭＩＤＩイベント列により規定される時間間隔で順番に発生し、音声合成手段に与える。発話ファイルを準備しておくことにより、自動的に当該発話ファイル内のＭＩＤＩイベント列により表される発話の音声を、所定の間隔で連続して音声合成により発生させることができる。
【００２５】
本発明の第２の局面に係るコンピュータプログラムは、複数の発話の音声波形データを記憶するための音声波形データ記憶手段と、所定の規格に従って指定される予め定められた符号と、複数の発話との間の対応関係を記憶するための対応関係記憶手段と、符号に対応する制御対象と、当該制御対象に対する制御を指定する制御情報とを伝送するための、所定の規格に従って作成された制御メッセージを受信するための受信手段とを備えたコンピュータにおいて実行されると、当該コンピュータを上記したいずれかの音声発生装置として動作させる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について、構成及び動作の順で説明する。なお、以下の説明においては、図中、同じ部品には同じ参照番号を付してある。それらの機能及び名称も同一である。従って、それらについての詳細な説明は繰返さない。
【００２７】
本実施の形態に係る音声発生装置は、ＭＩＤＩ（Ｍｕｓｉｃ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）インタフェースを採用し、ＭＩＤＩ規格に適合した装置からのＭＩＤＩメッセージに応答して、ＭＩＤＩメッセージにより指定される発声を音声合成を用いて行なうものである。
【００２８】
−構成−
図１に、本発明の実施の形態に係る音声発生システム３０の外観図を示す。図１を参照して、音声発生システム３０は、所定数（例えば４９個）のキー８０を備え、キーが押されると対応のＭＩＤＩメッセージを出力する機能を備えた音楽キーボード４４と、音楽キーボード４４とＭＩＤＩインタフェースを介して接続され、音楽キーボード４４からのＭＩＤＩメッセージに応答して、ＭＩＤＩメッセージにより指定される発話音声を発声するためのコンピュータ４０とを含む。
【００２９】
音声発生システム３０はさらに、いずれもコンピュータ４０に接続されるモニタ４２、コンピュータキーボード４６、マウス４８、マイクロホン７０及び一対のスピーカ７２とを含む。コンピュータ４０には、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）の再生及び記録が可能なＤＶＤドライブ５０と、所定の規格に従った半導体メモリ記憶装置が装着可能なメモリポート５２とが備えられている。コンピュータ４０の内部構成については図２を参照して後述する。
【００３０】
音楽キーボード４４は、音源は内蔵していないが、その構成は一般的なものであって、前述した４９個のキー８０に加え、電源スイッチ８２と、ボリュームコントローラ８４と、後述するように音声のトーンを制御する際に使用するトーンコントロールホイール８６と、キー８０にアサインされるチャンネルを指定するためのチャンネル移動キー８８と、チャンネル移動キー８８によりキー８０にアサインされているチャンネルを表示するチャンネル表示部９０と、種々の機能をアサイン可能なコントロールノブ９２と、コントロールノブ９２による機能を始めとして、動作時の種々の情報を表示するための液晶表示装置９４とを含む。本実施の形態においては、主としてキー８０、ボリュームコントローラ８４、トーンコントロールホイール８６、及びチャンネル移動キー８８を音声発生において使用する。その他の部分については本発明に直接は関係しないので、詳細は説明しない。
【００３１】
なお、音楽キーボード４４は、一般的には、キー８０のいずれかが操作されると、そのキーを示すノート番号と、チャンネル移動キー８８により指定されているチャンネル番号と、そのノート番号及びチャンネル番号により特定される音源に対する操作の種類を示す情報とを含むＭＩＤＩメッセージを出力し音声発生システム３０に与える機能を持つ。ノート番号、チャンネル番号などはいずれもＭＩＤＩ規格で用いられる、符号の一種である。ＭＩＤＩメッセージの一般形式については図４を参照して後述する。
【００３２】
図２を参照して、コンピュータ４０は、図１に示すＤＶＤドライブ５０及びメモリポート５２に加え、ＣＰＵ（中央演算処理装置）５６と、ＣＰＵ５６に接続されたバス６６と、いずれもバス６６に接続されたＲＯＭ（読出専用メモリ）５８、ＲＡＭ（ランダムアクセスメモリ）６０、ハードディスク５４、ＭＩＤＩインタフェース７４、ネットワークインタフェース７６、及びサウンドボード６８を含む。
【００３３】
ＤＶＤドライブ５０には、ＤＶＤ６２が装着される。メモリポート５２にはメモリ６４が装着される。ＣＰＵ５６は、バス６６並びにＤＶＤドライブ５０及びメモリポート５２をそれぞれ介して、ＤＶＤ６２及びメモリ６４をアクセスすることができる。
【００３４】
コンピュータキーボード４６、マウス４８、モニタ４２はいずれも図示しないインタフェースを介してコンピュータ４０のバス６６に接続される。スピーカ７２及びマイクロホン７０は、サウンドボード６８に接続される。この音声発生システム３０において、ＣＰＵ５６で実行される音声合成プログラムは、最終的にはデジタル形式の音声波形データを生成する。サウンドボード６８はその音声波形データをＣＰＵ５６から受取ると、アナログ信号に変換してスピーカ７２を介して音声を発生させる処理をする。
【００３５】
音声発生システム３０は主な動作モードとして、発話モードと記録モードと再生モードとを持つ。発話モードでは、キーを押すと、そのキーに対応する発話音声が発生される。その場合、音声発生システム３０では、キー８０の各キーに一つの発話が割当てられている。いずれかのキーを押すとそのキーを示すノート番号と、そのときに設定されているチャンネル番号とを含むＭＩＤＩメッセージがコンピュータ４０に与えられる。コンピュータ４０内の音声発生プログラムが、このＭＩＤＩメッセージを解釈して、対応の発話音声を発話単位の音声合成により出力する。音楽キーボード４４のキーへの発話の割当は、チャンネル移動キー８８を用いてチャンネルを切替えることにより切替えられる。異なるチャンネルでは、同じキーを押しても異なる音声が発生される。
【００３６】
記録モードでは、発話モードと同様に、キーを押すことにより発生される一連のＭＩＤＩメッセージがＭＩＤＩイベントとして全て記録される。記録されたＭＩＤＩイベントは、ＳＭＦ（ｓｔａｎｄａｒｄ  ｍｉｄｉ  ｆｉｌｅ）形式と呼ばれる、ＭＩＤＩデータを格納するための標準的ファイル形式でＭＩＤＩファイルとして保存される。
【００３７】
音声発生システム３０は、このようにして保存されたＭＩＤＩファイルを読出し、記録されたＭＩＤＩイベントを再生することで、記録時と同じ音声を音声合成により再現することもできる。
【００３８】
音楽キーボード４４からコンピュータ４０に出力されるＭＩＤＩメッセージの構成について、図３を参照して説明する。図３（Ａ）を参照して、ＭＩＤＩメッセージ１００は通常、先頭バイト１０２、第２バイト１０４、及び第３バイト１０６という３バイトを含む。メッセージの種類によっては、第３バイト１０６が含まれない場合もある。
【００３９】
先頭バイト１０２はステータスバイトと呼ばれる。ステータスバイトの先頭ビット１１０は常に「１」である。残りの７ビット１１２は、ＭＩＤＩメッセージの種類を示す。
【００４０】
第２バイト１０４及び第３バイト１０６はデータバイトと呼ばれ、その先頭ビット１１４及び１１８はともに「０」である。第２バイト１０４の下位７ビット１１６及び第３バイト１０６の下位７ビット１２０がデータを表す。
【００４１】
ＭＩＤＩメッセージには様々な種類があるが、本実施の形態では、一般のＭＩＤＩによる音楽演奏の場合に、パート別に独立した音発生などの制御をするためのチャンネルメッセージを使用する。チャンネルメッセージはさらに、音符（ノート）に関する情報を含むボイスメッセージと、ボイスメッセージの受信状態を設定するためのモードメッセージとを含む。本実施の形態では、ボイスメッセージを使用する。
【００４２】
図３（Ｂ）を参照して、ボイスメッセージ１３０は、図３（Ａ）に示す先頭バイト１０２の上位４ビットからなるメッセージ種別１３２と、先頭バイト１０２の下位４ビットからなるチャネル番号１３４と、第２バイト１０４の下位７ビットからなるノート番号１３６と、第３バイト１０６の下位７ビットからなるベロシティデータ１３８とからなる。
【００４３】
メッセージ種別１３２は、このボイスメッセージ１３０が音発生についてどのような制御を指令するデータかを示す。例えば、メッセージ種別１３２が「１００１」及び「１０００」の場合は、図３（Ｃ）に示すようにそれぞれ「ノートオン」（音の発生開始）及び「ノートオフ」（音の発生の停止）を示す。
【００４４】
ノート番号１３６は、図１に示すキー８０のうち、どのキーに関する処理かを示す。本実施の形態では、キー数は４９個であるが、ノート番号は、中央の「ド」を６０として、３６から８４までの範囲のいずれかをとる。
【００４５】
ベロシティデータ１３８は、キーが押されたときの強さを示す数値である。本実施の形態では、ベロシティデータ１３８は使用しない。
【００４６】
図３（Ｄ）を参照して、ボイスデータの一種のコントロールチェンジメッセージ１４０の構成について説明する。コントロールチェンジメッセージ１４０は、ボリューム設定などに用いられる。コントロールチェンジメッセージ１４０のステータスバイトの上位４ビット１４２の値は常に「１０１１」である。ステータスバイトの下位４ビット１４４はチャンネル番号を表す。第２バイト及び第３バイトの最上位１ビットはいずれも「０」である。第２バイトの下位７ビット１４６はコントロール番号と呼ばれ、何を制御するメッセージかを示す。第３バイトの下位７ビット１４８はコントロールの種類により様々である。
【００４７】
本実施の形態では、コントロールチェンジメッセージ１４０として、音の大きさを制御するためにボリュームチェンジメッセージと呼ばれるメッセージを使用する。
【００４８】
図３（Ｅ）を参照して、ボリュームチェンジメッセージ１５０のステータスバイトの上位４ビット１５２は「１０１１」、下位４ビット１５４はチャンネル番号を表す。第２バイトの下位７ビット１５６及び第３バイトの下位７ビット１５８の合計１４ビットの数値は、このボリュームチェンジメッセージにより設定されるボリュームの大きさを表す。
【００４９】
図３（Ｆ）を参照して、ボイスデータの一種のプログラムチェンジメッセージ１６０の構成について説明する。プログラムチェンジメッセージ１６０は２バイトからなる。プログラムチェンジメッセージ１６０のステータスバイトの上位４ビット１６２の値は「１１００」である。下位４ビット１６４はチャンネル番号を示す。第２バイトの下位７ビット１６６はプログラム番号を表す。本実施の形態では、プログラム番号は、ある特定の発話についての韻律（声調）を指定するためのものである。
【００５０】
以下、音声発生システム３０でＭＩＤＩメッセージを処理する機能を実現するための機能ブロックと、そうした機能ブロックをコンピュータで実現するためのプログラムの制御構造と、音声合成で使用されるファイル形式とについて詳細に説明する。
【００５１】
図４は、コンピュータ４０が実現する音声発生システム３０の主要機能部１８０を機能ブロック図形式で表した図である。図４を参照して、主要機能部１８０は、図１に示すモニタ４２、コンピュータキーボード４６、及びマウス４８を介して入力される操作者の操作に応答して、音声発生システム３０の各部の動作モードを設定し、各部を動作モードに応じて動作させるための制御部１８８と、図１に示す音楽キーボード４４からのＭＩＤＩメッセージ、又は内部的に発生されるＭＩＤＩメッセージを受信して、制御部１８８により設定される動作モードに従って、音声を発生させるためのデータを作成したり、一連の発話を構成するＭＩＤＩメッセージを発話ファイルに記録したり、発話ファイルに記録されたＭＩＤＩイベントを読出して解釈し、音声を発生させるためのＭＩＤＩメッセージを出力したりするためのＭＩＤＩ処理部１８２とを含む。発話ファイルは、本実施の形態では、ＭＩＤＩで使用される共通フォーマットであるＳＭＦ形式とする。
【００５２】
音声発生システム３０はさらに、ＭＩＤＩ処理部１８２により作成されるＳＭＦ形式発話ファイルを記憶するための発話ファイル格納部１８６と、制御部１８８の制御、及びＭＩＤＩ処理部１８２から与えられるデータに従い、ＭＩＤＩ処理部１８２によって指定された発話の音声波形データを音声合成により作成し出力するための音声合成部１８４とを含む。
【００５３】
ＭＩＤＩ処理部１８２は、音楽キーボード４４（図１参照）から与えられるＭＩＤＩメッセージを受ける第１の入力と、発話ファイルの再生時にＭＩＤＩ処理部１８２の内部で発生されるＭＩＤＩメッセージを受ける第２の入力とを持ち、制御部１８８からの制御に従っていずれかを選択して出力するための選択部１９０と、選択部１９０の出力するＭＩＤＩメッセージを受け、制御部１８８の制御に従って、音声合成部１８４に対してはＭＩＤＩメッセージによって指定される音声を合成するためのデータを出力し、発話の記録時にはＭＩＤＩメッセージをＭＩＤＩイベント形式にして出力するためのＭＩＤＩメッセージ処理部１９２と、発話の記録モード時に、ＭＩＤＩメッセージ処理部１９２から出力されるＭＩＤＩイベントを一連のＭＩＤＩイベント列に追加して記録するためのＭＩＤＩイベント記録部１９４と、ＭＩＤＩイベント記録部１９４により記録される一連のＭＩＤＩイベントを格納するための、メモリ上の領域であるＭＩＤＩイベント列格納部１９６とを含む。
【００５４】
ＭＩＤＩ処理部１８２はさらに、ＳＭＦ形式発話ファイルの読込みが制御部１８８により指定されたことに応答して、発話ファイル格納部１８６に記録されたＳＭＦ形式発話ファイルのうちで利用者に指定されたものを読み、ＭＩＤＩイベント列に展開してＭＩＤＩイベント列格納部１９６に格納するためのファイル入力部２０２と、制御部１８８によりＭＩＤＩイベント列格納部１９６に格納されたＭＩＤＩイベント列のファイルへの書出しが指定されたことに応答して、ＭＩＤＩイベント列格納部１９６に格納されたＭＩＤＩイベント列をＳＭＦ形式発話ファイルに整形し、発話ファイル格納部１８６に出力するためのファイル出力部２０４と、発話ファイルの再生時に、ＭＩＤＩイベント列格納部１９６に記録されたＭＩＤＩイベント列を解釈し、ＭＩＤＩイベント列により指定された時間に指定されたＭＩＤＩメッセージを選択部１９０に対して出力するためのＭＩＤＩイベント解釈部１９８と、ＭＩＤＩメッセージ処理部１９２によるＭＩＤＩメッセージの記録時に、ＭＩＤＩメッセージ処理部１９２が受信するメッセージ間の時間を計測するために使用するタイマ２００と、ＭＩＤＩイベント解釈部１９８によるＭＩＤＩメッセージ出力時にメッセージの出力間隔を決定するために使用されるタイマ２０６とを含む。
【００５５】
音声合成部１８４は、多数の発話から得た音声波形を格納している音声コーパス２１４を含む。音声コーパス２１４には多数の発話の音声波形が含まれている。本実施の形態では、音声コーパス２１４は長時間の発話を記録したものから得た音声波形を格納している。従って、同じ発話だが韻律情報の異なる発話の音声波形が音声コーパス２１４の種々の場所に存在している。
【００５６】
音声コーパス２１４は例えば不揮発性の、ハードディスク等の記憶媒体に記憶され、その一部又は全部がメモリにロードされる。
【００５７】
音声合成部１８４はさらに、音楽キーボード４４のキー８０に割当てられた発話テキストごとに、音声コーパス２１４内のどこに対応の音声波形が格納されているかを示すインデックスとなるアドレスデータのテーブル（音声インデックステーブル）群を格納した音声データアドレス格納部２１８と、ＭＩＤＩメッセージにより指定される発話を音声合成する際に、音声データアドレス格納部２１８に格納された複数の音声インデックステーブルのいずれを使用すべきかを示す音声−ノート対応テーブルを格納した音声選択用データ格納部２１０とを含む。音声データアドレス格納部２１８及び音声選択用データ格納部２１０も、通常のコンピュータに備えられた不揮発性の記憶媒体に記憶され、その一部又は全部がメモリにロードされる。
【００５８】
音声合成部１８４はさらに、ＭＩＤＩメッセージ処理部１９２により指定されるノート番号とチャンネル番号とに対応する音声インデックステーブルを音声選択用データ格納部２１０に格納された音声選択用データを参照して決定し、さらに、決定された音声選択用データと、ＭＩＤＩメッセージ処理部１９２により指定された声調インデックスとにより、音声インデックステーブルのどのエントリを用いて音声コーパス２１４をアクセスすべきかを決定するための音声決定部２１２と、音声決定部２１２によって決定された音声インデックスのエントリに含まれるアドレスを用いて音声コーパス２１４をアクセスし、当該アドレスから音声波形データを読出して出力するための音声波形合成部２１６とを含む。
【００５９】
本実施の形態では、音声波形合成部２１６は発話単位で音声波形を音声コーパス２１４から読出すため、音声合成を行なうというよりは、むしろ音声データの読出しを行なう機能を持つといってもよい。音声決定部２１２、音声波形合成部２１６等は、コンピュータプログラムにより実現される。
【００６０】
音声合成部１８４はさらに、音声データアドレス格納部２１８内の音声インデックステーブル内のエントリの並びを、制御部１８８からの指示に従った韻律パラメータをキーとしてソートするための音声データソート処理部２２０を含む。
【００６１】
図５〜図７に、音声データアドレス格納部２１８及び音声選択用データ格納部２１０内のデータ構成を示す。図５を参照して、音声データアドレス格納部２１８は、音声インデックステーブル群３００を含む。音声インデックステーブル群３００は、指定された発話を、指定された声調で発声するために必要な音声波形データが、音声コーパス２１４のどこに格納されているかを示すアドレスデータのテーブル群である。このテーブルは発話ごとに設けられており、エントリごとに音声コーパス２１４内のアドレスを格納している。音声インデックステーブル群３００の構成については図７を参照して後述する。
【００６２】
音声選択用データ格納部２１０は、チャンネル番号２８１及びノート番号２８０が与えられると、音声インデックステーブル群３００内のどのテーブルを参照すべきかを決定するために用いられる音声−ノート対応テーブル群２８２を格納している。音声−ノート対応テーブル群２８２内の音声−ノート対応テーブルは、チャンネルごとに設けられており、一チャンネルについて、ノート番号と、音声インデックステーブル群３００内のテーブルを特定する情報（音声インデックスと呼ぶ。）とをリストしている。
【００６３】
図６に、音声−ノート対応テーブル群２８２の詳細な構成を示す。図６を参照して、音声−ノート対応テーブル群２８２は、チャンネル１〜チャンネル１６のチャンネルごとに設けられたテーブル３１０を含む。
【００６４】
テーブル３１０は複数のエントリ３２０を含む。各エントリ３２０は、ノート番号３３０と、ノート番号３３０により指定される発話に対応する音声インデックステーブル群３００内のテーブルへの音声インデックス３３２と、ノート番号３３０に対応する発話テキスト３３４とを含む。前述したとおり、テーブル３１０はチャンネルごとに設けられている。
【００６５】
図７に、音声インデックステーブル群３００の構成を示す。図７を参照して、音声インデックステーブル群３００は、チャンネルごと、発話ごとに設けられた音声インデックステーブル３５０を含む。
【００６６】
各音声インデックステーブル３５０は、複数（本実施の形態の場合、１２８個）のエントリ３６０を含む。
【００６７】
各エントリ３６０は、このエントリに対応する音声波形データの、音声コーパス２１４内の開始アドレス３７０と、発話の持続時間３７２と、発話音声の高さ３７４と、発話音声の強さ３７６と、その他の韻律情報３７８とを含む。持続時間３７２、高さ３７４、強さ３７６、その他の韻律情報３７８などは、いずれも発話時の発話の韻律を示すパラメータである。音声インデックステーブル３５０内のエントリは、その長さ順、高さ順、強さ順などのうちのいずれかによって昇順又は降順に音声データソート処理部２２０（図４参照）によって並べられている。このテーブル内で、各チャンネルに対応した声調インデックスと呼ばれるインデックスにより指し示される位置にあるエントリの情報を用いて音声コーパス２１４から音声波形データを読出すことにより、発話時の音声のトーンをある程度コントロールすることができる。全ての音声インデックステーブル３５０に対する声調インデックスは、図５に示す声調インデックス記憶領域２８４と呼ばれる領域に格納される。
【００６８】
ＭＩＤＩ処理部１８２、音声決定部２１２及び音声波形合成部２１６は、互いに協働することにより、ＭＩＤＩメッセージに応答して、当該ＭＩＤＩメッセージを処理することにより、一連のＭＩＤＩメッセージと、音声選択用データ格納部２１０に記憶された対応関係とに従って、音声コーパス２１４に記憶された音声波形データを用いて発話の音声波形信号を合成する機能を実現する。
【００６９】
図８から図１６に、コンピュータにより音声発生システム３０を実現するためのプログラムの制御構造をフローチャート形式で示す。この制御構造を持つプログラム（群）をコンピュータ４０に実行させることにより、コンピュータ４０を構成するハードウェア及びコンピュータ４０に接続されたハードウェアが協働し、音声発生システム３０が実現される。
【００７０】
図８を参照して、このプログラムのメインルーチンは、システムの初期化ステップ３９０と、操作画面の表示ステップ３９２と、操作画面を用いてユーザによりどのような操作がされたかを判定し、操作の種類に応じて複数のステップのいずれかに分岐するか、又は処理を終了するための判定ステップ３９４と、ステップ３９４から分岐する、各操作に対応するステップ３９６，３９８，４００，４０２及び４０４とを含む。ステップ３９６，３９８，４００，４０２及び４０４はそれぞれ、初期化ステップ、発話・記録ステップ、ファイル出力ステップ、ファイル読込ステップ、及び再生ステップである。各ステップで実行される処理について、これから順次説明する。
【００７１】
ステップ３９０で行なわれるシステムの初期化では、後述するＭＩＤＩイベントを格納する領域などの確保、種々の動作環境を記録した設定ファイルの読出し、動作モードを所定モードに設定する処理等が行なわれる。
【００７２】
初期化ステップ３９６は、このプログラムの実行中に蓄積される発話データを初期化するステップである。図４に示す例では、ＭＩＤＩイベント列格納部１９６の内容をクリアする処理に相当する。またこのとき、図４に示す選択部１９０は音楽キーボード４４からのＭＩＤＩメッセージをＭＩＤＩメッセージ処理部１９２に与える。
【００７３】
発話・記録ステップ３９８は、利用者がこの音声発生システム３０を利用して任意の発話音声を発生させたり、一連の発話を発声させるためのＭＩＤＩイベントデータを音声発生システム３０中に記録させたりするための処理をする。単に発話をするだけか、発話を記録するかは図４に示すモニタ４２、コンピュータキーボード４６、マウス４８及び制御部１８８を用いて利用者により設定される。
【００７４】
図９に、発話・記録ステップ３９８のより詳細な制御構造をフローチャート形式で示す。図９を参照して、発話・記録ステップ３９８の最初に、ステップ４２０で発話を記録すべきか否かを判定する。発話を記録する場合、ステップ４２２でタイマ（図４に示すタイマ２００）をスタートさせる。タイマ２００は、経過時間を０から計時する。発話を記録しない場合、ステップ４２２の処理をスキップする。なお、発話を記録しない場合にはタイマを操作しないので、以下の説明でタイマを操作するのは記録モードのときだけである。特に説明しない限り、発話モードのときにはタイマに対する処理はしない。
【００７５】
ステップ４２４では、利用者により、何らかの操作がされたか否かを判定する。何らかの操作がされた場合、ステップ４６０に進み、操作がされなかった場合、ステップ４２６に進む。ステップ４６０以下の処理については後述することにする。
【００７６】
ステップ４２６では、音楽キーボード４４からＭＩＤＩメッセージを受信したか否かを判定する。ＭＩＤＩメッセージを受信した場合、ステップ４２８に進み、受信しなかった場合、ステップ４２４に戻る。
【００７７】
ステップ４２８では、タイマ２００の計時を一旦保存し、タイマ２００をゼロからリスタートする。続いてステップ４３０で、ステップ４２６で受信したメッセージを保存する。ステップ４３２で、メッセージが終了したか否かを判定する。終了していない場合、ステップ４３４でさらに受信したメッセージを追加して保存し、ステップ４３２に戻る。こうして、メッセージ全体を受信し保存すると、ステップ４３６に進む。
【００７８】
ステップ４３６では、受信したメッセージがノートオンメッセージか否かを判定する。ノートオンメッセージの場合、ステップ４５０に進み、ノートオン処理を実行してステップ４２４に戻る。ノートオンメッセージではない場合、ステップ４３８に進む。
【００７９】
ステップ４３８では、受信したメッセージがノートオフメッセージか否かを判定する。ノートオフメッセージの場合、ステップ４５２に進み、ノートオフ処理を実行してステップ４２４に戻る。ノートオフメッセージではない場合、ステップ４４０に進む。
【００８０】
ステップ４４０では、受信したメッセージがボリュームチェンジメッセージか否かを判定する。ボリュームチェンジメッセージの場合、ステップ４５４に進み、ボリューム設定処理を実行してステップ４２４に戻る。ボリュームチェンジメッセージではない場合、ステップ４４２に進む。
【００８１】
ステップ４４２では、受信したメッセージがプログラムチェンジメッセージか否かを判定する。プログラムチェンジメッセージの場合、ステップ４５６に進み、声調設定処理を実行してステップ４２４に戻る。プログラムチェンジメッセージではない場合、ステップ４４４に進む。
【００８２】
ステップ４４４では、受信したメッセージがリセットメッセージか否かを判定する。リセットメッセージは、本実施の形態で使用するコントロールチェンジメッセージの一種である。リセットメッセージの場合、ステップ４５８に進み、リセット処理を実行してステップ４２４に戻る。リセットメッセージではない場合、何もせずにステップ４２４に戻る。なお、図８のステップ３９６で行なう初期化処理は、モニタ４２、コンピュータキーボード４６、マウス４８を用いて利用者がコンピュータ４０に対して直接に初期化を指示する処理であるのに対し、ステップ４５８で実行されるリセット処理は、図１に示す音楽キーボード４４において所定のリセット操作を行なうことにより実行されるという違いがある。
【００８３】
一方、何らかの操作があったとステップ４２４で判定された場合、ステップ４６０に進む。ステップ４６０では、タイマが起動している場合にはこれを終了させる。続いてステップ４６２で、発話の記録が指示されているか否かを判定する。指示されていなければ何もせず終了する。指示されていればステップ４６４に進む。
【００８４】
ステップ４６４では、ＭＩＤＩイベントレコード群に、ファイルヘッダ等を付加してＳＭＦファイルのフォーマットに整形する。続いてステップ４６６で、出力ダイアログの呼出を行なう。この出力ダイアログは、ＯＳ又はプログラミング環境が準備するものである。このダイアログの呼出の前に、出力ダイアログのパラメータ設定を行なってもよい。出力ダイアログルーチンの実行中には、利用者が出力ファイルのパスを対話形式で入力し、システムはそのパスにファイルを出力する。利用者が所定のキャンセル処理をすると、ファイルの出力はされずにこのステップの処理を終了する。
【００８５】
図１０に、図９のステップ４５０で実行されるノートオン処理を実現するためのプログラムの制御構造を、フローチャート形式で示す。図１０を参照して、ノートオン処理では、ステップ４８０において、ＭＩＤＩメッセージ内のチャンネル番号によって、図６に示すテーブル３１０のうち、いずれかを選択する。ステップ４８２では、選択されたテーブル３１０において、ＭＩＤＩメッセージ内のノート番号と一致するノート番号を持つエントリを探す。ステップ４８３では、このようにして見出したエントリの「音声インデックス」の値を用い、図７に示す音声インデックステーブル群３００のうち、どの音声インデックステーブル３５０を使用するかを選択する。なお、見出されたエントリにより、発話内容のテキストも特定されるので、このステップで発話内容のテキストをモニタ４２に表示するようにしてもよい。
【００８６】
ステップ４８４では、ステップ４８３で選択された音声インデックステーブル３５０のエントリのうち、予め設定されている声調インデックスにより示される位置にあるエントリを探す。このエントリ中の「開始アドレス」を取得することによって、発生すべき音声波形データの音声コーパス２１４中の位置が特定される。ステップ４８５では、このようにして取得されたアドレスを音声合成プログラムに渡すための処理をし、ステップ４８６で音声合成プログラムを起動する。
【００８７】
ステップ４８６の後、このプロセスとは独立に音声合成プログラムが動作し、ステップ４８４で渡されたアドレスから音声波形データを読出し、音声波形信号を生成して出力する。
【００８８】
ステップ４８０〜ステップ４８４までの処理が図４に示す音声決定部２１２が行なう処理に相当する。
【００８９】
ステップ４８８では、発話の記録が指示されているか否かを判定する。指示されていなければ何もせず終了する。指示されていればステップ４９０に進む。
【００９０】
ステップ４９０では、ステップ４２６で受信したＭＩＤＩメッセージに、ステップ４２８で保存されたタイマの値を組み合わせた形でＭＩＤＩイベントレコードを作成し、メモリ中に準備されたＭＩＤＩイベント列格納部１９６（図４参照）に追加する。ステップ４９２では、ＭＩＤＩイベント列格納部１９６に記録された内容を図１に示すモニタ４２に表示する。ステップ４９２の後、ノートオン処理は終了する。
【００９１】
図１１に、図９のステップ４５２で実行されるノートオフ処理のフローチャートを示す図１１を参照して、ノートオフ処理では、ステップ５００において、受信したノートオフＭＩＤＩメッセージ中に含まれるチャンネル番号及びノート番号に基づき、対応の音声合成を終了させる。音声の場合には、音楽のように複数の音を重ねて発生させることはないので、通常はここではチャンネル番号及びノート番号と関係なく、音声合成そのものを中断させることになる。
【００９２】
ステップ５０２では、ＭＩＤＩイベントを記録することが指定されているか否かを判定する。指定されていなければ直ちにノートオフ処理を終了する。指定されていれば、ステップ５０４でＭＩＤＩイベントとしてノートオフのＭＩＤＩメッセージと、ステップ４２８で保存されたタイマの値とを組にしてＭＩＤＩイベントレコードを作成し、ＭＩＤＩイベント列格納部１９６（図４参照）に追加する。ステップ５０６では、ＭＩＤＩイベント列格納部１９６（図４参照）の内容をモニタ４２上に表示し、ノートオフ処理を終了する。
【００９３】
図１２は、図９のステップ４５４で実行されるボリューム設定処理のフローチャートである。ボリューム設定処理では、ステップ５１０で、受信したボリュームチェンジメッセージ中のチャンネル番号を参照し、対応のチャンネルでの音声認識の音声波形合成時のボリュームパラメータを、ボリュームチェンジメッセージ中のボリューム値に設定する。
【００９４】
ステップ５１２では、ＭＩＤＩイベントを記録することが指定されているか否かを判定する。指定されていなければ直ちにボリューム設定処理を終了する。指定されていれば、ステップ５１４において、受信したボリュームチェンジメッセージと、図９のステップ４２８で保存されたタイマの値とを組にしてＭＩＤＩイベントレコードを作成し、ＭＩＤＩイベント列格納部１９６（図４参照）に追加する。ステップ５１６では、ＭＩＤＩイベント列格納部１９６の内容をモニタ４２に表示し、ボリューム設定処理を終了する。
【００９５】
図１３は、図９のステップ４５６で実行される声調設定処理のフローチャートである。図１３を参照して、声調設定処理では、ステップ５３０で、受信したプログラムチェンジメッセージ（図３（Ｆ）参照）中のチャンネル番号１６４で指定されるチャンネルの音声合成のための声調インデックスを、プログラムチェンジメッセージ中の第２バイトの下位７ビット１６６（図３（Ｆ）参照）の値に変更する。この値は、図５に示す音声選択用データ格納部２１０内の声調インデックス記憶領域２８４内に格納される。
【００９６】
ステップ５３２では、ＭＩＤＩイベントを記録することが指定されているか否かを判定する。指定されていなければ直ちに声調設定処理を終了する。指定されていれば、ステップ５３４において、受信したプログラムチェンジメッセージと、図９のステップ４２８で保存されたタイマの値とを組にしてＭＩＤＩイベントレコードを作成し、ＭＩＤＩイベント列格納部１９６（図４参照）に追加する。ステップ５３６では、ＭＩＤＩイベント列格納部１９６の内容をモニタ４２に表示し、声調設定処理を終了する。
【００９７】
図１４は、図８のステップ４０４で行なわれる再生処理のフローチャートである。再生処理とは、図４に示す発話ファイル格納部１８６に格納されたＳＭＦ形式の発話ファイルを読出してＭＩＤＩイベント列格納部１９６に展開し、展開されたＭＩＤＩイベント列中の各レコードに含まれる時間間隔でＭＩＤＩメッセージを生成して出力する処理である。図４では、ファイル入力部２０２がファイルの読込みとＭＩＤＩイベント列格納部１９６へのＭＩＤＩイベント列の展開とを行なう機能ブロックであり、ＭＩＤＩイベント解釈部１９８が、ＭＩＤＩイベント列格納部１９６に展開されたＭＩＤＩイベント列に従って、タイマ２０６を用いて、ＭＩＤＩイベントで指定されたタイミングでＭＩＤＩメッセージを生成し選択部１９０に出力する機能ブロックである。
【００９８】
図１４を参照して、再生処理では、最初にステップ５５０において、ＭＩＤＩイベント列格納部１９６内のＭＩＤＩイベント列を格納する配列の要素位置を指定するポインタＰの値（以下ポインタＰの値を単に「値Ｐ」と呼ぶ。）に０が代入される。配列の先頭位置は「０」により表される。
【００９９】
ステップ５５２では、ＭＩＤＩイベント配列の有効要素数を取得し、変数ＰMAXに代入する。
【０１００】
ステップ５５４では、発話・記録プロセス（図９参照）を発話モードで起動する。
【０１０１】
ステップ５５６では、値Ｐ＋１と変数ＰMAXの値とを比較する。値Ｐ＋１が変数ＰMAXの値より大きければ、配列内の全ての有効要素に対して処理が完了したということである。従って制御はステップ５６８に進み、発話・記録プロセスを終了させ、再生処理も終了する。値Ｐ＋１が変数ＰMAXの値より大きければ、ステップ５５８に進む。
【０１０２】
ステップ５５８では、ＭＩＤＩイベント配列内の、ポインタＰにより示される位置からＭＩＤＩイベントを１行分読む処理を行なう。ステップ５６０では、タイマ２０６に、ステップ５５８で読んだＭＩＤＩイベント内のイベント間時間を設定し、タイマ２０６をスタートさせる。そして、ステップ５６２で、タイマ２０６が満了するまで待機する。タイマ２０６が満了するとステップ５６４に進む。
【０１０３】
ステップ５６４では、ステップ５５８で読んだＭＩＤＩイベントから生成したＭＩＤＩメッセージを、発話・記録プロセスに送る処理が実行される。続くステップ５６６では、値Ｐに１が加算される。この後、ステップ５５６に戻る。
【０１０４】
図１５を参照して、図８に示すファイル読込ステップ４０２の詳細なフローチャートは以下の通りである。ファイル読込処理では、ステップ５８０において、コンピュータ４０上で動作しているＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）又はプログラミング環境によって提供されるオープンダイアログルーチンのための、パラメータ設定処理が行なわれる。この処理では、特定の拡張子、例えば「．ｓｍｆ」を持つファイルのみをダイアログに表示するよう、オープンダイアログルーチンの呼出しのためのパラメータが設定される。
【０１０５】
ステップ５８２では、オープンダイアログが呼出される。この呼出しにより、制御はオープンダイアログを行なうための、ＯＳ又はプログラミング環境によって提供されるルーチンに渡される。このルーチンでは、利用者の操作に応じて、利用者が指定するファイルへのパスが取得される。利用者がこのルーチン内で所定のキャンセル動作を行なうと、その情報が所定の戻り値としてこのファイル読込ルーチンに戻される。
【０１０６】
ステップ５８４では、オープンダイアログルーチンの戻り値が「キャンセル」を示す値か否かを判定する。キャンセルを示す値であれば、直ちにこのファイル読込処理を終了する。キャンセルを示す値でなければ、ステップ５８６でＭＩＤＩイベント列を格納するための配列を確保した後、ステップ５８８で、オープンダイアログルーチンから渡されたファイルパスを用いてファイルをオープンし、その内容を読出す。ステップ５９０では、ステップ５８８で読出されたファイルの内容をＭＩＤＩイベント列に展開し、配列の各要素に格納する。そしてファイル読込処理を終了する。
【０１０７】
図１６に、図８のステップ４００で実行される、ファイル出力処理のフローチャートを示す。図１６を参照して、ファイル出力処理では、ステップ６００において、出力ダイアログのパラメータ設定を行なう。ここでは、出力するファイルの拡張子として、前述の「．ｓｍｆ」を設定する処理を行なう。この設定により、出力ダイアログには、同じ拡張子を持つファイル名のみが表示される。
【０１０８】
ステップ６０２で、出力ダイアログの呼出を行なう。この出力ダイアログは、ＯＳ又はプログラミング環境が準備するものである。出力ダイアログルーチンの実行中には、利用者は出力ファイルのパスを対話形式で入力する。利用者が所定のキャンセル処理をすると、それを示す値が出力ダイアログルーチンの戻り値としてこのファイル出力処理のルーチンに戻される。
【０１０９】
ステップ６０４では、出力ダイアログルーチン中でキャンセルの操作が行なわれたか否かを判定する。キャンセルされていればファイル出力処理を直ちに終了する。キャンセルされていなければステップ６０６に進む。
【０１１０】
ステップ６０６では、図４に示すＭＩＤＩイベント列格納部１９６内のＭＩＤＩイベント配列に格納されたＭＩＤＩイベント列を、発話ファイルのフォーマットに整形する処理を実行する。
【０１１１】
ステップ６０８では、このようにして得られた結果を、ステップ６０２で得られた出力ファイルのファイルバスに従ってファイルに出力し、処理を終了する。
【０１１２】
以上、図１〜図１６を参照して、本実施の形態に係る音声発生システム３０の構成について説明した。
【０１１３】
［動作］
音声発生システム３０は、以下のように動作する。音声発生システム３０の主要な動作モードには、動作環境の設定モード、音楽キーボード４４を用いた発話モード、音楽キーボード４４を用いた発話の記録モード、一連の発話により生成されたＭＩＤＩイベントの発話ファイルへの出力モード、発話ファイルの読込モード、及びメモリ上のＭＩＤＩイベントに基づく発話の再生モードなどがある。以下、順に説明する。
【０１１４】
−動作環境の設定モード−
動作環境の設定は主として図４に示すモニタ４２、コンピュータキーボード４６、及びマウス４８を用いた利用者の指示に従って制御部１８８により行なわれる。動作環境用のデータは、本実施の形態ではテキストファイルとしてハードディスク内に保存される。この処理自体は周知の方法で行なえる。
【０１１５】
動作環境の設定処理として行なうべき処理の一つに、音声データソート処理部２２０による音声データのソート処理がある。この処理では、図７に示す音声インデックステーブル群３００内の音声インデックステーブル３５０について、チャンネルごとに、そのチャンネルに属する音声インデックステーブル３５０のエントリ３６０を、持続時間３７２、高さ３７４、強さ３７６、又はその他の韻律パラメータ３７８の値をキーとして昇順又は降順にソートする。
【０１１６】
このように音声インデックステーブル３５０内のエントリをソートしておくと、次のような効果が得られる。指定されたノート番号の音声を発生するときに、参照すべき音声インデックステーブル３５０が音声−ノート対応テーブル群２８２を参照して、チャンネル番号及びノート番号で決定される。次に、決定された音声インデックステーブル３５０のエントリのうち、ノートオンメッセージにより指定されるチャンネルの声調インデックスで指定される位置のエントリに含まれるアドレスで、音声コーパス２１４がアクセスされる。このエントリは、長さ、高さ、強さ、その他の韻律パラメータで音声データソート処理部２２０により予めソートされている。従って、このソートにより、同じチャンネルの同じキーを押したときに、発生される音声の韻律は異なってくる。また、発話中にプログラムチェンジメッセージを使用して声調インデックスを変化させることにより、発生される音声の韻律が変化する。この際、声調インデックスの値は図１に示すトーンコントロールホイール８６により制御されるため、トーンコントロールホイール８６を回転させる方向に応じ、増加したり減少したりする。従って、トーンコントロールホイール８６を操作することで、発話中にも音声の韻律を変化させることができる。
【０１１７】
−音楽キーボード４４を用いた一般的操作−
音楽キーボード４４は一般的に以下のような動作をする。利用者が図１に示す音楽キーボード４４のキー８０のいずれかを押すと、音楽キーボード４４は、通常の動作により、チャンネル移動キー８８により設定されているチャンネル情報に基づき、チャンネル番号と、押されたキーに対応するノート番号とを含んだノートオンメッセージを生成し、コンピュータ４０に送信する。利用者がキーを離すと、音楽キーボード４４はノートオンの場合と同様にしてノートオフメッセージを作成し、コンピュータ４０に送信する。利用者が図１に示すボリュームコントローラ８４のスライダをスライドさせると、音楽キーボード４４は、新たな値をボリューム設定値として持つボリュームチェンジメッセージ１５０（図３（Ｅ）参照）を作成し、コンピュータ４０に送信する。利用者が右向きのチャンネル移動キー８８を操作すると、音楽キーボード４４は、チャンネル番号の値を１増加させ、記憶する。利用者がトーンコントロールホイール８６を回転させると、音楽キーボード４４は、トーンコントロールホイール８６の回転角度に応じた声調インデックスをデータとして持ち、かつ音楽キーボード４４に設定されているチャンネル番号を持つプログラムチェンジメッセージ１６０（図３（Ｆ）参照）を作成しコンピュータ４０に送信する。
【０１１８】
利用者が左向きのチャンネル移動キー８８を操作すると、音楽キーボード４４は、チャンネル番号の値を１減少させ、記憶する。なお、チャンネル番号は１〜１６の範囲であり、上記したように加算又は減算することにより新たなチャンネル番号がこの範囲から出ることになる場合には、チャンネル番号の変更は行なわれない。
【０１１９】
−発話モード−
図４に示すモニタ４２、コンピュータキーボード４６及びマウス４８を用い、利用者が音声発生システム３０の動作モードを発話処理に設定した場合、音声発生システム３０は以下のように動作する。
【０１２０】
図４を参照して、選択部１９０は音楽キーボード４４からのＭＩＤＩメッセージをＭＩＤＩメッセージ処理部１９２に与えるように設定される。
【０１２１】
ＭＩＤＩメッセージ処理部１９２は、音楽キーボード４４からのＭＩＤＩメッセージを待ち受ける（図９のステップ４２６）。ＭＩＤＩメッセージ処理部１９２は、ＭＩＤＩメッセージを受信すると、そのメッセージの種別をステータスバイトから判定し、適切な処理を行なう（図９のステップ４３６〜ステップ４５８）。本実施の形態で使用するメッセージの種類には、ノートオン、ノートオフ、ボリュームチェンジ、プログラムチェンジ、及びリセットがある。これらは、それぞれ図９のステップ４５０、４５２、４５４、４５６、及び４５８において処理される。以下、順に説明する。
【０１２２】
・ノートオン
ノートオンメッセージを受信した場合、ＭＩＤＩメッセージ処理部１９２は、メッセージ中のチャンネル番号とノート番号とを音声決定部２１２に渡す（図９のステップ４５０）。
【０１２３】
音声決定部２１２は、このチャンネル番号及びノート番号を用い、音声選択用データ格納部２１０に記憶されている音声−ノート対応テーブル群２８２（図５及び図６参照）の中から、受信したチャンネル番号に対応するテーブル３１０を選択する（図１０、ステップ４８０）。音声決定部２１２はさらに、選択されたテーブル３１０中のエントリの内で、ノートオンメッセージ中のノート番号と一致するノート番号を持つものを探す（図１０、ステップ４８２）。見つかったエントリ中の「音声インデックス」の欄を見ることにより、音声データアドレス格納部２１８に記録されている音声インデックステーブル群３００（図５及び図７参照）のうち、参照すべき音声インデックステーブル３５０を選択する（図１０、ステップ４８３）。
【０１２４】
音声決定部２１２はさらに、選択された音声インデックステーブル３５０のエントリのうち、声調インデックス記憶領域２８４中の、ノートオンメッセージ中のチャンネル番号に対応する声調インデックスより指定される位置にあるエントリを探し、そのエントリに格納されている開始アドレスの値及び長さの値を読出す（図１０、ステップ４８４）。音声決定部２１２は、このようにして取得された開始アドレスの値と、音声インデックステーブル３５０から読出した長さとを音声波形合成部２１６に渡し（図１０、ステップ４８５）、音声波形合成部２１６による音声合成を起動する（図１０、ステップ４８６）。この後ＭＩＤＩメッセージ処理部１９２は次のＭＩＤＩメッセージの待受けを行なう。（図９のステップ４５０〜ステップ４２４）。
【０１２５】
音声波形合成部２１６は、音声コーパス２１４の、指定された開始アドレス位置から、指定された長さだけ音声波形データを読出し、音声波形を合成して出力する。
【０１２６】
・ノートオフ
ノートオフメッセージを受信した場合、ＭＩＤＩメッセージ処理部１９２は、受信したメッセージ中のチャンネル番号及びノート番号に基づき、音声波形合成部２１６に対して音声合成の終了を指示する（図１１、ステップ５００）。音声波形合成部２１６はこの指示に応答して、指定されたチャンネル番号及びノート番号の発話の音声合成を終了する。
【０１２７】
・ボリュームチェンジ
ボリュームチェンジメッセージを受信した場合、ＭＩＤＩメッセージ処理部１９２は、ボリュームチェンジメッセージ中の設定ボリュームの値で、設定ファイル中の、ボリュームチェンジメッセージ中のチャンネル番号により示されるチャンネルのボリュームパラメータを変更する（図１２、ステップ５１０）。
【０１２８】
・プログラムチェンジ
ＭＩＤＩメッセージ処理部１９２は、プログラムチェンジメッセージを受信すると、図５に示す声調インデックス記憶領域２８４中の、当該チャンネルの声調インデックスの値を、プログラムチェンジメッセージ中のチャンネル番号と、第２バイトの下位７ビット１６６に格納された値とを用いて書変える（図１３、ステップ５３０）。
【０１２９】
・リセット
リセットメッセージを受けると、設定ファイル中のチャンネル番号の値が所定の初期値に更新される。また、ＭＩＤＩイベント列格納部１９６の内容がクリアされる。ただし、ＭＩＤＩイベント列格納部１９６には、発話モード時には何も格納されないので、クリアの前後で状態は変化しない。
【０１３０】
−記録モード−
記録モードでは、音声発生システム３０は以下のように動作する。記録モードでの音声発生システム３０の動作は、基本的には発話モードのときと同じである。異なるのは、ＭＩＤＩメッセージを受取るたびに、前回のＭＩＤＩメッセージからの経過時間を計測し、受信したＭＩＤＩメッセージと、そのメッセージまでの経過時間とに基づいて、両者を組み合わせたＭＩＤＩイベントレコードを作成し、図４に示すＭＩＤＩイベント列格納部１９６に追加するという点である。
【０１３１】
このため、ＭＩＤＩメッセージ処理部１９２は、処理の開始時にタイマ２００を起動し（図９のステップ４２２）、ＭＩＤＩメッセージを受信すると、そのときのタイマ２００の値を保存し（図９、ステップ４２８）、さらにタイマ２００をリスタートする。そして、ノートオン、ノートオフ、ボリューム設定、声調設定の各処理が終了した時点で、ＭＩＤＩメッセージと、保存されたタイマの計測値とを組み合わせたＭＩＤＩイベントをＭＩＤＩイベント列格納部１９６に追加する（図１０のステップ４９０、図１１のステップ５０４、図１２のステップ５１４、及び図１３のステップ５３４）。さらに、このようにして追加されたＭＩＤＩイベントを含む、ＭＩＤＩイベント列格納部１９６の記憶内容が図１に示すモニタ４２上に表示される（図１０のステップ４９２、図１１のステップ５０６、図１２のステップ５１６、及び図１３のステップ５３６）。
【０１３２】
こうして、記録モードでは、ＭＩＤＩイベント列格納部１９６内に、利用者が音楽キーボード４４を用いて作成した一連のＭＩＤＩメッセージがＭＩＤＩイベント列として格納される。
【０１３３】
そしてさらに、記録モードの終了時には、ＭＩＤＩイベント列格納部１９６に格納されたＭＩＤＩイベント列が発話ファイルの形に整形され（図９のステップ４６４）、ファイル出力部２０４を経て発話ファイル格納部１８６に書込まれる（図９のステップ４６６）。
【０１３４】
以上のようにして、記録モードでは、利用者が図１に示す音楽キーボード４４の各キーに対して行なった操作がコンピュータ４０に対してＭＩＤＩメッセージの形で送信される。コンピュータ４０では、この一連のＭＩＤＩメッセージと、それらメッセージが直前のメッセージからどの程度の時間を経て発生されたかを示す情報とに基づいてＭＩＤＩイベント列を記録する。記録モードの終了時に、こうして作成されたＭＩＤＩイベント列が発話ファイルの形で不揮発性の記憶媒体に書込まれる。
【０１３５】
−ファイルの出力モード−
ファイルの出力は、利用者が、図１に示すモニタ４２、コンピュータキーボード４６及びマウス４８を行なって入力するコマンドにより実行される。この場合、ファイル出力部２０４が、コンピュータ４０上のＯＳにより提供されるファイル出力ダイアログのルーチンを使用して（図１６、ステップ６００、６０２）出力ファイルへのファイルパスを取得し、ＭＩＤＩイベント列格納部１９６に記録されたＭＩＤＩイベント列を発話ファイルのフォーマットに整形し（図１６、ステップ６０６）、発話ファイル格納部１８６内に、指定されたファイルバスに従って発話ファイルとして出力する（図１６、ステップ６０８）。この処理は、図９のステップ４６４及び４６６で実行される処理と基本的に同じ処理である。
【０１３６】
−ファイルの読込モード−
ファイルの読込みは、利用者が、図１に示すモニタ４２、コンピュータキーボード４６及びマウス４８を行なって入力するコマンドにより実行される。このモードではまず、ファイル入力部２０２が、コンピュータ４０上のＯＳにより提供されるファイルオープンダイアログのルーチンを使用して（図１５、ステップ５８０、５８２）発話ファイルへのファイルパスを取得し、指定された発話ファイルをオープンする。ファイル入力部２０２は、ＭＩＤＩイベント列格納部１９６内にＭＩＤＩイベント列を格納する配列を確保し（図１５、ステップ５８６）、この発話ファイルの内容を読込みながら、一連のテキスト列の形で入力されているＭＩＤＩイベント列を展開し、ＭＩＤＩイベント列格納部１９６に格納する。このファイル読込みは通常行なわれる処理であるから、ここではその詳細は繰返さない。
【０１３７】
ただし、ここでは、ＭＩＤＩイベント記録部１９４がＭＩＤＩイベント列格納部１９６に書込む際のＭＩＤＩイベントのフォーマットと、ファイル入力部２０２が展開してＭＩＤＩイベント列格納部１９６に書込む際のＭＩＤＩイベントのフォーマットとが同一であるということに注意が必要である。こうすることで、これらＭＩＤＩイベントの再生が同一のプログラムによって実現できる。
【０１３８】
−再生モード−
再生モードは、利用者が、図１に示すモニタ４２、コンピュータキーボード４６及びマウス４８を行なって入力するコマンドにより実行される。このモードでは、発話を行なうので、図４に示すＭＩＤＩメッセージ処理部１９２、音声決定部２１２、及び音声波形合成部２１６がいずれもアクティブとなる（図１４、ステップ５５４）。また、図４に示す選択部１９０が、ＭＩＤＩイベント解釈部１９８からのＭＩＤＩメッセージを選択するように設定される。
【０１３９】
再生モードでは、ＭＩＤＩイベント解釈部１９８がＭＩＤＩイベント列格納部１９６の先頭のＭＩＤＩイベントを読込む（図１４、ステップ５５０、５５８）。続いてタイマ２０６に、読込まれたＭＩＤＩイベント中の経過時間情報を設定してタイマ２０６をスタートする（図１４、ステップ５６０）。タイマ２０６はこの値からカウントダウンを始め、満了する（値が０となる）とＭＩＤＩイベント解釈部１９８にその旨の信号を与える。
【０１４０】
ＭＩＤＩイベント解釈部１９８は、タイマ２０６からタイマ満了の信号を待つ（図１４、ステップ５６２）。タイマが満了すると、ＭＩＤＩイベント解釈部１９８は、読込んだ１行のＭＩＤＩイベント中のＭＩＤＩメッセージに相当する部分を、ＭＩＤＩメッセージと全く同じ形式で選択部１９０に与える（図１４、ステップ５６４）。これを受けたＭＩＤＩメッセージ処理部１９２は、発話モード時と全く同じ動作をする。その結果、ＭＩＤＩメッセージ処理部１９２、音声決定部２１２、及び音声波形合成部２１６により、ＭＩＤＩイベント列格納部１９６から読出された１行分の発話の音声波形が出力される。
【０１４１】
続いてＭＩＤＩイベント解釈部１９８は、次のＭＩＤＩイベントを読込む（図１４、ステップ５６６及びステップ５５８）。そしてタイマのリスタートからの処理を繰返す。
【０１４２】
以上の処理をＭＩＤＩイベント列格納部１９６に格納されたＭＩＤＩイベントの全てについて繰返すと、再生処理を終了する（図１４、ステップ５５６〜ステップ５６８）。
【０１４３】
こうして、ＭＩＤＩイベント列格納部１９６に記録されたＭＩＤＩイベント列により表される一連の発話が、ＭＩＤＩメッセージ処理部１９２、音声決定部２１２及び音声波形合成部２１６により音声合成の形で再生される。ＭＩＤＩイベント列格納部１９６に記録されるＭＩＤＩイベント列は、記録モード時に作成されたものでもよいし、発話ファイル格納部１８６からファイル入力部２０２によって読出され、ＭＩＤＩイベント列格納部１９６に展開されたものでもよい。
【０１４４】
［実施の形態の効果］
本実施の形態によれば、音楽キーボード４４に備えられたキー８０の一つ一つに、予めある発話が割当てられており、所望のキーを押すことにより、その発話の音声が音声合成により発生される。音楽キーボード４４とコンピュータ４０との間はＭＩＤＩインタフェースにより接続されているので、ＭＩＤＩ規格に従うものであれば、どのような音楽キーボードでも音声発生システム３０への入力装置として使用することができる。
【０１４５】
また、トーンコントロールホイール８６を使用して声調インデックスを変化させることにより、同じ内容の発話でも、韻律を変化させて音声合成させることができる。そのため、発話者が、自分の意図、気分などにあわせて発話の設定を自由に変えることができる。また、声調として音声の長さ、高さ、強さなどという韻律パラメータをキーとして音声を並べ替えることができるので、発話の際の韻律の選択の自由度が高くなる。韻律パラメータとしては、これら以外に任意のパラメータを用いることができるので、発話に伴う、テキスト的な内容以外の情報、すなわちパラ言語情報であるとか、非言語情報に属する情報も音声発生システム３０による音声によって伝達することが可能である。
【０１４６】
また音声発生システム３０では、一連の発話を記録し、発話ファイルの形式で保存し、ファイルから任意のときに読出して再生することができる。長時間の講義、音声による手紙などを、音声発生システム３０によって作成する作業が簡単になる。発話は発話ファイルの形式であり、特にＭＩＤＩにおけるＳＭＦファイル形式が利用できるので、音声をそのまま記録する場合と比較して記録に要する記憶容量がはるかに小さくて済む。ただし、このときには、記録時と再生時とで音声コーパス２１４、音声選択用データ格納部２１０、及び音声データアドレス格納部２１８が同一のものでなければならない。逆に言うと、発話ファイルの内容を見ただけでは、記録された発話の内容は分からず、必要な情報を持ったものでないと発話を再現できないという効果もある。
【０１４７】
また、音声コーパス２１４に保持される発話の言語が異なっていても、音声発生システム３０の構成は基本的には変化させなくてよい。音声選択用データ格納部２１０及び音声データアドレス格納部２１８の内容を音声コーパス２１４にあわせて変化させる必要があるだけである。もちろん、ユーザインタフェースの部分は利用者の言語にあわせてローカライズする必要がある。
【０１４８】
上記した実施の形態に係る音声発生システム３０は、発話障害を持つ人が利用することを想定している。しかし、この音声発生システム３０はそうした場面に利用可能なだけではない。例えば、発話自体は行なえるが、対人コミュニケーション能力に障害を持つ人にとってもコミュニケーションツールとしても利用できる。さらに、学習障害を持つ生徒、児童にとっても、成長のための助けとなるような利用方法も考えられる。
【０１４９】
また、上記したように、本実施の形態に係る音声発生システム３０では、発話の中でボリューム及び韻律情報を変化させることができる。この特徴をうまく使うことにより、音楽キーボード４４を単なる楽器ではなく、「人の声で歌う」ための楽器として使用することも理論的には可能である。
【０１５０】
［可能な変形］
上記した実施の形態では、音楽キーボード４４は入力のみに用い、音声合成はコンピュータ４０で行なっている。しかし本発明はそのような実施の形態には限定されない。音声コーパス２１４、音声選択用データ格納部２１０、音声データアドレス格納部２１８、並びに音声波形合成部２１６及び図１３〜図１６に示す制御構造を持つプログラムとを実行するだけの能力を持つ小型のコンピュータハードウェアがあれば、音楽キーボード４４のような携帯型の小さなキーボードに、上記した音声発生システム３０の機能を全て搭載することもできる。
【０１５１】
また、上記した実施の形態では、ＭＩＤＩ規格を採用した。しかし、本発明では、ＭＩＤＩ規格だけではなく、何らかの音源を用いて音声合成を行なうために必要な情報を交換するための規格であれば、どのような規格を用いても良い。もっとも、現在のところ、音声関連ではＭＩＤＩ規格が最も普及しているので、ＭＩＤＩ規格に準拠するのが現実的である。
【０１５２】
上記した実施の形態では、音楽キーボード４４を入力装置として採用している。しかし本発明はそのような実施の形態には限定されない。ＭＩＤＩ規格のような規格に従って、音声発声のための情報を所定のフォーマットで発生することができる装置であれば、どのような入力装置を用いてもよい。また、上記した実施の形態では、ＭＩＤＩインタフェースを用いて音楽キーボード４４とコンピュータ４０との間の通信を行なっている。しかし本発明はそのような実施の形態には限定されず、より新しい一般的な通信規格を用いて、ＭＩＤＩメッセージの送受信をこれらの間で行なうようにしてもよい。
【０１５３】
上記した実施の形態では、図１に示す音楽キーボード４４のチャンネル移動キー８８を用いてチャンネルが変更された場合、その情報はコンピュータ４０に与えらてれも使用されていない。しかし、この情報を用いることで、例えば、選択されたチャンネルの各キーに対応する発話内容を図６に示す音声−ノート対応テーブル群２８２から取得し、モニタ４２上にキー８０の画像とともに一覧表示するようにしてもよい。
【０１５４】
上記した実施の形態では、音声合成に波形接続型のものを用いている。しかし、本発明はそのような音声合成を用いるものには限定されない。リアルタイムで音声合成がおこなえるものであればどのような方式のものでもよい。例えば、音源信号を調音フィルタに通すことにより音声合成を行なうものでもよい。この場合には、音源信号の周波数、調音フィルタの特性などを声調インデックスのソート時のキーとして用いることができる。
【０１５５】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味および範囲内でのすべての変更を含む。
【図面の簡単な説明】
【０１５６】
【図１】本発明の一実施の形態に係る音声発生システム３０の外観を示す図である。
【図２】音声発生システム３０を構成するコンピュータ４０のブロック図である。
【図３】ＭＩＤＩメッセージの構成を説明するための図である。
【図４】音声発生システム３０の主要機能部１８０の機能ブロック図である。
【図５】音声データアドレス格納部２１８及び音声選択用データ格納部２１０の概略構成を示す模式図である。
【図６】音声−ノート対応テーブル群２８２の構成を示す図である。
【図７】音声インデックステーブル群３００の構成を示す図である。
【図８】音声発生システム３０をコンピュータにより実現するためのコンピュータプログラムのメイン処理の制御構造を示すフローチャートである。
【図９】発話・記録処理を実現するプログラムの制御構造を示すフローチャートである。
【図１０】ノートオン処理を実現するプログラムの制御構造を示すフローチャートである。
【図１１】ノートオフ処理を実現するプログラムの制御構造を示すフローチャートである。
【図１２】ボリューム設定処理を実現するプログラムの制御構造を示すフローチャートである。
【図１３】声調設定処理を実現するプログラムの制御構造を示すフローチャートである。
【図１４】再生処理を実現するプログラムの制御構造を示すフローチャートである。
【図１５】ファイル読込処理を実現するプログラムの制御構造を示すフローチャートである。
【図１６】ファイル出力処理を実現するプログラムの制御構造を示すフローチャートである。
【符号の説明】
【０１５７】
３０  音声発生システム
４０  コンピュータ
４２  モニタ
４４  音楽キーボード
４６  コンピュータキーボード
１００  ＭＩＤＩメッセージ
１３０  ボイスメッセージ
１４０  コントロールチェンジメッセージ
１５０  ボリュームチェンジメッセージ
１６０  プログラムチェンジメッセージ
１８０  音声発生システム３０の主要機能部
１８２  ＭＩＤＩ処理部
１８４  音声合成部
１８６  発話ファイル格納部
１８８  制御部
１９２  ＭＩＤＩメッセージ処理部
１９４  ＭＩＤＩイベント記録部
１９６  ＭＩＤＩイベント列格納部
１９８  ＭＩＤＩイベント解釈部
２００、２０６  タイマ
２０２  ファイル入力部
２０４  ファイル出力部
２１０  音声選択用データ格納部
２１２  音声決定部
２１４  音声コーパス
２１６  音声波形合成部
２１８  音声データアドレス格納部
２２０  音声データソート処理部
【図１】
2007256846.tif 000003
【図２】
2007256846.tif 000004
【図３】
2007256846.tif 000005
【図４】
2007256846.tif 000006
【図５】
2007256846.tif 000007
【図６】
2007256846.tif 000008
【図７】
2007256846.tif 000009
【図８】
2007256846.tif 000010
【図９】
2007256846.tif 000011
【図１０】
2007256846.tif 000012
【図１１】
2007256846.tif 000013
【図１２】
2007256846.tif 000014
【図１３】
2007256846.tif 000015
【図１４】
2007256846.tif 000016
【図１５】
2007256846.tif 000017
【図１６】
2007256846.tif 000018