(57)【要約】【課題】  小容量のデータとパラメータとを用いて高品質の音声を合成する。【解決手段】  コンピュータに、（１）第１音符データ乃至第ｍ音符データからなる音符情報を取得させ、（２）第１歌詞を構成する第１文字を、第１子音と第１母音とに分解させ、（３）連続した波形をサンプリングし量子化して得られた子音データであって、第１子音に対応する第１子音データを取得させ、（４）基本波形を変調して母音を生成するために必要な母音パラメータであって、第１母音に対応する第１母音パラメータを取得させ、（５）第１子音データと第１母音パラメータと第１音符情報とからなる第１音声情報を構成させ、（６）子音母音分解、子音データ取得、母音パラメータ取得、音声情報構成を繰り返して第２音声情報乃至第ｎ音声情報を合成して、第１音声情報乃至第ｎ音声情報からなる楽曲情報を合成させる。【選択図】    図１
2006053389.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第１音符データ乃至第ｍ音符データからなる音符情報を、音符情報記憶領域から取得する音符情報取得手順、
第１歌詞を構成する第１文字を、第１子音と第１母音とに分解する子音母音分解手順、
連続した波形をサンプリングし量子化して得られた子音データであって、前記第１子音に対応する第１子音データを、子音データ記憶領域から取得する子音データ取得手順、
基本波形を変調して母音を生成するために必要な母音パラメータであって、前記第１母音に対応する第１母音パラメータを、母音パラメータ記憶領域から取得する母音パラメータ取得手順、
前記第１子音データと前記第１母音パラメータと前記第１音符情報とからなる第１音声情報を構成する音声情報構成手順、
前記子音母音分解手順、前記子音データ取得手順、前記母音パラメータ取得手順、前記音声情報構成手順を繰り返して第２音声情報乃至第ｎ音声情報を合成して、前記第１音声情報乃至前記第ｎ音声情報からなる楽曲情報を合成する手順、を実行させるための音声合成プログラム（ｍ，ｎは、自然数）。
【請求項２】
前記楽曲音符情報が音色の指定されていない第１MIDIデータであり、前記子音データがPCM又はADPCMデータであり、前記母音パラメータがFM音源パラメータであり、前記楽曲情報が前記PCM又はADPCMデータ及びFM音源パラメータを有する第２MIDIデータである請求項１記載の音声合成プログラム。
【請求項３】
第１文字乃至第ｎ文字からなる既存歌詞を、既存歌詞記憶領域から取得する既存歌詞取得手順、
前記既存歌詞を外部の通信機能を有する端末へ送信する歌詞送信手順、
前記既存歌詞と同一又は前記既存歌詞の一部若しくは全部が変更された任意歌詞を受信する歌詞受信手順、をさらに含み、
前記任意歌詞を前記第１歌詞として前記子音母音分解手順以降を実行させるための請求項１又は２記載の音声合成プログラム。
【請求項４】
前記第２MIDIデータをMLD又はMMFのいずれかの形式のファイルに変換するファイル形式変換手順、
形式変換後の前記ファイルを前記端末へ送信するファイル送信手順、をさらに実行させるための請求項３記載の音声合成プログラム。
【請求項５】
音符情報取得手段が、第１音符データ乃至第ｍ音符データからなる音符情報を、音符情報記憶領域から取得するステップ、
子音母音分解手段が、第１歌詞を構成する第１文字を、第１子音と第１母音とに分解するステップ、
子音データ取得手段が、連続した波形をサンプリングし量子化して得られた子音データであって、前記第１子音に対応する第１子音データを、子音データ記憶領域から取得するステップ、
母音パラメータ取得手段が、基本波形を変調して母音を生成するために必要な母音パラメータであって、前記第１母音に対応する第１母音パラメータを、母音パラメータ記憶領域から取得するステップ、
音声情報構成手段が、前記第１子音データと前記第１母音パラメータと前記第１音符情報とからなる第１音声情報を構成するステップ、
前記子音と母音とに分解するステップ、前記子音データを取得するステップ、前記母音パラメータを取得するステップ、前記音声情報を構成するステップを繰り返して第２音声情報乃至第ｎ音声情報を合成して、前記第１音声情報乃至前記第ｎ音声情報からなる楽曲情報を合成するステップから構成される音声合成方法（ｍ，ｎは、自然数）。
【請求項６】
前記楽曲音符情報が音色の指定されていない第１MIDIデータであり、前記子音データがPCM又はADPCMデータであり、前記母音パラメータがFM音源パラメータであり、前記楽曲情報が前記PCM又はADPCMデータ及びFM音源パラメータを有する第２MIDIデータである請求項５記載の音声合成方法。
【請求項７】
既存歌詞取得手段が、第１文字乃至第ｎ文字からなる既存歌詞を、既存歌詞記憶領域から取得するステップ、
歌詞送信手段が、前記既存歌詞を外部の通信機能を有する端末へ送信するステップ、
歌詞受信手段が、前記既存歌詞と同一又は前記既存歌詞の一部若しくは全部が変更された任意歌詞を受信するステップ、をさらに含み、
前記任意歌詞を前記第１歌詞として前記子音と母音とに分解するステップ以降を実行させるステップから構成される請求項５又は６記載の音声合成方法。
【請求項８】
ファイル形式変換手段が、前記第２MIDIデータをMLD又はMMFのいずれかの形式のファイルに変換するステップ、
ファイル送信手段が、形式変換後の前記ファイルを前記端末へ送信するステップ、をさらに含む請求項７記載の音声合成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声合成プログラム及び方法に関し、特に小容量のデータとパラメータとを用いて高品質の音声合成を可能にする音声合成プログラム及び方法に関する。
【背景技術】
【０００２】
携帯電話システムや簡易型携帯電話システム（ＰＨＳ：Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）等においては音楽または音声を再生または生成するデータを記憶するために使用可能なメモリの容量はとても少ない。
【０００３】
このため、連続した波形をサンプリングし、量子化して得られたデータに基づいて高品質な音声を再生しようとすると、２，３秒程度しか再生できない。また、音声（言葉）と認識できる範囲で音質レベルを下げても４，５秒程度しか再生できない。
【０００４】
また、単純な正弦波を周波数変調、位相変調などして得られる変調波のデータ、またはそのようにして得られる変調波を合成して得られる合成波のデータ、その変調波または合成波の音程パラメータ、さらにその変調波または合成波の開始タイミングパラメータ、さらにその終了タイミングパラメータなどに基づいて音を生成することも可能だが、音声（言葉）として認識しうる音を生成することはできない。
【０００５】
この問題を回避するため、圧縮符号化されたボーカルデータと圧縮符号化される際に用いられたコードブックとを用いて高音質の音声再生を可能にする技術もあるが（例えば、特許文献１参照。）、圧縮されたデータを展開する処理が必要となり高性能なＣＰＵが必要になってしまう。
【特許文献１】特開２００１−３４２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、データの圧縮符号化などを必要とすることなく、記憶容量が小さな端末において高音質な音声の生成を可能とする音声合成方法及び音声合成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の特徴は、音声合成プログラムであって、コンピュータに、（１）第１音符データ乃至第ｍ音符データからなる音符情報を、音符情報記憶領域から取得する音符情報取得手順、（２）第１歌詞を構成する第１文字を、第１子音と第１母音とに分解する子音母音分解手順、（３）連続した波形をサンプリングし量子化して得られた子音データであって、第１子音に対応する第１子音データを、子音データ記憶領域から取得する子音データ取得手順、（４）基本波形を変調して母音を生成するために必要な母音パラメータであって、第１母音に対応する第１母音パラメータを、母音パラメータ記憶領域から取得する母音パラメータ取得手順、（５）第１子音データと第１母音パラメータと第１音符情報とからなる第１音声情報を構成する音声情報構成手順、（６）子音母音分解手順、子音データ取得手順、母音パラメータ取得手順、音声情報構成手順を繰り返して第２音声情報乃至第ｎ音声情報を合成して、第１音声情報乃至第ｎ音声情報からなる楽曲情報を合成する手順、を実行させることにある。
【０００８】
ｍ又はｎは、自然数である。音符の数ｍと歌詞を構成する文字ｎとは必ずしも同じでなくて良い。例えば、元の歌詞の音符数が６である場合に、それら音符に当てはめる文字数は６未満であっても良い。この場合、音符が余る事になる。
【０００９】
なお、文字が「あ」、「い」、「う」、「え」、「お」である場合は、子音は不要であることは言うまでもない。例えば、第１文字が母音である場合、第１子音データは取得されない。
【発明の効果】
【００１０】
本発明の第１の特徴によれば、子音を子音データに基づいて再生し、母音パラメータに基づいて生成される母音を、音符データに基づいて所定の音階で放音するために必要な音声情報を合成することができ、さらに、そのようにして合成された一連の音声情報からなる楽曲情報を合成することができる。
【発明を実施するための最良の形態】
【００１１】
以下に図面に基づいて、本発明を実施するための最良の形態を説明する。なお、以下の説明は、単なる例示に過ぎず、本発明の技術的範囲は以下の説明に限定されるものではない。
【実施例１】
【００１２】
図１は、実施例１にかかる音声合成サーバの概略構成を示す。図１に示すように、音声合成サーバ１０は、携帯端末２から楽曲ＩＤ等を受信する歌詞入力インターフェース１１と、歌詞情報ライブラリを記憶する歌詞情報ライブラリ記憶手段１２と、歌詞入力インターフェース１１から楽曲ＩＤ等を受け取って音声を合成する音声合成エンジン１３と、MIDIデータライブラリを記憶するMIDIデータライブラリ記憶手段１４と、子音ライブラリを記憶する子音ライブラリ記憶手段１５と、母音を記憶する母音ライブラリ記憶手段１６と、音声合成後楽曲データを携帯端末２へ送信する配信用インターフェース１７とを備える。
【００１３】
歌詞情報ライブラリ記憶手段１２は既存歌詞記憶領域に、MIDIデータライブラリ記憶手段１４は音符情報記憶領域に、子音ライブラリ記憶手段１５は子音データ記憶領域に、母音ライブラリ記憶手段１６は母音データ記憶領域に、それぞれ相当する。
【００１４】
図１において、携帯端末２を音声合成サーバ１０の左右両側に描いているが、これは単に見やすさくするためである。左側の携帯端末２と右側の携帯端末２は同一物である。
【００１５】
図１に示すように、携帯端末２から歌詞入力インターフェース１１へ楽曲ＩＤが送信され、歌詞入力インターフェース１１から携帯端末２へ歌詞情報が送信され、携帯端末２から歌詞入力インターフェース１１へ自由文が送信される。
【００１６】
歌詞入力インターフェース１１は、歌詞情報ライブラリ記憶手段１２から、楽曲ＩＤに対応する歌詞情報を取得する。また、歌詞入力インターフェース１１は、楽曲ＩＤと自由文を音声合成エンジン１３へ渡す。
【００１７】
音声合成エンジン１３は、MIDIデータライブラリ記憶手段１４から、楽曲ＩＤに対応するMIDIデータを取得する。また、音声合成エンジン１３は、子音ライブラリ記憶手段１５から自由文に対応する子音再生データ（PCM音源データ）を取得し、母音ライブラリ記憶手段１６から自由文に対応する母音生成パラメータ（FM音源パラメータ）を取得する。そして、音声合成エンジン１３は、MIDIデータと子音再生データ（PCM音源データ）と母音生成パラメータ（FM音源パラメータ）とに基づいて、音声合成後楽曲データを生成する。
【００１８】
歌詞情報ライブラリ記憶手段１２には、楽曲ＩＤと歌詞情報とが対応付けて記憶され、MIDIデータライブラリ記憶手段１４には、楽曲ＩＤとMIDIデータとが対応付けて記憶され、子音ライブラリ記憶手段１５には、子音と子音再生データとが対応付けて記憶され、母音ライブラリ記憶手段１６には、母音と母音生成生成パラメータとが対応付けて記憶されている。
【００１９】
配信用インターフェース１７は、音声合成エンジン１３から音声合成後楽曲データを受け取り、携帯端末２へ送信する。
【００２０】
図２は、実施例１における音声合成サーバの構成を示すブロック図である。音声合成サーバ１０は、図１に示したように、歌詞情報ライブラリ記憶手段１２と、MIDIデータライブラリ記憶手段１４と、子音ライブラリ記憶手段１５と、母音ライブラリ記憶手段１６とを備え、さらに中央処理装置（ＣＰＵ）２１と、リードオンリーメモリ（ＲＯＭ）２２と、ランダムアクセスメモリ（ＲＡＭ）２３と、送受信部２４と、歌詞入力インターフェースプログラム記憶手段２６と、音声合成エンジンプログラム記憶手段２７と、配信用インターフェースプログラム記憶手段２６とを備える。ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３等はバス２１２を介してデータをやり取りすることができる。
【００２１】
ＲＯＭ２２にはＢＩＯＳ(Basic Input Output System)などが記憶されている。ＲＡＭ２３は、歌詞入力インターフェースプログラム、音声合成エンジンプログラム、配信用インターフェースプログラムなどのワークエリアとして使用される。また、送受信部２４は、携帯端末から楽曲ＩＤを受信したり、携帯端末へ音声合成後楽曲データを送信したりする。例えば、携帯端末から楽曲ＩＤをデータとして持つパケットを受信したり、音声合成後楽曲データをデータとして持つパケットを送信したりする。
【００２２】
歌詞入力インターフェースプログラム記憶手段２６には、楽曲ＩＤ入力画面構成ファイル、歌詞情報検索取得プログラム、自由文入力画面構成ファイルなどが記憶されている。これらファイルやプログラムによって、歌詞入力インターフェース１１が実現される。
【００２３】
楽曲ＩＤ入力画面構成ファイルが、携帯端末２に送信され、携帯端末２のブラウザによって解釈されると、楽曲ＩＤを入力するフィールドまたはエリアおよび「送信」または「決定」ボタンが、携帯端末２の表示画面に表示される。かかるフィールドまたはエリアに楽曲ＩＤが入力され、「送信」または「決定」などのボタンが選択されると、楽曲ＩＤが音声合成サーバ１０に送信される。
【００２４】
歌詞情報検索取得プログラムは、楽曲ＩＤに対応する歌詞情報が歌詞情報ライブラリ記憶手段１２に記憶されているか検索し、楽曲ＩＤに対応する歌詞情報が見つかったら、その歌詞情報を取得し、自由文入力画面構成ファイルとともに携帯端末２へ送信する。
【００２５】
自由文入力画面構成ファイルが、携帯端末２に送信され、携帯端末２のブラウザによって解釈されると、自由文を入力するフィールドまたはエリアおよび「送信」または「決定」ボタンが、携帯端末２の表示画面に表示される。かかるフィールドまたはエリアには初期状態で楽曲ＩＤに対応する歌詞（歌詞情報ライブラリ記憶手段に記憶されている歌詞）が入力されている。携帯端末の文字入力手段を用いてかかる正しい歌詞の一部または全部が修正されると、自由文入力フィールドまたはエリアには自由文が入力された状態となる。かかる状態で、「送信」または「決定」ボタンが選択されると、自由文が音声合成サーバ１０に送信される。
【００２６】
音声合成サーバ１０に送信された自由文は、楽曲ＩＤと共に音声合成エンジン１３に渡される。
【００２７】
音声合成エンジン記憶手段２７には、Midiデータ検索取得プログラム、自由文解析プログラム、パターンファイル、ＰＣＭデータ検索取得プログラム、ＦＭパラメータ検索取得プログラム、Midiデータ解析プログラム、ＰＣＭデータ配置プログラム、ＦＭパラメータ配置プログラム、携帯端末用データ変換プログラムなどが記憶されている。これらファイルやプログラムによって、音声合成エンジン１３が実現される。
【００２８】
Midiデータ検索取得プログラムは、楽曲ＩＤに対応するMidiデータがMidiデータライブラリ記憶手段１４に記憶されているか検索し、楽曲ＩＤに対応するMidiデータが見つかったら、そのMidiデータを取得する。
【００２９】
自由文解析プログラムは、受け取った自由文を解析し、自由文を構成する第１の文字、第２の文字、第３の文字、・・・第ｎの文字を抽出し、さらに各文字を構成する第１の子音と第１の母音、第２の子音と第２の母音、第３の子音と第３の母音、・・・第ｎの子音と第ｎの母音、を抽出する。ｎは、任意の自然数とする。
【００３０】
パターンファイルは、前述の自由文解析プログラムが第nの文字を抽出するためのテーブルおよび第nの文字から子音および母音を抽出するためのテーブルを記憶している。例えば、文字「あ」に対して母音[a]を、文字「け」に対して子音[K]と母音[e]を、文字「ちょ」に対して子音[CH]と母音[o]を関連づけて記憶している。
【００３１】
ＰＣＭデータ検索取得プログラムは、自由文から抽出された第１の子音、第２の子音、第３の子音、・・・第ｎの子音に対応するＰＣＭデータが子音ライブラリ記憶手段１５に記憶されているか検索し、第１の子音に対応する第１のＰＣＭデータ、第２の子音に対応する第２のＰＣＭデータ、第３の子音に対応する第３のＰＣＭデータ、・・・第ｎの子音に対応する第ｎのＰＣＭデータ、を取得する。
【００３２】
ＦＭパラメータ検索取得プログラムは、自由文から抽出された第１の母音、第２の母音、第３の母音、・・・第ｎの母音に対応するＦＭパラメータが母音ライブラリ記憶手段１６に記憶されているか検索し、第１の母音に対応する第１のＦＭパラメータ、第２の母音に対応する第２のＦＭパラメータ、第３の母音に対応する第３のＦＭパラメータ、・・・第ｎの母音に対応する第ｎのＦＭパラメータを取得する。
【００３３】
Midiデータ解析プログラムは、Midiデータ検索取得プログラムで取得したMidiデータを解析して、第nキューのx番目のノート情報を抽出するプログラムであり、Midiデータから（１）FMパラメータセット(第１の音、第2の音、・・・、第ｎの音)の音色選択パラメータ(プログラムチェンジ)や位置情報を取得し、かつ（２）キューポイント(第1のキュー、第2のキュー、・・・、第5のキュー)を取得する。
【００３４】
ＰＣＭデータ配置プログラムは、第１のＰＣＭデータを第１の音の子音配置位置に、第２のＰＣＭデータを第２の音の子音配置位置に、第３のＰＣＭデータを第３の音の子音配置位置に、・・・第ｎのＰＣＭデータを第ｎの音の子音配置位置に、それぞれ配置する。
【００３５】
ＦＭパラメータ配置プログラムは、第１のＦＭデータを第１の音の母音配置位置に、第２のＦＭデータを第２の音の母音配置位置に、第３のＦＭデータを第３の音の母音配置位置に、・・・第ｎのＦＭデータを第ｎの音の母音配置位置に、それぞれ配置する。
【００３６】
携帯端末用データ変換プログラムは、前記のようにしてＰＣＭデータおよびＦＭパラメータが配置されたMidiデータを、例えばMLD形式、MMF形式などの 携帯電話着信メロディ用ファイル形式に変換する。
【００３７】
配信用インターフェース記憶手段２８には、楽曲データパケット生成プログラム、楽曲データパケット送信プログラム、楽曲再生画面構成ファイルなどが記憶されている。これらファイルやプログラムによって、配信用インターフェース１７が実現される。
【００３８】
楽曲データパケット生成プログラムは、音声合成エンジン１３によって合成された携帯端末用データを複数のデータの断片に分割し、分割によって得られた各データの断片をパケットデータとして含む複数のパケットを生成する。
【００３９】
楽曲データパケット送信プログラムは、楽曲データパケット生成プログラムによって生成された各パケットを携帯端末２へ送信する。
【００４０】
楽曲再生画面構成ファイルが、携帯端末２に送信され、携帯端末２のブラウザによって解釈されると、「再生」などのボタンが携帯端末２の表示画面に表示される。かかる「再生」ボタンが選択されると、受信した複数のパケットから得られた複数の楽曲データの断片から生成されたひとまとまりの楽曲データの再生が、携帯端末２において開始される。
【００４１】
図３は、実施例１における音声合成処理の全体の流れを示すフローチャートである。図３に示すように、
ステップＳ３０１で、楽曲ＩＤを携帯端末２に入力し、入力された楽曲ＩＤをサーバへ送信し、
ステップＳ３０３で、サーバ１０は楽曲ＩＤを受信し、
ステップＳ３０４で、サーバ１０は、楽曲ＩＤに対応する歌詞情報を歌詞情報ライブラリから取得し、取得した歌詞情報を携帯端末２へ送信し、
ステップＳ３０６で、携帯端末２は、歌詞情報を受信し、
ステップＳ３０７で、携帯端末ユーザは、自由文を携帯端末２に入力し、
ステップＳ３０８で、携帯端末２は、入力された自由文と楽曲ＩＤをサーバ１０へ送信し、
ステップＳ３１０で、サーバ１０は、自由文と楽曲ＩＤとを受信し、
ステップＳ３１１で、サーバ１０は、受信した楽曲ＩＤに対応するMIDIデータと受信した自由文に対応する子音再生データと母音生成データとを合成し、
ステップＳ３１２で、サーバ１０は、音声合成後MIDIデータをMLDデータに変換し、
ステップＳ３１３で、サーバ１０は、変換されたMLDデータを携帯端末へ送信し、
ステップＳ３１５で、携帯端末２は、変換されたMLDデータを受信し、
ステップＳ３１６で、携帯端末２は、受信したMLDデータに基づいて合成された音声によって歌われる楽曲を出力する。
【００４２】
＜各ステップの具体的な内容＞
ステップＳ３０１では、携帯端末２に楽曲IDを入力し、入力された楽曲ＩＤをサーバの歌詞入力インターフェースへ送る。楽曲ＩＤは、楽曲を識別しうるものであれば良い。例えば、桃太郎などの楽曲名でも良く、また楽曲に対応する数字、英字、英数字の組み合わせなどでも良い。
【００４３】
例えば、携帯端末２の表示画面には、携帯端末ユーザに楽曲を選択させるための画面を表示させる。具体的には、
１：ももたろう
２：きんたろう
３：・・・・
「決定」
などの複数の楽曲名と楽曲ＩＤ（楽曲名の前の数字）及び「決定」ボタンを表示させる。携帯端末ユーザが、「１」を選択した状態で「決定」ボタンを押すと、楽曲「ももたろう」に対応する楽曲ＩＤが音声合成サーバ１０へ送信される。
【００４４】
ステップＳ３０３では、サーバの歌詞入力インターフェースは楽曲ＩＤを受信し、
ステップＳ３０４では、歌詞入力インターフェースは、歌詞情報ライブラリに楽曲ID（例えば、「桃太郎」という楽曲名）を送り、楽曲IDに対応する歌詞情報（例えば、楽曲「桃太郎」の歌詞）を受け取り、受け取った歌詞情報（例えば、楽曲「桃太郎」の歌詞）を携帯端末へ送る。
【００４５】
歌詞情報に含まれる情報は以下の通りである。
【００４６】
（１）フレーズの区切り(キュー：cue)
（２）フレーズごとの文字数(num)
例えば、楽曲「桃太郎」の歌詞の場合は、
第１キュー(start)
第１文字数：６（も も た ろ さ ん）
第２キュー
第２文字数：６（も も た ろ さ ん）
第３キュー
第３文字数：７（お こ し に つ け た）
第４キュー
第４文字数：５（き び だ ん ご） 
第５キュー(end)
となる。「６」，「７」，「５」などの文字数だけを送信し、「ももたろさん」、「おこしにつけた」、「きびだんご」などの歌詞を送信しなくても良い。携帯端末側は、
第１キューと第２キューとの間に６文字まで挿入可能、
第２キューと第３キューとの間に６文字まで挿入可能、
第３キューと第４キューとの間に７文字まで挿入可能、
第４キューと第５キューとの間に５文字まで挿入可能、であることがわかれば良いからである。
【００４７】
また、歌詞だけを送信し、文字数は送信しなくても良い。この場合、携帯端末側は、
第１キューと第２キューとの間は「ももたろさん」をそのまま使用、
第２キューと第３キューとの間は「きんたろさん」に変更するとしても良い。このようにすれば、第１キューと第２キューとの間に関しては文字入力の手間を省くことができる。
【００４８】
ステップＳ３０６で、携帯端末は歌詞情報を受信し、
ステップＳ３０７で、携帯端末のユーザが自由文を携帯端末に入力する。
【００４９】
この際、携帯端末２の表示画面に、携帯端末ユーザに歌詞を入力させるための画面を表示させる。例えば、
ももたろさん
[              ]
ももたろさん
[              ]
・・・
「決定」
などの本来の歌詞と、本来の歌詞の代わりにユーザが入力したい文字を入力するフォームと「決定」ボタンを表示させる。
【００５０】
ステップＳ３０８で、入力された自由文と楽曲ＩＤをサーバへ送信する。
【００５１】
例えば、携帯端末上で、各フレーズに自由文を入力し、入力された自由文と楽曲ID として楽曲名「桃太郎」を、サーバの歌詞入力インターフェースに送る。
【００５２】
例えば、
第１キュー(start)
第１文字数：６
第１文字列：す  い  ど  う  ば  し
第２キュー
第２文字数：６
第２文字列：す  い  ど  う  ば  し
第３キュー
第３文字数：７
第３文字列：じ  ん  ぼ  う  ちょ  う  の
第４キュー
第４文字数：５
第４文字列：う  え  の  ほ  う 
第５キュー(end)
となる。
【００５３】
第１キューと第２キューとの間が第１フレーズ、
第２キューと第３キューとの間が第２フレーズ、
第３キューと第４キューとの間が第３フレーズ、
第４キューと第５キューとの間が第４フレーズ、となる。
【００５４】
なお、文字列を受信すれば、受信側で文字数をカウントすることが可能であるから、各フレーズの文字数は送信しなくても良い。
【００５５】
ステップＳ３０８で、入力された自由文と楽曲ＩＤをサーバへ送信し、
ステップＳ３１０で、サーバは自由文と楽曲ＩＤとを受信し、
ステップＳ３１１で、受信した楽曲ＩＤに対応するMIDIデータと受信した自由文に対応する音声を合成する。
【００５６】
図４は、歌詞入力インターフェースから、楽曲ID (例えば、桃太郎)と自由文を受け取った音声合成エンジンにおける音声合成処理の流れを示す。図４に示すように、
ステップＳ４０１で、キュー番号を示す変数Ｎと、文字番号を示す変数Ｘにそれぞれ１を設定する。
【００５７】
ステップＳ４０２で、音声合成エンジン１３は、楽曲ID (例えば、桃太郎)に基づいて、楽曲ID (例えば、桃太郎)に対応するMIDIデータ（例えば、momotaro.mid）をMIDIデータライブラリ記憶手段１４から取得する。
【００５８】
MIDIデータライブラリ記憶手段１４は、各楽曲IDに対応するMIDIデータを格納する。本実施例におけるMIDIデータの楽曲を構成する各ノートは、FM音源で母音を生成するために必要なパラメータのセットを持つことができる。これを、FMパラメータセットと呼ぶ。FMパラメータセットは
・音色割り当てデータ（どの音色データを使用するかを示す数値）
・ノートオン（発音開始にかかわるメッセージ）
・ノートオフ（発音終了にかかわるメッセージ）
・キーナンバー（音程を表す番号）
・ベロシティー（鍵盤を弾く強さを示す数値）
などのパラメータを含む。
【００５９】
さらに、FMパラメータセットは、
・ピッチベンド（音程を円滑に上下させる効果を示す数値）
・モジュレーション（音色を揺らす効果を示す数値）など
などのパラメータも含み得る。
【００６０】
MIDIデータライブラリ記憶手段に格納されているMIDIデータは、メロディを構成する各ノートに音色割り当てデータを除いたパラメータセットを元々持っている。つまり、ノートオン、ノートオフ、キーナンバー、ベロシティーからなるパラメータセットを予め持っている。また、必要に応じて、ピッチベンド、モジュレーションなどのパラメータも予め持っていても良い。
【００６１】
各ノートをどの母音用FM音色割り当てデータを用いて発音するかを選択することによって、つまり各ノートに“音色選択パラメータ”（Midi上では、プログラムチェンジ）を付加し、再生時にそのパラメータに対応するFM音色割り当てデータを用いることよって、メロディラインを母音で歌わせることができる。
【００６２】
＜楽曲データに子音情報と母音情報を設定する＞
＜自由文情報をもとに、子音情報と母音情報を取得＞
ステップＳ４０３で、音声合成エンジン１３は、歌詞入力インターフェースより送られた自由文の文字情報を、1文字ずつ処理して楽曲データに反映させていく。この際、処理をする文字を、第Ｎキューの第Ｘ番目の文字とカウントする。最初は、Ｎ、Ｘともに１である。
【００６３】
各文字を子音と母音に分解する方法の一例を説明する。例えば、処理対象の文字と子音、母音の対応表を予め用意し、その対応表に基づいて割当てを行う。
【００６４】
具体的には、「あ」に"a"、「い」に"i"、「う」に"u"、「え」に"e"、「お」に"o"を、「か」に"K"と"a"、「き」に"K"と"i"、「く」に"K"と"u"、「け」に"K"と"e"、「こ」に"K"と"o"を割り当てるという対応表を予め用意する。
【００６５】
音声合成エンジン１３は、第Ｎキューの第Ｘ番目の文字に対応する子音用ADPCMデータ及び母音用FM音色割り当てデータを、子音ライブラリ記憶手段１５と母音ライブラリ記憶手段１６から取得する。第Ｎキューの第Ｘ番目の文字が母音（あ、い、う、え、お）の場合は、子音用ADPCM音源については読み込まない。
【００６６】
子音ライブラリ記憶手段１５には、子音を再生する量子化されたデータであるADPCMデータが、
母音ライブラリ記憶手段１６には、母音を生成するFM音色パラメータである音色割り当てデータが、格納されている。
【００６７】
FM音色割り当てデータとは、どのようなFM音色を用いて対応するノートを発音させるかを表すパラメータセットのことである。FM音色は、単純な正弦波に対し、周波数変調・位相変調を行い、それを複数組み合わせ・合成することで出力波形を任意に作成することができる。この変調・合成のアルゴリズムを指定するパラメータセットが、音色割り当てデータである。
【００６８】
通常、携帯端末上にプリセットされているFM音色（例. バイオリン）については、対応するアルゴリズムが既に携帯端末上にあるので、どのアルゴリズムを用いるかを指定すれば良い。
【００６９】
母音を発音する為の音色割り当てデータに関しては、携帯端末上にプリセットされているわけではないので、母音用のFM音色割り当てデータによって変調・合成のアルゴリズムの内容を具体的に特定する必要がある。アルゴリズムの具体的な内容については後述する。
【００７０】
＜楽曲データに、子音用ADPCMデータと母音用FM音色パラメータを配置する＞
ステップＳ４０４で、MIDIデータに子音データと母音パラメータを与える。MIDIデータライブラリより受け取ったMIDIデータ(例えば、momotaro.mid)の第NキューのX番目のノートを対応ノートと呼ぶこととする。
【００７１】
子音部分については、対応ノートに合わせて（発音タイミングは各子音によって異なる）子音用ADPCMデータを配置する。母音には対応ノートに母音用の音色割り当てデータ（パラメータセット）を付加する。
【００７２】
図５は、子音を再生するためのADPCMデータと、母音を生成するためのFM音色割当てデータと、音符情報との関係を示す概念図である。同図の例では、momotaro.midの、第１キューの１番目のノートについて、
「す」と歌わせる為に、
（１）子音部分には、[ S ]を発音する50msec程度のADPCMデータを配置し、
（２）母音部分には、対応ノートに[ u ]を発音するFM音色割り当てデータを付加する。
【００７３】
前記の如く、ノートオンメッセージ、ノートオフメッセージなどの音符情報は、MIDIデータライブラリ記憶手段１４から取得される。一方、ADPCMデータは子音ライブラリ記憶手段１５から、FM音色割当てデータは母音ライブラリ記憶手段１６から取得される。
【００７４】
＜次のNOTE/CUEの処理判定＞
音声合成エンジンに送られる自由文は、フレーズの区切り(cue)と、フレーズごとの文字数(num)を保持している。
【００７５】
ステップＳ４０５において、文字番号Ｘとキュー端文字番号numが等しいかを調べる。Ｘとnumが等しくない場合は、ステップＳ４０６において、Ｘを１だけインクリメントし、ステップＳ４０２、４０３へ戻る。例えば、Ｘ＝１、num＝６の場合は、Ｘはnumに等しくないので、Ｘを１だけインクリメントして、ステップＳ４０２，４０３へ戻る。
【００７６】
ステップＳ４０５において、Ｘがnumに等しい場合は、ステップＳ４０７に進み、
ステップＳ４０７において、Ｎを１だけインクリメントして、
ステップＳ４０８において、Ｎがフレーズ最終番号STOPかを調べる。
【００７７】
ステップＳ４０８において、Ｎがフレーズ最終番号STOPでないなら、ステップＳ４０９でＸに１をセットした後、ステップＳ４０２，４０３へ戻る。ステップＳ４０８において、Ｎがフレーズ最終番号STOPであるなら、図３のステップＳ３１２へ進む。
【００７８】
具体的には、ステップＳ４０２において、音声合成エンジン１３は、MIDIデータライブラリ記憶手段１４から第１キューの１番目の文字のMIDIデータを取得する。
【００７９】
ステップＳ４０３において、第１キューの１番目の文字が「す」であるなら、音声合成エンジン１３は、子音ライブラリ記憶手段１５から子音データ[S]を、母音ライブラリ記憶手段１６から母音パラメータ[u]を取得する。
【００８０】
ステップＳ４０４において、音声合成エンジン１３は、第１キューの１番目のMIDIデータに[S]の子音データと[u]の母音パラメータを与える。
【００８１】
Ｘ＝１、num＝６の場合は、Ｘはnumに等しくないので、Ｘを１だけインクリメントして（ステップＳ４０６）、ステップＳ４０２，４０３へ戻る。
【００８２】
ステップＳ４０２において、音声合成エンジン１３は、MIDIデータライブラリ記憶手段１４から第１キューの２番目の文字のMIDIデータを取得する。
【００８３】
ステップＳ４０３において、第１キューの２番目の文字が「い」であるなら、音声合成エンジン１３は、子音ライブラリ記憶手段１５から、子音情報を取得せず、母音ライブラリ記憶手段１６から[ｉ]の母音パラメータだけを取得する。
【００８４】
ステップＳ４０４において、音声合成エンジン１３は、第１キューの２番目のMIDIデータに、[ｉ]の母音パラメータのみを与える。
【００８５】
Ｘ＝２、num＝６の場合は、Ｘはnumに等しくないので、Ｘを１だけインクリメントして（ステップＳ４０６）、ステップＳ４０２，４０３へ戻る。
【００８６】
ステップＳ４０２において、音声合成エンジン１３は、MIDIデータライブラリ記憶手段１４から第１キューの３番目の文字のMIDIデータを取得する。
【００８７】
ステップＳ４０３において、第１キューの３番目の文字が「ど」であるなら、音声合成エンジン１３は、子音ライブラリ記憶手段１５から[D]の子音データを、母音ライブラリ記憶手段１６から [o]の母音パラメータを取得する。
【００８８】
ステップＳ４０４において、音声合成エンジン１３は、第１キューの３番目のMIDIデータに、[D]の子音データと [o]の母音パラメータを与える。
【００８９】
Ｘ＝３、num＝６の場合は、Ｘはnumに等しくないので、Ｘを１だけインクリメントして（ステップＳ４０６）、ステップＳ４０２，４０３へ戻る。
【００９０】
ステップＳ４０２において、音声合成エンジン１３は、MIDIデータライブラリ記憶手段１４から第１キューの４番目の文字のMIDIデータを取得する。
【００９１】
ステップＳ４０３において、第１キューの４番目の文字が「う」であるなら、音声合成エンジン１３は、子音ライブラリ記憶手段１５から子音情報を取得せず、母音ライブラリ記憶手段１６から [u]の母音パラメータだけを取得する。
【００９２】
ステップＳ４０４において、音声合成エンジン１３は、第１キューの４番目のMIDIデータに、[D]の子音データと[o]の母音パラメータを与える。
【００９３】
Ｘ＝４、num＝６の場合は、Ｘはnumに等しくないので、Ｘを１だけインクリメントして（ステップＳ４０６）、ステップＳ４０２，４０３へ戻る。
【００９４】
ステップＳ４０２において、音声合成エンジン１３は、MIDIデータライブラリ記憶手段１４から第１キューの５番目の文字のMIDIデータを取得する。
【００９５】
ステップＳ４０３において、第１キューの５番目の文字が「ば」であるなら、音声合成エンジン１３は、子音ライブラリ記憶手段１５から[B]の子音データを、母音ライブラリ記憶手段１６から[a]の母音パラメータを取得する。
【００９６】
ステップＳ４０４において、音声合成エンジン１３は、第１キューの５番目のMIDIデータに、 [D]の子音データと [o]の母音パラメータを与える。
【００９７】
Ｘ＝５、num＝６の場合は、Ｘはnumに等しくないので、Ｘを１だけインクリメントして（ステップＳ４０６）、ステップＳ４０２，４０３へ戻る。
【００９８】
ステップＳ４０２において、音声合成エンジン１３は、MIDIデータライブラリ記憶手段１４から第１キューの６番目の文字のMIDIデータを取得する。
【００９９】
ステップＳ４０３において、第１キューの６番目の文字が「し」であるなら、音声合成エンジン１３は、子音ライブラリ記憶手段１５から [S]の子音データを、母音ライブラリ記憶手段１６から[i]の母音パラメータを取得する。
【０１００】
ステップＳ４０４において、音声合成エンジン１３は、第１キューの６番目のMIDIデータに、 [S]の子音データと [i]の母音パラメータを与える。
【０１０１】
Ｘ＝６、num＝６の場合は、Ｘはnumに等しいので、ステップＳ４０７へ進み、Ｎを１だけインクリメントする。Ｎが最後のキューでないなら、つまりステップＳ４０８でＮ＝ＳＴＯＰでないなら、ステップＳ４０９でＸに１をセットした後、ステップＳ４０２，４０３へ戻る。
【０１０２】
例えば、第５キューが最終キューの場合であって、Ｎを１だけインクリメントした結果、Ｎが２となった場合は、Ｎは最後のキューではないからステップＳ４０９でＸに１をセットした後、ステップＳ４０２，４０３へ戻る。そして、音声合成エンジン１３は、第２キューの１番目から第２キューの最後の音についてまで順番に音情報を楽曲データに与える。以下、同様に、最終キューまで処理を繰り返す。最終キューの最後の音にまで子音データ及び母音パラメータを与えたら、MIDIデータへの音声合成を終了し、図３のステップＳ３１２へ進む。
【０１０３】
＜母音情報、子音情報が反映された楽曲データを、携帯端末用データに変換し携帯端末にデータを送信＞
最後のキュー、cue(STOP)まで進んだ時点で、音声合成エンジン１３は、母音情報（FMパラメータセット）および子音情報（ADPCMデータ）が付加された楽曲データを携帯端末用データ（＝音声合成後楽曲データ）に変換し、配信用インターフェース１７に送る。
【０１０４】
携帯端末用データとは、例えば株式会社NTTドコモの携帯端末などで使用可能なMLDファイル、ボーダフォン株式会社やKDDI株式会社（au）の携帯端末などで使用可能なMMFファイル等を意味する。配信用インターフェース１７は、携帯端末２に音声合成後楽曲データを送信する。
【０１０５】
＜携帯端末上での各部の動作＞
図６は、実施例１における携帯端末の内部構成を示すブロック図である。同図に示すように、携帯端末は、ＲＡＭ（ランダムアクセスメモリ）１０１、ＣＰＵ（中央処理装置）１０２、音源ハードウェア部１０３、スピーカー１０８を備える。音源ハードウェア部１０３は、シーケンサ１０４、FM音源部１０５、ADPCM音源部１０６、ミキサー１０７を備える。
【０１０６】
ＲＡＭ１０１は、音声合成プログラム１０１ａ、第１ＡＤＰＣＭデータ１０１ｂ、第２ＡＤＰＣＭデータ１０１ｃ、第３ＡＤＰＣＭデータ１０１ｄ、第４ＡＤＰＣＭデータ１０１ｅ、第１ＦＭ音色パラメータ１０１ｆ、第２ＦＭ音色パラメータ１０１ｇ、第３ＦＭ音色パラメータ１０１ｈ、第４ＦＭ音色パラメータ１０１ｉ、第５ＦＭ音色パラメータ１０１ｊ、第６ＦＭ音色パラメータ１０１ｋなどを記憶する。
【０１０７】
音声合成プログラム１０１ａは、音声合成後楽曲データから、ＦＭ音色パラメータおよびADPCMデータを除いたものであり、どの子音再生データ（ADPCMデータ）を用いて、いつ、どの子音を再生するか、また母音生成パラメータ（FM音色パラメータ）を用いて、いつ、どの母音をどのように生成するか等を示すプログラムである。
【０１０８】
子音再生データは再生する子音に対応したADPCMデータから構成され、母音生成パラメータは、生成する母音に対応したFM音色パラメータから構成される。例えば「スイドウバシ」（「Su」、「i」、「Do」、「u」、「Ba」、「Si」）というメロディ音声を生成する場合、各音の子音である「S」、「D」、「B」、「S」（「イ」と「ウ」は母音のみのため除く）のADPCMデータが第１ADPCMデータ１０１ｂ〜第４ADPCMデータ１０１ｅとしてＲＡＭ１０１に格納され、各音の母音である「ｕ」、「i」、「o」、「ｕ」、「a」、「i」のFM音色パラメータが第１FMパラメータセット１０１ｆ〜第６FM音色パラメータ１０１ｋとしてＲＡＭ１０１に格納される。
【０１０９】
＜RAMに格納されるデータの減量化＞
子音再生に必要なADPCMデータも、母音生成に必要なFM音色パラメータも再生する音声や歌に必要な部分だけをＲＡＭ１０１に記憶させるとしてもよい。例えば「スイドウバシ」という音声だけを生成する場合、「スイドウバシ」は子音「S」、「D」、「B」、に関する3つのADPCMデータ（第１ADPCMデータ１０１ｂ、第２ADPCMデータ１０１ｃ、第３ADPCMデータ１０１ｄ）と、母音「ｕ」、「i」、「o」、「a」に関する４つのFM音色パラメータ（第１FM音色パラメータ１０１ｆ、第２FM音色パラメータ１０１ｇ、第３FM音色パラメータ１０１ｈ、第５FM音色パラメータ１０１ｊ）がＲＡＭ１０１に記憶されていれば足りる。母音「e」に関する音色パラメータをＲＡＭ１０１に記憶させる必要はない。
【０１１０】
また、１音目の「ス」の生成に使用される母音「u」と、４音目の「ウ」の生成に使用される母音「u」とを、同一のFM音色パラメータを用いて生成することによって、携帯端末が受信しなければならないFM音色パラメータのデータ量の合計を少なくすることが可能になる。
【０１１１】
同様に、２音目の「イ」の生成に使用される母音「ｉ」と６音目の「シ」の生成に使用される母音「ｉ」に関しても同様に、同一のＦＭ音色パラメータを使用するとしても良い。
【０１１２】
さらに、「ス」の再生に使用される子音「S」と「シ」の再生に使用される子音「S」とを、同一のADPCMデータを用いて再生することによって、携帯端末が受信しなければならないADPCMデータのデータ量の合計を少なくすることも可能になる。
【０１１３】
ＣＰＵ１０２は、ＲＡＭ１０１から音声合成プログラム１０１ａを読み出してシーケンサ１０４に供給する。
【０１１４】
シーケンサ１０４は、CPU１０２を介してPAM１０１からADPCMデータを読み出して、ADPCM音源部１０６に供給し、CPU１０２を介してRAM１０１から、FM音色パラメータを読み出して、音声合成プログラム101aのノートオン、ノートオフ、キーナンバー、ベロシティー、ピッチベンド、モジュレーション等の情報に基づいて、FMパラメータセットを生成し、FM音源部１０５に供給する。
【０１１５】
FM音源部１０５は、供給されたFMパラメータセットに基づいて母音を生成し、ミキサー１０７に出力する。
【０１１６】
ADPCM音源部１０６は、供給されたADPCMデータに基づいて子音を再生しミキサー１０７に出力する。
【０１１７】
ADPCM音源部１０６が再生した子音とFM音源部１０５が生成した母音は、ミキサー１０７に入力されてミキシングされてスピーカー１０８から放音される。
【０１１８】
＜音声合成処理フロー＞
図７は、実施例１の携帯端末における音声合成処理の一連の流れを示すフローチャートである。同図に示すように、シーケンサ１０４は、ADPCMデータ（子音データ）をADPCM音源部１０６にセットし（ステップＳ７０１）、これと並行してシーケンサ１０４は、音声合成プログラム１０１ａとFM音色パラメータに基づいて生成されたFMパラメータセットをFM音源部１０５にセットする（ステップＳ７０３）。
【０１１９】
するとADPCM音源部１０６は、セットされたADPCMデータに基づいて子音を再生し（ステップＳ７０５）、これと並行してFM音源部１０５は、セットされたFMパラメータに基づいて音色データを生成し、この音色データを用いて母音を生成する（ステップＳ７０７）。
【０１２０】
ADPCM音源部１０６によって再生された子音およびFM音源部１０５によって生成された母音は、ミキサー１０７に入力されてミキシングされる（ステップＳ７０９）。ミキシングされた音は、スピーカー１０８から出力される（ステップＳ７１１）。未生成の音が残っているかを判断し（ステップＳ７１３）、未生成の音が残っている場合は処理が最初に戻り、未生成の音が残っていない場合は処理が終了する。
【０１２１】
＜実際の生成発音時間＞
図８は、実施例１の携帯端末において、子音再生と母音生成を繰り返すことによって音声を生成する場合の各音の再生／生成のタイミングとその継続時間の一例を示す。同図に基づいて「スイドウバシ」を生成する場合の再生／生成のタイミングとその継続時間について説明する。
【０１２２】
＜「ス」の生成＞
「スイドウバシ」は、子音「S」と母音「u」、母音「i」、子音「D」と母音「o」、母音「u」、子音「B」と母音「a」、子音「S」と母音「i」から構成される。そこで、シーケンサ１０４は、まず「S」のADPCMデータをADPCM音源部１０６にセットする。
【０１２３】
ADPCM音源部１０６は、「S」のADPCMデータに基づいて１ミリ秒後から93ミリ秒間程度「S」の音を再生する。これと並行してFM音源部１０５は、音声合成プログラム１０１ａと「u」のFM音源パラメータに基づいて生成された「u」のFMパラメータセットを「S」の音が再生開始されると同時に750ミリ秒間生成する。
【０１２４】
＜「イ」の生成＞
次に、シーケンサ１０４は、音声合成プログラム１０１ａと「i」のFMパラメータセットをFM音源部１０５にセットする。FM音源部１０５は、250ミリ秒間「i」の音色パラメータに基づいて生成されたFMパラメータセットに基づいて「i」の音を生成する。
【０１２５】
＜「ド」の生成＞
次に、シーケンサ１０４は、「D」のADPCMデータをADPCM音源部１０６にセットするとともに、音声合成プログラム１０１ａと「o」の音色パラメータに基づいて生成されたFMパラメータセットをFM音源部１０５にセットする。ADPCM音源部１０６は、「D」のADPCMデータに基づいて1ミリ秒後から50ミリ秒間程度「D」の音を再生する。これと並行してFM音源部１０５は、「D」の音が再生開始されると同時に250ミリ秒間「o」のFMパラメータセットに基づいて「o」の音を生成する。
【０１２６】
＜「ウ」の生成＞
次に、シーケンサ１０４は、音声合成プログラム１０１ａと「u」の音色パラメータに基づいて生成されたFMパラメータセットをFM音源部１０５にセットする。FM音源部105は、250ミリ秒間「u」のFMパラメータセットに基づいて「u」の音を生成する。
【０１２７】
＜「バ」の生成＞
次に、シーケンサ１０４は、「B」のADPCMデータをADPCM音源部１０６にセットするとともに、音声合成プログラム１０１ａと「a」の音色パラメータに基づいて生成されたFMパラメータセットをFM音源部１０５にセットする。ADPCM音源部１０６は、「B」のADPCMデータに基づいて1ミリ秒後から50ミリ秒間程度「B」の音を再生する。これと並行してFM音源部１０５は、「B」の音が再生開始されると同時に250ミリ秒間「a」のFMパラメータセットに基づいて「a」の音を生成する。
【０１２８】
＜「シ」の生成＞
次に、シーケンサ１０４は、「S」のADPCMデータをADPCM音源部１０６にセットするとともに、音声合成プログラム１０１ａと「i」の音色パラメータに基づいて生成されたFMパラメータセットをFM音源部１０５にセットする。ADPCM音源部１０６は、「S」のADPCMデータに基づいて1ミリ秒後から50ミリ秒間程度「S」の音を再生する。これと並行してFM音源部１０５は、「S」の音が再生開始されると同時に250ミリ秒間「i」のFMパラメータセットに基づいて「i」の音を生成する。
【０１２９】
＜生成終了＞
このようにADPCM音源を用いて子音を再生し、FM音源を用いて母音を生成するという処理を繰り返すことにより、「スイドウバシ」という音の生成が可能になる。
【０１３０】
＜音源について＞
子音に関しては高音質を追求するため、実際に発音された音声をサンプリングし量子化したデータに基づいて再生する。一方、母音に関しては音質をあまり追求せず、パラメータに基づいてFM音源部１０５内にプリセットされている音色データをアレンジして生成する。そのアレンジのアルゴリズムを表すのが、FM音色割り当てデータである。
【０１３１】
ADPCMデータは、実際に発音された子音の波形をサンプリングし、量子化して得られるデータである。サンプリング周波数は4kHzまたは8kHz、量子化ビット数は16ビットが好ましい。サンプリング周波数が4kHz未満、或いは量子化ビット数が16ビット未満（例えば8ビット）では好適な音質が得られない。サンプリング周波数が8kHzより大きい、或いは量子化ビット数が16ビットより大きいと（例えば32ビット）音質は良くなるもののデータ量が大きくなり、現在の一般的な携帯電話に搭載されている10KB（キロバイト）程度のＲＡＭ１０１の容量では再生時間が非常に短くなってしまう。ただし、今後、携帯電話に搭載されるＲＡＭ１０１の容量が増大した場合には、サンプリング周波数及び量子化ビット数を大きくし、更に好適な音質が得られるようにしてもよい。
【０１３２】
FM音色割り当てデータとは、どのようなFM音色を用いて対応するノートを発音させるかを表すパラメータセットのことである。FM音色は、単純な正弦波に対し周波数変調・位相変調を行い、それを複数組み合わせ・合成することで出力波形を任意に作成することができる。この変調・合成のアルゴリズムを指定するパラメータセットが、音色割り当てデータである。
【０１３３】
通常携帯端末上にプリセットされているFM音色（例えば、バイオリンの音色）を使用する場合は、対応するアルゴリズムが既に携帯端末のメモリに記憶されているので、メモリに記憶されているどのアルゴリズムを用いるかを指定すれば良い。
【０１３４】
しかし、母音を生成する為の音色割り当てデータに関しては、携帯端末にプリセットされているわけではないので、母音を生成する為の音色割り当てデータを楽曲データに添付して音声合成サーバから携帯端末へ送信する必要がある。
【０１３５】
以下に、「ス」を発音するために使用される母音「u」を生成するFM音源のFM音色割り当てデータ（FMパラメータセット）について説明する。以下が母音「u」を生成するFM音色割り当てデータの例である。
【０１３６】
図９は、実施例１の携帯端末において使用される３種類の基本波形と第１〜第４のオペレータの接続関係を示す図である。同図（ａ）に示す正弦波Ｗ１、矩形波Ｗ２、三角波Ｗ３の3種類の基本波形を、同図（ｂ）に示す第１〜第４のＯＰ（オペレータ）１〜４に入力し、表１に示すパラメータに従って変調・合成することによって、母音「u」を生成する。
【表１】
2006053389.tif 000003
【０１３７】
Attack Rateは、音の立ち上がりスピード、Decay Rateは、Sustain Levelに達するまでの時間、Sustain Levelは、Decay後の音量、Release Rateは、鍵盤を離してからの音の減衰時間を、Multipleは周波数の倍率を、Detuneは周波数を僅かにずらす度合いをそれぞれ意味する。
【０１３８】
もちろん、母音「u」を発音させる上記FM音色パラメータは一例に過ぎず、上記のアルゴリズムに限らない。上記のアルゴリズムによって発音される母音「u」の音は、そのアルゴリズムのパラメータ、OP構成（ＯＰの接続関係）を変更することで声質(音色)を変化させてもよい。また、別の基本波形を加えることでフォルマントを形成するとしても良い。
【０１３９】
＜容量について＞
まず、「すいどうばし〜」というメロディフレーズの、「ス」の部分を再生する場合について説明する。「ス」という音の最初から最後までを、
サンプリング周波数：8kHz、
量子化ビット数：16ビット
のADPCM音源で750ミリ秒間再生する場合、ADPCMデータは、12150バイトである。なお、（サンプリング周波数：8kHz）×（量子化ビット数：16ビット）×750ミリ秒／（８ビット）＝12000バイトであるが、フォーマット情報などが付加されるため、ADPCMデータは、12150バイトとなる。また、MLDという携帯電話用のファイル形式に変換するために、ADPCMデータをMIDIファイルに添付する必要があるが、そのMIDIファイルが102バイトである。よって、ADPCMデータとMIDIファイルの合計は、12252バイトとなる。
【０１４０】
そして、ADPCMデータが添付されたMIDIファイルを、国内で広く普及しているシーケンスソフト（開発、販売：インターネット社、商品名：シンガーソングライター6.0）を用いて、MLDファイルに変換すると、3280バイトになってしまう。
【０１４１】
一方、本実施形態によれば、「ス」を子音「S」と母音「ｕ」とに分解し、「S」をADPCM音源で再生し、「u」をFM音源で再生することにより、必要なデータ量はMLD変換前で1637バイト、MLDファイル変換後で681バイトに減らすことができる。
【０１４２】
具体的には、「S」の再生に必要なADPCMデータのバイト数は、
サンプリング周波数：8kHz、
量子化ビット数：16ビット、
子音再生時間：93ミリ秒
という条件下では1516バイトとなる。
【０１４３】
なお、（サンプリング周波数：8kHz）×（量子化ビット数：16ビット）×93ミリ秒／（８ビット）＝1488バイトであるが、フォーマット情報などが付加されるため、1516バイトとなる。
【０１４４】
また、全ての子音の再生時間を同じにしても音声としてのクオリティは満たすが、より高いクオリティを求める場合は、子音に応じて再生時間を適宜調節することが好ましい。
【０１４５】
また「u」の再生に必要なFMパラメータセットを含むMIDIファイルのバイト数は、テンポの種類：120、
音色数：１、
母音再生時間：750ミリ秒
という条件下では121バイトとなる。
【０１４６】
そして、この1516バイトのADPCMデータが添付された121バイトのMIDIファイルを前記のシーケンスソフトを用いて変換して得られたMLDファイルは、681バイトである。
【０１４７】
つまり、「ス」をADPCMデータだけで再生しようとすると、
MLDファイル変換前で12,252バイト、
MLDファイル変換後で3,280バイトであるが、
本実施形態によれば、
MLDファイル変換前で1,637バイト、
MLDファイル変換後で681バイト
に減少させることができる。
【０１４８】
次に、「すいどうばし〜」というメロディフレーズの、「スイドウバシ」の部分を再生する場合のデータ量について説明する。
【０１４９】
「スイドウバシ」全体をADPCM音源で２秒間再生する場合、MLDファイルは、8,205バイトになってしまう。
【０１５０】
具体的には、
「スイドウバシ」のADPCMデータが31,866バイト、
ADPCMデータを添付するMIDIファイルが101バイト、
ADPCMデータとMIDIファイルの合計が、31,967バイトとなり、これを前記のシーケンスソフトを用いて変換されたMLDファイルが、8,205バイトとなる。
【０１５１】
一方、本実施形態によれば、「ス」、「イ」、「ド」、「ウ」、「バ」、「シ」を
子音「S」と母音「u」、母音「i」、子音「D」と母音「o」、母音「u」、子音「B」と母音「a」、子音「S」と母音「i」に分解し、ADPCM音源を用いて子音を再生し、FM音源を用いて母音を生成することによって、データ総量はMLDファイルで1,392バイトに減らすことができる。
【０１５２】
具体的には、子音「S」、「D」、「Ｂ」のADPCMデータの合計が3,046バイト、母音「u」、「i」、「o」、「a」のFMパラメータセットの合計が181バイト、そしてADPCMデータとFMパラメータセットの合計が3,227バイトとなり、これを前記のシーケンスソフトを用いて変換されたMLDファイルが1,392バイトとなる。
【０１５３】
つまり、「スイドウバシ」をＡＤＰＣＭデータだけで再生しようとすると
MLDファイル変換前で31,967バイト、
MLDファイル変換後で8,205バイトであるが、
本実施形態によれば、
MLDファイル変換前で3,227バイト、
MLDファイル変換後で1,392バイト
に減少させることができる。
【０１５４】
さらに、「すいどうばしすいどうばし  じんぼうちょうのうえのほう  ぶんきょうくないにあるのです。  じんぼうちょうじんぼうちょう  すいどうばしのしたのほう  ちよだくないにあるのです。」というメロディフレーズを再生する場合のデータ量について説明する。
【０１５５】
ADPCM音源で再生する場合、「すいどうばしすいどうばし」だけで、9,984バイト（MLDファイル）となってしまうため、メモリ容量が10KB(キロバイト）の携帯端末では「すいどうばしすいどうばし」程度しか再生できない。
【０１５６】
具体的には、「すいどうばしすいどうばし」のADPCMデータが40,000バイト、ADPCMデータを添付するMIDIファイルが102バイト、ADPCMデータとMIDIファイルの合計が40,102バイトとなり、これを前記のシーケンスソフトを用いて変換されたMLDファイルが9,984バイトとなる。
【０１５７】
一方、本実施形態によれば、「すいどうばしすいどうばし  じんぼうちょうのうえのほう  ぶんきょうくないにあるのです。  じんぼうちょうじんぼうちょう  すいどうばしのしたのほう  ちよだくないにあるのです。」までを4,229バイト（MLDファイル）に抑えることができるため、メモリ容量が10KBの携帯端末でも「すいどうばしすいどうばし  じんぼうちょうのうえのほう  ぶんきょうくないにあるのです。  じんぼうちょうじんぼうちょう  すいどうばしのしたのほう  ちよだくないにあるのです。」を全て再生することができる。なお再生時間は、31.23秒となる。
【０１５８】
具体的には、「SuiDouBaSiSuiDouBaSi JiNBouCHouNoueNoHou BuNKYouKuNaiNiaRuNoDeSu。  JiNBouCHouJiNBouCHou SuiDouBaSiNoSiTaNoHou CHiYoDaKuNaiNiaRuNoDeSu。」中で使用される子音「S」「D」「B」「J」「N」「CH」「H」「K」「Y」「R」「T」のADPCMデータの合計が10,864バイト、
母音「u」、「i」、「o」、「a」、「e」のFMパラメータセットの合計が554バイト、そしてADPCMデータとFMパラメータセットの合計が11,418バイトとなり、これを前記のシーケンスソフトを用いて変換されたMLDファイルが4,229バイトとなる。
【０１５９】
FMパラメーターセットは、音色パラメータとMidi情報から生成され、文字数（=ノート数）が増えると、増えた文字数分だけデータ量が増加する。
【０１６０】
MIDIデータは、およそ
・ノート1つのデータ量が４〜５バイト（ただし、ノートの長さにより変動）
・音色パラメータ1つに付き、３０〜４０バイト
・MIDI形式の基本データ量が４０〜６０バイト（保存環境等で異なる）
という配分になっている。
【０１６１】
「すいどうばし」の場合は、
ノート数：６        24〜26バイト
音色パラメータ数：３  90〜120バイト
基本データ            40〜60バイト
であるから、合計154〜206バイトとなる。
【０１６２】
一方、「すいどうばし  すいどうばし  ・・・・あるのです」の場合は、
ノート数：７３     292〜365バイト
音色パラメータ数：5        150〜180バイト
基本データ         40〜60バイト
であるから、合計482〜605バイトとなる。
【０１６３】
つまり、ADPCMデータだけで再生する場合、「すいどうばしすいどうばし」までで、
MLDファイル変換前で40,102バイト、
MLDファイル変換後で9,984バイトであるが、
本実施形態によれば、「すいどうばしすいどうばし」から「ちよだくないにあるのです」までを、
MLDファイル変換前で11,418バイト
MLDファイル変換後で4,229バイト
に減少させることができる。
【図面の簡単な説明】
【０１６４】
【図１】実施例１にかかる音声合成サーバの概略構成を示す。
【図２】実施例１における音声合成サーバの構成を示すブロック図である。
【図３】実施例１の音声合成サーバにおける音声合成処理の全体の流れを示すフローチャートである。
【図４】歌詞入力インターフェースから、楽曲IDと自由文を受け取った音声合成エンジンにおける音声合成処理の流れを示す。
【図５】子音を再生するためのADPCMデータと、母音を生成するためのFM音色割当てデータと、音符情報との関係を示す概念図である。
【図６】実施例１における携帯端末の内部構成を示すブロック図である。
【図７】実施例１の携帯端末における音声合成処理の一連の流れを示すフローチャートである。
【図８】実施例１の携帯端末において子音再生と母音生成を繰り返すことによって音声を生成する場合の各音の再生／生成のタイミングとその継続時間の一例を示す図である。
【図９】実施例１の携帯端末において使用される３種類の基本波形と第１〜第４のオペレータの接続関係を示す図である。
【符号の説明】
【０１６５】
２…携帯端末、  １０…音声合成サーバ、
１１…歌詞入力インターフェース、  １２…歌詞情報ライブラリ記憶手段、
１３…音声合成エンジン、  １４…MIDIデータ記憶手段、
１５…子音ライブラリ記憶手段、  １６…母音ライブラリ記憶手段、
１７…配信用インターフェース
【図１】
2006053389.tif 000004
【図２】
2006053389.tif 000005
【図３】
2006053389.tif 000006
【図４】
2006053389.tif 000007
【図５】
2006053389.tif 000008
【図６】
2006053389.tif 000009
【図７】
2006053389.tif 000010
【図８】
2006053389.tif 000011
【図９】
2006053389.tif 000012