(57)【要約】      （修正有）【課題】音声合成処理後に行われる音声の読み上げが途切れないようにする。【解決手段】入力テキストを分割するテキスト分割手段と、音声を合成する合成処理手段と、音声を読み上げて出力する出力手段とを有し、テキスト分割手段は、予め定められた一次区切子の位置に基づいて分割した一次分割テキストを取得し、取得した一次分割テキストの中から基準テキストを選択し、当該選択された基準テキストの読み上げ所要時間と、基準テキストに後続する対象テキストのバイト数から算出した音声を合成するための合成処理時間との関係に基づいて、入力テキストを分割する位置を決定する音声合成装置。【選択図】図３
2008064972.tif 000002
【特許請求の範囲】
【請求項１】
漢字かな混じり文の入力テキストを音声合成する音声合成装置であって、
前記入力テキストを分割するテキスト分割手段と、
前記テキスト分割手段により分割された分割テキストの表音処理を行うとともに、当該表音処理の結果に基づく合成波形を生成し、音声を合成する合成処理手段と、
前記合成処理手段により合成された音声を読み上げて出力する出力手段とを有し、
前記テキスト分割手段は、前記入力テキストの一部のバイト数から算出した読み上げ所要時間と、前記入力テキストの一部のバイト数から算出した音声を合成するための合成処理時間との関係に基づいて、前記入力テキストを分割する位置を決定する音声合成装置。
【請求項２】
前記テキスト分割手段は、予め定められた一次区切子の位置に基づいて分割した一次分割テキストを取得し、当該取得した一次分割テキストの中から基準テキストを選択し、当該選択された基準テキストのバイト数から算出した読み上げ所要時間と、前記基準テキストに後続する対象テキストのバイト数から算出した音声を合成するための合成処理時間との関係に基づいて、前記入力テキストを分割する位置を決定する請求項１に記載の音声合成装置。
【請求項３】
前記テキスト分割手段は、前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、当該基準テキストに後続する対象テキストの合成処理時間との関係を判断し、前記判断した関係に応じて、前記一次区切子とは異なる二次区切子の位置に基づいて前記対象テキストをさらに分割する請求項２に記載の音声合成装置。
【請求項４】
前記テキスト分割手段は、前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間が、当該基準テキストに後続する対象テキストの合成処理時間よりも短い場合、前記一次区切子とは異なる二次区切子の位置に基づいて前記対象テキストをさらに分割する請求項３に記載の音声合成装置。
【請求項５】
前記テキスト分割手段は、前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、前記対象テキストをさらに分割して得た二次分割テキストの合成処理時間との関係を判断し、前記判断した関係に応じて前記基準テキストと当該基準テキストに続く対象テキストとを結合し、当該結合した結合テキストを前記分割テキストとして前記合成処理手段へ送出する請求項３又は４に記載の音声合成装置。
【請求項６】
前記テキスト分割手段は、前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間が、前記対象テキストをさらに分割して得た二次分割テキストの合成処理時間よりも短い場合、前記基準テキストと当該基準テキストに続く対象テキストとを結合し、当該結合した結合テキストを前記分割テキストとして前記合成処理手段へ送出する請求項３又は４に記載の音声合成装置。
【請求項７】
前記テキスト分割手段は、前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、前記対象テキストを分割して得た二次分割テキストの合成処理時間との関係を判断し、前記判断した関係に応じて前記一次分割テキストを分割し、当該分割位置を前記入力テキストの分割位置として決定する請求項３に記載の音声合成装置。
【請求項８】
前記一次区切子又は二次区切子は、「、」、「。」その他の句読点記号、「！」その他の感嘆符記号、「？」その他の疑問符記号、「」、｛｝、（）その他の括弧記号、又は＄、￥、＆その他の特殊記号から選択された記号である請求項１〜７のいずれかに記載の音声合成装置。
【請求項９】
前記合成処理手段は、前記テキスト分割手段により分割位置が決定されたテキストの音声を、順次合成する請求項１〜８のいずれかに記載の音声合成装置。
【請求項１０】
前記合成処理手段は、前記テキスト分割手段により前記入力テキスト全部の分割位置が決定された後に、テキストの音声を合成する請求項1〜８のいずれかに記載の音声合成装置。
【請求項１１】
漢字かな混じり文の入力テキストを音声合成する音声合成方法であって、
前記入力テキストを分割するステップと、
前記分割された分割テキストの表音処理を行うとともに、当該表音処理の結果に基づく合成波形を生成し、音声を合成するステップと、
前記合成された音声を読み上げて出力するステップと、
前記音声を分割するステップは、前記入力テキストの一部のバイト数から算出した読み上げ所要時間と、前記入力テキストの一部のバイト数から算出した音声を合成するための合成処理時間との関係に基づいて、前記入力テキストを分割する位置を決定するステップを含む音声合成方法。
【請求項１２】
前記テキストを分割するステップは、
予め定められた一次区切子の位置に基づいて分割した一次分割テキストを取得し、当該取得した一次分割テキストの中から基準テキストを選択し、当該選択された基準テキストのバイト数から算出した読み上げ所要時間と、前記基準テキストに後続する対象テキストのバイト数から算出した音声を合成するための合成処理時間との関係に基づいて、前記入力テキストを分割する位置を決定する請求項１１に記載の音声合成方法。
【請求項１３】
前記テキストを分割するステップは、
前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、当該基準テキストに後続する対象テキストの合成処理時間との関係を判断し、前記判断した関係に応じて、前記一次区切子とは異なる二次区切子の位置に基づいて前記対象テキストをさらに分割し、
前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、前記対象テキストを分割して得た二次分割テキストの合成処理時間との関係を判断し、前記判断した関係に応じて前記基準テキストと当該基準テキストに続く対象テキストとを結合し、当該結合した基準テキストと対象テキストを前記分割テキストとする請求項１２に記載の音声合成方法。
【請求項１４】
前記テキストを分割するステップは、
前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、当該基準テキストに後続する対象テキストの合成処理時間との関係を判断し、前記判断した関係に応じて、前記一次区切子とは異なる二次区切子の位置に基づいて前記対象テキストをさらに分割し、
前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、前記対象テキストを分割して得た二次分割テキストの合成処理時間との関係を判断し、前記判断した関係に応じて前記二次分割テキストの分割位置を前記入力テキストの分割位置として決定する請求項１２に記載の音声合成方法。
【請求項１５】
前記一次区切子又は二次区切子は、「、」、「。」その他の句読点記号、「！」その他の感嘆符記号、「？」その他の疑問符記号、「」、｛｝、（）その他の括弧記号、又は＄、￥、＆その他の特殊記号から選択された記号である請求項１１〜１４のいずれかに記載の音声合成方法。
【請求項１６】
前記音声を合成するステップは、前記分割位置が決定されたテキストの音声を、順次合成する請求項１１〜１５のいずれかに記載の音声合成方法。
【請求項１７】
コンピュータに、
漢字かな混じり文の入力テキストの一部のバイト数から算出した読み上げ所要時間と、前記入力テキストの一部のバイト数から算出した音声を合成するための合成処理時間との関係に基づいて、前記入力テキストを分割する位置を決定して、前記入力テキストを分割するステップと、
前記分割された分割テキストの表音処理を行うとともに、当該表音処理の結果に基づく合成波形を生成し、音声を合成するステップと、
前記合成された音声を読み上げて出力するステップと、を実行させるための音声合成用プログラム。
【請求項１８】
前記テキストを分割するステップは、
予め定められた一次区切子の位置に基づいて分割した一次分割テキストを取得し、当該取得した一次分割テキストの中から基準テキストを選択し、当該選択された基準テキストのバイト数から算出した読み上げ所要時間と、前記基準テキストに後続する対象テキストのバイト数から算出した音声を合成するための合成処理時間との関係に基づいて、前記入力テキストを分割する位置を決定する請求項１７に記載の音声合成用プログラム。
【請求項１９】
前記テキストを分割するステップは、
前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、当該基準テキストに後続する対象テキストの合成処理時間との関係を判断し、前記判断した関係に応じて、前記一次区切子とは異なる二次区切子の位置に基づいて前記対象テキストをさらに分割し、
前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、前記対象テキストを分割して得た二次分割テキストの合成処理時間との関係を判断し、前記判断した関係に応じて前記基準テキストと当該基準テキストに続く対象テキストとを結合し、当該結合した基準テキストと対象テキストを前記分割テキストとする請求項１８に記載の音声合成用プログラム。
【請求項２０】
前記テキストを分割するステップは、
前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、当該基準テキストに後続する対象テキストの合成処理時間との関係を判断し、前記判断した関係に応じて、前記一次区切子とは異なる二次区切子の位置に基づいて前記対象テキストをさらに分割し、
前記一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、前記対象テキストを分割して得た二次分割テキストの合成処理時間との関係を判断し、前記判断した関係に応じて前記二次分割テキストの分割位置を前記入力テキストの分割位置として決定する請求項１８に記載の音声合成用プログラム。
【請求項２１】
前記一次区切子又は二次区切子は、「、」、「。」その他の句読点記号、「！」その他の感嘆符記号、「？」その他の疑問符記号、「」、｛｝、（）その他の括弧記号、又は＄、￥、＆その他の特殊記号から選択された記号である請求項１７〜２０のいずれかに記載の音声合成用プログラム。
【請求項２２】
前記音声を合成するステップは、分割位置が決定されたテキストの音声を、順次合成する請求項１７〜２１のいずれかに記載の音声合成用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキストデータを順次音声信号に変換して出力する際に発生する音声出力の遅れを低減させた音声合成方法、音声合成装置及び音声合成用プログラムに関する。
【背景技術】
【０００２】
この種の音声合成装置に関し、入力テキストに含まれる記号により、入力テキストを一定の文字数の文字配列になるように分割し、分割された文字配列について言語処理を行うものが知られている（特許文献１参照）。この音声合成装置によれば、入力テキストの文字数を一定とすることができる。
【０００３】
しかしながら、文字数と音声合成処理時間の関係は必ずしも一定とはいえず、入力テキストの構成によっては、同じ文字数で分割しても同じ音声合成処理時間になるとは限らないため、従来の手法では、音声合成処理の完了を待機する場合が生じ、音声読み上げ中に待ち時間が発生してしまうという問題があった。
【特許文献１】特開平１１−３８９９０号公報
【発明の開示】
【０００４】
本願発明は、音声合成処理後に行われる音声の読み上げが途切れないように音声合成処理を行うことを目的とする。
【０００５】
本発明によれば、漢字かな混じり文の入力テキストを音声合成する音声合成装置、音声合成方法及び音声合成用プログラムであって、入力テキストを分割し、分割された分割テキストの表音処理を行うとともに、この表音処理の結果に基づく合成波形を生成し、音声を合成し、合成された音声を読み上げて出力し、音声を分割する際、入力テキストの一部のバイト数から算出した読み上げ所要時間と、入力テキストの一部のバイト数から算出した音声を合成するための合成処理時間との関係に基づいて、入力テキストを分割する位置を決定する音声合成装置、音声合成方法及び音声合成用プログラムが提供される。
【０００６】
本発明によれば、入力テキストを適切な位置で分割することができるため、入力テキストの構成に関係なく、音声読み上げ中に音声合成処理を待機する待ち時間が発生することを抑制することができるため、音声読み上げられる音声がユーザにとって聞き易いものとすることができる。
【発明を実施するための最良の形態】
【０００７】
＜第１実施形態＞  
本発明の実施形態を図面に基づいて説明する。本発明に係る音声合成処理装置１００は、漢字かな混じり文の入力テキストを音声合成する音声合成装置である。本実施形態では、車載機などからインターネットに接続し、取得したコンテンツに含まれるテキストデータを音声合成処理して車両乗員であるユーザに対して読み上げを実行するという車載システムを例にする。
【０００８】
図１は、本発明に係る音声合成装置１００を含む車載システムの構成図、図２はその動作手順を示すフローチャート図である。図１に示すように、本実施形態の車載システム１０００は、外部のコンテンツプロバイダ等のサーバ２０００と、特定の通信プロトコルを用いてネットワーク３０００に接続し、他の情報機器と通信を行なう通信手段５００と、コンテンツプロバイダ２０００が提供するコンテンツを取得するコンテンツ取得手段６００と、取得したコンテンツに含まれるテキストを取得するテキスト取得手段７００と、取得したテキストに音声合成処理を施して合成音声を読み上げる音声合成装置１００とを有する。
【０００９】
音声合成装置１００は、取得したテキストに音声合成処理を行い、任意の形式の音声データとして出力する装置であり、テキスト分割手段１０と、合成処理手段２０と、出力手段３０とを有する。
【００１０】
テキスト分割手段１０は、コンテンツプロバイダ等のサーバ２０００から取得したコンテンツから、別途定義されたルールに基づいて音声合成処理の対象となるテキストを抽出又は取得し、後の合成処理を行うのに適切な長さに分割する。分割処理については後に詳述する。
【００１１】
合成処理手段２０は、言語処理部２１と、音響処理部２２と、記憶部２３とを有し、テキスト分割手段１０により分割された分割テキストの表音処理を行うとともに、当該表音処理の結果に基づく合成波形を生成し、音声を合成する。入力されたテキストをユーザが聴取可能なように読み上げる音声合成処理の手法は特に限定されず、出願時において公知の手法を利用することができる。本実施形態の音声合成処理手法の一例を説明する。本実施形態の言語処理部２１は、テキスト分割手段１０により分割されたテキストの読みとアクセントなどを決定し、テキスト上に配列された単語の前後のつながりから文節を検出し、検出した各文節の係りうけの関係を解析して文全体の韻律を決定し、韻律が決定されたテキスト情報を表音文字列として表現する。音響処理部２２は、言語処理部２１が算出した表音文字列から母音の長さ、子音の長さ、ポーズの長さなどの音素の維持時間長や、音声の高低の変化パターンである音声の基本周波数を生成し、これに基づく合成波形を含む音声情報を生成する。記憶部２３は、音響処理部２２が出力した音声情報をファイルとして少なくとも一時的に保存する。出力手段２３は、合成処理手段２０が生成した音声情報を読み上げて出力するためのスピーカや音声情報を音声ファイルなどの外部装置に出力するための通信装置である。音声情報の出力形式は任意であり、どのような方法で音声読み上げを行ってもよい。
【００１２】
図２に示すように、車載システム１０００は、コンテンツプロバイダ２０００に対し、通信手段５００を介してコンテンツの要求情報を送出する（Ｓ１０１）。コンテンツ取得手段６００は、要求に応じたコンテンツを取得する（Ｓ１０２）。テキスト取得手段７００は、取得したコンテンツからテキストを取得し、音声合成装置１００へ送出する（Ｓ１０３）。コンテンツに含まれるテキストの抽出、取得は音声合成装置１００側の制御に基づいて行っても良い。
【００１３】
テキスト分割手段１０は、取得したテキストを所定のルールに基づいて分割する（Ｓ１０４）。分割された分割テキストは、合成処理手段２０により音声合成処理Ａ（図２）される。このとき、合成処理手段２０は、テキスト分割手段１０により分割位置が決定されたテキストの音声を、順次取得して、順次合成してもよいし、一時的に記憶装置に格納して（Ｓ１０４´）、テキスト分割手段１０により入力テキストの全部の分割位置が決定された後に、テキストの音声を合成する処理を行ってもよい。
【００１４】
入力テキストの分割後、分割テキストが音声合成処理されるときの処理例を、図３に示した。Ｓ１４３１において、合成処理手段２０は、テキスト分割手段１０により分割された分割テキストＴｉ〜Ｔｎを分割テキストとして取得する。取得した分割テキストのそれぞれを特定するため、入力テキストにおける配列順番に従ってインデックス番号を付記する。インデックス値ｉの初期値は１とする（Ｓ１４３２）。Ｓ１４３２で指定したｉの値と、Ｓ１４３１で受け取った分割テキストの個数ｎを比較する（Ｓ１４３３）。ｉの値の方が小さい場合は、後述するステップＳ１４３４に進み、ｉの値の方が小さくない場合は一連の処理を終了する。Ｓ１４３４でｉ番目の分割テキストＴ［ｉ］を取得し、取得した分割テキストを音声合成処理する（ステップＳ１４３４）。処理終了後、次の分割テキストを処理対象にするため、インデックス値ｉの値に１を加算する（Ｓ１４３５）。以上のような処理を繰り返し、入力されたすべての分割テキストについて音声合成処理を実行する。
【００１５】
言語処理部２１は、分割されたテキストを順次又はまとめて言語処理を行う（Ｓ１０５）。音響処理部２２は、言語処理されたテキストの合成波形を含む音声情報を生成する（Ｓ１０６）。音響処理部２２は、生成された音声情報は出力手段３０に向けて出力する。このとき一時的に記憶させて（Ｓ１０９）から出力手段３０に送出してもよい。スピーカ（出力手段）３０は、取得した音声情報に従ってテキストを読み上げる（Ｓ１０８）。他方、外部へ向けて音声情報のファイルを出力する（Ｓ１１０）。
【００１６】
次に、本実施形態の音声合成装置１００の分割処理を中心に説明する。図４は、音声合成装置１００のブロック構成図であり、図５はその制御手法を示すフローチャート図である。
【００１７】
図４に示すように、本実施形態の音声合成装置１００のテキスト分割手段１０は、テキスト取得部１１と、一次分割部１２と、読み上げ所要時間算出部１３と、音声合成処理時間算出部１４と、判断部１５と、分割ポイント決定部１６とを有し、入力テキストの一部のバイト数から算出した読み上げ所要時間と、入力テキストの一部のバイト数から算出した音声を合成するための合成処理時間との関係に基づいて、入力テキストを分割する位置を決定する。合成処理手段２０、出力手段３０については図１及び図２に基づいて説明したとおりである。
【００１８】
テキスト分割手段１０の各構成について説明する。
【００１９】
テキスト取得部１１は、音声合成処理の対象となるテキストを取得する。テキストの取得のルートは特に限定されず、音声合成装置１００外部のコンテンツ取得手段６００及びテキスト取得手段７００を介して取得してもよいし、外部のコンテンツ取得手段６００が取得したコンテンツから音声合成処理の対象とするテキスト文字列を自ら抽出若しくは生成してもよい。車載システムにおいてテキストを画面表示する場合などは、テキスト情報を共用してもよい。
【００２０】
一次分割部１２は、予め定められた一次区切子の位置に基づいて分割した一次分割テキストを取得する。予め設定する一次区切子は１つでも良いし２以上でもよい。区切子は「、」、「。」その他の句読点記号、「！」その他の感嘆符記号、「？」その他の疑問符記号、「」、｛｝、（）その他の括弧記号、又は＄、￥、＆その他の特殊記号から選択された記号である。
【００２１】
読み上げ所要時間算出部１３は、一次分割部１２により分割された一次分割テキストのデータ量（例えばテキストのバイト数）に基づいて音声の読み上げに要する読み上げ所要時間を算出する。読み上げ所要時間の算出は、一次分割テキストの全部について行ってもよいし、後述する判断部１５により選択された基準テキストについて行ってもよい。
【００２２】
音声合成処理時間算出部１４は、一次分割部１２により分割された一次分割テキストのデータ量（例えばテキストのバイト数）に基づいて音声合成に要する音声合成処理時間を算出する。テキストのデータ量と音声合成処理時間とは予め対応づけておき、この対応関係を参照して算出する。音声合成処理時間の算出は、一次分割テキストの全部について行ってもよいし、後述する判断部１５により選択された対象テキストについて行ってもよい。同様に、音声合成処理時間算出部１４は、後述する二次分割部１６により分割された二次分割テキストのそれぞれの音声合成処理時間を算出する。
【００２３】
判断部１５は、一次分割部１２から取得した一次分割テキストの中から基準テキストを選択し、選択された基準テキストの読み上げ所要時間と、基準テキストに後続する対象テキストの合成処理時間との関係を判断する。基準テキストの選択手法は得に限定されないが、入力テキストの順序に従いテキストの最初に位置する一事分割テキストからテキストの並び順序に従って、順次選択することが好ましい。また、判断部１５は、一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、後述する二次分割部１６１により対象テキストを分割して得た二次分割テキストの合成処理時間との関係を判断する。
【００２４】
分割ポイント決定部１６は、判断部１５の判断結果に基づいて、入力テキストを分割するポイント（位置）を決定する。入力テキストの分割ポイントの決定は、基準テキストの読み上げ中に対象テキストの合成処理が完了し、基準テキストの読み上げ後に間を空けることなく対象テキストの読み上げができるようにする観点から行うことが好ましい。
【００２５】
分割ポイント決定部１６の二次分割部１６１は、判断部１５によって判断された、一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、この基準テキストに後続する対象テキストの合成処理時間との関係に応じて、一次区切子とは異なる二次区切子の位置に基づいて対象テキストをさらに分割する。二次区切り子は、一次区切子と同様に、「、」、「。」その他の句読点記号、「！」その他の感嘆符記号、「？」その他の疑問符記号、「」、｛｝、（）その他の括弧記号、又は＄、￥、＆その他の特殊記号から選択された記号である。
【００２６】
二次分割部１６１は、二次分割部１６１は、判断部１５により判断された、一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、対象テキストを分割して得た二次分割テキストの合成処理時間との関係に応じて、二次分割テキストの分割位置を入力テキストの分割位置として決定する。基準テキストの読み上げ所要時間と、対象テキストの合成処理時間との関係が、基準テキストの読み上げ完了までに対象テキストの合成処理が完了しない場合の関係である場合、具体的には、基準テキストの読み上げ時間が、対象テキストの合成処理時間よりも短い場合、対象テキストを一次区切子とは異なる二次区切子でさらに分割し、分割テキスト分割位置を修正する。これにより、基準テキストの読み上げ完了までに対象テキストの合成処理が完了するように入力テキストを分割することができる。
【００２７】
分割ポイント決定部１６の結合部１６１は、判断部１５により判断された、一次分割テキストの中から選択された基準テキストの読み上げ所要時間と、対象テキストを分割して得た二次分割テキストの合成処理時間との関係に応じて基準テキストと当該基準テキストに続く対象テキストとを結合し、当該結合した基準テキストの前と対象テキストの後を分割ポイントとして決定し、これら基準テキストと対象テキストの結合テキストを分割テキストとする。具体的に、結合部１６１は、一次分割テキストの中から選択された基準テキストの読み上げ所要時間が、対象テキストをさらに分割して得た二次分割テキストの合成処理時間よりも短い場合、基準テキストとこの基準テキストに続く対象テキストとを結合し、この結合した結合テキストを分割テキストとして決定する。
【００２８】
分割ポイント決定部１６により決定された分割ポイントで分割された分割テキストは、順次、合成処理手段２０へ送出される。入力テキストの全部について分割ポイントが決定された段階で、分割テキストを合成処理手段２０へ送出してもよい。合成処理手段２０及び出力手段３０の機能は、上述したとおりである。
【００２９】
次に、本実施形態の音声合成装置１００の制御手順を図５に基づいて説明する。テキスト取得部１１は、入力テキストを取得する（Ｓ１０４１）。一次分割部１２は、入力テキストを分割する。入力テキストの一部を切り出すことができるように分割できればよく、その手法は特に限定されないが、一次分割部１２は、予め設定した一次区切子の位置に基づいて入力テキストを分割する（Ｓ１０４２）。読み上げ所要時間算出部１３は、Ｓ１０４２で分割された一次分割テキストの中から基準テキストを選択し、これを取得する（Ｓ１０４３）。処理開始時において選択される基準テキストＴ[i]は、入力テキストの先頭に位置する一次分割テキストＴ[1]（ｉ＝１）であることが好ましい。処理が進むに従い、先頭の一次分割テキストに連なる分割テキストを順次選択することが好ましい（１ルーチン完了ごとにｉを１ずつ増加させる）。Ｓ１０４３で基準テキストが取得できればＳ１０４３へ進み、取得できなければＳ１０５の言語処理、すなわち音声の合成処理へ進む。
【００３０】
読み上げ所要時間算出部１３は、入力テキストの一部又は基準テキストの読み上げ所要時間を、これらのバイト数に基づいて算出する（Ｓ１０４４）。同様に入力テキストの後続部分又は基準テキストの音声合成処理時間を、これらのバイト数に基づいて算出する（Ｓ１０４５）。
【００３１】
Ｓ１０４３で取得された基準テキストに後続する対象テキスト（又は取得された入力テキストの一部に続く他の入力テキスト部分）の音声を合成するための合成処理時間を、これらのバイト数に基づいて算出する（Ｓ１０４７）。同様に後続の入力テキストの一部又は対象テキストの音声合成処理時間を、これらのバイト数に基づいて算出する（Ｓ１０４８）。
【００３２】
次に、基準テキスト（入力テキストの一部）の音声合成処理完了から、これに後続する対象テキスト（入力テキストの後続部分）の音声合成処理完了までの時間Ｓを算出する（Ｓ１０４９）。基準テキストが入力テキストの最初部分を含む場合は、時間Ｓは対象テキスト（入力テキストの後続部分）の音声合成処理時間のみとなる。
【００３３】
判断部１５は、基準テキスト（入力テキストの一部）の読み上げ所要時間と、対象テキスト（入力テキストの後続部分）の合成処理時間との関係を判断し、分割ポイント決定部１６は、判断部１５により判断された関係が所定の関係であるか否かを判断する（Ｓ１０５０）。所定の関係は、先のテキスト（基準テキスト、入力テキストの一部）の読み上げが完了するまでに、これに後続するテキスト（対象テキスト、入力テキストの後続部分）の音声合成処理が完了するか否かの観点から設定される。例えば、基準テキスト（入力テキストの一部）の読み上げ所要時間Ｔｓ[i]と、対象テキスト（入力テキストの後続部分）の合成処理時間Ｔｃ[ｊ]との大小関係（長短関係）において、基準テキスト（入力テキストの一部）の読み上げ所要時間が、対象テキスト（入力テキストの後続部分）の合成処理時間よりも大きいか否かを判断する。本実施形態では、基準テキストの読み上げ所要時間Ｔｓ[i]が、対象テキストの音声合成処完了までの時間Ｓよりも大きいか否かを判断する。
【００３４】
S１０５０において、所定の関係を満たすと判断された場合、Ｓ１０５１に進み、分割ポイント決定部１６は、基準テキストＴ[ｉ]（入力テキストの一部）の前後で入力テキストを分割する。すなわち、基準テキストＴ[ｉ]の前後が分割ポイントとし、基準テキストＴ[ｉ]を分割テキストとする（Ｓ１０５１）。この基準テキストT[i]に後続する一次分割テキストＴ[ｉ+1]を、次の基準テキストＴ[ｉ]とし、ステップS１０４３へ戻る（Ｓ１０５１）。
【００３５】
S１０５０において、所定の関係を満たさないと判断された場合、Ｓ１０５３に進む。分割ポイント決定部１６は、対象テキストＴ[ｊ]を、一次区切子とは異なる二次区切子の位置に基づいてさらに分割し、二次分割テキストを得る（Ｓ１０５３）。
【００３６】
音声合成処理時間算出部１４は、二次分割テキストのそれぞれの音声合成処理時間を算出する。
【００３７】
判断部１５は、基準テキスト（入力テキストの一部）の読み上げ所要時間と、二次分割テキストの合成処理時間との関係を判断し、分割ポイント決定部１６は、判断部１５により判断された関係が所定の関係であるか否かを判断する（Ｓ１０５５）。所定の関係は、先のテキスト（基準テキスト、入力テキストの一部）の読み上げが完了するまでに、これに後続するテキスト（対象テキスト、入力テキストの後続部分）の二次分割テキストの音声合成処理が完了するか否かの観点から設定される。例えば、基準テキスト（入力テキストの一部）の読み上げ所要時間Ｔｓ[i]と、二次分割テキストの合成処理時間Ｔｃ[ｊｎ]（ｎは自然数）との大小関係（長短関係）において、基準テキスト（入力テキストの一部）の読み上げ所要時間と二次分割テキストの合成処理時間との差が所定値以下であるか否かを判断する。Ｓ１０５５において、所定の関係を満たすと判断された場合、インデックスｉを１に設定し、Ｓ１０４３に戻る。他方、Ｓ１０５５において、所定の関係を満たさないと判断された場合、基準テキストＴ[i]と対象テキストT[ｊ]を結合し（Ｓ１０５６）、その結合した分割テキストのインデックスｉを１に設定し、Ｓ１０４３に戻る。
【００３８】
＜実施例１＞
次に、本実施形態の具体的な処理を説明するため、本処理の実施例を図６〜図９に基づいて説明する。
【００３９】
図６は、本実施形態の具体的な処理を示すフローチャート図である。分割処理の開始により（Ｓ１４０１）、入力テキストを取得する（Ｓ１４０２）。一次分割部１２は、取得した入力テキストを一次区切子、例えば「、」句読点で分割し（Ｓ１４０３）、分割した一次分割テキストにインデックス値ｉを付与する。初期値はｉ＝１とする（Ｓ１４０４）。インデックス値を用いて、ｉ番目の分割テキストである基準テキストＴ［ｉ］を選択し、これを取得する（Ｓ１４０５）。本例では、インデックス値ｉが昇順となるように、最初（ｉ＝１）の一次分割テキストから順次Ｔ[ｉ]を取得する。取得できなければ、それまでに得た一時分割テキストの音声合成処理（Ｓ１４３０）を行う。基準テキスト（一次分割テキスト）Ｔ[ｉ]を取得できたらＳ１４０６へ進み、読み上げ所要時間算出部１３が一次分割テキストＴ[ｉ]の音声処理時間Ｔｃ[ｉ]を算出し、音声合成処理時間算出部１４が音声読み上げ時間Ｔｓ[ｉ]を算出する（Ｓ１４０６）。
【００４０】
次に、基準テキストに後続する対象テキストを取得する。本例では、対象テキストのインデックス値を表す変数ｊの値をｉ＋１に設定する（Ｓ１４０７）。対象テキスト（一次分割テキスト）Ｔ[ｊ]を取得する（Ｓ１４０８）。取得できなければ、それまでに得た一時分割テキストの音声合成処理（Ｓ１４３０）を行う。対象テキストＴ[ｊ]を取得できたらＳ１４０９へ進み、読み上げ所要時間算出部１３が対象テキスト（一次分割テキスト）Ｔ[ｊ]の音声処理時間Ｔｃ[ｊ]を算出し、音声合成処理時間算出部１４が音声読み上げ時間Ｔｓ[ｊ]を算出する（Ｓ１４０９）。
【００４１】
インデックス値ｉ＝ｊで指定された対象テキスト（一次分割テキスト）Ｔ［ｊ］についての音声合成処理の合計時間を表す変数をＳ（初期値を０とする）と置き、ＳとＴｃ[ｊ]の和をＳに代入する（Ｓ１４１０）。ステップ１４０６で算出した読み上げ時間Ｔｓ[ｉ]と、ステップ１４１０で算出した音声合成処理時間Sの値を比較し、Ｔｓ[ｉ]の方が長い場合は、Ｓ１４１２へ進み、小さい場合Ｓ１４１４へ進む（Ｓ１４１１）。
【００４２】
前後の分割テキストの音声読み上げに要する時間、音声構成処理に要する時間を算出できたら、前の分割テキストの要する時間と、これに後続する分割テキストの音声合成処理時間の長短を比較する。
【００４３】
ステップ１４１１において、判断部１５は、選択された基準テキストの読み上げ所要時間と、対象テキストの合成処理時間との関係を判断する。Ｔｓ[ｉ]がＳよりも大きいと判断された場合、インデックス値ｊで指定された分割テキストＴ［ｊ］の結合文字列を格納する変数をｓｔｒ（初期値はｎｕｌｌ）と置き、ｓｔｒとＴ［ｊ］を結合した文字列をｓｔｒに格納する（Ｓ１４１２）。他方、Ｔｓ[ｉ]がＳよりも小さいと判断された場合、ステップＳ１４１４へ進む。Ｔｓ［ｉ］と音声合成処理合計時間Ｓの値の大小関係を検証することによって、対象のテキストの読み上げ中に、それ以降に続くテキストのどこまでが音声合成処理可能かを判断することができる。
【００４４】
Ｓ１４１１において、Ｔｓ［ｉ］がＳより大きいと判断された場合、インデックス値ｊで指定された対象テキスト（一次分割テキスト）Ｔ［ｊ］の結合文字列を文字列用のプールに一時的に格納する。本例では、Ｔ［ｊ］の結合文字列を格納する変数をｓｔｒ（初期値はｎｕｌｌ）と置き、ｓｔｒとＴ［ｊ］を結合した文字列をｓｔｒに格納する（Ｓ１４１２）。次のインデックス値の分割文字列を処理の対象とするため、インデックス値ｊの値に１を加算する（Ｓ１４１３）。以上のように、Ｓ１４０５からＳ１４１３までの処理を繰り返し実行することにより、Ｔ［ｉ］のテキストの読み上げ中に音声合成処理をすべき分割テキストを生成することができる。
【００４５】
次に、Ｔ［ｉ］の読み上げ時間Ｔｓ［ｉ］とＳを加算した値からＴｃ［ｊ］を減算し、その値とＴｃ［ｊ］の値を比較する（Ｓ１４１４）。ここでは、読み上げ処理を行っている間に、次の分割テキストの音声合成処理をその時間内に完了できるかどうかを検査するための処理を行っている。ちなみに、Ｓ１４１４で「Ｔs[ｉ] ＋Ｓ−Ｔｃ[ｊ]＞Ｔｃ[ｊ]」のようにＳからＴｃ[ｊ]の値を減算したのは以下の理由による。つまり、Ｓ１４１１の判断処理においてＳにＴｃ[ｊ]の値を加算したものを用いているが、Ｓ１４１１で上段のループを抜けた段階においては、Ｓに加算されたＴｃ[ｊ]は余分であるため、その後の処理ではＳからＴｃ[ｊ]の値を減算するものである。
【００４６】
ここで、時間内に完了できると判断された場合はステップＳ１４１５に進み、時間内に完了できないと判断された場合はステップＳ１４１６に進む。
【００４７】
Ｓ１４１５では、次の一次分割テキストを処理の対象とするために、インデックス値ｉの値に１を加算する。Ｓ１４１６では、ステップＳＳ１４０３で用いた区切子（一次区切子）とは異なる区切子（二次区切子）を用いて一次分割テキスト（対象テキスト）Ｔ［ｊ］をさらに分割する（Ｓ１４１６）。
【００４８】
次に、Ｓ１４１４で用いたＴ［ｉ］の読み上げ時間Ｔｓ［ｉ］とＳを加算した値からＴｃ［ｊ］を減算した値と、ステップＳ１４１６で生成した各二次分割テキストの音声合成処理時間を比較し、前者の方が大きい場合（前者がすべての二次分割テキストのいずれよりも大きい場合）はＳ１４１８に進み、後者の方が大きい場合はステップＳ１４１９に進む（Ｓ１４１７）。
【００４９】
ステップＳ１４１７において、前者の方が大きいと判断された場合、Ｓ１４１６で生成された最初の二次分割テキストの音声読み上げ時間と、２つ目以降の二次分割テキストの音声合成時間をそれぞれ比較し、すべての二次分割テキストに対して、最初の二次分割テキストの音声読み上げ時間の方が長い場合はステップＳ１４２０に進み、短い場合はステップＳ１４１９に進む（ステップＳ１４１８）。ここで前後のテキストの読み上げ時間と音声合成処理時間を比較することにより、分割した結果、音声合成処理完了までの待ち時間が発生しないかどうかを検査することができる。
【００５０】
各ステップからステップＳ１４１９に進んだ場合の処理を説明する。ステップＳ１４１９に進んだ場合、前の分割テキスト（本例では一次分割テキストＴｉ）の音声読み上げ時間よりも、後の分割テキスト（一時分割テキストＴｊ）の音声合成時間の方が長くなるため、音声読み上げ中に処理待ち時間が発生する。したがって、それを解決するためにステップＳ１４０５で取得したＴ［ｉ］と、ステップＳ１４１２で生成した文字列ｓｔｒを結合する処理を行う（ステップＳ１４１９）。
【００５１】
次に、ステップＳ１４２０で実行する処理を説明する。ここでは、ステップＳ１４１６やステップＳ１４１９においてテキストの分割／結合処理を行っているため、これまでに生成した分割テキストとの整合性が取れなくなる可能性があるため、最初の分割テキストから整合性チェックを行うために、インデックス値ｉの値を１に設定し（Ｔ[１]）、ステップＳ１４０５に戻る（Ｓ１４２０）。
【００５２】
以上の処理を実行し、最終的に入力テキストの分割位置がすべて決定した段階で先述した音声合成処理を実行する（Ｓ１４３０）。
【００５３】
次に、図６で示したフローチャートに従って、サンプル入力テキストを入力した場合の処理を具体的に説明する。
【００５４】
図７は、本処理が行われるサンプル入力テキストを説明するための図である。サンプルテキストの長さは１２であり、このテキストの音声合成処理に要する時間と音声読み上げに要する時間はそれぞれ１２になると仮定する。
【００５５】
図７の最上段に示す帯は、本実施形態で処理される入力テキストを模式的に示すものである。入力テキスト全体の読み上げ時間Ｔｓ[ａｌｌ]は１２であり、音声合成処理時間Ｔｃ[ａｌｌ]は１２である。この数字は時間を定量的に表現するための数値であり、絶対的な時間長に比例する値である。その下に示した一次分割テキストは、入力テキストを一次区切子で分割した一次分割テキストである。入力テキストは、Ｔ１〜Ｔ４の４つの一次分割テキストに分割されている。各一次分割テキストの読み上げ所要時間Ｔｓ[ｎ]と、Ｔｃ[ｎ]は、Ｔｓ[１]＝４,Ｔｃ[１]＝４，Ｔｓ[２]＝２，Ｔｃ[２]＝２，Ｔｓ[３]＝５，Ｔｃ[３]＝５,Ｔｓ[４]＝１,Ｔｃ[４]＝１である。本例では説明を明瞭にするため、各一次分割テキストの読み上げ所要時間と音声合成処理時間を同じ値としたが、必ず同値になるものではない。
【００５６】
図７の第３列に分割テキストＴ１からＴ４を順次音声合成した場合のタイムチャートを示し、第４列に分割テキストＴ１からＴ４を読み上げた場合のタイムチャートを示した。Ｔ１の音声合成処理が終了してからＴ１の読み上げを開始する。第４列に示すように、一次区切子で分割しただけでは、Ｔ２の一次分割テキストの読み上げが完了したタイミングでＴ３の音声合成処理が完了していないため、Ｔ２の読み上げ完了からＴ３の読み上げ開始までにＴ３の音声合成処理の待機時間が発声し、無音の状態が発生する。
【００５７】
図７のサンプル入力テキストに対して図６の処理を行う。
【００５８】
ステップＳ１４０３において、（４，２，５，１）に分割されたとする。Ｓ１４０４でインデックス値が１となるので、Ｓ１４０５で長さ４の一次分割テキストが取得される。Ｓ１４０６で、音声合成処理時間、音声読み上げ時間が、それぞれ４と算出され、Ｓ１４０８において、次の長さ２の一次分割テキストが取得される。Ｓ１４０９で、音声合成処理時間、音声読み上げ時間はそれぞれ２と算出される。Ｓ１４１１で４と２を比較し、ここではＳ１４１２に進む。ｓｔｒにＴ２を格納する（Ｓ１４１２）。対象テキストのインデックスを２から３に繰り上げて、Ｓ１４０８に戻る。次に長さ５の一次分割テキストＴ３が取得される。Ｓ１４０９で、音声合成処理時間、音声読み上げ時間が、それぞれ５と算出され、Ｓ１４１０でＳ＝２＋５＝７となる。Ｓ１４１１において、４と７を比較し、Ｓ１４１４に進む。Ｓ１４１４では左辺が６（４＋７−５）で右辺が５であるため、Ｓ１４１５に進むみ、基準テキストのインデックス値ｉを１つ繰り上げて、Ｓ１４０５へ戻る。
【００５９】
次のインデックスｉの値は「２」となるので、Ｓ１４０６で２が取得される。上記と同様の処理を繰り返すと、Ｓ１４１１では、左辺＝２,右辺＝５となり、S１４１４へ進む。Ｓ１４１４では、左辺＝２＋５−５＝２、右辺＝５となるため、ステップＳ１４１６に処理が進む。
【００６０】
Ｓ１４１６では長さ５のテキストをさらに細かく分割することを試みる。ここで例えば分割できなかった場合、Ｓ１４１９に進み、分割テキストは（４，７，１）となる。
【００６１】
次にインデックス値ｉの初期値ｉを１として再度インデックス値を振りなおし（Ｔ１＝４，Ｔ２＝７，Ｔ３＝１）、処理を繰り返す。Ｓ１４１１で、Ｔ（ｓ１）＝４とＴｃ´２（Ｔｃ２＋Ｔｃ３）＝７とを比較し、Ｓ１４１４に進む。次にＳ１４１４からＳ１４１６に進み、ここで再度（４，２，５，１）に分割される。
【００６２】
ここで、Ｓ１４１７において、左辺＝４＋７−７＝４、右辺＝２，５，１となり、４と右辺の各数を比較し、１４１９に進む。ここで、Ｔ[ｉ]とこれに後続する二次分割テキストが結合され、６，５，１いうテキスト構成になる。
【００６３】
最初の一次分割テキストのインデックス値ｉを再度１に設定し、一次分割テキスト（Ｔ１,Ｔ２，Ｔ３＝（６，５，１）についてＳ１４０５から処理を繰り返すと、この構成でＳ１４３０に到達することになる。
【００６４】
図８は、本実施形態の処理によりＴ３（長さ５）がＴ３１（長さ２）とＴ３２（長さ３）とに分割されて、（５，２，２，３，１）となった場合の例である。図８の第３、第４段に示した音声合成及び読み上げのタイムチャートに示すように、図７の分割例では読み上げ開始までに音声合成処理が終了しなかったＴ３を２つに分割することにより、音声合成処理の待機時間の発生を防止することができる。
【００６５】
図９は、本実施形態の処理によりＴ１（長さ４）とＴ２（長さ４）とを結合して（６，５，１）となった場合の例である。図９の第３、第４段に示した音声合成及び読み上げのタイムチャートに示すように、図７の分割例では読み上げ開始までに音声合成処理が終了しなかった３の前に位置するＴ１とＴ２を結合することにより、音声合成処理の待機時間の発生を防止することができる。
【００６６】
本実施形態によれば、音声合成処理を行う対象となる入力テキストを、最適な位置で分割し、音声合成処理を行うことにより、入力テキストの構成に関わらず、音声読み上げ中の音声合成処理の待ち時間の発生を抑制することができる。その結果、テキストの読み上げをユーザにとって聞き取り易くすることができる。
【００６７】
本実施形態では、適切な位置で入力テキストの分割を行うため、従来のように、分割処理がすべて完了してから音声合成処理を行う必要がない。このため、テキストの分割処理と、音声の合成処理、音声の出力処理を同時に行うことができる。その結果、音声読み上げ開始までの時間を短縮することができ、音声出力の遅れを低減させることができる。特に、入力テキストのデータ量が大きい場合には、分割処理を行いながら音声合成処理を行うことができるので、システム全体の処理を早めることができる。
【００６８】
本実施形態では、前の分割テキスト（トークン）の読み上げ中にこれに後続する分割テキストの音声合成処理をできるところまでの分割テキストを結合して処理を行う。これにより、分割された分割テキストの文字数によってはさらに分割処理が発生するような場合でも、前後の分割テキストを結合することにより、それを回避することができる。また、分割テキストの数が増加した場合に生じる処理発生を低減させることができ、システム全体の効率化を図ることができる。
【００６９】
なお、以上説明した実施形態は、本発明の理解を容易にするために記載されたものであって、本発明を限定するために記載されたものではない。したがって、上記の実施形態に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物をも含む趣旨である。
【図面の簡単な説明】
【００７０】
【図１】本実施形態の音声合成装置を含む車載システムのブロック構成図である。
【図２】図１に示す車載システムの動作手順を示すフローチャート図である。
【図３】テキストの分割処理及び音声合成処理の動作手順を示すフローチャート図である。
【図４】本実施形態の音声合成装置のブロック構成図である。
【図５】本実施形態の音声合成装置の制御手順を示すフローチャート図である。
【図６】本実施形態の音声合成処理の具体例を示すフローチャート図である。
【図７】入力テキストの一例を説明するための図である。
【図８】本実施形態による処理例を説明するための図である。
【図９】本実施形態による他の処理例を説明するための図である。
【符号の説明】
【００７１】
１０００…車載システム
２０００…コンテンツプロバイダのサーバ
１００…音声合成装置
１０…テキスト分割手段
１１…テキスト取得部
１２…一次分割部
１３…読み上げ所要時間算出部
１４…音声合成処理時間算出部
１５…判断部
１６…分割ポイント決定部
１６１…二次分割部
１６２…結合部
２０…合成処理手段
２１…言語処理部
２２…音響処理部
２３…記憶部
３０・・・出力手段
【図１】
2008064972.tif 000003
【図２】
2008064972.tif 000004
【図３】
2008064972.tif 000005
【図４】
2008064972.tif 000006
【図５】
2008064972.tif 000007
【図６】
2008064972.tif 000008
【図７】
2008064972.tif 000009
【図８】
2008064972.tif 000010
【図９】
2008064972.tif 000011