(57)【要約】      （修正有）【課題】音切れを十分に抑制することができる音声合成装置を提供する。【解決手段】入力した合成単位列を合成を行うための処理単位に分割する。一つの処理単位に含まれる合成単位を出力する前に、合成単位の出力時から既に合成した音声の再生が完了するまでの余剰時間を処理単位毎に算出し順番に記憶する。記憶した処理単位毎の余剰時間から、予め設定した目標余剰時間をそれぞれ差し引いた処理単位毎の差分、処理単位毎の差分の積算値、メモリからのデータ取得時間、ＨＤＤからのデータ取得時間とに基づいて、ＨＤＤから抽出可能な合成素片の数である制御パラメータ値を処理単位毎に算出する。処理単位毎に、制御パラメータ値の範囲内でＨＤＤから合成単位に対応する合成素片を選択する。ＨＤＤから合成素片を抽出しなかった合成単位については、メモリから合成素片を選択する。両記憶部から選択した全ての合成素片から合成素片列を生成する。【選択図】図２
2009053336.tif 000002
【特許請求の範囲】
【請求項１】
音声を構成する要素である複数の合成単位からなる合成単位列の入力部と、
前記各合成単位に対応し、かつ、前記音声を生成するための複数の合成素片を格納し、前記合成単位に対応した前記合成素片の波形データを第１取得時間Ｔ１で抽出可能な第１素片記憶部と、
前記複数の合成素片を格納し、前記合成単位に対応した前記合成素片の波形データを第２取得時間Ｔ２（但し、Ｔ１＜Ｔ２である）で抽出可能な第２素片記憶部と、
前記入力した合成単位列について、合成を行うための処理単位に分割して、前記処理単位毎に分割した合成単位列を順番に出力する分割部と、
前記分割部から前記一つの処理単位に対応する合成単位列を出力する前に、前記合成単位列の出力時から既に合成した音声の再生が完了するまでの余剰時間を、前記処理単位毎に算出する時間算出部と、
前記余剰時間を前記処理単位毎に順番に記憶する時間記憶部と、
（１）前記記憶した処理単位毎の余剰時間から、予め設定した目標余剰時間をそれぞれ差し引いた前記処理単位毎の差分、（２）前記処理単位毎の差分の積算値、（３）前記第１取得時間Ｔ１、（４）前記第２取得時間Ｔ２とに基づいて、前記第２素片記憶部から抽出可能な合成素片の数である制御パラメータ値を前記処理単位毎に算出する制御パラメータ決定部と、
前記処理単位毎に、（１）前記制御パラメータ値の範囲内で前記第２素片記憶部から前記合成単位に対応する前記合成素片を選択し、（２）前記第２素片記憶部から前記合成素片を抽出しなかった前記合成単位については、前記第１素片記憶部から前記合成素片を選択し、（３）前記両記憶部から選択した全ての前記合成素片から合成素片列を生成する合成素片選択部と、
前記合成素片列に含まれる複数の合成素片の波形データを、前記第１素片記憶部と前記第２素片記憶部とからそれぞれ抽出し、接続して音声波形を生成する波形生成部と、
前記生成した音声波形を順番に再生する音声出力部と、
を有する音声合成装置。
【請求項２】
音声を構成する要素である複数の合成単位からなる合成単位列の入力部と、
前記各合成単位に対応し、かつ、前記音声を生成するための複数の合成素片を格納した素片記憶部と、
前記入力した合成単位列について、合成を行うための処理単位に分割して、前記処理単位毎に分割した合成単位列を順番に出力する分割部と、
前記分割部から前記一つの処理単位に対応する合成単位列を出力する前に、前記合成単位列の出力時から既に合成した音声の再生が完了するまでの余剰時間を、前記処理単位毎に算出する時間算出部と、
前記余剰時間を前記処理単位毎に順番に記憶する時間記憶部と、
（１）前記記憶した処理単位毎の余剰時間から、予め設定した目標余剰時間をそれぞれ差し引いた前記処理単位毎の差分、（２）前記処理単位毎の差分の積算値、（３）前記合成単位に対応する全ての合成素片について、前記各合成素片と前記合成単位との対応関係の適合度を示す前記第１評価値をそれぞれ算出する第１処理時間、（４）前記予備の合成素片間を接続する系列のそれぞれについて、前記接続の適正を示す前記第２評価値を算出する第２処理時間とに基づいて、（５）前記合成素片の予備選択数を示す第１制御パラメータ値と、予備に選択した前記合成素片間を接続する合成素片列数を示す第２制御パラメータ値とを前記処理単位毎に算出する制御パラメータ決定部と、
前記処理単位毎に、前記第１制御パラメータ値の範囲内の前記予備選択数で、かつ、前記第２制御パラメータ値の範囲内の前記合成素片列数に基づいて、前記合成単位に対応する前記合成素片を選択し、前記選択した全ての合成素片から合成素片列を生成する合成素片選択部と、
前記合成素片列に含まれる複数の合成素片の波形データを、前記素片記憶部からそれぞれ抽出し、接続して音声波形を生成する波形生成部と、
前記生成した音声波形を順番に再生する音声出力部と、
を有する音声合成装置。
【請求項３】
前記時間算出部は、前記出力時に再生されていない合成音声の量を検出して前記余剰時間を算出する、
請求項１または２記載の音声合成装置。
【請求項４】
前記音声出力部は、前記生成した音声の生成量の総和を記憶し、
前記時間算出部は、前記生成量の総和と、前記合成音声の再生を開始する時刻と、前記出力する時刻とから、前記余剰時間を算出する、
請求項１または２記載の音声合成装置。
【請求項５】
音声を構成する要素である複数の合成単位からなる合成単位列の入力部と、
前記各合成単位に対応し、かつ、前記音声を生成するための複数の合成素片を格納し、前記合成単位に対応した前記合成素片の波形データを第１取得時間Ｔ１で抽出可能な第１素片記憶部と、
前記複数の合成素片を格納し、前記合成単位に対応した前記合成素片の波形データを第２取得時間Ｔ２（但し、Ｔ１＜Ｔ２である）で抽出可能な第２素片記憶部と、
を有する装置で用いる音声合成方法において、
前記入力した合成単位列について、合成を行うための処理単位に分割して、前記処理単位毎に分割した合成単位列を順番に出力する分割ステップと、
前記分割部から前記一つの処理単位に対応する合成単位列を出力する前に、前記合成単位列の出力時から既に合成した音声の再生が完了するまでの余剰時間を、前記処理単位毎に算出する時間算出ステップと、
前記余剰時間を前記処理単位毎に順番に記憶する時間記憶部と、
（１）前記記憶した処理単位毎の余剰時間から、予め設定した目標余剰時間をそれぞれ差し引いた前記処理単位毎の差分、（２）前記処理単位毎の差分の積算値、（３）前記第１取得時間Ｔ１、（４）前記第２取得時間Ｔ２とに基づいて、前記第２素片記憶部から抽出可能な合成素片の数である制御パラメータ値を前記処理単位毎に算出する制御パラメータ決定ステップと、
前記処理単位毎に、（１）前記制御パラメータ値の範囲内で前記第２素片記憶部から前記合成単位に対応する前記合成素片を選択し、（２）前記第２素片記憶部から前記合成素片を抽出しなかった前記合成単位については、前記第１素片記憶部から前記合成素片を選択し、（３）前記両記憶部から選択した全ての前記合成素片から合成素片列を生成する合成素片選択ステップと、
前記合成素片列に含まれる複数の合成素片の波形データを、前記第１素片記憶部と前記第２素片記憶部とからそれぞれ抽出し、接続して音声波形を生成する波形生成ステップと、
前記生成した音声波形を順番に再生する音声出力ステップと、
を有する音声合成方法。
【請求項６】
音声を構成する要素である複数の合成単位からなる合成単位列の入力ステップと、
前記入力した合成単位列について、合成を行うための処理単位に分割して、前記処理単位毎に分割した合成単位列を順番に出力する分割ステップと、
前記分割部から前記一つの処理単位に対応する合成単位列を出力する前に、前記合成単位列の出力時から既に合成した音声の再生が完了するまでの余剰時間を、前記処理単位毎に算出する時間算出ステップと、
前記余剰時間を前記処理単位毎に順番に記憶する時間記憶部と、
（１）前記記憶した処理単位毎の余剰時間から、予め設定した目標余剰時間をそれぞれ差し引いた前記処理単位毎の差分、（２）前記処理単位毎の差分の積算値、（３）前記合成単位に対応する全ての合成素片について、前記各合成素片と前記合成単位との対応関係の適合度を示す前記第１評価値をそれぞれ算出する第１処理時間、（４）前記予備の合成素片間を接続する系列のそれぞれについて、前記接続の適正を示す前記第２評価値を算出する第２処理時間とに基づいて、（５）前記合成素片の予備選択数を示す第１制御パラメータ値と、予備に選択した前記合成素片間を接続する合成素片列数を示す第２制御パラメータ値とを前記処理単位毎に算出する制御パラメータ決定ステップと、
前記処理単位毎に、前記第１制御パラメータ値の範囲内の前記予備選択数で、かつ、前記第２制御パラメータ値の範囲内の前記合成素片列数に基づいて、前記合成単位に対応する前記合成素片を選択し、前記選択した全ての合成素片から合成素片列を生成する合成素片選択ステップと、
前記合成素片列に含まれる複数の合成素片の波形データを、前記素片記憶部からそれぞれ抽出し、接続して音声波形を生成する波形生成ステップと、
前記生成した音声波形を順番に再生する音声出力ステップと、
を有する音声合成方法。
【請求項７】
前記時間算出ステップは、前記出力時に再生されていない合成音声の量を検出して前記余剰時間を算出する、
請求項５または６記載の音声合成方法。
【請求項８】
前記音声出力ステップは、前記生成した音声の生成量の総和を記憶し、
前記時間算出ステップは、前記生成量の総和と、前記合成音声の再生を開始する時刻と、前記出力する時刻とから、前記余剰時間を算出する、
請求項５または６記載の音声合成方法。
【請求項９】
音声を構成する要素である複数の合成単位からなる合成単位列の入力部と、
前記各合成単位に対応し、かつ、前記音声を生成するための複数の合成素片を格納し、前記合成単位に対応した前記合成素片の波形データを第１取得時間Ｔ１で抽出可能な第１素片記憶部と、
前記複数の合成素片を格納し、前記合成単位に対応した前記合成素片の波形データを第２取得時間Ｔ２（但し、Ｔ１＜Ｔ２である）で抽出可能な第２素片記憶部と、
を有するコンピュータによって実現する音声合成プログラムにおいて、
前記入力した合成単位列について、合成を行うための処理単位に分割して、前記処理単位毎に分割した合成単位列を順番に出力する分割機能と、
前記分割部から前記一つの処理単位に対応する合成単位列を出力する前に、前記合成単位列の出力時から既に合成した音声の再生が完了するまでの余剰時間を、前記処理単位毎に算出する時間算出機能と、
前記余剰時間を前記処理単位毎に順番に記憶する時間記憶部と、
（１）前記記憶した処理単位毎の余剰時間から、予め設定した目標余剰時間をそれぞれ差し引いた前記処理単位毎の差分、（２）前記処理単位毎の差分の積算値、（３）前記第１取得時間Ｔ１、（４）前記第２取得時間Ｔ２とに基づいて、前記第２素片記憶部から抽出可能な合成素片の数である制御パラメータ値を前記処理単位毎に算出する制御パラメータ決定機能と、
前記処理単位毎に、（１）前記制御パラメータ値の範囲内で前記第２素片記憶部から前記合成単位に対応する前記合成素片を選択し、（２）前記第２素片記憶部から前記合成素片を抽出しなかった前記合成単位については、前記第１素片記憶部から前記合成素片を選択し、（３）前記両記憶部から選択した全ての前記合成素片から合成素片列を生成する合成素片選択機能と、
前記合成素片列に含まれる複数の合成素片の波形データを、前記第１素片記憶部と前記第２素片記憶部とからそれぞれ抽出し、接続して音声波形を生成する波形生成機能と、
前記生成した音声波形を順番に再生する音声出力機能と、
を実現する音声合成プログラム。
【請求項１０】
音声を構成する要素である複数の合成単位からなる合成単位列の入力機能と、
前記入力した合成単位列について、合成を行うための処理単位に分割して、前記処理単位毎に分割した合成単位列を順番に出力する分割機能と、
前記分割部から前記一つの処理単位に対応する合成単位列を出力する前に、前記合成単位列の出力時から既に合成した音声の再生が完了するまでの余剰時間を、前記処理単位毎に算出する時間算出機能と、
前記余剰時間を前記処理単位毎に順番に記憶する時間記憶部と、
（１）前記記憶した処理単位毎の余剰時間から、予め設定した目標余剰時間をそれぞれ差し引いた前記処理単位毎の差分、（２）前記処理単位毎の差分の積算値、（３）前記合成単位に対応する全ての合成素片について、前記各合成素片と前記合成単位との対応関係の適合度を示す前記第１評価値をそれぞれ算出する第１処理時間、（４）前記予備の合成素片間を接続する系列のそれぞれについて、前記接続の適正を示す前記第２評価値を算出する第２処理時間とに基づいて、（５）前記合成素片の予備選択数を示す第１制御パラメータ値と、予備に選択した前記合成素片間を接続する合成素片列数を示す第２制御パラメータ値とを前記処理単位毎に算出する制御パラメータ決定機能と、
前記処理単位毎に、前記第１制御パラメータ値の範囲内の前記予備選択数で、かつ、前記第２制御パラメータ値の範囲内の前記合成素片列数に基づいて、前記合成単位に対応する前記合成素片を選択し、前記選択した全ての合成素片から合成素片列を生成する合成素片選択機能と、
前記合成素片列に含まれる複数の合成素片の波形データを、素片記憶部からそれぞれ抽出し、接続して音声波形を生成する波形生成機能と、
前記生成した音声波形を順番に再生する音声出力機能と、
を実現する音声合成プログラム。
【請求項１１】
前記時間算出機能は、前記出力時に再生されていない合成音声の量を検出して前記余剰時間を算出する、
請求項９または１０記載の音声合成プログラム。
【請求項１２】
前記音声出力機能は、前記生成した音声の生成量の総和を記憶し、
前記時間算出機能は、前記生成量の総和と、前記合成音声の再生を開始する時刻と、前記出力する時刻とから、前記余剰時間を算出する、
請求項９または１０記載の音声合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に音素記号・音節記号などの音韻記号、または自然言語の表記に用いる文字の系列から音声を合成する音声合成装置及びその方法に関する。
【背景技術】
【０００２】
生成済みの合成音声を再生しながら順次的に合成音声を生成・追加する装置に利用される音声合成方法では、実時間性が強く求められ、生成済みの合成音声の再生が完了するまでに、後続する合成音声の生成・追加を行わなくてはならない。もし、そうできなかった場合には、文章の中途で音声が途切れる、いわゆる“音切れ”の状態が生起する。
【０００３】
このような強い実時間性が求められる音声合成方法では、特許文献１で示す方法がある。この方法は、生成済みの合成音声の蓄積量の検出値（瞬時値）に基づいて合成音声の生成時間に関わるパラメータを制御する方法が知られている。この方法では、検出された生成済み合成音声の蓄積量を、検出以後の処理で費やすことが許される処理時間の代替情報と捉え、蓄積量（＝余剰時間）が尽きないように前出のパラメータを制御している。
【０００４】
しかし、この方法には検出した余剰時間を記憶する手段がないため、検出された余剰時間を記憶し、系列として利用することができない。すなわち、過去のパラメータ決定時の余剰時間を利用することができない。よって、余剰時間の瞬時値に基づいて制御パラメータを決定しても、前回決定したパラメータの効果、すなわち、前回と今回の検出された余剰時間の差分（余剰時間の減少量）の程度を検証することができない。
【０００５】
一方、このような音声合成方法が実施されるコンピュータなどの装置（以下、実施装置という）においては、ＯＳ（Operating System）の管理の下に複数のプロセスが並列・並行処理を行っており、優先的に一定量のＰＵ（Processing Unit）やメモリなどのリソースの使用権をそれらの１つである音声合成プロセスにＯＳが与え続けることは稀である。すなわち、音声合成プロセスは、実施装置の環境変動の影響を常に受け続ける。よって、上記した処理時間に関わるパラメータの決定した数値の効果（余剰時間の実際の減少量）もまた、実施装置の環境の変動を強く受ける。
【０００６】
したがって、余剰時間の系列データに基づかない制御パラメータの決定方法を採る音声合成方法では、実施装置における音声合成プロセスの実行環境の変動が原因で起こる現象を検出することができない。すなわち、その現象とは、決定したある制御パラメータの数値の所要時間に関する効果が減退していることを検出することができない。そのため、環境変動を考慮して制御パラメータの修正を行うことができない。
【０００７】
よって、上記の従来技術の方法では、実時間性を十分に保つことができず、“音切れ”を十分に抑制できない。
【特許文献１】特許第３５８８２６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記したように、従来技術には、実施装置における音声合成プロセスの実行環境の変動が原因で起こる現象を検出できない。すなわち、決定したある制御パラメータの数値の所要時間に関する効果が減退していることを検出することができない。すなわち、余剰時間の減少量が増大していることを検出できない。
【０００９】
したがって、環境変動を考慮して制御パラメータの修正を行うことができないため、実時間性を十分に保つことができず、“音切れ”を十分に抑制できないという問題点があった。
【００１０】
そこで本発明は、上記解決するためになされたものであって、音切れを十分に抑制することができる音声合成装置及びその方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、音声を構成する要素である複数の合成単位からなる合成単位列の入力部と、前記各合成単位に対応し、かつ、前記音声を生成するための複数の合成素片を格納し、前記合成単位に対応した前記合成素片の波形データを第１取得時間Ｔ１で抽出可能な第１素片記憶部と、前記複数の合成素片を格納し、前記合成単位に対応した前記合成素片の波形データを第２取得時間Ｔ２（但し、Ｔ１＜Ｔ２である）で抽出可能な第２素片記憶部と、前記入力した合成単位列について、合成を行うための処理単位に分割して、前記処理単位毎に分割した合成単位列を順番に出力する分割部と、前記分割部から前記一つの処理単位に対応する合成単位列を出力する前に、前記合成単位列の出力時から既に合成した音声の再生が完了するまでの余剰時間を、前記処理単位毎に算出する時間算出部と、前記余剰時間を前記処理単位毎に順番に記憶する時間記憶部と、（１）前記記憶した処理単位毎の余剰時間から、予め設定した目標余剰時間をそれぞれ差し引いた前記処理単位毎の差分、（２）前記処理単位毎の差分の積算値、（３）前記第１取得時間Ｔ１、（４）前記第２取得時間Ｔ２とに基づいて、前記第２素片記憶部から抽出可能な合成素片の数である制御パラメータ値を前記処理単位毎に算出する制御パラメータ決定部と、前記処理単位毎に、（１）前記制御パラメータ値の範囲内で前記第２素片記憶部から前記合成単位に対応する前記合成素片を選択し、（２）前記第２素片記憶部から前記合成素片を抽出しなかった前記合成単位については、前記第１素片記憶部から前記合成素片を選択し、（３）前記両記憶部から選択した全ての前記合成素片から合成素片列を生成する合成素片選択部と、前記合成素片列に含まれる複数の合成素片の波形データを、前記第１素片記憶部と前記第２素片記憶部とからそれぞれ抽出し、接続して音声波形を生成する波形生成部と、前記生成した音声波形を順番に再生する音声出力部と、を有する音声合成装置である。
【００１２】
また、本発明は、音声を構成する要素である複数の合成単位からなる合成単位列の入力部と、前記各合成単位に対応し、かつ、前記音声を生成するための複数の合成素片を格納した素片記憶部と、前記入力した合成単位列について、合成を行うための処理単位に分割して、前記処理単位毎に分割した合成単位列を順番に出力する分割部と、前記分割部から前記一つの処理単位に対応する合成単位列を出力する前に、前記合成単位列の出力時から既に合成した音声の再生が完了するまでの余剰時間を、前記処理単位毎に算出する時間算出部と、前記余剰時間を前記処理単位毎に順番に記憶する時間記憶部と、（１）前記記憶した処理単位毎の余剰時間から、予め設定した目標余剰時間をそれぞれ差し引いた前記処理単位毎の差分、（２）前記処理単位毎の差分の積算値、（３）前記合成単位に対応する全ての合成素片について、前記各合成素片と前記合成単位との対応関係の適合度を示す前記第１評価値をそれぞれ算出する第１処理時間、（４）前記予備の合成素片間を接続する系列のそれぞれについて、前記接続の適正を示す前記第２評価値を算出する第２処理時間とに基づいて、（５）前記合成素片の予備選択数を示す第１制御パラメータ値と、予備に選択した前記合成素片間を接続する合成素片列数を示す第２制御パラメータ値とを前記処理単位毎に算出する制御パラメータ決定部と、前記処理単位毎に、前記第１制御パラメータ値の範囲内の前記予備選択数で、かつ、前記第２制御パラメータ値の範囲内の前記合成素片列数に基づいて、前記合成単位に対応する前記合成素片を選択し、前記選択した全ての合成素片から合成素片列を生成する合成素片選択部と、前記合成素片列に含まれる複数の合成素片の波形データを、前記素片記憶部からそれぞれ抽出し、接続して音声波形を生成する波形生成部と、前記生成した音声波形を順番に再生する音声出力部と、を有する音声合成装置である。
【発明の効果】
【００１３】
本発明によれば、音切れを十分に抑制しながら、順次的に合成音声を再生できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施形態について図面に基づいて説明する。
【００１５】
（用語の定義）
まず、実施形態を説明する前に、その実施形態で利用する用語を定義する。
【００１６】
「処理単位」とは、所定の制約を満たした複数個の合成単位の系列である。
【００１７】
「所定の制約」とは、例えば、個数や目標となる合成音声の各合成単位が対応する区間の継続時間長の総和などである。
【００１８】
「合成単位列」とは、複数個の合成単位の系列である。
【００１９】
「合成単位」とは、合成音声、または、人によって発話された音声を構成する基本となる要素であり、かつ、ある一定の共通特性を有する波形データの集合を複数個形成する際の単位の種類である。従来例では、半音素・音素・音節・Ｄｉｐｈｏｎｅ、ＣＶＣ・ＶＣＶ（Ｖは母音、Ｃは子音）などがある。
【００２０】
「音韻記号」とは、ある合成単位によってカテゴリー化された各集合に与えられたラベルに相当する。例えば、合成単位を音素にした場合、音素記号がこれに相当する。従来例では、音素記号・音声記号・音節記号やそれらの組み合わせなどがある。
【００２１】
「合成素片」とは、ある合成単位によってカテゴリー化された集合群の何れかに属する要素を表す。例えば、音素を合成単位とした場合、同一の音素記号が付与された収録音声のある１区間の波形データの集合には、一定の共通した特性をもつ波形データのみが属することとなる。これらの波形データに、波形データ以外の属性、例えば、発声対象である自然言語における当該区間の言語に関する属性（アクセント核からの距離、当該区間を含む単語の品詞など）や発声された音声の当該区間の音響属性（基本周波数など）に関する値（属性値）などを付与することで、一つの合成素片となる。
【００２２】
「素片属性」とは、合成素片が持つ波形データ以外の属性を表す。例えば、前述の言語に関する属性（言語属性）や音響属性なども含まれる。
【００２３】
「素片データ」とは、合成素片が有する属性に対する値（属性値）の総称である。例えば、各合成素片の波形データや素片属性「基本周波数」のデータなどを総称している。
【００２４】
「素片ＩＤ」とは、各合成素片が持ち、自他の合成素片を唯一に識別するための識別子である。
【００２５】
（第１の実施形態）
本発明の第１の実施形態の音声合成装置１０について図１〜図１１に基づいて説明する。
【００２６】
（１）音声合成装置１０の構成
図１は、本実施形態の音声合成装置１０を示すブロック図である。
【００２７】
音声合成装置１０は、テキスト取得部１１、言語処理部１２、韻律処理部１３、音声合成部１４、音声波形出力部１５から構成される。
【００２８】
各部１１〜１５の機能は、コンピュータに格納されたプログラムによっても実現できる。
【００２９】
テキスト取得部１１は、外部から音声合成の対象となるテキストデータを取得する。
【００３０】
言語処理部１２は、テキストデータに形態素解析・構文解析を行う。
【００３１】
韻律処理部１３は、テキストデータのアクセントや品詞などの韻律や言語に関わる属性に基づいて、合成単位列を音声合成部１４に出力する。この合成単位列を構成するそれぞれの合成単位には、音韻記号や目標とする韻律情報やそれが対応する区間を含むテキストに関わる言語情報などが付与されている。この合成単位列によって、目標とする合成音声が表現される。
【００３２】
音声合成部１４は、合成単位列から合成音声を生成する。
【００３３】
音声波形出力部１５は、出力された所定の量の合成音声を蓄積後、または所定の時間が経過した後に、合成音声を逐次的に再生する。
【００３４】
「韻律情報」には、基本周波数、継続時間長、メルケプストラム係数、及びパワーなどがある。
【００３５】
「言語情報」には、単語、アクセント句の音節数、モーラ数・アクセント型、各合成単位の対応する単語、アクセント句内での音節、モーラを単位とした位置や各合成単位が含まれる音節がアクセント核か否かを表すフラグなどがある。
【００３６】
（２）音声合成部１４の構成
図２は、本実施形態に係わる音声合成装置１０の音声合成部１４を示すブロック図である。
【００３７】
音声合成部１４は、合成単位列分割部１１０、最大処理時間算出部１２０、制御パラメータ決定部１３０、合成素片選択部１４０、波形生成部１５０、最大処理時間履歴格納部１６０、素片データベース１７０から構成される。
【００３８】
（２−１）合成単位列分割部１１０
合成単位列分割部１１０は、韻律処理部１３から入力された合成単位列の各合成単位が有する目標合成音声の音韻・韻律情報・言語情報と所定の制約とに基づいて前記合成単位列を分割して、前記制約を満たす複数個の合成単位からなる合成単位列（すなわち、処理単位）を複数個形成する。
【００３９】
また、合成単位列分割部１１０は、現在までに生成した合成音声の再生が完了するまでの時間を算出するように、最大処理時間算出部１２０に１つの合成単位列を引き渡す直前に指令を出す。
【００４０】
また、合成単位列分割部１１０は、引き渡すべき合成単位列が存在しない場合には最大処理時間履歴格納部１６０に蓄積されたデータを初期化するように、最大処理時間算出部１２０に指令を出す。
【００４１】
また、合成単位列分割部１１０は、最大処理時間算出部１２０の処理完了の連絡を受けて、まだ合成音声が作成していない分割後の１つの合成単位列を１処理単位として制御パラメータ決定部１３０に引き渡す。
【００４２】
（２−２）最大処理時間算出部１２０
最大処理時間算出部１２０は、合成単位列分割部１１０からの指令に応じて、現在までに生成した合成音声の再生が完了するまでの時間を算出する。そして、それら算出した時間を最大処理時間履歴格納部１６０に記録した後に、合成単位列分割部１１０に終了を通知する。
【００４３】
（２−３）制御パラメータ決定部１３０
制御パラメータ決定部１３０は、合成単位列分割部１１０から引き渡された１つの処理単位に含まれる各合成単位が有する目標合成音声の音韻・韻律情報・言語情報と、最大処理時間履歴格納部１６０に記録されている時間の系列とに基づいて、合成単位列分割部１１０から引き渡された１つの処理単位に対する合成音声を生成するときに利用する制御パラメータの数値を決定する。
【００４４】
（２−４）合成素片選択部１４０
合成素片選択部１４０は、制御パラメータ決定部１３０から引き渡された１つの処理単位と制御パラメータに基づいて、素片データベース１７０に保持されている素片属性に関わる素片データを用いて処理単位に含まれる合成単位毎に合成素片を選択する。そして、複数の合成素片の組み合わせである合成素片列を生成する。
【００４５】
（２−５）波形生成部１５０
波形生成部１５０は、合成単位毎に選択された合成素片の波形データを素片データベース１７０から取得して接続する。これによって、１つの処理単位に対する合成音声を生成する。
【００４６】
（２−６）最大処理時間履歴格納部１６０
最大処理時間履歴格納部１６０は、合成単位列分割部１１０から制御パラメータ決定部１３０に１つの処理単位を引き渡すときに、最大処理時間算出部１２０が算出した各引き渡しの時点での生成済み合成音声の再生終了までの時間を、順序を保って記録している記憶媒体である。
【００４７】
（２−７）素片データベース１７０
素片データベース１７０は、全ての合成素片の全素片属性に関わる素片データと全波形データを保持した少なくとも１つ以上の記憶媒体である。
【００４８】
（３）音声合成装置１０の動作
次に図１〜図３を用いて、音声合成装置１０の動作について説明する。図３は、音声合成装置１０の動作を示すフローチャートである。
【００４９】
まず、Ｓ３０１において、テキスト取得部１１は、外部から音声合成の対象となるテキストデータを取得する。
【００５０】
次に、Ｓ３０２において、言語処理部１２は、テキスト取得部１１が取得したテキストデータに形態素解析いを実施して、テキストデータを形態素に分割する。なお、膠着語ではない言語においては、このステップが省略されることがある。
【００５１】
次に、Ｓ３０３において、言語処理部１２は、分割された形態素の系列に対して構文解析を施し、読み情報・品詞・活用形・形態素間の係り受けなどの属性値を各形態素に付与する。
【００５２】
次に、Ｓ３０４において、韻律処理部１３は、言語処理部１２から入力された所定の属性に関する値が付与された形態素の系列の各形態素に対して、その属性値に基づいて、音韻記号列・アクセント型などの韻律に関わる属性値を追加する。
【００５３】
次に、Ｓ３０５において、韻律処理部１３は、Ｓ３０３、Ｓ３０４で各形態素に付与された属性値に基づいて、合成音声の目標となる韻律情報を合成単位毎に生成し、各々が音韻記号・韻律情報・言語情報を持つ複数の合成単位から成る合成単位列を生成する。本実施形態では、音素を合成単位として利用する。
【００５４】
次に、Ｓ３０６において、音声合成部１４は、所定の制約を満たす複数個の合成単位からなる合成単位列を複数個形成し、各々の合成単位列を処理単位とする。本実施形態では、各処理単位に含まれる合成単位の各々が対応する合成音声の時間長の総和が所定の時間となるように先頭から順に分割する。
【００５５】
次に、Ｓ３０７において、音声合成部１４は、対応する合成音声をまだ生成していない処理単位の内、先頭の処理単位に対応する合成音声を生成し、音声波形出力部１５に出力する。このＳ３０７に関しては、後に別途詳述する。
【００５６】
Ｓ３０８において、Ｓ３０７の処理は、入力されたテキストデータに対応する全ての処理単位に対して行われるまで繰り返される。
【００５７】
もし、まだ合成音声を生成していない処理単位が無い場合、Ｓ３０９において、音声合成部１４は、図２に示した最大処理時間履歴格納部１６０に蓄積されたデータを初期化する。このＳ３０９に関しても、Ｓ３０７と併せて、後に詳述する。
【００５８】
音声波形出力部１５は、音声合成部１４において生成された合成音声を所定の分量だけ蓄積した後、或いは、音声合成部１４において生成された合成音声が入力され再生すべき合成音声を保持したと同時に合成音声の再生を開始し、再生すべき合成音声が無くなるまで再生を続ける。
【００５９】
なお、Ｓ３０１〜Ｓ３０４において、必要なデータを取得するために使用するデータベースや解析が必要であれば、適宜補えば良い。
【００６０】
また、Ｓ３０５において、本実施形態では音素を合成単位としたが、これに限定するものではない。
【００６１】
（４）音声合成部１４の動作
次に、図２〜図４を用いて、音声合成装置１０の音声合成部１４の動作について説明する。図４は、音声合成部１４の１つの処理単位に対する動作を示すフローチャートである。
【００６２】
（４−１）Ｓ４０１
まず、Ｓ４０１において、処理単位ｉに対応する合成音声を生成する前処理を行う。すなわち、最大処理時間算出部１２０は、音声波形出力部１５が有するバッファに蓄積された現時点までに生成済みの合成音声の内、現時点において再生されていない合成音声を再生するのに要する時間（以下、「余剰時間」と呼ぶ）を算出する。
【００６３】
なお、出力音声のサンプリング周期が既知とするならば、リングバッファなどのような形態で合成音声の未再生量が分かるように音声波形出力部１５が合成音声を蓄積・再生しており、かつ、最大処理時間算出部１２０がその未再生量を取得できれば、合成音声の再生が全て完了するまでの時間を最大処理時間算出部１２０は算出することができる。
【００６４】
また、そうでない場合でも、ハードウェアクロック、または、システムクロックを用いて、音声波形出力部１５が再生開始時刻を取得・記憶し、かつ、波形生成部１５０が生成した合成音声の総量を記憶しておき、かつ、最大処理時間算出部１２０が前記総量と再生開始時刻を取得することができれば、音声波形出力部１５と同様に時刻を取得することで、時刻取得時点の合成音声の再生が完了するまでの時間を算出することができる。
【００６５】
さらに、音声波形出力部１５が上記２つの機能を何れも有していない場合でも、最大処理時間算出部１２０が、先頭の処理単位に対応する合成音声を生成後の次の処理を開始する際の時刻を取得して、その時刻を仮想的に再生開始時刻とみなすことで、類似の情報を算出することができる。
【００６６】
（４−２）Ｓ４０２
次に、Ｓ４０２において、最大処理時間算出部１２０は、Ｓ４０１において算出した時間を最大処理時間履歴格納部１６０に処理単位ｉの順序（ｉ）に従って末尾に追加し、合成単位列分割部１１０に格納終了を通知する。
【００６７】
（４−３）Ｓ４０３
次に、Ｓ４０３において、合成単位分割部１１０は、分割後の合成単位列の内、対応する合成音声を生成していない合成単位列の内で先頭の処理単位ｉを制御パラメータ決定部１３０へ引き渡す。
【００６８】
（４−４）Ｓ４０４
次に、Ｓ４０４において、制御パラメータ決定部１３０は、最大処理時間履歴格納部１６０に記録されている余剰時間の系列を用いて、引き渡された処理単位ｉに対応する合成素片列ｉを選択するときに利用する制御パラメータXｉを決定する。この処理ステップＳ４０４に関しては、図５を用いて後に詳述する。
【００６９】
（４−５）Ｓ４０５
次に、Ｓ４０５において、合成素片選択部１４０は、制御パラメータ決定部１３０から引き渡された処理単位ｉと制御パラメータＸｉから、素片データベース１７０に格納されている合成素片の素片属性値を用いて、処理単位ｉに対応する最適な１つの合成素片列ｉを決定し、波形生成部１５０へ引き渡す。
【００７０】
（４−６）Ｓ４０６
次に、Ｓ４０６において、波形生成部１５０は、引き渡された合成素片列ｉに含まれる合成素片の波形データを、素片データベース１７０から取得する。
【００７１】
（４−７）Ｓ４０７
次に、Ｓ４０７において、波形生成部１５０は、Ｓ４０６において取得した波形データを接続することで処理単位ｉに対応する合成音声ｉを生成し、音声合成部１５へ作成した合成音声ｉを出力する。また、波形生成部１５０が生成した合成音声の総量を記憶している場合には、併せて更新も行う。
【００７２】
なお、合成音声ｉを作成するに際しては、ＴＤ−ＰＳＯＬＡなどの既知の方法を選択・利用すれば良い。
【００７３】
また、他に必要な情報があれば、韻律制御部１３で生成し、音声合成部１４において波形生成部１５０まで順次引き渡して利用すれば良い。
【００７４】
（５）制御パラメータ決定部１３０の動作
次に、図５を用いて、音声合成部１４の制御パラメータ決定部１３０の動作について説明する。図５は、制御パラメータ決定部１３０の動作を示すフローチャートである。
【００７５】
（５−１）制御パラメータＸｉの定義
素片データベース１７０は、メモリとＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ．ＨＤと同義として用語を用いている）に分散配置されたデータを総称して示したものである。
【００７６】
全ての合成素片の全素片属性と一部の合成素片の波形データをメモリ上に配置しており、残りの合成素片の波形データをＨＤＤ上に配置しているとする。
【００７７】
また、これら波形データの取得先記憶媒体を特定するために、素片属性として波形データの配置先媒体（メモリまたはＨＤＤ）を示した属性が付加されているとする。
【００７８】
このような音声合成装置１０においては、その処理時間の大部分はＨＤＤから波形データを取得するのに要する時間で占められる。したがって、ＨＤＤへのアクセス頻度を制御することが音切れを抑制する上で重要である。
【００７９】
一方、合成素片選択部１４０が決定する合成素片列に含まれる全ての合成素片の中で、幾つかの合成素片の波形データは、ＨＤＤに格納されている。
【００８０】
そこで、この波形データをＨＤＤに格納している合成素片の上限数を、本実施形態では、「制御パラメータＸｉ」という。
【００８１】
したがって、決定される合成素片列ｉの内、Ｘｉ個以下の合成素片の波形データはＨＤＤに格納されており、その他の合成素片の波形データはメモリに格納されていることになる。
【００８２】
このような制約（制御パラメータＸｉ）を満たした合成素片選択方法は、例えば、特願２００６−９２４８９などの既知の方法を選択・利用すれば良い。
【００８３】
なお、本実施形態中の「波形データ」は、波形データを符号化したパラメータ系列でも良く、さらに、ピッチマークなどの「波形データ」とあわせて波形生成部１５０で利用するデータが付随しても良く、これに限定されるものではない。
【００８４】
（５−２）Ｓ５０１
まず、Ｓ５０１において、制御パラメータ決定部１３０は、最大処理処理時間履歴格納部１６０に記録されている余剰時間の系列（Ｙ０，Ｙ１，・・・，Ｙｉ）を取得する。
【００８５】
（５−３）Ｓ５０２
次に、Ｓ５０２において、制御パラメータ決定部１３０は、Ｓ５０１において取得した余剰時間の系列数に従って処理を分岐させる。
【００８６】
すなわち、系列に含まれる余剰時間の登録数が１つの場合にはＳ５０３を行い、２つ以上の場合にはＳ５０４を行う。
【００８７】
（５−４）Ｓ５０３
次に、Ｓ５０３において、Ｓ５０１で取得した余剰時間の系列が１つの場合、制御パラメータ決定部１３０は、合成素片選択部１４０が決定する合成素片列に含まれる全ての合成素片の内、波形データを格納した記録媒体がＨＤＤである合成素片の上限数Ｘｉを規定値Ｘｄｅｆに設定する。
【００８８】
（５−５）Ｓ５０４
次に、Ｓ５０４において、Ｓ５０１で取得した余剰時間の系列が２つ以上の場合、制御パラメータ決定部１３０は、次の処理を行う。
【００８９】
下記の式（１）に示すように、余剰時間の系列（Ｙ１，・・・，Ｙｉ）の各余剰時間［秒］に対して、余剰時間の目標値Ｙｄｅｆ［秒］との差分系列（ｄ１，・・・，ｄｉ）（単位秒）を求める。
【００９０】
また、下記の式（１）に示すように、それらの差分の積算値Dｉ［秒］も算出する。
【数１】
2009053336.tif 000003
【００９１】
（５−６）Ｓ５０５
次に、制御パラメータ決定部１３０は、ｄｉとDｉと規定値Ｘｄｅｆから以下の式（３）を用いて、現処理単位ｉに対する制御パラメータＸｉを決定する。
【数２】
2009053336.tif 000004
【００９２】
（６）制御パラメータ決定部１３０の動作の具体例
次に、図６〜図１１を用いて、制御パラメータ決定部１３０の動作について、具体例を用いて説明する。
【００９３】
（６−１）制御パラメータＸｉの規定値Ｘｄｅｆ
制御パラメータＸｉの規定値Ｘｄｅｆについて、本具体例では、以下の式（４）とする。
【数３】
2009053336.tif 000005
【００９４】
なお、ＴＢｕｆは、１処理単位に対応する合成音声の再生に要する時間［秒］であり、固定値とする。ＴＰｒｃは、ＨＤＤ上に波形データを有する合成素片を利用せずに１処理単位に対応する合成音声を生成するのに要する時間［秒］の平均時間であり、メモリ上にある波形データを取得する時間も含まれている。
【００９５】
この式（４）によって、Ｘｄｅｆは、１つの処理単位に対応する合成音声を生成するときに、生成した合成音声の再生時間を超えずにＨＤＤから波形データを取得することができる上限回数の概算を意味している。
【００９６】
本具体例では、説明を簡単にするために、Ｘｄｅｆ＝４の整数値とする。すなわち、１つの処理単位に対して合成される音声の再生に要する時間は、ＴＢｕｆ＝ＴＰｒｃ＋４ＴＨＤＤ＋［秒］であるとする。
【００９７】
（６−２）余剰時間の目標値Ｙｄｅｆ
余剰時間の目標値Ｙｄｅｆを本具体例では、下式とする。
【数４】
2009053336.tif 000006
【００９８】
すなわち、ある処理単位ｋに対応する合成音声を生成するときに、余剰時間Ｙｋ＝Ｙｄｅｆである。そして、制御パラメータＸｄｅｆの制約の下で合成素片を選択し、波形生成をする場合、他のプロセスのＨＤＤアクセス（リソース競合）によって生じる合成音声の生成時間の遅れは、最大で６ＴＨＤＤ［秒］まで許されることを意味する。これにより、音切れを生起せずに合成音声の生成・追加を行うことが可能であることを意味する。
【００９９】
以下、動作の具体例を図６の説明図１に基づいて説明する。
【０１００】
（６−３）動作１
まず、処理単位０に対しては、合成音声が生成されていない状態の余剰時間Ｙ０＝０のみが最大処理時間履歴１７０に格納されている。
【０１０１】
そのため、図５のＳ５０２の条件分岐によって、Ｘ０＝Ｘｄｅｆ＝４の制約の下、合成素片列０が合成素片選択部１４０で選択される。
【０１０２】
その合成素片列０に対応するＴＢｕｆ［秒］の長さの合成音声０がＴＰｒｃ＋４ＴＨＤＤ［秒］後に追加され、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ１は、ＴＢｕｆ（＝ＴＰｒｃ＋４ＴＨＤＤ）［秒］となる。
【０１０３】
（６−４）動作２
次に、処理単位１に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数５】
2009053336.tif 000007
【０１０４】
（６−５）動作３
次に、Ｓ５０５によって、制御パラメータＸ１は、以下のように算出される。
【数６】
2009053336.tif 000008
【０１０５】
その結果、Ｘ１＝０の制約の下、合成素片列１が合成素片選択部１４０で選択される。
【０１０６】
その合成素片列１に対応するＴＢｕｆ［秒］の長さの合成音声１がＴＰｒｃ［秒］後に追加され、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ２は、ＴＰｒｃ＋８ＴＨＤＤ［秒］となる。
【０１０７】
（６−６）動作４
次に、処理単位２に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数７】
2009053336.tif 000009
【０１０８】
（６−７）動作５
次に、Ｓ５０５によって、制御パラメータＸ２は、以下のように算出される。
【数８】
2009053336.tif 000010
【０１０９】
その結果、Ｘ２＝０の制約の下、合成素片列２が合成素片選択部１４０で選択される。
【０１１０】
その合成素片列２に対応するＴＢｕｆ［秒］の長さの合成音声２がＴＰｒｃ［秒］後に追加され、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ３は、ＴＰｒｃ＋１２ＴＨＤＤ［秒］となる。
【０１１１】
（６−８）動作６
次に、処理単位３に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数９】
2009053336.tif 000011
【０１１２】
（６−９）動作７
次に、Ｓ５０５によって、制御パラメータＸ３は、以下のように算出される。
【数１０】
2009053336.tif 000012
【０１１３】
その結果、Ｘ３＝０の制約の下、合成素片列３が合成素片選択部１４０で選択される。  その合成素片列３に対応するＴＢｕｆ［秒］の長さの合成音声３がＴＰｒｃ［秒］後に追加され、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ４は、ＴＰｒｃ＋１６ＴＨＤＤ［秒］となる。
【０１１４】
（６−１０）動作８
次に、処理単位４に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数１１】
2009053336.tif 000013
【０１１５】
（６−１１）動作９
次に、Ｓ５０５によって、制御パラメータＸ４は、以下のように算出される。
【数１２】
2009053336.tif 000014
【０１１６】
その結果、Ｘ４＝１０の制約の下、合成素片列４が合成素片選択部１４０で選択される。
【０１１７】
その合成素片列４に対応するＴＢｕｆ［秒］の長さの合成音声４がＴＰｒｃ＋１０ＴＨＤＤ［秒］後に追加され、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ５は、ＴＰｒｃ＋１０ＴＨＤＤ［秒］（＝Ｙｄｅｆ）となる。
【０１１８】
（６−１２）動作１０
次に、処理単位５に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数１３】
2009053336.tif 000015
【０１１９】
（６−１３）動作１１
次に、Ｓ５０５によって、制御パラメータＸ５は、以下のように算出される。
【数１４】
2009053336.tif 000016
【０１２０】
その結果、Ｘ５＝４の制約の下、合成素片列５が合成素片選択部１４０で選択される。
【０１２１】
その合成素片列５に対応するＴＢｕｆ［秒］の長さの合成音声５がＴＰｒｃ＋４ＴＨＤＤ［秒］後に追加され、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ６は、ＴＰｒｃ＋１０ＴＨＤＤ［秒］（＝Ｙｄｅｆ）となる。
【０１２２】
（６−１３）動作１２
以降、他のプロセスのＨＤＤ利用によるＨＤＤリソースの競合が生起しない限り、各処理単位に対応するＴＢｕｆ［秒］（＝ＴＰｒｃ＋４ＴＨＤＤ）の長さの合成音声がＴＰｒｃ＋４ＴＨＤＤ［秒］後に追加されることによって、各処理単位ｉでの余剰時間Ｙｉは、Ｙｉ−１（＝ＴＰｒｃ＋１０ＴＨＤＤ＝Ｙｄｅｆ［秒］）に保たれる。
【０１２３】
（７）競合が生じた場合の具体例
ここで、他のプロセスのＨＤＤ利用によるＨＤＤリソースの競合が各処理単位において、生じた場合、本具体例では、図７のように動作する。
【０１２４】
（７−１）動作１
処理単位７に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数１５】
2009053336.tif 000017
【０１２５】
（７−２）動作２
次に、Ｓ５０５によって、制御パラメータＸ７は、以下のように算出される。
【数１６】
2009053336.tif 000018
【０１２６】
その結果、Ｘ７＝４の制約の下、合成素片列７が合成素片選択部１４０で選択される。
【０１２７】
その合成素片列７に対応するＴＢｕｆ［秒］の長さの合成音声７が生成される。
【０１２８】
但し、この処理の間、他のプロセスからＨＤＤアクセスがあったために、ＴＨＤＤ［秒］の間競合の解消を待つ時間の遅延が発生したとすると、ＴＰｒｃ＋４ＴＨＤＤ＋ＴＨＤＤ［秒］後に、合成音声が追加されることとなる。
【０１２９】
これによって、処理単位７の合成音声が追加される直前の未再生合成音声の量は、ＴＰｒｃ＋５ＴＨＤＤ（＝Ｙｄｅｆ−ＴＰｒｃ−４ＴＨＤＤ−ＴＨＤＤ）［秒］まで落ち込み、定常状態ＴＰｒｃ＋６ＴＨＤＤ［秒］を下回る。
【０１３０】
また、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ８は、ＴＰｒｃ＋９ＴＨＤＤ［秒］（＜Ｙｄｅｆ）となる。
【０１３１】
（７−３）動作３
次に、処理単位８に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数１７】
2009053336.tif 000019
【０１３２】
（７−４）動作４
次に、Ｓ５０５によって、制御パラメータＸ８は、以下のように算出される。
【数１８】
2009053336.tif 000020
【０１３３】
その結果、Ｘ８＝２の制約の下、合成素片列８が合成素片選択部１４０で選択される。
【０１３４】
その合成素片列８に対応するＴＢｕｆ［秒］の長さの合成音声８が生成される。
【０１３５】
このとき、この処理の間、他のプロセスからＨＤＤアクセスが処理単位７と同様にあったとすると、ＴＨＤＤ［秒］の間競合の解消を待つ時間の遅延が発生したとしても、ＴＰｒｃ＋２ＴＨＤＤ＋ＴＨＤＤ［秒］後に、合成音声が追加されることとなる。
【０１３６】
よって、処理単位８の合成音声が追加される直前の未再生合成音声の量は、ＴＰｒｃ＋６ＴＨＤＤ（＝Ｙｄｅｆ−ＴＰｒｃ−２ＴＨＤＤ−ＴＨＤＤ）［秒］で済み、定常状態の場合と同じ分量ＴＰｒｃ＋６ＴＨＤＤ［秒］まで回復する。
【０１３７】
また、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ９は、ＴＰｒｃ＋１０ＴＨＤＤ［秒］（＝Ｙｄｅｆ）となり、定常状態まで回復する。
【０１３８】
（７−５）動作５
以下同様に、他のプロセスのＨＤＤアクセスが新たに生じ、各処理単位に対応する合成音声の生成時間に競合解消のための遅延が生じて遅延量が増加した場合でも、図７の処理単位９・１０・１１に示したように、次の処理単位において定常状態に復帰することが可能であり、音途切れのリスクを分散させることができる。
【０１３９】
また、図８に示すように、他のプロセスのＨＤＤアクセスが減少した場合でも、各処理単位において制御パラメータＸｉを調整し、定常状態に復帰することが可能である。
【０１４０】
（８）従来技術の問題
しかし、従来技術のように、検出された未再生の合成音声の量を蓄積し、系列として利用する手段をもたなかった場合、具体例に示すＨＤＤアクセスの上限数Ｘｉは、式（２）に示した積算値Ｄｉ［秒］を算出することができず、各処理単位で検出された蓄積量から算出される余剰時間Ｙｉだけから決定されなくてはならない。
【０１４１】
もし、次式（６）のように、制御パラメータＸｉがｄｉによってのみ決定された場合、
【数１９】
2009053336.tif 000021
【０１４２】
各処理単位に対する処理中に、他のプロセスからＨＤＤアクセスが生じて合成音声の生成に競合解消のための遅延が生じると、図９のように、競合解消のための遅延を清算して余剰時間を定常状態まで回復することができない。
【０１４３】
回復するためには、各処理単位に対する合成音声の処理開始時刻を記憶する手段を持ち、予定終了時間と実際の時間との差分を検出し、次回の制御パラメータに反映する必要がある。すなわち、本具体例における、
【数２０】
2009053336.tif 000022
【０１４４】
と類似した制御が必要である。
【０１４５】
また、もし、このような構成の場合に、図９に示した競合解消のための遅延の清算ができない状態で、図１０に示したような大きなＨＤＤアクセス（７ＴＨＤＤ）が他のプロセスから連続して生起した場合、処理単位１２・処理単位１４・処理単位１６において、音途切れが生起する。
【０１４６】
（９）具体例の詳しい動作
しかし、本実施形態による構成では、図７に示したように競合解消のための遅延の清算が完了しており、図７に続いて、図１１に示したような他のプロセスから大きなＨＤＤアクセス（７ＴＨＤＤ）が生じたとしても、図１１に示した通り、音途切れは生じない。
【０１４７】
以下、具体例の動作を図１１に基づいて詳述する。
【０１４８】
（９−１）動作１
まず、処理単位１２に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数２１】
2009053336.tif 000023
【０１４９】
（９−２）動作２
次に、Ｓ５０５によって、制御パラメータＸ１２は、以下のように算出される。
【数２２】
2009053336.tif 000024
【０１５０】
その結果、Ｘ１２＝２の制約の下、合成素片列１２が合成素片選択部１４０で選択される。その合成素片列１２に対応するＴＢｕｆ［秒］の長さの合成音声１２が生成される。
【０１５１】
このとき、この処理の間、他のプロセスからＨＤＤアクセス（７ＴＨＤＤ）が生じていたとすると、７ＴＨＤＤ［秒］の間競合の解消を待つ時間の遅延が発生したとしても、ＴＰｒｃ＋２ＴＨＤＤ＋７ＴＨＤＤ［秒］後に、合成音声が追加されることとなる。
【０１５２】
よって、処理単位１２の合成音声が追加される直前の未再生合成音声の量は、ＴＰｒｃ＋ＴＨＤＤ（＝Ｙｄｅｆ−ＴＰｒｃ−２ＴＨＤＤ−７ＴＨＤＤ）［秒］で済み、音途切れは生じない。また、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ１３は、ＴＰｒｃ＋５ＴＨＤＤ［秒］となる。
【０１５３】
（９−３）動作３
次に、処理単位１３に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数２３】
2009053336.tif 000025
【０１５４】
（９−４）動作４
次に、Ｓ５０５によって、制御パラメータＸ１２は、以下のように算出される。
【数２４】
2009053336.tif 000026
【０１５５】
その結果、Ｘ１３＝０の制約の下、合成素片列１３が合成素片選択部１４０で選択される。その合成素片列１３に対応するＴＢｕｆ［秒］の長さの合成音声１３が生成される。
【０１５６】
このとき、この処理の間、他のプロセスからＨＤＤアクセス（７ＴＨＤＤ）が生じていたとしても、ＨＤＤアクセスを伴わないことから、ＴＰｒｃ［秒］後に、合成音声が追加されることとなる。
【０１５７】
よって、処理単位１３の合成音声が追加される直前の未再生合成音声の量は、５ＴＨＤＤ（＝ＴＰｒｃ＋５ＴＨＤＤ −ＴＰｒｃ）［秒］で済み、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ１４は、ＴＰｒｃ＋９ＴＨＤＤ［秒］まで回復する。
【０１５８】
（９−５）動作５
次に、処理単位１４に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数２５】
2009053336.tif 000027
【０１５９】
（９−６）動作６
次に、Ｓ５０５によって、制御パラメータＸ１２は、以下のように算出される。
【数２６】
2009053336.tif 000028
【０１６０】
その結果、Ｘ１４＝０の制約の下、合成素片列１４が合成素片選択部１４０で選択される。その合成素片列１４に対応するＴＢｕｆ［秒］の長さの合成音声１４が生成される。
【０１６１】
このとき、この処理の間、他のプロセスからＨＤＤアクセス（７ＴＨＤＤ）が生じていたとしても、ＨＤＤアクセスを伴わないことから、ＴＰｒｃ［秒］後に、合成音声が追加されることとなる。
【０１６２】
よって、処理単位１４の合成音声が追加される直前の未再生合成音声の量は、９ＴＨＤＤ（＝ＴＰｒｃ＋９ＴＨＤＤ −ＴＰｒｃ）［秒］で済み、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ１５は、ＴＰｒｃ＋１３ＴＨＤＤ［秒］まで回復する。
【０１６３】
（９−７）動作７
次に、処理単位１５に対しては、図５のＳ５０３の条件分岐によって、Ｓ５０４によって、以下の値が算出される。
【数２７】
2009053336.tif 000029
【０１６４】
（９−８）動作８
次に、Ｓ５０５によって、制御パラメータＸ１２は、以下のように算出される。
【数２８】
2009053336.tif 000030
【０１６５】
その結果、Ｘ１５＝２の制約の下、合成素片列１５が合成素片選択部１４０で選択される。その合成素片列１５に対応するＴＢｕｆ［秒］の長さの合成音声１５が生成される。
【０１６６】
このとき、この処理の間、他のプロセスからＨＤＤアクセス（７ＴＨＤＤ）が生じていたとしても、ＴＰｒｃ＋２ＴＨＤＤ＋７ＴＨＤＤ［秒］後に、合成音声が追加されることとなる。
【０１６７】
よって、処理単位１４の合成音声が追加される直前の未再生合成音声の量は、４ＴＨＤＤ（＝ＴＰｒｃ＋１３ＴＨＤＤ −ＴＰｒｃ−９ＴＨＤＤ）［秒］で済み、音切れは生じない。
【０１６８】
また、次の処理単位を処理するときに最大処理時間算出部１２０において算出される余剰時間Ｙ１６は、ＴＰｒｃ＋８ＴＨＤＤ［秒］ある。
【０１６９】
（第２の実施形態）
次に、本発明の第２の実施形態の音声合成装置１０について図１２〜図１９に基づいて説明する。
【０１７０】
以下では、本実施形態に関わる音声合成装置１０の音声合成部１４の動作について、第１の実施形態との差異についてのみ説明する。
【０１７１】
（１）第１の実施形態と同一の動作
本実施形態に係わる音声合成装置１０の動作は、図１に示した第１の実施形態に係わる合成音声装置１０の動作内容（図３参照）と、音声合成部１４の動作内容Ｓ３０７を除いて同一である。
【０１７２】
また、本実施形態に係わる音声合成装置１０の音声合成部１４が行う図３のＳ３０７の動作内容（図４参照）は、図４に示した第１の実施形態に係わる合成音声装置１０の音声合成部１４が行う動作内容Ｓ４０４、Ｓ４０５、Ｓ４０６を除いて同一である。
【０１７３】
（２）第２の実施形態の目的
第１の実施形態とは異なり、第２の実施形態に関わる音声合成装置１０の素片データベース１７０は、メモリにのみ配置されたデータを示しており、全ての合成素片の素片属性と波形データをメモリ上に配置している。
【０１７４】
このような実施形態をとる音声合成装置１０においては、その処理時間の大部分が、高頻度にメモリから合成素片の素片属性を取得する時間と最適な合成素片列を選択するための合成素片の組み合わせに対する評価値の算出時間とで占められることになる。
【０１７５】
よって、第２の実施形態では、効率良く候補数を削減して、データ取得回数と算出回数を制御することが音切れを抑制する上で重要となる。
【０１７６】
本実施形態では、一般によく利用される動的プログラミングを例に採り、候補数に関する２つのパラメータ、予備選択数Ｚ１とビーム幅Ｚ２を制御パラメータとする。なお、ビーム幅とは、候補となる合成素片列数である。
【０１７７】
（３）音声合成部１４の動作
以下では、図１２〜図１９を用いて、本実施形態に係わる合成音声装置１０の音声合成部１４の第１の実施形態の動作内容と異なる図１２のＳ１２０４、Ｓ１２０５、Ｓ１２０６について述べる。
【０１７８】
なお、図１２は、音声合成部１４の１つの処理単位に対する動作を示すフローチャートである。
【０１７９】
（３−１）Ｓ１２０４
Ｓ１２０４において、制御パラメータ決定部１３０は、制御パラメータとして予備選択数Ｚ１ｉとビーム幅Ｚ２ｉを決定する。すなわち、第１の実施形態と同様に算出されて最大処理時間履歴格納部１６０に記録されている余剰時間の系列を用いて、第１の実施形態と同様に分割されて引き渡された処理単位ｉに対応する合成素片列ｉを選択するときに利用する制御パラメータ、すなわち、予備選択数Ｚ１ｉ、ビーム幅Ｚ２ｉを決定する。
【０１８０】
この処理ステップＳ１２０４に関しては、図１９を用いて後に詳述する。
【０１８１】
（３−２）Ｓ１２０５
Ｓ１２０５において、合成素片選択部１４０は、制御パラメータ決定部１３０から引き渡された処理単位ｉと制御パラメータＺ１ｉ，Ｚ２ｉから、素片データベース１７０に格納されている合成素片の素片属性を用いて、処理単位ｉに対応する最適な１つの合成素片列ｉを決定し、波形生成部１５０へ引き渡す。
【０１８２】
この処理ステップＳ１２０５に関しては、図１３〜図１８を用いて後に詳述する。
【０１８３】
（３−３）Ｓ１２０６
Ｓ１２０６において、波形生成部１５０は、引き渡された合成素片列ｉに含まれる合成素片の波形データをメモリだけから成る素片データベース１７０から取得する。
【０１８４】
これによって、第１の実施形態と異なり、第２の実施形態では、ＨＤＤのリソース競合による長い時間の待ち状態を被ることなく波形データの取得を行うことができるため、ＨＤＤのリソース競合に起因した“音切れ”が生起することはない。
【０１８５】
（４）合成素片列ｉの選択
次に、図１３〜図１８を用いて、合成素片選択部１４０が行う動作、すなわち、制御パラメータＺ１ｉ，Ｚ２ｉを用いて、処理単位ｉに対する最適な１本の合成素片列ｉを選択する動作について説明する。図１３は、その動作を説明するフローチャートである。
【０１８６】
（４−１）Ｓ１３０１
まず、Ｓ１３０１において予備選択を行い、合成単位列ｉの合成単位ｊに対応する全ての合成素片（Ｘｉｊ個）から、適合度の高い合成素片をＺ１ｉ個選択する（図１４参照）。
【０１８７】
より具体的には、合成単位と同一の音韻記号が付与されている合成素片の集合の各要素（Ｘｉｊ個）と合成単位ｊとの間で、各々が持つ韻律情報や言語情報を比較することで評価して第１評価点をそれぞれ求める。この第１評価点が高く、合成単位の持つ目標となる韻律情報や言語情報により近い、合成素片をＺ１ｉ個選択する。
【０１８８】
この処理は、合成単位と同一の音韻記号が付与されている合成素片の集合の各要素に対して行われるので、合計Ｘｉｊ回の第１評価点の算出を行う。なお、この第１評価点の算出方法に関しては多くの方法が公開されており、それらを利用すれば良い。なお、その算出方法によって限定されるものではない。
【０１８９】
（４−２）Ｓ１３０２
次に、Ｓ１３０２において、Ｓ１３０１において選択されたＺ１ｉ個の合成素片の各々が、Ｓ１３０１からＳ１３０３までの処理を通して既に選択されている合成単位（ｊ−１）までの候補合成素片列（Ｚ２ｉ本）の各々に接続することを仮定して、その接続の適性に関する評価を行って、第２評価点を算出する（図１５参照）。
【０１９０】
より具体的には、各候補合成素片列の末尾に位置する合成素片とＳ１３０１のおいて選択されたＺ１ｉ個の合成素片の各々との間で、所定の複数の属性に関して比較し、その接続の自然性を評価・積算することで２合成素片間の第２評価点を算出する。
【０１９１】
この処理は、Ｚ１ｉ個の各合成素片について、Ｚ２ｉ本の候補合成素片列との接続を仮定して第２評価点を算出するので、合計Ｚ１ｉ×Ｚ２ｉ回の第２評価点の算出を行ことになる。
【０１９２】
なお、この第２評価点の算出方法に関しては多くの方法が公開されており、それらを利用すれば良い。また、その算出方法によって限定されるものではない。
【０１９３】
（４−３）Ｓ１３０３
次に、Ｓ１３０３において、Ｓ１３０１において算出された第１評価点とＳ１３０２において算出された第２評価点とから、合成単位ｊまでの合計Ｚ１ｉ×Ｚ２ｉ本の候補合成素片列の総合的な総合評価点を算出し、この総合評価点の高いものから順にＺ２ｉ本の候補合成素片列を選択する（図１６参照）。
【０１９４】
なお、Ｓ１３０１にて算出した目標とする合成単位との適応性に関する第１評価点と、Ｓ１３０２にて算出した後続する合成素片と合成単位（ｊ−１）までの候補合成素片列との接続に関する適応性の第２評価点から算出する総合的な候補合成素片列に対する評価方法に関しては、多くの方法が公開されており、それらを利用すれば良い。
【０１９５】
また、その評価方法によって限定されるものではない。
【０１９６】
これらＳ１３０１からＳ１３０３までの処理を処理単位ｉの各合成単位ｊに関して先頭から順に繰り返し、その結果、Ｓ１３０４の開始時点で、Ｚ２ｉ本の候補合成素片列が選択される（図１７参照）。
【０１９７】
（４−４）Ｓ１３０４
最後に、Ｓ１３０４において、Ｓ１３０３で算出している総合評価点を用いてＺ２ｉ本の候補合成素片列から１本の最適な合成素片系列を算出する（図１８参照）。
【０１９８】
（４−５）処理時間の説明
以上のように、Ｎｉ個の合成単位からなる処理単位ｉ（合成単位列ｉ）の最適な合成素片系列を１本算出するために要する時間の定義を説明する。
【０１９９】
Ｓ１３０１における各合成素片に対する第１評価点の算出に要する時間をＴｔａｒとする。
【０２００】
Ｓ１３０２における各合成素片と各候補合成素片列との間の第２評価点の算出に要する時間をＴｃｏｎとする。
【０２０１】
Ｓ１３０３における各候補合成素片列に対する総合評価点を算出する時間をＴｔｏｔａｌとする。
【０２０２】
すると、概ね
【数２９】
2009053336.tif 000031
【０２０３】
の時間を要することになり、Ｚ１ｉとＺ２ｉの制御パラメータが処理時間を大きく左右する。
【０２０４】
（５）具体例
次に、図１９を用いて、制御パラメータ決定部１３０が行う制御パラメータＺ１ｉ，Ｚ２ｉを決定する動作について説明し、具体例を示すことでその効果を説明する。
【０２０５】
（５−１）Ｓ１９０１
まず、制御パラメータ決定部１３０は、最大処理処理時間履歴格納部１６０に記録されている余剰時間の系列（Ｙ０，Ｙ１，・・・，Ｙｉ）を取得する。
【０２０６】
（５−２）Ｓ１９０２
次に、制御パラメータ決定部１３０は、Ｓ１９０１において取得した余剰時間の系列に余剰時間の目標値Ｙｄｅｆ［秒］を超えたものがあるか否かによって処理を分岐させる。  系列に含まれる余剰時間の中に、１つも余剰時間の目標値Ｙｄｅｆ［秒］を超えるものがない場合、Ｓ１９０３を行い、目標値Ｙｄｅｆ［秒］を超えたものがある場合、Ｓ１９０４を行う。
【０２０７】
（５−３）Ｓ１９０３
Ｓ１９０１で取得した余剰時間の系列が目標値Ｙｄｅｆ［秒］を超える前の場合、制御パラメータ決定部１３０は、合成素片選択部１４０が最適な合成素片列を決定するときに利用する制御パラメータである予備選択数Ｚ１ｉとビーム幅Ｚ２ｉを規定値Ｚ１ｄｅｆ，Ｚ２ｄｅｆに設定する。
【０２０８】
（５−４）Ｓ１９０４
Ｓ１９０１で取得した余剰時間が余剰時間の目標値Ｙｄｅｆ［秒］を１度でも超えた（ｍ）以後は、制御パラメータ決定部１３０は、下式のように、余剰時間の系列（Ｙｍ，・・・，Ｙｉ）の各余剰時間［秒］に対して、余剰時間の目標値Ｙｄｅｆ［秒］との差分系列（ｄｍ，・・・，ｄｉ）（単位［秒］）を求める。また、それらの差分ｄの積算値Ｄｉ［秒］も算出する。
【数３０】
2009053336.tif 000032
【０２０９】
（５−５）Ｓ１９０５
次に、制御パラメータ決定部１３０は、ｄｉとＤｉから以下の式を用いて、現処理単位ｉ＋１に対する制御パラメータＺ１ｉ＋１，Ｚ２ｉ＋１を決定する。
【数３１】
2009053336.tif 000033
【０２１０】
また、上式中のＴｉ＋１は、リソース競合が生起する実行環境の下で処理単位ｉ＋１に対する最適な合成素片列ｉ＋１を導出するのに要する予定処理時間の概算を算出する式である。
【０２１１】
この式の右辺第２項ＴＢｕｆ＋ｄｉは、前回（処理単位ｉに対する処理）の余剰時間（Ｙｉ）を保つ（１処理単位に対応する合成音声の再生に要する時間で、処理を完了する）だけでなく、目標とする余剰時間（Ｙｄｅｆ）からの遅延（−ｄｉ）を今回（処理単位ｉ＋１に対する処理）の処理時間を短縮することで取り戻すための予定処理時間を示す。
【０２１２】
また、右辺第１項ＴＢｕｆ／（ＴＢｕｆ＋Ｄｉ）は、リソース競合によって生起する遅延を考慮するため（実ときに要する処理時間に変換するため）に導入した倍率であり、目標の余剰時間（Ｙｄｅｆ）を維持するための処理時間ＴＢｕｆ（各処理単位に対応する合成音声の再生に要する時間）と実際の処理における目標の余剰時間からの遅延の積算量（−Ｄｉ）とを基に算出する。
【０２１３】
この倍率は、現在までの遅延の総和（−Ｄｉ）が前回の処理（処理単位ｉに対する処理）で１度に生起したものと仮定し、遅延倍率（ＴＢｕｆ−Ｄｉ）／ＴＢｕｆを予定処理時間に乗じて算出される時間が実ときに消費される処理時間であることを示す。
【０２１４】
また、この遅延の積算量（−Ｄｉ）は、目標とする余剰時間からの遅延が解消された場合（ｄｉ＝０）でも維持される数値であり、リソース競合が解消・緩和（ｄｉ＞０）されることによって零に近づくことになり、遅延の積算量が零になるまで処理時間を短縮する側に機能する。
【０２１５】
したがって、従来例にみられるような、リソース競合が解消していないにも関わらず、目標とする余剰時間を取り戻した（ｄｉ＝０）次の処理で新たな遅延を生起してしまうような余剰時間の危険サイドへの振動は起こらない。
【０２１６】
なお、リソース競合が解消された後には、Ｄｉが負の値から零の値に徐々に近づくことで、リソース競合が無い状態を反映した倍率（ＴＢｕｆと（ＴＢｕｆ−０）は略等しい）に戻る。
【０２１７】
このＴｉ＋１を利用して導出されたＺ１ｉ＋１，Ｚ２ｉ＋１は、上記の意図をもって算出された予定処理時間Ｔｉ＋１以内で処理を終了するための制御パラメータとなる。すなわち、平均的な個数（Ｘｉ＋ｌｊの平均）の合成素片を有する音韻カテゴリーの合成単位ｊから構成された平均的な個数（Ｎｌ＋１の平均）の処理単位ｉ＋１に対して最適な合成素片列を選択する場合に、予備選択数Ｚ１ｉ＋１，ビーム幅Ｚ２ｉ＋１を用いて最適な合成素片列を選択すれば、予定する処理時間（Ｔｉ＋１）内で、完了するパラメータとなる。
【０２１８】
なお、本実施形態では、波形生成ステップにおける、波形データの取得と加工・接続処理は、非常に短い時間でできるものとしている。
【数３２】
2009053336.tif 000034
【０２１９】
として、設定すれば良い。
【０２２０】
（６）効果
以下では、上記で述べた最大処理時間履歴格納部１６０に格納されている余剰時間の履歴を用いた制御パラメータＺ１ｉ，Ｚ２ｉの決定方法が、“音切れ”の抑制の効果があることを説明する。
【０２２１】
本具体例においては、プロセッサーとメモリのリソースを各プロセスに配分するスケジューリングの方式として、ＯＳが、全てのプロセスを同一の優先権を持つプロセスとみなして一定時間毎に各プロセスに順番に割り振る方式である“ＲＲ（ラウンド・ロビン）”の場合を例にとって説明する。
【０２２２】
ＯＳのスケジューラがＭＬＦ（Multi-Level Feedback）の方法を採っていたとしても、また、音声合成プロセスがリアルタイム性に対する要求が高いことを理由に高いレベルの固定した優先度が与えられていたとしても、同一の優先度を有するプロセスと音声合成プロセスとが同時にプロセッサーやメモリなどのリソースを競合するケースは起こり得ることであり、ＲＲ（ラウンド・ロビン）と同様の状態になるだけである。
【０２２３】
このように、本実施形態はＯＳのスケジューラの採る方式によって限定されるものではない。
【０２２４】
また、本具体例では、説明の都合上、波形生成プロセスでの処理に要する時間は無視できるほど小さいものとし、また、各処理単位を構成する合成単位数はＮ個で均一であり、また、全ての合成単位に属する合成素片数も均一のＸ個であるとする。
【０２２５】
（６−１）競合が生起していない状態
今、他のプロセスとのリソース競合が生起していない状態では、定常状態（余剰時間がＹｄｅｆ［秒］を越えた以後）の処理時間は、
【数３３】
2009053336.tif 000035
【０２２６】
となり、作成した合成音声の再生時間と処理時間がほぼ等しく、実際の余剰時間と目標とする余剰時間がほぼ等しい状態（定常状態）を保つ。
【０２２７】
（６−２）競合が生起している状態
しかし、このとき、処理単位ｉ＋１に対する処理を実行している間に他のプロセスが生起して処理時間が倍かかる状態に陥ったとすると、目標とする余剰時間（Ｙｄｅｆ）からＴＢｕｆの遅延が生じることになる。
【０２２８】
この後、次の処理単位ｉ＋２に対する処理を行っている間も他のプロセスがリソース競合を起こし続けていたとしても、制御パラメータ決定部１３０において、下式によってＺ１ｉ＋２とＺ２ｉ＋２を決定する。
【数３４】
2009053336.tif 000036
【０２２９】
このとき、予定処理時間は、下式となる。
【数３５】
2009053336.tif 000037
【０２３０】
実ときには倍の処理時間がかかるが、次の処理単位で下式まで遅れを小さくすることができる。
【数３６】
2009053336.tif 000038
【０２３１】
さらに、次の処理単位ｉ＋３においてもリソース競合が継続していた場合でも、下式によって、Ｚ１ｉ＋３とＺ２ｉ＋３を決定する。
【数３７】
2009053336.tif 000039
【０２３２】
このように余剰時間の履歴を利用して算出した値Ｄｉを導入することで、処理時間の遅延を考慮した予定処理時間の設定と定常状態への復帰を促す制御パラメータの設定が、リソース競合の間でも安定して可能となる。よって、リソース競合が頻繁に生起する実行環境における“音切れ”に対するロバスト性が向上する。
【０２３３】
（６−３）効果のまとめ
このように第１、第２の実施形態に係わる音声合成装置１０は、所定の処理開始時までに合成した音声の再生が完了するまでの時間を導出し、それを記録する。
【０２３４】
その少なくとも１つ以上の前記記録した時間の履歴に基づいて、処理時間に関わる所定の制御パラメータの数値を決定する。
【０２３５】
前記決定した制御パラメータの数値を用いて複数の合成単位に対応する複数の合成素片の組み合わせである合成素片系列を生成する。
【０２３６】
生成された組み合わせに含まれる複数の合成素片を接続することにより、実施装置における音声合成プロセスの実行環境の変動を検出することができる。
【０２３７】
また、決定した制御パラメータの数値の所要時間に対する効果の増減を検出することができる。
【０２３８】
そして、これらを考慮した制御パラメータの数値の修正を行うことで“音切れ”を十分に抑制しながら、順次的に合成音声を生成・追加することが可能である。
【０２３９】
（変更例）
本発明は上記各実施形態に限らず、その主旨を逸脱しない限り種々に変更することができる。
【図面の簡単な説明】
【０２４０】
【図１】本発明の第１の実施形態に係わる音声合成装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係わる音声合成装置の合成音声部１４の構成を示すブロック図である。
【図３】本発明の第１の実施形態に係わる音声合成装置の動作を示すフローチャートである。
【図４】合成音声装置の合成音声部の動作を示すフローチャートである。
【図５】合成音声部の制御パラメータ決定部１３０の動作を示すフローチャートである。
【図６】制御パラメータ決定部の具体例に係わる説明図１である。
【図７】制御パラメータ決定部の具体例に係わる説明図２である。
【図８】制御パラメータ決定部の具体例に係わる説明図３である。
【図９】制御パラメータ決定部の従来例の場合に係わる説明図１である。
【図１０】制御パラメータ決定部の従来例の場合に係わる説明図２である。
【図１１】制御パラメータ決定部の具体例に係わる説明図４である。
【図１２】第２の実施形態に係わる音声合成部のフローチャートである。
【図１３】合成素片選択部のフローチャートである。
【図１４】第２の実施形態に係わるＳ１３０１の説明図である。
【図１５】第２の実施形態に係わるＳ１３０２の説明図である。
【図１６】第２の実施形態に係わるＳ１３０３の説明図１である。
【図１７】第２の実施形態に係わるＳ１３０３の説明図２である。
【図１８】第２の実施形態に係わるＳ１３０４の説明図である。
【図１９】第２の実施形態に係わる制御パラメータ決定部１３０のフローチャートである。
【符号の説明】
【０２４１】
１０    音声合成装置
１２    言語処理部
１３    韻律処理部
１４    音声合成部
１５    音声波形出力部
１１０    合成単位列分割部
１２０    最大処理時間算出部
１３０    制御パラメータ決定部
１４０    合成素片選択部
１５０    波形生成部
１６０    最大処理時間履歴格納部
１７０    素片データベース
【図１】
2009053336.tif 000040
【図２】
2009053336.tif 000041
【図３】
2009053336.tif 000042
【図４】
2009053336.tif 000043
【図５】
2009053336.tif 000044
【図６】
2009053336.tif 000045
【図７】
2009053336.tif 000046
【図８】
2009053336.tif 000047
【図９】
2009053336.tif 000048
【図１０】
2009053336.tif 000049
【図１１】
2009053336.tif 000050
【図１２】
2009053336.tif 000051
【図１３】
2009053336.tif 000052
【図１４】
2009053336.tif 000053
【図１５】
2009053336.tif 000054
【図１６】
2009053336.tif 000055
【図１７】
2009053336.tif 000056
【図１８】
2009053336.tif 000057
【図１９】
2009053336.tif 000058