以下本発明をその実施の形態を示す図面に基づき具体的に説明する。
以下に説明する実施の形態で、絵文字、顔文字、記号等の特殊文字を含むテキストデータを受け付け、特殊文字に対応する適した音声表現を選択してテキストデータの音声を合成する本発明の音声合成装置について説明する。なお、以下に示す実施の形態では、受け付けるテキストデータの例として主に日本語の例を説明しているが、本発明に係る音声合成装置が受け付けるテキストデータは日本語には限らないのは勿論である。なお、テキストデータの具体例が日本語以外、特に英語である場合を括弧書で示している。
(実施の形態1)
図1は、実施の形態1における本発明の音声合成装置の構成を示すブロック図である。音声合成装置1は、以下に説明する各構成部の動作を制御する制御部10と、ハードディスク等である記憶部11と、RAM(Random Access Memory)等のメモリを有する一時記憶領域12と、キーボード等を有するテキスト入力部13と、スピーカ141を有する音声出力部14とを備える。
記憶部11には、音声合成の処理を実行するためのプログラム群である音声合成ライブラリ1Pが記憶されている。制御部10は、記憶部11から音声合成ライブラリ1Pを組み込んだアプリケーションプログラムを読み出して実行することにより、音声合成の各動作を実行する。
記憶部11には更に、絵文字、顔文字、記号等の特殊文字のデータと特殊文字の読みの音声表現を含む音声表現のデータとが登録されているデータベースである特殊文字辞書111、テキストデータを構成する文節、単語等と音声表記との対応が登録されているデータベースである言語辞書112、及び、各音声の波形群が登録されているデータベースである音声辞書(波形辞書)113が記憶されている。
具体的には、特殊文字辞書111には、絵文字又は記号の特殊文字に付与されている識別コードが特殊文字のデータとして登録されている。また、特殊文字辞書111には、特殊文字の顔文字は記号及び/又は文字の組み合わせであるので、顔文字を構成する記号及び/又は文字の識別コードの組み合わせが特殊文字のデータとして登録されている。さらに、特殊文字辞書111には、特殊文字を音声で出力する場合の表現方法を示す情報、例えば音声表現の内容を表わす文字列が登録されている。
また、制御部10は、特殊文字辞書111の内容を書き換えることが可能である。制御部10は、特殊文字に対応する新たな音声表現の入力を受け付けた場合、その特殊文字に対応する音声表現を特殊文字辞書111に登録する。
一時記憶領域12は、制御部10が音声合成ライブラリ1Pを読み出す場合に使用されるのみならず、特殊文字辞書111、言語辞書112、又は音声辞書113から各種情報を読み出す場合、又は各処理を実行することによって発生する各種情報を一時的に記憶するために使用される。
テキスト入力部13は、キーボード、文字キー、マウス等のテキストの入力を受け付ける手段である。制御部10は、テキスト入力部13により入力されるテキストデータを受け付ける。ユーザは、特殊文字を含むテキストデータを作成する場合、テキスト入力部13が有するキーボード、文字キー、マウス等を操作することによって特殊文字を選択し、特殊文字以外のテキストデータ中に挿入することができる。
なお、ユーザは、テキスト入力部13を介して特殊文字の音声表現を表わす文字列の入力、又は効果音、音楽等の特殊効果を選択することができる構成でもよい。
音声出力部14は、スピーカ141を有している。制御部10は、音声合成ライブラリ1Pを使用して合成した音声を音声出力部14に与えて、スピーカ141を介して音声を出力させる。
図2は、実施の形態1における本発明の音声合成装置1の制御部10により実現される各機能を示す機能ブロック図である。音声合成装置1の制御部10は、音声合成ライブラリ1Pを組み込んだアプリケーションプログラムを実行することにより、テキスト入力部13により入力されるテキストデータを受け付けるテキスト受付部101、テキスト受付部101により受け付けたテキストデータから特殊文字を抽出する特殊文字抽出部102、抽出された特殊文字に対する音声表現を選択する音声表現選択部103、受け付けたテキストデータを特殊文字に対して選択された音声表現に従って音声表記に変換する変換部104、及び変換部104により変換された音声表記から合成音声を作成して音声出力部14へ出力する音声合成部105として機能する。
制御部10は、テキスト受付部101として機能することにより、テキスト入力部13により入力されるテキストデータを受け付ける。
制御部10は、特殊文字抽出部102として機能することにより、特殊文字辞書111に予め登録されている特殊文字と受け付けられたテキストデータとを照合する。制御部10は、テキスト受付部101が受け付けたテキストデータを、特殊文字辞書111に予め登録されている特殊文字の識別コードと照合することによって特殊文字を認識し、抽出する。
具体的には、特殊文字が絵文字又は記号である場合、特殊文字辞書111には絵文字又は記号に付与されている識別コードが登録されている。したがって、制御部10はテキストデータ中に、特殊文字に付与されて登録されている識別コードと一致する文字列があるか否かによって絵文字又は記号を抽出することができる。
特殊文字が顔文字である場合、特殊文字辞書111には、顔文字を構成する記号及び/又は文字夫々の識別コードの組み合わせが登録されている。したがって、制御部10は、テキストデータから特殊文字辞書111に登録されている識別コードの組み合わせと一致する文字列があるか否かによって顔文字を抽出することができる。
制御部10は、特殊文字抽出部102として機能することにより特殊文字を抽出した場合、その特殊文字に対応する識別コード又は識別コードの列を音声表現選択部103に通知する。
制御部10は、音声表現選択部103として機能することにより、特殊文字に対応する識別コード又は識別コードの列を受け付け、受け付けた識別コード又は識別コードの列が対応付けられている音声表現の内の一つを特殊文字辞書111から選択する。制御部10は、特殊文字辞書111から選択した音声表現に相当する文字列にテキストデータ中の特殊文字を置き換える。
制御部10は、変換部104として機能することにより、特殊文字に対応して選択した音声表現に相当する文字列を含むテキストデータを言語辞書112を参照して言語解析し、音声表記に変換する。制御部10は言語解析を行なう場合、テキストデータと言語辞書112に登録されている単語とを照合する。照合の結果、言語辞書112に登録されている単語と一致する単語を検出した場合、検出した単語に対応する音声表記に変換する。以下に示す音声表記は、日本語の場合はカタカナ表記を用い、英語の場合は発音記号を用いる。制御部10は、変換部104として機能することにより言語解析を行なった結果、アクセント位置及びポーズ位置をアクセント記号として「’(apostrophe)」とポーズ記号として「,(comma)」とを夫々用いて表わす。
例えば日本語の場合、制御部10は、「お誕生日おめでとう」というテキストデータを受け付けた場合、言語辞書112に登録されている「お誕生日」と一致する「お誕生日」を検出し、検出した「お誕生日」に対応付けられて言語辞書112に登録されている「オタンジョ’ービ」の音声表記に変換する。次に制御部10は、言語辞書112に登録されている「おめでとう」と一致する「おめでとう」を検出し、検出した「おめでとう」に対応付けられて言語辞書112に登録されている「オメデトー」に変換する。制御部10は、検出した「お誕生日」と「おめでとう」との間にポーズを挿入して「オタンジョ’ービ,オメデトー」と音声表記に変換する。
英語の場合、制御部10は、「Happy birthday」というテキストデータを受け付けた場合、言語辞書112に登録されている「happy」と一致する「Happy」を検出し、検出した「happy」に対応付けられて言語辞書112に登録されている「ha`epi」の音声表記に変換する。次に制御部10は、言語辞書112に登録されている「birthday」と一致する「birthday」を検出し、検出した「birthday」に対応付けられて言語辞書112に登録されている「be'rthde`i」に変換する。制御部10は、検出した「happy」と「birthday」との間にポーズを挿入して「ha`epi be'rthde`i」と音声表記に変換する。
なお、変換部104としての機能及び言語辞書112は、テキストデータを音声合成部105が音声に変換するための音声表記に変換する公知の技術を使用することで実現できる。
制御部10は、音声合成部105として機能することにより、変換部104によって変換された音声表記と音声辞書113に登録されている文字とを照合し、文字に対応付けられている音声波形データを組み合わせて音声を合成する。音声合成部105として機能及び音声辞書113についても、音声表記と対応して音声合成を行なう公知の技術を使用することで実現することができる。
次に、本発明の音声合成装置1において、制御部10が音声表現選択部103として機能することにより、抽出した特殊文字に対応する音声表現を示す情報を特殊文字辞書111からどのように選択するかについて説明する。
図3は、実施の形態1における本発明の音声合成装置1の記憶部11に記憶されている特殊文字辞書111の内容例を示す説明図である。
図3の説明図に示すように特殊文字辞書111には、特殊文字として識別コード「××」が設定されている「三本のろうそく」のイメージの絵文字が登録されている。「三本のろうそく」のイメージの絵文字には、4つの音声表現が登録されている。4つの音声表現は夫々、「バースデー(birthday)」と絵文字の意味を読み上げる音声表現、拍手の擬音「パチパチ(clap-clap)」、「ろうそく(candles)」と絵文字の意味を読み上げる音声表現、及び、ろうそくから連想される”りんと木魚”の擬音(ろうそくの光を表わす擬音)「ポクポクチーン(flickering:チカチカ)」である。また、4つの音声表現は、その絵文字の内容から、絵文字が文字の代替として使用された場合に最適な読み上げの音声表現である表現1と、文字の代替以外で使用された場合に適した音声表現である表現2とに分類されている。さらに、絵文字の絵柄から想起される意味で区別された候補1/候補2で分類されている。
図3の説明図で示された「三本のろうそく」の絵柄の絵文字に対しては、誕生日ケーキを想起させる意味で、且つ文字の代替として使用されている場合の音声表現として「バースデー(birthday)」と読み上げる音声表現が登録されている。また、単にろうそくを想起させる意味で、且つ文字の代替として使用されている場合の音声表現として「ろうそく(candles)」と読み上げる音声表現が登録されている。一方、誕生日ケーキを想起させる意味で、且つ文字の代替以外として使用されている場合の音声表現として「バースデー(birthday)」から連想される拍手の擬音の読み又は効果音の音声表現「パチパチ」が登録されている。単にろうそくを想起させる意味で、且つ文字の代替以外として使用されている場合の音声表現として、ろうそくが仏壇(祭壇)に捧げられた場合から連想される擬音(ろうそくの光を表わす擬音)の読み又は効果音である音声表現「ポクポクチーン(flickering)」が登録されている。
制御部10は、音声表現選択部103として機能し、図3の説明図に示したように特殊文字の音声表現が分類されて登録されている特殊文字辞書111を参照し、抽出した特殊文字に対応する複数の音声表現の内から音声表現を選択する。
制御部10が音声表現選択部103として特殊文字辞書111から音声表現を選択する方法の具体例としては、受け付けたテキストデータが日本語である場合、以下の方法が挙げられる。
制御部10は、特殊文字の前後のテキストデータを言語解析によって文節、単語等の言語単位に区分する。制御部10は、区分した言語単位を文法的に分類し、特殊文字の直前又は直後に助詞として分類された場合は、表現1に分類される音声表現を選択する。直前又は直後に助詞として分類されている単語が使用されている場合は、その特殊文字は文字の代替として使用されていると判定することも可能であるからである。
また、文法的に特殊文字の直前に形容詞の連体形として分類される単語が使用されている場合であり、且つ特殊文字の後に名詞がない場合は特殊文字は名詞である可能性が高いと考えられる。したがって、制御部10は特殊文字を文字の代替として使用されていると判断することも可能である。逆に、特殊文字の直前に形容詞の連体形として分類される単語が使用されている場合であり、且つ特殊文字の後に名詞がある場合は、特殊文字は文法上の意味を特に有さず、文章の装飾、単に区切り等として用いられていると考えられる。したがって、制御部10は、特殊文字を文字の代替以外として使用されていると判断することも可能である。
また、識別コード「××」が設定されている絵文字に「絵柄から想起される意味」夫々に、想起される意味が近いと考えられる単語群を対応付けて登録しておく方法でもよい。制御部10は、特殊文字を含むテキストデータの内の文という言語単位の中に、登録されている単語群の内のいずれかの単語が検出されるか否かを判断する。制御部10は、検出された単語を含む単語群が対応付けられている「絵柄から想起される意味」で分類される候補1/候補2を選択する。さらに、上述の直前又は直後に助詞が使用されているか否かを組み合わせて音声表現の内のいずれかを選択することもできる。
制御部10が音声表現選択部103として特殊辞書から音声表現を選択する方法は、以下の方法でもよい。制御部10は、テキストデータの内の特殊文字の近傍、例えば特殊文字を含むテキストデータの内の文という言語単位の中に、特殊文字に対応して登録されている音声表現の内のいずれかと同じ音声表現に相当する文字列が含まれているか否かを判断し、同じ音声表現に相当する文字列が含まれている場合は、その音声表現を選択しないようにする。したがって、近傍に同じ音声表現に相当する文字列が含まれている場合は、その含まれている音声表現を分類する「絵柄から想起される意味」で分類される「候補」は同じであって、使用のされ方で分類される「表現」が異なる音声表現を選択するようにしてもよい。図3の説明図に示した例では、制御部10は、例えばテキストデータ内に識別コード「××」を抽出した場合、識別コード「××」を含む一文を読み出して言語解析を行なう。制御部10は、言語解析によって文節、単語等の言語単位に分別した結果、「バースデー」が一文の中に含まれていると判断できた場合は、「バースデー」と絵柄から想起される意味が同じ候補1であって、使用のされ方が異なる表現2の音声表現「パチパチ」を選択する。逆に、制御部10は「ろうそく」が近傍のテキストデータに含まれていると判断できた場合は、「ろうそく」と絵柄から想起される意味が同じ候補2であって、使用のされ方が異なる音声表現「ポクポクチーン」を選択する。
さらに、制御部10が音声表現選択部103として特殊文字辞書111から音声表現を選択する方法は、受け付けたテキストデータが日本語以外であっても、上述と同様に文法的な解析、又は近傍の単語に基づいて選択することが可能である。特殊文字の直前に形容詞の連体形として分類される単語が使用され、特殊文字の後に名詞がない場合は、文字の代替として使用されていると判断することが可能である。また、特殊文字の直前で一文が完結しているか否かを、言語解析により判定し、完結している場合は文字の代替以外として使用されていると判断することも可能である。
なお、制御部10が音声表現選択部103として特殊文字辞書111に登録されている音声表現を選択する方法は、特に上述の方法に限るものではない。他に、テキストデータがメールの本文である場合は、題名として入力されたテキストから「想起される意味」を判断する構成でもよいし、テキスト入力部13に入力された一連のテキストデータ全体に対して検出される単語を用いて、「想起される意味」、文字の「代替」として使用されているか否かを判断することによって音声表現を選択する構成でもよい。
図4は、実施の形態1における音声合成装置1の制御部10が、受け付けたテキストデータから音声を合成する処理手順を示すフローチャートである。
制御部10は、テキスト入力部13からのテキストデータの入力をテキスト受付部101の機能により受け付けた場合、以下の処理を行なう。
制御部10は、受け付けたテキストデータと特殊文字辞書111に登録されている識別コードとを照合して特殊文字を抽出する処理を行なう(ステップS11)。制御部10は、ステップS11において特殊文字を抽出したか否かを判断する(ステップS12)。
制御部10は、ステップS12において特殊文字を抽出していないと判断した場合(S12:NO)、受け付けたテキストデータを変換部104の機能により音声表記に変換する(ステップS13)。制御部10は、変換した音声表記から音声合成部105の機能により音声を合成し(ステップS14)、処理を終了する。
制御部10は、ステップS12において特殊文字を抽出したと判断した場合(S12:YES)、特殊文字辞書111から抽出した特殊文字に対応して登録されている音声表現を選択する(ステップS15)。制御部10は、選択した音声表現に相当する文字列を含むテキストデータを変換部104の機能により音声表記に変換し(ステップS16)、変換した音声表記から音声合成部105の機能により音声を合成し(S14)、処理を終了する。
図4のフローチャートに示した処理は、例えば受け付けたテキストデータが一文ではなく複数の文からなる文章であった場合は、文毎に実行してもよい。また、受け付けたテキストデータの先頭から特殊文字の識別コードを検索し、検索した箇所までを対象にステップS13以降の処理を行ない、ステップS16まで処理が終了した場合は、次の識別コードを検索する処理を行なって検索した箇所までの処理を繰り返す構成でもよい。
上述のように構成される音声合成装置1の制御部10の処理によって、特殊文字を含むテキストデータの読み上げが、冗長な読み上げ又はユーザの意図と異なる読み上げを抑制して、適切に行なわれることを具体例を挙げて説明する。
図5は、実施の形態1における本発明の音声合成装置1の制御部10による絵文字に対応する音声表現の選択を概念的に示す説明図である。なお、図5の説明図で示す制御部10は、図3の説明図に示した特殊文字辞書111に登録されている音声表現から音声表現を選択する。
図5(a)に示す例では、特殊文字読み及びに示す特殊文字を含むテキストデータは枠内に示されている『「ハッピー(Happy)」+「絵文字」』である。制御部10は、図5(a)に示したテキストデータを受け付けた場合、テキストデータの内から、特殊文字辞書111に登録されている識別コード「××」を検出して絵文字を抽出する。
制御部10は、絵文字の識別コード「××」に相当する部分以外のテキストデータ「ハッピー(Happy)」を言語解析し、言語辞書112に登録されている文字列「ハッピー(Happy)」の文字夫々に対応する文字コードを検出し、「ハッピー(happy)」という単語を認識する。
次に制御部10は、『「ハッピー(Happy)」+「絵文字」』から特殊文字を抽出したので、抽出した特殊文字である識別コード「××」の絵文字に対する音声表現を選択する。制御部10は、識別コード「××」の絵文字に対し、先に認識した直前の「ハッピー(Happy)」が形容詞の連体形に相当するが、特殊文字の直後にはテキストデータが存在しないので、識別コード「××」の絵文字が名詞に相当すると判定する。制御部10は、名詞に相当する絵文字は文字の代替として使用されていると使用形態を判断するので、図3の説明図に示した音声表現の分類に基づいて表現1を選択する。さらに、制御部10は、「ハッピー(happy)」は「ろうそく(candle)」よりも「バースデー(birthday)」と共に使用されることが多いことを、登録してある辞書を参照して判断し、絵柄から想起される意味として候補1を選択する。
以上により、制御部10は、選択した「バースデー」の音声表現を特殊文字と置き換え、『ハッピーバースデー(Happy birthday)』のテキストデータを作成する。この後、制御部10は変換部104として機能することにより、『ハッピーバースデー(Happy birthday)』のテキストデータを言語解析し、アクセント記号を加えた音声表記「ハッピーバ’ースデー(ha`epi be'rthde`i)」に変換する。
一方、図5(b)の枠内に示す特殊文字を含むテキストデータは『「お誕生日おめでとう(Happy birthday)」+「絵文字」』である。制御部10は、図5(b)に示したテキストデータを受け付けた場合、テキストデータの内から、文字列「お誕生日おめでとう(Happy birthday)」夫々に対応する文字コードの後に識別コード「××」を検出して絵文字を抽出する。
日本語の場合、制御部10は、絵文字の識別コードに相当する部分以外のテキストデータ「お誕生日おめでとう」を言語解析し、言語辞書112に登録されている文字列「お誕生日」の文字夫々に対応する文字コードを検出し、「お誕生日」という単語を認識する。同様に制御部10は、言語辞書112に登録されている文字列「おめでとう」の文字夫々に対応する文字コードを検出し、「おめでとう」という単語を認識する。
英語の場合は同意の例でも語順が変わるので、制御部10は、絵文字の識別コードに相当する部分以外のテキストデータ「Happy birthday」を言語解析し、言語辞書112に登録されている文字列「Happy」の文字夫々に対応する文字コードを検出し、「happy」という単語を認識する。同様に制御部10は、言語辞書112に登録されている文字列「birthday」の文字夫々に対応する文字コードを検出し、「birthday」という単語を認識する。
制御部10は、『「お誕生日おめでとう(Happy birthday)」+「絵文字」』から特殊文字を抽出したので、抽出した特殊文字である識別コード「××」の絵文字の音声表現を選択する。日本語の場合、識別コード「××」の絵文字に対し、先に認識した直前の「おめでとう」が形容詞の連用形又は名詞(感嘆詞)に相当し、特殊文字の直後にはテキストデータが続かない。また英語の場合、識別コード「××」の絵文字に対し、先に認識した直前の「birthday」は名詞であり、特殊文字の直後にはテキストデータが続かない。制御部10は、識別コード「××」の絵文字の直前で文が言い切られ、特殊文字は文字の代替以外として使用されていると判断するので、図3の説明図に示した音声表現の分類に基づいて表現2を選択する。
さらに、制御部10は日本語の場合、テキストデータから検出される「お誕生日」は音声表現の読みとして登録されている「バースデー」と同じ意味であることを、登録してある辞書を参照して判断し、絵柄から想起される意味として候補1の音声表現を選択する。テキストデータが日本語以外の英語である場合、制御部10はテキストデータから検出される「birthday」は音声表現の読みとして登録されている「birthday」と一致するので絵柄から想起される意味として候補1の音声表現を選択する。
制御部10は、選択した表現2の候補1に分類される音声表現「パチパチ(clap-clap)」を特殊文字と置き換え、『お誕生日おめでとう、パチパチ(Happy birthday, clap-clap)』のテキストデータを作成する。この後、制御部10は変換部104として機能することにより、『お誕生日おめでとう、パチパチ(Happy birthday, clap-clap)』のテキストデータを言語解析し、アクセント記号及びポーズ記号を加えた音声表記「オタンジョ’ービ,オメデトー,パ’チパ’チ(ha`epi be'rthde`i,klaep klaep)」に変換する。
制御部10は、音声合成部105として機能することにより、音声表記「ハッピーバ’ースデー(ha`epi be'rthde`i)」又は「オタンジョ’ービ,オメデトー,パ’チパ’チ(ha`epi be'rthde`i,klaep klaep)」基づいて音声辞書113を参照して音声を合成する。制御部10は、合成した音声を音声出力部14に与えて音声として出力する。
これにより、本発明に係る音声合成装置1による場合は、図5(a)の内容例に示した『「ハッピー(Happy)」+「絵文字」』は「ハッピーバースデー(Happy birthday)」と音声読み上げされる。また、図5(b)の内容例に示した『「お誕生日おめでとう(Happy birthday)」+「絵文字」』に対しては、識別コード「××」の絵文字に設定されている読みの音声表現「バースデー(birthday)」ではなく擬音又は効果音である音声表現「パチパチ(clap-clap)」が選択されている。したがって、図5(b)の内容例に示した『「お誕生日おめでとう(Happy birthday)」+「絵文字」』に対しては、本発明に係る音声合成装置1による場合は「お誕生日おめでとう、パチパチ(Happy birthday, clap-clap)」と音声読み上げされる。
なお、音声合成部105として機能する制御部10は、変換部104の機能により変換した音声表記「パ’チパ’チ(clap-clap)」「ポクポクチーン(flickering)」等を、効果音に対応する文字列として登録しておく。制御部10は、変換された音声表記が登録されている擬音に対応する文字列と一致する部分を含んでいると判断した場合、擬音に対応する文字列を「パチパチ(clap-clap)」、「ポクポクチーン(flickering)」等の「読み」として音声を合成するのみならず、夫々「拍手(applause)」の効果音、「木魚とりん(sound that lights a match)」の効果音を合成する構成でもよい。
実施の形態1における本発明の音声合成装置1により、上述のように特殊文字を抽出して特殊文字の分類を近傍のテキストデータから判断して、適切な読み又は擬音等の効果音を用いて適切に読み上げることが可能である。
なお、実施の形態1では、一の識別コード又は識別コードの組み合わせで区別される絵文字、顔文字、記号等の特殊文字は、文字の代替として使用されているのか、文字の代替以外として使用されているのかによって、対応する音声読み上げを異なる音声表現にすることが効果的であるとの着目点に基づいて分類されている。本発明の音声合成装置1では、特殊文字に対する音声表現をこのように分類して選択可能な構成とすることにより、特殊文字の使用形態及び意味に適した読み上げを行なうことができる。
本発明の音声合成装置1の記憶部11に記憶されている特殊文字の分類は、特殊文字が文字の代替として使用されているかの使用形態又は文字の代替以外として使用されているか及び絵柄から想起される意味による分類には限らない。例えば、他に感情(喜怒哀楽)の表示であるのか、効果音を表しているのか等によって分類することも可能である。実施の形態1における分類と異なる分類方法で特殊文字に対する音声表現を分類した場合であっても、本発明の音声合成装置1では、抽出した特殊文字に適合する分類を判断し、その分類に対応した音声表現で特殊文字を読み上げることができる。
なお、音声合成装置1の制御部10は、特殊文字を含むテキストデータを受け付けた場合、その際にユーザによって任意に入力される特殊文字の音声表現を共に受け付けたときは、特殊文字辞書111から音声表現を選択せずに共に受け付けた音声表現を選択し、これに従って音声を合成するようにしてもよい。
さらに、ユーザによって入力された特殊文字の音声表現を特殊文字辞書111に新たに登録することができる構成でもよい。具体的には、音声合成装置1の制御部10は、テキスト受付部101の機能により、テキストデータを受け付ける際、テキスト入力部13により入力された特殊文字の具体的な音声表現及びその分類(表現1又は表現2の選択)で分類して特殊文字辞書111に登録する。
図6は、実施の形態1における音声合成装置1の制御部10が、特殊文字の音声表現及び分類を受け付けて、受け付けた音声表現に従って音声を合成し、さらに特殊文字辞書111に登録する処理手順を示すフローチャートである。
制御部10は、テキスト入力部13からのテキストデータの入力をテキスト受付部101の機能により受け付けた場合、以下の処理を行なう。
制御部10は、受け付けたテキストデータと特殊文字辞書111に登録されている識別コードとを照合して特殊文字を抽出する処理を行なう(ステップS201)。制御部10は、ステップS201において特殊文字を抽出したか否かを判断する(ステップS202)。
制御部10は、ステップS22において特殊文字を抽出していないと判断した場合(S202:NO)、受け付けたテキストデータを変換部104の機能により音声表記に変換する(ステップS203)。制御部10は、変換した音声表記から音声合成部105の機能により音声を合成し(ステップS204)、処理を終了する。
制御部10は、ステップS202において特殊文字を抽出したと判断した場合(S202:YES)、テキスト入力部13により特殊文字の新たな音声表現を受け付けたか否かを判断する(ステップS205)。
制御部は、新たな音声表現を受け付けていないと判断した場合(S205:NO)、特殊文字辞書111から抽出した特殊文字に対応して登録されている音声表現を選択する(ステップS206)。制御部10は、選択した音声表現に相当する文字列を含むテキストデータを変換部104の機能により音声表記に変換し(ステップS207)、変換した音声表記から音声合成部105の機能により音声を合成し(S204)、処理を終了する。
制御部は、新たな音声表現を受け付けたと判断した場合(S205:YES)、共に入力される新たな音声表現の分類を受け付ける(ステップS208)。このとき、ユーザは、テキスト入力部13のキーボード、文字キー、マウス等を介して特殊文字の使用形態が文字の「代替」であるのか、又は「装飾」であるのかを選択することができる。制御部は、テキスト入力部13を介したユーザの選択を受け付けることにより、ステップS208で分類を受け付ける。
次に制御部は、ステップS208で受け付けた分類に基づいて記憶部11に記憶してある特殊文字辞書111に記憶し(ステップS209)、特殊文字に対してステップS205で受け付けた新たな音声表現に従い、テキストデータを変換部104の機能により音声表記に変換し(ステップS210)、変換した音声表記から音声合成部105の機能により音声を合成し(S204)、処理を終了する。
図6のフローチャートに示した制御部10の処理により、ユーザが意図する意味での音声表現に従って、特殊文字を読み上げることができる。さらに、特殊文字に対応する新たな音声表現を特殊文字辞書111記憶することができる。音声合成装置1と同じ装置が他に複数存在する場合、音声合成装置1は、受け付けた特殊文字を含むテキストデータと共に新たな音声表現を記憶した特殊文字辞書111を他の装置に送信することにより、他の装置で当該テキストデータを読み上げる際に、テキストデータを入力したユーザが意図する意味で読み上げることが可能となる。
(実施の形態2)
実施の形態1では、音声合成装置1の記憶部11の特殊文字辞書111に登録されている音声表現は、特殊文字が文字の代替として使用されているか又は文字の代替以外で使用されているかの形態による表現1又は表現2で分類され、さらに特殊文字から想起される意味による候補1又は候補2で分類された。これに対し、実施の形態2では、文字の代替以外として使用されている形態の分類を更に細分化する。実施の形態2では、特殊文字が文字の代替として使用されているか又は文字の代替以外として使用されているか、さらに、文字の代替以外として使用されている場合は文章の装飾として特に読みが意図されて使用されているか、又は文章の装飾として特に文章の雰囲気を表現するために使用されているかで音声表現を分類する。
そこで実施の形態2では、文章の装飾として特に読みが意図されず、文書の雰囲気を表現するために使用されている特殊文字には、擬音、効果音ではなく背景音楽(BGM(BackGround Music))を対応する音声表現とする。
また、実施の形態1では、制御部10は、音声表現選択部103として機能して選択した音声表現を相当する文字列に置き換え、置き換えられた文字列を含むテキストデータを変換部104として機能することにより音声表記へ変換した。これに対し、実施の形態2では、制御部10は、変換部104として機能することにより特殊文字の音声表現として読み以外の効果音、BGM等の音声表現が選択された場合は、当該音声表現の効果を表わす制御文字列へ変換する。
実施の形態2における音声合成装置1の構成は、実施の形態1における音声合成装置1の構成と同様であるので詳細な説明を省略する。実施の形態2では、音声合成装置1の記憶部11に登録されている特殊文字辞書111と、変換部104による制御文字列への変換が異なる。そこで、実施の形態1と同一の符号を用いて以下に特殊文字辞書111及び制御文字列への変換を具体的な事例を挙げて説明する。
図7は、実施の形態2における本発明の音声合成装置1の記憶部11に記憶されている特殊文字辞書111の内容例を示す説明図である。
図7の説明図に示すように特殊文字辞書111には、特殊文字として識別コード「××」が設定されている「三本のろうそく」のイメージの絵文字が登録されている。「三本のろうそく」のイメージの絵文字には、6つの音声表現が登録されている。各音声表現は、実施の形態1で登録されている音声表現(図3参照)に加えて“Happy birthday(Happy birthday)”のBGM及び“お経”(“Ave Maria”)のBGMが登録されている。
図7の説明図に示した実施の形態2における分類は、実施の形態1における分類(図3参照)の文字の代替以外として使用されている形態(表現2)を更に二つに細分した表現2及び表現3によって分類されている。
図7の説明図で示すように、識別コード「××」が設定されている絵文字は、誕生日ケーキを想起させる意味、又はろうそくを想起させる意味により候補1と候補2に分類される。また、識別コード「××」が設定されている絵文字は、文字の代替として使用されているか、文字の代替以外として読みが意図されて使用されているか、又は文字の代替以外として雰囲気を表現するために使用されているかの使用形態により表現1、表現2及び表現3に分類される。
識別コード「××」の絵文字には、図7の説明図に示すように誕生日のケーキを想起させる意味で、且つ雰囲気を表現するために使用されている場合の音声表現として“Happy Birthday”のBGMが登録されている。また、ろうそくを想起する意味で、且つ雰囲気を表現するために使用されている場合の音声表現として、ろうそくが仏壇(祭壇)に捧げられた場合から連想される“お経”(“Ave Maria”)のBGMが登録されている。
制御部10は、音声表現選択部103として機能し、図7の説明図に示したように特殊文字の音声表現が分類されて登録されている特殊文字辞書111を参照し、抽出した特殊文字に対応する複数の音声表現の内から音声表現を選択する。
制御部10は、音声表現選択部103として機能する場合、特殊文字が文字の代替として使用されているか、文字の代替以外として読みが意図されて使用されているか、又は文字の代替以外として雰囲気を表現するために使用されているかの使用形態を判定する。例えば、制御部10は受け付けたテキストデータが日本語である場合、使用形態の判定を以下のように行う。
制御部10は、特殊文字の近傍のテキストデータを文法的に言語解析する。制御部10は、特殊文字の前後の品詞情報から特殊文字が名詞に相当する場合は、文字の代替として使用されていると判定し、表現1を選択する。制御部10は、特殊文字の直前に形容詞の連体形として分類される単語が使用されている場合であり、且つ特殊文字の後に名詞がある場合は、文字の代替以外として読みが意図されて使用されていると判定し、表現2を選択する。また、制御部10は、特殊文字が近傍の単語との関係で係り受けの関係を有しないと判断される場合は、代替以外として雰囲気を表現するために使用されていると判定し、特殊文字に対応する音声表現として表現3のBGMを選択する。
制御部10は特殊文字に対応する音声表現として図7の説明図に示した表現3且つ候補1、即ちBGM“Happy Birthday”を選択した場合、特殊文字を含む一文が読み上げられる間にBGMを出力させるための制御文字列を含んでテキストデータに置き換える。
具体的には、制御部10は、テキスト受付部101として機能して『「お誕生日おめでとう」+「(絵文字)」』というテキストデータを受け付けた場合、音声表現選択部103としてBGM”Happy Birthday”を選択したときは、以下に示すように特殊文字を含む一文を全てBGMを出力させるための制御文字列で挟むようにする。なお、実施の形態2では、制御文字列はタグで表わして説明する。
「<BGM “Happy Birthday”>お誕生日おめでとう(Happy birthday)</BGM>」
制御部10は、変換部104として機能する場合、タグをそのまま残して以下に示すように音声表記へ変換する。
「<BGM “Happy Birthday”>オタンジ’ョービ、オメデトー(ha`epi be'rthde`i)</BGM>」
制御部10は、音声合成部105として機能する場合、音声表記に<BGM>タグが検出された場合は、タグに挟まれている音声表記を出力する間は、タグに示されている音声ファイル“Happy Birthday”を音声辞書113から読み出し、重畳して出力するようにする。
また、制御部10は特殊文字の音声表現として図7の説明図に示した表現2、且つ候補2の音声表現「ポクポクチーン(flickering)」を選択した場合、擬音の読みの音声表現ではなく、予め録音された木魚とりんの効果音(「sound that lights a match」)を出力させるための制御文字列を含んでテキストデータへ置き換える。
具体的には、制御部10は、『「ご仏壇(altar)」+「絵文字」』というテキストデータを受け付けた場合、音声表現選択部103として木魚とりんの効果音(「sound that lights a match」)を選択したときは、以下に示すように特殊文字を置き換えた音声表現に相当する文字列を、効果音(Sound Effect )を出力させるためのタグで表わされる制御文字列を挿入する。
「ご仏壇(altar)<EFF>ポクポクチーン(flickering)</EFF>」
制御部10は、変換部104として機能する場合、タグをそのまま残して以下に示すように音声表記へ変換する。
「ゴブツダン(ao'ltahr)<EFF>ポクポクチーン(flickering)</BGM>」
制御部10は、音声合成部105として機能する場合、音声表記に<EFF>タグが検出された場合は、タグに挟まれている文字列に対応する効果音のファイル”ポクポクチーン(flickering)”を音声辞書113から読み出して出力するようにする。
さらに、制御部10は特殊文字の音声表現として図7の説明図に示した表現2且つ候補1、即ち拍手の擬音の音声表現「パチパチ(clap-clap)」を選択した場合、「パチパチ(clap-clap)」を男性の声質で擬音を出力させるための制御文字列を含んだ音声表記へ変換する。
具体的には、制御部10は、『「お誕生日おめでとう(Happy birthday)」+「絵文字」』というテキストデータを受け付けた場合、音声表現選択部103として効果音である音声表現「パチパチ(clap-clap)」を選択したときは、以下に示すように特殊文字を置き換えた音声表現に相当する文字列を、男性の声質で擬音を出力させるためのタグで表わされる制御文字列を挿入する。
「お誕生日おめでとう(Happy birthday)<M1>パチパチ(clap-clap)</M1>」
制御部10は、変換部104として機能する場合、タグをそのまま残して以下に示すように音声表記へ変換する。
「オタンジ’ョービ、オメデトー(ha`epi be'rthde`i)<M1>パ’チパ’チ(fli'kahring)</M1>」
制御部10は、音声合成部105として機能する場合、音声表記に<M1>タグが検出された場合は、タグに挟まれている音声表記”パ’チパ’チ(fli'kahring)”を男性の声質で出力するようにする。
なお、変換部104として機能する際に制御文字列を必ずしも挿入しない構成でもよい。制御部10は音声表現選択部103として機能する際に、効果音、BGM等の音声表現を選択した場合は、予め音声合成部105としての機能に対応させた文字列に置換する。例えば、音声表現「パチパチ(clap-clap)」を選択した場合、音声合成装置1の制御部10は、擬音として読むのではなく予め録音された拍手音を出力させるために以下のようにする。制御部10は、音声合成部105として機能する場合に拍手音と対応することが検知可能なように予め対応付けられた文字列「ハクシュオン(sound of applause)」を記憶部11に記憶しておく。制御部10は、音声表現「パチパチ(clap-clap)」を選択した場合、テキストデータの内の特殊文字を文字列「ハクシュオン(sound of applause)」に置き換える。制御部10は記憶してある文字列「ハクシュオン(sound of applause)」と音声表記とを照合して文字列「ハクシュオン(sound of applause)」を認識し、適切な箇所で拍手の効果音(sound of applause)を音声出力部14に出力させることができる。
また、制御部10は音声表現選択部103として機能し、テキストデータ中の特殊文字の位置と、特殊文字に対応して選択した音声表現とを一時記憶領域12に記憶しておく。この場合、制御部10は、音声合成部105として機能する場合、一時記憶領域12からテキストデータ中の特殊文字の位置と特殊文字の音声表現とを読み出して、適切な位置に効果音、背景音楽を挿入して出力するように音声データを作成する構成でもよい。
実施の形態2において図7の説明図に示したように特殊文字に対する音声表現を分類して選択可能な構成とすることにより、冗長な読み上げ又はユーザが意図しない読み上げを抑制するのみならず、擬音、効果音、又はBGMを交えた表現豊かな音声読み上げを提供することができる。
(実施の形態3)
実施の形態3では、音声合成装置1の記憶部11に記憶されている特殊文字辞書111に、音声表現に夫々対応付けて関連語を登録しておき、制御部10が音声表現選択部103として音声表現を選択する際に使用する。
実施の形態3における音声合成装置1の構成は、実施の形態1における音声合成装置1の構成と同様であるので詳細な説明を省略する。実施の形態3では、音声合成装置1の記憶部11に記憶されている特殊文字辞書111と、制御部10が音声表現選択部103として機能する場合の処理の内容とが実施の形態1と異なる。したがって、実施の形態1と同一の符号を用い、特殊文字辞書111及び制御部10の音声表現選択部103としての処理について以下に説明する。
図8は、実施の形態3における本発明の音声合成装置1の記憶部11に記憶される特殊文字辞書111の内容例を示す説明図である。
図8の説明図に示すように特殊文字辞書111には、特殊文字として識別コード「××」が設定されている「三本のろうそく」のイメージの絵文字が登録されている。「三本のろうそく」のイメージの絵文字には、4つの音声表現が登録されている。図8の説明図に示す実施の形態3での音声表現及び各音声表現の分類は実施の形態1における分類(図3参照)と同様である。
図8の説明図に示すように、特殊文字辞書111には各音声表現に対応付けられて一又は複数の関連語が登録されている。特殊文字の近傍に関連語が存在する場合に、関連語が対応付けられている音声表現を選択するためである。
図8の説明図に示す例では、特殊文字辞書111には読みの音声表現「バースデー(birthday)」に対してつながりが強い「ハッピー(happy)」が関連語として登録されている。したがって音声合成装置1は、受け付けたテキストデータに識別コード「××」の特殊文字が存在し、さらに関連語「ハッピー(happy)」が特殊文字の近傍、特に直前に存在する場合、「ハッピー(happy)」が対応付けられている読みの音声表現「バースデー(birthday)」を選択する。音声合成装置1は、特殊文字を含むテキストデータ『「ハッピー(Happy)」+「絵文字」』を「ハッピーバースデー(Happy birthday)」と読み上げることができる。
また、図8の説明図では、読みの音声表現「バースデー(birthday)」に対応付けて、想起される意味が同じで使用形態の分類が異なる音声表現の読みである「パチパチ(clap)」が特殊文字辞書111に登録されていることが下線で示されている。これは、音声合成装置1が受け付けたテキストデータに識別コード「××」の特殊文字が存在し、さらに特殊文字の近傍に関連語である「パチパチ(clap)」が存在する場合、特殊文字を「パチパチ(clap-clap)」と読み上げたときは冗長な読み上げになるので、想起される意味が同じ分類の読みの音声表現「バースデー(birthday)」を音声合成装置1が選択して読み上げるようにするためである。
特殊文字辞書111には擬音の読み又は効果音である音声表現「パチパチ(clap-clap)」に対応付けて、関連語「拍手(applause)」が登録されている。これにより、テキストデータに識別コード「××」の特殊文字が存在し、「拍手(applause)」が特殊文字の近傍に存在する場合は、音声合成装置1は「拍手(applause)」に対応付けられている音声表現「パチパチ(clap-clap)」を選択する。
同様に、図8の説明図では、擬音の読み又は効果音の音声表現「パチパチ(clap-clap)」に対応付けて、想起される意味が同じで使用形態の分類が異なる音声表現の読みである「バースデー(birthday)」が特殊文字辞書111に登録されていることが下線で示されている。また、特殊文字辞書111には読みの音声表現「ろうそく(candles)」に対応付けて、関連語「仏壇(altar)」、「停電(blackout)」が登録されている。また、特殊文字辞書111には、読みの音声表現「ろうそく(candles)」に対応付けて、「ろうそく(candles)」と想起される意味が同じで使用形態が異なる分類の擬音の読み又は効果音の音声表現「ポクポクチーン(flickering)」を音声合成装置1が冗長的に読み上げないようにするための関連語「ポクポクチーン(flick)」が登録されている。
したがって、テキストデータに識別コード「××」の特殊文字が存在し、その近傍に「仏壇(altar)」、「停電(blackout)」又は「ポクポクチーン(flick)」が存在する場合は、音声合成装置1の制御部10は、読みの音声表現「ろうそく(candles)」を選択する。
さらに、特殊文字辞書111には擬音の読み又は効果音の音声表現「ポクポクチーン(flickering)」に対応付けて、関連語「木魚」及び「りん」(「pray:祈り」)が登録されている。また、特殊文字辞書111には、擬音の読み又は効果音の音声表現「ポクポクチーン」に対応付けて、「ポクポクチーン(flickering)」と想起される意味が同じで使用形態の分類が異なる読みの音声表現「ろうそく(candles)」を音声合成装置1が冗長的に読み上げないようにするための関連語「ろうそく(candles)」が登録されている。
したがって、テキストデータに識別コード「××」の特殊文字が存在し、特殊文字の近傍に「木魚」、「りん」(「pray」)又は「ろうそく(candles)」が存在する場合は、音声合成装置1の制御部10は、擬音の読み又は効果音の音声表現「ポクポクチーン(flickering)」を選択する。
次に、図8の説明図に示したように特殊文字辞書111に登録されている関連語を使用して、音声合成装置1の制御部10が、特殊文字辞書111に登録されている音声表現を選択する処理について説明する。
図9及び図10は、実施の形態3における音声合成装置1の制御部10が、受け付けたテキストデータから音声を合成する処理手順を示すフローチャートである。
制御部10は、テキスト入力部13からのテキストの入力をテキスト受付部101の機能により受け付けた場合、以下の処理を行なう。
ここで、説明を簡単にするため、候補1の音声表現に対応付けられている関連語の内、表現1に対応付けられている関連語がテキストデータの内で一致する数をNc1r1とする。また、候補1の音声表現に対応付けられている関連語の内、表現2に対応付けられている関連語がテキストデータの内で一致する数をNc1r2とする。候補1の音声表現に対応付けられている関連語がテキストデータの内で一致する総数をNc1とするが、Nc1=Nc1r1+Nc1r2が成立する。一方、候補2の音声表現に対応付けられている関連語の内、表現1に対応付けられている関連語がテキストデータの内で一致する数をNc2r1とする。また、候補2の音声表現に対応付けられている関連語の内、表現2に対応付けられている関連語がテキストデータの内で一致する数をNc2r2とする。候補2の音声表現に対応付けられている関連語がテキストデータの内で一致する総数をNc2とするが、Nc2=Nc2r1+Nc2r2が成立する。
制御部10は、受け付けたテキストデータと特殊文字辞書111に登録されている識別コードとを照合して特殊文字を抽出する(ステップS301)。制御部10は、ステップS301において特殊文字を抽出したか否かを判断する(ステップS302)。
制御部10は、ステップS302において特殊文字を抽出していないと判断した場合(S302:NO)、受け付けたテキストデータを変換部104の機能により音声表記に変換する(ステップS303)。制御部10は、変換した音声表記から音声合成部105の機能により音声を合成し(ステップS304)、処理を終了する。
制御部10は、ステップS302において特殊文字を抽出したと判断した場合(S302:YES)、抽出した特殊文字に対して特殊文字辞書111に登録されている候補1の音声表現に対応付けられている関連語が受け付けたテキストデータの内で一致する総数(Nc1)、及び候補2の音声表現に対応付けられている関連語が受け付けたテキストデータの内で一致する総数(Nc2)を候補毎に計数する(ステップS305)。
制御部10は、ステップS305で計数した、候補1の音声表現に対応付けられている関連語との一致総数、及び候補2の音声表現に対応付けられている関連語との一致総数がいずれもゼロであるか否か(Nc1=Nc2=0?)を判断する(ステップ306)。制御部10は、一致総数が候補1及び候補2でいずれもゼロであると判断した場合(S306:YES)、抽出した特殊文字を削除する(ステップS307)。なお、ステップS307において特殊文字を削除するのは、その特殊文字に対して読み上げを行わない、即ち特殊文字に対応する音声表現として「無音」を選択したことに相当する。その後、制御部10は残りのテキストデータを変換部104の機能により音声表記に変換し(S303)、変換した音声表記から音声合成部105の機能により音声を合成し(S304)、処理を終了する。
制御部10は、ステップS306において、候補1の音声表現又は候補2の音声表現に対応付けられている関連語との一致総数がいずれかゼロでないと判断した場合(S306:NO)、候補1の音声表現に対応づけられている関連語との一致総数が、候補2の音声表現に対応付けられている関連語との一致総数以上であるか否か(Nc1≧Nc2?)を判断する(ステップS308)。
制御部10がステップS308において、関連語の一致総数を候補1と候補2とで比較するのは以下の理由による。候補1及び候補2は、特殊文字の絵柄から想起される意味の違いで分類されており、関連語はやはり意味の違いで候補1と候補2とで分類される。したがって、抽出した特殊文字は、候補1と候補2とで特殊文字の近傍でより関連語が多く検出された方に近い意味で使用されていると判断できる。
制御部10は、ステップS308において、候補1の音声表現に対応付けられている関連語との一致総数が、候補2の音声表現に対応付けられている関連語との一致総数以上であると判断した場合(S308:YES)、候補1の音声表現に対応付けられている関連語の内で、表現1の音声表現に対応付けられている関連語と一致する数(Nc1r1)が、表現2の音声表現に対応付けられている関連語と一致する数(Nc1r2)以上であるか否か(Nc1r1≧Nc1r2?)を判断する(ステップS309)。
制御部10がステップS309において、関連語の一致総数を同じ意味を想起させる表現1と表現2とで比較するのは以下の理由による。関連語は、それが検出された場合に対応付けられている表現1又は表現の音声表現を選択するように登録されているので、対応付けられている関連語がより多く特殊文字の近傍から検出された場合は、対応付けられている音声表現を選択する。
したがって、制御部10は、ステップS309において、候補1の表現1の音声表現に対応付けられている関連語と一致する数(Nc1r1)が、候補1の表現2の音声表現に対応付けられている関連語と一致する数(Nc1r2)以上である(Nc1r1≧Nc1r2)と判断した場合(S309:YES)、候補1、表現1で分類される音声表現を選択する(ステップS310)。
一方、制御部10は、ステップS309において、表現1の音声表現に対応付けられている関連語と一致する数(Nc1r1)が、表現2の音声表現に対応付けられている関連語と一致する数(Nc1r2)未満である(Nc1r1<Nc1r2)と判断した場合(S309:NO)、候補1、表現2で分類される音声表現を選択する(ステップS311)。
また、制御部10は、ステップS308において候補1の音声表現に対応付けられている関連語との一致総数(Nc1)が、候補2の音声表現に対応付けられている関連語との一致総数(Nc2)未満である(Nc1<Nc2)と判断した場合(S308:NO)、候補2の音声表現に対応付けられている関連語の内で、表現1の音声表現に対応付けられている関連語と一致する数(Nc2r1)が、表現2の音声表現に対応付けられている関連語と一致する数(Nc2r2)以上であるか否か(Nc2r1≧Nc2r2?)を判断する(ステップS312)。
制御部10は、ステップS312において、候補2の表現1の音声表現に対応付けられている関連語と一致する数(Nc2r1)が、候補2の表現2の音声表現に対応付けられている関連語と一致する数(Nc2r2)以上である(Nc2r1≧Nc2r2)と判断した場合(S312:YES)、候補2、表現1で分類される音声表現を選択する(ステップS313)。
制御部10は、ステップS312において、候補2の表現1の音声表現に対応付けられている関連語と一致する数(Nc2r1)が、候補2の表現2の音声表現に対応付けられている関連語と一致する数(Nc2r2)未満である(Nc2r1<Nc2r2)と判断した場合(S312:NO)、候補2、表現2で分類される音声表現を選択する(ステップS314)。
制御部10は、ステップS310、ステップS311、ステップS313及びステップS314において選択した音声表現に従って、特殊文字を含むテキストデータを変換部104の機能により音声表記に変換する(ステップS315)。
制御部10は、変換した音声表記から音声合成部105の機能により音声を合成し(S304)、処理を終了する。
図9及び図10のフローチャートに示した処理は、例えばテキストデータを一文ではなく複数の文からなる文章であった場合は、文毎に実行してもよい。したがって、ステップS305においてテキストデータの内で関連語と一致する総数を計数する範囲は、特殊文字を含む一文に相当するテキストデータの内を特殊文字の近傍として捉えて関連語が一致する数を計数している。しかしながら、関連語が一致する数を計数する範囲は、一文に相当するテキストデータのみならず、特殊文字を含む一文の前後の複数の文に相当するテキストデータを特殊文字の近傍として捉えて、一致する関連語の数を計数してもよい。
さらに、テキストデータに題名などの付帯テキストがある場合は、その付帯テキストの内で関連語を計数してもよい。このとき、付帯テキスト中にも特殊文字が含まれている場合は、その特殊文字については関連語に相当するか等の解析を行わなくてもよい。
図9及び図10のフローチャートに示した処理手順により、抽出した特殊文字に対し、対応付けられた関連語が一致する数が多い音声表現が選択される。これにより、ユーザの意図と異なる意味での読み上げ、及び冗長な読み上げを抑制することができる。したがって、ユーザの意図に沿った適切な読み上げを行なうことができる。
なお、実施の形態3において、音声表現夫々に対応付けて登録する関連語として、その音声表現の読みと共に生起する確率が高い単語群をデータベースとして登録しておいてもよい。特殊文字に対する読みを含む音声表現と共に生起する確率が高い単語群は、特殊文字の近傍に検出された場合、その特殊文字が視覚的に想起させる意味が似ていると考えられる。したがって、特殊文字の意味を誤って捉えてユーザの意図と異なる意味を想起させる読み上げを抑制することができる。
(実施の形態4)
実施の形態4では、音声合成装置1の記憶部11に記憶されている特殊文字辞書111に、音声表現に夫々対応付けて関連語及び同義語を登録しておき、制御部10が音声表現選択部103として特殊文字に対する音声表現を選択する際に使用する。
実施の形態4における音声合成装置1の構成は、実施の形態1における音声合成装置1の構成と同様であるので詳細な説明を省略する。実施の形態4では、音声合成装置1の記憶部11に記憶されている特殊文字辞書111と、制御部10が音声表現選択部103として機能する場合の処理の内容とが異なるので、実施の形態1と同一の符号を用いて以下に特殊文字辞書111及び音声表現選択部103としての処理について説明する。
図11は、実施の形態4における本発明の音声合成装置1の記憶部11に記憶される特殊文字辞書111の内容例を示す説明図である。
図11の説明図に示すように特殊文字辞書111には、特殊文字として識別コード「××」が設定されている「三本のろうそく」のイメージの絵文字が登録されている。「三本のろうそく」のイメージの絵文字には、6つの音声表現が登録されている。図11の説明図に示す実施の形態4での音声表現及び各音声表現の分類は実施の形態2における分類(図7参照)と同様である。
図11の説明図に示すように、特殊文字辞書111には、各音声表現夫々に対応付けられて一又は複数の関連語及び同義語が登録されている。関連語については、特殊文字の近傍に関連語が存在する場合に関連語が対応付けられている音声表現を選択するためである。一方、同義語については、特殊文字の近傍に同義語が存在する場合に、冗長な読み上げを抑制するために同義語が対応付けられている音声表現を選択しないようにするためである。
図11の説明図に示す例では、特殊文字辞書111には読みの音声表現「バースデー(birthday)」に対応付けて、同義語「バースデー」及び「誕生日」(「birthday」)が登録されている。テキストデータに含まれる識別コード「××」の特殊文字の近傍に「バースデー」又は「誕生日」(「birthday」)が存在する場合、その特殊文字を「バースデー(birthday)」と読み上げられたときは、冗長な読み上げとなるからである。これにより、音声合成装置1は、受け付けたテキストデータに識別コード「××」の特殊文字が存在し、且つ文字列「バースデー(birthday)」が近傍に存在している場合は「バースデー(birthday)」と読み上げないようにすることができる。
また、特殊文字辞書111には読みの音声表現「バースデー(birthday)」に対応付けて、「ハッピー(happy)」が関連語として登録されている。読みの音声表現「バースデー(birthday)」に対応する関連語として「ハッピー(happy)」を登録しておくことにより、音声合成装置1は、受け付けたテキストデータに識別コード「××」の特殊文字が存在し、特殊文字の近傍に文字列「ハッピー(happy)」が存在する場合、関連語「ハッピー」が対応付けられている読みの音声表現「バースデー(birthday)」を選択する。これにより、音声合成装置1は、特殊文字を含むテキストデータを「ハッピーバースデー(birthday)」と読み上げることができる。
特殊文字辞書111には擬音の読み又は効果音の音声表現「パチパチ(clap-clap)」に対応付けて、同義語「パチパチ(clap)」が登録されている。また、特殊文字辞書111には擬音の読み又は効果音の音声表現「パチパチ(clap-clap)」に対応付けて、関連語「拍手(applause)」が登録されている。したがって、音声合成装置1は、受け付けたテキストデータに識別コード「××」の特殊文字が存在し、且つ文字列「拍手(applause)」が近傍に存在する場合は、「拍手(applause)」が対応付けられている音声表現「パチパチ(clap-clap)」を選択し、特殊文字を含むテキストデータを例えば「拍手、パチパチ(give a round of applause, clap clap)」等と読み上げることができる。
同様に、特殊文字辞書111には読みの音声表現「ろうそく(candles)」に対応付けて、同義語「ろうそく(candles)」が登録されている。また、読みの音声表現「ろうそく(candles)」に対応付けて、関連語「仏壇(altar)」及び「停電(blackout)」が登録されている。
さらに、特殊文字辞書111には擬音の読み又は効果音の音声表現「ポクポクチーン(flickering)」に対応付けて、同義語「ポクポク」及び「チーン」(「flick」、「glitter:ピカピカ」、「twinkle:キラキラ」)が登録されている。さらに、擬音の読み又は効果音の音声表現「ポクポクチーン」に対応付けて、関連語「木魚」及び「りん」(「pray」)が登録されている。
図11の説明図に示したように特殊文字辞書111に登録されている関連語を使用して、音声合成装置1の制御部10が、特殊文字辞書111に登録されている音声表現を選択する処理について説明する。
図12、図13及び図14は、実施の形態4における音声合成装置1の制御部10が、受け付けたテキストデータから音声を合成する処理手順を示すフローチャートである。なお、図12、図13及び図14のフローチャートに示した処理手順の内のステップS401からステップS404までの処理については実施の形態3における図9及び図10のフローチャートに示した処理手順の内のステップS301からステップS304までの処理と同様の処理であるので、詳細な説明を省略し、ステップS405以降の処理について以下に説明する。
ここで、説明を簡単にするため、候補1の音声表現に対応付けられている同義語・関連語の内、表現1に対応付けられている同義語がテキストデータの内で一致する数をNc1s1とする。候補1の音声表現に対応付けられている同義語・関連語の内、表現2に対応付けられている同義語がテキストデータの内で一致する数をNc1s2とする。候補1の音声表現に対応付けられている同義語・関連語の内、表現1に対応付けられている関連語がテキストデータの内で一致する数をNc1r1とする。候補1の音声表現に対応付けられている同義語・関連語の内、表現2に対応付けられている関連語がテキストデータの内で一致する数をNc1r2とする。
候補1の音声表現に対応付けられている関連語がテキストデータの内で一致する総数をN1とするが、N1=Nc1s1+Nc1s2+Nc1r1+Nc1r2が成立する。
一方、候補2の音声表現に対応付けられている同義語・関連語の内、表現1に対応付けられている同義語がテキストデータの内で一致する数をNc2s1とする。候補2の音声表現に対応付けられている同義語・関連語の内、表現2に対応付けられている同義語がテキストデータの内で一致する数をNc2s2とする。候補2の音声表現に対応付けられている同義語・関連語の内、表現1に対応付けられている関連語がテキストデータの内で一致する数をNc2r1とする。候補2の音声表現に対応付けられている同義語・関連語の内、表現2に対応付けられている関連語がテキストデータの内で一致する数をNc2r2とする。
候補2の音声表現に対応付けられている関連語がテキストデータの内で一致する総数をN2とするが、N2=Nc2s1+Nc2s2+Nc2r1+Nc2r2が成立する。
制御部10は、抽出した特殊文字に対して特殊文字辞書111に登録されている候補1の音声表現に対応付けられている同義語・関連語が受け付けたテキストデータの内で一致する総数(N1)、及び候補2の音声表現に対応付けられている同義語・関連語が受け付けたテキストデータの内で一致する総数(N2)を候補毎に計数する(ステップS405)。
制御部10は、ステップS405で計数した、候補1の音声表現に対応付けられている同義語・関連語との一致総数(N1)、及び候補2の音声表現に対応付けられている同義語・関連語との一致総数(N2)がいずれもゼロであるか否か(N1=N2=0?)を判断する(ステップS406)。制御部10は、一致総数が候補1及び候補2でいずれもゼロであると判断した場合(S406:YES)、抽出した特殊文字を削除する(ステップS407)。その後、制御部10は残りのテキストデータを変換部104の機能により音声表記に変換し(S403)、変換した音声表記から音声合成部105の機能により音声を合成し(S404)、処理を終了する。
制御部10は、ステップS406において、候補1の音声表現又は候補2の音声表現に対応付けられている同義語・関連語との一致総数(N1及びN2)がいずれもゼロであると判断した場合(S406:NO)、候補1の音声表現に対応付けられている同義語・関連語との一致総数(N1)が、候補2の音声表現に対応付けられている同義語・関連語との一致総数(N2)以上であるか否か(N1≧N2?)を判断する(ステップS408)。
制御部10は、ステップS408において、同義語・関連語の一致総数を候補1と候補2とで比較するのは以下の理由による。候補1及び候補2は、特殊文字の絵柄から想起される意味の違いで分類されており、同義語・関連語はやはり意味の違いで候補1と候補2とで分類される。したがって、抽出した特殊文字は候補1と候補2とで特殊文字の近傍でより同義語・関連語が抽出された方に近い意味で使用されていると判断できる。
制御部10は、ステップS408において、候補1の音声表現に対応付けられている同義語・関連語との一致総数(N1)が、候補2の音声表現に対応付けられている同義語・関連語との一致総数(N2)以上であると判断した場合(S408:YES)、抽出した特殊文字から想起される意味が候補1で分類される意味であるので、図11の説明図で示した特殊文字に対する音声表現を候補1の表現1/表現2/表現3の内から選択するように以下の処理を行なう。
制御部10は、候補1の表現1の音声表現に対応付けられている同義語と一致する数(Nc1s1)及び表現2の音声表現に対応付けられている同義語と一致する数(Nc1s2)がいずれもゼロよりも多いか否か(Nc1s1>0&Nc1s2>0?)を判断する(ステップS409)。
制御部10は、候補1の表現1及び表現2夫々の音声表現に対応付けられている同義語と一致する数(Nc1s1及びNc1s2)がいずれもゼロよりも多いと判断した場合(S409:YES)、音声表現として表現1及び表現2のいずれも選択せず、候補1の表現3を選択する(ステップS410)。なぜならば、受け付けたテキストデータに表現1及び表現2に対応付けられている同義語がいずれも存在している場合は、表現1及び表現2のいずれの音声表現を選択した場合も、読み上げたときに冗長な読み上げとなる。したがって、制御部10は、BGMである表現3の音声表現に従い、特殊文字を候補1の表現3のBGMに相当する文字列に置き換えて変換部104の機能によりテキストデータを音声表記に変換する(ステップS411)。制御部10は変換した音声表記から音声合成部105の機能により音声を合成し(S404)、処理を終了する。
制御部10は、候補1の表現1及び表現2夫々の音声表現に対応付けられている同義語と一致する数(Nc1s1又はNc1s2)のいずれかがゼロであると判断した場合(S409:NO)、候補1の表現1の音声表現に対応付けられている同義語と一致する数(Nc1s1)はゼロでなく、且つ候補1の表現2の音声表現に対応付けられている同義語と一致する数(Nc1s2)はゼロであるか否か(Nc1s1>0&Nc1s2=0?)を判断する(ステップS412)。
制御部10は、候補1の表現1の音声表現に対応付けられている同義語と一致する数(Nc1s1)がゼロでなく、且つ候補1の表現2の音声表現に対応付けられている同義語と一致する数(Nc1s2)がゼロであると判断した場合(S412:YES)、音声表現として候補1の表現2を選択する(ステップS413)。
なぜならば、ステップS412における判断処理によって、受け付けたテキストデータに表現1に対応付けられている同義語が存在しており、且つ表現2に対応付けられている同義語が存在していないことを検知することができるからである。この場合、表現2の音声表現を選択した場合、読み上げたときに冗長な読み上げとならない。したがって、制御部10は、擬音又は効果音である表現2の音声表現に従い、特殊文字を候補1の表現2の音声表現を表わす文字列に置き換えて変換部104の機能によりテキストデータを音声表記に変換する(S411)。
制御部10は、候補1の表現1の音声表現に対応付けられている同義語と一致する数(Nc1s1)がゼロであるか、又は候補1の表現2の音声表現に対応付けられている同義語と一致する数(Nc1s2)がゼロでない場合(S412:NO)、逆に、候補1の表現1の音声表現に対応付けられている同義語と一致する数(Nc1s1)がゼロであり、且つ候補1の表現2の音声表現に対応付けられている同義語と一致する数(Nc1s2)がゼロでないか否か(Nc1s1=0&Nc1s2>0?)を判断する(ステップS414)。
制御部10は、候補1の表現1の音声表現に対応付けられている同義語と一致する数(Nc1s1)がゼロであり、且つ候補1の表現2の音声表現に対応付けられている同義語と一致する数(Nc1s2)がゼロでないと判断した場合(S414:YES)、音声表現として候補1の表現1を選択する(ステップS415)。
ステップS412において、受け付けたテキストデータに表現1に対応付けられている同義語が存在していて、且つ表現2に対応付けられている同義語が存在しない場合については既に除かれている。したがって、ステップS414の判断処理によって、受け付けたテキストデータに表現2に対応付けられている同義語が存在しており、且つ表現1に対応付けられている同義語が存在していないことを検知することができる。この場合、表現1の音声表現を選択した場合、読み上げたときに冗長な読み上げとならない。そこで制御部10は、読みである表現1の音声表現に従い、特殊文字を候補1の表現1の音声表現を表わす文字列に置き換えて変換部104の機能によりテキストデータを音声表記に変換する(S411)。制御部10は変換した音声表記から音声合成部105の機能により音声を合成し(S404)、処理を終了する。
一方、制御部10は、候補1の表現1の音声表現に対応付けられている同義語と一致する数(Nc1s1)がゼロでなく、又は候補1の表現2の音声表現に対応付けられている同義語と一致する数(Nc1s2)がゼロであると判断した場合(S414:NO)、候補1の表現1の音声表現に対応付けられている関連語と一致する数(Nc1r1)が、表現2の音声表現に対応付けられている関連語(Nc1r2)と一致する数以上であるか否か(Nc1r1≧Nc1r2?)を判断する(ステップS416)。
ステップS409、ステップS412及びステップS414における判断処理によって、受け付けたテキストデータに候補1の表現1及び表現2の音声表現に対応付けられている同義語が存在する場合は除去されている。従って、ステップS416に進む場合は、受け付けたテキストデータには、候補1の表現1及び表現2の音声表現に対応付けられている同義語はいずれも存在しない(Nc1s1=Nc1s2=0)。したがって、いずれの音声表現を選択した場合でも、読み上げたときに冗長な読み上げとはならない。一方、制御部10は、ステップS406の判断処理を得ているため、同義語は存在していないが表現1と表現2とのいずれかの関連語が存在していると判断することができる。そこで制御部10は、ステップS416の判断処理によって、つながりがより強い使用形態で使用されている表現1又は表現2を選択するようにする。
制御部10は、ステップS416において、候補1の表現1の音声表現に対応付けられている関連語と一致する数(Nc1r1)が、候補1の表現2の音声表現に対応付けられている関連語と一致する数(Nc1r2)以上であると判断した場合(S416:YES)、音声表現として候補1の表現1を選択する(S415)。制御部10は、読みである表現1の音声表現に従い、特殊文字を候補1の表現1を文字列に置き換えて変換部104の機能によりテキストデータを音声表記に変換する(S411)。制御部10は変換した音声表記から音声合成部105の機能により音声を合成し(S404)、処理を終了する。
制御部10は、ステップS416において、候補1の表現1の音声表現に対応付けられている関連語と一致する数(Nc1r1)が、候補1の表現2の音声表現に対応付けられている関連語と一致する数(Nc1r2)未満であると判断した場合(S416:NO)、音声表現として候補1の表現2を選択する(S413)。制御部10は、擬音又は効果音である表現2の音声表現に従い、特殊文字を候補1の表現2を文字列に置き換えて変換部104の機能によりテキストデータを音声表記に変換する(S411)。制御部10は変換した音声表記から音声合成部105の機能により音声を合成し(S404)、処理を終了する。
一方、ステップS408において、候補1の音声表現に対応付けられている同義語・関連語との一致総数が、候補2の音声表現に対応付けられている同義語・関連語との一致総数未満であると判断した場合(S408:NO)、抽出した特殊文字から想起される意味が候補2で分類される意味であるので、図10の説明図で示した特殊文字に対する音声表現を候補2の表現1/表現2/表現3の内から選択するように以下の処理を行なう。
制御部10は、候補1の音声表現を選択する処理同様、候補2の表現1の音声表現に対応付けられている同義語と一致する数(Nc2s1)及び表現2の音声表現に対応付けられている同義語と一致する数(Nc2s2)がいずれもゼロよりも多いか否か(Nc2s1>0&Nc2s2>0?)を判断する(ステップS417)。
制御部10は、候補2の表現1及び表現2夫々の音声表現に対応付けられている同義語と一致する数(Nc2s1及びNc2s2)がいずれもゼロよりも多いと判断した場合(S417:YES)、音声表現として表現1及び表現2のいずれも選択せず、候補2の表現3を選択する(ステップS418)。制御部10は、BGMである表現3の音声表現に従い、特殊文字を候補2の表現3のBGMに相当する文字列に置き換えて変換部104の機能によりテキストデータを音声表記に変換する(S411)。制御部10は変換した音声表記から音声合成部105の機能により音声を合成し(S404)、処理を終了する。
制御部10は、候補2の表現1及び表現2夫々の音声表現に対応付けられている同義語と一致する数(Nc2s1又はNc2s2)のいずれかがゼロであると判断した場合(S417:NO)、候補2の表現1の音声表現に対応付けられている同義語と一致する数(Nc2s1)はゼロでなく、且つ候補2の表現2の音声表現に対応付けられている同義語と一致する数(Nc2s2)はゼロであるか否か(Nc2s1>0&Nc2s2=0?)を判断する(ステップS419)。
制御部10は、候補2の表現1の音声表現に対応付けられている同義語と一致する数(Nc2s1)がゼロでなく、且つ候補2の表現2の音声表現に対応付けられている同義語と一致する数(Nc2s2)がゼロであると判断した場合(S419:YES)、音声表現として候補2の表現2を選択する(ステップS420)。制御部10は、擬音又は効果音である表現2の音声表現に従い、特殊文字を候補2の表現2の音声表現を表わす文字列に置き換えて変換部104の機能によりテキストデータを音声表記に変換する(S411)。制御部10は変換した音声表記から音声合成部105の機能により音声を合成し(S404)、処理を終了する。
制御部10は、候補2の表現1の音声表現に対応付けられている同義語と一致する数(Nc2s1)がゼロであるか、又は候補2の表現2の音声表現に対応付けられている同義語と一致する数(Nc2s2)がゼロでない場合(S419:NO)、逆に、候補2の表現1の音声表現に対応付けられている同義語と一致する数(Nc2s1)がゼロであり、且つ候補2の表現2の音声表現に対応付けられている同義語と一致する数(Nc2s2)がゼロでないか否か(Nc2s1=0&Nc2s2>0?)を判断する(ステップS421)。
制御部10は、候補2の表現1の音声表現に対応付けられている同義語と一致する数(Nc2s1)がゼロであり、且つ候補2の表現2の音声表現に対応付けられている同義語と一致する数(Nc2s2)がゼロでないと判断した場合(S421:YES)、音声表現として候補2の表現1を選択する(ステップS422)。制御部10は、読みである表現1の音声表現に従い、特殊文字を候補2の表現1の音声表現を表わす文字列に置き換えて変換部104の機能によりテキストデータを音声表記に変換する(S411)。制御部10は、音声合成部105の機能により音声表記から音声を合成し(S404)、処理を終了する。
制御部10は、候補2の表現1の音声表現に対応付けられている同義語と一致する数(Nc2s1)がゼロでなく、又は候補2の表現2の音声表現に対応付けられている同義語と一致する数(Nc2s2)がゼロであると判断した場合(S421:NO)、候補2の表現1の音声表現に対応付けられている関連語と一致する数(Nc2r1)が、表現2の音声表現に対応付けられている関連語(Nc2r2)と一致する数以上であるか否か(Nc2r1≧Nc2r2?)を判断する(ステップS423)。
制御部10は、候補2の表現1の音声表現に対応付けられている関連語と一致する数(Nc2r1)が、候補2の表現2の音声表現に対応付けられている関連語と一致する数(Nc2r2)以上であると判断した場合(S423:YES)、音声表現として候補2の表現1を選択する(S422)。制御部10は、読みである表現1の音声表現に従い、特殊文字を候補2の表現1を文字列に置き換えて変換部104の機能によりテキストデータを音声表記に変換する(S411)。制御部10は変換した音声表記から音声合成部105の機能により音声を合成し(S404)、処理を終了する。
制御部10は、ステップS423において、候補2の表現1の音声表現に対応付けられている関連語と一致する数(Nc2r1)が、候補2の表現2の音声表現に対応付けられている関連語と一致する数(Nc2r2)未満であると判断した場合(S423:NO)、音声表現として候補2の表現2を選択する(S420)。制御部10は、擬音又は効果音である表現2の音声表現に従い、特殊文字を候補2の表現2を文字列に置き換えて変換部104の機能によりテキストデータを音声表記に変換する(S411)。制御部10は変換した音声表記から音声合成部105の機能により音声を合成し(S404)、処理を終了する。
図12、図13及び図14のフローチャートに示した処理は、例えばテキストデータを一文ではなく複数の文からなる文章であった場合は、文毎に実行してもよい。したがって、ステップS405においてテキストデータの内で同義語・関連語と一致する総数を計数する範囲は、特殊文字を含む一文に相当するテキストデータの内を特殊文字の近傍として捉えて同義語・関連語が一致する数を計数している。しかしながら、同義語・関連語が一致する数を計数する範囲は、一文に相当するテキストデータのみならず、特殊文字を含む一文の前後の複数の文に相当するテキストデータを特殊文字の近傍として捉えて、一致する同義語・関連語の数を計数してもよい。
さらに、受け付けたテキストデータに題名などの付帯テキストがある場合は、その付帯テキストの内で関連語を計数してもよい。
図12、図13及び図14のフローチャートに示した処理手順により、抽出した特殊文字に対応付けられた同義語が近傍に存在しない音声表現が選択され、同義語が存在しない場合は、関連語が一致する数が多い音声表現が選択される。これにより、ユーザの意図と異なる意味での読み上げ、及び冗長な読み上げを抑制することができ、ユーザの意図に沿った適切な読み上げを行なうことができる。
(実施の形態5)
実施の形態1乃至4では、音声合成装置1の制御部10が、変換部104及び音声合成部105のいずれとしても機能する構成であった。しかしながら、本発明はこれに限らず、変換部104と音声合成部105とが異なる装置に分けて備えられる構成でもよい。実施の形態5では、音声表現選択部103及び変換部104の機能を備える言語処理装置と、音声表記から音声を合成する機能を備える音声出力装置とで本発明の特殊文字を適切に読み上げる効果を実現する。
図15は、実施の形態5における本発明の音声合成システムの構成を示す構成図である。音声合成システムは、テキストデータを受け付けて、後述する音声出力装置3が音声を合成するための音声表記へ変換する処理を行なう言語処理装置2と、言語処理装置2が変換した音声表記を受け付け、受け付けた音声表記から音声を合成して出力する音声出力装置3とを含んで構成される。
言語処理装置2と音声出力装置3とは、通信線4によって接続されており、データの送受信が可能である。
言語処理装置2は、以下に説明する各構成部の動作を制御する制御部20と、ハードディスク等である記憶部21と、RAM(Random Access Memory)等のメモリを有する一時記憶領域22と、キーボード等を有するテキスト入力部23と、音声出力装置3と通信線4を介して接続するための通信部24とを備える。
記憶部21には、音声を合成するための音声表記へテキストデータを変換する処理等を実行するためのプログラムである制御プログラム2Pが記憶されている。制御部20は、記憶部21から制御プログラム2Pを読み出して実行することにより、音声表現の選択処理及びテキストデータの音声表記への変換処理を実行する。
記憶部21には更に、絵文字、顔文字、記号等とその読みを含む音声表現とが登録されている特殊文字辞書211、漢字かな文字等からなるテキストを構成する文節、単語等と音声表記との対応が登録されている言語辞書212が記憶されている。
一時記憶領域22は、制御部20が制御プログラムを読み出す場合に使用されるのみならず、特殊文字辞書211、言語辞書212から各種情報を読み出す場合に使用される。また、一時記憶領域22は、各処理を実行することによって発生する各種情報を一時的に記憶するために使用される。
テキスト入力部23は、キーボード、文字キー等のテキストの入力を受け付ける手段である。制御部20は、テキスト入力部23により入力されるテキストデータを受け付ける。
通信部24は、通信線4を介して音声出力装置3とのデータ通信を実現する。制御部20は、特殊文字を含むテキストデータを変換した音声表記を通信部24により送信する。
音声出力装置3は、以下に説明する各構成部の動作を制御する制御部30と、ハードディスク等である記憶部31と、RAM(Random Access Memory)等のメモリを有する一時記憶領域32と、スピーカ331を有する音声出力部33と、言語処理装置2と通信線4を介して接続するための通信部34とを備える。
記憶部31には、音声合成の処理を実行するための制御プログラムが記憶されている。制御部30は、記憶部31から制御プログラムを読み出して実行することにより、音声合成の各動作を実行する。
記憶部31には更に、各音声の波形群が登録されている音声辞書(波形辞書)311が記憶されている。
一時記憶領域32は、制御部30が制御プログラムを読み出す場合に使用されるのみならず、音声辞書311から各種情報を読み出す場合に使用される。また、制御部30によって各処理が実行されることによって発生する各種情報を一時的に記憶するために使用される。
音声出力部33は、スピーカ331を有している。制御部30は、音声辞書311を参照して合成した音声を音声出力手段に与えて、スピーカ331を介して音声を出力させる。
通信部34は、通信線4を介して言語処理装置2とのデータ通信を実現する。制御部30は、特殊文字を含むテキストデータが変換された音声表記を通信部34により受信する。
図16は、実施の形態5における音声合成システムを構成する言語処理装置2の制御部20の各機能を示す機能ブロック図である。言語処理装置2の制御部20は、記憶部21から制御プログラムを読み出すことにより、テキスト入力部23により入力されるテキストデータを受け付けるテキスト受付部201、テキスト受付部201により受け付けたテキストデータから特殊文字を抽出する特殊文字抽出部202、抽出された特殊文字に対する音声表現を選択する音声表現選択部203、及び受け付けられたテキストデータを特殊文字に対して選択された音声表現に従って音声表記に変換する変換部204として機能する。
なお、各機能の詳細については、実施の形態1における音声合成装置1の制御部10の各機能と同様であるため詳細な説明を省略する。
言語処理装置2の制御部20は、テキスト受付部201として機能することによりテキストデータを受け付け、特殊文字抽出部202として機能することにより、記憶部21の特殊文字辞書211を参照して特殊文字を抽出する。言語処理装置2の制御部20は、音声表現選択部203として機能することにより特殊文字辞書211を参照し、抽出した特殊文字に対する音声表現を選択する。言語処理装置2の制御部20は、変換部204として機能することにより、選択した音声表現に従ってテキストデータを音声表記に変換する。
なお、実施の形態5においては、実施の形態2における音声合成装置1と同様に、制御部20は、受け付けたテキストデータの内の、特殊文字に対応して選択した音声表現を置き換えた文字列に制御文字列を挿入し、言語解析により音声表記に変換する構成とする。
図17は、実施の形態5における音声合成システムを構成する音声出力装置3の制御部30の各機能を示す機能ブロック図である。音声出力装置3の制御部30は、記憶部31から制御プログラムを読み出すことにより、送信された音声表記から合成音声を作成して音声出力部33へ出力する音声合成部301として機能する。
音声合成部301の詳細についても、実施の形態1における音声合成装置1の制御部10の音声合成部105としての機能と同様であるため、詳細な説明を省略する。
音声出力装置3の制御部30は、言語処理装置2から送信された音声表記を通信部34により受信し、音声合成部301として機能することにより音声辞書311を参照し、受信した音声表記に対応する音声を合成して音声出力部33へ出力する。
次に、実施の形態5における音声合成システムを構成する言語処理装置2及び音声出力装置3の処理について説明する。なお、言語処理装置2の記憶部21に記憶される特殊文字辞書211の内容は、実施の形態1乃至4の音声合成装置1の記憶部11に記憶される特殊文字辞書111のいずれと同じ構成でもよい。しかし、実施の形態5では、特殊文字辞書211の内容は実施の形態1と同様の内容が登録されている例を挙げて説明する。
図18は、実施の形態5における言語処理装置2及び音声出力装置3の制御部20,30により、テキストが受け付けられ、音声が合成されるまでの処理手順を示すフローチャートである。
言語処理装置2の制御部20は、テキスト入力部23からのテキストの入力をテキスト受付部201の機能により受け付けた場合、受け付けたテキストデータと特殊文字辞書211に登録されている識別コードとを照合して特殊文字を抽出する処理を行なう(ステップS51)。
言語処理装置2の制御部20は、ステップS51において特殊文字を抽出したか否かを判断する(ステップS52)。
言語処理装置2の制御部20は、ステップS52において特殊文字を抽出していないと判断した場合(S52:NO)、受け付けたテキストデータを変換部204の機能により音声表記へ変換する(ステップS53)。
言語処理装置2の制御部20は、ステップS52において特殊文字を抽出したと判断した場合(S52:YES)、特殊文字辞書211から抽出した特殊文字に対して登録されている音声表現を選択する(ステップS54)。言語処理装置2の制御部20は、選択した音声表現に相当する文字列を含むテキストデータを変換部204の機能により音声表記に変換する(ステップS55)。
言語処理装置2の制御部20は、ステップS53及びステップS55において変換した音声表記を通信部24により音声出力装置3へ送信する(ステップS56)。
音声出力装置3の制御部30は、通信部34により音声表記を受信し(ステップS57)、受信した音声表記から音声合成部301の機能により音声を合成し(ステップS58)、処理を終了する。
上述の処理により、音声表現選択部203及び変換部204の機能を備える言語処理装置2で特殊文字を含むテキストデータを、適切な音声表現を選択した上で音声表記へ変換し、音声合成部301の機能を備える音声出力装置3で、変換された音声表記から特殊文字に適した音声を合成して出力することができる。
上述のような実施の形態5における音声合成システムにより、以下のような効果を奏する。実施の形態1乃至4における音声合成装置1の制御部10が音声表現選択部103として機能する場合に実行する処理及び変換部104として機能する場合に実行する処理は、いずれも負荷が大きい。したがって、例えば音声合成装置1を受信メールを読み上げる機能を有した携帯電話機に適用した場合、音声表現選択部103及び変換部104として機能するには計算処理数が多くなって実現が難しくなる。しかしながら、性能が十分な装置に音声表現選択部103及び変換部104を備えさせ、音声を合成して出力する機能を備える音声出力装置3へ特殊文字を含めて変換した音声表記を送信することにより、音声出力装置3は音声表記から音声を合成する機能のみを備える構成でよい。これにより、携帯電話機等の小型化、軽量化が求められる装置でも、特殊文字を含むテキストデータを適切に読み上げることができるようになる。
なお、実施の形態5で、言語処理装置2と音声出力装置3とで音声表現選択部203及び変換部204と、音声合成部301とに機能を分け、言語処理装置2で音声表記に変換して送信する構成とした。しかしながら、言語処理装置2の制御部20は必ずしも変換部204として機能しなくてもよい。この場合、言語処理装置2の制御部20は、音声表記に変換せずに選択した音声表現と、特殊文字の位置に相当する場所を示す情報を含むテキストデータとを出力する構成でもよい。この場合、音声出力装置3は、言語処理装置2から送信された音声表現に従って、テキストデータを適切に、読み、擬音、効果音、BGMに合成し音声を出力する。この場合、選択した音声表現は、音声表現に相当する文字列を送信するのでもよい。
なお、実施の形態5において、言語処理装置2の制御部20は、特殊文字を含むテキストデータを受け付けた場合、その際にユーザによって任意に入力される特殊文字の音声表現を共に受け付けたときは、特殊文字辞書111から音声表現を選択せずに共に受け付けた音声表現を選択し、これに従って変換した音声表記を音声出力装置3へ送信するようにしてもよい。具体的には、実施の形態5における言語処理装置が、実施の形態1の図6のフローチャートに示した処理手順の内のステップS204以外の処理を行ない、変換した音声表記を音声出力装置3へ送信する構成とする。
実施の形態1乃至5では、音声合成装置1又は音声出力装置3は、音声出力部33が有するスピーカ331から合成した音声を出力させる構成とした。しかしながら本発明はこれに限らず、音声合成装置1又は音声出力装置3は、合成した音声をファイルとして出力する構成でもよい。
また、実施の形態1乃至5では、音声合成装置1及び言語処理装置2は、テキストの入力を受け付けるテキスト入力部13,23としてキーボード等を備える構成とした。しかしながら、本発明はこれに限らず、制御部10又は制御部20がテキスト受付部201として受け付けるテキストデータは、メール等、送受信されるファイル形式のテキストデータでも、フレキシブルディスク、CD−ROM、DVD、フラッシュメモリ等の可搬型記録媒体から制御部10又は制御部20が読み出したテキストデータでもよい。
なお、実施の形態1乃至5では、記憶部11又は記憶部21に記憶される特殊文字辞書111,211は、言語辞書112,212と別に記憶される構成であった。しかしながら、特殊文字辞書111,211は言語辞書112,212の一部として構成してもよい。