説明

音声合成プログラム及び方法

【課題】 小容量のデータとパラメータとを用いて高品質の音声を合成する。
【解決手段】 コンピュータに、(1)第1音符データ乃至第m音符データからなる音符情報を取得させ、(2)第1歌詞を構成する第1文字を、第1子音と第1母音とに分解させ、(3)連続した波形をサンプリングし量子化して得られた子音データであって、第1子音に対応する第1子音データを取得させ、(4)基本波形を変調して母音を生成するために必要な母音パラメータであって、第1母音に対応する第1母音パラメータを取得させ、(5)第1子音データと第1母音パラメータと第1音符情報とからなる第1音声情報を構成させ、(6)子音母音分解、子音データ取得、母音パラメータ取得、音声情報構成を繰り返して第2音声情報乃至第n音声情報を合成して、第1音声情報乃至第n音声情報からなる楽曲情報を合成させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声合成プログラム及び方法に関し、特に小容量のデータとパラメータとを用いて高品質の音声合成を可能にする音声合成プログラム及び方法に関する。
【背景技術】
【0002】
携帯電話システムや簡易型携帯電話システム(PHS:Personal Handyphone System)等においては音楽または音声を再生または生成するデータを記憶するために使用可能なメモリの容量はとても少ない。
【0003】
このため、連続した波形をサンプリングし、量子化して得られたデータに基づいて高品質な音声を再生しようとすると、2,3秒程度しか再生できない。また、音声(言葉)と認識できる範囲で音質レベルを下げても4,5秒程度しか再生できない。
【0004】
また、単純な正弦波を周波数変調、位相変調などして得られる変調波のデータ、またはそのようにして得られる変調波を合成して得られる合成波のデータ、その変調波または合成波の音程パラメータ、さらにその変調波または合成波の開始タイミングパラメータ、さらにその終了タイミングパラメータなどに基づいて音を生成することも可能だが、音声(言葉)として認識しうる音を生成することはできない。
【0005】
この問題を回避するため、圧縮符号化されたボーカルデータと圧縮符号化される際に用いられたコードブックとを用いて高音質の音声再生を可能にする技術もあるが(例えば、特許文献1参照。)、圧縮されたデータを展開する処理が必要となり高性能なCPUが必要になってしまう。
【特許文献1】特開2001−34299号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明は、データの圧縮符号化などを必要とすることなく、記憶容量が小さな端末において高音質な音声の生成を可能とする音声合成方法及び音声合成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1の特徴は、音声合成プログラムであって、コンピュータに、(1)第1音符データ乃至第m音符データからなる音符情報を、音符情報記憶領域から取得する音符情報取得手順、(2)第1歌詞を構成する第1文字を、第1子音と第1母音とに分解する子音母音分解手順、(3)連続した波形をサンプリングし量子化して得られた子音データであって、第1子音に対応する第1子音データを、子音データ記憶領域から取得する子音データ取得手順、(4)基本波形を変調して母音を生成するために必要な母音パラメータであって、第1母音に対応する第1母音パラメータを、母音パラメータ記憶領域から取得する母音パラメータ取得手順、(5)第1子音データと第1母音パラメータと第1音符情報とからなる第1音声情報を構成する音声情報構成手順、(6)子音母音分解手順、子音データ取得手順、母音パラメータ取得手順、音声情報構成手順を繰り返して第2音声情報乃至第n音声情報を合成して、第1音声情報乃至第n音声情報からなる楽曲情報を合成する手順、を実行させることにある。
【0008】
m又はnは、自然数である。音符の数mと歌詞を構成する文字nとは必ずしも同じでなくて良い。例えば、元の歌詞の音符数が6である場合に、それら音符に当てはめる文字数は6未満であっても良い。この場合、音符が余る事になる。
【0009】
なお、文字が「あ」、「い」、「う」、「え」、「お」である場合は、子音は不要であることは言うまでもない。例えば、第1文字が母音である場合、第1子音データは取得されない。
【発明の効果】
【0010】
本発明の第1の特徴によれば、子音を子音データに基づいて再生し、母音パラメータに基づいて生成される母音を、音符データに基づいて所定の音階で放音するために必要な音声情報を合成することができ、さらに、そのようにして合成された一連の音声情報からなる楽曲情報を合成することができる。
【発明を実施するための最良の形態】
【0011】
以下に図面に基づいて、本発明を実施するための最良の形態を説明する。なお、以下の説明は、単なる例示に過ぎず、本発明の技術的範囲は以下の説明に限定されるものではない。
【実施例1】
【0012】
図1は、実施例1にかかる音声合成サーバの概略構成を示す。図1に示すように、音声合成サーバ10は、携帯端末2から楽曲ID等を受信する歌詞入力インターフェース11と、歌詞情報ライブラリを記憶する歌詞情報ライブラリ記憶手段12と、歌詞入力インターフェース11から楽曲ID等を受け取って音声を合成する音声合成エンジン13と、MIDIデータライブラリを記憶するMIDIデータライブラリ記憶手段14と、子音ライブラリを記憶する子音ライブラリ記憶手段15と、母音を記憶する母音ライブラリ記憶手段16と、音声合成後楽曲データを携帯端末2へ送信する配信用インターフェース17とを備える。
【0013】
歌詞情報ライブラリ記憶手段12は既存歌詞記憶領域に、MIDIデータライブラリ記憶手段14は音符情報記憶領域に、子音ライブラリ記憶手段15は子音データ記憶領域に、母音ライブラリ記憶手段16は母音データ記憶領域に、それぞれ相当する。
【0014】
図1において、携帯端末2を音声合成サーバ10の左右両側に描いているが、これは単に見やすさくするためである。左側の携帯端末2と右側の携帯端末2は同一物である。
【0015】
図1に示すように、携帯端末2から歌詞入力インターフェース11へ楽曲IDが送信され、歌詞入力インターフェース11から携帯端末2へ歌詞情報が送信され、携帯端末2から歌詞入力インターフェース11へ自由文が送信される。
【0016】
歌詞入力インターフェース11は、歌詞情報ライブラリ記憶手段12から、楽曲IDに対応する歌詞情報を取得する。また、歌詞入力インターフェース11は、楽曲IDと自由文を音声合成エンジン13へ渡す。
【0017】
音声合成エンジン13は、MIDIデータライブラリ記憶手段14から、楽曲IDに対応するMIDIデータを取得する。また、音声合成エンジン13は、子音ライブラリ記憶手段15から自由文に対応する子音再生データ(PCM音源データ)を取得し、母音ライブラリ記憶手段16から自由文に対応する母音生成パラメータ(FM音源パラメータ)を取得する。そして、音声合成エンジン13は、MIDIデータと子音再生データ(PCM音源データ)と母音生成パラメータ(FM音源パラメータ)とに基づいて、音声合成後楽曲データを生成する。
【0018】
歌詞情報ライブラリ記憶手段12には、楽曲IDと歌詞情報とが対応付けて記憶され、MIDIデータライブラリ記憶手段14には、楽曲IDとMIDIデータとが対応付けて記憶され、子音ライブラリ記憶手段15には、子音と子音再生データとが対応付けて記憶され、母音ライブラリ記憶手段16には、母音と母音生成生成パラメータとが対応付けて記憶されている。
【0019】
配信用インターフェース17は、音声合成エンジン13から音声合成後楽曲データを受け取り、携帯端末2へ送信する。
【0020】
図2は、実施例1における音声合成サーバの構成を示すブロック図である。音声合成サーバ10は、図1に示したように、歌詞情報ライブラリ記憶手段12と、MIDIデータライブラリ記憶手段14と、子音ライブラリ記憶手段15と、母音ライブラリ記憶手段16とを備え、さらに中央処理装置(CPU)21と、リードオンリーメモリ(ROM)22と、ランダムアクセスメモリ(RAM)23と、送受信部24と、歌詞入力インターフェースプログラム記憶手段26と、音声合成エンジンプログラム記憶手段27と、配信用インターフェースプログラム記憶手段26とを備える。CPU201、ROM202、RAM203等はバス212を介してデータをやり取りすることができる。
【0021】
ROM22にはBIOS(Basic Input Output System)などが記憶されている。RAM23は、歌詞入力インターフェースプログラム、音声合成エンジンプログラム、配信用インターフェースプログラムなどのワークエリアとして使用される。また、送受信部24は、携帯端末から楽曲IDを受信したり、携帯端末へ音声合成後楽曲データを送信したりする。例えば、携帯端末から楽曲IDをデータとして持つパケットを受信したり、音声合成後楽曲データをデータとして持つパケットを送信したりする。
【0022】
歌詞入力インターフェースプログラム記憶手段26には、楽曲ID入力画面構成ファイル、歌詞情報検索取得プログラム、自由文入力画面構成ファイルなどが記憶されている。これらファイルやプログラムによって、歌詞入力インターフェース11が実現される。
【0023】
楽曲ID入力画面構成ファイルが、携帯端末2に送信され、携帯端末2のブラウザによって解釈されると、楽曲IDを入力するフィールドまたはエリアおよび「送信」または「決定」ボタンが、携帯端末2の表示画面に表示される。かかるフィールドまたはエリアに楽曲IDが入力され、「送信」または「決定」などのボタンが選択されると、楽曲IDが音声合成サーバ10に送信される。
【0024】
歌詞情報検索取得プログラムは、楽曲IDに対応する歌詞情報が歌詞情報ライブラリ記憶手段12に記憶されているか検索し、楽曲IDに対応する歌詞情報が見つかったら、その歌詞情報を取得し、自由文入力画面構成ファイルとともに携帯端末2へ送信する。
【0025】
自由文入力画面構成ファイルが、携帯端末2に送信され、携帯端末2のブラウザによって解釈されると、自由文を入力するフィールドまたはエリアおよび「送信」または「決定」ボタンが、携帯端末2の表示画面に表示される。かかるフィールドまたはエリアには初期状態で楽曲IDに対応する歌詞(歌詞情報ライブラリ記憶手段に記憶されている歌詞)が入力されている。携帯端末の文字入力手段を用いてかかる正しい歌詞の一部または全部が修正されると、自由文入力フィールドまたはエリアには自由文が入力された状態となる。かかる状態で、「送信」または「決定」ボタンが選択されると、自由文が音声合成サーバ10に送信される。
【0026】
音声合成サーバ10に送信された自由文は、楽曲IDと共に音声合成エンジン13に渡される。
【0027】
音声合成エンジン記憶手段27には、Midiデータ検索取得プログラム、自由文解析プログラム、パターンファイル、PCMデータ検索取得プログラム、FMパラメータ検索取得プログラム、Midiデータ解析プログラム、PCMデータ配置プログラム、FMパラメータ配置プログラム、携帯端末用データ変換プログラムなどが記憶されている。これらファイルやプログラムによって、音声合成エンジン13が実現される。
【0028】
Midiデータ検索取得プログラムは、楽曲IDに対応するMidiデータがMidiデータライブラリ記憶手段14に記憶されているか検索し、楽曲IDに対応するMidiデータが見つかったら、そのMidiデータを取得する。
【0029】
自由文解析プログラムは、受け取った自由文を解析し、自由文を構成する第1の文字、第2の文字、第3の文字、・・・第nの文字を抽出し、さらに各文字を構成する第1の子音と第1の母音、第2の子音と第2の母音、第3の子音と第3の母音、・・・第nの子音と第nの母音、を抽出する。nは、任意の自然数とする。
【0030】
パターンファイルは、前述の自由文解析プログラムが第nの文字を抽出するためのテーブルおよび第nの文字から子音および母音を抽出するためのテーブルを記憶している。例えば、文字「あ」に対して母音[a]を、文字「け」に対して子音[K]と母音[e]を、文字「ちょ」に対して子音[CH]と母音[o]を関連づけて記憶している。
【0031】
PCMデータ検索取得プログラムは、自由文から抽出された第1の子音、第2の子音、第3の子音、・・・第nの子音に対応するPCMデータが子音ライブラリ記憶手段15に記憶されているか検索し、第1の子音に対応する第1のPCMデータ、第2の子音に対応する第2のPCMデータ、第3の子音に対応する第3のPCMデータ、・・・第nの子音に対応する第nのPCMデータ、を取得する。
【0032】
FMパラメータ検索取得プログラムは、自由文から抽出された第1の母音、第2の母音、第3の母音、・・・第nの母音に対応するFMパラメータが母音ライブラリ記憶手段16に記憶されているか検索し、第1の母音に対応する第1のFMパラメータ、第2の母音に対応する第2のFMパラメータ、第3の母音に対応する第3のFMパラメータ、・・・第nの母音に対応する第nのFMパラメータを取得する。
【0033】
Midiデータ解析プログラムは、Midiデータ検索取得プログラムで取得したMidiデータを解析して、第nキューのx番目のノート情報を抽出するプログラムであり、Midiデータから(1)FMパラメータセット(第1の音、第2の音、・・・、第nの音)の音色選択パラメータ(プログラムチェンジ)や位置情報を取得し、かつ(2)キューポイント(第1のキュー、第2のキュー、・・・、第5のキュー)を取得する。
【0034】
PCMデータ配置プログラムは、第1のPCMデータを第1の音の子音配置位置に、第2のPCMデータを第2の音の子音配置位置に、第3のPCMデータを第3の音の子音配置位置に、・・・第nのPCMデータを第nの音の子音配置位置に、それぞれ配置する。
【0035】
FMパラメータ配置プログラムは、第1のFMデータを第1の音の母音配置位置に、第2のFMデータを第2の音の母音配置位置に、第3のFMデータを第3の音の母音配置位置に、・・・第nのFMデータを第nの音の母音配置位置に、それぞれ配置する。
【0036】
携帯端末用データ変換プログラムは、前記のようにしてPCMデータおよびFMパラメータが配置されたMidiデータを、例えばMLD形式、MMF形式などの 携帯電話着信メロディ用ファイル形式に変換する。
【0037】
配信用インターフェース記憶手段28には、楽曲データパケット生成プログラム、楽曲データパケット送信プログラム、楽曲再生画面構成ファイルなどが記憶されている。これらファイルやプログラムによって、配信用インターフェース17が実現される。
【0038】
楽曲データパケット生成プログラムは、音声合成エンジン13によって合成された携帯端末用データを複数のデータの断片に分割し、分割によって得られた各データの断片をパケットデータとして含む複数のパケットを生成する。
【0039】
楽曲データパケット送信プログラムは、楽曲データパケット生成プログラムによって生成された各パケットを携帯端末2へ送信する。
【0040】
楽曲再生画面構成ファイルが、携帯端末2に送信され、携帯端末2のブラウザによって解釈されると、「再生」などのボタンが携帯端末2の表示画面に表示される。かかる「再生」ボタンが選択されると、受信した複数のパケットから得られた複数の楽曲データの断片から生成されたひとまとまりの楽曲データの再生が、携帯端末2において開始される。
【0041】
図3は、実施例1における音声合成処理の全体の流れを示すフローチャートである。図3に示すように、
ステップS301で、楽曲IDを携帯端末2に入力し、入力された楽曲IDをサーバへ送信し、
ステップS303で、サーバ10は楽曲IDを受信し、
ステップS304で、サーバ10は、楽曲IDに対応する歌詞情報を歌詞情報ライブラリから取得し、取得した歌詞情報を携帯端末2へ送信し、
ステップS306で、携帯端末2は、歌詞情報を受信し、
ステップS307で、携帯端末ユーザは、自由文を携帯端末2に入力し、
ステップS308で、携帯端末2は、入力された自由文と楽曲IDをサーバ10へ送信し、
ステップS310で、サーバ10は、自由文と楽曲IDとを受信し、
ステップS311で、サーバ10は、受信した楽曲IDに対応するMIDIデータと受信した自由文に対応する子音再生データと母音生成データとを合成し、
ステップS312で、サーバ10は、音声合成後MIDIデータをMLDデータに変換し、
ステップS313で、サーバ10は、変換されたMLDデータを携帯端末へ送信し、
ステップS315で、携帯端末2は、変換されたMLDデータを受信し、
ステップS316で、携帯端末2は、受信したMLDデータに基づいて合成された音声によって歌われる楽曲を出力する。
【0042】
<各ステップの具体的な内容>
ステップS301では、携帯端末2に楽曲IDを入力し、入力された楽曲IDをサーバの歌詞入力インターフェースへ送る。楽曲IDは、楽曲を識別しうるものであれば良い。例えば、桃太郎などの楽曲名でも良く、また楽曲に対応する数字、英字、英数字の組み合わせなどでも良い。
【0043】
例えば、携帯端末2の表示画面には、携帯端末ユーザに楽曲を選択させるための画面を表示させる。具体的には、

1:ももたろう
2:きんたろう
3:・・・・
「決定」

などの複数の楽曲名と楽曲ID(楽曲名の前の数字)及び「決定」ボタンを表示させる。携帯端末ユーザが、「1」を選択した状態で「決定」ボタンを押すと、楽曲「ももたろう」に対応する楽曲IDが音声合成サーバ10へ送信される。
【0044】
ステップS303では、サーバの歌詞入力インターフェースは楽曲IDを受信し、
ステップS304では、歌詞入力インターフェースは、歌詞情報ライブラリに楽曲ID(例えば、「桃太郎」という楽曲名)を送り、楽曲IDに対応する歌詞情報(例えば、楽曲「桃太郎」の歌詞)を受け取り、受け取った歌詞情報(例えば、楽曲「桃太郎」の歌詞)を携帯端末へ送る。
【0045】
歌詞情報に含まれる情報は以下の通りである。
【0046】
(1)フレーズの区切り(キュー:cue)
(2)フレーズごとの文字数(num)

例えば、楽曲「桃太郎」の歌詞の場合は、
第1キュー(start)
第1文字数:6(も も た ろ さ ん)
第2キュー
第2文字数:6(も も た ろ さ ん)
第3キュー
第3文字数:7(お こ し に つ け た)
第4キュー
第4文字数:5(き び だ ん ご)
第5キュー(end)
となる。「6」,「7」,「5」などの文字数だけを送信し、「ももたろさん」、「おこしにつけた」、「きびだんご」などの歌詞を送信しなくても良い。携帯端末側は、
第1キューと第2キューとの間に6文字まで挿入可能、
第2キューと第3キューとの間に6文字まで挿入可能、
第3キューと第4キューとの間に7文字まで挿入可能、
第4キューと第5キューとの間に5文字まで挿入可能、であることがわかれば良いからである。
【0047】
また、歌詞だけを送信し、文字数は送信しなくても良い。この場合、携帯端末側は、
第1キューと第2キューとの間は「ももたろさん」をそのまま使用、
第2キューと第3キューとの間は「きんたろさん」に変更するとしても良い。このようにすれば、第1キューと第2キューとの間に関しては文字入力の手間を省くことができる。
【0048】
ステップS306で、携帯端末は歌詞情報を受信し、
ステップS307で、携帯端末のユーザが自由文を携帯端末に入力する。
【0049】
この際、携帯端末2の表示画面に、携帯端末ユーザに歌詞を入力させるための画面を表示させる。例えば、
ももたろさん
[ ]
ももたろさん
[ ]
・・・
「決定」

などの本来の歌詞と、本来の歌詞の代わりにユーザが入力したい文字を入力するフォームと「決定」ボタンを表示させる。
【0050】
ステップS308で、入力された自由文と楽曲IDをサーバへ送信する。
【0051】
例えば、携帯端末上で、各フレーズに自由文を入力し、入力された自由文と楽曲ID として楽曲名「桃太郎」を、サーバの歌詞入力インターフェースに送る。
【0052】
例えば、
第1キュー(start)
第1文字数:6
第1文字列:す い ど う ば し
第2キュー
第2文字数:6
第2文字列:す い ど う ば し
第3キュー
第3文字数:7
第3文字列:じ ん ぼ う ちょ う の
第4キュー
第4文字数:5
第4文字列:う え の ほ う
第5キュー(end)
となる。
【0053】
第1キューと第2キューとの間が第1フレーズ、
第2キューと第3キューとの間が第2フレーズ、
第3キューと第4キューとの間が第3フレーズ、
第4キューと第5キューとの間が第4フレーズ、となる。
【0054】
なお、文字列を受信すれば、受信側で文字数をカウントすることが可能であるから、各フレーズの文字数は送信しなくても良い。
【0055】
ステップS308で、入力された自由文と楽曲IDをサーバへ送信し、
ステップS310で、サーバは自由文と楽曲IDとを受信し、
ステップS311で、受信した楽曲IDに対応するMIDIデータと受信した自由文に対応する音声を合成する。
【0056】
図4は、歌詞入力インターフェースから、楽曲ID (例えば、桃太郎)と自由文を受け取った音声合成エンジンにおける音声合成処理の流れを示す。図4に示すように、
ステップS401で、キュー番号を示す変数Nと、文字番号を示す変数Xにそれぞれ1を設定する。
【0057】
ステップS402で、音声合成エンジン13は、楽曲ID (例えば、桃太郎)に基づいて、楽曲ID (例えば、桃太郎)に対応するMIDIデータ(例えば、momotaro.mid)をMIDIデータライブラリ記憶手段14から取得する。
【0058】
MIDIデータライブラリ記憶手段14は、各楽曲IDに対応するMIDIデータを格納する。本実施例におけるMIDIデータの楽曲を構成する各ノートは、FM音源で母音を生成するために必要なパラメータのセットを持つことができる。これを、FMパラメータセットと呼ぶ。FMパラメータセットは
・音色割り当てデータ(どの音色データを使用するかを示す数値)
・ノートオン(発音開始にかかわるメッセージ)
・ノートオフ(発音終了にかかわるメッセージ)
・キーナンバー(音程を表す番号)
・ベロシティー(鍵盤を弾く強さを示す数値)
などのパラメータを含む。
【0059】
さらに、FMパラメータセットは、
・ピッチベンド(音程を円滑に上下させる効果を示す数値)
・モジュレーション(音色を揺らす効果を示す数値)など
などのパラメータも含み得る。
【0060】
MIDIデータライブラリ記憶手段に格納されているMIDIデータは、メロディを構成する各ノートに音色割り当てデータを除いたパラメータセットを元々持っている。つまり、ノートオン、ノートオフ、キーナンバー、ベロシティーからなるパラメータセットを予め持っている。また、必要に応じて、ピッチベンド、モジュレーションなどのパラメータも予め持っていても良い。
【0061】
各ノートをどの母音用FM音色割り当てデータを用いて発音するかを選択することによって、つまり各ノートに“音色選択パラメータ”(Midi上では、プログラムチェンジ)を付加し、再生時にそのパラメータに対応するFM音色割り当てデータを用いることよって、メロディラインを母音で歌わせることができる。
【0062】
<楽曲データに子音情報と母音情報を設定する>
<自由文情報をもとに、子音情報と母音情報を取得>
ステップS403で、音声合成エンジン13は、歌詞入力インターフェースより送られた自由文の文字情報を、1文字ずつ処理して楽曲データに反映させていく。この際、処理をする文字を、第Nキューの第X番目の文字とカウントする。最初は、N、Xともに1である。
【0063】
各文字を子音と母音に分解する方法の一例を説明する。例えば、処理対象の文字と子音、母音の対応表を予め用意し、その対応表に基づいて割当てを行う。
【0064】
具体的には、「あ」に"a"、「い」に"i"、「う」に"u"、「え」に"e"、「お」に"o"を、「か」に"K"と"a"、「き」に"K"と"i"、「く」に"K"と"u"、「け」に"K"と"e"、「こ」に"K"と"o"を割り当てるという対応表を予め用意する。
【0065】
音声合成エンジン13は、第Nキューの第X番目の文字に対応する子音用ADPCMデータ及び母音用FM音色割り当てデータを、子音ライブラリ記憶手段15と母音ライブラリ記憶手段16から取得する。第Nキューの第X番目の文字が母音(あ、い、う、え、お)の場合は、子音用ADPCM音源については読み込まない。
【0066】
子音ライブラリ記憶手段15には、子音を再生する量子化されたデータであるADPCMデータが、
母音ライブラリ記憶手段16には、母音を生成するFM音色パラメータである音色割り当てデータが、格納されている。
【0067】
FM音色割り当てデータとは、どのようなFM音色を用いて対応するノートを発音させるかを表すパラメータセットのことである。FM音色は、単純な正弦波に対し、周波数変調・位相変調を行い、それを複数組み合わせ・合成することで出力波形を任意に作成することができる。この変調・合成のアルゴリズムを指定するパラメータセットが、音色割り当てデータである。
【0068】
通常、携帯端末上にプリセットされているFM音色(例. バイオリン)については、対応するアルゴリズムが既に携帯端末上にあるので、どのアルゴリズムを用いるかを指定すれば良い。
【0069】
母音を発音する為の音色割り当てデータに関しては、携帯端末上にプリセットされているわけではないので、母音用のFM音色割り当てデータによって変調・合成のアルゴリズムの内容を具体的に特定する必要がある。アルゴリズムの具体的な内容については後述する。
【0070】
<楽曲データに、子音用ADPCMデータと母音用FM音色パラメータを配置する>
ステップS404で、MIDIデータに子音データと母音パラメータを与える。MIDIデータライブラリより受け取ったMIDIデータ(例えば、momotaro.mid)の第NキューのX番目のノートを対応ノートと呼ぶこととする。
【0071】
子音部分については、対応ノートに合わせて(発音タイミングは各子音によって異なる)子音用ADPCMデータを配置する。母音には対応ノートに母音用の音色割り当てデータ(パラメータセット)を付加する。
【0072】
図5は、子音を再生するためのADPCMデータと、母音を生成するためのFM音色割当てデータと、音符情報との関係を示す概念図である。同図の例では、momotaro.midの、第1キューの1番目のノートについて、
「す」と歌わせる為に、
(1)子音部分には、[ S ]を発音する50msec程度のADPCMデータを配置し、
(2)母音部分には、対応ノートに[ u ]を発音するFM音色割り当てデータを付加する。
【0073】
前記の如く、ノートオンメッセージ、ノートオフメッセージなどの音符情報は、MIDIデータライブラリ記憶手段14から取得される。一方、ADPCMデータは子音ライブラリ記憶手段15から、FM音色割当てデータは母音ライブラリ記憶手段16から取得される。
【0074】
<次のNOTE/CUEの処理判定>
音声合成エンジンに送られる自由文は、フレーズの区切り(cue)と、フレーズごとの文字数(num)を保持している。
【0075】
ステップS405において、文字番号Xとキュー端文字番号numが等しいかを調べる。Xとnumが等しくない場合は、ステップS406において、Xを1だけインクリメントし、ステップS402、403へ戻る。例えば、X=1、num=6の場合は、Xはnumに等しくないので、Xを1だけインクリメントして、ステップS402,403へ戻る。
【0076】
ステップS405において、Xがnumに等しい場合は、ステップS407に進み、
ステップS407において、Nを1だけインクリメントして、
ステップS408において、Nがフレーズ最終番号STOPかを調べる。
【0077】
ステップS408において、Nがフレーズ最終番号STOPでないなら、ステップS409でXに1をセットした後、ステップS402,403へ戻る。ステップS408において、Nがフレーズ最終番号STOPであるなら、図3のステップS312へ進む。
【0078】
具体的には、ステップS402において、音声合成エンジン13は、MIDIデータライブラリ記憶手段14から第1キューの1番目の文字のMIDIデータを取得する。
【0079】
ステップS403において、第1キューの1番目の文字が「す」であるなら、音声合成エンジン13は、子音ライブラリ記憶手段15から子音データ[S]を、母音ライブラリ記憶手段16から母音パラメータ[u]を取得する。
【0080】
ステップS404において、音声合成エンジン13は、第1キューの1番目のMIDIデータに[S]の子音データと[u]の母音パラメータを与える。
【0081】
X=1、num=6の場合は、Xはnumに等しくないので、Xを1だけインクリメントして(ステップS406)、ステップS402,403へ戻る。
【0082】
ステップS402において、音声合成エンジン13は、MIDIデータライブラリ記憶手段14から第1キューの2番目の文字のMIDIデータを取得する。
【0083】
ステップS403において、第1キューの2番目の文字が「い」であるなら、音声合成エンジン13は、子音ライブラリ記憶手段15から、子音情報を取得せず、母音ライブラリ記憶手段16から[i]の母音パラメータだけを取得する。
【0084】
ステップS404において、音声合成エンジン13は、第1キューの2番目のMIDIデータに、[i]の母音パラメータのみを与える。
【0085】
X=2、num=6の場合は、Xはnumに等しくないので、Xを1だけインクリメントして(ステップS406)、ステップS402,403へ戻る。
【0086】
ステップS402において、音声合成エンジン13は、MIDIデータライブラリ記憶手段14から第1キューの3番目の文字のMIDIデータを取得する。
【0087】
ステップS403において、第1キューの3番目の文字が「ど」であるなら、音声合成エンジン13は、子音ライブラリ記憶手段15から[D]の子音データを、母音ライブラリ記憶手段16から [o]の母音パラメータを取得する。
【0088】
ステップS404において、音声合成エンジン13は、第1キューの3番目のMIDIデータに、[D]の子音データと [o]の母音パラメータを与える。
【0089】
X=3、num=6の場合は、Xはnumに等しくないので、Xを1だけインクリメントして(ステップS406)、ステップS402,403へ戻る。
【0090】
ステップS402において、音声合成エンジン13は、MIDIデータライブラリ記憶手段14から第1キューの4番目の文字のMIDIデータを取得する。
【0091】
ステップS403において、第1キューの4番目の文字が「う」であるなら、音声合成エンジン13は、子音ライブラリ記憶手段15から子音情報を取得せず、母音ライブラリ記憶手段16から [u]の母音パラメータだけを取得する。
【0092】
ステップS404において、音声合成エンジン13は、第1キューの4番目のMIDIデータに、[D]の子音データと[o]の母音パラメータを与える。
【0093】
X=4、num=6の場合は、Xはnumに等しくないので、Xを1だけインクリメントして(ステップS406)、ステップS402,403へ戻る。
【0094】
ステップS402において、音声合成エンジン13は、MIDIデータライブラリ記憶手段14から第1キューの5番目の文字のMIDIデータを取得する。
【0095】
ステップS403において、第1キューの5番目の文字が「ば」であるなら、音声合成エンジン13は、子音ライブラリ記憶手段15から[B]の子音データを、母音ライブラリ記憶手段16から[a]の母音パラメータを取得する。
【0096】
ステップS404において、音声合成エンジン13は、第1キューの5番目のMIDIデータに、 [D]の子音データと [o]の母音パラメータを与える。
【0097】
X=5、num=6の場合は、Xはnumに等しくないので、Xを1だけインクリメントして(ステップS406)、ステップS402,403へ戻る。
【0098】
ステップS402において、音声合成エンジン13は、MIDIデータライブラリ記憶手段14から第1キューの6番目の文字のMIDIデータを取得する。
【0099】
ステップS403において、第1キューの6番目の文字が「し」であるなら、音声合成エンジン13は、子音ライブラリ記憶手段15から [S]の子音データを、母音ライブラリ記憶手段16から[i]の母音パラメータを取得する。
【0100】
ステップS404において、音声合成エンジン13は、第1キューの6番目のMIDIデータに、 [S]の子音データと [i]の母音パラメータを与える。
【0101】
X=6、num=6の場合は、Xはnumに等しいので、ステップS407へ進み、Nを1だけインクリメントする。Nが最後のキューでないなら、つまりステップS408でN=STOPでないなら、ステップS409でXに1をセットした後、ステップS402,403へ戻る。
【0102】
例えば、第5キューが最終キューの場合であって、Nを1だけインクリメントした結果、Nが2となった場合は、Nは最後のキューではないからステップS409でXに1をセットした後、ステップS402,403へ戻る。そして、音声合成エンジン13は、第2キューの1番目から第2キューの最後の音についてまで順番に音情報を楽曲データに与える。以下、同様に、最終キューまで処理を繰り返す。最終キューの最後の音にまで子音データ及び母音パラメータを与えたら、MIDIデータへの音声合成を終了し、図3のステップS312へ進む。
【0103】
<母音情報、子音情報が反映された楽曲データを、携帯端末用データに変換し携帯端末にデータを送信>
最後のキュー、cue(STOP)まで進んだ時点で、音声合成エンジン13は、母音情報(FMパラメータセット)および子音情報(ADPCMデータ)が付加された楽曲データを携帯端末用データ(=音声合成後楽曲データ)に変換し、配信用インターフェース17に送る。
【0104】
携帯端末用データとは、例えば株式会社NTTドコモの携帯端末などで使用可能なMLDファイル、ボーダフォン株式会社やKDDI株式会社(au)の携帯端末などで使用可能なMMFファイル等を意味する。配信用インターフェース17は、携帯端末2に音声合成後楽曲データを送信する。
【0105】
<携帯端末上での各部の動作>
図6は、実施例1における携帯端末の内部構成を示すブロック図である。同図に示すように、携帯端末は、RAM(ランダムアクセスメモリ)101、CPU(中央処理装置)102、音源ハードウェア部103、スピーカー108を備える。音源ハードウェア部103は、シーケンサ104、FM音源部105、ADPCM音源部106、ミキサー107を備える。
【0106】
RAM101は、音声合成プログラム101a、第1ADPCMデータ101b、第2ADPCMデータ101c、第3ADPCMデータ101d、第4ADPCMデータ101e、第1FM音色パラメータ101f、第2FM音色パラメータ101g、第3FM音色パラメータ101h、第4FM音色パラメータ101i、第5FM音色パラメータ101j、第6FM音色パラメータ101kなどを記憶する。
【0107】
音声合成プログラム101aは、音声合成後楽曲データから、FM音色パラメータおよびADPCMデータを除いたものであり、どの子音再生データ(ADPCMデータ)を用いて、いつ、どの子音を再生するか、また母音生成パラメータ(FM音色パラメータ)を用いて、いつ、どの母音をどのように生成するか等を示すプログラムである。
【0108】
子音再生データは再生する子音に対応したADPCMデータから構成され、母音生成パラメータは、生成する母音に対応したFM音色パラメータから構成される。例えば「スイドウバシ」(「Su」、「i」、「Do」、「u」、「Ba」、「Si」)というメロディ音声を生成する場合、各音の子音である「S」、「D」、「B」、「S」(「イ」と「ウ」は母音のみのため除く)のADPCMデータが第1ADPCMデータ101b〜第4ADPCMデータ101eとしてRAM101に格納され、各音の母音である「u」、「i」、「o」、「u」、「a」、「i」のFM音色パラメータが第1FMパラメータセット101f〜第6FM音色パラメータ101kとしてRAM101に格納される。
【0109】
<RAMに格納されるデータの減量化>
子音再生に必要なADPCMデータも、母音生成に必要なFM音色パラメータも再生する音声や歌に必要な部分だけをRAM101に記憶させるとしてもよい。例えば「スイドウバシ」という音声だけを生成する場合、「スイドウバシ」は子音「S」、「D」、「B」、に関する3つのADPCMデータ(第1ADPCMデータ101b、第2ADPCMデータ101c、第3ADPCMデータ101d)と、母音「u」、「i」、「o」、「a」に関する4つのFM音色パラメータ(第1FM音色パラメータ101f、第2FM音色パラメータ101g、第3FM音色パラメータ101h、第5FM音色パラメータ101j)がRAM101に記憶されていれば足りる。母音「e」に関する音色パラメータをRAM101に記憶させる必要はない。
【0110】
また、1音目の「ス」の生成に使用される母音「u」と、4音目の「ウ」の生成に使用される母音「u」とを、同一のFM音色パラメータを用いて生成することによって、携帯端末が受信しなければならないFM音色パラメータのデータ量の合計を少なくすることが可能になる。
【0111】
同様に、2音目の「イ」の生成に使用される母音「i」と6音目の「シ」の生成に使用される母音「i」に関しても同様に、同一のFM音色パラメータを使用するとしても良い。
【0112】
さらに、「ス」の再生に使用される子音「S」と「シ」の再生に使用される子音「S」とを、同一のADPCMデータを用いて再生することによって、携帯端末が受信しなければならないADPCMデータのデータ量の合計を少なくすることも可能になる。
【0113】
CPU102は、RAM101から音声合成プログラム101aを読み出してシーケンサ104に供給する。
【0114】
シーケンサ104は、CPU102を介してPAM101からADPCMデータを読み出して、ADPCM音源部106に供給し、CPU102を介してRAM101から、FM音色パラメータを読み出して、音声合成プログラム101aのノートオン、ノートオフ、キーナンバー、ベロシティー、ピッチベンド、モジュレーション等の情報に基づいて、FMパラメータセットを生成し、FM音源部105に供給する。
【0115】
FM音源部105は、供給されたFMパラメータセットに基づいて母音を生成し、ミキサー107に出力する。
【0116】
ADPCM音源部106は、供給されたADPCMデータに基づいて子音を再生しミキサー107に出力する。
【0117】
ADPCM音源部106が再生した子音とFM音源部105が生成した母音は、ミキサー107に入力されてミキシングされてスピーカー108から放音される。
【0118】
<音声合成処理フロー>
図7は、実施例1の携帯端末における音声合成処理の一連の流れを示すフローチャートである。同図に示すように、シーケンサ104は、ADPCMデータ(子音データ)をADPCM音源部106にセットし(ステップS701)、これと並行してシーケンサ104は、音声合成プログラム101aとFM音色パラメータに基づいて生成されたFMパラメータセットをFM音源部105にセットする(ステップS703)。
【0119】
するとADPCM音源部106は、セットされたADPCMデータに基づいて子音を再生し(ステップS705)、これと並行してFM音源部105は、セットされたFMパラメータに基づいて音色データを生成し、この音色データを用いて母音を生成する(ステップS707)。
【0120】
ADPCM音源部106によって再生された子音およびFM音源部105によって生成された母音は、ミキサー107に入力されてミキシングされる(ステップS709)。ミキシングされた音は、スピーカー108から出力される(ステップS711)。未生成の音が残っているかを判断し(ステップS713)、未生成の音が残っている場合は処理が最初に戻り、未生成の音が残っていない場合は処理が終了する。
【0121】
<実際の生成発音時間>
図8は、実施例1の携帯端末において、子音再生と母音生成を繰り返すことによって音声を生成する場合の各音の再生/生成のタイミングとその継続時間の一例を示す。同図に基づいて「スイドウバシ」を生成する場合の再生/生成のタイミングとその継続時間について説明する。
【0122】
<「ス」の生成>
「スイドウバシ」は、子音「S」と母音「u」、母音「i」、子音「D」と母音「o」、母音「u」、子音「B」と母音「a」、子音「S」と母音「i」から構成される。そこで、シーケンサ104は、まず「S」のADPCMデータをADPCM音源部106にセットする。
【0123】
ADPCM音源部106は、「S」のADPCMデータに基づいて1ミリ秒後から93ミリ秒間程度「S」の音を再生する。これと並行してFM音源部105は、音声合成プログラム101aと「u」のFM音源パラメータに基づいて生成された「u」のFMパラメータセットを「S」の音が再生開始されると同時に750ミリ秒間生成する。
【0124】
<「イ」の生成>
次に、シーケンサ104は、音声合成プログラム101aと「i」のFMパラメータセットをFM音源部105にセットする。FM音源部105は、250ミリ秒間「i」の音色パラメータに基づいて生成されたFMパラメータセットに基づいて「i」の音を生成する。
【0125】
<「ド」の生成>
次に、シーケンサ104は、「D」のADPCMデータをADPCM音源部106にセットするとともに、音声合成プログラム101aと「o」の音色パラメータに基づいて生成されたFMパラメータセットをFM音源部105にセットする。ADPCM音源部106は、「D」のADPCMデータに基づいて1ミリ秒後から50ミリ秒間程度「D」の音を再生する。これと並行してFM音源部105は、「D」の音が再生開始されると同時に250ミリ秒間「o」のFMパラメータセットに基づいて「o」の音を生成する。
【0126】
<「ウ」の生成>
次に、シーケンサ104は、音声合成プログラム101aと「u」の音色パラメータに基づいて生成されたFMパラメータセットをFM音源部105にセットする。FM音源部105は、250ミリ秒間「u」のFMパラメータセットに基づいて「u」の音を生成する。
【0127】
<「バ」の生成>
次に、シーケンサ104は、「B」のADPCMデータをADPCM音源部106にセットするとともに、音声合成プログラム101aと「a」の音色パラメータに基づいて生成されたFMパラメータセットをFM音源部105にセットする。ADPCM音源部106は、「B」のADPCMデータに基づいて1ミリ秒後から50ミリ秒間程度「B」の音を再生する。これと並行してFM音源部105は、「B」の音が再生開始されると同時に250ミリ秒間「a」のFMパラメータセットに基づいて「a」の音を生成する。
【0128】
<「シ」の生成>
次に、シーケンサ104は、「S」のADPCMデータをADPCM音源部106にセットするとともに、音声合成プログラム101aと「i」の音色パラメータに基づいて生成されたFMパラメータセットをFM音源部105にセットする。ADPCM音源部106は、「S」のADPCMデータに基づいて1ミリ秒後から50ミリ秒間程度「S」の音を再生する。これと並行してFM音源部105は、「S」の音が再生開始されると同時に250ミリ秒間「i」のFMパラメータセットに基づいて「i」の音を生成する。
【0129】
<生成終了>
このようにADPCM音源を用いて子音を再生し、FM音源を用いて母音を生成するという処理を繰り返すことにより、「スイドウバシ」という音の生成が可能になる。
【0130】
<音源について>
子音に関しては高音質を追求するため、実際に発音された音声をサンプリングし量子化したデータに基づいて再生する。一方、母音に関しては音質をあまり追求せず、パラメータに基づいてFM音源部105内にプリセットされている音色データをアレンジして生成する。そのアレンジのアルゴリズムを表すのが、FM音色割り当てデータである。
【0131】
ADPCMデータは、実際に発音された子音の波形をサンプリングし、量子化して得られるデータである。サンプリング周波数は4kHzまたは8kHz、量子化ビット数は16ビットが好ましい。サンプリング周波数が4kHz未満、或いは量子化ビット数が16ビット未満(例えば8ビット)では好適な音質が得られない。サンプリング周波数が8kHzより大きい、或いは量子化ビット数が16ビットより大きいと(例えば32ビット)音質は良くなるもののデータ量が大きくなり、現在の一般的な携帯電話に搭載されている10KB(キロバイト)程度のRAM101の容量では再生時間が非常に短くなってしまう。ただし、今後、携帯電話に搭載されるRAM101の容量が増大した場合には、サンプリング周波数及び量子化ビット数を大きくし、更に好適な音質が得られるようにしてもよい。
【0132】
FM音色割り当てデータとは、どのようなFM音色を用いて対応するノートを発音させるかを表すパラメータセットのことである。FM音色は、単純な正弦波に対し周波数変調・位相変調を行い、それを複数組み合わせ・合成することで出力波形を任意に作成することができる。この変調・合成のアルゴリズムを指定するパラメータセットが、音色割り当てデータである。
【0133】
通常携帯端末上にプリセットされているFM音色(例えば、バイオリンの音色)を使用する場合は、対応するアルゴリズムが既に携帯端末のメモリに記憶されているので、メモリに記憶されているどのアルゴリズムを用いるかを指定すれば良い。
【0134】
しかし、母音を生成する為の音色割り当てデータに関しては、携帯端末にプリセットされているわけではないので、母音を生成する為の音色割り当てデータを楽曲データに添付して音声合成サーバから携帯端末へ送信する必要がある。
【0135】
以下に、「ス」を発音するために使用される母音「u」を生成するFM音源のFM音色割り当てデータ(FMパラメータセット)について説明する。以下が母音「u」を生成するFM音色割り当てデータの例である。
【0136】
図9は、実施例1の携帯端末において使用される3種類の基本波形と第1〜第4のオペレータの接続関係を示す図である。同図(a)に示す正弦波W1、矩形波W2、三角波W3の3種類の基本波形を、同図(b)に示す第1〜第4のOP(オペレータ)1〜4に入力し、表1に示すパラメータに従って変調・合成することによって、母音「u」を生成する。
【表1】

【0137】
Attack Rateは、音の立ち上がりスピード、Decay Rateは、Sustain Levelに達するまでの時間、Sustain Levelは、Decay後の音量、Release Rateは、鍵盤を離してからの音の減衰時間を、Multipleは周波数の倍率を、Detuneは周波数を僅かにずらす度合いをそれぞれ意味する。
【0138】
もちろん、母音「u」を発音させる上記FM音色パラメータは一例に過ぎず、上記のアルゴリズムに限らない。上記のアルゴリズムによって発音される母音「u」の音は、そのアルゴリズムのパラメータ、OP構成(OPの接続関係)を変更することで声質(音色)を変化させてもよい。また、別の基本波形を加えることでフォルマントを形成するとしても良い。
【0139】
<容量について>
まず、「すいどうばし〜」というメロディフレーズの、「ス」の部分を再生する場合について説明する。「ス」という音の最初から最後までを、
サンプリング周波数:8kHz、
量子化ビット数:16ビット
のADPCM音源で750ミリ秒間再生する場合、ADPCMデータは、12150バイトである。なお、(サンプリング周波数:8kHz)×(量子化ビット数:16ビット)×750ミリ秒/(8ビット)=12000バイトであるが、フォーマット情報などが付加されるため、ADPCMデータは、12150バイトとなる。また、MLDという携帯電話用のファイル形式に変換するために、ADPCMデータをMIDIファイルに添付する必要があるが、そのMIDIファイルが102バイトである。よって、ADPCMデータとMIDIファイルの合計は、12252バイトとなる。
【0140】
そして、ADPCMデータが添付されたMIDIファイルを、国内で広く普及しているシーケンスソフト(開発、販売:インターネット社、商品名:シンガーソングライター6.0)を用いて、MLDファイルに変換すると、3280バイトになってしまう。
【0141】
一方、本実施形態によれば、「ス」を子音「S」と母音「u」とに分解し、「S」をADPCM音源で再生し、「u」をFM音源で再生することにより、必要なデータ量はMLD変換前で1637バイト、MLDファイル変換後で681バイトに減らすことができる。
【0142】
具体的には、「S」の再生に必要なADPCMデータのバイト数は、
サンプリング周波数:8kHz、
量子化ビット数:16ビット、
子音再生時間:93ミリ秒
という条件下では1516バイトとなる。
【0143】
なお、(サンプリング周波数:8kHz)×(量子化ビット数:16ビット)×93ミリ秒/(8ビット)=1488バイトであるが、フォーマット情報などが付加されるため、1516バイトとなる。
【0144】
また、全ての子音の再生時間を同じにしても音声としてのクオリティは満たすが、より高いクオリティを求める場合は、子音に応じて再生時間を適宜調節することが好ましい。
【0145】
また「u」の再生に必要なFMパラメータセットを含むMIDIファイルのバイト数は、テンポの種類:120、
音色数:1、
母音再生時間:750ミリ秒
という条件下では121バイトとなる。
【0146】
そして、この1516バイトのADPCMデータが添付された121バイトのMIDIファイルを前記のシーケンスソフトを用いて変換して得られたMLDファイルは、681バイトである。
【0147】
つまり、「ス」をADPCMデータだけで再生しようとすると、
MLDファイル変換前で12,252バイト、
MLDファイル変換後で3,280バイトであるが、
本実施形態によれば、
MLDファイル変換前で1,637バイト、
MLDファイル変換後で681バイト
に減少させることができる。
【0148】
次に、「すいどうばし〜」というメロディフレーズの、「スイドウバシ」の部分を再生する場合のデータ量について説明する。
【0149】
「スイドウバシ」全体をADPCM音源で2秒間再生する場合、MLDファイルは、8,205バイトになってしまう。
【0150】
具体的には、
「スイドウバシ」のADPCMデータが31,866バイト、
ADPCMデータを添付するMIDIファイルが101バイト、
ADPCMデータとMIDIファイルの合計が、31,967バイトとなり、これを前記のシーケンスソフトを用いて変換されたMLDファイルが、8,205バイトとなる。
【0151】
一方、本実施形態によれば、「ス」、「イ」、「ド」、「ウ」、「バ」、「シ」を
子音「S」と母音「u」、母音「i」、子音「D」と母音「o」、母音「u」、子音「B」と母音「a」、子音「S」と母音「i」に分解し、ADPCM音源を用いて子音を再生し、FM音源を用いて母音を生成することによって、データ総量はMLDファイルで1,392バイトに減らすことができる。
【0152】
具体的には、子音「S」、「D」、「B」のADPCMデータの合計が3,046バイト、母音「u」、「i」、「o」、「a」のFMパラメータセットの合計が181バイト、そしてADPCMデータとFMパラメータセットの合計が3,227バイトとなり、これを前記のシーケンスソフトを用いて変換されたMLDファイルが1,392バイトとなる。
【0153】
つまり、「スイドウバシ」をADPCMデータだけで再生しようとすると
MLDファイル変換前で31,967バイト、
MLDファイル変換後で8,205バイトであるが、
本実施形態によれば、
MLDファイル変換前で3,227バイト、
MLDファイル変換後で1,392バイト
に減少させることができる。
【0154】
さらに、「すいどうばしすいどうばし じんぼうちょうのうえのほう ぶんきょうくないにあるのです。 じんぼうちょうじんぼうちょう すいどうばしのしたのほう ちよだくないにあるのです。」というメロディフレーズを再生する場合のデータ量について説明する。
【0155】
ADPCM音源で再生する場合、「すいどうばしすいどうばし」だけで、9,984バイト(MLDファイル)となってしまうため、メモリ容量が10KB(キロバイト)の携帯端末では「すいどうばしすいどうばし」程度しか再生できない。
【0156】
具体的には、「すいどうばしすいどうばし」のADPCMデータが40,000バイト、ADPCMデータを添付するMIDIファイルが102バイト、ADPCMデータとMIDIファイルの合計が40,102バイトとなり、これを前記のシーケンスソフトを用いて変換されたMLDファイルが9,984バイトとなる。
【0157】
一方、本実施形態によれば、「すいどうばしすいどうばし じんぼうちょうのうえのほう ぶんきょうくないにあるのです。 じんぼうちょうじんぼうちょう すいどうばしのしたのほう ちよだくないにあるのです。」までを4,229バイト(MLDファイル)に抑えることができるため、メモリ容量が10KBの携帯端末でも「すいどうばしすいどうばし じんぼうちょうのうえのほう ぶんきょうくないにあるのです。 じんぼうちょうじんぼうちょう すいどうばしのしたのほう ちよだくないにあるのです。」を全て再生することができる。なお再生時間は、31.23秒となる。
【0158】
具体的には、「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バイトとなる。
【0159】
FMパラメーターセットは、音色パラメータとMidi情報から生成され、文字数(=ノート数)が増えると、増えた文字数分だけデータ量が増加する。
【0160】
MIDIデータは、およそ
・ノート1つのデータ量が4〜5バイト(ただし、ノートの長さにより変動)
・音色パラメータ1つに付き、30〜40バイト
・MIDI形式の基本データ量が40〜60バイト(保存環境等で異なる)
という配分になっている。
【0161】
「すいどうばし」の場合は、
ノート数:6 24〜26バイト
音色パラメータ数:3 90〜120バイト
基本データ 40〜60バイト
であるから、合計154〜206バイトとなる。
【0162】
一方、「すいどうばし すいどうばし ・・・・あるのです」の場合は、
ノート数:73 292〜365バイト
音色パラメータ数:5 150〜180バイト
基本データ 40〜60バイト
であるから、合計482〜605バイトとなる。
【0163】
つまり、ADPCMデータだけで再生する場合、「すいどうばしすいどうばし」までで、
MLDファイル変換前で40,102バイト、
MLDファイル変換後で9,984バイトであるが、
本実施形態によれば、「すいどうばしすいどうばし」から「ちよだくないにあるのです」までを、
MLDファイル変換前で11,418バイト
MLDファイル変換後で4,229バイト
に減少させることができる。
【図面の簡単な説明】
【0164】
【図1】実施例1にかかる音声合成サーバの概略構成を示す。
【図2】実施例1における音声合成サーバの構成を示すブロック図である。
【図3】実施例1の音声合成サーバにおける音声合成処理の全体の流れを示すフローチャートである。
【図4】歌詞入力インターフェースから、楽曲IDと自由文を受け取った音声合成エンジンにおける音声合成処理の流れを示す。
【図5】子音を再生するためのADPCMデータと、母音を生成するためのFM音色割当てデータと、音符情報との関係を示す概念図である。
【図6】実施例1における携帯端末の内部構成を示すブロック図である。
【図7】実施例1の携帯端末における音声合成処理の一連の流れを示すフローチャートである。
【図8】実施例1の携帯端末において子音再生と母音生成を繰り返すことによって音声を生成する場合の各音の再生/生成のタイミングとその継続時間の一例を示す図である。
【図9】実施例1の携帯端末において使用される3種類の基本波形と第1〜第4のオペレータの接続関係を示す図である。
【符号の説明】
【0165】
2…携帯端末、 10…音声合成サーバ、
11…歌詞入力インターフェース、 12…歌詞情報ライブラリ記憶手段、
13…音声合成エンジン、 14…MIDIデータ記憶手段、
15…子音ライブラリ記憶手段、 16…母音ライブラリ記憶手段、
17…配信用インターフェース

【特許請求の範囲】
【請求項1】
コンピュータに、
第1音符データ乃至第m音符データからなる音符情報を、音符情報記憶領域から取得する音符情報取得手順、
第1歌詞を構成する第1文字を、第1子音と第1母音とに分解する子音母音分解手順、
連続した波形をサンプリングし量子化して得られた子音データであって、前記第1子音に対応する第1子音データを、子音データ記憶領域から取得する子音データ取得手順、
基本波形を変調して母音を生成するために必要な母音パラメータであって、前記第1母音に対応する第1母音パラメータを、母音パラメータ記憶領域から取得する母音パラメータ取得手順、
前記第1子音データと前記第1母音パラメータと前記第1音符情報とからなる第1音声情報を構成する音声情報構成手順、
前記子音母音分解手順、前記子音データ取得手順、前記母音パラメータ取得手順、前記音声情報構成手順を繰り返して第2音声情報乃至第n音声情報を合成して、前記第1音声情報乃至前記第n音声情報からなる楽曲情報を合成する手順、を実行させるための音声合成プログラム(m,nは、自然数)。
【請求項2】
前記楽曲音符情報が音色の指定されていない第1MIDIデータであり、前記子音データがPCM又はADPCMデータであり、前記母音パラメータがFM音源パラメータであり、前記楽曲情報が前記PCM又はADPCMデータ及びFM音源パラメータを有する第2MIDIデータである請求項1記載の音声合成プログラム。
【請求項3】
第1文字乃至第n文字からなる既存歌詞を、既存歌詞記憶領域から取得する既存歌詞取得手順、
前記既存歌詞を外部の通信機能を有する端末へ送信する歌詞送信手順、
前記既存歌詞と同一又は前記既存歌詞の一部若しくは全部が変更された任意歌詞を受信する歌詞受信手順、をさらに含み、
前記任意歌詞を前記第1歌詞として前記子音母音分解手順以降を実行させるための請求項1又は2記載の音声合成プログラム。
【請求項4】
前記第2MIDIデータをMLD又はMMFのいずれかの形式のファイルに変換するファイル形式変換手順、
形式変換後の前記ファイルを前記端末へ送信するファイル送信手順、をさらに実行させるための請求項3記載の音声合成プログラム。
【請求項5】
音符情報取得手段が、第1音符データ乃至第m音符データからなる音符情報を、音符情報記憶領域から取得するステップ、
子音母音分解手段が、第1歌詞を構成する第1文字を、第1子音と第1母音とに分解するステップ、
子音データ取得手段が、連続した波形をサンプリングし量子化して得られた子音データであって、前記第1子音に対応する第1子音データを、子音データ記憶領域から取得するステップ、
母音パラメータ取得手段が、基本波形を変調して母音を生成するために必要な母音パラメータであって、前記第1母音に対応する第1母音パラメータを、母音パラメータ記憶領域から取得するステップ、
音声情報構成手段が、前記第1子音データと前記第1母音パラメータと前記第1音符情報とからなる第1音声情報を構成するステップ、
前記子音と母音とに分解するステップ、前記子音データを取得するステップ、前記母音パラメータを取得するステップ、前記音声情報を構成するステップを繰り返して第2音声情報乃至第n音声情報を合成して、前記第1音声情報乃至前記第n音声情報からなる楽曲情報を合成するステップから構成される音声合成方法(m,nは、自然数)。
【請求項6】
前記楽曲音符情報が音色の指定されていない第1MIDIデータであり、前記子音データがPCM又はADPCMデータであり、前記母音パラメータがFM音源パラメータであり、前記楽曲情報が前記PCM又はADPCMデータ及びFM音源パラメータを有する第2MIDIデータである請求項5記載の音声合成方法。
【請求項7】
既存歌詞取得手段が、第1文字乃至第n文字からなる既存歌詞を、既存歌詞記憶領域から取得するステップ、
歌詞送信手段が、前記既存歌詞を外部の通信機能を有する端末へ送信するステップ、
歌詞受信手段が、前記既存歌詞と同一又は前記既存歌詞の一部若しくは全部が変更された任意歌詞を受信するステップ、をさらに含み、
前記任意歌詞を前記第1歌詞として前記子音と母音とに分解するステップ以降を実行させるステップから構成される請求項5又は6記載の音声合成方法。
【請求項8】
ファイル形式変換手段が、前記第2MIDIデータをMLD又はMMFのいずれかの形式のファイルに変換するステップ、
ファイル送信手段が、形式変換後の前記ファイルを前記端末へ送信するステップ、をさらに含む請求項7記載の音声合成方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2006−53389(P2006−53389A)
【公開日】平成18年2月23日(2006.2.23)
【国際特許分類】
【出願番号】特願2004−235401(P2004−235401)
【出願日】平成16年8月12日(2004.8.12)
【出願人】(303004738)株式会社CELL (2)
【Fターム(参考)】