(57)【特許請求の範囲】
【請求項１】
コンピュータに、
中間言語で記述された中間表記において第一の修正対象句の韻律情報が修正された修正候補句の修正後の韻律情報とともに、当該修正候補句の前に位置する前置句および後に位置する後置句についての属性情報としてモーラ数、アクセントの位置、品詞構成の少なくとも１つおよび韻律情報を記憶する記憶部を参照し、修正対象である文字列の中間表記のなかに、前記第一の修正対象句と一致する第二の修正対象句がある場合に、当該第二の修正対象句の前および後に位置する句についての前記少なくとも１つのモーラ数、アクセントの位置、品詞構成と、前記前置句または後置句についての前記属性情報とが一致するか否かを判定し、
一致すると判定された場合に、前記修正候補句の修正後の韻律情報と、前記第二の修正対象句の前および後に位置する句についての韻律情報と、前記前置句および後置句の韻律情報とに基づいて、前記第二の修正対象句の韻律情報を修正し、
韻律情報が修正された中間表記に基づいて合成音声を生成する
各処理を実行させることを特徴とする音声合成プログラム。 
【請求項２】
前記第二の修正対象句の韻律情報を修正する処理は、前記第二の修正対象句の前および後に位置する句についての属性情報と前記前置句および後置句についての属性情報とが一致すると判定された場合に、前記第二の修正対象句の前および後に位置する句についての韻律情報と、前記前置句および後置句の韻律情報とが一致するときには、前記修正候補句の修正後の韻律情報を前記第二の修正対象句の韻律情報とし、前記第二の修正対象句の前および後に位置する句についての韻律情報と、前記前置句および後置句の韻律情報とが一致しないときには、前記修正候補句の修正後の韻律情報を補正し、補正された韻律情報を前記第二の修正対象句の韻律情報とすることで、前記第二の修正対象句の韻律情報を修正する
ことを特徴とする請求項１に記載の音声合成プログラム。 
【請求項３】
前記第二の修正対象句の韻律情報を修正する処理は、前記第二の修正対象句の前および後に位置する句についての属性情報と前記前置句および後置句についての属性情報とが一致すると判定された場合に、前記第二の修正対象句の前および後に位置する句についての韻律情報と、前記前置句および後置句の韻律情報とが一致しないときには、前記第二の修正対象句の前に位置する句についての韻律情報が示す韻律値と前記前置句についての韻律情報が示す韻律値との第一の差、ならびに、前記第二の修正対象句の後に位置する句についての韻律情報が示す韻律値と前記後置句についての韻律情報が示す韻律値との第二の差に基づいて、前記修正候補句の修正後の韻律情報を補正するか否かを判定し、補正すると判定した場合には、前記第一の差および前記第二の差に基づいて前記修正候補句の修正後の韻律情報を補正し、補正された韻律情報を前記第二の修正対象句の韻律情報とすることで、前記第二の修正対象句の韻律情報を修正する
ことを特徴とする請求項１または２に記載の音声合成プログラム。 
【請求項４】
前記コンピュータに、
さらに、
文字列の一部分の指定、または、文字列が中間言語で記述された中間表記の一部分の指定を受け付け、
受け付けた文字列の一部分を中間言語で記述した中間表記、または、受け付けた中間表記の一部分の先端または終端が、アクセント句の境界でない場合には、アクセント句の境界でない前記先端または前記終端が、アクセント句の境界となるように、前記一部分の範囲を修正する
各処理を実行させ、
前記記憶部は、修正された範囲を前記第一の修正対象句の範囲として、当該第一の修正対象句の韻律情報が修正された修正候補句の修正後の韻律情報とともに、前記前置句および前記後置句についての属性情報および韻律情報を記憶する
ことを特徴とする請求項１〜３のいずれか１つに記載の音声合成プログラム。 
【請求項５】
前記第二の修正対象句の前および後に位置する句についての属性情報と前記前置句および後置句についての属性情報とが一致するか否かを判定する処理は、中間言語で記述された中間表記において第一の修正対象句の韻律情報が修正された修正候補句の修正後の韻律情報とともに、当該修正候補句の１つ前のアクセント句および１つ後ろのアクセント句についての属性情報および韻律情報を記憶する記憶部を参照し、修正対象である文字列の中間表記のなかに、前記第一の修正対象句と一致する第二の修正対象句がある場合に、当該第二の修正対象句の１つ前のアクセント句および１つ後ろのアクセント句についての属性情報と前記修正候補句の１つ前のアクセント句および１つ後ろのアクセント句についての属性情報とが一致するか否かを判定し、
前記第二の修正対象句の韻律情報を修正する処理は、一致すると判定された場合に、前記修正候補句の修正後の韻律情報と、前記第二の修正対象句の１つ前のアクセント句および１つ後ろのアクセント句についての韻律情報と、前記修正候補句の１つ前のアクセント句および１つ後ろのアクセント句の韻律情報とに基づいて、前記第二の修正対象句の韻律情報を修正する
ことを特徴とする請求項１〜４のいずれか１つに記載の音声合成プログラム。 
【請求項６】
前記コンピュータは、
前記第二の修正対象句の韻律情報を修正する指示を受け付け、
前記第二の修正対象句の韻律情報を修正する処理は、修正対象である文字列の中間表記のなかに、前記第一の修正対象句と一致する前記第二の修正対象句がある場合に、前記指示に基づいて、前記第二の修正対象句の韻律情報を修正する
ことを特徴とする請求項１〜５のいずれか１つに記載の音声合成プログラム。 
【請求項７】
前記記憶部は、さらに、前記第一の修正対象句に対応する文字列を記憶し、
前記第二の修正対象句の韻律情報を修正する処理は、さらに、前記記憶部に記憶された前記第一の修正対象句に対応する文字列と、前記第二の修正対象句に対応する文字列とが一致する場合に、前記第二の修正対象句の韻律情報を修正する
ことを特徴とする請求項１〜６のいずれか１つに記載の音声合成プログラム。 
【請求項８】
コンピュータが、
中間言語で記述された中間表記において第一の修正対象句の韻律情報が修正された修正候補句の修正後の韻律情報とともに、当該修正候補句の前に位置する前置句および後に位置する後置句についての属性情報としてモーラ数、アクセントの位置、品詞構成の少なくとも１つおよび韻律情報を記憶する記憶部を参照し、修正対象である文字列の中間表記のなかに、前記第一の修正対象句と一致する第二の修正対象句がある場合に、当該第二の修正対象句の前および後に位置する句についての前記少なくとも１つのモーラ数、アクセントの位置、品詞構成と、前記前置句または後置句についての前記属性情報とが一致するか否かを判定し、
一致すると判定された場合に、前記修正候補句の修正後の韻律情報と、前記第二の修正対象句の前および後に位置する句についての韻律情報と、前記前置句および後置句の韻律情報とに基づいて、前記第二の修正対象句の韻律情報を修正し、
韻律情報が修正された中間表記に基づいて合成音声を生成する
各処理を実行することを特徴とする音声合成方法。 
【請求項９】
中間言語で記述された中間表記において第一の修正対象句の韻律情報が修正された修正候補句の修正後の韻律情報とともに、当該修正候補句の前に位置する前置句および後に位置する後置句についての属性情報としてモーラ数、アクセントの位置、品詞構成の少なくとも１つおよび韻律情報を記憶する記憶部と、
修正対象である文字列の中間表記のなかに、前記第一の修正対象句と一致する第二の修正対象句がある場合に、当該第二の修正対象句の前および後に位置する句についての前記少なくとも１つのモーラ数、アクセントの位置、品詞構成と、前記前置句または後置句についての前記属性情報とが一致するか否かを判定する判定部と、
前記判定部により一致すると判定された場合に、前記修正候補句の修正後の韻律情報と、前記第二の修正対象句の前および後に位置する句についての韻律情報と、前記前置句および後置句の韻律情報とに基づいて、前記第二の修正対象句の韻律情報を修正する修正部と、
韻律情報が修正された中間表記に基づいて合成音声を生成する生成部と、
を有することを特徴とする音声合成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声合成プログラム、音声合成方法および音声合成装置に関する。
【背景技術】
【０００２】
日本語のテキストデータを言語解析し、テキストデータが表す日本語の文字列をアクセン句ごとに、読みや韻律情報を表記した中間表記のデータに変換し、中間表記のデータに基づいて、合成音声を生成する音声合成装置がある。ここで、韻律情報に含まれる情報の一例としては、アクセントの位置、アクセントの強さ、音程の高さ、抑揚の高さ、話速、音量の大きさなどがある。
【０００３】
また、テキストデータに含まれる特定の単語に対して、単語の前または後ろの所定の位置に関連単語がある場合には、特定の単語の読み方、アクセント位置、抑揚の高さなどの韻律情報をユーザが指定した内容に修正する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−０３０３２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の技術では、韻律情報が修正されたデータに基づいて生成された合成音声の精度が良くない場合があるという問題がある。例えば、上記の技術では、特定の単語について、前または後ろの所定の位置に関連単語がある場合には、特定の単語の韻律情報をユーザが指定した韻律情報に修正する。このため、特定の単語の修正後の韻律情報と、特定の単語の前後の文字列の韻律情報とが大きく異なる場合がある。この場合、韻律情報が修正されたデータに基づいて生成された合成音声は、不自然な音声となる。したがって、上記の技術では、韻律情報が修正されたデータに基づいて生成された合成音声の精度が良くない場合があるという問題がある。
【０００６】
開示の技術は、上記に鑑みてなされたものであって、生成される合成音声の精度の低下が抑制されるように、韻律情報を修正することができる音声合成プログラム、音声合成方法および音声合成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願の開示する音声合成プログラムは、コンピュータに、記憶部を参照し、修正対象である文字列の中間表記のなかに、第一の修正対象句と一致する第二の修正対象句がある場合に、次のような処理を実行させる。すなわち、音声合成プログラムは、コンピュータに、第二の修正対象句の前おおび後に位置する句についての属性情報と前置句および後置句についての属性情報とが一致するか否かを判定する処理を実行させる。なお、記憶部は、中間言語で記述された中間表記において第一の修正対象句の韻律情報が修正された修正候補句の修正後の韻律情報とともに、修正候補句の前に位置する前置句および後に位置する後置句についての属性情報および韻律情報を記憶する。音声合成プログラムは、コンピュータに、一致すると判定された場合に、次の処理を実行させる。すなわち、音声合成プログラムは、修正候補句の修正後の韻律情報と、第二の修正対象句の前および後に位置する句についての韻律情報と、前置句および後置句の韻律情報とに基づいて、第二の修正対象句の韻律情報を修正する処理を実行させる。音声合成プログラムは、コンピュータに、韻律情報が修正された中間表記に基づいて合成音声を生成する処理を実行させる。
【発明の効果】
【０００８】
本願の開示する音声合成プログラム、音声合成方法および音声合成装置の一つの態様によれば、生成される合成音声の精度の低下が抑制されるように、韻律情報を修正することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例に係る音声合成装置の機能構成の一例を示す図である。
【図２】図２は、韻律表記の一例を説明するための図である。
【図３】図３は、実施例に係るＤＢのデータ構成の一例を示す図である。
【図４】図４は、修正範囲指定画面において修正範囲が指定された場合の一例を示す図である。
【図５】図５は、表記修正画面の一例を示す図である。
【図６】図６は、表記修正画面の一例を示す図である。
【図７】図７は、表記修正画面の一例を示す図である。
【図８】図８は、表記修正画面の一例を示す図である。
【図９】図９は、品詞構成と品詞構成を識別するための値との関係を示すテーブルの一例を示す図である。
【図１０】図１０は、実施例に係る音声合成装置が実行する処理の一例を説明するための図である。
【図１１】図１１は、実施例に係る音声合成装置が実行する処理の一例を説明するための図である。
【図１２】図１２は、実施例に係る音声合成装置が実行する処理の一例を説明するための図である。
【図１３】図１３は、実施例に係る音声合成装置が実行する処理の一例を説明するための図である。
【図１４】図１４は、実施例に係る音声合成装置が実行する処理の変形例を説明するための図である。
【図１５】図１５は、実施例に係る音声合成装置が実行する処理の変形例を説明するための図である。
【図１６】図１６は、実施例に係る音声合成装置が実行する処理の変形例を説明するための図である。
【図１７】図１７は、実施例に係る音声合成装置が実行する処理の変形例を説明するための図である。
【図１８】図１８は、実施例に係る登録処理の手順を示すフローチャートである。
【図１９】図１９は、実施例に係る修正処理の手順を示すフローチャートである。
【図２０】図２０は、実施例に係る他の修正処理の手順を示すフローチャートである。
【図２１】図２１は、音声合成プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する音声合成プログラム、音声合成方法および音声合成装置の実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
【実施例】
【００１１】
［音声合成装置１０の機能構成の一例］
実施例に係る音声合成装置について説明する。図１は、実施例に係る音声合成装置の機能構成の一例を示す図である。
【００１２】
図１に示すように、音声合成装置１０は、入力部１１と、表示部１２と、音声出力部１３と、記憶部１４と、制御部１５とを有する。
【００１３】
入力部１１は、各種情報を制御部１５に入力する。例えば、入力部１１は、ユーザから、各種の指示を受け付けて、受け付けた指示を制御部１５に入力する。また、入力部１１は、ユーザの操作によって様々な情報を受け付け、受け付けた情報を制御部１５に入力する。例えば、入力部１１は、ユーザから、記憶部１４に記憶された後述の複数の日本語のテキスト１４ａの中から、処理対象の日本語のテキスト１４ａの指定を受け付けると、受け付けた指定を制御部１５に入力する。入力部１１のデバイスの一例としては、マウスやキーボードなどのユーザの操作を受け付けるデバイスなどが挙げられる。
【００１４】
表示部１２は、各種の情報を出力する。例えば、表示部１２は、後述の取得部１５ａの制御により、後述の修正範囲指定画面を表示する。また、表示部１２は、後述の取得部１５ａの制御により、後述の表記修正画面を表示する。表示部１２のデバイスの一例としては、液晶ディスプレイなどが挙げられる。
【００１５】
音声出力部１３は、音声を出力する。例えば、音声出力部１３は、後述の出力制御部１５ｆの制御により、後述の合成音声データ１４ｃが示す音声を出力する。音声出力部１３のデバイスの一例としては、スピーカなどが挙げられる。
【００１６】
記憶部１４は、各種情報を記憶する。例えば、記憶部１４は、複数の日本語のテキスト１４ａ、ＤＢ（Data Base）１４ｂ、合成音声データ１４ｃを記憶する。なお、以下の説明では、日本語のテキストを「日本語テキスト」と表記する。
【００１７】
日本語テキスト１４ａは、日本語の文字列が記述されたテキストファイルであり、音声合成の処理を行う際に用いられる。
【００１８】
ＤＢ１４ｂには、日本語テキスト１４ａが示す日本語テキスト（日本語の文字列）を中間言語で記述した中間テキストの韻律情報を修正する際に用いられる各種情報が後述の取得部１５ａにより登録される。以下の説明では、日本語テキストを「日本語表記」、中間テキストを「中間表記」と表記する場合がある。ここで、中間表記には、韻律表記と表音表記とが含まれる。
【００１９】
韻律表記は、韻律を指定するための表記であり、韻律の種類を示すアルファベットと、韻律の度合いを示す数値とで表現される。図２は、韻律表記の一例を説明するための図である。図２には、韻律表記「Ａ」が、アクセントの強弱を示す場合が例示されている。図２の例では、韻律表記「Ａ」の右に付された数値が韻律値を示す。すなわち、図２の例では、韻律表記「Ａ」に、「１」〜「５」の韻律値を付した「Ａ１」、「Ａ２」、「Ａ３」、「Ａ４」、「Ａ５」によって、５段階の強さでアクセントを指定することができる場合が示されている。図２の例では、韻律値の値が大きいほどアクセントの強さが大きい場合が示されている。また、図２は、韻律表記「Ａ」のデフォルト値が定義されていない場合を示す。
【００２０】
また、図２には、韻律表記「Ｈ」が、音声の高低を示す場合が例示されている。図２の例では、韻律表記「Ｈ」の右に付された数値が韻律値を示す。すなわち、図２の例では、韻律表記「Ｈ」に、「１」〜「５」の韻律値を付した「Ｈ１」、「Ｈ２」、「Ｈ３」、「Ｈ４」、「Ｈ５」によって、５段階の音声の高さを指定することができる場合が示されている。図２の例では、韻律値の値が大きいほど音声の高さが高い場合が示されている。また、図２は、韻律表記「Ｈ」のデフォルト値として「Ｈ３」が定義されている場合を示す。
【００２１】
また、図２には、韻律表記「Ｉ」が、抑揚の大小を示す場合が例示されている。図２の例では、韻律表記「Ｉ」の右に付された数値が韻律値を示す。すなわち、図２の例では、韻律表記「Ｉ」に、「１」〜「５」の韻律値を付した「Ｉ１」、「Ｉ２」、「Ｉ３」、「Ｉ４」、「Ｉ５」によって、５段階の抑揚の大きさを指定することができる場合が示されている。図２の例では、韻律値の値が大きいほど抑揚の大きさが大きい場合が示されている。また、図２は、韻律表記「Ｉ」のデフォルト値として「Ｉ３」が定義されている場合を示す。
【００２２】
また、図２には、韻律表記「Ｓ」が、話速の緩急を示す場合が例示されている。図２の例では、韻律表記「Ｓ」の右に付された数値が韻律値を示す。すなわち、図２の例では、韻律表記「Ｓ」に、「０」〜「Ｆ（１６進）」の韻律値を付した「Ｓ１」〜「ＳＦ」によって、１６段階の話速の速さを指定することができる場合が示されている。図２の例では、韻律値の値が大きいほど話速の速さが速い場合が示されている。また、図２は、韻律表記「Ｓ」のデフォルト値として「Ｓ５」が定義されている場合を示す。
【００２３】
また、図２には、韻律表記「Ｐ」が、音量の大小を示す場合が例示されている。図２の例では、韻律表記「Ｐ」の右に付された数値が韻律値を示す。すなわち、図２の例では、韻律表記「Ｐ」に、「１」〜「５」の韻律値を付した「Ｐ１」〜「Ｐ５」によって、５段階の音量の大きさを指定することができる場合が示されている。図２の例では、韻律値の値が大きいほど音量の大きさが大きい場合が示されている。また、図２は、韻律表記「Ｐ」のデフォルト値として「Ｐ３」が定義されている場合を示す。
【００２４】
表音表記は、日本語表記の読みをカタカナで表記したものである。なお、表音表記には、無声化の表記「％」や、鼻濁の表記も含まれる。
【００２５】
中間表記について具体例を挙げて説明する。例えば、日本語表記が「今日の天気は、・・・夜には大雨に警戒してください。・・・注意して早めに帰宅しましょう。・・・最低気温は１度で、・・・」である場合の中間表記の一例として、次のような中間表記が挙げられる。すなわち、「キョＡ４−ノ  テＡ４ンキワ，・・・ヨＡ３ルニワ  オーアＡ３メニ  ケーカイシ％テクダサＡ２イ．・・・チュＡ４ーイシ％テ  ハヤメニ  キ％タクシマショＡ３ー．・・・サイテイキＡ４オンハ  イチドＡ３デ，・・・」が挙げられる。この中間表記の例において、例えば、「キョＡ４−ノ」の中間表記は、「キョ」の音がアクセント位置であり、強さが「４」であることを示す。また、「キョＡ４−ノ」には、韻律表記「Ｈ」、「Ｉ」、「Ｓ」、「Ｐ」については記載されていないが、これらの韻律表記にはデフォルト値が設定されているため、「キョＡ４−ノ」の中間表記は、「Ｈ３Ｉ３Ｓ５Ｐ３キョＡ４−ノ」の中間表記と等価である。なお、中間表記は、アクセント句ごとに分割され、アクセント句間は、スペースが挿入される。すなわち、スペースは、アクセント句の境界を示す。また、韻律表記「Ｈ」、「Ｉ」、「Ｓ」、「Ｐ」は、アクセント句ごとに設定される。さらに、上記の中間表記の例において、例えば、「キ％タクシマショＡ３ー」の中間表記は、「キ」の音が無声化することを示す。
【００２６】
図３は、実施例に係るＤＢのデータ構成の一例を示す図である。図３の例が示すＤＢ１４ｂは、「修正対象中間表記」、「修正候補中間表記」、「前置中間表記」、「後置中間表記」、「属性」、「強制修正フラグ」の各項目を有する。
【００２７】
「修正対象中間表記」の項目には、ユーザによって指定された、修正対象の中間表記が登録される。また、「修正候補中間表記」の項目には、ユーザにより韻律情報が修正された修正後の中間表記が登録される。「前置中間表記」の項目には、「修正対象中間表記」の項目に登録された修正対象の中間表記の１つ前のアクセント句の中間表記が登録される。「後置中間表記」の項目には、「修正対象中間表記」の項目に登録された修正対象の中間表記の１つ後ろのアクセント句の中間表記が登録される。「属性」の項目には、「前置中間表記」および「後置中間表記」の項目に登録されたそれぞれのアクセント句の属性情報が登録される。「強制修正フラグ」の項目には、修正を行う韻律情報の種類を示す情報が登録される。なお、「修正対象中間表記」、「修正候補中間表記」、「前置中間表記」、「後置中間表記」、「属性」、「強制修正フラグ」の各項目に登録される内容については、後述する。
【００２８】
合成音声データ１４ｃは、後述の生成部１５ｅにより生成されるデータである。合成音声データ１４ｃは、合成音声を示す。
【００２９】
記憶部１４は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部１４は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)であってもよい。
【００３０】
制御部１５は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図１に示すように、制御部１５は、取得部１５ａと、言語処理部１５ｂと、判定部１５ｃと、修正部１５ｄと、生成部１５ｅと、出力制御部１５ｆとを有する。
【００３１】
取得部１５ａは、入力部１１から、処理対象の日本語テキスト１４ａの指定を受け付けたか否かを判定し、指定を受け付けた場合には、指定された日本語テキスト１４ａを記憶部１４から取得する。また、指定された日本語テキスト１４ａの音声が出力された場合に、取得部１５ａは、言語処理部１５ｂによって生成された中間情報が示す中間表記を表示するように表示部１２の表示を制御する。これにより、表示部１２は、中間表記の修正範囲をユーザが指定可能な画面を表示する。以下の説明では、かかる画面を「修正範囲指定画面」と表記する。修正範囲指定画面では、中間表記の修正範囲が、ユーザにより指定される。例えば、修正範囲指定画面では、ユーザによって入力部１１のマウスが操作され、中間表記の修正範囲がドラッグされることで、中間表記の修正範囲が指定される。すなわち、ユーザは、出力された音声を聞いて、韻律情報を修正したい中間表記の修正範囲を指定する。
【００３２】
図４は、修正範囲指定画面において修正範囲が指定された場合の一例を示す図である。図４の例は、表示部１２に表示された修正範囲指定画面１６を示す。修正範囲指定画面１６には、処理対象の日本語テキスト１４ａを中間言語で記述した中間表記が含まれる。図４の例は、ユーザによって、修正範囲「キョＡ４−ノ」１６ａ、修正範囲「オーアＡ３メニ」１６ｂ、修正範囲「メニ  キ％タクシマ」１６ｃ、修正範囲「イチドＡ３デ，」１６ｄが指定された場合を示す。また、図４の例に示す修正範囲指定画面１６には、確定ボタン１７が設けられている。修正範囲指定画面１６において、ユーザにより入力部１１のマウスが操作され、確定ボタン１７が押下されると、取得部１５ａは、ドラッグされた範囲を修正範囲として認識する。
【００３３】
取得部１５ａは、確定ボタン１７が押下され、修正範囲を認識すると、認識した修正範囲のうち、修正範囲の先端および終端の両端の位置が、アクセント句の境界であるか否かを判定する。両端の位置がアクセント句の境界である場合には、認識した修正範囲の中間表記を特定する。以下の説明では、特定された修正範囲の中間表記を「修正対象中間表記」と称する。ここで、両端の位置がアクセント句の境界でない場合、すなわち、少なくとも先端および終端の一方が、アクセント句の境界でない場合には、取得部１５ａは、両端の位置がアクセント句の境界となるように、修正範囲を拡大する。例えば、修正範囲「メニ  キ％タクシマ」１６ｃは、先端の位置が、「ハヤメニ」のアクセント句の「ヤ」と「メ」との間であり、アクセント句の境界の位置、すなわち、スペースの位置ではない。また、修正範囲「メニ  キ％タクシマ」１６ｃは、終端の位置が、「％タクシマショＡ３ー．」のアクセント句の「マ」と２番目の「シ」との間であり、アクセント句の境界の位置ではない。修正範囲は、アクセント句単位で指定されることが望ましいが、ユーザの操作のミスにより、上述した例のように、アクセント句単位で修正範囲が指定されない場合もある。上述した例は、ユーザが、「ハヤメニ  キ％タクシマショＡ３ー．」の中間表記を修正範囲として指定しようとしたものの、入力部１１の操作のミスにより、「メニ  キ％タクシマ」を修正範囲としてしまった場合であると考えられる。そこで、このような場合には、取得部１５ａは、修正範囲「メニ  キ％タクシマ」１６ｃの両端の位置が、アクセント句の境界となるように、修正範囲１６ｃを拡大させて、新たな修正範囲「ハヤメニ  キ％タクシマショＡ３ー．」１６ｃを得る。これにより、取得部１５ａは、適切な修正範囲を得ることができ、得られた修正範囲を「修正対象中間表記」とする。
【００３４】
ユーザは、上述したように、不適切な修正範囲を指定する場合がある。例えば、複数の名詞が連なる複合語などは、単語間でのアクセント結合が生じるため、アクセント結合がある複合語は、１アクセント句として修正範囲に設定することが好ましい。しかしながら、複合語やアクセント結合といった概念を理解していないユーザもいる。このようなユーザは、複合語の途中から修正範囲を指定する可能性が高い。そこで、取得部１５ａは、修正範囲がアクセント句単位で得られるように、修正範囲を適切な範囲に修正する。このように、ユーザの修正範囲の指定が不適切であっても、適切な修正範囲に修正することで、修正の精度を向上させることができる。
【００３５】
そして、取得部１５ａは、全ての修正対象中間表記が選択済みであるか否かを判定する。選択済みでない場合には、取得部１５ａは、未選択の修正対象中間表記を１つ選択する。その後、取得部１５ａは、選択した修正対象中間表記の韻律情報をユーザに修正させるための画面を表示するように、表示部１２の表示を制御する。以下の説明では、かかる画面を「表記修正画面」と表記する。
【００３６】
図５〜図８は、表記修正画面の一例を示す図である。図５〜図８の例に示す表記修正画面１８は、選択された修正対象中間表記が表示される表示領域１９を有する。また、表記修正画面１８は、表示領域１９に表示された修正対象中間表記の韻律情報が修正された中間表記がユーザにより設定される設定領域２０を有する。以下の説明では、設定領域２０に設定される中間表記を「修正候補中間表記」と表記する。また、図５〜図８の例に示す表記修正画面１８は、修正対象の日本語テキスト１４ａを中間言語で記述した中間表記の中に、修正対象中間表記と一致する中間表記がある場合に、一致する中間表記の韻律情報を修正させる強制修正フラグ２１ａ〜２１ｅを有する。後述するが、強制修正フラグ２１ａ〜２１ｅがオン状態の場合には、前置中間表記および後置中間表記や後述する未修正中間表記の前後のアクセント句の属性情報などとは無関係に、オン状態の強制修正フラグ２１ａ〜２１ｅに対応する種類の韻律が修正される。
【００３７】
図５〜図８の例に示す強制修正フラグ２１ａ〜２１ｅは、チェックボックスの形式となっており、ユーザが入力部１１を操作することによりチェックされると、有効（オン）となる。強制修正フラグ２１ａは、アクセントの強さを修正させるフラグである。強制修正フラグ２１ｂは、音程の高さを修正させるフラグである。強制修正フラグ２１ｃは、抑揚の大きさを修正させるフラグである。強制修正フラグ２１ｄは、話速を修正させるフラグである。強制修正フラグ２１ｅは、音量の大きさを修正させるフラグである。
【００３８】
また、図５〜図８の例に示す確定ボタン２２は、設定領域２０に設定された修正候補中間表記、および、強制修正フラグ２１ａ〜２１ｅのオン／オフの状態を確定するためのボタンである。すなわち、確定ボタン２２は、ユーザにより入力部１１が操作されてユーザにより押下されると、設定領域２０に設定された修正候補中間表記、および、強制修正フラグ２１ａ〜２１ｅのオン／オフの状態が確定される。また、確定ボタン２２が押下されると、表記修正画面１８が、閉じられる。また、図５〜図８の例に示すキャンセルボタン２３は、修正対象中間表記の韻律情報の修正をキャンセルするためのボタンである。キャンセルボタン２３は、押下されると、表記修正画面１８が閉じられる。これにより、修正がキャンセルされる。
【００３９】
図５の例では、取得部１５ａにより、先の修正範囲「キョＡ４−ノ」１６ａが修正対象中間表記として選択され、選択された修正対象中間表記「キョＡ４−ノ」１６ａが表示領域１９に表示された場合が示されている。また、図５の例では、表示領域１９に表示された修正対象中間表記「キョＡ４−ノ」のアクセントの韻律値「４」を「３」に修正した修正候補中間表記「キョＡ３−ノ」がユーザにより設定領域２０に設定された場合が示されている。なお、図５の例では、強制修正フラグ２１ａ〜２１ｅの状態はオフである。
【００４０】
図６の例では、取得部１５ａにより、先の修正範囲「オーアＡ３メニ」１６ｂが修正対象中間表記として選択され、選択された修正対象中間表記「オーアＡ３メニ」１６ａが表示領域１９に表示された場合が示されている。また、図６の例は、表示領域１９に表示された修正対象中間表記「オーアＡ３メニ」の抑揚、話速のデフォルトの韻律値「３」、「５」を「４」、「４」に修正した修正候補中間表記「Ｉ４Ｓ４オーアＡ３メニ」がユーザにより設定領域２０に設定された場合が示す。また、図６の例では、強制修正フラグ２１ｃの状態はオンであり、他の強制修正フラグ２１ａ、２１ｂ、２１ｄ、２１ｅの状態はオフである。
【００４１】
図７の例では、取得部１５ａにより、先の修正範囲「ハヤメニ  キ％タクシマショＡ３ー．」１６ｃが修正対象中間表記として選択され、選択された修正対象中間表記「ハヤメニ  キ％タクシマショＡ３ー．」１６ｃが表示領域１９に表示された場合が示されている。また、図７の例は、表示領域１９に表示された修正対象中間表記「ハヤメニ  キ％タクシマショＡ３ー．」の抑揚、話速、音程のデフォルトの韻律値「３」、「５」、「３」を次のように修正した場合を示す。すなわち、図７の例は、抑揚、話速、音程を「４」、「４」、「４」に修正した修正候補中間表記「Ｓ４Ｐ４Ｈ４ハヤメニ  Ｓ４Ｐ４Ｈ４キ％タクシマショＡ３ー．」がユーザにより設定領域２０に設定された場合を示す。また、図７の例では、強制修正フラグ２１ｄ、２１ｅの状態はオンであり、他の強制修正フラグ２１ａ〜２１ｃの状態はオフである。
【００４２】
図８の例では、取得部１５ａにより、先の修正範囲「イチドＡ３デ，」１６ｄが修正対象中間表記として選択され、選択された修正対象中間表記「イチドＡ３デ，」１６ｄが表示領域１９に表示された場合が示されている。また、図８の例は、表示領域１９に表示された修正対象中間表記「イチドＡ３デ，」の音量のデフォルトの韻律値「３」を「４」に、アクセントの位置を「ド」から「チ」に修正した修正候補中間表記「Ｐ４イチＡ３ドデ，」が設定領域２０に設定された場合を示す。また、図８の例では、強制修正フラグ２１ａ〜２１ｅの状態はオフである。
【００４３】
そして、取得部１５ａは、確定ボタン２２またはキャンセルボタン２３が押されたか否かを判定する。キャンセルボタン２３が押された場合には、表記修正画面１８を閉じて、未選択の修正対象中間表記がある場合には、未選択の修正対象中間表記を選択して上述した処理と同様の処理を行う。
【００４４】
また、確定ボタン２２が押された場合には、取得部１５ａは、設定領域２０に設定された修正候補中間表記、および、強制修正フラグ２１ａ〜２１ｅのオン／オフの状態を取得する。そして、取得部１５ａは、修正対象中間表記を修正候補中間表記に置換して、修正対象中間表記を修正する。
【００４５】
続いて、取得部１５ａは、修正候補中間表記の１つ前に位置するアクセント句の中間表記を取得する。以下の説明では、かかるアクセント句の中間表記を「前置中間表記」と称する。なお、修正対象中間表記を修正する前では、前置中間表記は、修正対象中間表記の１つ前に位置するアクセント句の中間表記でもある。前置中間表記について具体例を挙げて説明する。「キョＡ４−ノ  テＡ４ンキワ，・・・ヨＡ３ルニワ  オーアＡ３メニ  ケーカイシ％テクダサＡ２イ．・・・チュＡ４ーイシ％テ  ハヤメニ  キ％タクシマショＡ３ー．・・・サイテイキＡ４オンハ  イチドＡ３デ，・・・」の中間表記を例に挙げて説明する。このような中間表記が後述の言語処理部１５ｂにより生成された場合に、図５の例に示す内容が表記修正画面１８に設定され、確認ボタン２２が押下されたときには、取得部１５ａは、次のような処理を行う。すなわち、取得部１５ａは、「キョＡ４−ノ」の１つ前に位置するアクセント句は存在せず、「キョＡ４−ノ」は、呼気段落の先頭であるため、呼気段落の先頭であることを示す「−」を取得する。また、図６の例に示す内容が表記修正画面１８に設定され、確認ボタン２２が押下されたときには、取得部１５ａは、次のような処理を行う。すなわち、取得部１５ａは、「オーアＡ３メニ」の１つ前に位置するアクセント句「ヨＡ３ルニワ」を取得する。また、図７の例に示す内容が表記修正画面１８に設定され、確認ボタン２２が押下されたときには、取得部１５ａは、次のような処理を行う。すなわち、取得部１５ａは、「ハヤメニ  キ％タクシマショＡ３ー．」の１つ前に位置するアクセント句「チュＡ４ーイシ％テ」を取得する。また、図８の例に示す内容が表記修正画面１８に設定され、確認ボタン２２が押下されたときには、取得部１５ａは、次のような処理を行う。すなわち、取得部１５ａは、「イチドＡ３デ，」の１つ前に位置するアクセント句「サイテイキＡ４オンハ」を取得する。
【００４６】
このように、取得部１５ａは、修正候補中間表記（修正対象中間表記）の韻律情報に対して影響の高い直前のアクセント句の中間表記に含まれる韻律表記を取得することで、韻律情報を修正する際に、影響の高い情報を取得することができる。また、修正候補中間表記（修正対象中間表記）の韻律情報に対して影響の高い直前の１つのアクセント句を取得するため、修正候補中間表記の前に位置する複数のアクセント句を取得する場合と比較して、より少ないデータ量で情報を取得することができる。また、取得部１５ａによれば、ＤＢ１４ａに、より少ないデータ量で登録を行うことができる。
【００４７】
また、取得部１５ａは、修正候補中間表記の１つ後ろに位置するアクセント句の中間表記を取得する。以下の説明では、かかるアクセント句の中間表記を「後置中間表記」と称する。なお、修正対象中間表記を修正する前では、後置中間表記は、修正対象中間表記の１つ後ろに位置するアクセント句の中間表記でもある。後置中間表記について具体例を挙げて説明する。先の「キョＡ４−ノ  テＡ４ンキワ，・・・ヨＡ３ルニワ  オーアＡ３メニ  ケーカイシ％テクダサＡ２イ．・・・チュＡ４ーイシ％テ  ハヤメニ  キ％タクシマショＡ３ー．・・・サイテイキＡ４オンハ  イチドＡ３デ，・・・」の中間表記を例に挙げて説明する。このような中間表記が後述の言語処理部１５ｂにより生成された場合に、図５の例に示す内容が表記修正画面１８に設定され、確認ボタン２２が押下されたときには、取得部１５ａは、次のような処理を行う。すなわち、取得部１５ａは、「キョＡ４−ノ」の１つ後ろに位置するアクセント句「テＡ４ンキワ，」を取得する。また、図６の例に示す内容が表記修正画面１８に設定され、確認ボタン２２が押下されたときには、取得部１５ａは、次のような処理を行う。すなわち、取得部１５ａは、「オーアＡ３メニ」の１つ後ろに位置するアクセント句「ケーカイシ％テクダサＡ２イ．」を取得する。また、図７の例に示す内容が表記修正画面１８に設定され、確認ボタン２２が押下されたときには、取得部１５ａは、次のような処理を行う。すなわち、取得部１５ａは、「ハヤメニ  キ％タクシマショＡ３ー．」の１つ後ろに位置するアクセント句が、「ハヤメニ  キ％タクシマショＡ３ー．」が文末であるため存在しないので、呼気段落の末尾であることを示す「−」を取得する。また、図８の例に示す内容が表記修正画面１８に設定され、確認ボタン２２が押下されたときには、取得部１５ａは、次のような処理を行う。すなわち、取得部１５ａは、「イチドＡ３デ，」の１つ後ろに位置するアクセント句が、「イチドＡ３デ，」が呼気段落末であるため存在しないので、呼気段落の末尾であることを示す「−」を取得する。
【００４８】
このように、取得部１５ａは、修正候補中間表記（修正対象中間表記）の韻律情報に対して影響の高い直後のアクセント句の中間表記に含まれる韻律表記を取得することで、韻律情報を修正する際に、影響の高い情報を取得することができる。また、修正候補中間表記（修正対象中間表記）の韻律情報に対して影響の高い直後の１つのアクセント句を取得するため、修正候補中間表記の後ろに位置する複数のアクセント句を取得する場合と比較して、より少ないデータ量で情報を取得することができる。また、取得部１５ａによれば、ＤＢ１４ａに、より少ないデータ量で登録を行うことができる。
【００４９】
次に、取得部１５ａは、前置中間表記の属性を算出する。例えば、取得部１５ａは、前置中間表記の属性「Ｐ  ＮＮ  ＮＮ  ＮＮＮ・・・」を算出する。ここで、「Ｐ」は、前置中間表記の属性であることを示す。左から１番目の「ＮＮ」は、前置中間表記のモーラ数を示す値である。また、左から２番目の「ＮＮ」は、前置中間表記のアクセントの位置が何モーラ目にあるかを示す値である。また、「ＮＮＮ・・・」は、前置中間表記の品詞構成を識別するための値（識別子）である。図９は、品詞構成と品詞構成を識別するための値との関係を示すテーブルの一例を示す図である。図９の例では、例えば、品詞構成のカテゴリが呼気段落の先頭であることを示す「呼気段落先頭」である場合には、「呼気段落先頭」の識別子が「００１」であることを示す。また、図９の例では、例えば、品詞構成のカテゴリが「動詞」である場合には、「動詞」の識別子が「２００」であることを示す。
【００５０】
前置中間表記の属性について具体例を挙げて説明する。前置中間表記が呼気段落の先頭であることを示す「−」である場合には、モーラ数が「００」で、アクセント位置が指定されておらず、品詞構成のカテゴリが「呼気段落先頭」である。この場合、取得部１５ａは、モーラ数「００」、アクセント位置が指定されていないことを示す「００」、「呼気段落先頭」の識別子「００１」を用いて、前置中間表記の属性「Ｐ  ００  ００  ００１」を算出する。また、前置中間表記が「ヨＡ３ルニハ」である場合には、モーラ数が「０４」で、アクセント位置が１番目のモーラで、品詞構成のカテゴリが、「普通名詞（普通）」、「格助詞」、「副助詞」である。このため、取得部１５ａは、モーラ数「０４」、アクセント位置を示す「０１」、「普通名詞（普通）」、「格助詞」、「副助詞」の識別子「１００」、「８００」、「８０２」を用いて、前置中間表記の属性「Ｐ  ０４  ０１  １００  ８００  ８０２」を算出する。取得部１５ａは、他の前置中間表記についても同様の方法で属性を算出する。
【００５１】
また、取得部１５ａは、後置中間表記の属性を算出する。例えば、取得部１５ａは、後置中間表記の属性「Ｎ  ＮＮ  ＮＮ  ＮＮＮ・・・」を算出する。ここで、属性「Ｎ  ＮＮ  ＮＮ  ＮＮＮ・・・」中、１番左に位置する「Ｎ」は、後置中間表記の属性であることを示す。また、左から１番目の「ＮＮ」は、後置中間表記のモーラ数を示す値である。また、左から２番目の「ＮＮ」は、後置中間表記のアクセントの位置が何モーラ目にあるかを示す値である。また、「ＮＮＮ・・・」は、後置中間表記の品詞構成を識別するための値である。取得部１５ａは、前置中間表記の属性を算出した場合と同様の方法で、後置中間表記の属性「Ｎ  ＮＮ  ＮＮ  ＮＮＮ・・・」を算出する。  
【００５２】
その後、取得部１５ａは、選択された修正対象中間表記と、かかる修正対象中間表記に対応する日本語表記と、取得した修正候補中間表記と、強制修正フラグ２１ａ〜２１ｅのうちオンの状態の強制修正フラグを示す情報とを対応付けてＤＢ１４ｂに登録する。これに加えて、取得部１５ａは、前置中間表記と、後置中間表記と、前置中間表記の属性と、後置中間表記の属性とを対応付けてＤＢ１４ｂに登録する。例えば、取得部１５ａは、先の図３の例に示すＤＢ１４ｂの「修正対象中間表記」の項目に、選択された修正対象中間表記と、選択された修正対象中間表記に対応する日本語表記とを登録する。また、取得部１５ａは、「修正候補中間表記」の項目に、取得した修正候補中間表記を登録する。また、取得部１５ａは、「前置中間表記」の項目に、取得した前置中間表記を登録する。また、取得部１５ａは、「後置中間表記」の項目に、取得した後置中間表記を登録する。また、取得部１５ａは、「属性」の項目に、算出した前置中間表記の属性および後置中間表記の属性を登録する。また、取得部１５ａは、「強制修正フラグ」の項目に、強制修正フラグ２１ａ〜２１ｅのうちオンの状態の強制修正フラグを示す情報を登録する。これにより、先の図３の例に示すように、ＤＢ１４ｂの各項目に、後述の修正部１５ｄによって、修正対象の日本語テキスト１４ａを修正する際に用いられる各種情報が登録される。
【００５３】
取得部１５ａは、全ての修正対象中間表記に対して上述した処理を行って、ＤＢ１４ｂの各項目に、各種情報を登録する。
【００５４】
言語処理部１５ｂは、言語辞書などの中間表記を生成するための各種辞書を用いて、取得部１５ａおよび判定部１５ｃによって取得された日本語テキスト１４ａに基づいて、中間言語で表記された中間表記の情報である中間情報を生成する。
【００５５】
判定部１５ｃは、修正対象である日本語テキスト１４ａを中間言語で記述した中間表記のなかに、ＤＢ１４ｂに登録された修正対象中間表記と一致する中間表記がある場合に、次のような処理を行う。すなわち、判定部１５ｃは、修正対象中間表記と一致する中間表記の１つ前に位置するアクセント句の中間表記についての属性情報と、前置中間表記についての属性情報とが一致するか否かを判定する。また、判定部１５ｃは、修正対象中間表記と一致する中間表記の１つ後ろに位置するアクセント句の中間表記についての属性情報と、後置中間表記についての属性情報とが一致するか否かを判定する。以下の説明では、ＤＢ１４ｂに登録された修正対象中間表記と一致する中間表記を、「未修正中間表記」と称する。
【００５６】
具体例を挙げて説明する。判定部１５ｃは、まず、入力部１１から、修正対象の日本語テキスト１４ａの指定を受け付けたか否かを判定し、指定を受け付けた場合には、指定された日本語テキスト１４ａを記憶部１４から取得する。そして、判定部１５ｃは、ＤＢ１４ｂを参照し、未選択の修正対象中間表記があるか否かを判定する。未選択の修正対象中間表記がある場合には、判定部１５ｃは、未選択の修正対象中間表記を１つ選択する。その後、判定部１５ｃは、言語処理部１５ｂによって生成された修正対象の日本語テキスト１４ａの中間情報が示す中間表記に対して、選択した修正対象中間表記があるか検索する。
【００５７】
検索の結果、修正対象の日本語テキスト１４ａの中間情報が示す中間表記のなかに、選択した修正対象中間表記と一致する未修正中間表記がない場合には、判定部１５ｃは、上述した、ＤＢ１４ｂを参照し、未選択の修正対象中間表記があるか否かを判定する処理に戻り、以降の処理を行う。
【００５８】
一方、検索の結果、修正対象の日本語テキスト１４ａの中間情報が示す中間表記のなかに、選択した修正対象中間表記と一致する未修正中間表記がある場合には、判定部１５ｃは、未修正中間表記のうち、未選択の未修正中間表記があるか否かを判定する。未選択の未修正中間表記がない場合には、全ての未修正中間表記について、下記に説明する処理が行われたため、判定部１５ｃは、上述した、ＤＢ１４ｂを参照し、未選択の修正対象中間表記があるか否かを判定する処理に戻り、以降の処理を行う。
【００５９】
一方、未選択の未修正中間表記がある場合には、判定部１５ｃは、未選択の未修正中間表記を１つ選択する。そして、修正対象の日本語テキスト１４ａの中間情報が示す中間表記のなかから、選択した未修正中間表記の１つ前に位置するアクセント句の中間表記、および、１つ後ろに位置するアクセント句の中間表記を取得する。そして、判定部１５ｃは、未修正中間表記の１つ前に位置するアクセント句の中間表記の属性情報、および、１つ後ろに位置するアクセント句の中間表記の属性情報を、上述した取得部１５ａによる属性情報の算出方法と同様の方法を用いて算出する。続いて、判定部１５ｃは、ＤＢ１４ｂを参照し、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「強制修正フラグ」の項目に、強制修正フラグを示す情報が登録されているか否かを判定する。
【００６０】
強制修正フラグを示す情報が登録されていない場合には、判定部１５ｃは、ＤＢ１４ｂを参照し、次のような処理を行う。すなわち、判定部１５ｃは、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「属性」の項目に登録された前置中間表記の属性情報と、未修正中間表記の１つ前に位置するアクセント句の中間表記の属性情報とが一致するか否かを判定する。これに加えて、判定部１５ｃは、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「属性」の項目に登録された後置中間表記の属性情報と、未修正中間表記の１つ後ろに位置するアクセント句の中間表記の属性情報とが一致するか否かも判定する。ここでいう属性情報は、例えば、以下の説明では、モーラ数と、アクセントの位置との組み合わせを属性情報として採用する場合について説明するが、属性情報は、これに限られない。例えば、属性情報は、モーラ数、アクセントの位置、品詞構成の少なくとも１つであってもよい。また、以下の説明において、上述した前置中間表記の属性情報と、未修正中間表記の１つ前に位置するアクセント句の中間表記の属性情報とが一致するか否かについての判定を「第一の判定」と表記する場合がある。また、上述した後置中間表記の属性情報と、未修正中間表記の１つ後ろに位置するアクセント句の中間表記の属性情報とが一致するか否かについての判定を「第二の判定」と表記する場合がある。判定部１５ｃは、第一の判定および第二の判定の両方の判定のうち、少なくとも１つの判定で、一致しないと判定された場合には、上述した、未選択の未修正中間表記があるか否かを判定する処理に戻り、以降の処理を行う。
【００６１】
図１０〜図１３は、実施例に係る音声合成装置が実行する処理の一例を説明するための図である。図１０の例は、取得部１５ａによってＤＢ１４ｂの「修正対象中間表記」の項目に、「オーアＡ３メニ」３０ａが登録された場合を示す。また、図１０の例は、取得部１５ａによってＤＢ１４ｂの「前置中間表記」の項目に、「ヨＡ３ルニワ」３０ｂが登録された場合を示す。また、図１０の例は、取得部１５ａによってＤＢ１４ｂの「後置中間表記」の項目に、「ケーカイシ％テクダサＡ２イ．」３０ｃが登録された場合を示す。また、図１０の例では、ＤＢ１４ｂの「強制修正フラグ」の項目には、修正を行う韻律情報の種類を示す情報が登録されていないものとする。さらに、図１０の例では、ＤＢ１４ｂの「修正候補中間表記」の項目に、「オーアＡ４メニ」が登録されているものとする。
【００６２】
また、図１０の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」３１ａが選択された場合を示す。また、図１０の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」３１ａの１つ前に位置するアクセント句の中間表記「ヨＡ３ルニワ」３１ｂが取得された場合を示す。また、図１０の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」３１ａの１つ後ろに位置するアクセント句の中間表記「ケーカイシ％テクダサＡ２イ．」３１ｃが取得された場合を示す。すなわち、図１０の例は、判定部１５ｃによって、修正対象の日本語テキスト１４ａの中間表記から、修正対象中間表記「オーアＡ３メニ」３０ａと一致する未修正中間表記「オーアＡ３メニ」３１ａが検索の結果得られた場合を示す。また、図１０の例では、判定部１５ｃは、前置中間表記「ヨＡ３ルニワ」３０ｂの属性情報と、中間表記「ヨＡ３ルニワ」３１ｂの属性情報とが一致すると判定する。また、図１０の例では、判定部１５ｃは、後置中間表記「ケーカイシ％テクダサＡ２イ．」３０ｃの属性情報と、中間表記「ケーカイシ％テクダサＡ２イ．」３１ｃの属性情報とが一致すると判定する。
【００６３】
図１１の例は、取得部１５ａによってＤＢ１４ｂの「修正対象中間表記」の項目に、「オーアＡ３メニ」３３ａが登録された場合を示す。また、図１１の例は、取得部１５ａによってＤＢ１４ｂの「前置中間表記」の項目に、「ヨＡ３ルニワ」３３ｂが登録された場合を示す。また、図１１の例は、取得部１５ａによってＤＢ１４ｂの「後置中間表記」の項目に、「ケーカイシ％テクダサＡ２イ．」３３ｃが登録された場合を示す。また、図１１の例では、ＤＢ１４ｂの「強制修正フラグ」の項目には、修正を行う韻律情報の種類を示す情報が登録されていないものとする。さらに、図１１の例では、ＤＢ１４ｂの「修正候補中間表記」の項目に、「オーアＡ４メニ」が登録されているものとする。
【００６４】
また、図１１の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」３４ａが選択された場合を示す。また、図１１の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」３４ａの１つ前に位置するアクセント句の中間表記「アＡ３サニワ」３４ｂが取得された場合を示す。また、図１１の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」３４ａの１つ後ろに位置するアクセント句の中間表記「ケーカイシ％テクダサＡ２イ．」３４ｃが取得された場合を示す。すなわち、図１１の例は、判定部１５ｃによって、修正対象の日本語テキスト１４ａの中間表記から、修正対象中間表記「オーアＡ３メニ」３３ａと一致する未修正中間表記「オーアＡ３メニ」３４ａが検索の結果得られた場合を示す。また、図１１の例では、判定部１５ｃは、前置中間表記「ヨＡ３ルニワ」３３ｂの属性情報と、中間表記「アＡ３サニワ」３４ｂの属性情報とが一致すると判定する。これは、前置中間表記「ヨＡ３ルニワ」３３ｂ、および、中間表記「アＡ３サニワ」３４ｂは、ともに、モーラ数が「４」であり、アクセントの位置が「１」であるため属性情報が同一となるからである。また、図１１の例では、判定部１５ｃは、後置中間表記「ケーカイシ％テクダサＡ２イ．」３３ｃの属性情報と、中間表記「ケーカイシ％テクダサＡ２イ．」３４ｃの属性情報とが一致すると判定する。
【００６５】
図１２の例は、取得部１５ａによってＤＢ１４ｂの「修正対象中間表記」の項目に、「オーアＡ３メニ」３６ａが登録された場合を示す。また、図１２の例は、取得部１５ａによってＤＢ１４ｂの「前置中間表記」の項目に、「ヨＡ３ルニワ」３６ｂが登録された場合を示す。また、図１２の例は、取得部１５ａによってＤＢ１４ｂの「後置中間表記」の項目に、「ケーカイシ％テクダサＡ２イ．」３６ｃが登録された場合を示す。また、図１２の例では、ＤＢ１４ｂの「強制修正フラグ」の項目には、修正を行う韻律情報の種類を示す情報が登録されていないものとする。さらに、図１２の例では、ＤＢ１４ｂの「修正候補中間表記」の項目に、「オーアＡ４メニ」が登録されているものとする。
【００６６】
また、図１２の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」３７ａが選択された場合を示す。また、図１２の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」３７ａの１つ前に位置するアクセント句の中間表記「アＡ４サニワ」３７ｂが取得された場合を示す。また、図１２の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」３７ａの１つ後ろに位置するアクセント句の中間表記「ケーカイシ％テクダサＡ３イ．」３７ｃが取得された場合を示す。すなわち、図１２の例は、判定部１５ｃによって、修正対象の日本語テキスト１４ａの中間表記から、修正対象中間表記「オーアＡ３メニ」３６ａと一致する未修正中間表記「オーアＡ３メニ」３７ａが検索の結果得られた場合を示す。また、図１２の例では、判定部１５ｃは、前置中間表記「ヨＡ３ルニワ」３６ｂの属性情報と、中間表記「アＡ４サニワ」３７ｂの属性情報とが一致すると判定する。これは、前置中間表記「ヨＡ３ルニワ」３６ｂ、および、中間表記「アＡ４サニワ」３７ｂは、韻律値は異なるが、ともに、モーラ数が「４」であり、アクセントの位置が「１」であるため属性情報が同一となるからである。また、図１２の例では、判定部１５ｃは、後置中間表記「ケーカイシ％テクダサＡ２イ．」３６ｃの属性情報と、中間表記「ケーカイシ％テクダサＡ３イ．」３７ｃの属性情報とが一致すると判定する。これは、後置中間表記「ケーカイシ％テクダサＡ２イ．」３６ｃ、および、中間表記「ケーカイシ％テクダサＡ３イ．」３７ｃは、韻律値は異なるが、ともに、モーラ数が「１０」であり、アクセントの位置が「９」であるため属性情報が同一となるからである。
【００６７】
図１３の例は、取得部１５ａによってＤＢ１４ｂの「修正対象中間表記」の項目に、「オーアＡ３メニ」３９ａが登録された場合を示す。また、図１３の例は、取得部１５ａによってＤＢ１４ｂの「前置中間表記」の項目に、「ヨＡ３ルニワ」３９ｂが登録された場合を示す。また、図１３の例は、取得部１５ａによってＤＢ１４ｂの「後置中間表記」の項目に、「ケーカイシ％テクダサＡ２イ．」３９ｃが登録された場合を示す。また、図１０の例では、ＤＢ１４ｂの「強制修正フラグ」の項目には、修正を行う韻律情報の種類を示す情報として、「抑揚」を示す情報（「Ｉ」に関する強制修正フラグを示す情報）が登録されているものとする。
【００６８】
また、図１３の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」４０ａが選択された場合を示す。また、図１３の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」４０ａの１つ前にアクセント句が位置しないため、呼気段落の先頭を示す記号「−」４０ｂが取得された場合を示す。また、図１３の例は、判定部１５ｃによって、未修正中間表記「オーアＡ３メニ」４０ａの１つ後ろに位置するアクセント句の中間表記「ナＡ３ッタ．」４０ｃが取得された場合を示す。すなわち、図１３の例は、判定部１５ｃによって、修正対象の日本語テキスト１４ａの中間表記から、修正対象中間表記「オーアＡ３メニ」３９ａと一致する未修正中間表記「オーアＡ３メニ」４０ａが検索の結果得られた場合を示す。ここで、図１３の例では、判定部１５ｃにより選択された修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「強制修正フラグ」の項目に、強制修正フラグを示す情報が登録されている。そのため、図１３の例では、判定部１５ｃは、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「強制修正フラグ」の項目に、強制修正フラグを示す情報が登録されていると判定する。
【００６９】
修正部１５ｄは、判定部１５ｃにより、上述した、「強制修正フラグ」の項目に、強制修正フラグを示す情報が登録されていると判定された場合や、第一の判定および第二の判定の両方の判定において、一致すると判定された場合に、次のような処理を行う。すなわち、修正部１５ｄは、修正候補中間表記の韻律情報と、未修正中間表記の１つ前または後ろに位置するアクセント句の中間表記についての韻律情報と、前置中間表記および後置中間表記の韻律情報とに基づいて、未修正中間表記の韻律情報を修正する。
【００７０】
例えば、修正部１５ｄは、判定部１５ｃにより、上述した「強制修正フラグ」の項目に、強制修正フラグを示す情報が登録されていると判定された場合や、第一の判定および第二の判定の両方の判定において、一致すると判定された場合に、韻律値を比較する。具体例を挙げて説明する。修正部１５ｄは、同種類の韻律であって中間表記上の同一の位置の韻律の韻律値について、選択した未修正中間表記の１つ前に位置するアクセント句の中間表記と、前置中間表記とで比較する。これに加えて、修正部１５ｄは、同種類の韻律であって中間表記上の同一の位置の韻律の韻律値について、選択した未修正中間表記の１つ後ろに位置するアクセント句の中間表記と、後置中間表記とで比較する。そして、修正部１５ｄは、かかる２つの比較の結果、２つとも一致するか否かを判定する。なお、以下の説明では、選択した未修正中間表記の１つ前に位置するアクセント句の中間表記と、前置中間表記との比較を「第一の比較」と表記する場合がある。また、選択した未修正中間表記の１つ後ろに位置するアクセント句の中間表記と、後置中間表記との比較を「第二の比較」と表記する場合がある。
【００７１】
例えば、図１０の例では、前置中間表記３０ｂと未修正中間表記３１ａの１つ前のアクセント句の中間表記３１ｂとで、韻律表記「Ａ３」が示す韻律の種類および位置が一致している。このため、修正部１５ｄは、同種類の韻律（「アクセントの強さ」の韻律）であって中間表記上同一の位置の韻律の韻律値「３」について、中間表記３１ｂと、前置中間表記３０ｂとで比較した結果、一致すると判定する。また、図１０の例では、修正部１５ｄは、同様に、同種類の韻律（「アクセントの強さ」の韻律）であって中間表記上同一の位置の韻律の韻律値「２」について、中間表記３１ｃと、後置中間表記３０ｃとで比較した結果、一致すると判定する。
【００７２】
同様に、図１１の例においても、修正部１５ｄは、同種類の韻律（「アクセントの強さ」の韻律）であって中間表記上同一の位置の韻律の韻律値「３」について、中間表記３４ｂと、前置中間表記３３ｂとで比較した結果、一致すると判定する。また、図１１の例において、修正部１５ｄは、同種類の韻律（「アクセントの強さ」の韻律）であって中間表記上同一の位置の韻律の韻律値「２」について、中間表記３４ｃと、後置中間表記３３ｃとで比較した結果、一致すると判定する。
【００７３】
同様に、図１２の例においても、修正部１５ｄは、同種類の韻律（「アクセントの強さ」の韻律）の中間表記上同一の位置の韻律の韻律値「４」、「３」について、中間表記３７ｂと、前置中間表記３６ｂとで比較した結果、一致しないと判定する。また、図１２の例において、修正部１５ｄは、同種類の韻律（「アクセントの強さ」の韻律）の中間表記上同一の位置の韻律の韻律値「３」、「２」について、中間表記３７ｃと、後置中間表記３６ｃとで比較した結果、一致しないと判定する。
【００７４】
同様に、図１３の例では、ＤＢ１４ｂの「強制修正フラグ」の項目に、「Ｉ」に関する強制修正フラグを示す情報が登録されていると判定されるため、「Ｉ」の韻律値の一致について判定する。図１３の例では、選択した未修正中間表記の１つ前に位置するアクセント句の中間表記と、前置中間表記とで、デフォルト値「Ｉ３」が示す韻律の種類および韻律値が同一である。また、図１３の例では、選択した未修正中間表記の１つ後ろに位置するアクセント句の中間表記と、後置中間表記とで、デフォルト値「Ｉ３」が示す韻律の種類および韻律値が同一である。このため、図１３の例では、修正部１５ｄは、いずれの比較結果においても一致すると判定する。
【００７５】
修正部１５ｄは、第一の比較の結果、および、第二の比較の結果を判定する。そして、第一の比較の結果、および、第二の比較の結果がともに、一致するという判定結果である場合には、修正部１５ｄは、ＤＢ１４ｂを参照し、次のような処理を行う。すなわち、修正部１５ｄは、選択した未修正中間表記を、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「修正候補中間表記」の項目に登録された修正候補中間表記で置換することにより、選択した未修正中間表記を修正する。例えば、図１０の例では、修正部１５ｄは、未修正中間表記「オーアＡ３メニ」３１ａを、修正候補中間表記「オーアＡ４メニ」３２で置換する。修正部１５ｄは、このような処理を全ての未修正中間表記に対して行うため、効率良く韻律情報を修正することができる。
【００７６】
また、図１１の例では、修正部１５ｄは、未修正中間表記「オーアＡ３メニ」３４ａを、修正候補中間表記「オーアＡ４メニ」３５で置換する。このように、修正部１５ｄは、未修正中間表記の前のアクセント句の中間表記と、前置中間表記とが異なる場合や、未修正中間表記の後ろのアクセント句の中間表記と、後置中間表記とが異なる場合であっても、次のような処理を行う。すなわち、修正部１５ｄは、これらの属性情報が一致する場合には、未修正中間表記の修正を行う。このように、属性情報が一致する場合に、修正される対象となる未修正中間表記の数が多くなるため、さらに、効率的に韻律情報の修正を行うことができる。
【００７７】
また、修正部１５ｄは、ＤＢ１４ｂに強制フラグが登録されている場合には、登録された強制フラグが示す種類の韻律の韻律値を所定の値に修正する。たとえば、図１３の例では、韻律「Ｉ」について強制修正フラグが設定されているため、この強制フラグが示す種類の韻律（抑揚の韻律）の韻律値を所定の値、例えば「４」に修正するために、修正部１５ｄは、次のような処理を行う。すなわち、修正部１５ｄは、未修正中間表記「オーアＡ３メニ」４０ａを、修正候補中間表記「Ｉ４オーアＡ３メニ」４０ｄで置換する。このようにして、修正部１５ｄは、「Ｉ３オーアＡ３メニ」４０ａを、修正候補中間表記「Ｉ４オーアＡ３メニ」４０ｄに修正する。修正部１５ｄは、ユーザによって、アクセント句ごとに設定される強制修正フラグに基づいて韻律情報を修正する。このように、修正部１５ｄは、ユーザの好みに応じた韻律に修正することができる。
【００７８】
また、修正部１５ｄは、第一の比較、および、第二の比較において、少なくとも一方の比較で一致しないと判定された場合には、修正部１５ｄは、同種類の韻律が中間表記上同一の位置に存在するが、韻律値のみが異なるか否かについて判定する。例えば、図１２の例では、同種類の韻律「Ａ」が中間表記上同一の位置（１番目のモーラ）に存在するが、韻律値が「４」と「３」であるため、修正部１５ｄは、韻律値のみが異なると判定する。また、図１２の例では、同種類の韻律「Ａ」が中間表記上同一の位置（９番目のモーラ）に存在するが、韻律値が「３」と「２」であるため、修正部１５ｄは、韻律値のみが異なると判定する。
【００７９】
修正部１５ｄは、未修正中間表記の前のアクセント句の中間表記と、前置中間表記との比較、および、後ろのアクセント句の中間表記と、後置中間表記との比較の２つの比較の両方の比較において、韻律値のみが異なると判定された場合には、次の処理を行う。すなわち、修正部１５ｄは、未修正中間表記の前のアクセント句の中間表記と前置中間表記との韻律値の変化傾向、および、後ろのアクセント句の中間表記と後置中間表記との韻律値の変化傾向が同一であるか否かを判定する。例えば、修正部１５ｄは、まず、未修正中間表記の前のアクセント句の中間表記が示す韻律値Ｐｓ０から、前置中間表記の韻律値Ｐｄ０を減じた値Ｉｐ（Ｐｓ０−Ｐｄ０）を算出する。そして、修正部１５ｄは、未修正中間表記の後ろのアクセント句の中間表記が示す韻律値Ｐｓ２から、後置中間表記の韻律値Ｐｄ２を減じた値Ｉｎ（Ｐｓ２−Ｐｄ２）を算出する。そして、修正部１５ｄは、「Ｉｐ≧０」かつ「Ｉｎ≧０」であるか、または、「Ｉｐ≦０」かつ「Ｉｎ≦０」である場合には、韻律値の変化傾向が同一であると判定する。そうでない場合には、韻律値の変化傾向が同一でないと判定する。例えば、図１２の例では、修正部１５ｄは、Ｉｐの値として「１」（４−３）、Ｉｎの値として「１」（３−２）を算出する。図１２の例の場合、「Ｉｐ≧０」かつ「Ｉｎ≧０」であるため、修正部１５ｄは、韻律値の変化傾向が同一であると判定する。
【００８０】
韻律値の変化傾向が同一であると判定された場合には、修正部１５ｄは、ＤＢ１４ｂを参照し、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「修正候補中間表記」の項目に登録された修正候補中間表記を補正する。例えば、修正部１５ｄは、韻律値Ｎを下記の式（１）により算出する。
Ｎ＝Ｐ＋（（Ｉｐ＋Ｉｎ）／２）  ・・・式（１）
ただし、Ｐは、修正候補中間表記の韻律値である。
【００８１】
図１２の例の場合、修正部１５ｄは、韻律値Ｎの値「５」（４＋（１＋１）／２）を算出する。そして、修正部１５ｄは、算出した韻律値Ｎを修正候補中間表記の韻律値とすることで、修正候補中間表記を補正する。図１２の例では、修正部１５ｄは、修正候補中間表記の韻律値を「４」から「５」に補正する。そして、修正部１５ｄは、未修正中間表記を、韻律値が補正された修正候補中間表記で置換する。図１２の例では、未修正中間表記「オーアＡ３メニ」３７ａを、韻律値が補正された修正候補中間表記「オーアＡ５メニ」３８で置換する。その後、修正部１５ｄは、韻律値が置換された修正候補中間表記を置換前の韻律値の値に戻す。
【００８２】
生成部１５ｅは、言語処理部１５ｂにより生成された中間情報に基づいて、各種の辞書を用いて、合成音声を生成する。また、生成部１５ｅは、判定部１５ｃにより、未選択の修正対象中間表記がないと判定された場合に、修正部１５ｄにより修正された修正対象の中間表記の中間情報に基づいて、各種の辞書を用いて、合成音声を生成する。そして、生成した合成音声のデータ（合成音声データ）１４ｃを記憶部１４に格納する。
【００８３】
出力制御部１５ｆは、生成部１５ｅにより合成音声データ１４ｃが生成された場合、および、入力部１１から音声を出力する指示が入力された場合に、次のような処理を行う。すなわち、出力制御部１５ｆは、記憶部１４に記憶された合成音声データ１４ｃを取得し、合成音声データ１４ｃが示す音声を出力するように音声出力部１３を制御する。
【００８４】
制御部１５は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。
【００８５】
なお、上記ではユーザが中間言語で記載された中間表記を確認して、韻律情報を修正する場合について説明したが、開示の装置はこれに限定されない。例えば、ユーザが日本語テキストを確認して、韻律情報を同様に修正してもよい。
【００８６】
図１４〜図１７は、実施例に係る音声合成装置が実行する処理の変形例を説明するための図である。例えば、取得部１５ａは、日本語表記で修正範囲を指定するか、中間表記で修正範囲を指定するかを選択させる画面を表示させ、ユーザに、いずれの方法で修正範囲を指定するかを選択させる。中間表記で修正範囲を指定する旨の選択を受け付けた場合には、取得部１５ａは、上述したように、修正範囲指定画面１６を表示部１２に表示させ、以降の処理を行う。一方、日本語表記で修正範囲を指定する旨の選択を受け付けた場合には、取得部１５ａは、図１４の例に示すような日本語テキスト１４ａを含む画面４０を表示部１２に表示させ、ユーザによる韻律情報の修正範囲の指定を受け付けることができる。図１４の例では、ユーザによって、「今日の」４０ａの範囲が指定された場合が示されている。そして、ユーザによって修正範囲が指定されると、取得部１５ａは、図１５の例に示すような画面４１を表示部１２に表示させる。図１５の画面４１は、修正内容と、修正内容が示す修正を実行させるためのチェックボックスとを含む。図１５の例では、アクセント位置を修正する「アクセント位置修正」と、チェックボックス４１ａとが対応付けられて表示されている。また、図１５の例では、アクセントの強さを修正する「アクセント強弱修正」と、チェックボックス４１ｂとが対応付けられて表示されている。図１５の例では、チェックボックス４１ｂがチェックされている。この場合、アクセントの強さが修正される。そして、修正内容がユーザによって指定されると、取得部１５ａは、図１６の例に示す画面４２を表示部１２に表示させる。図１６の例では、ユーザによる入力部１１の操作によって、ボタン４２ａが移動され、ボタン４２ａが示すアクセントが「４」から「３」に変更された場合を示す。また、図１６の例のボタン４２ｂは、押下されると、音声出力部１３から修正後の音声が出力される。これにより、ユーザは修正後の音声を確認しながら修正を行うことができる。なお、ボタン４２ｃは、音声の出力を停止させるためのボタンである。また、確定ボタン４２ｄが押下されると、修正内容が確定される。そして、図１７の例に示すように、修正部１５ｄは、ユーザによって指定された範囲の中間表記の韻律情報をユーザが指定した韻律情報に修正する。このように、中間言語の理解が浅いユーザであっても、ユーザが理解できる言語である日本語が表示されたＧＵＩ（Graphical  User  Interface）を用いることで、韻律情報を容易に修正することができる。
［処理の流れ］
【００８７】
次に、本実施例に係る音声合成装置１０の処理の流れについて説明する。図１８は、実施例に係る登録処理の手順を示すフローチャートである。登録処理は、例えば、入力部１１から、登録処理を実行する指示を制御部１５が受け付けたタイミングで、実行される。
【００８８】
図１８に示すように、取得部１５ａは、入力部１１から、処理対象の日本語テキスト１４ａの指定を受け付けたか否かを判定する（Ｓ１０１）。指定を受け付けていない場合（Ｓ１０１否定）には、取得部１５ａは、再び、Ｓ１０１の判定を行う。一方、指定を受け付けた場合（Ｓ１０１肯定）には、取得部１５ａは、指定された日本語テキスト１４ａを記憶部１４から取得する（Ｓ１０２）。
【００８９】
そして、言語処理部１５ｂは、言語辞書などの中間表記を生成するための各種辞書を用いて、取得部１５ａによって取得された日本語テキスト１４ａに基づいて、中間言語で表記された中間表記の情報である中間情報を生成する。そして、生成部１５ｅは、生成された中間情報に基づいて、合成音声データ１４ｃを生成する（Ｓ１０３）。続いて、出力制御部１５ｆは、合成音声データ１４ｃが示す合成音声が出力されるように、音声出力部１３を制御する（Ｓ１０４）。そして、取得部１５ａは、修正範囲指定画面を表示するように表示部１２の表示を制御する（Ｓ１０５）。
【００９０】
取得部１５ａは、確定ボタン１７が押下され、修正範囲の指定が確定したか否かを判定する（Ｓ１０６）。確定ボタン１７が押下されておらず、修正範囲の指定が確定していない場合（Ｓ１０６否定）には、取得部１５ａは、再び、Ｓ１０６の判定を行う。一方、確定ボタン１７が押下され、修正範囲の指定が確定した場合（Ｓ１０６肯定）には、取得部１５ａは、修正範囲の先端および終端の両端の位置が、アクセント句の境界であるか否かを判定する（Ｓ１０７）。両端の位置がアクセント句の境界である場合（Ｓ１０７肯定）には、取得部１５ａは、修正対象中間表記を取得する（Ｓ１０９）。
【００９１】
一方、両端のいずれかの位置がアクセント句の境界でない場合、すなわち、少なくとも先端および終端の一方が、アクセント句の境界でない場合（Ｓ１０７否定）には、取得部１５ａは、両端の位置がアクセント句の境界となるように、修正範囲を拡大し（Ｓ１０８）、Ｓ１０９へ進む。
【００９２】
そして、取得部１５ａは、全ての修正対象中間表記が選択済みであるか否かを判定する（Ｓ１１０）。選択済みである場合（Ｓ１１０肯定）には、処理を終了する。一方、選択済みでない場合（Ｓ１１０否定）には、取得部１５ａは、未選択の修正対象中間表記を１つ選択する（Ｓ１１１）。その後、取得部１５ａは、表記修正画面を表示するように、表示部１２の表示を制御する（Ｓ１１２）。
【００９３】
そして、取得部１５ａは、キャンセルボタン２３が押されたか否かを判定する（Ｓ１１３）。キャンセルボタン２３が押下された場合（Ｓ１１３肯定）には、取得部１５ａは、表記修正画面１８を閉じて、Ｓ１１０へ進む。一方、キャンセルボタン２３が押下されていない場合（Ｓ１１３否定）には、取得部１５ａは、確定ボタン２２が押下されたか否かを判定する（Ｓ１１４）。確認ボタン２２が押下されていない場合（Ｓ１１４否定）には、Ｓ１１３へ戻る。
【００９４】
一方、確定ボタン２２が押された場合（Ｓ１１４肯定）には、取得部１５ａは、設定領域２０に設定された修正候補中間表記、および、強制修正フラグ２１ａ〜２１ｅのオン／オフの状態を取得する（Ｓ１１５）。そして、取得部１５ａは、修正対象中間表記を修正候補中間表記で置換して、修正対象中間表記を修正する（Ｓ１１６）。
【００９５】
続いて、取得部１５ａは、前置中間表記および後置中間表記を取得する（Ｓ１１７）。次に、取得部１５ａは、前置中間表記の属性および後置中間表記の属性を算出する（Ｓ１１８）。
【００９６】
その後、取得部１５ａは、選択された修正対象中間表記と、選択された修正対象中間表記に対応する日本語テキストと、取得した修正候補中間表記とを対応付けてＤＢ１４ｂに登録する。これに加えて、取得部１５ａは、前置中間表記と、後置中間表記と、前置中間表記の属性と、後置中間表記の属性とを対応付けてＤＢ１４ｂに登録する（Ｓ１１９）。また、取得部１５ａは、強制修正フラグ２１ａ〜２１ｅのうちオンの状態の強制修正フラグがあるか否かを判定する（Ｓ１２０）。ある場合（Ｓ１２０肯定）には、取得部１５ａは、「強制修正フラグ」の項目に、オンの状態の強制修正フラグを示す情報を登録し（Ｓ１２１）、Ｓ１１０に戻る。ない場合（Ｓ１２０否定）にも、Ｓ１１０に戻る。
【００９７】
図１９は、実施例に係る修正処理の手順を示すフローチャートである。修正処理は、例えば、入力部１１から、修正処理を実行する指示を制御部１５が受け付けたタイミングで、実行される。
【００９８】
図１９に示すように、判定部１５ｃは、入力部１１から、修正対象の日本語テキスト１４ａの指定を受け付けたか否かを判定する（Ｓ２０１）。指定を受け付けていない場合（Ｓ２０１否定）には、判定部１５ｃは、再び、Ｓ２０１の判定を行う。一方、指定を受け付けた場合（Ｓ２０１肯定）には、判定部１５ｃは、指定された日本語テキスト１４ａを記憶部１４から取得する（Ｓ２０２）。続いて、言語処理部１５ｂは、判定部１５ｃにより取得された日本語テキスト１４ａを中間言語で記述した中間表記の中間データを生成する（Ｓ２０３）。そして、判定部１５ｃは、ＤＢ１４ｂを参照し（Ｓ２０４）、未選択の修正対象中間表記があるか否かを判定する（Ｓ２０５）。未選択の修正対象中間表記がない場合（Ｓ２０５否定）には、生成部１５ｅは、合成音声データ１４ｃを生成し、生成した合成音声データ１４ｃを記憶部１４に格納し（Ｓ２２３）、処理を終了する。
【００９９】
一方、未選択の修正対象中間表記がある場合（Ｓ２０５肯定）には、判定部１５ｃは、未選択の修正対象中間表記を１つ選択する（Ｓ２０６）。その後、判定部１５ｃは、言語処理部１５ｂによって生成された中間情報が示す中間表記に対して、選択した修正対象中間表記があるか検索する（Ｓ２０７）。
【０１００】
そして、判定部１５ｃは、検索の結果、修正対象の日本語テキスト１４ａの中間情報が示す中間表記のなかに、選択した修正対象中間表記と一致する未修正中間表記があるか否かを判定する（Ｓ２０８）。検索の結果、修正対象の日本語テキスト１４ａの中間情報が示す中間表記のなかに、選択した修正対象中間表記と一致する未修正中間表記がない場合（Ｓ２０８否定）には、Ｓ２０４へ戻る。
【０１０１】
一方、検索の結果、修正対象の日本語テキスト１４ａの中間情報が示す中間表記のなかに、選択した修正対象中間表記と一致する未修正中間表記がある場合（Ｓ２０８肯定）には、判定部１５ｃは、次のような処理を行う。すなわち、判定部１５ｃは、未修正中間表記のうち、未選択の未修正中間表記があるか否かを判定する（Ｓ２０９）。未選択の未修正中間表記がない場合（Ｓ２０９否定）には、Ｓ２０４へ戻る。
【０１０２】
一方、未選択の未修正中間表記がある場合（Ｓ２０９肯定）には、判定部１５ｃは、未選択の未修正中間表記を１つ選択する（Ｓ２１０）。そして、修正対象の日本語テキスト１４ａの中間情報が示す中間表記のなかから、選択した未修正中間表記の１つ前に位置するアクセント句の中間表記、および、１つ後ろに位置するアクセント句の中間表記を取得する（Ｓ２１１）。そして、判定部１５ｃは、未修正中間表記の１つ前に位置するアクセント句の中間表記の属性情報、および、１つ後ろに位置するアクセント句の中間表記の属性情報を算出する（Ｓ２１２）。続いて、判定部１５ｃは、ＤＢ１４ｂを参照し、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「強制修正フラグ」の項目に、強制修正フラグを示す情報が登録されているか否かを判定する（Ｓ２１３）。
【０１０３】
強制修正フラグを示す情報が登録されていない場合（Ｓ２１３否定）には、判定部１５ｃは、ＤＢ１４ｂを参照し、次のような処理を行う。判定部１５ｃは、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「属性」の項目に登録された前置中間表記の属性情報と、未修正中間表記の１つ前に位置するアクセント句の中間表記の属性情報とが一致するか否かを判定する。これに加えて、判定部１５ｃは、次のような処理を行う。判定部１５ｃは、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「属性」の項目に登録された後置中間表記の属性情報と、未修正中間表記の１つ後ろに位置するアクセント句の中間表記の属性情報とが一致するか否かも判定する（Ｓ２１４）。上述した２つの判定（第一の判定および第二の判定）の両方の判定のうち、少なくとも１つの判定で、一致しないと判定された場合（Ｓ２１４否定）には、Ｓ２０９に戻る。
【０１０４】
また、「強制修正フラグ」の項目に、強制修正フラグを示す情報が登録されていると判定された場合（Ｓ２１３肯定）、および、上記の２つ判定の両方の判定において一致すると判定された場合（Ｓ２１４肯定）に、修正部１５ｄは次の処理を行う。すなわち、修正部１５ｄは、上述したように韻律値を比較する（Ｓ２１５）。そして、修正部１５ｄは、比較の結果、韻律値が一致するか否かを判定する（Ｓ２１６）。
【０１０５】
上述した２つの比較の結果（第一の比較の結果、および、第二の比較の結果）がともに、一致するという判定結果である場合（Ｓ２１６肯定）には、修正部１５ｄは、ＤＢ１４ｂを参照し、次のような処理を行う。すなわち、修正部１５ｄは、選択した未修正中間表記を、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「修正候補中間表記」の項目に登録された修正候補中間表記で置換して、選択した未修正中間表記を修正する（Ｓ２１７）。そして、Ｓ２０９へ戻る。
【０１０６】
また、第一の比較、および、第二の比較において、少なくとも一方の比較で一致しないと判定された場合（Ｓ２１６否定）には、修正部１５ｄは、同種類の韻律が中間表記上同一の位置に存在するが、韻律値のみが異なるか否かについて判定する（Ｓ２１８）。韻律値以外にも異なる箇所がある場合（Ｓ２１８否定）には、Ｓ２０９へ戻る。
【０１０７】
韻律値のみが異なる場合（Ｓ２１８肯定）には、修正部１５ｄは、次のような処理を行う。すなわち、修正部１５ｄは、未修正中間表記の前のアクセント句の中間表記と前置中間表記との韻律値の変化傾向、および、後ろのアクセント句の中間表記と後置中間表記との韻律値の変化傾向が同一であるか否かを判定する（Ｓ２１９）。
【０１０８】
韻律値の変化傾向が同一でない場合（Ｓ２１９否定）には、Ｓ２０９へ戻る。一方、韻律値の変化傾向が同一であると判定された場合（Ｓ２１９肯定）には、修正部１５ｄは、次のような処理を行う。すなわち、修正部１５ｄは、ＤＢ１４ｂを参照し、選択した修正対象中間表記が「修正対象中間表記」の項目に登録されたレコードの「修正候補中間表記」の項目に登録された修正候補中間表記を補正する（Ｓ２２０）。
【０１０９】
そして、修正部１５ｄは、未修正中間表記を、韻律値が補正された修正候補中間表記で置換する（Ｓ２２１）。その後、修正部１５ｄは、韻律値が置換された修正候補中間表記を置換前の韻律値の値に戻し（Ｓ２２２）、Ｓ２０９に戻る。
【０１１０】
上述してきたように、音声合成装置１０は、修正対象である日本語テキスト１４ａを中間言語で記述した中間表記のなかに、ＤＢ１４ｂに登録された修正対象中間表記と一致する中間表記がある場合に、次のような処理を行う。すなわち、音声合成装置１０は、修正対象中間表記と一致する中間表記の１つ前に位置するアクセント句の中間表記についての属性情報と、前置中間表記についての属性情報とが一致するか否かを判定する。また、音声合成装置１０は、修正対象中間表記と一致する中間表記の１つ後ろに位置するアクセント句の中間表記についての属性情報と、後置中間表記についての属性情報とが一致するか否かを判定する。そして、音声合成装置１０は、「強制修正フラグ」の項目に、強制修正フラグを示す情報が登録されていると判定された場合や、上述した２つの判定の両方の判定において一致すると判定された場合に、次のような処理を行う。すなわち、音声合成装置１０は、修正候補中間表記の韻律情報と、未修正中間表記の１つ前および後ろに位置するアクセント句の中間表記についての韻律情報と、前置中間表記および後置中間表記の韻律情報とに基づいて、未修正中間表記の韻律情報を修正する。すなわち、音声合成装置１０は、修正対象の前後の韻律情報に合わせて、修正対象の韻律情報を修正する。よって、音声合成装置１０によれば、生成される合成音声の韻律の不自然さが抑制される。したがって、音声合成装置１０によれば、生成される合成音声の精度の低下が抑制されるように、韻律情報を修正することができる。
【０１１１】
また、音声合成装置１０によれば、上述したように、同種類の韻律が中間表記上同一の位置に存在するが、韻律値のみが異なるには、修正候補中間表記の韻律を補正し、補正した修正候補を用いて、修正対象を修正する。このように、音声合成装置１０は、補正した修正候補を用いて、修正対象を修正する。したがって、音声合成装置１０によれば、生成される合成音声の韻律の不自然さがさらに抑制される。したがって、音声合成装置１０によれば、さらに、生成される合成音声の精度の低下が抑制されるように、韻律情報を修正することができる。
【０１１２】
また、音声合成装置１０によれば、修正対象の前後の属性情報が一致すれば、修正対象の中間表記が一致しなくても、修正対象を修正する。これにより、効率よく韻律情報の修正を行うことができる。
【０１１３】
また、音声合成装置１０は、ユーザによって、アクセント句ごとに、強制修正フラグが設定されることで、ユーザの好みに応じた韻律に修正することができる。
【０１１４】
また、音声合成装置１０は、指定された修正範囲の両端のいずれかの位置がアクセント句の境界でない場合には、両端の位置がアクセント句の境界となるように、修正範囲を拡大する。このように、音声合成装置１０は、ユーザの修正範囲の指定が不適切であっても、適切な修正範囲に修正する。したがって、音声合成装置１０によれば、修正の精度を向上させることができる。
【０１１５】
また、音声合成装置１０は、修正候補中間表記（修正対象中間表記）の韻律情報に最も影響がある直前および直後のアクセント句の中間表記に含まれる韻律表記を取得することで、韻律情報を修正する際に、最も影響の高い情報を取得することができる。また、音声合成装置１０によれば、修正候補中間表記の直前の１つのアクセント句を取得するため、修正候補中間表記の前に位置する複数のアクセント句を取得する場合と比較して、より少ない情報量の情報を取得することができる。また、音声合成装置１０によれば、修正候補中間表記の直後の１つのアクセント句を取得するため、修正候補中間表記の後に位置する複数のアクセント句を取得する場合と比較して、より少ない情報量の情報を取得することができる。また、音声合成装置１０によれば、ＤＢ１４ａに、より少ない情報量の登録を行うことができる。
【０１１６】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１１７】
例えば、修正部１５ｄは、さらに、未修正中間表記に対応する日本語表記と、修正候補中間表記に対応する日本語表記とを取得し、取得した２つの日本語表記が一致する場合に、未修正中間表記を修正することもできる。これにより、同音異義語の文字列を区別して未修正中間表記を修正することができる。
【０１１８】
この場合における他の修正処理の手順について説明する。図２０は、実施例に係る他の修正処理の手順を示すフローチャートである。修正処理は、例えば、入力部１１から、修正処理を実行する指示を制御部１５が受け付けたタイミングで、実行される。なお、図２０に示すＳ２０１〜Ｓ２２１の各処理は、図１９に示すＳ２０１〜Ｓ２２１の各処理と同様であるので、説明を省略する。
【０１１９】
図２０に示すように、Ｓ２１６の処理の次に、修正部１５ｄは、未修正中間表記に対応する日本語表記と、修正候補中間表記に対応する日本語表記とを取得する（Ｓ３０１）。そして、修正部１５ｄは、取得した２つの日本語表記が一致するか否かを判定する（Ｓ３０２）。一致する場合（Ｓ３０２肯定）には、Ｓ２１７へ進む。一方、一致しない場合（Ｓ３０２否定）には、Ｓ２０９へ進む。
【０１２０】
Ｓ２１９で韻律の変化傾向が一致すると判定された場合に、修正部１５ｄは、未修正中間表記に対応する日本語表記と、修正候補中間表記に対応する日本語表記とを取得する（Ｓ３０３）。そして、修正部１５ｄは、取得した２つの日本語表記が一致するか否かを判定する（Ｓ３０４）。一致する場合（Ｓ３０４肯定）には、Ｓ２２０へ進む。一方、一致しない場合（Ｓ３０４否定）には、Ｓ２０９へ進む。
【０１２１】
また、上記の実施例において、ＤＢ１４ｂが、修正対象中間表記の韻律情報が修正された修正候補中間表記の修正後の韻律情報とともに、前置中間表記および後置中間表記についての属性情報および韻律情報を記憶する場合について例示した。しかしながら、開示の装置は、これに限定されない。例えば、ＤＢ１４ｂが、修正対象中間表記の韻律情報が修正された修正候補中間表記の修正後の韻律情報とともに、前置中間表記または後置中間表記についての属性情報および韻律情報を記憶するようにしてもよい。これに伴い。判定部１５ｃは、修正対象である日本語テキスト１４ａの中間表記のなかに、修正対象中間表記と一致する未修正中間表記がある場合に、次のような処理を行ってもよい。すなわち、判定部１５ｃは、未修正中間表記の前または後に位置するアクセント句についての属性情報と前置中間表記または後置中間表記についての属性情報とが一致するか否かを判定するようにしてもよい。この場合、修正部１５ｄは、判定部１５ｃにより一致すると判定された場合に、次の処理を行うことができる。すなわち、修正部１５ｄは、修正候補中間表記の韻律情報と、未修正中間表記の前または後に位置するアクセント句についての韻律情報と、前置中間表記または後置中間表記の韻律情報とに基づいて、未修正中間表記の韻律情報を修正することができる。
【０１２２】
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【０１２３】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【０１２４】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
【０１２５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１２６】
［音声合成プログラム］
また、上記の実施例で説明した音声合成装置１０の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図２１を用いて、上記の実施例で説明した音声合成装置１０と同様の機能を有する音声合成プログラムを実行するコンピュータの一例を説明する。図２１は、音声合成プログラムを実行するコンピュータを示す図である。
【０１２７】
図２１に示すように、コンピュータ３００は、ＣＰＵ３１０、ＲＯＭ３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ３４０を有する。
【０１２８】
ＲＯＭ３２０には、ＯＳなどの基本プログラムが記憶されている。また、ＨＤＤ３３０には、上記の実施例で示す取得部１５ａと、言語処理部１５ｂと、判定部１５ｃと、修正部１５ｄと、生成部１５ｅと、出力制御部１５ｆと同様の機能を発揮する音声合成プログラム３３０ａが予め記憶される。なお、音声合成プログラム３３０ａについては、適宜分離しても良い。また、ＨＤＤ３３０には、日本語テキスト、ＤＢ、合成音声データが設けられる。これらの日本語テキスト、ＤＢ、合成音声データは、上述した日本語テキスト１４ａ、ＤＢ１４ｂ、合成音声データ１４ｃに対応する。
【０１２９】
そして、ＣＰＵ３１０が、音声合成プログラム３３０ａをＨＤＤ３３０から読み出して実行する。
【０１３０】
そして、ＣＰＵ３１０は、日本語テキスト、ＤＢ、合成音声データを読み出してＲＡＭ３４０に格納する。さらに、ＣＰＵ３１０は、ＲＡＭ３４０に格納された日本語テキスト、ＤＢ、合成音声データを用いて、音声合成プログラム３３０ａを実行する。なお、ＲＡＭ３４０に格納される各データは、常に全てのデータがＲＡＭ３３０に格納されなくともよい。処理に用いられるデータがＲＡＭ３４０に格納されれば良い。
【０１３１】
なお、上記した音声合成プログラム３３０ａについては、必ずしも最初からＨＤＤ３３０に記憶させておく必要はない。
【０１３２】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。  
【０１３３】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１３４】
１０      音声合成装置
１４      記憶部
１４ａ    日本語テキスト
１４ｂ    ＤＢ
１４ｃ    合成音声データ
１５      制御部
１５ａ    取得部
１５ｂ    言語処理部
１５ｃ    判定部
１５ｄ    修正部
１５ｅ    生成部
【図１】
0005949067.tif 000002
【図２】
0005949067.tif 000003
【図３】
0005949067.tif 000004
【図４】
0005949067.tif 000005
【図５】
0005949067.tif 000006
【図６】
0005949067.tif 000007
【図７】
0005949067.tif 000008
【図８】
0005949067.tif 000009
【図９】
0005949067.tif 000010
【図１０】
0005949067.tif 000011
【図１１】
0005949067.tif 000012
【図１２】
0005949067.tif 000013
【図１３】
0005949067.tif 000014
【図１４】
0005949067.tif 000015
【図１５】
0005949067.tif 000016
【図１６】
0005949067.tif 000017
【図１７】
0005949067.tif 000018
【図１８】
0005949067.tif 000019
【図１９】
0005949067.tif 000020
【図２０】
0005949067.tif 000021
【図２１】
0005949067.tif 000022