本発明は、テキストに対応する音声を合成して出力する音声合成装置に関し、特に、不完全な文章をも自然に読み上げるための音声合成装置に関する。
従来、所望のテキストに対する合成音を生成して出力する音声合成装置が提供されている。その中でも、応用分野として電子メールを読み上げるという用途があり、テキストで書かれた電子メールそのものを読む代わりに、電子メールの内容を合成音として聞き取るようにすることができる。
しかし、電子メールのテキストには、小説や新聞記事などのテキストと違い、例えば引用記号などのように、通常通りに読み上げることができない記号が、引用部分やシグネチャ部分などに含まれるため、このような部分を適切に処理して読み上げ可能な状態に修正する必要がある。このための技術として、例えば特許文献1及び特許文献2がある。
特許文献1の方式によれば、読み上げる必要が無い引用記号を除去することによって引用文の中身だけを読み上げたり、引用部分を全て削除したりすることによって引用部分の読み上げの困難さを回避することができる。
また、特許文献2の方式によれば、引用文の中身を蓄積済みの既読メールに含まれる文字列と照合し、引用文の中身が既読メールに含まれる場合のみ引用部分の削除を行うといった、より適切な処理を行うことができる。
特開平9−179719号公報(明細書第7頁〜第8頁) 特開2003−85099号公報(明細書第22頁〜第24頁)
ところで、電子メールのテキストは、しばしば行単位で引用され、そのために引用部分の冒頭が引用元の電子メールにおけるある文の途中から始まっていたり、末尾が文の途中で終わっていたりすることが少なくない。このような引用の例を図22に示す。
図22において、メール文800〜802は、2人の人物間における一連のメールのやりとりを表している。最初のメール文800から、文章の途中の一部分である「どのような資料を用意すれば」の部分だけが引用されて、返信メール文801が書かれ、さらに返信メール文801の先頭から3行目、7行目、8行目、11行目を引用して、再返信メール文802が書かれている。それぞれの引用部分は、完全な文章にはなっておらず、引用元のメールから単純に行単位の引用を行っている。このような引用を行うと、引用文は、しばしば元の文章から文頭や文末の部分が欠落したものになる。
しかしながら、上記した従来技術では、このような不完全な文章の読み上げを考慮しておらず、不完全な文章を完全なものとして読み上げることによって、ユーザの混乱を招いてしまうという問題がある。
また、文章が不完全であることによって言語的解析処理が失敗するため、不自然な韻律が付与されて合成音の品質を低下させてしまうという問題もある。
一方、このような文頭もしくは文末の意味をなさない不完全な部分は、元々読み上げの重要性が低い部分であると考えられるため、必ずしも全ての文字が聞き取れるように読み上げる必要は無いといえる。
そこで、本発明は、かかる問題点および事情に鑑みてなされたものであり、読み上げ対象の文章が不完全であることに起因するユーザの混乱や合成音の品質劣化を防止し、ユーザにとって理解しやすい読み上げ音声を提示可能な音声合成装置を提供することを目的とする。
上記目的を達成するために、本発明に係る音声合成装置は、入力されたテキスト情報に対応する合成音を生成する音声合成装置であって、前記テキスト情報のうち、文字列の欠落による言語的に不完全な部分である不完全部分を検出する不完全部分検出手段と、前記検出された不完全部分において欠落している文字列を補完する補完手段と、前記補完された後のテキスト情報に基づいて、合成音を生成する音声合成手段とを備えることを特徴とする。
これによって、文章を構成する文字列の一部に欠落が生じているために、言語的に不完全となっている文章であっても、その欠落を補完して合成音を生成するので、生成される合成音には、自然な韻律が付与されることとなり、ユーザの混乱や合成音の品質劣化を防止することができる。
ここで、前記音声合成装置は、さらに、前記不完全部分検出手段において検出された不完全部分に対応する合成音に、所定の音響効果を加える音響効果付加手段を備え、前記音響効果付加手段は、前記不完全部分検出手段において検出された不完全部分に対応する合成音の聴覚的明暸度を下げる不完全部分不明暸化部を備える。
この構成によれば、言語的に不完全な部分の読み上げ音声を不明瞭にするので、ユーザに、読み上げの重要性が低い部分を容易に理解させることができる音声合成装置が実現される。
なお、本発明は、このような音声合成装置として実現することができるだけでなく、このような音声合成装置が備える特徴的な手段をステップとする音声合成方法として実現してもよく、それらのステップをパソコンなどのコンピュータで実現させるためのプログラムとして実現してもよい。また、そのようなプログラムをCD−ROMなどの記録媒体や、インターネットに代表される通信媒体を通じて配信できることは言うまでもない。
以上説明したように、本発明に係る音声合成装置によれば、文章を構成する文字列の一部に欠落が生じているために、言語的に不完全となっている文章に対して、その欠落を解消することによって音声合成処理を失敗させないようにしたり、その欠落によって音声合成処理が失敗する部分をあえて不明瞭に再生したりすることで、ユーザにとって理解しやすい読み上げ音声を提示することができる。
また、本来読み上げの重要性が低いと考えられる部分、すなわち、引用部分の冒頭にある文の先頭、もしくは末尾にある文の最後が不完全であれば、その部分の聴覚的明暸度を下げて、読み上げ音声を出力するので、これらの部分が比較的無意味であることをユーザに示し、誤った韻律や不完全な単語の読み上げにユーザの注意が引き付けられるのを防ぎつつ、その位置に何らかの無意味語があったという情報を削除することなく提示することができる。
図1は、実施の形態1に係る音声合成装置の機能的な構成を示すブロック図である。
図2は、引用構造解析部および電子メールテキスト整形部の動作を説明するための図である。
図3は、不完全部分検出部が行う処理の概要を説明するための図である。
図4は、言語解析部の動作例を説明するための図である。
図5は、韻律生成部の動作例を説明するための図である。
図6は、素片選択部、素片結合部および不完全部分不明瞭化部の動作例を説明するための図である。
図7は、合成音レコード列の概略図である。
図8は、不完全部分検出部が補完を行わない場合に得られる検出結果の一例を示す図である。
図9は、不完全部分不明暸化部に入力される合成音レコード列の例を示す図である。
図10は、不完全部分不明瞭化部によるフェードイン処理の例を示す概略図である。
図11は、実施の形態2に係る音声合成装置の機能的な構成を示すブロック図である。
図12は、実施の形態3に係る音声合成装置の機能的な構成を示すブロック図である。
図13は、素片選択部、不完全部分不明暸化部および素片結合部の動作例を説明するための図である。
図14は、実施の形態4に示される音声合成装置の構成を示すブロック図である。
図15は、メッセージテキストおよびメッセージログの例を示す概略図である。
図16は、引用構造解析部およびメッセージテキスト整形部の動作を示す概略図である。
図17は、不完全部分検出部の動作を示す概略図である。
図18は、実施の形態5に係る音声合成装置の機能的な構成を示すブロック図である。
図19は、実施の形態6に係る音声合成装置の機能的な構成を示すブロック図である。
図20は、掲示板メッセージテキスト抽出部の動作例を説明するための図である。
図21は、掲示板メッセージテキスト整形部の動作例を説明するための図である。
図22は、本発明の解決課題に示される、本発明が対象とするテキストの例を示す図である。
符号の説明
10、20、30、40、50、60 音声合成装置
100 電子メールテキスト
101 引用構造解析部
102 電子メールテキスト整形部
103 不完全部分検出部
104、104a、104b 音声合成部
105 不完全部分不明瞭化部
106 スピーカ装置
107 メールボックス
200、1100、1600 引用構造解析済みテキスト
201、1101、1601 整形済みテキスト
300 不完全部分抽出済みテキスト
301 過去の電子メールテキスト
400 合成音レコード列
401 合成音レコード
402 合成音レコードヘッダ
600a 引用レベル0の合成音
600b 600cに対する補完部分の合成音
600c 引用レベル1の合成音
601 フェーダ部
602 ミキサ部
603 出力音声
700 波形生成部
702 音声素片パラメータデータベース
800 メール文
801 返信メール文
802 再返信メール文
900 チャットメッセージテキスト
902 メッセージテキスト整形部
903 メッセージログ
1200 不完全部分検出済みテキスト
1300 ニューステキスト
1301 ニューステキスト整形部
1302 既読ニュースログ
1303 ニュースクライアント
1304 ネットワーク
1305 ニュースサーバ
1306 全ニュースログ
1400 掲示板メッセージテキスト
1401 掲示板メッセージログ
1402 掲示板メッセージテキスト抽出部
1403 掲示板メッセージテキスト整形部
1500 分割済み掲示板メッセージテキスト
1700 言語処理部
1701 素片選択部
1702、1702a、1702b 音声素片データベース
1703 素片結合部
1704 韻律生成部
1800 音素表記テキスト
1900 韻律付き音素表記テキスト
以下、本発明の実施の形態について図面を用いて詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係る音声合成装置の機能的な構成を示すブロック図である。
本実施の形態1に係る音声合成装置10は、電子メールによる通信内容であるテキストを取得し、そのテキストに対応する合成音を生成して出力する装置であり、電子メールのテキストに含まれる引用部分に現れる不完全な文を自然に読み上げるものである。この音声合成装置10は、前記テキストの不完全部分に対応して、聴覚的明瞭度を下げた合成音を出力することによって、聴覚的明暸度を下げない場合に比べてより自然な聴感を利用者に与えることを最大の特徴とする。
図1に示すように、音声合成装置10は、入力される電子メールテキスト100の引用部分の構造を解析する引用構造解析部101と、解析された引用部分の構造を考慮した上で電子メールテキストを文単位に整形する電子メールテキスト整形部102と、過去に送受信した電子メールテキストを蓄積するための記憶領域を有するメールボックス107と、メールボックス107から、過去に送受信した電子メールテキストを参照して電子メールテキスト100内の不完全な文を検出し、その不完全な部分を特定する不完全部分検出部103と、テキストを入力として受け取り合成音を出力する音声合成部104と、音声合成部104が出力する合成音の中で不完全部分検出部103が検出した不完全な部分に対応する部分だけを聴覚的に不明暸化させる処理を施す不完全部分不明暸化部105と、生成された合成音を再生し出力するスピーカ装置106とを備えている。
ここで、音声合成部104は、さらに細かい機能ブロックに分割することができ、テキストを入力として、その言語解析結果を出力する言語処理部1700と、テキストの言語解析結果に基づいて韻律情報を生成する韻律生成部1704と、音声素片を格納する音声素片データベース(DB)1702と、韻律情報を含む言語解析結果を用いて、音声素片DB1702から適切な音声素片を選択する素片選択部1701と、素片選択部1701の選び出した音声素片をあらかじめ生成された韻律に合致するよう変形しつつ、前後の音声素片となめらかにつながるような変形も加えて連結し、入力されたテキストに対応する合成音声データを出力する素片結合部1703とを備えている。
引用構造解析部101は、電子メールテキスト100を簡単に解析して、引用の深さや段落の切れ目などに応じて整形を行う。
ここで、引用の深さとは、各文章の引用された回数を意味し、具体的には各行頭から連続する引用記号の数によって、引用構造解析部101は、各文章の引用の深さを識別する。
また、段落の切れ目とは、各文章の意味のつながりが途切れている箇所を意味し、同じ引用の深さの文章の中で、空行が存在したり他の行とインデントの量が違っている部分によって、引用構造解析部101は、段落の切れ目を識別する。なお、「(中略)」や「(略)」のように途中の文章が省略されていることを示唆する文字列や、縦方向の「…」を模した「:」のみの行など、空行やインデントの違い以外に段落の切れ目を示唆する文字列によって、引用構造解析部101は段落の切れ目を識別するとしてもよい。
電子メールテキスト整形部102は、引用構造解析部101による解析結果を元に、電子メールテキスト100を文単位に切り分けて整形する。この電子メールテキスト整形部102は、さらに、メールヘッダやシグネチャの要約も行う。
図2は、引用構造解析部101及び電子メールテキスト整形部102の動作を説明するための図である。
図2において、引用構造解析部101は、以下のように電子メールテキスト100を解析し、解析結果を表すタグを付加して引用構造解析済みテキスト200を生成する。
1)まず、電子メールテキスト100の先頭から、半角のマイナス記号2つで構成される行までをヘッダと識別して、その部分を<header>のタグで囲む。
2)電子メールテキスト100の終端から、2つ以上連続した記号文字のみで構成される行が最初に現れる場所を探し、検出された行が1)で識別したヘッダの終端でなく、さらにその検出された行から電子メールテキスト100の終端までの行数が10行以下であればこれをシグネチャ部分と識別して、<signature>のタグで囲む。
3)ヘッダ部分とシグネチャ部分の間にあるテキストの全てをメールの本文と識別して、<body>のタグで囲む。
4)<body>タグで囲まれたメールの本文を先頭から見て、終端の行を処理し終わるまで以下の5)〜10)の処理を繰り返す。
5)現在の行の先頭にある引用記号の数を数え、引用記号の数のタグで置換する。例えば、引用記号が1つある場合は<1>、2つある場合は<2>、引用記号が無い(引用部分でない)場合は<0>を引用記号の代わりに付与する。ただし、この時点では、まだタグを閉じない。以下、この引用記号の数のタグを「引用タグ」と記述し、引用記号の数を引用レベルと記述する。
6)現在の行が電子メールテキスト最後の行であるか、次の行以降がシグネチャ部分であれば、引用タグを閉じて終了する。例えば、現在の行が引用部分でなければ、行末に</0>を追加してこのアルゴリズムを終了する。
7)次の行へと読み進める。
8)直前の行と現在の行の引用記号の数が違うか、現在の行が空行であるか、現在の行が「(中略)」や「:」などの元の文の省略を意味する文字列であるか、現在の行と直前の行のインデントの数が違う場合、10)へ進む。
9)行頭の引用記号を削除して、6)へ進む。
10)直前の行を引用タグで閉じて、5)へ進む。
以上、1)〜10)の手順によって生成される引用構造解析済みテキスト200は、次のようなものである。
・<header>タグで囲まれた部分に、元の電子メールテキスト100のヘッダ部分が入っている。
・<signature>タグで囲まれた部分に、元の電子メールテキスト100のシグネチャ部分が入っている。
・<body>タグで囲まれた部分に、元の電子メールテキスト100の本文部分が入っている。
・本文部分は、段落ごとに引用タグで囲まれている。また、引用タグによって引用の深さが分かる。
さらに、図2において、電子メールテキスト整形部102は、以下に説明するように引用構造解析済みテキスト200を処理し、整形済みテキスト201を生成する。
1)<header>タグで囲まれた部分を要約し、読み上げやすい文章にする。例えば、メールの差出人を表すFromフィールドと表題を表すSubjectフィールドのみを取り出して、「○○さんより、××というメールです」という文章に変換する。ただし、この段階では、後の不完全部分検出部103における処理に備えて、電子メールのスレッド構造を表すIn−Reply−ToフィールドやReferencesフィールドの内容は、削除せずに残しておくことが望ましい。
2)<signature>タグで囲まれた部分を要約し、読み上げやすい文章にする。もしくは、単純に削除してしまっても良い。
3)<body>タグで囲まれた部分に関して、各引用タグ内の文章から改行や空白文字を削除して一行のテキストにした上、句点で文を切り分ける。
不完全部分検出部103は、電子メールテキスト整形部102によって生成された整形済みテキスト201を受け取り、メールボックス107に蓄積されている、過去に送受信した電子メールと照合を行って、引用レベルが1以上の各引用タグ内の先頭及び末尾の文が最初に現れる電子メールを探し、引用文が完全であったかどうか、即ち各引用文が引用元の文に対して文字列の欠落が無いかどうかを文字列マッチングにより判定する。さらに、引用文が不完全であった場合には、元の完全な文で置換を行った上で、元の完全な文のうち、どの部分が引用文に含まれているかを識別可能にする。
図3は、不完全部分検出部103が行う処理の概要を説明するための図である。図3において、不完全部分検出部103は、以下に説明するような処理を行う。
1)ヘッダ部分のIn−Reply−ToフィールドやReferencesフィールドに書かれたメッセージIDを参照して、メッセージIDの一致する過去の電子メールテキスト301をメールボックス107から全て取得する。さらに、それらの電子メールテキスト301のIn−Reply−ToフィールドやReferencesフィールドを参照し、同一スレッドの過去の電子メールテキスト301を再帰的に全て取得する。
2)取得した過去の電子メールテキスト301から、ヘッダ部分、シグネチャ部分、引用部分を全て取り除く。さらに、本文部分からも改行や空白文字を全て取り除いて文字列マッチングに備える。
3)本文部分の各引用タグ内の先頭及び末尾の文について、それが引用レベル0で現れる最初の電子メールテキスト301を、文字列マッチングによって検索する。
4)3)でマッチした文字列が文の一部であれば、過去の電子メールテキスト301に含まれる元の完全な文で整形済みテキスト201の不完全な文を置換する。さらに、整形済みテキスト201に含まれていなかった部分、即ち過去の電子メールテキスト301から補完された部分を<c>というタグで囲んで区別できるようにしておく。
5)本文部分の全ての引用タグについて、3)〜4)の処理を繰り返す。
6)ヘッダ部分からIn−Reply−ToフィールドとReferencesフィールドを削除する。
以上、1)〜5)の手順によって生成される不完全部分検出済みテキスト300は次のようなものである。
・<header>タグで囲まれた部分に、元の電子メールテキスト100のヘッダ部分が要約されて入っている。
・<signature>タグで囲まれた部分に、元の電子メールテキスト100のシグネチャ部分が要約されて入っている。
・<body>タグで囲まれた部分に、元の電子メールテキスト100の本文部分が入っている。
・本文部分は、段落ごとに引用タグで囲まれており、引用タグによって引用の深さが分かる。さらに、
・本文部分の文は、全て引用による文字列の欠落が無い完全な文であり、元の電子メールテキスト100に含まれる引用文が不完全な文であった場合は、過去の送受信メールから補完された部分だけが<c>タグで囲まれて区別されている。
音声合成部104は、このようにして生成された不完全部分検出済みテキスト300を先頭から一文ずつ処理して、合成音を生成し出力する。このとき、各文において<c>タグで囲まれている部分があれば、それがどの部分か判別可能な形式で出力を行う。
音声合成部104の内部では、次のような処理が行われる。
まず、図4に示されるように、不完全部分検出部の生成した不完全部分検出済みテキスト300は言語処理部1700によって処理され、音素表記テキスト1800が生成される。この音素表記テキスト1800は、不完全部分検出済みテキスト300の漢字仮名混じり文を音素表記に変換したものであり、言語解析の結果として得られるアクセント情報や構文情報も含めておくことによって合成音の品質を向上させることも可能であるが、図4では、簡単のため音素表記のみを示している。
次に、図5に示されるように、韻律生成部1704は、生成された音素表記テキスト1800に基づいて、各音素の継続時間、時間的中心位置における基本周波数、および、パワー値を計算して、韻律付き音素表記テキスト1900を素片選択部1701に出力する。図4と同じく、図5でも簡単のため言語解析の結果として得られる構文情報等が音素表記テキスト1800及び韻律付き音素表記テキスト1900の説明図から省略されているが、実際にはそのようなデータを含めておくことで、素片選択部1701による音声素片選択処理をより高い精度で行うことができるようになるため望ましい。
次に、図6に示されるように、素片選択部1701は、韻律生成部1704から取得した韻律付き音素表記テキスト1900の情報に基づいて、最適な音声素片データを音声素片DB1702より取得する。典型的な構成としては、音声素片DB1702は、1音素単位で分割された音声波形データを各音声素片として格納しており、これらの音声素片にはあらかじめ分析された継続時間、基本周波数、パワー値、および、当該音声素片の録音時に用いられた文章における構文情報等が付加されていて、素片選択部1701は、それらの情報を元に、言語処理部1700及び韻律生成部1704の出力内容に最も近い音声素片を選択するようにする。
素片結合部1703は、素片選択部1701から出力される音声素片を順番に受け取り、各音声素片の継続時間、基本周波数、および、パワー値を変形することで、あらかじめ計算された韻律への合わせ込みを行い、さらに各音声素片が前後の音声素片と滑らかに繋がるように変形を行い、音声合成部104の処理結果として不完全部分不明暸化部105に出力する。
図7は、音声合成部104が、不完全部分検出済みテキスト300から生成する合成音レコード列400の例を説明するための図である。
音声合成部104は、不完全部分検出済みテキスト300の各文について、全てのタグを取り去った上で音声合成を行い、生成された合成音データを<c>タグの位置で分割して、レコード401のリストとして出力する。レコード401は、各々が構造体の形式になっており、引用レベルを表すint値(引用レベル)と、当該レコードの音声データが<c>タグで囲まれた文字列に相当する部分であるかどうかを表すbool値(補完部分)と、当該レコードに含まれる合成音データ長を表すint値(音声データ長)と、当該レコードに含まれる合成音データ本体である、int値(音声データ)の配列より構成される。これらレコード401のリストの先頭には、後続文が幾つのレコードによって構成されるかを表すint値(文内レコード数)を持つレコードヘッダ402がある。
ここで、音声合成部104は、ヘッダ部分・本文部分・シグネチャ部分に対し、それぞれ別々の声質で音声合成処理を行ってもよい。
また、音声合成部104は本文部分の各文の引用レベルによって合成音の声質を変えるようにしてもよい。例えば引用レベルが偶数の文は声質Aで音声合成を行い、引用レベルが奇数の文は声質Bで音声合成を行うことによって、それぞれの文が誰の発言であったのか分かりやすくなる。また、不完全部分検出部103によって引用元となる過去の電子メールテキスト301を検索する際に、差出人を表すFromフィールドの内容を引用タグに埋め込んでおき、引用タグに埋め込まれた差出人によって合成音の声質を変えるようにすることで、さらに分かりやすい読み上げを行うことができる。
続いて、不完全部分不明瞭化部105は、以上のように構成される合成音レコード列400を受け取り、次のような処理を行う。
1)レコードヘッダ402を読み、文内レコード数を得る。
2)1)で取得した文内レコード数の分だけ、以下の3)〜6)を繰り返す。
3)レコードを1つ読み込む。このレコードが不完全部分検出部103によって補完された部分でなければ、このレコードの音声データをそのまま出力して再度3)に戻る。一方、補完された部分であれば4)へ進む。
4)このレコードが文内の最初のレコードであれば、音声データの長さが2秒より長い場合、音声データを末尾の2秒分のみに短縮する。さらに短縮された音声データの音量を始端で0%、終端で100%のフェードインになるように変形する。一方、このレコードが文内の最後のレコードである場合は、音声データを先頭の2秒分のみに短縮し、同様にして短縮された音声データの音量を始端で100%、終端で0%のフェードアウトになるように変形する。
5)変形された音声データを出力し、3)へ進む。
以上、1)〜5)の手順で不完全部分不明瞭化部105によって出力される音声データは、次のような特徴を持つ。
・整形済みテキスト201に含まれる文章が、不足無く音声化されて含まれている。
・不完全部分検出部103によって整形済みテキスト201に追加された部分を利用して、整形済みテキスト201における不完全なテキストの先頭の欠落部分は最大2秒間のフェードインと共に再生を開始し、末尾の欠落部分では最大2秒間のフェードアウトを経て次の文章の再生に移行する。
以上のように本実施の形態1に係る音声合成装置10によれば、引用構造解析部101で電子メールテキスト100の構造を解析し、その結果を元に電子メールテキスト整形部102が読み上げに適した整形済みテキスト201を生成し、さらに、不完全部分検出部103によって不完全部分の検出と、不完全部分の補完処理が行われる。その結果、音声合成部104で、補完された元の完全な文に対して音声合成処理を行うことができるため、不自然な韻律によって聴取者であるユーザを混乱させてしまうことを避けることができる。また、補完された部分の音声に、不完全部分不明暸化部105でフェードイン・フェードアウト処理を施すことで、実際に電子メールテキスト100に引用されていた部分の読み上げを不足無く行いつつ、引用時に削られた部分があることを聴覚的にユーザに提示することができる。
なお、合成音レコード列400は少なくとも<c>タグで囲まれていない部分の音声を完全に含み、<c>タグで囲まれた部分の音声があれば、その合成音レコード列400内の位置が分かるような不完全部分ポインタ情報を含んでいれば、これと同等の処理を行うことが可能である。
また、不完全部分検出部103が、さらに高度な言語解析を行うことができ、引用文の先頭もしくは末尾にある形態素や文節が不完全になってしまっていることが検出できる場合、不完全になった形態素や文節を完全にする分だけの文字を補完して音声合成を行い、当該形態素や文節の部分の音声をフェードイン・フェードアウト等の手段によって不明瞭化するようにしてもよい。
また、テキストの不完全部分に対応して聴覚的明瞭度を下げた合成音を出力するという本発明の最大の特徴が単独で発揮されるよう、不完全になった形態素や文節の補完は行わず、不完全な形態素や文節の部分の音声のみを不明瞭化するに留めてもよい。この場合、不完全部分検出部103は、例えば引用部分の先頭にある文ではright−to−leftの形態素解析を行った上で文頭に現れた未知語を不完全部分とし、引用部分の末尾にある文ではleft−to−rightの形態素解析を行った上で文末に現れた未知語を不完全部分とすればよい。
図8に、不完全部分検出部103が整形済みテキスト201の補完を行わずに文節単位で不完全部分の検出のみを行った場合に得られる結果の一例を示す。図8に示される不完全部分検出済みテキスト300aは、不完全部分検出済みテキスト300(図3参照)と対比して、次のような特徴を持つ。
・文の先頭及び末尾における不完全部分が補完されていない。
・文の先頭及び末尾にもともと存在していて、かつ完全な文節をなしていないと判断された部分が<c>タグで囲まれて区別されている。
補完を行わずに不完全部分を検出するこのような構成は、不完全部分の補完に用いられるテキストが容易に取得できない場合(引用元のメールがメールボックス107に蓄積されていない場合はもちろん、例えば、ウェブページ、電子書籍、電子番組情報等のメール以外の種々の引用元から切り取られたテキストを読み上げる場合)に、特に好適である。
なお、ここまでの説明には、メールの引用部分の先頭及び末尾にテキストの不完全部分が生じる状況を一例として用いたが、利用者から指定されたテキストの一部分を読み上げる状況においても、テキストの不完全部分が生じることが考えられる。
そのような状況に対応するために、音声合成装置10に、さらに、テキストの一部分の指定を受け付ける部分指定受付部(不図示)を設け、前記不完全部分検出部103は、前記指定された部分の先頭及び終端の少なくとも一方において不完全部分を検出することが好ましい。この部分指定受付部は、情報端末装置にごく一般的に備えられるカーソルキーや入力ペンを用いて実現され、指定された部分は、従来広く行われているように、反転、点滅などによって表示されるとしてもよい。
また、不完全部分不明瞭化部105は、補完された部分の音声の代わりに、後続する音声が元の文章の途中から始まっていたり、先行する音声が文章の途中で終わっていたりすることを示唆する効果音を用いることにしてもよい。例えば、文の先頭の不完全部分に当たる音声を、ラジオのチューニング音(“キュイー”という音)と入れ替え、文の終端の不完全部分に当たる音声を、ホワイトノイズ(“ザー”という音)と入れ替えることによって、「(キュイー)は、10部ずつコピーを用意して(ザー)」というような音を作ることができる。
また、不完全部分不明瞭化部105は、TVやラジオのインタビュー音声などで、音声を途中から引用する場合によく行われるように、不明暸化された不完全部分を先行文・後続文に重ねて再生するような音声を出力してもよい。図9に示されるような合成音レコード列400が不完全部分不明瞭化部105に与えられた場合を例に挙げて、図10を参照しながら不完全部分不明瞭化部105における処理を以下説明する。
1)補完部分である「資料」の合成音600bの音量を、不完全部分不明瞭化部105が備えるフェーダ部601を用いて元の音量の10%に下げる。
2)同じくフェーダ部601を用いて、補完部分に後続する「は、10部ずつコピーを用意して」の合成音600cの先頭部分に対し、元の音量の10%から元の音量の100%まで1秒で変化するようなフェードイン処理を加える。
3)不完全部分不明暸化部105が備えるミキサ部602を用いて、補完部分である「資料」の合成音600bが、先行文である「第三チームの齋藤です」の合成音600aの終端に重なり、連続して「は、10部ずつコピーを用意して」の合成音600cが流れるようなミキシング処理及び連結処理を行い、出力音声603を生成する。本図では、合成音600aの処理結果は、出力音声603のaの区間に、合成音600bの処理結果は、aの区間と重なるbの区間に、合成音600cの処理結果は、a及びbに後続するcの区間に含まれる様子が示されている。
以上のような方法を用いることで、ユーザが既にTVやラジオのインタビュー音声などで馴染みのある手法での引用文読み上げが可能となる。
なお、不完全部分不明瞭化部105は、入力される音声の音量を操作するだけでなく、適切な割合でノイズ音をミキシングしてもよい。例えば上に挙げた処理の例において、あらかじめ所定の音量のホワイトノイズ音データを用意しておき、それを合成音600bに対し元の音量の90%で、合成音600cの先頭1秒部分に対して元の音量の90%から0%まで減少するようなミキシングを行なう。このような処理により、合成音600aの末尾に合成音600bが小さな音量かつ大きな割合のノイズと共にミキシングされ始め、合成音600a部分の再生が終了すると共に後続する合成音600cの音が段々大きくなり、ミキシングされたノイズの割合も小さくなっていくような音声を作成することができる。
また、不完全部分不明瞭化部105は、検出された不完全部分の音声を削除するようにしてもよい。不完全部分を削除することによって、引用元の文から不完全な引用がされていたということはユーザに伝わらなくなるが、ユーザは引用文の中から言語的に完全な部分だけを聞くことができるようになるため、理解しやすくなる。
また、不完全部分を削除する場合は、不完全部分の文字を不完全部分検出部103によって削除した上で、音声合成部104に合成音を生成させるようにしてもよい。このようにすると、元の完全な文の音声を生成した後に一部を削除するのと違い、あらかじめ一部を削除済みの文を完全な文として音声を生成するため、違う韻律になることが考えられる。しかし、音声合成部104の出力結果をそのままスピーカ装置106に再生させればよくなるため、不完全部分不明瞭化部105が不要となり、音声合成装置の構成を単純化することができるという利点を有する。
また、不完全部分の補完を行って完全な文にした後、不完全部分の不明瞭化処理を全く行わないようにしてもよい。この場合、ユーザの聞く音声は冗長なものとなるものの、ユーザが聞く文章は、常に欠落の無い完全なものであることが保証されるという利点を有する。
(実施の形態2)
次に、本発明の実施の形態2に係る音声合成装置について説明する。
本実施の形態2に係る音声合成装置は、前記実施の形態1に係る音声合成装置10における、音声合成部104及び不完全部分不明暸化部105に関する変形例である。
図11は、本実施の形態2に係る音声合成装置の機能的な構成を示すブロック図である。なお、実施の形態1と同じ構成は、同一の符号を用いて示し、その説明を省略する。
音声合成装置20における音声合成部104aは、音声波形データではなく音響特徴パラメータ列の形で音声素片を格納する音声素片パラメータデータベース(DB)702を備え、素片選択部1701が、この音声素片パラメータDB702に格納されている音声素片を選択し、素片結合部1703が、音声データの形式ではなく音声特徴パラメータの形式で合成音の出力を行う点で、上記実施の形態1と異なる。
また、この出力を音声の形式に変換するために、本実施の形態2に係る音声合成装置20は、音声特徴パラメータから音声波形を生成する波形生成部700を備える。波形生成部700の構成は、本装置が採用する音声特徴パラメータセットによって異なるが、例えば、ARX音声分析モデルに基づく方法(「大塚,粕谷,″音源パルス列を考慮した頑健なARX音声分析法″,日本音響学会誌,vol.58,no.7,386−397(2002)」参照。)を用いることができる。この場合、音声素片パラメータDB702内の各音声素片の音響特徴パラメータは、ARX音声分析モデルの音源・声道パラメータとなる。
この本実施の形態2に係る音声合成装置20によれば、不完全部分不明瞭化部105において、音声波形データではなく音声特徴パラメータ値に変更を加えることができるため、より柔軟に聴覚的明暸度を下げる処理を行なうことができるという効果を奏する。例えば、音声合成部104aが出力する音声特徴パラメータに音声のフォルマント強度を表すパラメータがある場合、フォルマント強度を下げることによって音韻性のはっきりしない、くぐもった声色に変形することができる。また、ここで、さらに高度な声質変換の技術を使用可能な場合は、ささやき声や、かすれ声に変換する等してもよい。
(実施の形態3)
続いて、本発明の実施の形態3に係る音声合成装置について説明する。
本実施の形態3に係る音声合成装置と前記実施の形態1との差異は、本実施の形態3では、音声の声質を通常の喋り方からささやき声にすることによって不完全部分の不明瞭化を行う点にある。
また、本実施の形態3に係る音声合成装置と前記実施の形態2との差異は、前記実施の形態2では音声合成部104aの出力した音響特徴パラメータ列を変形することによって音声をささやき声にする等の不明暸化処理を行うとしたが、本実施の形態3では、音声合成部が複数の音声素片データベース(DB)を備え、それらを切り替えて使うことによって通常の喋り方の声と、ささやき声とを使い分ける点にある。
図12は、本実施の形態3に係る音声合成装置の機能的な構成を示すブロック図である。なお、上記実施の形態1および2と同一の構成は、同一の符号を用いて示し、その説明を省略する。
まず、電子メールテキスト100、メールボックス107の役割と、引用構造解析部101、電子メールテキスト整形部102、不完全部分検出部103の動作は前記実施の形態1と同様である。
音声合成部104bは、不完全部分検出部103の処理結果を受け取り、合成音を生成してスピーカ装置106に再生出力させる。この構成では、不完全部分不明瞭化部105が音声合成部104の一部として働く点が前記実施の形態1と異なる。
ここで、図13を用いて、本実施の形態3の音声合成部104bにおける素片選択部1701、不完全部分不明暸化部105等の処理を説明する。
素片選択部1701は、韻律生成部1704から出力される韻律付き音素表記テキスト1900の情報を元に、最適な音声素片データを音声素片DB1702aまたは音声素片DB1702bより取得する。音声素片DB1702aは、通常の声質の音声素片を格納し、音声素片DB1702bは、ささやき声の音声素片を格納している。このように、音声素片を格納するデータベースは、少なくとも2種類が用意されており、素片選択部1701は、不完全部分不明暸化部105を通して、これら複数の音声素片DB1702aおよび1702bから最適な音声素片データを取得する。
不完全部分不明暸化部105は、選択しようとしている音素が不完全部分に含まれるものであれば、ささやき声の音声素片DB1702bから、それ以外の場合は通常の声質の音声素片DB1702aから素片選択部1701の要求に該当する音声素片データを読み出して素片選択部1701に渡す。
なお、不完全部分不明瞭化部105は、音声素片をいずれかの音声素片DB1702aおよび1702bから1つずつ選び出すだけでなく、複数の音声素片DB1702aおよび1702bから最適な音声素片データを1つずつ選択して、ミキシングを行うことによって選択した音声素片データの中間的な声質を持つ音声素片データを新たに生成することもできる。
さらに、前記実施の形態1において音量を制御してフェードイン・フェードアウト処理を行ったように、ミキシングの比率を制御することで音声の明暸さを連続的に変化させるようにしてもよい。
また、音声素片データを単純にミキシングするだけではなく、音声モーフィングと呼ばれる手法を用いることによってさらに良好な結果を得ることができる。なお、音声モーフィングの手法を用いた音声の声質制御手法は、例えば、特開平9−50295号公報や、「阿部,″基本周波数とスペクトルの漸次変形による音声モーフィング″,日本音響学会平成7年度秋季研究発表会講演論文集I,213−214(1995)」に開示されている。
以上の方法で音声素片の選択を行った後、前記実施の形態1と同様にして生成される音声データをスピーカ装置106で再生出力することにより、不完全部分の不明暸化を、ささやき声に声質を変更することによって行う音声合成装置が実現できる。
(実施の形態4)
さらに、本発明の実施の形態4に係る音声合成装置について、図14〜17を参照しながら説明する。
上記実施の形態1〜3では、テキスト情報として、電子メールによる通信内容であるテキストを扱う場合を説明したが、本実施の形態4では、テキスト情報として、チャットによる通信内容であるメッセージを扱う場合の音声合成装置について説明する。
図14は、本実施の形態4に係る音声合成装置の機能的な構成を示すブロック図である。なお、実施の形態1〜3と同じ構成は、同一の符号を用いて説明を省略する。
図14に示すように、本実施の形態4に係る音声合成装置40では、電子メールテキスト100の代わりにチャットのメッセージテキスト900を読み上げの対象とする。チャットメッセージテキスト900は、一般に電子メールテキストよりも単純な形式をしている。
例えば、図15に示されるように、チャットメッセージテキスト900としては、受信時刻とメッセージの送信者名に続いて、メッセージの内容が平文で書かれているような構成が考えられる。
そして、受信・送信したチャットメッセージテキスト900は、メッセージログ903に蓄積され、不完全部分検出部103から参照可能となっている。
引用構造解析部101は、前記実施の形態1と類似の方法を用いてチャットメッセージテキスト900の引用構造を解析する。図16を用いて、引用構造解析部101の処理動作を説明する。引用構造解析部101の処理動作は、例えば、以下のようにすればよい。
1)チャットメッセージの先頭から文字列を読み、[](角括弧)で囲まれた受信時刻と送信者名を得て、受信時刻を<time>タグで、送信者名を<sender>タグで囲って切り離す。
2)現在の行の先頭にある引用記号の数を数え、引用記号の数のタグで置換する。例えば、引用記号が1つある場合は<1>、2つある場合は<2>、引用記号が無い(引用部分でない)場合は<0>を引用記号の代わりに付与する。ただし、この時点ではまだタグを閉じない。以下、この引用記号の数のタグを「引用タグ」と記述し、引用記号の数を引用レベルと記述する。
3)現在の行がチャットメッセージテキスト900の最後の行であれば、引用タグを閉じて終了する。例えば、現在の行が引用部分でなければ、行末に</0>を追加してこのアルゴリズムを終了する。
4)次の行へと読み進める。
5)直前の行と現在の行の引用記号の数が違うか、現在の行が空行であるか、現在の行が「(中略)」や「:」などの元の文の省略を意味する文字列であるか、現在の行と直前の行のインデントの数が違う場合、7)へ進む。
6)行頭の引用記号を削り、3)へ進む。
7)直前の行を引用タグで閉じ、2)へ進む。
以上、1)〜7)の手順によって生成される引用構造解析済みテキスト1100は次のようなものである。
・メッセージテキストの頭に、<time>タグで囲まれた受信時刻情報と<sender>タグで囲まれた送信者名が存在し、その後に元のチャットメッセージテキスト900の本文部分が存在する。
・本文部分は、段落ごとに引用タグで囲まれている。また、引用タグによって引用の深さが分かる。
さらに、メッセージテキスト整形部902は、引用構造解析済みテキスト1100を処理し、整形済みテキスト1101を生成する。メッセージテキスト整形部902は、以下のようにして、整形済みテキスト1101を生成する。
1)<time>タグを破棄する。なお、受信時刻の読み上げを行う場合には残しておいてもよい。
2)本文部分に関して、各引用タグ内の文章から改行や空白文字を削って一行のテキストにした上、句点で文を切り分ける。
不完全部分検出部103は、メッセージテキスト整形部902によって生成された整形済みテキスト1101を受け取り、メッセージログ903に蓄積されている過去のチャットメッセージテキストの本文と照合を行って、引用レベルが1以上の各引用タグ内の先頭及び末尾の文が最初に現れるチャットメッセージを探し、引用文が完全であったかどうか、即ち各引用文が引用元の文に対して文字列の欠落が無いかどうかを文字列マッチングにより判定する。さらに、引用文が不完全であった場合には元の完全な文で置換を行った上で、元の完全な文のうち、どの部分が引用文に含まれているか識別可能にする。
本実施の形態4に係る音声合成装置40で、不完全部分検出部103が行う処理は、前記実施の形態1に記載の処理を簡略化したものである。本実施の形態4における、前記実施の形態1に記載の処理との相違点を以下に列挙する。
・本実施の形態4では、メッセージログ903に蓄積された過去のチャットメッセージテキストは単純なリスト構造をしているため、前記実施の形態1で行っていたスレッド構造の解析は不要である。最新のメッセージから遡って10個程度のチャットメッセージテキストに対して、本文部分の引用部分以外のテキストについて文字列マッチングにより引用元の文を検索すればよい。
・チャットメッセージの読み上げにおいては、電子メールよりも各メッセージの内容が短くかつメッセージの交換が頻繁であるため、「○○さんよりメッセージです」というような報知メッセージは冗長である。代わりに、各メッセージが誰からのものであるかを送信者ごとに合成音の声色を変えることで表現する。これは、例えばあらかじめ音声合成用の素片データベースを複数の声色用に作っておき、話者ごとに別の素片データベースを使用することによって実現できる。さらに、引用部分の声色も元の送信者の声色で読み上げを行うために、<c>タグの中に「sender=送信者」というプロパティを設けておき、元の不完全部分検出部がメッセージログ903から発見した、引用文の元のチャットメッセージテキストの送信者名を書き込んでおくようにすればよい。
音声合成部104は、このようにして生成された不完全部分検出済みテキスト1200を先頭から一文ずつ処理して、合成音を生成し、不完全部分不明暸化部105に出力する。合成音の声色はメッセージの送信者に特有に割り当てられたものを使用し、<c>タグの中にsenderプロパティがある場合はその送信者の声色を用いる。senderプロパティが無い場合、即ち引用元が見付からなかった場合は、今読み上げようとしているメッセージの送信者以外で、最後にメッセージを送信した送信者の声色を用いるとすればよい。
図17では、今読み上げようとしているメッセージの送信者がsuzukiで、suzuki以外の送信したメッセージで最新のものはsaitoのものなので、もし不完全部分検出済みテキスト1200の<c>タグにsenderプロパティが無かったとすると、<c>タグに囲まれた部分の合成音はsaitoに割り当てられた声色を用いることになる。
不完全部分不明瞭化部105は、前記実施の形態1と同様の処理を行えばよいので説明を省略する。
以上のような方法を用いることによって、ユーザにとって聞きやすく、かつ会話の流れを阻害しないようなチャットメッセージテキストの読み上げを行うことが可能な音声合成装置を実現することができる。
(実施の形態5)
続いて、本発明の実施の形態5に係る音声合成装置について説明する。
上記実施の形態1〜3では、テキスト情報として、電子メールテキストを扱う場合を説明し、上記実施の形態4では、テキスト情報として、チャットメッセージを扱う場合を説明したが、本実施の形態5では、テキスト情報として、ネットニュースによる通信内容である投稿メッセージを扱う場合の音声合成装置について説明する。
本実施の形態5に係る音声合成装置は、前記実施の形態1と、ほぼ同一の処理を行うものであるが、図18に示されるように、本実施の形態5に係る音声合成装置50と前記実施の形態1との構成上の差異は、入力の電子メールテキスト100がニューステキスト1300になっている点、電子メールテキスト整形部102がニューステキスト整形部1301になっている点、メールボックス107が既読ニュースログ1302になっている点、そして、不完全部分検出部103が既読ニュースログ1302に加え、ニュースクライアント1303及びネットワーク1304を通して接続できるニュースサーバ1305から全ニュースログ1306にもアクセスして、不完全部分の検出を行うことができる点にある。以下、本実施の形態5に係る音声合成装置50の、前記実施の形態1との動作上の差異について説明する。
ニューステキスト1300は、電子メールテキスト100と同じく、Fromフィールド・Subjectフィールド・In−Reply−Toフィールド・Referencesフィールド等によって構成され、「−−」(半角マイナス記号2つ)という行によって本文と分けられるヘッダ部分と、それに続く本文部分から成る。引用構造解析部101及びニューステキスト整形部1301は、前記実施の形態1における引用構造解析部101及び電子メールテキスト整形部102と同様の処理を行えばよい。
不完全部分検出部103は、既読ニュースログ1302からニューステキスト1300と同一スレッドの過去のニューステキストを取得して、前記実施の形態1と同様の処理によって引用文の引用元の文を検索する。ただし、ニューステキスト1300のヘッダ部分のReferencesフィールドに現れるニューステキストが既読ニュースログ1302内に存在しない場合は、ニュースクライアント1303を利用して、ネットワーク1304で接続されたニュースサーバ1305の持つ全ニュースログ1306から、該当するニューステキストを取得するようにしてもよい。ニューステキストの取得は、既存のニュースクライアントの動作と同様の手順によって行われる。
音声合成部104及び不完全部分不明暸化部105の動作は、前記実施の形態1と同様である。
以上の処理によって、前記実施の形態1と同様の効果を、ネットニューステキストの読み上げに際しても得ることができる。
(実施の形態6)
さらに続いて、本発明の実施の形態6に係る音声合成装置について説明する。
本実施の形態6では、テキスト情報として、ネットワーク上の掲示板への投稿メッセージを扱う場合の音声合成装置について説明する。
図19は、本実施の形態6に係る音声合成装置の機能的な構成を示すブロック図である。
前記実施の形態1〜5の場合と異なり、掲示板メッセージテキストは、それぞれのメッセージが分割された独立の構成を有していない。そのため、本実施の形態6に係る音声合成装置60では、読み上げ対象となる掲示板メッセージテキスト1400や、不完全部分検出部103が参照するための過去の各掲示板メッセージテキストを、その都度、掲示板メッセージテキストを格納する掲示板メッセージログ1401から抽出する必要がある。掲示板メッセージテキスト抽出部1402が、この抽出処理を行なう。以下では、掲示板メッセージテキスト抽出部1402の抽出処理の動作を、図20を用いて説明する。
図20の例に示されるように、掲示板メッセージログ1401は、WWWブラウザで閲覧可能なようにHTML(HyperText Markup Language)で記述されており、次のような形式をしている。
・全体が<html>タグで、ヘッダ部分が<head>タグで、本文部分が<body>タグで囲まれている。
・ヘッダ部分内の<title>タグで囲まれた中に、掲示板のタイトルが書かれている。
・本文部分内には<ul>タグがあり、各々の投稿が<li>タグによって列挙されている。
・各々の投稿は一行目に固定フォーマットで記事の連番、投稿者名、投稿時刻が記入されており、<br>タグによって改行された後、残りの部分にはこの投稿の本文が記述されている。
このような形式のHTMLドキュメントを、掲示板メッセージテキスト抽出部1402は次のように処理する。
1)<body>タグで囲まれた中の、さらに<ul>タグで囲まれた中のテキストを切り出す。
2)1)で切り出した範囲のテキストを、<li>タグの位置でそれぞれの投稿に分割する。
このようにして分割したそれぞれの投稿のテキストを、分割済み掲示板メッセージテキスト1500とする。この掲示板の最新メッセージを読み上げるときは、例えば次のようにすればよい。
1)掲示板メッセージテキスト抽出部1402が、読み上げ対象の掲示板メッセージテキスト1400として、分割済み掲示板メッセージテキスト1500から最新のメッセージを抽出し、引用構造解析部101に渡す。
2)引用構造解析部101は、掲示板メッセージテキスト1400の<body>タグで囲まれた部分を、前記実施の形態1と同様の方法で処理して引用タグを付与する。
3)掲示板メッセージテキスト整形部1403は、図21に示すように、2)で処理された結果として生成される引用構造解析済みテキスト1600の1行目から記事の連番と投稿者名を読み上げる文章を生成して<header>タグで囲み、2行目以降を<body>タグで囲んで整形済みテキスト1601とする。
4)不完全部分検出部103は、整形済みテキスト1601に含まれる引用文を分割済み掲示板メッセージテキスト1500の中の読み上げ対象の掲示板メッセージテキスト1400以前のものから前記実施の形態1と同様の方法で検索し、欠落した文字列の補完を行う。
5)音声合成部104及び不完全部分不明瞭化部105は、前記実施の形態1と同様の処理を行い、合成音の生成と再生を行う。
以上の処理によって、前記実施の形態1と同様の効果を、HTML形式で書かれた、WWW上の掲示板の読み上げに際しても得ることができる。
以上、本発明に係る音声合成装置について各実施の形態に基づいて説明した。
このように、本発明に係る音声合成装置は、テキストの入力を元に合成音声データを生成する音声合成部に加え、文章の不完全部分を検出することができる不完全部分検出部と、前記音声合成部の生成する音声データにおいて、前記不完全部分検出部が検出した不完全部分に対応する部分の聴覚的明暸度を下げる不完全部分不明暸化部を備えることを特徴とする。
すなわち、まず前記不完全部分検出部が、音声合成の元となる入力テキストのうち、言語的な不完全部分を解析して、その解析結果を前記音声合成部に送る。このとき、不完全部分検出部は、構文解析結果をも送るようにすれば、前記音声合成部が再度構文解析を行わずとも合成音の生成を行えるため望ましい。音声合成部は、前記入力テキストの言語的な解析結果を元にして合成音を生成し、もし不完全部分が存在する場合は、生成した合成音のどの部分が前記不完全部分に対応するかという不完全部分ポインタ情報をも出力して前記不完全部不明暸化部に送る。不完全部分不明瞭化部は、合成音の中で前記不完全部分ポインタ情報の示す部分の聴覚的明瞭度を下げる処理を行い、前記入力テキストの読み上げ音声データとして出力する。
これによって、言語的に意味のある部分を通常どおりに読み上げつつ、意味をなさない部分の音声の聴覚的明暸度を下げるので、ユーザの混乱を招くことを防止することができる。
ここで、前記音声合成部は、合成音そのものではなく、合成音を生成するために必要十分な音声特徴パラメータを出力するようにしてもよい。そのような音声特徴パラメータとは、例えばソース・フィルタ型音声生成モデルにおけるモデルパラメータや、LPCケプストラム係数と音源モデルパラメータのことである。このようにして、合成音データではなく、合成音データを生成する手前の音声特徴パラメータを前記不完全部分不明瞭化部による調整を可能にすることで、より柔軟に不完全部分の不明暸化処理を行うことができるようになる。
また、前記不完全部分検出部による言語解析処理の内容が、前記音声合成部が合成音を生成するために必要とする言語解析処理の内容を含む場合、前記音声合成部は、前記入力テキストと前記不完全部分検出部による言語解析結果を入力とするのではなく、前記不完全部分検出部が前記入力テキストを解析した結果得られる言語解析結果のみを入力としてもよい。
また、前記不完全部分検出部が前記音声合成部に言語解析結果を渡さない場合でも、前記音声合成部は、前記入力テキストに前記不完全部分の検出結果を埋め込んで音声合成部に渡すようにすることができる。例えば、入力テキスト内の不完全部分を全てタグで囲んだ上で音声合成部に渡すことで、音声合成部は入力テキストの情報と不完全部分の検出結果の両方を不完全部分検出部から得ることができる。これによって、音声合成部が別々に与えられる2種類の入力の同期を取る必要が無くなる。
また、前記不完全部分不明暸化部は、不完全部分の音声にノイズを重畳したり、不完全部分の音声の音量を小さくしたりといった音響効果を加えることによって不完全部分の音声の明瞭度を下げることができる。これにより、言語的に不完全であるために正確な読み上げが不可能な不完全部分が読み上げ対象のテキスト内に存在することをユーザに明示することができる。
また、前記不完全部分不明瞭化部は、音声の不明瞭化の度合いを時系列的に変化させるようにしてもよい。行頭の不完全部分については、音声の先頭で不明瞭化の度合いを最大にしておき、不完全部分の終端で不明瞭化の度合いが最小になるように、不明暸化の度合いを時系列的に減少させる。行末の不完全部分については、逆に不明瞭化の度合いを時系列的に増加させる。これによって、ユーザに、より自然に合成音を聞こえさせることができるようになる。
また、音声の不明暸化を行うのは必ずしも不完全部分だけでなくても良く、ある時定数を設けて、その時定数の間だけ音声を不明瞭化するようにしてもよいし、不完全部分を含めて少なくともその時定数の間は音声を不明瞭化するような処理を行ってもよい。不明瞭化の度合いを時系列的に変化させる場合、このような処理を行うことによって不完全部分の長さが短い場合でも不明暸化の度合いの変化が急激すぎないようにすることができ、聴感上の自然性をさらに高めることができる。
また、読み上げ対象のテキストがメール文である場合には、メール文の引用構造を解析して引用されたテキストを文単位で切り分ける引用構造解析部を用意しておき、さらに過去に送受信したメール文を蓄積したメールボックスと、メールボックスにアクセスして過去のメール文の中からある不完全な文を含む元の完全な文を検索することができる完全文検索部を用意することで、不完全な文を一旦元の完全な文で置き換えて正しく言語解析し、本来の正しい韻律で読み上げることができるようになる。
ここで、前記音声合成部は、前記完全文検索部が発見した元の完全な文を全て音声合成して出力しても良いし、元の完全な文の音声合成結果から、引用されたテキストの部分のみを出力するようにしても良い。また、あらかじめ所定の時定数を設けて、引用された文の不明暸化処理を受ける部分が最大でその時定数の長さになるように、元の完全な文の音声合成結果から切り出して出力するようにしても良い。
また、読み上げの対象があるテキストの一部であり、読み上げ対象のテキストを含む元の完全なテキストを取得することが可能な場合は、元の完全なテキストを取得する完全文取得部を用意することによって同様の効果を得られる。
なお、本発明は、これらの実施の形態に限定されるものではなく、その範囲を逸脱することなく本発明の趣旨に沿って様々の変形または修正が可能であることはいうまでもない。
本発明は、音声合成技術を用いて電子メール等のテキストデータを読み上げるテキスト読み上げアプリケーション等や、このようなアプリケーションを備えたパーソナルコンピュータ等に適用することができ、特に、読み上げの対象となる文章中に不完全な文が現れる可能性が高いテキストデータの読み上げ用途に対して有用である。
本発明は、テキストに対応する音声を合成して出力する音声合成装置に関し、特に、不完全な文章をも自然に読み上げるための音声合成装置に関する。
従来、所望のテキストに対する合成音を生成して出力する音声合成装置が提供されている。その中でも、応用分野として電子メールを読み上げるという用途があり、テキストで書かれた電子メールそのものを読む代わりに、電子メールの内容を合成音として聞き取るようにすることができる。
しかし、電子メールのテキストには、小説や新聞記事などのテキストと違い、例えば引用記号などのように、通常通りに読み上げることができない記号が、引用部分やシグネチャ部分などに含まれるため、このような部分を適切に処理して読み上げ可能な状態に修正する必要がある。このための技術として、例えば特許文献1及び特許文献2がある。
特許文献1の方式によれば、読み上げる必要が無い引用記号を除去することによって引用文の中身だけを読み上げたり、引用部分を全て削除したりすることによって引用部分の読み上げの困難さを回避することができる。
また、特許文献2の方式によれば、引用文の中身を蓄積済みの既読メールに含まれる文字列と照合し、引用文の中身が既読メールに含まれる場合のみ引用部分の削除を行うといった、より適切な処理を行うことができる。
特開平9−179719号公報(明細書第7頁〜第8頁)
特開2003−85099号公報(明細書第22頁〜第24頁)
ところで、電子メールのテキストは、しばしば行単位で引用され、そのために引用部分の冒頭が引用元の電子メールにおけるある文の途中から始まっていたり、末尾が文の途中で終わっていたりすることが少なくない。このような引用の例を図22に示す。
図22において、メール文800〜802は、2人の人物間における一連のメールのやりとりを表している。最初のメール文800から、文章の途中の一部分である「どのような資料を用意すれば」の部分だけが引用されて、返信メール文801が書かれ、さらに返信メール文801の先頭から3行目、7行目、8行目、11行目を引用して、再返信メール文802が書かれている。それぞれの引用部分は、完全な文章にはなっておらず、引用元のメールから単純に行単位の引用を行っている。このような引用を行うと、引用文は、しばしば元の文章から文頭や文末の部分が欠落したものになる。
しかしながら、上記した従来技術では、このような不完全な文章の読み上げを考慮しておらず、不完全な文章を完全なものとして読み上げることによって、ユーザの混乱を招いてしまうという問題がある。
また、文章が不完全であることによって言語的解析処理が失敗するため、不自然な韻律が付与されて合成音の品質を低下させてしまうという問題もある。
一方、このような文頭もしくは文末の意味をなさない不完全な部分は、元々読み上げの重要性が低い部分であると考えられるため、必ずしも全ての文字が聞き取れるように読み上げる必要は無いといえる。
そこで、本発明は、かかる問題点および事情に鑑みてなされたものであり、読み上げ対象の文章が不完全であることに起因するユーザの混乱や合成音の品質劣化を防止し、ユーザにとって理解しやすい読み上げ音声を提示可能な音声合成装置を提供することを目的とする。
上記目的を達成するために、本発明に係る音声合成装置は、入力されたテキスト情報に対応する合成音を生成する音声合成装置であって、前記テキスト情報のうち、文字列の欠落による言語的に不完全な部分である不完全部分を検出する不完全部分検出手段と、前記検出された不完全部分において欠落している文字列を補完する補完手段と、前記補完された後のテキスト情報に基づいて、合成音を生成する音声合成手段とを備えることを特徴とする。
これによって、文章を構成する文字列の一部に欠落が生じているために、言語的に不完全となっている文章であっても、その欠落を補完して合成音を生成するので、生成される合成音には、自然な韻律が付与されることとなり、ユーザの混乱や合成音の品質劣化を防止することができる。
ここで、前記音声合成装置は、さらに、前記不完全部分検出手段において検出された不完全部分に対応する合成音に、所定の音響効果を加える音響効果付加手段を備え、前記音響効果付加手段は、前記不完全部分検出手段において検出された不完全部分に対応する合成音の聴覚的明瞭度を下げる不完全部分不明瞭化部を備える。
この構成によれば、言語的に不完全な部分の読み上げ音声を不明瞭にするので、ユーザに、読み上げの重要性が低い部分を容易に理解させることができる音声合成装置が実現される。
なお、本発明は、このような音声合成装置として実現することができるだけでなく、このような音声合成装置が備える特徴的な手段をステップとする音声合成方法として実現してもよく、それらのステップをパソコンなどのコンピュータで実現させるためのプログラムとして実現してもよい。また、そのようなプログラムをCD−ROMなどの記録媒体や、インターネットに代表される通信媒体を通じて配信できることは言うまでもない。
以上説明したように、本発明に係る音声合成装置によれば、文章を構成する文字列の一部に欠落が生じているために、言語的に不完全となっている文章に対して、その欠落を解消することによって音声合成処理を失敗させないようにしたり、その欠落によって音声合成処理が失敗する部分をあえて不明瞭に再生したりすることで、ユーザにとって理解しやすい読み上げ音声を提示することができる。
また、本来読み上げの重要性が低いと考えられる部分、すなわち、引用部分の冒頭にある文の先頭、もしくは末尾にある文の最後が不完全であれば、その部分の聴覚的明瞭度を下げて、読み上げ音声を出力するので、これらの部分が比較的無意味であることをユーザに示し、誤った韻律や不完全な単語の読み上げにユーザの注意が引き付けられるのを防ぎつつ、その位置に何らかの無意味語があったという情報を削除することなく提示することができる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係る音声合成装置の機能的な構成を示すブロック図である。
本実施の形態1に係る音声合成装置10は、電子メールによる通信内容であるテキストを取得し、そのテキストに対応する合成音を生成して出力する装置であり、電子メールのテキストに含まれる引用部分に現れる不完全な文を自然に読み上げるものである。この音声合成装置10は、前記テキストの不完全部分に対応して、聴覚的明瞭度を下げた合成音を出力することによって、聴覚的明瞭度を下げない場合に比べてより自然な聴感を利用者に与えることを最大の特徴とする。
図1に示すように、音声合成装置10は、入力される電子メールテキスト100の引用部分の構造を解析する引用構造解析部101と、解析された引用部分の構造を考慮した上で電子メールテキストを文単位に整形する電子メールテキスト整形部102と、過去に送受信した電子メールテキストを蓄積するための記憶領域を有するメールボックス107と、メールボックス107から、過去に送受信した電子メールテキストを参照して電子メールテキスト100内の不完全な文を検出し、その不完全な部分を特定する不完全部分検出部103と、テキストを入力として受け取り合成音を出力する音声合成部104と、音声合成部104が出力する合成音の中で不完全部分検出部103が検出した不完全な部分に対応する部分だけを聴覚的に不明瞭化させる処理を施す不完全部分不明瞭化部105と、生成された合成音を再生し出力するスピーカ装置106とを備えている。
ここで、音声合成部104は、さらに細かい機能ブロックに分割することができ、テキストを入力として、その言語解析結果を出力する言語処理部1700と、テキストの言語解析結果に基づいて韻律情報を生成する韻律生成部1704と、音声素片を格納する音声素片データベース(DB)1702と、韻律情報を含む言語解析結果を用いて、音声素片DB1702から適切な音声素片を選択する素片選択部1701と、素片選択部1701の選び出した音声素片をあらかじめ生成された韻律に合致するよう変形しつつ、前後の音声素片となめらかにつながるような変形も加えて連結し、入力されたテキストに対応する合成音声データを出力する素片結合部1703とを備えている。
引用構造解析部101は、電子メールテキスト100を簡単に解析して、引用の深さや段落の切れ目などに応じて整形を行う。
ここで、引用の深さとは、各文章の引用された回数を意味し、具体的には各行頭から連続する引用記号の数によって、引用構造解析部101は、各文章の引用の深さを識別する。
また、段落の切れ目とは、各文章の意味のつながりが途切れている箇所を意味し、同じ引用の深さの文章の中で、空行が存在したり他の行とインデントの量が違っている部分によって、引用構造解析部101は、段落の切れ目を識別する。なお、「(中略)」や「(略)」のように途中の文章が省略されていることを示唆する文字列や、縦方向の「…」を模した「:」のみの行など、空行やインデントの違い以外に段落の切れ目を示唆する文字列によって、引用構造解析部101は段落の切れ目を識別するとしてもよい。
電子メールテキスト整形部102は、引用構造解析部101による解析結果を元に、電子メールテキスト100を文単位に切り分けて整形する。この電子メールテキスト整形部102は、さらに、メールヘッダやシグネチャの要約も行う。
図2は、引用構造解析部101及び電子メールテキスト整形部102の動作を説明するための図である。
図2において、引用構造解析部101は、以下のように電子メールテキスト100を解析し、解析結果を表すタグを付加して引用構造解析済みテキスト200を生成する。
1)まず、電子メールテキスト100の先頭から、半角のマイナス記号2つで構成される行までをヘッダと識別して、その部分を<header>のタグで囲む。
2)電子メールテキスト100の終端から、2つ以上連続した記号文字のみで構成される行が最初に現れる場所を探し、検出された行が1)で識別したヘッダの終端でなく、さらにその検出された行から電子メールテキスト100の終端までの行数が10行以下であればこれをシグネチャ部分と識別して、<signature>のタグで囲む。
3)ヘッダ部分とシグネチャ部分の間にあるテキストの全てをメールの本文と識別して、<body>のタグで囲む。
4)<body>タグで囲まれたメールの本文を先頭から見て、終端の行を処理し終わるまで以下の5)〜10)の処理を繰り返す。
5)現在の行の先頭にある引用記号の数を数え、引用記号の数のタグで置換する。例えば、引用記号が1つある場合は<1>、2つある場合は<2>、引用記号が無い(引用部分でない)場合は<0>を引用記号の代わりに付与する。ただし、この時点では、まだタグを閉じない。以下、この引用記号の数のタグを「引用タグ」と記述し、引用記号の数を引用レベルと記述する。
6)現在の行が電子メールテキスト最後の行であるか、次の行以降がシグネチャ部分であれば、引用タグを閉じて終了する。例えば、現在の行が引用部分でなければ、行末に</0>を追加してこのアルゴリズムを終了する。
7)次の行へと読み進める。
8)直前の行と現在の行の引用記号の数が違うか、現在の行が空行であるか、現在の行が「(中略)」や「:」などの元の文の省略を意味する文字列であるか、現在の行と直前の行のインデントの数が違う場合、10)へ進む。
9)行頭の引用記号を削除して、6)へ進む。
10)直前の行を引用タグで閉じて、5)へ進む。
以上、1)〜10)の手順によって生成される引用構造解析済みテキスト200は、次のようなものである。
・<header>タグで囲まれた部分に、元の電子メールテキスト100のヘッダ部分が入っている。
・<signature>タグで囲まれた部分に、元の電子メールテキスト100のシグネチャ部分が入っている。
・<body>タグで囲まれた部分に、元の電子メールテキスト100の本文部分が入っている。
・本文部分は、段落ごとに引用タグで囲まれている。また、引用タグによって引用の深さが分かる。
さらに、図2において、電子メールテキスト整形部102は、以下に説明するように引用構造解析済みテキスト200を処理し、整形済みテキスト201を生成する。
1)<header>タグで囲まれた部分を要約し、読み上げやすい文章にする。例えば、メールの差出人を表すFromフィールドと表題を表すSubjectフィールドのみを取り出して、「○○さんより、××というメールです」という文章に変換する。ただし、この段階では、後の不完全部分検出部103における処理に備えて、電子メールのスレッド構造を表すIn−Reply−ToフィールドやReferencesフィールドの内容は、削除せずに残しておくことが望ましい。
2)<signature>タグで囲まれた部分を要約し、読み上げやすい文章にする。もしくは、単純に削除してしまっても良い。
3)<body>タグで囲まれた部分に関して、各引用タグ内の文章から改行や空白文字を削除して一行のテキストにした上、句点で文を切り分ける。
不完全部分検出部103は、電子メールテキスト整形部102によって生成された整形済みテキスト201を受け取り、メールボックス107に蓄積されている、過去に送受信した電子メールと照合を行って、引用レベルが1以上の各引用タグ内の先頭及び末尾の文が最初に現れる電子メールを探し、引用文が完全であったかどうか、即ち各引用文が引用元の文に対して文字列の欠落が無いかどうかを文字列マッチングにより判定する。さらに、引用文が不完全であった場合には、元の完全な文で置換を行った上で、元の完全な文のうち、どの部分が引用文に含まれているかを識別可能にする。
図3は、不完全部分検出部103が行う処理の概要を説明するための図である。図3において、不完全部分検出部103は、以下に説明するような処理を行う。
1)ヘッダ部分のIn−Reply−ToフィールドやReferencesフィールドに書かれたメッセージIDを参照して、メッセージIDの一致する過去の電子メールテキスト301をメールボックス107から全て取得する。さらに、それらの電子メールテキスト301のIn−Reply−ToフィールドやReferencesフィールドを参照し、同一スレッドの過去の電子メールテキスト301を再帰的に全て取得する。
2)取得した過去の電子メールテキスト301から、ヘッダ部分、シグネチャ部分、引用部分を全て取り除く。さらに、本文部分からも改行や空白文字を全て取り除いて文字列マッチングに備える。
3)本文部分の各引用タグ内の先頭及び末尾の文について、それが引用レベル0で現れる最初の電子メールテキスト301を、文字列マッチングによって検索する。
4)3)でマッチした文字列が文の一部であれば、過去の電子メールテキスト301に含まれる元の完全な文で整形済みテキスト201の不完全な文を置換する。さらに、整形済みテキスト201に含まれていなかった部分、即ち過去の電子メールテキスト301から補完された部分を<c>というタグで囲んで区別できるようにしておく。
5)本文部分の全ての引用タグについて、3)〜4)の処理を繰り返す。
6)ヘッダ部分からIn−Reply−ToフィールドとReferencesフィールドを削除する。
以上、1)〜5)の手順によって生成される不完全部分検出済みテキスト300は次のようなものである。
・<header>タグで囲まれた部分に、元の電子メールテキスト100のヘッダ部分が要約されて入っている。
・<signature>タグで囲まれた部分に、元の電子メールテキスト100のシグネチャ部分が要約されて入っている。
・<body>タグで囲まれた部分に、元の電子メールテキスト100の本文部分が入っている。
・本文部分は、段落ごとに引用タグで囲まれており、引用タグによって引用の深さが分かる。さらに、
・本文部分の文は、全て引用による文字列の欠落が無い完全な文であり、元の電子メールテキスト100に含まれる引用文が不完全な文であった場合は、過去の送受信メールから補完された部分だけが<c>タグで囲まれて区別されている。
音声合成部104は、このようにして生成された不完全部分検出済みテキスト300を先頭から一文ずつ処理して、合成音を生成し出力する。このとき、各文において<c>タグで囲まれている部分があれば、それがどの部分か判別可能な形式で出力を行う。
音声合成部104の内部では、次のような処理が行われる。
まず、図4に示されるように、不完全部分検出部の生成した不完全部分検出済みテキスト300は言語処理部1700によって処理され、音素表記テキスト1800が生成される。この音素表記テキスト1800は、不完全部分検出済みテキスト300の漢字仮名混じり文を音素表記に変換したものであり、言語解析の結果として得られるアクセント情報や構文情報も含めておくことによって合成音の品質を向上させることも可能であるが、図4では、簡単のため音素表記のみを示している。
次に、図5に示されるように、韻律生成部1704は、生成された音素表記テキスト1800に基づいて、各音素の継続時間、時間的中心位置における基本周波数、および、パワー値を計算して、韻律付き音素表記テキスト1900を素片選択部1701に出力する。図4と同じく、図5でも簡単のため言語解析の結果として得られる構文情報等が音素表記テキスト1800及び韻律付き音素表記テキスト1900の説明図から省略されているが、実際にはそのようなデータを含めておくことで、素片選択部1701による音声素片選択処理をより高い精度で行うことができるようになるため望ましい。
次に、図6に示されるように、素片選択部1701は、韻律生成部1704から取得した韻律付き音素表記テキスト1900の情報に基づいて、最適な音声素片データを音声素片DB1702より取得する。典型的な構成としては、音声素片DB1702は、1音素単位で分割された音声波形データを各音声素片として格納しており、これらの音声素片にはあらかじめ分析された継続時間、基本周波数、パワー値、および、当該音声素片の録音時に用いられた文章における構文情報等が付加されていて、素片選択部1701は、それらの情報を元に、言語処理部1700及び韻律生成部1704の出力内容に最も近い音声素片を選択するようにする。
素片結合部1703は、素片選択部1701から出力される音声素片を順番に受け取り、各音声素片の継続時間、基本周波数、および、パワー値を変形することで、あらかじめ計算された韻律への合わせ込みを行い、さらに各音声素片が前後の音声素片と滑らかに繋がるように変形を行い、音声合成部104の処理結果として不完全部分不明瞭化部105に出力する。
図7は、音声合成部104が、不完全部分検出済みテキスト300から生成する合成音レコード列400の例を説明するための図である。
音声合成部104は、不完全部分検出済みテキスト300の各文について、全てのタグを取り去った上で音声合成を行い、生成された合成音データを<c>タグの位置で分割して、レコード401のリストとして出力する。レコード401は、各々が構造体の形式になっており、引用レベルを表すint値(引用レベル)と、当該レコードの音声データが<c>タグで囲まれた文字列に相当する部分であるかどうかを表すbool値(補完部分)と、当該レコードに含まれる合成音データ長を表すint値(音声データ長)と、当該レコードに含まれる合成音データ本体である、int値(音声データ)の配列より構成される。これらレコード401のリストの先頭には、後続文が幾つのレコードによって構成されるかを表すint値(文内レコード数)を持つレコードヘッダ402がある。
ここで、音声合成部104は、ヘッダ部分・本文部分・シグネチャ部分に対し、それぞれ別々の声質で音声合成処理を行ってもよい。
また、音声合成部104は本文部分の各文の引用レベルによって合成音の声質を変えるようにしてもよい。例えば引用レベルが偶数の文は声質Aで音声合成を行い、引用レベルが奇数の文は声質Bで音声合成を行うことによって、それぞれの文が誰の発言であったのか分かりやすくなる。また、不完全部分検出部103によって引用元となる過去の電子メールテキスト301を検索する際に、差出人を表すFromフィールドの内容を引用タグに埋め込んでおき、引用タグに埋め込まれた差出人によって合成音の声質を変えるようにすることで、さらに分かりやすい読み上げを行うことができる。
続いて、不完全部分不明瞭化部105は、以上のように構成される合成音レコード列400を受け取り、次のような処理を行う。
1)レコードヘッダ402を読み、文内レコード数を得る。
2)1)で取得した文内レコード数の分だけ、以下の3)〜6)を繰り返す。
3)レコードを1つ読み込む。このレコードが不完全部分検出部103によって補完された部分でなければ、このレコードの音声データをそのまま出力して再度3)に戻る。一方、補完された部分であれば4)へ進む。
4)このレコードが文内の最初のレコードであれば、音声データの長さが2秒より長い場合、音声データを末尾の2秒分のみに短縮する。さらに短縮された音声データの音量を始端で0%、終端で100%のフェードインになるように変形する。一方、このレコードが文内の最後のレコードである場合は、音声データを先頭の2秒分のみに短縮し、同様にして短縮された音声データの音量を始端で100%、終端で0%のフェードアウトになるように変形する。
5)変形された音声データを出力し、3)へ進む。
以上、1)〜5)の手順で不完全部分不明瞭化部105によって出力される音声データは、次のような特徴を持つ。
・整形済みテキスト201に含まれる文章が、不足無く音声化されて含まれている。
・不完全部分検出部103によって整形済みテキスト201に追加された部分を利用して、整形済みテキスト201における不完全なテキストの先頭の欠落部分は最大2秒間のフェードインと共に再生を開始し、末尾の欠落部分では最大2秒間のフェードアウトを経て次の文章の再生に移行する。
以上のように本実施の形態1に係る音声合成装置10によれば、引用構造解析部101で電子メールテキスト100の構造を解析し、その結果を元に電子メールテキスト整形部102が読み上げに適した整形済みテキスト201を生成し、さらに、不完全部分検出部103によって不完全部分の検出と、不完全部分の補完処理が行われる。その結果、音声合成部104で、補完された元の完全な文に対して音声合成処理を行うことができるため、不自然な韻律によって聴取者であるユーザを混乱させてしまうことを避けることができる。また、補完された部分の音声に、不完全部分不明瞭化部105でフェードイン・フェードアウト処理を施すことで、実際に電子メールテキスト100に引用されていた部分の読み上げを不足無く行いつつ、引用時に削られた部分があることを聴覚的にユーザに提示することができる。
なお、合成音レコード列400は少なくとも<c>タグで囲まれていない部分の音声を完全に含み、<c>タグで囲まれた部分の音声があれば、その合成音レコード列400内の位置が分かるような不完全部分ポインタ情報を含んでいれば、これと同等の処理を行うことが可能である。
また、不完全部分検出部103が、さらに高度な言語解析を行うことができ、引用文の先頭もしくは末尾にある形態素や文節が不完全になってしまっていることが検出できる場合、不完全になった形態素や文節を完全にする分だけの文字を補完して音声合成を行い、当該形態素や文節の部分の音声をフェードイン・フェードアウト等の手段によって不明瞭化するようにしてもよい。
また、テキストの不完全部分に対応して聴覚的明瞭度を下げた合成音を出力するという本発明の最大の特徴が単独で発揮されるよう、不完全になった形態素や文節の補完は行わず、不完全な形態素や文節の部分の音声のみを不明瞭化するに留めてもよい。この場合、不完全部分検出部103は、例えば引用部分の先頭にある文ではright−to−leftの形態素解析を行った上で文頭に現れた未知語を不完全部分とし、引用部分の末尾にある文ではleft−to−rightの形態素解析を行った上で文末に現れた未知語を不完全部分とすればよい。
図8に、不完全部分検出部103が整形済みテキスト201の補完を行わずに文節単位で不完全部分の検出のみを行った場合に得られる結果の一例を示す。図8に示される不完全部分検出済みテキスト300aは、不完全部分検出済みテキスト300(図3参照)と対比して、次のような特徴を持つ。
・文の先頭及び末尾における不完全部分が補完されていない。
・文の先頭及び末尾にもともと存在していて、かつ完全な文節をなしていないと判断された部分が<c>タグで囲まれて区別されている。
補完を行わずに不完全部分を検出するこのような構成は、不完全部分の補完に用いられるテキストが容易に取得できない場合(引用元のメールがメールボックス107に蓄積されていない場合はもちろん、例えば、ウェブページ、電子書籍、電子番組情報等のメール以外の種々の引用元から切り取られたテキストを読み上げる場合)に、特に好適である。
なお、ここまでの説明には、メールの引用部分の先頭及び末尾にテキストの不完全部分が生じる状況を一例として用いたが、利用者から指定されたテキストの一部分を読み上げる状況においても、テキストの不完全部分が生じることが考えられる。
そのような状況に対応するために、音声合成装置10に、さらに、テキストの一部分の指定を受け付ける部分指定受付部(不図示)を設け、前記不完全部分検出部103は、前記指定された部分の先頭及び終端の少なくとも一方において不完全部分を検出することが好ましい。この部分指定受付部は、情報端末装置にごく一般的に備えられるカーソルキーや入力ペンを用いて実現され、指定された部分は、従来広く行われているように、反転、点滅などによって表示されるとしてもよい。
また、不完全部分不明瞭化部105は、補完された部分の音声の代わりに、後続する音声が元の文章の途中から始まっていたり、先行する音声が文章の途中で終わっていたりすることを示唆する効果音を用いることにしてもよい。例えば、文の先頭の不完全部分に当たる音声を、ラジオのチューニング音(“キュイー”という音)と入れ替え、文の終端の不完全部分に当たる音声を、ホワイトノイズ(“ザー”という音)と入れ替えることによって、「(キュイー)は、10部ずつコピーを用意して(ザー)」というような音を作ることができる。
また、不完全部分不明瞭化部105は、TVやラジオのインタビュー音声などで、音声を途中から引用する場合によく行われるように、不明瞭化された不完全部分を先行文・後続文に重ねて再生するような音声を出力してもよい。図9に示されるような合成音レコード列400が不完全部分不明瞭化部105に与えられた場合を例に挙げて、図10を参照しながら不完全部分不明瞭化部105における処理を以下説明する。
1)補完部分である「資料」の合成音600bの音量を、不完全部分不明瞭化部105が備えるフェーダ部601を用いて元の音量の10%に下げる。
2)同じくフェーダ部601を用いて、補完部分に後続する「は、10部ずつコピーを用意して」の合成音600cの先頭部分に対し、元の音量の10%から元の音量の100%まで1秒で変化するようなフェードイン処理を加える。
3)不完全部分不明瞭化部105が備えるミキサ部602を用いて、補完部分である「資料」の合成音600bが、先行文である「第三チームの齋藤です」の合成音600aの終端に重なり、連続して「は、10部ずつコピーを用意して」の合成音600cが流れるようなミキシング処理及び連結処理を行い、出力音声603を生成する。本図では、合成音600aの処理結果は、出力音声603のaの区間に、合成音600bの処理結果は、aの区間と重なるbの区間に、合成音600cの処理結果は、a及びbに後続するcの区間に含まれる様子が示されている。
以上のような方法を用いることで、ユーザが既にTVやラジオのインタビュー音声などで馴染みのある手法での引用文読み上げが可能となる。
なお、不完全部分不明瞭化部105は、入力される音声の音量を操作するだけでなく、適切な割合でノイズ音をミキシングしてもよい。例えば上に挙げた処理の例において、あらかじめ所定の音量のホワイトノイズ音データを用意しておき、それを合成音600bに対し元の音量の90%で、合成音600cの先頭1秒部分に対して元の音量の90%から0%まで減少するようなミキシングを行なう。このような処理により、合成音600aの末尾に合成音600bが小さな音量かつ大きな割合のノイズと共にミキシングされ始め、合成音600a部分の再生が終了すると共に後続する合成音600cの音が段々大きくなり、ミキシングされたノイズの割合も小さくなっていくような音声を作成することができる。
また、不完全部分不明瞭化部105は、検出された不完全部分の音声を削除するようにしてもよい。不完全部分を削除することによって、引用元の文から不完全な引用がされていたということはユーザに伝わらなくなるが、ユーザは引用文の中から言語的に完全な部分だけを聞くことができるようになるため、理解しやすくなる。
また、不完全部分を削除する場合は、不完全部分の文字を不完全部分検出部103によって削除した上で、音声合成部104に合成音を生成させるようにしてもよい。このようにすると、元の完全な文の音声を生成した後に一部を削除するのと違い、あらかじめ一部を削除済みの文を完全な文として音声を生成するため、違う韻律になることが考えられる。しかし、音声合成部104の出力結果をそのままスピーカ装置106に再生させればよくなるため、不完全部分不明瞭化部105が不要となり、音声合成装置の構成を単純化することができるという利点を有する。
また、不完全部分の補完を行って完全な文にした後、不完全部分の不明瞭化処理を全く行わないようにしてもよい。この場合、ユーザの聞く音声は冗長なものとなるものの、ユーザが聞く文章は、常に欠落の無い完全なものであることが保証されるという利点を有する。
(実施の形態2)
次に、本発明の実施の形態2に係る音声合成装置について説明する。
本実施の形態2に係る音声合成装置は、前記実施の形態1に係る音声合成装置10における、音声合成部104及び不完全部分不明瞭化部105に関する変形例である。
図11は、本実施の形態2に係る音声合成装置の機能的な構成を示すブロック図である。なお、実施の形態1と同じ構成は、同一の符号を用いて示し、その説明を省略する。
音声合成装置20における音声合成部104aは、音声波形データではなく音響特徴パラメータ列の形で音声素片を格納する音声素片パラメータデータベース(DB)702を備え、素片選択部1701が、この音声素片パラメータDB702に格納されている音声素片を選択し、素片結合部1703が、音声データの形式ではなく音声特徴パラメータの形式で合成音の出力を行う点で、上記実施の形態1と異なる。
また、この出力を音声の形式に変換するために、本実施の形態2に係る音声合成装置20は、音声特徴パラメータから音声波形を生成する波形生成部700を備える。波形生成部700の構成は、本装置が採用する音声特徴パラメータセットによって異なるが、例えば、ARX音声分析モデルに基づく方法(「大塚,粕谷,"音源パルス列を考慮した頑健なARX音声分析法",日本音響学会誌,vol.58,no.7,386−397(2002)」参照。)を用いることができる。この場合、音声素片パラメータDB702内の各音声素片の音響特徴パラメータは、ARX音声分析モデルの音源・声道パラメータとなる。
この本実施の形態2に係る音声合成装置20によれば、不完全部分不明瞭化部105において、音声波形データではなく音声特徴パラメータ値に変更を加えることができるため、より柔軟に聴覚的明瞭度を下げる処理を行なうことができるという効果を奏する。例えば、音声合成部104aが出力する音声特徴パラメータに音声のフォルマント強度を表すパラメータがある場合、フォルマント強度を下げることによって音韻性のはっきりしない、くぐもった声色に変形することができる。また、ここで、さらに高度な声質変換の技術を使用可能な場合は、ささやき声や、かすれ声に変換する等してもよい。
(実施の形態3)
続いて、本発明の実施の形態3に係る音声合成装置について説明する。
本実施の形態3に係る音声合成装置と前記実施の形態1との差異は、本実施の形態3では、音声の声質を通常の喋り方からささやき声にすることによって不完全部分の不明瞭化を行う点にある。
また、本実施の形態3に係る音声合成装置と前記実施の形態2との差異は、前記実施の形態2では音声合成部104aの出力した音響特徴パラメータ列を変形することによって音声をささやき声にする等の不明瞭化処理を行うとしたが、本実施の形態3では、音声合成部が複数の音声素片データベース(DB)を備え、それらを切り替えて使うことによって通常の喋り方の声と、ささやき声とを使い分ける点にある。
図12は、本実施の形態3に係る音声合成装置の機能的な構成を示すブロック図である。なお、上記実施の形態1および2と同一の構成は、同一の符号を用いて示し、その説明を省略する。
まず、電子メールテキスト100、メールボックス107の役割と、引用構造解析部101、電子メールテキスト整形部102、不完全部分検出部103の動作は前記実施の形態1と同様である。
音声合成部104bは、不完全部分検出部103の処理結果を受け取り、合成音を生成してスピーカ装置106に再生出力させる。この構成では、不完全部分不明瞭化部105が音声合成部104の一部として働く点が前記実施の形態1と異なる。
ここで、図13を用いて、本実施の形態3の音声合成部104bにおける素片選択部1701、不完全部分不明瞭化部105等の処理を説明する。
素片選択部1701は、韻律生成部1704から出力される韻律付き音素表記テキスト1900の情報を元に、最適な音声素片データを音声素片DB1702aまたは音声素片DB1702bより取得する。音声素片DB1702aは、通常の声質の音声素片を格納し、音声素片DB1702bは、ささやき声の音声素片を格納している。このように、音声素片を格納するデータベースは、少なくとも2種類が用意されており、素片選択部1701は、不完全部分不明瞭化部105を通して、これら複数の音声素片DB1702aおよび1702bから最適な音声素片データを取得する。
不完全部分不明瞭化部105は、選択しようとしている音素が不完全部分に含まれるものであれば、ささやき声の音声素片DB1702bから、それ以外の場合は通常の声質の音声素片DB1702aから素片選択部1701の要求に該当する音声素片データを読み出して素片選択部1701に渡す。
なお、不完全部分不明瞭化部105は、音声素片をいずれかの音声素片DB1702aおよび1702bから1つずつ選び出すだけでなく、複数の音声素片DB1702aおよび1702bから最適な音声素片データを1つずつ選択して、ミキシングを行うことによって選択した音声素片データの中間的な声質を持つ音声素片データを新たに生成することもできる。
さらに、前記実施の形態1において音量を制御してフェードイン・フェードアウト処理を行ったように、ミキシングの比率を制御することで音声の明瞭さを連続的に変化させるようにしてもよい。
また、音声素片データを単純にミキシングするだけではなく、音声モーフィングと呼ばれる手法を用いることによってさらに良好な結果を得ることができる。なお、音声モーフィングの手法を用いた音声の声質制御手法は、例えば、特開平9−50295号公報や、「阿部,"基本周波数とスペクトルの漸次変形による音声モーフィング",日本音響学会平成7年度秋季研究発表会講演論文集I,213−214(1995)」に開示されている。
以上の方法で音声素片の選択を行った後、前記実施の形態1と同様にして生成される音声データをスピーカ装置106で再生出力することにより、不完全部分の不明瞭化を、ささやき声に声質を変更することによって行う音声合成装置が実現できる。
(実施の形態4)
さらに、本発明の実施の形態4に係る音声合成装置について、図14〜17を参照しながら説明する。
上記実施の形態1〜3では、テキスト情報として、電子メールによる通信内容であるテキストを扱う場合を説明したが、本実施の形態4では、テキスト情報として、チャットによる通信内容であるメッセージを扱う場合の音声合成装置について説明する。
図14は、本実施の形態4に係る音声合成装置の機能的な構成を示すブロック図である。なお、実施の形態1〜3と同じ構成は、同一の符号を用いて説明を省略する。
図14に示すように、本実施の形態4に係る音声合成装置40では、電子メールテキスト100の代わりにチャットのメッセージテキスト900を読み上げの対象とする。チャットメッセージテキスト900は、一般に電子メールテキストよりも単純な形式をしている。
例えば、図15に示されるように、チャットメッセージテキスト900としては、受信時刻とメッセージの送信者名に続いて、メッセージの内容が平文で書かれているような構成が考えられる。
そして、受信・送信したチャットメッセージテキスト900は、メッセージログ903に蓄積され、不完全部分検出部103から参照可能となっている。
引用構造解析部101は、前記実施の形態1と類似の方法を用いてチャットメッセージテキスト900の引用構造を解析する。図16を用いて、引用構造解析部101の処理動作を説明する。引用構造解析部101の処理動作は、例えば、以下のようにすればよい。
1)チャットメッセージの先頭から文字列を読み、[](角括弧)で囲まれた受信時刻と送信者名を得て、受信時刻を<time>タグで、送信者名を<sender>タグで囲って切り離す。
2)現在の行の先頭にある引用記号の数を数え、引用記号の数のタグで置換する。例えば、引用記号が1つある場合は<1>、2つある場合は<2>、引用記号が無い(引用部分でない)場合は<0>を引用記号の代わりに付与する。ただし、この時点ではまだタグを閉じない。以下、この引用記号の数のタグを「引用タグ」と記述し、引用記号の数を引用レベルと記述する。
3)現在の行がチャットメッセージテキスト900の最後の行であれば、引用タグを閉じて終了する。例えば、現在の行が引用部分でなければ、行末に</0>を追加してこのアルゴリズムを終了する。
4)次の行へと読み進める。
5)直前の行と現在の行の引用記号の数が違うか、現在の行が空行であるか、現在の行が「(中略)」や「:」などの元の文の省略を意味する文字列であるか、現在の行と直前の行のインデントの数が違う場合、7)へ進む。
6)行頭の引用記号を削り、3)へ進む。
7)直前の行を引用タグで閉じ、2)へ進む。
以上、1)〜7)の手順によって生成される引用構造解析済みテキスト1100は次のようなものである。
・メッセージテキストの頭に、<time>タグで囲まれた受信時刻情報と<sender>タグで囲まれた送信者名が存在し、その後に元のチャットメッセージテキスト900の本文部分が存在する。
・本文部分は、段落ごとに引用タグで囲まれている。また、引用タグによって引用の深さが分かる。
さらに、メッセージテキスト整形部902は、引用構造解析済みテキスト1100を処理し、整形済みテキスト1101を生成する。メッセージテキスト整形部902は、以下のようにして、整形済みテキスト1101を生成する。
1)<time>タグを破棄する。なお、受信時刻の読み上げを行う場合には残しておいてもよい。
2)本文部分に関して、各引用タグ内の文章から改行や空白文字を削って一行のテキストにした上、句点で文を切り分ける。
不完全部分検出部103は、メッセージテキスト整形部902によって生成された整形済みテキスト1101を受け取り、メッセージログ903に蓄積されている過去のチャットメッセージテキストの本文と照合を行って、引用レベルが1以上の各引用タグ内の先頭及び末尾の文が最初に現れるチャットメッセージを探し、引用文が完全であったかどうか、即ち各引用文が引用元の文に対して文字列の欠落が無いかどうかを文字列マッチングにより判定する。さらに、引用文が不完全であった場合には元の完全な文で置換を行った上で、元の完全な文のうち、どの部分が引用文に含まれているか識別可能にする。
本実施の形態4に係る音声合成装置40で、不完全部分検出部103が行う処理は、前記実施の形態1に記載の処理を簡略化したものである。本実施の形態4における、前記実施の形態1に記載の処理との相違点を以下に列挙する。
・本実施の形態4では、メッセージログ903に蓄積された過去のチャットメッセージテキストは単純なリスト構造をしているため、前記実施の形態1で行っていたスレッド構造の解析は不要である。最新のメッセージから遡って10個程度のチャットメッセージテキストに対して、本文部分の引用部分以外のテキストについて文字列マッチングにより引用元の文を検索すればよい。
・チャットメッセージの読み上げにおいては、電子メールよりも各メッセージの内容が短くかつメッセージの交換が頻繁であるため、「○○さんよりメッセージです」というような報知メッセージは冗長である。代わりに、各メッセージが誰からのものであるかを送信者ごとに合成音の声色を変えることで表現する。これは、例えばあらかじめ音声合成用の素片データベースを複数の声色用に作っておき、話者ごとに別の素片データベースを使用することによって実現できる。さらに、引用部分の声色も元の送信者の声色で読み上げを行うために、<c>タグの中に「sender=送信者」というプロパティを設けておき、元の不完全部分検出部がメッセージログ903から発見した、引用文の元のチャットメッセージテキストの送信者名を書き込んでおくようにすればよい。
音声合成部104は、このようにして生成された不完全部分検出済みテキスト1200を先頭から一文ずつ処理して、合成音を生成し、不完全部分不明瞭化部105に出力する。合成音の声色はメッセージの送信者に特有に割り当てられたものを使用し、<c>タグの中にsenderプロパティがある場合はその送信者の声色を用いる。senderプロパティが無い場合、即ち引用元が見付からなかった場合は、今読み上げようとしているメッセージの送信者以外で、最後にメッセージを送信した送信者の声色を用いるとすればよい。
図17では、今読み上げようとしているメッセージの送信者がsuzukiで、suzuki以外の送信したメッセージで最新のものはsaitoのものなので、もし不完全部分検出済みテキスト1200の<c>タグにsenderプロパティが無かったとすると、<c>タグに囲まれた部分の合成音はsaitoに割り当てられた声色を用いることになる。
不完全部分不明瞭化部105は、前記実施の形態1と同様の処理を行えばよいので説明を省略する。
以上のような方法を用いることによって、ユーザにとって聞きやすく、かつ会話の流れを阻害しないようなチャットメッセージテキストの読み上げを行うことが可能な音声合成装置を実現することができる。
(実施の形態5)
続いて、本発明の実施の形態5に係る音声合成装置について説明する。
上記実施の形態1〜3では、テキスト情報として、電子メールテキストを扱う場合を説明し、上記実施の形態4では、テキスト情報として、チャットメッセージを扱う場合を説明したが、本実施の形態5では、テキスト情報として、ネットニュースによる通信内容である投稿メッセージを扱う場合の音声合成装置について説明する。
本実施の形態5に係る音声合成装置は、前記実施の形態1と、ほぼ同一の処理を行うものであるが、図18に示されるように、本実施の形態5に係る音声合成装置50と前記実施の形態1との構成上の差異は、入力の電子メールテキスト100がニューステキスト1300になっている点、電子メールテキスト整形部102がニューステキスト整形部1301になっている点、メールボックス107が既読ニュースログ1302になっている点、そして、不完全部分検出部103が既読ニュースログ1302に加え、ニュースクライアント1303及びネットワーク1304を通して接続できるニュースサーバ1305から全ニュースログ1306にもアクセスして、不完全部分の検出を行うことができる点にある。以下、本実施の形態5に係る音声合成装置50の、前記実施の形態1との動作上の差異について説明する。
ニューステキスト1300は、電子メールテキスト100と同じく、Fromフィールド・Subjectフィールド・In−Reply−Toフィールド・Referencesフィールド等によって構成され、「−−」(半角マイナス記号2つ)という行によって本文と分けられるヘッダ部分と、それに続く本文部分から成る。引用構造解析部101及びニューステキスト整形部1301は、前記実施の形態1における引用構造解析部101及び電子メールテキスト整形部102と同様の処理を行えばよい。
不完全部分検出部103は、既読ニュースログ1302からニューステキスト1300と同一スレッドの過去のニューステキストを取得して、前記実施の形態1と同様の処理によって引用文の引用元の文を検索する。ただし、ニューステキスト1300のヘッダ部分のReferencesフィールドに現れるニューステキストが既読ニュースログ1302内に存在しない場合は、ニュースクライアント1303を利用して、ネットワーク1304で接続されたニュースサーバ1305の持つ全ニュースログ1306から、該当するニューステキストを取得するようにしてもよい。ニューステキストの取得は、既存のニュースクライアントの動作と同様の手順によって行われる。
音声合成部104及び不完全部分不明瞭化部105の動作は、前記実施の形態1と同様である。
以上の処理によって、前記実施の形態1と同様の効果を、ネットニューステキストの読み上げに際しても得ることができる。
(実施の形態6)
さらに続いて、本発明の実施の形態6に係る音声合成装置について説明する。
本実施の形態6では、テキスト情報として、ネットワーク上の掲示板への投稿メッセージを扱う場合の音声合成装置について説明する。
図19は、本実施の形態6に係る音声合成装置の機能的な構成を示すブロック図である。
前記実施の形態1〜5の場合と異なり、掲示板メッセージテキストは、それぞれのメッセージが分割された独立の構成を有していない。そのため、本実施の形態6に係る音声合成装置60では、読み上げ対象となる掲示板メッセージテキスト1400や、不完全部分検出部103が参照するための過去の各掲示板メッセージテキストを、その都度、掲示板メッセージテキストを格納する掲示板メッセージログ1401から抽出する必要がある。掲示板メッセージテキスト抽出部1402が、この抽出処理を行なう。以下では、掲示板メッセージテキスト抽出部1402の抽出処理の動作を、図20を用いて説明する。
図20の例に示されるように、掲示板メッセージログ1401は、WWWブラウザで閲覧可能なようにHTML(HyperText Markup Language)で記述されており、次のような形式をしている。
・全体が<html>タグで、ヘッダ部分が<head>タグで、本文部分が<body>タグで囲まれている。
・ヘッダ部分内の<title>タグで囲まれた中に、掲示板のタイトルが書かれている。
・本文部分内には<ul>タグがあり、各々の投稿が<li>タグによって列挙されている。
・各々の投稿は一行目に固定フォーマットで記事の連番、投稿者名、投稿時刻が記入されており、<br>タグによって改行された後、残りの部分にはこの投稿の本文が記述されている。
このような形式のHTMLドキュメントを、掲示板メッセージテキスト抽出部1402は次のように処理する。
1)<body>タグで囲まれた中の、さらに<ul>タグで囲まれた中のテキストを切り出す。
2)1)で切り出した範囲のテキストを、<li>タグの位置でそれぞれの投稿に分割する。
このようにして分割したそれぞれの投稿のテキストを、分割済み掲示板メッセージテキスト1500とする。この掲示板の最新メッセージを読み上げるときは、例えば次のようにすればよい。
1)掲示板メッセージテキスト抽出部1402が、読み上げ対象の掲示板メッセージテキスト1400として、分割済み掲示板メッセージテキスト1500から最新のメッセージを抽出し、引用構造解析部101に渡す。
2)引用構造解析部101は、掲示板メッセージテキスト1400の<body>タグで囲まれた部分を、前記実施の形態1と同様の方法で処理して引用タグを付与する。
3)掲示板メッセージテキスト整形部1403は、図21に示すように、2)で処理された結果として生成される引用構造解析済みテキスト1600の1行目から記事の連番と投稿者名を読み上げる文章を生成して<header>タグで囲み、2行目以降を<body>タグで囲んで整形済みテキスト1601とする。
4)不完全部分検出部103は、整形済みテキスト1601に含まれる引用文を分割済み掲示板メッセージテキスト1500の中の読み上げ対象の掲示板メッセージテキスト1400以前のものから前記実施の形態1と同様の方法で検索し、欠落した文字列の補完を行う。
5)音声合成部104及び不完全部分不明瞭化部105は、前記実施の形態1と同様の処理を行い、合成音の生成と再生を行う。
以上の処理によって、前記実施の形態1と同様の効果を、HTML形式で書かれた、WWW上の掲示板の読み上げに際しても得ることができる。
以上、本発明に係る音声合成装置について各実施の形態に基づいて説明した。
このように、本発明に係る音声合成装置は、テキストの入力を元に合成音声データを生成する音声合成部に加え、文章の不完全部分を検出することができる不完全部分検出部と、前記音声合成部の生成する音声データにおいて、前記不完全部分検出部が検出した不完全部分に対応する部分の聴覚的明瞭度を下げる不完全部分不明瞭化部を備えることを特徴とする。
すなわち、まず前記不完全部分検出部が、音声合成の元となる入力テキストのうち、言語的な不完全部分を解析して、その解析結果を前記音声合成部に送る。このとき、不完全部分検出部は、構文解析結果をも送るようにすれば、前記音声合成部が再度構文解析を行わずとも合成音の生成を行えるため望ましい。音声合成部は、前記入力テキストの言語的な解析結果を元にして合成音を生成し、もし不完全部分が存在する場合は、生成した合成音のどの部分が前記不完全部分に対応するかという不完全部分ポインタ情報をも出力して前記不完全部不明瞭化部に送る。不完全部分不明瞭化部は、合成音の中で前記不完全部分ポインタ情報の示す部分の聴覚的明瞭度を下げる処理を行い、前記入力テキストの読み上げ音声データとして出力する。
これによって、言語的に意味のある部分を通常どおりに読み上げつつ、意味をなさない部分の音声の聴覚的明瞭度を下げるので、ユーザの混乱を招くことを防止することができる。
ここで、前記音声合成部は、合成音そのものではなく、合成音を生成するために必要十分な音声特徴パラメータを出力するようにしてもよい。そのような音声特徴パラメータとは、例えばソース・フィルタ型音声生成モデルにおけるモデルパラメータや、LPCケプストラム係数と音源モデルパラメータのことである。このようにして、合成音データではなく、合成音データを生成する手前の音声特徴パラメータを前記不完全部分不明瞭化部による調整を可能にすることで、より柔軟に不完全部分の不明瞭化処理を行うことができるようになる。
また、前記不完全部分検出部による言語解析処理の内容が、前記音声合成部が合成音を生成するために必要とする言語解析処理の内容を含む場合、前記音声合成部は、前記入力テキストと前記不完全部分検出部による言語解析結果を入力とするのではなく、前記不完全部分検出部が前記入力テキストを解析した結果得られる言語解析結果のみを入力としてもよい。
また、前記不完全部分検出部が前記音声合成部に言語解析結果を渡さない場合でも、前記音声合成部は、前記入力テキストに前記不完全部分の検出結果を埋め込んで音声合成部に渡すようにすることができる。例えば、入力テキスト内の不完全部分を全てタグで囲んだ上で音声合成部に渡すことで、音声合成部は入力テキストの情報と不完全部分の検出結果の両方を不完全部分検出部から得ることができる。これによって、音声合成部が別々に与えられる2種類の入力の同期を取る必要が無くなる。
また、前記不完全部分不明瞭化部は、不完全部分の音声にノイズを重畳したり、不完全部分の音声の音量を小さくしたりといった音響効果を加えることによって不完全部分の音声の明瞭度を下げることができる。これにより、言語的に不完全であるために正確な読み上げが不可能な不完全部分が読み上げ対象のテキスト内に存在することをユーザに明示することができる。
また、前記不完全部分不明瞭化部は、音声の不明瞭化の度合いを時系列的に変化させるようにしてもよい。行頭の不完全部分については、音声の先頭で不明瞭化の度合いを最大にしておき、不完全部分の終端で不明瞭化の度合いが最小になるように、不明瞭化の度合いを時系列的に減少させる。行末の不完全部分については、逆に不明瞭化の度合いを時系列的に増加させる。これによって、ユーザに、より自然に合成音を聞こえさせることができるようになる。
また、音声の不明瞭化を行うのは必ずしも不完全部分だけでなくても良く、ある時定数を設けて、その時定数の間だけ音声を不明瞭化するようにしてもよいし、不完全部分を含めて少なくともその時定数の間は音声を不明瞭化するような処理を行ってもよい。不明瞭化の度合いを時系列的に変化させる場合、このような処理を行うことによって不完全部分の長さが短い場合でも不明瞭化の度合いの変化が急激すぎないようにすることができ、聴感上の自然性をさらに高めることができる。
また、読み上げ対象のテキストがメール文である場合には、メール文の引用構造を解析して引用されたテキストを文単位で切り分ける引用構造解析部を用意しておき、さらに過去に送受信したメール文を蓄積したメールボックスと、メールボックスにアクセスして過去のメール文の中からある不完全な文を含む元の完全な文を検索することができる完全文検索部を用意することで、不完全な文を一旦元の完全な文で置き換えて正しく言語解析し、本来の正しい韻律で読み上げることができるようになる。
ここで、前記音声合成部は、前記完全文検索部が発見した元の完全な文を全て音声合成して出力しても良いし、元の完全な文の音声合成結果から、引用されたテキストの部分のみを出力するようにしても良い。また、あらかじめ所定の時定数を設けて、引用された文の不明瞭化処理を受ける部分が最大でその時定数の長さになるように、元の完全な文の音声合成結果から切り出して出力するようにしても良い。
また、読み上げの対象があるテキストの一部であり、読み上げ対象のテキストを含む元の完全なテキストを取得することが可能な場合は、元の完全なテキストを取得する完全文取得部を用意することによって同様の効果を得られる。
なお、本発明は、これらの実施の形態に限定されるものではなく、その範囲を逸脱することなく本発明の趣旨に沿って様々の変形または修正が可能であることはいうまでもない。
本発明は、音声合成技術を用いて電子メール等のテキストデータを読み上げるテキスト読み上げアプリケーション等や、このようなアプリケーションを備えたパーソナルコンピュータ等に適用することができ、特に、読み上げの対象となる文章中に不完全な文が現れる可能性が高いテキストデータの読み上げ用途に対して有用である。
図1は、実施の形態1に係る音声合成装置の機能的な構成を示すブロック図である。
図2は、引用構造解析部および電子メールテキスト整形部の動作を説明するための図である。
図3は、不完全部分検出部が行う処理の概要を説明するための図である。
図4は、言語解析部の動作例を説明するための図である。
図5は、韻律生成部の動作例を説明するための図である。
図6は、素片選択部、素片結合部および不完全部分不明瞭化部の動作例を説明するための図である。
図7は、合成音レコード列の概略図である。
図8は、不完全部分検出部が補完を行わない場合に得られる検出結果の一例を示す図である。
図9は、不完全部分不明瞭化部に入力される合成音レコード列の例を示す図である。
図10は、不完全部分不明瞭化部によるフェードイン処理の例を示す概略図である。
図11は、実施の形態2に係る音声合成装置の機能的な構成を示すブロック図である。
図12は、実施の形態3に係る音声合成装置の機能的な構成を示すブロック図である。
図13は、素片選択部、不完全部分不明瞭化部および素片結合部の動作例を説明するための図である。
図14は、実施の形態4に示される音声合成装置の構成を示すブロック図である。
図15は、メッセージテキストおよびメッセージログの例を示す概略図である。
図16は、引用構造解析部およびメッセージテキスト整形部の動作を示す概略図である。
図17は、不完全部分検出部の動作を示す概略図である。
図18は、実施の形態5に係る音声合成装置の機能的な構成を示すブロック図である。
図19は、実施の形態6に係る音声合成装置の機能的な構成を示すブロック図である。
図20は、掲示板メッセージテキスト抽出部の動作例を説明するための図である。
図21は、掲示板メッセージテキスト整形部の動作例を説明するための図である。
図22は、本発明の解決課題に示される、本発明が対象とするテキストの例を示す図である。
符号の説明
10、20、30、40、50、60 音声合成装置
100 電子メールテキスト
101 引用構造解析部
102 電子メールテキスト整形部
103 不完全部分検出部
104、104a、104b 音声合成部
105 不完全部分不明瞭化部
106 スピーカ装置
107 メールボックス
200、1100、1600 引用構造解析済みテキスト
201、1101、1601 整形済みテキスト
300 不完全部分抽出済みテキスト
301 過去の電子メールテキスト
400 合成音レコード列
401 合成音レコード
402 合成音レコードヘッダ
600a 引用レベル0の合成音
600b 600cに対する補完部分の合成音
600c 引用レベル1の合成音
601 フェーダ部
602 ミキサ部
603 出力音声
700 波形生成部
702 音声素片パラメータデータベース
800 メール文
801 返信メール文
802 再返信メール文
900 チャットメッセージテキスト
902 メッセージテキスト整形部
903 メッセージログ
1200 不完全部分検出済みテキスト
1300 ニューステキスト
1301 ニューステキスト整形部
1302 既読ニュースログ
1303 ニュースクライアント
1304 ネットワーク
1305 ニュースサーバ
1306 全ニュースログ
1400 掲示板メッセージテキスト
1401 掲示板メッセージログ
1402 掲示板メッセージテキスト抽出部
1403 掲示板メッセージテキスト整形部
1500 分割済み掲示板メッセージテキスト
1700 言語処理部
1701 素片選択部
1702、1702a、1702b 音声素片データベース
1703 素片結合部
1704 韻律生成部
1800 音素表記テキスト
1900 韻律付き音素表記テキスト