(57)【特許請求の範囲】
【請求項１】
取得したテキストの合成音声データを生成して音声再生手段で再生する音声合成装置であって、
前記テキストの先頭の断片文字列と、前記断片文字列に対応する第１の合成音声データを関連付けて記憶している記憶手段と、
前記取得したテキストの先頭からの長さが異なる複数の文字列からなる候補文字列群を出力する第１の手段と、
前記記憶手段を参照して、前記候補文字列群の長さの長い方の文字列から前記記憶手段の前記断片文字列に一致する文字列を検索し、一致した文字列に対応する第１の合成音声データを取得する第２の手段と、
前記第１の合成音声データを再生している間に、前記取得したテキストの前記第２の手段により検索された文字列より後の文字列に対応する第２の合成音声データを生成する第３の手段と、
前記第２の手段で検索された先頭の断片文字列に対応する前記記憶手段の第１の合成音声データと、前記第３の手段で生成された前記第２の合成音声データを再生出力する音声再生手段と、
を備えることを特徴とする音声合成装置。
【請求項２】
前記第３の手段は、
前記第２の合成音声データを生成するために用いる、テキストの音韻情報とその音韻の長さおよび高さとを少なくとも含む第２の合成音声構成情報を生成する第４の手段と、
前記第２の合成音声構成情報に基づいて前記第２の合成音声データを生成する第５の手段と
を備えることを特徴とする請求項１に記載の音声合成装置。
【請求項３】
前記記憶手段は、さらに、前記第１の合成音声データを生成したときに用いた、テキストの音韻情報とその音韻の長さおよび高さとを少なくとも含む第１の合成音声構成情報を前記テキストの文字列に関連付けて記憶しており、
前記第２の手段は、さらに、前記一致した文字列に関連付けられた前記第１の合成音声構成情報を、前記記憶手段から取得し、
前記第４の手段は、第２の手段から取得した前記第１の合成音声構成情報と前記第２の合成音声構成情報とを用いて、前記第２の合成音声データの再生音の高さを前記第１の合成音声データの再生音の高さに一致させ、前記第２の合成音声構成情報内の平均音韻時間長を前記第１の合成音声構成情報内の平均音韻時間長に一致させる
ことを特徴とする請求項２に記載の音声合成装置。
【請求項４】
前記第２の手段において前記先頭の文字列に一致する文字列を抽出できなかった場合、前記取得したテキストの文字列からテキストの先頭側の文字列を選択し、前記取得したテキストに対応する第３の合成音声データを生成し、前記第３の合成音声データから前記先頭側の文字列に対応する断片を切り出し、前記先頭側の文字列と前記第３の合成音声データの断片とを関連付けて、前記記憶手段に記憶する第６の手段
をさらに備えることを特徴とする請求項１ないし請求項３のいずれか一項に記載の音声合成装置。
【請求項５】
前記第６の手段は、前記先頭側の文字列の長さを、当該先頭側の文字列に対応する前記第３の合成音声データの断片の再生時間が所定時間以上となるように決定する
ことを特徴とする請求項４に記載の音声合成装置。
【請求項６】
取得したテキストに対応する合成音声データを生成して音声再生手段で再生する音声合成装置の音声合成方法であって、
前記音声合成装置は、
前記テキストの先頭の断片文字列と、前記断片文字列に対応する第１の合成音声データを関連付けて記憶している記憶手段と音声再生手段とを備え、
前記取得したテキストの先頭からの長さが異なる複数の文字列からなる候補文字列群を出力する第１のステップと、
前記記憶手段を参照して、前記候補文字列群の長さの長い方の文字列から前記記憶手段の前記断片文字列に一致する文字列を検索し、一致した文字列に対応する第１の合成音声データを取得し、取得した前記第１の合成音声データを前記音声再生手段に出力する第２のステップと、
前記音声再生手段が前記第１の合成音声データを再生している間に、前記第２のステップで検索したテキストの先頭の文字列より後の文字列に対応する第２の合成音声データの生成処理を開始して、生成した前記第２の合成音声データを前記音声再生手段に出力する第３のステップと、
を実行することを特徴とする音声合成方法。
【請求項７】
前記第３のステップは、
前記第２の合成音声データを生成するために用いる、テキストの音韻情報とその音韻の長さおよび高さとを少なくとも含む第２の合成音声構成情報を生成する第４のステップと、
前記第２の合成音声構成情報に基づいて前記第２の合成音声データを生成する第５のステップと
を備えることを特徴とする請求項６に記載の音声合成方法。
【請求項８】
前記記憶手段は、さらに、前記第１の合成音声データを生成したときに用いた、テキストの音韻情報とその音韻の長さおよび高さとを少なくとも含む第１の合成音声構成情報を前記テキストの文字列に関連付けて記憶しており、
前記第２のステップでは、さらに、前記一致した文字列に関連付けられた前記第１の合成音声構成情報を、前記記憶手段から取得し、
前記第４のステップでは、第２のステップから取得した前記第１の合成音声構成情報と前記第２の合成音声構成情報とを用いて、前記第２の合成音声データの再生音の高さを前記第１の合成音声データの再生音の高さに一致させ、前記第２の合成音声構成情報内の平均音韻時間長を前記第１の合成音声構成情報内の平均音韻時間長に一致させる
ことを特徴とする請求項７に記載の音声合成方法。
【請求項９】
前記第２のステップにおいて前記先頭の文字列に一致する文字列を抽出できなかった場合、前記取得したテキストの文字列からテキストの先頭側の文字列を選択し、前記取得したテキストに対応する第３の合成音声データを生成し、前記第３の合成音声データから前記先頭側の文字列に対応する断片を切り出し、前記先頭側の文字列と前記第３の合成音声データの断片とを関連付けて、前記記憶手段に記憶する第６のステップ
をさらに実行することを特徴とする請求項６ないし請求項８のいずれか一項に記載の音声合成方法。
【請求項１０】
前記第６のステップでは、前記先頭側の文字列の長さを、当該先頭側の文字列に対応する前記第３の合成音声データの断片の再生時間が所定時間以上となるように決定する
ことを特徴とする請求項９に記載の音声合成方法。
【請求項１１】
請求項６ないし請求項１０のいずれか一項に記載の音声合成方法を、コンピュータである前記音声合成装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力テキストに対応する音声を合成する音声合成装置、音声合成方法およびプログラムに関する。
【背景技術】
【０００２】
従来、テキストを音声に変換して読み上げるテキスト音声合成技術、および、それを利用したテキスト音声合成システムが開発されている（例えば、非特許文献１参照）。近年、障碍者や高齢者を対象としたユニバーサルデザインや、電子書籍の普及にともなって、音声合成技術のニーズが拡大しており、例えば、視覚障碍者向けのスクリーンリーダシステム、電子書籍の読み上げ機能等に応用されている。
【０００３】
視覚障碍者向けのスクリーンリーダシステムでは、ＰＣ（Personal Computer）の画面を音声で読み上げるが、ユーザは目的のメニュー、ボタンを、その読み上げ音声を頼りにカーソル移動していくことになる。そのため、すぐに次のメニューやボタンに移動できるように、その読み上げ音声をすぐに聞きたいという要望がある。また、読み上げ機能に関しては、電子書籍の読み上げに限られず、音声ニュースの読み上げにおいて、ユーザは聞きたいニュースでなければすぐに次のニュースに移動したいという要望がある。
【０００４】
それらの要望に応えるために、例えば、特許文献１では、文節の読み飛ばし、早送り、次の文を読む等の移動指示に対応できるようにするために、文章を幾つかに分割して分割テキストを生成し、読み飛ばしや早送りによって早く指定されそうな分割テキストの先頭に対して並列して音声合成処理を開始する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２９３１８７号公報
【非特許文献】
【０００６】
【非特許文献１】古井貞熙著、「ディジタル音声処理」、東海大学出版会、１９８５年９月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の技術においては、分割テキストの音声合成処理が完了する前に、その分割テキストが指定されてしまった場合には、音声合成処理が完了するまでの間、ユーザが待たされるという問題がある。
特に、最近、ユーザが増えているタブレット端末やスマートフォン等は、処理能力がＰＣほど高くないため、次の文への移動指示の後、合成音声が再生出力されるまでに多くの時間を必要とするという問題が生じる場合がある。
【０００８】
そこで、本発明は、音声合成システムにおいて、テキストの入力から合成音声の出力開始までのレスポンスタイムを短くする技術を提供することを課題とする。
【課題を解決するための手段】
【０００９】
前記した課題を解決するため、本発明に係る音声合成装置は、取得したテキストの合成音声データを生成して音声再生手段で再生する音声合成装置であって、前記テキストの先頭の断片文字列と、前記断片文字列に対応する第１の合成音声データを関連付けて記憶している記憶手段と、前記取得したテキストの先頭からの長さが異なる複数の文字列からなる候補文字列群を出力する第１の手段と、前記記憶手段を参照して、前記候補文字列群の長さの長い方の文字列から前記記憶手段の前記断片文字列に一致する文字列を検索し、一致した文字列に対応する第１の合成音声データを取得する第２の手段と、前記第１の合成音声データを再生している間に、前記取得したテキストの前記第２の手段により検索された文字列より後の文字列に対応する第２の合成音声データを生成する第３の手段と、前記第２の手段で検索された先頭の断片文字列に対応する前記記憶手段の第１の合成音声データと、前記第３の手段で生成された前記第２の合成音声データを再生出力する音声再生手段と、を備えるようにした。
【発明の効果】
【００１０】
本発明によれば、音声合成システムにおいて、テキストの入力から合成音声の出力開始までのレスポンスタイムを短くすることができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態にかかる音声合成装置の構成を示すブロック図である。
【図２】先頭断片記憶部に格納されている先頭断片情報の一例を示す説明図である。
【図３】合成音声構成情報生成部で生成する合成音声構成情報の一例を示す説明図である。
【図４】合成音声構成情報生成部の詳細な構成を示すブロック図である。
【図５】第２実施形態にかかる音声合成装置の構成を示すブロック図である。
【図６】文字対応情報を付加した合成音声構成情報の一例を示す説明図である。
【図７】各音韻の再生開始時刻情報を付加した合成音声構成情報の一例を示す説明図である。
【図８】先頭断片情報登録装置の構成を示すブロック図である。
【図９】中間音声データを付加した先頭断片情報の一例を示す説明図である。
【図１０】出力開始位置情報（サンプル位置情報）を付加した先頭断片情報の一例を示す説明図である。
【発明を実施するための形態】
【００１２】
次に、発明を実施するための形態（以降、「実施形態」と称す。）について、適宜図面を参照しながら詳細に説明する。
【００１３】
（第１実施形態）
第１実施形態では、ユーザが読み上げ対象文（以降、合成対象テキストまたは入力テキストとも称する。）を選択し、音声合成装置１００（図１参照）に合成対象テキストのデータが入力されると、音声合成装置１００が、入力された合成対象テキストの先頭部分に対応する、予め生成済みの合成音声を記憶部から読み出して即座に再生出力する。そして、音声合成装置１００は、先頭部分に対応する合成音声データを再生出力している間に、先頭部分の後続のテキストのデータに対応する合成音声データを生成しつつ、後続のテキストに対応する合成音声データを先頭部分に対応する合成音声に連続して（途切れることなく）再生出力する。
【００１４】
（音声合成装置１００の構成）
第１実施形態にかかる音声合成装置１００の構成について、図１を用いて説明する。
図１に示すように、音声合成装置１００は、処理部１１０と記憶部１２０とを備える。処理部１１０は、先頭断片テキスト抽出部（第１の手段）１１１、先頭断片音声選択部（第２の手段）１１２、合成音声構成情報生成部（第３の手段、第４の手段）１１３、構成情報指定付き音声合成部（第３の手段、第５の手段）１１４、および音声再生部１１５を機能として有する。処理部１１０は図示しないＣＰＵ（Central Processing Unit）およびメインメモリによって構成され、処理部１１０内の各部は記憶部１２０に記憶されているアプリケーションプログラムをメインメモリに展開して具現化される。
【００１５】
記憶部１２０は、アプリケーションプログラムや先頭断片記憶部１２１を記憶している。
また、先頭断片記憶部１２１は、先頭断片テキストに対応する先頭断片情報（図２の符号２００であり詳細は後記する。）を記憶している。先頭断片テキストとは、文章の先頭の文字列を断片として抽出したテキストのことである。また、先頭断片情報とは、（１）先頭断片テキストを示す先頭断片テキスト情報（図２の符号２０１）と、（２）その先頭断片テキストの合成音声データを示す先頭断片音声情報（図２の符号２０２）と、（３）合成音声データの生成に用いた先頭断片テキストの音韻情報、その音韻の長さおよび高さを含む合成音声構成情報（図２の符号２０３であり、詳細は図３を用いて後記する。）と、を関連付けた情報である。
【００１６】
先頭断片テキスト抽出部１１１は、入力テキストから先頭部分の文字列を取り出して先頭断片テキストとして抽出する機能を有する。
先頭断片音声選択部１１２は、先頭断片テキスト抽出部１１１によって抽出された先頭断片テキストに一致する先頭断片テキスト情報（図２の符号２０１）を、先頭断片記憶部１２１を参照して抽出する機能を有する。そして、先頭断片音声選択部１１２は、抽出した先頭断片テキストに関連付けられた合成音声データ（第１の合成音声データ１３２）を音声再生部１１５に直接出力する機能を有しており、入力テキストの先頭部分の合成音声データ（第１の合成音声データ１３２）を即座に再生出力する。
【００１７】
合成音声構成情報生成部１１３は、入力テキストに対応した合成音声構成情報または入力テキストの先頭部分の文字列より後のテキストに対応した合成音声構成情報を生成する機能を有する。
構成情報指定付き音声合成部１１４は、合成音声構成情報生成部１１３によって生成された合成音声構成情報を取得して、その合成音声構成情報に基づいて合成音声データ（第２の合成音声データ１３４）を生成し、音声再生部１１５に出力する機能を有する。つまり、この構成情報指定付き音声合成部１１４は、合成音声構成情報生成部１１３とともに、先頭断片テキストに後続するテキストに対して、合成音声データ（第２の合成音声データ１３４）を生成する役割を担っている。
音声再生部１１５は、先頭断片音声選択部１１２または構成情報指定付き音声合成部１１４から出力された合成音声データを取得して、合成音声として再生出力する機能を有する。
なお、先頭断片音声選択部１１２、合成音声構成情報生成部１１３、構成情報指定付き音声合成部１１４それぞれの機能の詳細については後記する。
【００１８】
（音声合成装置１００の動作の概要）
次に、音声合成装置１００の動作の概要について説明する（適宜、図１参照）。
音声合成装置１００に合成対象テキストが入力されると、先頭断片テキスト抽出部１１１は、入力テキストの先頭部分の文字列を、テキスト長を異ならせて複数出力する。これら複数の文字列は、先頭断片テキストの候補文字列となる。例えば、入力テキストが「本日の天気は晴れです。」という文章であった場合、先頭断片テキスト抽出部１１１は、「本」「本日」「本日の」・・・「本日の天気は晴れです。」という文字列を候補文字列群として出力する。ただし、先頭断片記憶部１２１に記憶されている先頭断片情報内の先頭断片テキストの文字数の最長値が予め決められている場合には、先頭断片テキスト抽出部１１１は、その最長値よりも長い文字数の候補文字列を生成する必要はない。
【００１９】
先頭断片テキスト抽出部１１１によって出力された候補文字列群は、先頭断片音声選択部１１２に入力される。先頭断片音声選択部１１２は、先頭断片記憶部１２１に記憶されている先頭断片情報の中から先頭断片テキストが候補文字列群と一致するものを抽出する。ただし、先頭断片音声選択部１１２は、先頭断片情報を複数抽出した場合は、先頭断片テキストの文字長が最も長い先頭断片情報を選択する。つまり、先頭断片音声選択部１１２は、候補文字列の長い方から一致するものを探索していくと良い。
【００２０】
図２は、先頭断片記憶部１２１に記憶されている先頭断片情報２００の一例を示している。先頭断片情報２００は、先頭断片テキスト情報２０１、先頭断片音声情報２０２（図２ではその格納場所を示すファイル名で表示している。）、および合成音声構成情報２０３を関連付けて記憶している。先頭断片音声選択部１１２は、図２に示す先頭断片テキスト情報２０１と、先頭断片テキスト抽出部１１１から取得した候補文字列群の文字列とを比較することによって、候補文字列に対応する先頭断片情報を抽出することができる。その結果、先頭断片音声選択部１１２は、候補文字列に最も長く一致した先頭断片テキストに対応する先頭断片音声情報２０２および合成音声構成情報２０３を取得する。なお、ここでは、入力テキストの候補文字列に対応する先頭断片情報２００が事前にそろっているものとして説明する（適宜、図１，２参照）。
【００２１】
図１の説明に戻り、先頭断片音声選択部１１２によって選択・抽出された先頭断片音声情報２０２の合成音声データ（第１の合成音声データ１３２）は、音声再生部１１５に入力され、合成音声の再生出力が行われる。音声再生部１１５は、通常のスピーカ等の音声再生デバイスで良いが、後記する構成情報指定付き音声合成部１１４から少しずつ出力されてくる合成音声データを、再生待ちキューに格納して保持する構成が必要となる。また、音声再生部１１５は、音声出力が途切れないように、少しずつ次の再生音声を再生待ちキューから取り出して再生出力を実行する。なお、このようなキューイング処理を用いなくても、ＰＣやタブレット端末等のオペレーションシステムによっては、音声データのキューイングが提供されているケースもある。その場合、音声再生部１１５は、オペレーションシステムの音声再生ＡＰＩ（Application Programming Interface）関数とみなすことができる。
【００２２】
また、先頭断片音声選択部１１２によって選択・抽出された合成音声構成情報（第１の合成音声構成情報）２０３は、合成音声構成情報生成部１１３に入力される。合成音声構成情報生成部１１３では、音声合成装置１００への入力テキスト全体に対応する合成音声構成情報３００（図３参照）を生成する。その際に、合成音声構成情報生成部１１３は、先頭断片音声選択部１１２から入力された先頭断片テキストに対応する合成音声構成情報２０３を基にして、先頭断片テキストより後のテキストに対応する合成音声構成情報（第２の合成音声構成情報）３０３（図３参照）を生成する。
【００２３】
ここで、合成音声構成情報生成部１１３で生成する合成音声構成情報３０３の一例について、図３を用いて説明する。なお、図３は、例文「本日の天気は晴れです。」という入力テキストに対する合成音声構成情報３００を示しているが、「本日の」の部分は先頭断片音声選択部１１２から入力された合成音声構成情報２０３で構成され、「本日の」より後のテキストの部分を合成音声構成情報生成部１１３が生成した合成音声構成情報３０３で構成されている場合を示している。合成音声構成情報３００は、少なくとも、入力テキストの各音韻情報（音節、音素等の音）３０１と、その音韻の長さや高さ等の韻律情報３０２とが必要となる。図３においては、各行が１つの音韻を示し、行の先頭に音韻情報３０１（カタカナ１文字で記述）を示し、それに続くカッコ内に韻律情報３０２として４つの数値を記述している。４つの数字は、先頭から順にそれぞれ、音韻の子音部分の音の長さ（ミリ秒単位）、母音部分の音の長さ（ミリ秒単位）、音韻の開始時刻での音の高さ（基本周波数）、音韻の終了時刻での音の高さ（基本周波数）を示している。
【００２４】
合成音声構成情報３００は、図３に示すようなフォーマットの他、例えば、音韻の音の強さを指定する韻律情報を追加したり、音の高さの情報を音韻の始終点の２点で指定するのではなくさらに細かく多点で指定したり、近似曲線の種類等で指定したり、様々なフォーマットで表現されても構わない。
【００２５】
図１に戻り、合成音声構成情報生成部１１３によって生成された合成音声構成情報３０３は、構成情報指定付き音声合成部１１４に入力される。構成情報指定付き音声合成部１１４は、入力された合成音声構成情報３０３に基づいて、合成音声データの生成処理を実行する。つまり、構成情報指定付き音声合成部１１４が出力する合成音声データ（第２の合成音声データ１３４）は、先頭断片テキストに続く後続部分のテキストに対応する合成音声データのみで良い。
【００２６】
構成情報指定付き音声合成部１１４は、合成音声データを生成しては、生成した合成音声データを音声再生部１１５に送り、再生待ちキューに加える。これにより、音声再生部１１５では、先頭断片テキストに対応する合成音声の再生が完了すると、途切れることなく構成情報指定付き音声合成部１１４によって生成された後続テキストの合成音声データを再生することができ、あたかも１文全体を音声合成で生成したかのように合成音声を再生出力することができる。
【００２７】
（処理部１１０の各部の機能）
次に、先頭断片音声選択部１１２、合成音声構成情報生成部１１３、および構成情報指定付き音声合成部１１４の機能の詳細について説明する（適宜、図１，２，３参照）。
【００２８】
＜先頭断片音声選択部１１２＞
先頭断片音声選択部１１２は、先頭断片テキスト抽出部１１１から入力された候補文字列群に一致する先頭断片テキストを抽出し、さらに、その抽出したものの中からテキスト長が最も長いものを選択する機能を有する。つまり、先頭断片音声選択部１１２では、主に文字列検索処理が実行される。
合成対象テキストが入力されてから合成音声データを再生出力するまでの時間を示す再生遅延時間を重視しないケースであれば、入力された候補文字列のうち、文字数が多いものから順番に先頭断片記憶部１２１を検索し、一致する先頭断片テキストを選択するという手法を用いても良い。例えば、「本」「本日」「本日の」・・・「本日の天気は晴れです。」という候補文字列群があったとして、文字数が最も多い「本日の天気は晴れです。」の候補文字列から先頭断片記憶部１２１の検索を開始するケースである。しかしながら、このような手法では、入力テキストが長くなるほど、一致する先頭断片テキストを見つけるための比較処理の回数が増加して、再生遅延時間が増加するという虞がある。
【００２９】
そこで、この虞を解消するために、まず、先頭断片記憶部１２１に記憶されている先頭断片情報２００内に含まれる先頭断片テキストの最長値を別途記憶しておき、その最長値よりも長い候補文字列に対しては検索処理を実行しないようにする。または、ハッシュ関数（文字列をハッシュ値に変換する関数）を用いて検索すべき文字列をハッシュ値に変換し、そのハッシュ値に対応するエントリを検索するハッシュ法検索を採用しても構わない。または、先頭断片記憶部１２１に含まれている先頭断片テキスト全体をトライと呼ばれる木構造に変換しておき、検索対象文字列の中の文字を先頭から順番にトライ木の上で辿っていくことで、最長一致する文字列を検索するトライ木を採用しても構わない。ただし、これらの文字列検索方法にはそれぞれ長所短所があり、先頭断片記憶部１２１の記憶容量や許容できる再生遅延時間等に応じて、採用する文字列検索方法を選択することが好ましい。
【００３０】
＜合成音声構成情報生成部１１３＞
図４に示すように、合成音声構成情報生成部１１３は、テキスト解析部４０１および韻律解析部４０２を備えている。
テキスト解析部４０１は、漢字かな混じりの入力テキストを、自然言語処理技術を用いて音韻文字と韻律指定文字を含む中間言語表現に変換する。例えば、例文「本日の天気は晴れです。」の場合、「ホ’ンジツノ／テ’ンキワ／ハレ’デス％．」のような中間言語に変換される。ここでカタカナは音を示す音韻文字であり、ピリオド（．）は文末指定文字、パーセント（％）は直前の音韻が無声化されていることを示す記号である。また、アポストロフィー（’）はアクセント核位置を示す韻律記号、スラッシュ（／）はアクセント句の区切りを示す韻律記号である。入力テキストを中間言語表現に変換する処理手法は、公知技術（非特許文献１参照）であるため詳細な説明を省略するが、形態素解析処理と、音声合成処理に独特のアクセント句およびアクセント核位置の解析処理を組み合わせることで実現される。
【００３１】
テキスト解析部４０１には、先頭断片テキスト抽出部１１１から合成対象テキスト「本日の天気は晴れです。」の全文が入力され、先頭断片音声選択部１１２から先頭断片テキスト情報２０１の「本日の」が入力される。つまり、テキスト解析部４０１には、入力テキスト全文に加えて先頭断片テキスト情報２０１も合わせて入力される点が公知の音声合成処理（非特許文献１参照）と異なる。そして、テキスト解析部４０１は、入力テキストを中間言語表現に変換するとともに、先頭断片テキスト部分がどの範囲に相当するか（どの位置で終了するか）を示すマーカを付して、マーカ付きの発音記号列を出力する。
【００３２】
例えば、例文「本日の天気は晴れです。」の場合、テキスト解析部４０１には、入力テキスト「本日の天気は晴れです。」および先頭断片テキスト情報２０１の「本日の」が入力される。テキスト解析部４０１は、「本日の天気は晴れです。」を中間言語に変換するとともに、先頭断片テキスト情報２０１の「本日の」がどの位置で終了するかを示すマーカを付す。マーカ文字を、例えば“）”で表した場合、テキスト解析部４０１から出力される中間言語表現は、「ホ’ンジツノ）／テ’ンキワ／ハレ’デス％．」のようになる。
【００３３】
マーカの追加方法を具体的に説明すると、まず、テキスト解析部４０１において、テキスト解析処理で用いる形態素解析処理によって、入力された漢字かな混じりテキストを形態素の列に分解する。次に、形態素列に対してアクセント句・アクセント核位置の解析処理を実行し、形態素の読みを連結していく。先頭断片テキストの末尾位置が形態素の境界位置に一致した場合は、末尾位置に対応する形態素の読みを出力した後に、マーカ文字を出力すれば良い。
【００３４】
一方、先頭断片テキストの末尾位置が１つの形態素の内部に位置する場合は、末尾位置を内部に含む当該形態素を利用しないようにする。なお、先頭断片テキストの末尾位置が１つの形態素の内部に位置する場合とは、具体的には、例えば、「本日は晴れです。」という合成対象テキストに対して、先頭断片テキストが「本（ホン）」のみである場合等である。末尾位置を内部に含む当該形態素を利用しないようにするためには、形態素解析処理内部で、末尾位置を内部に含む形態素に割り当てるコストを増加させる、または、前後の形態素との接続を不可とする、等の処理を実行する。ここで、コストとは、形態素ごとに、その形態素を利用するか否かの判定に用いる重みであって、例えば、接続候補として複数の形態素があった場合、コストが最も小さい形態素を利用するというように決定される。
【００３５】
次に、韻律解析部４０２について説明する。
韻律解析部４０２には、先頭断片テキスト抽出部１１１から、合成音声構成情報２０３の「ホ（２０，８０，２２０，２３０）ン（０，６０，２３０，２２０）ジ（２０，５０，２２０，２１０）ツ（３０，６０，２１０，２００）ノ（２０，７０，２００，１８０）」が入力される。そして、韻律解析部４０２は、入力された合成音声構成情報２０３に続く部分の合成音声構成情報３０３を生成する。
【００３６】
韻律解析部４０２における処理では、入力された合成音声構成情報２０３（以降、入力合成音声構成情報と称する。）の末尾部分の韻律と、韻律解析部４０２によって新たに生成される範囲の合成音声構成情報３０３（以降、新規生成合成音声構成情報と称する。）の先頭部分の韻律と、をスムーズに接続させることが重要となる。具体的には、入力合成音声構成情報の末尾の基本周波数と、新規生成合成音声構成情報の先頭の基本周波数とが一致、または近い値になるようにする。接続がスムーズでない場合、すでに再生中の先頭断片テキストに引き続いて再生される合成音声（新規生成合成音声構成情報による合成音声）との間で音の高さのギャップが生じ、聞きづらくなってしまう。また、基本周波数に加えて、入力テキスト全体での話速も一致させることが望ましい。つまり、入力合成音声構成情報内の平均音韻時間長（ミリ秒）と、新規生成合成音声構成情報の平均音韻時間長（ミリ秒）を近い値とすることが好ましい。
【００３７】
このスムーズな接続を実現するためには、以下の方法を用いることができる。韻律解析部４０２は、先頭断片テキスト抽出部１１１から入力された合成音声構成情報２０３（入力合成音声構成情報）を無視し、まず、テキスト解析部４０１から入力された中間言語表現から、公知の音声合成処理で実施される韻律解析処理を用いて、入力テキスト全体に対応する合成音声構成情報を生成する。この際、テキスト解析部４０１から入力された中間言語表現にはマーカ文字が記入されているので、生成した合成音声構成情報のどこまでが合成音声構成情報２０３（入力合成音声構成情報）の末尾に対応するかを判定することができる。
【００３８】
続いて、入力合成音声構成情報の末尾の基本周波数と、新規生成合成音声構成情報（生成した合成音声構成情報のうちマーカ文字以降の部分）の先頭の基本周波数との差分を求める。また、入力合成音声構成情報内の平均音韻時間長（ミリ秒）と、新規生成合成音声構成情報内の平均音韻時間長（ミリ秒）とを算出し、差分を求める。そして、求めた基本周波数の差分を新規生成合成音声構成情報内の基本周波数に加算し、求めた平均音韻時間長の差分を新規生成合成音声構成情報内の音韻時間長に加算することによって、入力合成音声構成情報と申請生成合成音声構成情報との間での音の高さと速さをそろえることができる。このような処理により、入力合成音声構成情報と、新規生成合成音声構成情報とをスムーズに接続させることができる。最後に、入力合成音声構成情報と新規生成合成音声構成情報とを連結して出力する。なお、入力合成音声構成情報と新規生成合成音声構成情報との境界にはマーカを付与しておく。
【００３９】
＜構成情報指定付き音声合成部１１４＞
構成情報指定付き音声合成部１１４は、例えば、波形接続手法やパラメータ合成手法等、公知技術による音声合成手法（非特許文献１参照）を用いることによって合成音声データを生成する。
【００４０】
音声合成手法を用いて合成音声データを生成する場合、少なくとも、合成する文章の音韻情報、その音韻の長さの情報および高さの情報が必要となる。波形接続手法による音声生成処理では、合成対象テキストの音韻に対応する音声素片を指定された高さと長さになるように韻律変形処理することによって合成音声データを生成する。また、パラメータ合成手法による音声生成処理では、合成対象テキストの音韻に対応するフィルタパラメータを用いて、指定された音の高さに対応するピッチ間隔で励振源を駆動し、指定された音韻の時間長の間、フィルタパラメータに駆動音源を入力することによって合成音声データを生成する。
【００４１】
つまり、構成情報指定付き音声合成部１１４は、図３に示す合成音声構成情報３００を用いて音声生成処理を実行する。そして、構成情報指定付き音声合成部１１４で生成された合成音声データは、各音韻に対する音声生成処理が完了した時点で音声再生部１１５に出力することが好ましい。これは、文全体の合成音声データを生成した後で出力した場合には、再生遅延時間が長くなってしまう虞があるためである。
【００４２】
なお、第１実施形態の構成情報指定付き音声合成部１１４は、入力された合成音声構成情報３００内のマーカに対する処理が必要な点において、公知の音声合成手法と異なっている。すなわち、構成情報指定付き音声合成部１１４は、マーカよりも前の音韻については合成音声データを生成処理する必要がなく、マーカ以降の合成音声データを生成し、出力すれば良い。ただし、マーカ以前の音韻の合成音声データとマーカ以降の合成音声データとの接続がスムーズになっている必要がある。そのため、この処理の実現方法としては、例えば、構成情報指定付き音声合成部１１４は、公知の音声合成手法と同様に、入力された合成音声構成情報３００に対応する合成音声データをすべて生成した後、マーカ位置に対応する合成音声データの音声位置を検出し、マーカ以降の合成音声データを音声再生部１１５へ出力するという方法がある。なお、マーカ前後のスムーズな接続に関する前記方法とは異なる別法について、第３実施形態において説明する。
【００４３】
以上、第１実施形態にかかる音声合成装置１００は、テキストの文字列に対応する第１の合成音声データを予め記憶部１２０に記憶しており、先頭断片テキスト抽出部１１１が入力テキストを取得する。そして、先頭断片音声選択部１１２が、前記記憶部１２０を参照しつつ、入力テキストの先頭文字列と一致する文字列を抽出し、その一致した文字列に対応する第１の合成音声データを音声再生部１１５に出力し、音声再生部１１５が直ちに再生する。その再生処理の間に、合成音声構成情報生成部１１３および構成情報指定付き音声合成部１１４が、前記一致した文字列より後の文字列に対応する第２の合成音声データの生成を開始して、音声再生部１１５に出力する。その結果、音声再生部１１５は、第１の合成音声データに連続して第２の合成音声データを再生する。これにより、合成対象テキストの入力から合成音声を出力するまでの時間を示す再生遅延時間を短縮することが可能となり、ユーザの利便性を向上させることができる。
【００４４】
なお、第１実施形態における説明では、先頭断片記憶部１２１内に入力テキストに対応する先頭断片情報２００が記憶されているものとしていたが、先頭断片記憶部１２１内に入力テキストに対応する先頭断片情報２００が記憶されていない場合についても本実施形態の比較例として説明しておく。この場合、合成音声構成情報生成部１１３で入力テキスト全体の合成音声構成情報を生成し、先頭にマーカを付けて構成情報指定付き音声合成部１１４に出力すれば良い。構成情報指定付き音声合成部１１４は、マーカが先頭にあるので、公知の音声合成手法と同様の処理となり、入力テキスト全体に対応する合成音声データを生成し、順次音声再生部１１５に出力していく。そのため、合成対象テキストの入力から合成音声を出力するまでの時間を示す再生遅延時間は、従来と同じ状態となる。
【００４５】
（第２実施形態）
第２実施形態では、図５を用いて、先頭断片記憶部１２１内（図５参照）に入力テキストに対応する先頭断片情報２００（図２参照）が記憶されていない場合に、先頭断片情報２００をあらたに追加していく登録機能を有する音声合成装置５００について説明する（適宜、図２，３参照）。これにより、以前と同じ合成対象テキストが再度入力された場合または先頭部分が同じ合成対象テキストが再度入力された場合は、一致する先頭断片情報２００を利用することができ、即座に音声再生を行うことができる。
【００４６】
図５は、第２実施形態にかかる音声合成装置５００の構成を示している。ただし、図５では、第１実施形態にかかる音声合成装置１００（図１参照）と同様の構成については、図１と同じ符号を付している。音声合成装置５００は、処理部１１０ａと記憶部１２０とを備える。処理部１１０ａは、第１実施形態と同様の構成である先頭断片記憶部１２１、先頭断片テキスト抽出部１１１、先頭断片音声選択部１１２、合成音声構成情報生成部１１３、構成情報指定付き音声合成部１１４、音声再生部１１５に加えて、先頭断片情報抽出部（第６の手段）１１６が登録機能として追加されている。処理部１１０ａは図示しないＣＰＵおよびメインメモリによって構成され、処理部１１０ａ内の各部は記憶部１２０に記憶されているアプリケーションプログラムをメインメモリに展開して具現化される。
【００４７】
音声合成装置５００は、第１実施形態の場合と同様に、合成音声構成情報生成部１１３で入力テキスト全体の合成音声構成情報を生成し、生成した合成音声構成情報の先頭にマーカを付けて構成情報指定付き音声合成部１１４に出力する。構成情報指定付き音声合成部１１４は、入力テキスト全体に対応する合成音声データを生成し、順次、音声再生部１１５に出力していく。
【００４８】
そして、先頭断片情報抽出部１１６は、先頭断片音声選択部１１２によって先頭断片記憶部１２１が検索された際に、入力テキストの先頭部分の文字列に一致する先頭断片テキストが存在しなかった場合に起動される。この場合、先頭断片情報抽出部１１６に対しては、構成情報指定付き音声合成部１１４から出力された合成音声データ、合成音声構成情報生成部１１３から出力された合成音声構成情報、および入力テキストが入力される。このとき、合成音声構成情報生成部１１３は、図６に示すような、合成音声構成情報内の各音韻６０１が入力テキスト内のいずれの文字と対応しているかを示す情報（文字対応情報６０３）を付加した合成音声構成情報６００を出力する。さらに、構成情報指定付き音声合成部１１４は、図７に示すような、各音韻の再生開始時刻情報７０３を付加した合成音声構成情報７００を出力する。
【００４９】
図６は、例文「本日の天気は晴れです。」という入力テキストに対する合成音声構成情報６００（以降、文字付加情報付き合成音声構成情報６００とも称する。）を示している。合成音声構成情報６００には、入力テキストの各音韻情報６０１、韻律情報６０２に加えて、各音韻が対応する形態素ごとに入力テキストの文字対応情報６０３が付加されている。文字対応情報６０３の付加は、合成音声構成情報生成部１１３における形態素解析処理を行う際の内部情報を用いることによって行われる。
【００５０】
図７は、例文「本日の天気は晴れです。」という入力テキストに対する合成音声構成情報７００（以降、再生開始時刻情報付き合成音声構成情報７００とも称する。）を示している。合成音声構成情報７００には、入力テキストの各音韻情報７０１、韻律情報７０２に加えて、生成された合成音声データ内での各音韻の再生開始時刻７０３がミリ秒単位で付加されている。韻律情報７０２を示すカッコ内の１番目は子音の長さ（ミリ秒単位）、２番目は母音の長さ（ミリ秒単位）を表している。そこで、各音韻の再生開始時刻７０３は、合成音声構成情報７００として出力された音韻時間長の合計値（カッコ内の１番目および２番目の値を累積していった値）と一致した時刻としている。他の方法として、韻律変形処理を極力行わずに高品質化を図る波形接続音声合成処理においては、合成音声構成情報として出力された音韻時間長の合計値と実際の合成音声における音韻の開始位置（時刻）とは異なる場合も多い。その場合には、構成情報指定付き音声合成部１１４においても、合成音声内での実際の音韻再生開始時刻を合成音声構成情報７００に付加しても良い。
【００５１】
図５の説明に戻り、先頭断片情報抽出部１１６は、まず、図６に示す文字付加情報付き合成音声構成情報６００を基に、先頭断片テキストを決定する。具体的には、文字付加情報付き合成音声構成情報６００の先頭に位置する文字から順番に連結していき、先頭断片テキストとする。先頭断片テキストのテキスト長を決める基準としては、連結した文字列の文字数や、連結した文字列の合成音声の再生時間長等が挙げられる。また、再生処理時間を低減させるためには、先頭断片テキストの音声再生中に、後続の合成音声データの生成が一定量行われ、出力可能な状態になっていなければならない。つまり、先頭断片テキストのテキスト長は、連結した文字列に対応する合成音声データの再生時間が所定時間（後続の合成音声データの生成が一定量行われるための時間）以上となっている必要がある。したがって、先頭断片情報抽出部１１６は、先頭断片テキストのテキスト長を固定するのではなく、音声合成装置５００内のプロセッサの処理速度（音声生成処理速度）に応じて、先頭断片テキストのテキスト長を設定しても良い。具体的には、処理速度が高くなるほど、テキスト長を長くするように決定する。
【００５２】
そして、先頭断片情報抽出部１１６は、図６に示す文字対応情報付き合成音声構成情報６００の文字対応情報６０３を参照して、決定した先頭断片テキストに対応する合成音声構成情報２０３を抽出する。また、先頭断片情報抽出部１１６は、図７に示す再生開始時刻情報付き合成音声構成情報７００の再生開始時刻７０３を参照して、決定した先頭断片テキストに対応する合成音声データを切り出して、先頭断片音声情報２０２とする。この処理では、決定した先頭断片テキストの末尾に対応する音韻終了時刻までの合成音声データを切り出せば良い。このようにして、先頭断片情報２００（図２参照）が生成される。次に、先頭断片情報抽出部１１６は、先頭断片テキスト情報２０１、先頭断片音声情報２０２、合成音声構成情報２０３を、先頭断片情報２００として先頭断片記憶部１２１に追加し、記憶する。
【００５３】
以上のような処理によって、入力テキストの先頭部分に一致する先頭断片情報２００が先頭断片記憶部１２１に記憶されていなかった場合であっても、新たに先頭断片情報２００を生成して、先頭断片記憶部１２１に追加することができる。これにより、以前と同じ合成対象テキストが再度入力された場合には、新たに追加されている先頭断片情報２００の合成音声データを直ちに再生出力することができる。
【００５４】
（先頭断片情報登録装置８００の構成）
なお、音声合成装置５００から先頭断片情報２００の登録機能（先頭断片情報抽出部１１６）を切り離し、先頭断片記憶部１２１に先頭断片情報２００の登録のみを行う専用装置を設けても良い。例えば、電子書籍やニュースの読み上げでは、先頭断片テキストはいろいろな分野にわたって多種になるため、先頭断片記憶部１２１内で先頭断片情報２００が抽出されずに、新規に先頭断片情報２００を生成し追加するケースが多くなると考えられる。このような場合には、図８に示す先頭断片情報登録装置８００は、新規の先頭断片情報２００を登録するための登録処理専用の装置として好適である。
【００５５】
図８は、先頭断片情報登録装置８００の構成を示している。ただし、図８では、第２実施形態にかかる音声合成装置５００（図５参照）と同様の構成については、図５と同じ符号を付している。先頭断片情報登録装置８００は、処理部１１０ｂと記憶部１２０とを備える。処理部１１０ｂは、第２実施形態の音声合成装置５００（図５参照）の構成から音声再生部１１５を除くとともに、入力テキスト中の一文に相当する文字列を切り出す処理を行う文分解部１１７が追加されている。処理部１１０ｂは図示しないＣＰＵおよびメインメモリによって構成され、処理部１１０ｂ内の各部は記憶部１２０に記憶されているアプリケーションプログラムをメインメモリに展開して具現化される。
【００５６】
文分解部１１７で分解された入力テキストは、先頭断片音声選択部１１２、合成音声構成情報生成部１１３、構成情報指定付き音声合成部１１４、先頭断片情報抽出部１１６で処理され、新規に先頭断片情報２００が先頭断片記憶部１２１に蓄積される。先頭断片情報登録装置８００による登録処理を入力テキストの読み上げ前に実行しておくことによって、実際の読み上げの際には速やかに音声再生を行うことができる。例えば、先頭断片情報登録装置８００によって登録処理された先頭断片記憶部１２１に記憶されている先頭断片情報２００を、第１実施形態の音声合成装置１００の先頭断片記憶部１２１にインストールするようにして用いることができる。
【００５７】
（第３実施形態）
第３実施形態では、マーカ前後のスムーズな接続に関して、第１実施形態で記載した方法とは異なる別法について説明する（適宜、図１，５参照）。この別法は、第１実施形態で説明した方法に比較して、マーカ以降の合成音声データの生成を開始する時間をより早めることができる。
【００５８】
構成情報指定付き音声合成部１１４において用いられる音声合成アルゴリズムには、大きく分けて、パラメータ合成方式、波形重畳方式、波形接続方式の３つが知られている。これらの方式の詳細については、非特許文献１に記載されている。
前記３つの方式のうち、パラメータ合成方式および波形重畳方式は、それぞれ、合成する音素に対応する音響パラメータと音声素片とを、ピッチ（基本周波数）間隔で駆動する（それぞれフィルタ合成、ピッチ波形の重畳加算を実行する）ことによって合成音声データを生成する。このとき、生成された合成音声データの末尾部分は、次の音素の合成処理に必要なデータとなる。このように、パラメータ合成方式および波形重畳方式では、前の音素の合成処理で生成されたデータが後の音素の合成処理で必要となるので、合成対象テキストの先頭から逐次的に音声合成していく必要がある。なお、以下の説明では、後の音素の合成に必要なデータを中間音声データと呼ぶこととすると、パラメータ合成方式および波形重畳方式は、中間音声データを必要とするアルゴリズムであると言える。
【００５９】
それに対して、波形接続方式では、音声素片と呼ばれる断片音声に対する信号処理を実行しない（ただし、音声素片間のスムージングを除く。）。そのため、波形接続方式の場合には、直前の音素の合成結果が後の音素の合成処理に影響するという問題は生じない。すなわち、波形接続方式は、中間音声データを必要としないアルゴリズムであると言える。
【００６０】
まず、中間音声データを必要とするアルゴリズム（パラメータ合成方式および波形重畳方式）における音声生成処理について説明する。パラメータ合成方式および波形重畳方式では、中間音声データの量が決まっている。例えば、ＦＩＲ（Finite Impulse Response）フィルタによるパラメータ合成方式では、そのフィルタのタップ数に相当する数の直前音声のサンプルデータがあれば良い。また、メルケプストラムフィルタ等の手法では、音声合成処理単位であるフレーム長さ（正確にはフレーム間重なりに対応するフレーム移動量）に相当する数の直前の音声のサンプルデータがあれば良い。また、波形重畳方式の場合は、合成対象音声のピッチ（基本周波数）間隔で音声素片のピッチ波形の重畳加算を行うため、ピッチ間隔の半分の長さの音声サンプルデータがあれば良い。
【００６１】
このように、いずれの方式を用いる場合であっても、中間音声データは、音声のサンプルデータを所定数（多くても数百程度）あれば良い。このことから、先頭断片記憶部１２１に記憶する先頭断片情報２００に、中間音声データ（正確にはマーカが示す合成開始位置の直前の音素の末尾部分の中間音声データ）をあわせて格納しておく。これにより、構成情報指定付き音声合成部１１４（図１，５参照）において、マーカ以降の合成音声データの生成を開始する時間を早め、マーカの前後の合成音声をスムーズに接続することができる。
【００６２】
図９は、中間音声データを付加した先頭断片情報９００の一例を示している。図９には、先頭断片記憶部１２１に記憶する先頭断片情報９００として、先頭断片テキスト情報２０１、先頭断片音声情報２０２、合成音声構成情報２０３に加えて、中間音声データ情報９０４が付加されている。構成情報指定付き音声合成部１１４に入力される合成音声構成情報２０３に、中間音声データ情報９０４が付加されていることによって、構成情報指定付き音声合成部１１４では、中間音声データ情報９０４を参照してマーカが示す合成開始位置の音素から音声生成処理を開始することができる。
【００６３】
次に、中間音声データを必要としないアルゴリズム（波形接続方式）における音声生成処理について説明する。波形接続方式では、基本的に音声素片を単純につなぎ合わせることで音声生成処理を実行する。そのため、音声素片境界の位置とマーカの示す合成開始位置とが一致している場合は、中間音声データは必要なく、再生中の先頭断片音声に続いて合成開始位置から生成した合成音声データをそのまま出力すれば良い。
【００６４】
ただし、音声素片間でスムージング処理を実行する場合には、スムージング処理のために音素素片間で重ねる音声領域が必要となる。この場合、先頭断片音声の末尾部分に、重ねる音声領域のデータを付加しておく。そして、構成情報指定付き音声合成部１１４は、スムージング処理された音声位置から合成音声データを出力できるように、マーカに加えて、出力開始位置を示すサンプル位置の情報（出力開始位置情報）を合わせて付加しておくと良い。
【００６５】
図１０は、出力開始位置情報（サンプル位置情報）１００４を付加した先頭断片情報１０００の一例を示している。図１０には、先頭断片記憶部１２１で格納する先頭断片情報１０００として、先頭断片テキスト２０１、先頭断片音声情報２０２、合成音声構成情報２０３に加えて、出力開始位置情報（サンプル位置情報）１００４が付加されている。構成情報指定付き音声合成部１１４は、出力開始位置情報（サンプル位置情報）１００４を参照して、合成音声データを出力することができる。
【産業上の利用可能性】
【００６６】
以上説明したように、本発明にかかる音声合成装置は、入力テキストに対応する合成音声データを読み上げる音声合成システムに有効であり、特に、ニュースの読み上げやスクリーンリーダシステム等、合成対象テキストが頻繁に変更される用途に用いる音声合成システムに適している。
【符号の説明】
【００６７】
１００，５００  音声合成装置
１１０，１１０ａ，１１０ｂ  処理部
１１１  先頭断片テキスト抽出部（第１の手段）
１１２  先頭断片音声選択部（第２の手段）
１１３  合成音声構成情報生成部（第３の手段、第４の手段）
１１４  構成情報指定付き音声合成部（第３の手段、第５の手段）
１１５  音声再生部（音声再生手段）
１１６  先頭断片情報抽出部（第６の手段）
１１７  文分解部
１３２  第１の合成音声データ
１３４  第２の合成音声データ
１２０  記憶部（記憶手段）
１２１  先頭断片記憶部
２００  先頭断片情報
２０１  先頭断片テキスト情報
２０２  先頭断片音声情報
２０３  合成音声構成情報（第１の合成音声構成情報）
３００  合成音声構成情報
３０１  音韻情報
３０２  韻律情報
３０３  合成音声構成情報（第２の合成音声構成情報）
４０１  テキスト解析部
４０２  韻律解析部
６００  合成音声構成情報
６０１  音韻情報
６０２  韻律情報
６０３  文字対応情報
７００  合成音声構成情報
７０１  音韻情報
７０２  韻律情報
７０３  再生開始時刻
８００  先頭断片情報登録装置
【図１】
0005819147.tif 000002
【図２】
0005819147.tif 000003
【図３】
0005819147.tif 000004
【図４】
0005819147.tif 000005
【図５】
0005819147.tif 000006
【図６】
0005819147.tif 000007
【図７】
0005819147.tif 000008
【図８】
0005819147.tif 000009
【図９】
0005819147.tif 000010
【図１０】
0005819147.tif 000011