以下、添付図面を参照して本発明の実施例について説明する。なお、添付図面は本発明の原理に則った具体的な実施例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
まず本発明における音声合成システムの基本構成を説明する。図1は、本発明における音声合成システムの基本構成を説明する図である。この音声合成システムは、読み上げテキストを受け取り、その読み上げテキストを読み上げた合成音声を出力するものである。音声合成システムの以下で説明する具体的な構成は、実施例の機能を実現するソフトウェアのプログラムコードで実現してもよい。すなわち、音声合成システムの基本構成は、所定のプログラムがプログラムコードとしてメモリに格納され、中央演算処理装置が各プログラムコードを実行することによって実現できる。
また、以後の説明では、本実施例において扱われる情報について「テーブル」構造を用いて説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために、以下では各種データを単に「情報」と呼ぶことがある。
本基本構成では、従来の音声合成処理を拡張することで、合成音声とともに修正候補情報の生成を可能にする。音声合成システムは、読み生成処理部102と、韻律生成処理部103と、波形生成処理部104とを備える。読み上げテキスト101が入力されると、読み生成処理部102により、形態素解析処理や読み分け処理、区切り位置決定処理などのテキスト解析処理が行われて、読み上げテキストの読み・アクセントなどが決定される。続いて、韻律生成処理部103により、それぞれの音節の継続時間長や基本周波数、パワーなどが決定される。最後に、波形生成処理部104により、合成音声波形データが生成され、読み上げ音声105として出力される。これら読み生成処理部102、韻律生成処理部103、波形生成処理部104の実現方法は様々な公知文献によって開示されているため、ここでは説明しない。
本実施例では、上述した従来の音声合成システムに対して、読み修正候補情報生成処理部106と、韻律修正候補情報生成処理部107と、波形修正候補情報生成処理部108と、修正候補情報統合処理部109とを追加する。読み修正候補情報生成処理部106は、合成音声の読みを生成する読み生成処理における修正情報である読み修正候補情報を生成する。また、韻律修正候補情報生成処理部107は、合成音声の韻律を生成する韻律生成処理における修正情報である韻律修正候補情報を生成する。また、波形修正候補情報生成処理部108は、合成音声の波形を生成する波形生成処理における修正情報である波形修正候補情報を生成する。これらの処理部により、合成音声における修正しうる箇所と修正候補の内容を示す修正候補情報110を読み上げ音声105に加えて出力できることが本発明の特徴となる。
以下では、読み修正候補情報生成処理部106、韻律修正候補情報生成処理部107、波形修正候補情報生成処理部108、および修正候補情報統合処理部109の処理の実施例について説明する。図2Aは、読み生成処理部102、および読み修正候補情報生成処理部106の内部処理を説明するものである。
読み生成処理部102は、大きく分けて、単語分割処理部202と、読み選択処理部203と、区切り決定処理部204と、結合決定処理部205とから構成される。これらは音声合成処理における読み生成処理で必要な最低限の構成要素であるが、実施例によってはこれに加えて、係り受け解析処理などの他の構成要素が追加される場合もある。これらの追加構成要素があったとしても、本実施例での説明の一般性は失われない。また、単語分割処理部202、読み選択処理部203、区切り決定処理部204、結合決定処理部205の実現方法は様々な公知文献によって開示されているため、ここでは説明しない。
読み修正候補情報生成処理部106は、単語読み修正候補情報生成処理部207と、区切り修正候補情報生成処理部208と、結合修正候補情報生成処理部211と、読み修正候補情報統合処理部209とから構成される。単語読み修正候補情報生成処理部207は、合成音声内の単語の読みに関する修正情報である単語読み修正情報を生成する。また、区切り修正候補情報生成処理部208は、合成音声の区切り位置に関する修正情報である区切り修正候補情報を生成する。また、結合修正候補情報生成処理部211は、合成音声のアクセント結合の位置に関する修正情報である結合修正候補情報を生成する。
本実施例では、読み選択処理部203、区切り決定処理部204、結合決定処理部205のそれぞれに、単語読み修正候補情報生成処理部207、区切り修正候補情報生成処理部208、及び、結合修正候補情報生成処理部211が追加される。読み修正候補情報統合処理部209は、単語読み修正候補情報生成処理部207、区切り修正候補情報生成処理部208、及び、結合修正候補情報生成処理部211からの出力結果を統合することにより、読み修正候補情報210を出力する。
図3は、読み選択処理部203、および単語読み修正候補情報生成処理部207の内部処理を説明するものである。読み選択処理部203は、大きく分けて、最適単語列選択処理部302と、単語統合処理部303と、読み分け処理部304とから構成される。音声合成システムに入力された読み上げテキスト201は、単語分割処理部202によって単語ネットワーク情報301に変換される。この処理は一般的な形態素解析と呼ばれるものであり、様々な公知文献でアルゴリズムは開示されているため、ここでは説明しない。この単語ネットワーク情報301は、一般には単語ラティス(lattice)と呼ばれるリンク構造が制限されたネットワーク構造となる。図4は、単語ネットワーク情報301の例を示す。図4では、「今日は晴れです。」という文章の表記に部分一致する全ての単語を辞書から抜き出し、単語の候補を列挙したラティス構造が示されている。
読み選択処理部203に単語ネットワーク情報301が入力されると、まず最適単語列選択処理部302によって、単語ネットワーク情報の中から最適単語列が決定される。最適単語列とは、単語ネットワーク情報301のあらゆる単語の組み合わせの中から最も日本語として適した単語の組み合わせとなりうる単語列のことである。図5は、図4の単語ネットワーク情報に対する最適単語列の例を示す。図5において、「文頭」から開始して「文末」で終了するまでに、矢印でリンクされた単語列が、最適単語列である。この最適単語列の決定処理は、単語やリンクのコストや、単語やリンクの出現確率を算出し、最もコスト和が小さい、または最も出現確率の積が大きい単語の組み合わせを探索する処理で実現される。この処理も様々な文献で開示されている公知の技術である。
続く単語統合処理部303では、形態素候補として統合しうるものをまとめる処理を行う。「統合しうるもの」とは、同じ位置から始まる同じ長さの単語であって、品詞としても交換可能なものを指す。例えば、図5の例で、文字列「今日」に関して、「キョウ(kyou)」いう読み方の単語候補501と「コンニチ(konnichi)」という読み方の単語候補502の二つの読み方の単語候補が出力されている。このうち、「キョウ(kyou)」の単語候補501の方が、より適切な読み方として最適単語候補列として出力されるが、「コンニチ(konnichi)」の単語候補502の方が正しい読み方の場合もある。これらの二つの単語は同じ位置から始まる同じ長さの単語であり、ともに名詞であるため、形態素候補として同等である。よってこれら二つの単語は統合しうる候補である。単語統合処理部303は、図5に示される最適単語列に対して形態素候補を統合し、図6に示す単語列に変換する。図6では、文字列「今日」に「キョウ(kyou)」いう読み方と「コンニチ(konnichi)」という読み方が関連付けられている。
続く読み分け処理部304では、最適単語列の中で複数の読みを持つ単語の中から最も適切な読みを決定する。この処理では、例えば、ある単語とある単語が共起しやすいという情報を集めた共起確率データベースなどの情報を用いて、複数の読みの中から適切なものを決定する。図6の例の場合、「今日(キョウ:kyou)」という単語と「晴れ(ハレ:hare)」という単語が共起しやすいという情報が共起確率データベースの中に存在することで、「キョウ(kyou)」の方の読みが選択されるという処理が行われる。以上の処理により、読み選択処理部203の出力として、読み方までが決定された単語分割結果である、最適形態素列(図7)が得られる。
以上で説明した処理は、従来の読み選択処理部203の処理の流れであるが、本実施例では図3の単語読み修正候補情報生成処理部306を追加していることを特徴とする。図3の単語読み修正候補情報生成処理部306は、図2Aの単語読み修正候補情報生成処理部207に対応するものである。単語読み修正候補情報生成処理部306では、単語統合処理部303から出力された複数の読みを持つ最適単語列情報、及び、読み分け処理部304で決定された最も適切な読み情報を用いて、単語の読みに関する単語読み修正候補情報307を生成する処理を行う。
以下、図8を用いて単語読み修正候補情報生成処理部306の処理フローを説明する。単語読み修正候補情報生成処理部306には、単語統合処理部303から出力された統合された最適単語列情報(図6)および読み分け処理部304から出力された最適単語列情報(図7)が入力される。
処理がスタート(S801)すると、初期化処理(S802)の後、i番目の単語情報があるかを判定する(S803)。i番目の単語情報がある場合、i番目の単語情報を取得する(S804)。例えば、図6及び図7の例であれば、1番目の単語は「今日」となる。なお、i番目の単語情報がない場合は、文字列Sをそのまま出力する(S809)。
i番目の単語情報を取得した(S804)後、この単語に複数の読みが設定されているかどうかを統合された最適単語列情報をもとに判定する(S805)。複数の読みがなければ、ステップS807にて単語の表記文字列をそのまま変数sに追加して、iを増分して次のループ処理へ移動する(S808)。一方、複数の読みがある場合は、単語読み修正候補指定タグの追加処理が行われる(S806)。図6の例の場合、1番目の単語「今日」には「キョウ」と「コンニチ」という二つの読みが存在している。よって、単語「今日」に対しては、ステップS806において単語読み修正候補指定タグが追加される。単語読み修正候補指定タグが追加された後、iを増分して次のループ処理へ移動する(S808)。
単語読み修正候補指定タグとしては様々な形態が考えられるが、例えば、<WORD YOMI=”キョウ(kyou)” OTHER=”コンニチ(konnichi)”>今日</WORD>のような形態が一例となりえる。このタグは、文字列「今日」に対して「キョウ(kyou)」という読みが決定されており、他の読み候補として「コンニチ(konnichi)」があることを示している。図9は、単語読み修正候補情報生成処理部306の処理の結果として出力される単語読み修正候補情報307の例である。この文字列形態は、一つの実施例に過ぎず、他にも表形式やリスト形式など様々な形式で表現することも可能である。
読み選択処理部203に続いて、区切り決定処理部204において処理が実行される。この区切り決定処理部204では、読み上げテキストにおいて、どこで間(ポーズ)を置くかが決定される。ここでの区切り決定アルゴリズムには様々な手法がありえるが、公知文献にて開示されている手法も多いので、ここでは説明を行わない。例えば、文字列「、」(読点)がある箇所でのみ区切りを挿入する方法、またはそれに加えて特定の品詞(例えば係助詞「は」など)の後ろに区切りを挿入する方法などがある。これは、日本語の場合の例であるが、区切りの決定は、他の言語の場合でも当然ながら可能であり、その文法や表現に合わせて行えばよい。
ここでは、区切り決定処理部204によって、区切り位置候補およびそこでの区切り挿入確率が出力されたとする。この区切り位置候補、および区切り挿入確率の表現形態の一例を図10に示す。区切り決定処理部204では、図10のような区切り位置候補情報をもとにして、読み指定中間表現における区切り位置の決定処理を行い、それを出力する。区切り位置の決定処理では、例えば、区切り挿入確率が所定のしきい値以上である箇所を区切り位置として決定することができる。図11は、読み指定中間表現における区切り位置の出力例である。
以上で説明した処理は従来の区切り決定処理部204の処理の流れであるが、本実施例では図2Aの区切り修正候補情報生成処理部208を追加していることを特徴とする。この区切り修正候補情報生成処理部208は、図10に示すような区切り位置候補情報、および区切り決定処理部204から出力された区切り位置情報(図11)を用いて、区切り位置候補への区切り修正候補タグを入力テキストに対して追加する。その処理フローは、図8に示す単語読み修正候補タグの挿入処理フローと同様であるため、説明を省略する。この処理の結果、例えば図12に示すような文字列情報が出力される。ここで、PROB属性は内部で計算された区切り挿入確率を示し、MODE属性は合成音声において実際に区切りが出力されたかどうかを示す。したがって、図12の例では、「今日は」の後に、区切りが「有」と判定され、その区切り挿入確率が「0.8」であることが示されている。同様に、図12では、「晴れ」の後に、区切りが「無」と判定され、その区切り挿入確率が「0.2」であることが示されている。
区切り決定処理部204に続いて、結合決定処理部205において処理が実行される。ここでの処理は、日本語におけるアクセント結合が生じるかどうかを判定し、それに基づいてアクセント位置の移動を行う。「アクセント結合」とは、例えば、「音声(オ’ンセー)」と「合成(ゴーセー)」という二つの単語(それぞれアクセント型は1型と0型)が連続して「音声合成」という文字列で現れた場合に、元のアクセント位置のまま、「オ’ンセー ゴーセー」と発音されるのではなく、「オンセーゴ’ーセー」とアクセント位置が移動する現象を指す。このアクセント結合に関する処理も従来の音声合成処理で行われているものであり、様々な公知文献でその処理形態は開示されている。アクセント結合は二つのアクセント句の間で生じ、生じた場合にはその結果はアクセント結合規則から予測可能なものである。そのため、結合決定処理部205は、アクセント句それぞれについて、その後ろのアクセント句と結合するかどうかのフラグ情報を判定する。
以上で説明した処理は従来の結合決定処理部205の流れであるが、本実施例では図2Aの結合修正候補情報生成処理部211を追加していることを特徴とする。この結合修正候補情報生成処理部211は、図13に示すようなアクセント句結合フラグ情報を用いて、アクセント結合候補箇所へのアクセント結合候補タグを入力テキストに対して追加する。図13は、結合決定処理部205において決定された判定結果の例を示す。図13では、各アクセント句について、アクセント結合フラグ1301及びアクセント結合候補箇所フラグ1302が関連付けられている。アクセント結合フラグ1301は、結合決定処理部205において決定されたアクセント結合が起きる箇所を示すフラグであり、アクセント結合候補箇所フラグ1302は、アクセント結合が起きるうる候補を示すフラグである。アクセント句「音声」の箇所は、アクセント結合が起きると判定され、アクセント句「高品質」及び「音声」の箇所は、アクセント結合が起きるうる候補として判定されている。
また、結合修正候補情報生成処理部211の処理フローは、図8に示す単語読み修正候補タグの挿入処理フローと同様であるため、説明は省略する。この処理の結果、例えば図14に示すような文字列情報が出力される。ここで、この「ACC」タグが追加された箇所はアクセント結合しうる候補の箇所であり、そのうちMODE属性が「ON」の箇所は合成音声において実際にアクセント結合した箇所を示す。
単語読み修正候補情報生成処理部207、区切り修正候補情報生成処理部208、および結合修正候補情報生成処理部211からそれぞれ出力情報が出されると、それらは読み修正候補情報統合処理部209に入力される。読み修正候補情報統合処理部209は、それら出力された3つのタグ付き文字列の統合処理を実行する。以上の3つの処理から出力されたタグ付き文字列は、同じ入力文字列に対してタグ情報の追加がされたものである。そのため、読み修正候補情報統合処理部209では、同じ一つの入力文字列に対して上記3つのタグ情報をすべて埋め込む統合処理を実施する。この統合処理の目的は、タグ付き文字列の受け手(音声合成サービスのユーザ)側でタグ付き文字列の解析処理を容易にするためであり、冗長性に問題がなければ統合処理は必須ではない。
この統合処理では開始タグと終了タグが入れ子構造になるようにしなければならない。読み生成処理の結果、タグが埋め込まれる位置はほぼ単語(形態素)単位であるため、単語単位に設定される開始・終了タグが入れ子構造にできない/ならない場合はほとんどない。そのような場合でのタグの統合処理は、スタックを用いた簡単なタグ対応付けを考慮するだけで実現できる。図15は、読み修正候補情報統合処理部209から出力された読み修正候補情報の例を示す。
以上のようにして、本実施例による音声合成システムでは、読み上げテキストが入力されると、合成音声に加えて、修正可能箇所および修正可能候補を記述したメタ情報を出力する。これにより、このメタ情報を受け取った利用者側のシステムでは、この情報を解析することにより、ユーザによる修正の指示が可能になる。また、利用者側のシステムが、自動的に修正候補を本音声合成システムに通知することで、別のタイプの合成音声を取得してユーザに提示することが可能となる。
また上記の説明では、図1の読み生成処理部102からの情報を用いた読み修正候補情報の生成方法について詳細を述べたが、韻律生成処理部103や波形生成処理部104でも同様の処理が可能である。韻律生成処理部103や波形生成処理部104では、音声合成における内部情報を決定している。例えば韻律生成処理部103では、読み上げテキストの各部分(文やフレーズ(呼気段落)やアクセント句や単語など)に対する音の高さ(ピッチ)のパターン、話速、音素基本周波数、音素継続長などを決定している。韻律修正候補情報生成処理部107は、これらの情報について韻律修正候補を出力することができる。
図2Bは、韻律生成処理部103、および韻律修正候補情報生成処理部107の内部処理を説明するものである。韻律修正候補情報生成処理部107は、継続長修正候補情報生成処理部221と、基本周波数修正候補情報生成処理部222と、高さ修正候補情報生成処理部223と、話速修正候補情報生成処理部224と、韻律修正候補情報統合処理部225とを備える。
継続長修正候補情報生成処理部221は、合成音声の音素継続長に関する修正情報である継続長修正候補情報を生成する。また、基本周波数修正候補情報生成処理部222は、合成音声の音素基本周波数に関する修正情報である基本周波数修正候補情報を生成する。また、高さ修正候補情報生成処理部223は、合成音声の部分の音の高さのパターンに関する修正情報である高さ修正候補情報を生成する。さらに、話速修正候補情報生成処理部224は、合成音声の部分の話速に関する修正情報である話速修正候補情報を生成する。韻律修正候補情報統合処理部225は、これらの処理部221〜224から出力された修正候補情報を統合し、韻律修正候補情報226を出力する。
韻律修正候補情報生成処理部107は、読み上げテキストに対して、例えばPITCHタグやSPEEDタグを追加することにより、韻律修正候補情報226を示すことができる。図22の例では、読み上げテキストの各部分に対する音の高さ(ピッチ)のパターンの修正候補がPITCHタグとして示され、読み上げテキストの各部分に対する話速の修正候補がSPEEDタグとして示されている。
また、波形生成処理部104では、合成音声で使用される素片(音声部品)が決定される。波形修正候補情報生成処理部108は、合成音声で使用された素片に関する修正情報である素片修正候補情報を生成する。例えば、波形修正候補情報生成処理部108は、音声合成処理で実際に使用された音声部品データのIDを示した上で、代わりに使用することもできた別の音声部品データIDを列挙するなどすることで波形修正候補情報を出力することもできる。
図22は、最終的に修正候補情報統合処理部109から出力された修正候補情報110の例を示す。修正候補情報統合処理部109は、読み修正候補情報生成処理部106と、韻律修正候補情報生成処理部107と、波形修正候補情報生成処理部108とから出力された情報を統合する。
[第1実施例]
第1実施例では、図1の基本構成を用いて、音声合成結果に対する修正及び改善指示要求を受け付ける音声合成システムについて説明する。本実施例では、本発明の基本構成を用いたサーバ・クライアント構成での音声合成サービスを想定する。サーバ側は本発明の音声合成手法を用いた音声合成装置を構成し、この音声合成装置は、クライアント(ユーザ)側から要求された読み上げテキストに対して、合成音声を生成してそれを送信するサービスを行う。この時、本発明の基本構成で生成される読み上げテキストのメタ情報を用いることで、クライアント側に対して、生成された合成音声に対して、どのような修正・改善が可能かを示すことができる。
クライアント側では、受信したメタ情報をもとにして、クライアント側システム、またはユーザによる修正及び改善指示要求を作成し、それをサーバ側システムへと返送する。サーバ側システムでは、その修正及び改善指示要求を処理することにより、クライアント側が意図した箇所を意図したように修正された合成音声を再度生成して、クライアント側にそれを返送することができる。また、サーバ側システムでは、その修正及び改善指示の内容が、次回以降の音声合成処理でも反映されるように、音声合成用データや音声合成用パラメータの内容を更新することができる。
以上の処理により、第1実施例では、サーバ・クライアント構成での音声合成サービスにおいて、クライアント側が指示した修正及び改善指示を反映して、修正された合成音声を生成できるとともに、その修正及び改善指示の内容を今後の音声合成処理にも反映できる音声合成サービスを実現することができる。
以下、図16A及び図16Bを用いて、本実施列の構成について説明する。図16A及び図16Bは、本実施例のサーバ側システム(音声合成サーバシステム)の構成について説明する図である。音声合成サーバシステムは、通常の音声合成要求時と、修正及び改善指示要求時とで処理内容が異なる。
図16Aは、通常の音声合成要求時の処理構成を示す。音声合成サーバシステムは、音声合成用の構成要素として、音声合成コンテキスト生成処理部1602と、音声合成データ格納装置1610と、コンテキスト格納装置1611と、メタ情報付き音声合成処理部1603と、解析単位別ID設定処理部1605と、サービス応答生成処理部1608とを備える。
以下、読み上げテキストが入力されて合成音声およびそのメタ情報を含んだサービス応答が返送されるまでの処理の流れを説明する。まず、ユーザからのサービス要求情報内の読み上げテキスト1601が入力されると、音声合成コンテキスト生成処理部1602によって処理が実行される。音声合成コンテキスト生成処理部1602は、音声合成要求を行ったユーザ(クライアント)が設定している音声合成パラメータを図示しないデータベースから取り出して、音声合成コンテキスト情報を生成する。生成された音声合成コンテキスト情報はコンテキスト格納装置1611に格納される。ユーザの判定は、ユーザIDをもとに行うことができる。このユーザIDは、読み上げテキスト1601が格納されていたサービス要求情報の中に埋め込まれている場合が多い。
ここで、ユーザごとの音声合成パラメータが格納されているデータベースは、通常のリレーショナルデータベースをそのまま用いることができる。このデータベースに格納される情報には、キー情報としてのユーザID、合成音声の話者ID、音声話速、音声高さ、音量などが含まれる。さらには、音声合成システムによっては、記号を読む/読まないという指定や、数字列の桁読み/棒読みという区別をパラメータとして指定できるものもあり、このような音声合成システムを用いている場合は、これらのパラメータもユーザごとに取得される音声合成パラメータの要素となる。また、別の音声合成システムでは読み上げテキストの文脈を判定して読み方や抑揚などを変更できるものも存在する。例えば、ある文章Aが単独で読み上げられる場合の読み方・抑揚と、同じ文章Aが別の文章Bの後で読み上げられる場合の読み方・抑揚とが異なることがある。このような音声合成システムの場合では、現時点の文脈を特定するための情報を出力できる。音声合成コンテキスト生成処理部1602は、このような文脈特定情報も併せて音声合成用パラメータとして出力してもよい。
音声合成コンテキスト生成処理部1602は、さらに、今回の音声合成要求を特定するための音声合成要求ID情報を生成する。音声合成サーバシステムは複数のユーザに対して同時にサービス提供しているため、この情報をもとにしてどのユーザに対していつ生成した合成音声かを識別する必要がある。この処理については特別な構成は必要ない。音声合成サーバシステムが、音声合成要求を受けたときに一意のシーケンス番号を各合成音声に付与すればよい。こうして、音声合成コンテキスト生成処理部1602は、ユーザIDをもとにして、今回の合成音声を特定するための音声合成要求ID、および音声合成パラメータセットを生成して、それらをコンテキスト格納装置1611に格納する。
続いて、読み上げテキスト1601は、メタ情報付き音声合成処理部1603に入力される。メタ情報付き音声合成処理部1603は、図1の基本構成で説明したメタ情報付き音声合成処理を実装したものである。この処理の結果、読み上げテキストを読み上げた合成音声1606、および、読み上げ文の解析結果である文解析メタ情報1604が出力される。合成音声1606は、図1で説明した読み上げ音声105に相当する。また、文解析メタ情報1604は、図1で説明した修正候補情報110に相当する。ここでの処理は基本構成ですでに説明しているので省略する。
なお、メタ情報付き音声合成処理部1603は、音声合成データ格納装置1610から音声合成データを取得して、メタ情報付き音声合成処理を実行する。この音声合成データには、読み生成処理部102が利用する辞書データ、韻律生成処理部103が利用する韻律データ、波形生成処理部104が利用する波形データなどが少なくとも含まれている。
文解析メタ情報1604は、続いて解析単位別ID設定処理部1605に入力される。解析単位別ID設定処理部1605は、基本構成で説明した文解析メタ情報に対して、解析単位別にID(識別子)を設定する処理を行う。ここで言う解析単位とは、読み上げテキスト1601を構成する文、文を構成するフレーズ(ポーズ間の一息で読まれる単位)、フレーズを構成するアクセント句(一つのアクセント核を持つ抑揚の単位)、アクセント句を構成する単語(形態素)、文中に含まれるポーズなどを指す。このように読み上げテキスト1601を構成する様々な単位にIDを付加しておくことで、クライアント側からの修正及び改善指示要求がどの箇所に対するものなのかを特定しやすくする。この解析単位別IDの付与方法としては、例えば音声合成要求IDに対して解析単位ごとのIDを順番に付加して生成する方法などが考えられる。
図17は、図15の読み修正候補情報に対して解析単位別IDを付与した結果を示す。読み修正候補情報に限らず、韻律修正候補情報や波形修正候補情報、それらを統合した修正候補情報110の全体に対しても同様の方法で解析単位別IDを付与することができる。解析単位別ID設定処理部1605は、この解析単位別IDが付与された修正候補情報をID付きメタ情報1607として出力する。なお、メタ情報1607は、コンテキスト格納装置1611に格納されてもよい。
最後に、サービス応答生成処理部1608は、合成音声1606とID付きメタ情報1607を用いて、音声合成サービス要求に対するサービス応答情報1609を生成する。このサービス応答情報はHTTPプロトコルのレスポンス情報などに対応する。レスポンス情報の主となるデータとして合成音声データを設定し、ID付きメタ情報はレスポンス情報のヘッダ属性値として設定するなどすればここでのサービス応答情報を実現できる。
以上の流れにより、本実施例の音声合成サーバシステムは、読み上げテキスト1601が入力されると、その音声合成要求を特定して再現するためのパラメータセットをコンテキスト格納装置1611に保存した上で、テキストを読み上げた合成音声1606と、その合成音声に対する修正可能候補箇所及び修正可能候補内容を示すID付きメタ情報1607を出力することができる。
続いて、本実施例の音声合成サーバシステムがユーザからの修正及び改善指示要求に対して処理する流れについて説明する。図16Bは、修正及び改善指示要求時の処理構成を示す。音声合成サーバシステムは、修正及び改善指示要求用の構成要素として、改善指示解釈処理部1652と、音声合成コンテキスト選択処理部1654と、コンテキスト格納装置1611と、メタ情報付き音声合成処理部1603と、音声合成データ格納装置1610と、改善箇所決定処理部1660と、改善データ反映処理部1659と、改善データ作成処理部1661と、サービス応答生成処理部1608とを備える。図16Bにおいて、図16Aと同じ符号が付された構成要素については同様の機能を備える。
本実施例の音声合成サーバシステムに、クライアント側から修正及び改善指示要求が送信されると、まずそこから改善指示情報1651および対象ID1653が分離される。修正及び改善指示要求情報の構成方法としては、HTTPプロトコルのリクエスト情報のフォーマットなどが可能である。ここで、修正及び改善対象を指定する対象ID1653として、音声合成要求時に渡された解析単位別IDを含むことができる。また改善指示情報1651としては、同じく音声合成時に渡された修正候補情報の中に記述されている修正候補の中から、ユーザ(クライアント)側が望む修正結果を指定する情報を含むことができる。分離された改善指示情報1651は、改善指示解釈処理部1652に入力され、一方、対象ID1653は音声合成コンテキスト選択処理部1654に入力される。
音声合成コンテキスト選択処理部1654は、対象ID1653をもとに、コンテキスト格納装置1611から音声合成コンテキスト情報を取り出す。その合成音声が生成された際の音声合成要求IDは、対象ID1653から取り出すことができる。簡単には上述のように音声合成要求IDに解析単位IDが付加される形でこの対象ID1653が生成されている場合には、その音声合成要求IDの部分だけを対象ID1653から取り出せばよい。また、別の構成方法(例えば、変換テーブル)で音声合成要求IDと対象IDが対応づけられている場合には、その変換テーブルを参照することにより、音声合成要求IDを取り出すことができる。こうして対象ID1653から取り出された音声合成要求IDをキー情報としてコンテキスト格納装置1611を検索することで、この合成音声が生成された際の様々な音声合成パラメータ、または文脈情報も含むパラメータ情報を取得することができる。こうして取り出された音声合成パラメータセット(コンテキスト情報)はメタ情報付き音声合成処理部1603に出力される。
メタ情報付き音声合成処理部1603は、図1の基本構成で説明したメタ情報付き音声合成処理を実装したものである。ここで行われる音声合成処理は、今回の修正及び改善対象となっている読み上げテキストを前回音声合成した際(つまり、この修正及び改善指示要求の対象となっている合成音声を作成した際)の音声合成処理を再度繰り返すことである。その結果、前回出力されたもの(すなわち、図16Aの文解析メタ情報1604)と同一の合成音声1657および文解析メタ情報1658が出力されることになる。この実施例では、修正及び改善要求時に再度、前回の音声合成処理を繰り返して文解析メタ情報1658を生成することとしているが、もちろん、前回生成した際に文解析メタ情報1658を音声合成要求IDと関連づけてデータベースに格納しておくという方法をとってもよい。この場合は、対象ID1653から音声合成要求IDが分離された後に、このデータベースを参照することで文解析メタ情報1658を取得することができる。
メタ情報付き音声合成処理部1603は、音声合成データ格納装置1610に格納されている音声合成データを参照する。図16Aでの構成と同様に、この音声合成データには、読み生成処理部102が利用する辞書データ、韻律生成処理部103が利用する韻律データ、波形生成処理部104が利用する波形データなどが少なくとも含まれている。メタ情報付き音声合成処理部1603は、これらの情報を用いて合成音声1657を出力することができる。
こうして出力された文解析メタ情報1658は、改善箇所決定処理部1660へ入力される。改善箇所決定処理部1660は、文解析メタ情報1658および対象ID1653を基に、ユーザ(クライアント)側がどの箇所に対する修正及び改善指示をしているかを判定する。対象ID1653として前回音声合成した際の文解析メタ情報内に記述されている解析単位IDを用いていれば、今回の文解析メタ情報1658内でその解析単位IDを検索するだけで改善箇所を決定することができる。
改善指示解釈処理部1652は、改善指示情報1651を解釈し、ユーザ(クライアント)側からの読み修正情報、韻律修正情報、波形修正情報の少なくとも1つの修正及び改善情報を抽出する。改善指示解釈処理部1652から出力された修正及び改善情報、および改善箇所決定処理部1660から出力された改善箇所情報(解析単位ID)は、改善データ作成処理部1661に入力される。
改善データ作成処理部1661は、指定された箇所の音声合成結果が指定された改善指示になるように、合成音声を更新し、サービス応答生成処理部1608に出力する。サービス応答生成処理部1608は、更新された合成音声とID付きメタ情報を用いて、修正及び改善指示要求に対するサービス応答情報1609を生成する。
また、改善データ作成処理部1661は、指定された箇所の音声合成結果が指定された改善指示になるように、元となる音声合成データの内容を更新するための情報を生成する。ここで生成された情報をもとに、改善データ反映処理部1659は、音声合成データ格納装置1610に格納されている音声合成用データの中から更新対象のデータを取り出し、そのデータに対して指定された更新処理を実施する。以上により、ユーザから指定された修正及び改善指示要求に対して、その箇所及び内容を決定し、その修正及び改善を実施するための音声合成データの更新が実現される。
[第2実施例]
第2実施例では、本発明の基本構成および第1実施例に記載の構成を用いて、音声合成結果に対する修正及び改善指示要求を受け付ける音声合成サービスについて説明する。
本実施例では、第1実施例と同様のサーバ・クライアント構成での音声サービスを想定する。さらに本実施例では、第1実施例のシステムをベースとして、ユーザレベルによって提供するサービス内容(修正可能な箇所の制限など)を変更したり、日本語以外の外国語の音声合成に適用したりした場合についても説明を行う。さらに、クライアント側システムにおいて、合成音声の修正可能箇所のGUI表示を行ったり、そのGUI表示を用いてユーザから合成音声の修正及び改善指示をサーバに送信したりするための機能についても説明を行う。
図18Aは、第2実施例におけるサーバ側システムの構成を示す図である。図18Bは、第2実施例におけるクライアント側システムの構成を示す図である。本実施例の全体システムは、サーバ側システムとクライアント側システムで構成される。サーバ側システムは、音声合成サービスを提供する事業者側が稼働及び運用しているシステムであり、クライアント側システムは、上記音声合成サービスの提供を受けるユーザが用いるシステム(プログラム)となる。これらのシステムは、図18A及び図18Bに記載されていないネットワークを介して相互に接続されている。
また、サーバ側システムとクライアント側システムは、例えば、パーソナルコンピュータやワークステーションなどの情報処理装置によって構成される。各システムは、中央演算処理装置と、補助記憶装置と、主記憶装置と、出力装置と、入力装置とを備えている。例えば、中央演算処理装置は、CPU(Central Processing Unit)などのプロセッサ(又は演算装置ともいう)で構成されている。また、例えば、補助記憶装置はハードディスクであり、主記憶装置はメモリであり、出力装置はディスプレイやスピーカなどであり、入力装置はキーボード及びポインティングデバイス(マウスなど)である。本発明で使用される各種データは、情報処理装置の記憶装置に格納される。
サーバ側システムは、ユーザ情報取得部1802と、音声合成選択部1803と、ユーザ情報データベース1804と、音声合成データ・データベース1806と、サービス内容修正部1807と、第1実施例で説明した修正及び改善指示要求を受け付ける音声合成システム1805とを備える。
サーバ側システムは、まず、クライアント側システムから読み上げリクエスト情報1801を受け取る。この読み上げリクエスト情報1801は、例えばHTTPなどのネットワークプロトコルを用いた音声合成サービス要求情報である。この情報の中には、少なくとも音声合成したい読み上げテキスト情報とサービスを受けるユーザを識別するためのユーザ情報が格納されている。また、改善指示要求フェーズなどの場合では、この読み上げリクエスト情報の中に第1実施例で説明した改善指示情報などの情報が格納されることもある。
ユーザ情報取得部1802は、読み上げリクエスト情報1801の中からユーザ情報を分離する。ユーザ情報取得部1802は、そのユーザ情報をユーザ情報データベース1804で検索することにより、そのユーザに対してどのようなサービス内容が許可されているかを知ることができる。
音声合成選択部1803は、そのユーザ情報をもとに、利用可能な音声合成手段を決定する。例えば、音声合成手段として日本語音声合成手段、英語音声合成手段のように言語に応じた音声合成手段のセットが利用可能な場合、ユーザ情報を調べることで英語の音声合成サービスが許可されていないユーザには英語テキスト読み上げリクエストに対してはエラー応答をすることが可能となる。音声合成選択部1803は、ユーザごとに設定されている利用可能な音声合成サービス情報を参照することで、そのユーザが利用できる音声合成手段を選択する、またはエラー応答を返す機能を備える。
音声合成選択部1803は、音声合成データ・データベース1806の中から、その読み上げリクエストに対して必要な音声合成データであり、かつそのユーザが利用可能なデータを選択する。そのデータを音声合成システム1805が利用することにより、読み上げリクエストに対して適切なデータであり、かつユーザが利用可能なデータが適切に選択されることになる。この実施例では、さまざまな音声合成データを切り替えることで同一の音声合成システム1805で様々な音声合成サービス(例えば、日本語、英語、中国語などの言語の異なる音声合成、またはアナウンサ調、会話調などの発話スタイルの異なる音声合成など)を提供できるように記載しているが、場合によっては音声合成データを切り替えるだけでなく、音声合成システム1805で実行される音声合成プログラムそのものも切り替えないといけない場合もありえる。その場合は、音声合成データ・データベース1806に加えて、音声合成プログラムデータベースを新たに設けて、音声合成選択部1803によって音声合成プログラム自体も切り替える手法を採用してもよい。
音声合成システム1805は、第1実施例(図16A及び図16B)で説明した機能を有する音声合成システムである。音声合成システム1805は、読み上げリクエスト情報1801で指定された読み上げテキストから、利用可能な音声合成用データを使って合成音声へと変換する。同時に、音声合成システム1805は、合成音声における修正しうる箇所と修正候補の内容を示す修正候補情報であるID付きメタ情報を生成する。
最後にサービス内容修正部1807は、音声合成システム1805で生成されたID付きメタ情報から、このユーザに提供が許可されていない修正候補情報を削除する処理を行う。例えば、あるユーザには単語の読みやアクセント等の変更修正のみを許可し、抑揚・リズムなどの韻律変更修正を許可しない設定の場合、音声合成システム1805が出力したID付きメタ情報から韻律に関わる修正候補情報を削除する。これにより、そのユーザに対して許可されている修正情報のみを提供するサービスが可能となる。なお、ユーザに対して許可されている修正に関する情報は、ユーザ情報データベース1804に格納されている。
図18Bに示すように、クライアント側システムは、修正候補リスト提示部1852と、改善要求対象指示部1855と、改善指示リクエスト作成部1857とを備える。修正候補リスト提示部1852は、提示デバイスであるディスプレイ装置1853及びスピーカ装置1854への出力を行う。また、改善要求対象指示部1855は、指示デバイスであるマウスまたはキーボード1856からの入力を受け取る。
クライアント側システムでは、まずクライアント側システムからサーバ側システムに対して、新たな読み上げテキストの音声合成処理要求が発行される。ただし、この最初の音声合成要求処理は本発明において特異な部分ではないため、図18A及び図18Bでは省略している。図18Aでは、最初の音声合成処理要求が発行され、その読み上げリクエストに対してサーバ側システムからサービス応答情報1851が返された際の処理の流れを示している。
ある読み上げリクエストに対するサービス応答情報1851が返されると、修正候補リスト提示部1852は、その応答情報に含まれる合成音声およびID付きメタ情報を取り出し、ユーザに対して修正箇所が提示される。修正箇所をGUIによって視覚的に提示するためにはディスプレイ装置1853が使用され、読み上げテキストの合成音声全体の確認や修正箇所部分の音声確認や修正箇所の修正結果の音声確認にはスピーカ装置1854が使用される。この修正候補リスト提示部1852の詳細については後で説明を行う。
修正候補リスト提示部1852、ディスプレイ装置1853、およびスピーカ装置1854によって、読み上げテキストに対する音声合成結果、または修正及び改善指示要求を行った後の修正結果がGUIや音声によって提示される。この際、クライアント側システムを使用しているユーザは、そのGUIを通じて、読み上げ合成音声に対する修正及び改善指示要求を出せるようになる。ユーザは、マウス、キーボード1856などの入力装置によって、GUI上において、読み上げテキストのどの部分に対してどのような修正及び改善指示要求を行うかを指定する。改善要求対象指示部1855は、入力装置からの情報を解析し、読み上げテキストのどの部分に対してどのような修正及び改善要求が指示されたかを決定する。最後に、改善指示リクエスト作成部1857は、ユーザが指示した読み上げテキスト位置に対する修正及び改善要求をもとに、サーバ側システムに送信する修正及び改善指示要求リクエストを作成する。
次にサーバ側システムおよびクライアント側システムのそれぞれについて、各構成要素の技術の実施例についてより詳細に説明する。
ユーザ情報取得部1802は、読み上げリクエスト情報1801からユーザ情報を分離する。このユーザ情報は、ユーザを識別する情報であり、ユーザIDなどの情報を意味する。読み上げリクエスト情報1801がHTTPリクエストなどのプロトコルで送信される場合、ユーザ情報はHTTPプロトコルのヘッダ情報として、またはHTTPリクエストの本体部分情報に、本システム独自のフォーマットで埋め込まれている。ユーザ情報取得部1802は、ユーザ情報取得部1802で分離されたユーザ情報を用いて、ユーザ情報データベース1804を検索し、そのユーザに対して許可されているサービス内容を取得する。
図19は、ユーザ情報データベース1804の内容の例を示す。ユーザ情報データベース1804には、少なくともユーザを識別するためのユーザID、および、そのユーザに対して許可されているサービス情報が格納されている。許可されているサービス情報としては、取得できる情報(読み、韻律、波形など、処理部から出力される個々のタグ情報)や改善要求を出すことができるかなどの情報を少なくとも含む。また、多言語音声合成を対象とするシステムの場合には、許可されているサービス情報として、さらに利用可能な読み上げ言語などの情報も含まれる。したがって、図19に示すように、ユーザ情報データベース1804は、ユーザID1901と、利用できる言語1902と、取得できる情報1903と、改善要求の可否1904とを、構成項目として少なくとも含んでもよい。
例えば、図19の例において、ユーザID「1234567」のユーザに対しては、「日本語」と「英語」の読み上げサービスが提供可能であり、日本語に対しては読み(WORD、ACC、PAUSEタグ)と韻律(PITCH、SPEEDタグ)の情報の取得、およびそれらへの改善指示要求が可能であることが示されている。一方、英語のサービスに対しては読み(PAUSE)の情報のみの提供であり、それに対する改善指示要求を受け付けることはできない。ユーザ情報データベース1804で検索された情報は、音声合成選択部1803、音声合成データ・データベース1806、およびサービス内容修正部1807に渡されて、適切な情報の選択や削除などが行われる。
音声合成選択部1803は、ユーザ情報データベース1804で検索された、ユーザに許可されている読み上げ言語情報をもとに、音声合成手段の選択を行う。音声合成手段の選択処理は、言語ごとに音声合成プログラムと音声合成データが異なる場合、音声合成プログラムは共通で音声合成データのみが異なる場合などがありえる。たとえ後者だとしても、音声合成プログラムに対して読み上げテキストの言語を指定する必要はある。同じアルファベットを用いたテキストだとしても、言語を特定することが不可能な場合は多いためである。
図18Aの実施例では、音声合成選択部1803は、読み上げテキストの言語情報のみを音声合成システム1805に渡す構成をとっている。つまり、音声合成プログラムである音声合成システム1805は、読み上げ言語によらず同一のものを利用できるという想定である。
一方、音声合成プログラムが言語ごとに異なる場合は、音声合成選択部1803によって適切な音声合成プログラムが選択され、音声合成システム1805においてそのプログラムが実行されることとなる。この場合は、音声合成選択部1803に加えて、言語ごとの音声合成プログラムを格納した音声合成プログラムデータベースが存在し、その中から適切なプログラムが選択され、プログラム実行手段であるところの音声合成システム1805でそのプログラムが実行されるという構成となる。
本実施例では、音声合成選択部1803からは読み上げテキストの言語のみが出力される場合を想定する。読み上げテキストの言語を特定する手法としては、読み上げリクエスト情報1801に属性値として言語情報を指定することが一般的である。音声合成選択部1803は、その属性値を読み上げリクエストから分離して後段へと出力する。
また、別の実施例としては、音声合成選択部1803が、言語情報だけではなく、発話スタイルなどの情報を取得し、その情報を音声合成システム1805、または音声合成データ・データベース1806に出力する構成も考えられる。例えば、朗読調や話し言葉調などによって音声合成プログラムや音声合成データが異なる場合には、音声合成選択部1803で発話スタイル情報を取得して、プログラムとデータを切り替えることが必要となる。このような場合でも、読み上げリクエスト情報1801内に記述された発話スタイル情報を抽出して音声合成システム1805や音声合成データ・データベース1806に渡すことで対応することが可能となる。
音声合成データ・データベース1806は、音声合成システム1805が利用する複数の音声合成用データを格納している。上述のように、日本語音声合成用データや英語音声合成用データのような言語ごとのデータ、および、日本語朗読調データや日本語話し言葉調データのように発話スタイルごとのデータなどが格納されており、音声合成選択部1803で取得された情報により、実際の処理で利用される音声合成データが検索及び出力されることになる。また、音声合成データ・データベース1806には、音声合成システム1805において使用される辞書データ、韻律データ、および波形データなども格納されている。
音声合成システム1805は、基本構成または第1実施例で説明した音声合成手段である。その詳細説明は省略するが、上述のように複数の言語に対して処理することが可能である。読み生成処理において、読みとアクセントという情報が日本語固有の情報であるため、言語によって解析される情報は変わりうる。例えば、英語の場合には読みとアクセントに代えて、発音とストレス情報が、読み生成処理部102において解析される情報となる。また、例えば中国語の場合には、発音(ピンイン)と声調が、読み生成処理部102において解析される情報となる。このように言語によって読み生成処理部102で解析されて出力される情報は変わりうるが、それぞれの言語のテキスト解析処理はさまざまな文献で開示されており、その手法を利用すればよい。さらに、それらの手法で解析された上記言語ごとの解析情報を読み修正候補情報として出力する方法についても、情報の種類の違いはあってもフォーマットや処理アルゴリズムは上記基本構成の説明で日本語音声合成に対して説明したものがそのまま利用できる。
図20は、英語テキストに対して出力された読み修正候補情報の例を示す。この読み修正候補情報において、WORDタグは、日本語のYOMI属性の代わりに発音を示すPRON属性を有する。また、この読み修正候補情報は、アクセントを示すACCタグの代わりに、ストレスを示すSTRESSタグを有する。もちろん、このフォーマットは一つの実施例であり、他のタグを設定することも可能である。
最後に、サービス内容修正部1807は、ユーザ情報データベース1804から出力された、対象ユーザに対して許可された情報のみの選別を行う。この処理では、最も単純には図17や図20のような出力された修正候補付き情報から、対象ユーザに対して提供を許可されていないタグ情報が削除される。例えば、現在の対象ユーザがユーザID「1234567」のユーザで読み上げテキストが英語の場合、音声合成システム1805から出力された修正候補付き情報(図20)からPAUSEタグ以外のタグ情報が削除され、図21で示すような情報と合成音声を含むサービス応答情報1808が出力される。これにより、ユーザごとに許可された情報の提供が可能となる。
次に図18Bのクライアント側システムの実現方法について説明する。まず、クライアント側システムでは、サーバ側システムからサービス応答情報1851を受け取る。この情報は、クライアント側システムから先に送信された読み上げリクエスト情報1801に対する合成音声データおよび修正候補付き情報(図17、図20、図21)の組である。これらの情報は、修正候補リスト提示部1852に出力される。
修正候補リスト提示部1852は、修正候補付き情報をグラフィカルにディスプレイ装置1853に表示するための処理を行う。音声合成装置では、生成された合成音声の読みや抑揚を確認するために読み上げテキストをグラフィカルに画面に表示し、その各部分をマウス等の入力装置で指定することで、その部分の合成音声を確認したりする製品が実現されている。例えば、図23に示すような画面となる。マウスで「今日」の部分をクリックすると、スピーカ装置1854から「キョウ」に相当する音声部分が再生されるなどのインタフェースはすでに実現例がある。
修正候補リスト提示部1852は、このようなグラフィカルな提示に加えて、図23に示すような読みやアクセント、さらには韻律など、本発明の修正候補情報として提供される情報について現在の合成音声での実現値およびその変更可能な値をグラフィカルに表示する。例えば、図23はその例であり、ここでは読みについて、「今日」に対応する部分の読み・アクセントの現在の値(キョウ)と変更可能な値(コンニチ)がメニュー形式でグラフィカルに提示されている。ユーザは、マウスなどでこれらの値を指示することで、クライアント側システムに対して変更したい値を指示する。
図23の例では読みについてのみ例示しているが、もちろん、アクセント、ポーズの可能な位置、ピッチや話速などの韻律情報、合成音声に使用された音声部品データのIDなどについても同様の方法でグラフィカルな提示が可能である。このような、生成された合成音声に対してグラフィカルに表示し、その読み・アクセントや韻律などを変更可能なクライアント側システムはすでに実現されている。本発明のクライアント側システムでは、そのような既存のクライアント側システムを使用することももちろん可能である。
こうして変更可能な値の一つをユーザがマウスなどで指示した場合、改善要求対象指示部1855によって、その位置がどのIDの要素に対応するかが判定される。例えば、図23で「コンニチ」をマウスでクリックした場合、図22の修正候補情報のID「201306301230123456W001」の要素である「今日」の部分が、ユーザが指示した要素であると判定される。さらに、その読み修正候補として「コンニチ」が選択されたことも判定することは容易である。
以上により、クライアント側システムでグラフィカルに表示された合成音声を示す読みテキストの上でマウス等の入力装置で指示することにより、改善要求対象指示部1855は、ユーザが合成音声を変更したい箇所のIDおよび改善情報という二つの情報を取得することができる。これら二つの情報は、改善指示リクエスト作成部1857において、例えばXMLやJSON等のフォーマットに変換され、改善指示情報1858として、音声合成サーバシステム(図16A及び図16Bあるいは図18Aに示すシステム)へと送信される。サーバシステム側でどのように改善指示要求が処理されるかは第1実施例で説明した通りである。
以上のように、第2実施例におけるサーバ・クライアント音声合成システムにおいて、サーバ側システムでは、ユーザごとにきめ細かなサービスレベルを設定し、そのユーザに許可されている情報の提供だけを行うことができる。また、クライアント側システムでは、ユーザ自身に対して許可されている情報の範囲内で、合成音声をグラフィカルに表示した上で、サーバ側システムから渡された修正候補の中から自分の希望通りの値を指示することで、合成音声を修正及び改善していくことが可能となる。
以上の実施例によれば、サーバ側システムは、音声合成処理を構成する読み生成、韻律生成、波形生成の各処理において、合成音声の生成に使用された情報とともに、その代替候補としてどのような情報があるかをメタ情報として記述する。そして、サーバ側システムは、読み上げテキストに対してその修正候補情報をメタ情報として付加した情報を合成音声とともに、クライアント側システムに返送する。この構成によれば、音声合成処理の結果として変換結果の合成音声とともに、その合成音声に対する修正可能箇所および修正可能内容をメタ情報として受け取ることができる。クライアント側システムではこの情報を用いることで、ユーザが簡単に修正箇所および修正内容を指定するユーザインタフェースを作成することが可能となる。これにより、音声合成サービスの利用者が求める合成音声を容易に作成することができる。
なお、本発明は上述した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることがあり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、サーバ側システム及びユーザ側システムの機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。この場合、プログラムコードを記録した非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を情報処理装置(コンピュータ)に提供し、その情報処理装置(又はCPU)が非一時的なコンピュータ可読媒体に格納されたプログラムコードを読み出す。非一時的なコンピュータ可読媒体としては、例えば、メモリや、ハードディスク、SSD(Solid State Drive)等の記憶装置、または、ICカード、SDカード、DVD等の記憶媒体などが用いられる。
また、プログラムコードは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によって情報処理装置に供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムを情報処理装置に供給できる。
また、上述の実施例において制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。