(57)【要約】      （修正有）【課題】入力テキストデータと素片データとで韻律がずれていても、合成音声の音質劣化を防止する音声合成装置を提供する。【解決手段】韻律倍率変更部２０３は、入力テキストから抽出された音素及び目標韻律が対応付けられたセグメントデータの列の全体にわたり目標韻律を移動させる。素片選定部２０５および評価部２０６は、音素及び韻律が対応付けられた音声素片の集合である音声コーパスから、音素および韻律に関して計算されるコストが最良になるように、コスト算出用韻律データを含むセグメントデータの列に対応する音声素片の列を選定する。最良コスト判定部は、韻律倍率変更部における目標韻律の移動の倍率を制御しながら素片選定部に音声素片の列を選定させ、選定時のコストが移動の倍率が制御された中でさらに最良となるときの音声素片の列を決定する。波形合成部１０７は、決定された音声素片の列に含まれる各音声素片を接続して合成音声を出力する。【選択図】図２
2016065900.tif 000002
【特許請求の範囲】
【請求項１】
入力テキストデータから音素及び目標韻律が対応付けられたセグメントデータの列を抽出するセグメントデータ列抽出手段と、
前記目標韻律を、予め設定された範囲内でかつ予め設定された間隔で順次移動させる目標韻律移動手段と、
前記目標韻律移動手段により目標韻律が移動される毎に、音素及び韻律が対応付けられた素片の集合である音声コーパスから、前記抽出されたセグメントデータの列に対応する素片の列であって、音素および韻律に関するコストが最良となる素片の列を選定する素片列選択手段と、
前記素片選定手段により、前記目標韻律が移動される毎に選定された素片列のうち、前記コストが最良となる音声素片の列を決定する素片列決定手段と、
当該決定された素片の列に基づいて合成音声を出力する波形合成手段と、
を備える音声合成装置。
【請求項２】
前記目標韻律移動手段は、前記目標韻律に含まれる基本周波数を、予め設定された範囲内で予め設定された間隔で順次移動させる、請求項１に記載の音声合成装置。
【請求項３】
前記素片列選択手段は、
前記音声コーパスから、前記抽出されたセグメントデータに含まれる音素と一致する音素を有する素片全てを選択する素片選択手段と、
前記選択された素片毎に、当該素片に対応付けられた音素及び韻律に基づいた素片コストを算出する素片コスト算出手段と、
前記選択された素片夫々を、前記抽出されたセグメントデータに対応して並べて素片列を生成した場合の接続コストを算出する接続コスト算出手段と、
前記算出された音素列コスト、韻律コスト及び接続コストを含む総合コストが最良となる素片列を生成する素片列生成手段と、
を有する、請求項１又は２に記載の音声合成装置。
【請求項４】
前記素片コスト算出手段は、
前記選択された素片毎に、当該素片及びその前後の素片夫々に対応付けられた音素からなる音素列と、前記抽出されたセグメントデータに含まれる音素とその前後の音素とからなる音素列とを比較して音素列コストを算出する音素列コスト算出手段と、
前記選択された素片毎に、当該選択された素片に対応付けられた韻律と前記目標韻律との差に基づく韻律コストを算出する韻律コスト算出手段と、
を有する請求項３に記載の音声合成装置。
【請求項５】
音声合成装置が、
入力テキストデータから音素及び目標韻律が対応付けられたセグメントデータの列を抽出し、
前記目標韻律を、予め設定された範囲内でかつ予め設定された間隔で順次移動させ、
前記目標韻律が移動される毎に、音素及び韻律が対応付けられた素片の集合である音声コーパスから、前記抽出されたセグメントデータの列に対応する素片の列であって、音素および韻律に関するコストが最良となる素片の列を選定し、
前記目標韻律が移動される毎に選定された素片列のうち、前記コストが最良となる音声素片の列を決定し、
当該決定された素片の列に基づいて合成音声を出力する、音声合成方法。
【請求項６】
音声合成装置として用いられるコンピュータに、
入力テキストデータから音素及び目標韻律が対応付けられたセグメントデータの列を抽出するステップと、
前記目標韻律を、予め設定された範囲内でかつ予め設定された間隔で順次移動させるステップと、
前記目標韻律が移動される毎に、音素及び韻律が対応付けられた素片の集合である音声コーパスから、前記抽出されたセグメントデータの列に対応する素片の列であって、音素および韻律に関するコストが最良となる素片の列を選定するステップと、
前記目標韻律が移動される毎に選定された素片列のうち、前記コストが最良となる音声素片の列を決定するステップと、
当該決定された素片の列に基づいて合成音声を出力するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声コーパスからの音声素片の選択によって音声合成を行う技術に関する。
【背景技術】
【０００２】
入力テキストデータから生成される合成目標に対して、電子化された大規模な言語・音声データである音声コーパスを参照することにより音声素片を選択し、当該音声素片を接続することにより合成音声を出力する音声合成技術が知られている（例えば非特許文献１〜３に記載の技術）。
【０００３】
このような音声合成技術において、音声コーパスから合成目標に最も適合する音声素片列を選択するための手法として従来、次のような技術が知られている（例えば非特許文献３に記載の技術）。まず、入力テキストデータから抽出される音素セグメントごとに、その音素と同じ音素を有する音声素片のデータ（以下、「素片データ」と記載する）が、素片候補データとして音声コーパスから抽出される。次に、ＤＰ（Ｄｙｎａｍｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ：動的計画法）アルゴリズムによって、入力テキストデータ全体に渡ってコストが最小となる最良の素片候補データの組（最良の素片データ列）が決定される。コストとしては、入力テキストデータと音声コーパス内の各素片データ間の音素列および韻律の差異、素片候補データである隣接する素片データ間のスペクトラム包絡などの音響パラメータ（特徴量ベクトルデータ）の不連続性などが用いられる。
【０００４】
入力テキストデータに対応する音素列は、例えば入力テキストデータに対して形態素解析処理を実行することで得られる。
【０００５】
入力テキストデータに対応する韻律（以下これを「目標韻律」と記載する）は、音素ごとの声帯の基本周波数であるピッチの高さ、持続時間長、および強度（振幅）であり、入力テキストデータから得られる言語情報をもとに、実際の音声データに基づく統計的なモデルを用いて生成される（例えば非特許文献４に記載の技術）。言語情報は、例えば入力テキストデータに対して形態素解析処理を実行することで得られる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】“CHATR:自然音声波形接続型任意音声合成システム”、電子情報通信学会信学技法、SP96-7.
【非特許文献２】“大規模コーパスを用いた音声合成システムXIMERA”、電子情報通信学会論文誌D Vol.J89-D No.12 pp.2688-2698.
【非特許文献３】河井  恒、“知識ベース  3-4 コーパスベース音声合成”、［online］、ver.1/2011.1.7、電子情報通信学会、［平成２５年１２月２５日検索］、インターネット＜ＵＲＬ：http://27.34.144.197/files/02/02gun_07hen_03.pdf#page=6＞
【非特許文献４】匂坂  芳典、“知識ベース  3-7 韻律の生成”、［online］、ver.1/2011.1.7、電子情報通信学会、［平成２５年１２月２５日検索］、インターネット＜ＵＲＬ：http://27.34.144.197/files/02/02gun_07hen_03.pdf#page=13＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述したように、音声コーパスから入力テキストデータの合成目標に最も適合する音声素片列を選択するためには、入力テキストデータと音声コーパス内の各素片データ間の音素および韻律の差異が評価コストとして用いられる。
【０００８】
ここで、入力テキストデータから音素を抽出するための例えば形態素解析処理では形態素辞書が用いられ、各音素セグメントごとの目標韻律を抽出するための処理では実際の音声データに基づく統計的なモデルである韻律辞書が用いられる。一方、音声コーパス中の素片データの作成時における音素および韻律（以下これを「素片韻律」と記載する）の抽出にも、それぞれ同様の辞書が用いられる。
【０００９】
音声コーパスは予め作成され、入力テキストデータの解析はユーザによる入力テキストデータの入力時点で行われるため、一般的に両者の辞書の作成においては異なる話者の音声データが使用される場合が多い。
【００１０】
音声データにおける話者の個人性は、音声のスペクトラム包絡及び韻律に現れる特徴に依存する。
【００１１】
従って、入力テキストデータと音声コーパス内の素片データとで音素を抽出するための形態素辞書の話者が異なっても、抽出される音素の精度は、それほど大きな影響は受けない。
【００１２】
一方、入力テキストデータと音声コーパス内の素片データとで韻律を抽出するための韻律辞書の作成に用いられる音声データの話者が異なると、それぞれで抽出される韻律の特徴が異なることになる。韻律の特徴は、イントネーションやアクセント，声の高さ，話速，音韻継続長などの違いとなって現れる。
【００１３】
そして、入力テキストデータから抽出される目標韻律の特徴と音声コーパス内の各素片データの作成時に抽出される素片韻律の特徴がずれた状態で韻律に関するコスト計算が行われると、誤った音声素片が選択される確率が高くなり、合成音声の音質が劣化する。具体的には、コストの都合等によって十分な量の素片データを音声コーパスに搭載できない場合に、波形データベースから目標とする基本周波数をもった素片が見つかれば高音質で音声を合成できるが、見つからなかった場合には合成音声の音質が劣化する。
【００１４】
このような場合に、信号処理により素片データの基本周波数を、目標とする基本周波数に変更して接続する技術が考えられる。しかし、基本周波数の変更は、その変更幅が大きいと劣化が大きくなり，合成音声の品質が劣化してしまう課題があった。
【００１５】
本発明は、入力テキストデータと音声コーパス内の素片データとで韻律がずれていても、音声コーパスから選択された音声素片に基づく合成音声の音質劣化を防止することを目的とする。
【課題を解決するための手段】
【００１６】
態様の一例では、入力テキストデータから音素及び目標韻律が対応付けられたセグメントデータの列を抽出するセグメントデータ列抽出手段と、前記目標韻律を、予め設定された範囲内でかつ予め設定された間隔で順次移動させる目標韻律移動手段と、前記目標韻律移動手段により目標韻律が移動される毎に、音素及び韻律が対応付けられた素片の集合である音声コーパスから、前記抽出されたセグメントデータの列に対応する素片の列であって、音素および韻律に関するコストが最良となる素片の列を選定する素片列選択手段と、前記素片選定手段により、前記目標韻律が移動される毎に選定された素片列のうち、前記コストが最良となる音声素片の列を決定する素片列決定手段と、当該決定された素片の列に基づいて合成音声を出力する波形合成手段と、を備える。
【発明の効果】
【００１７】
本発明によれば、入力テキストデータと音声コーパス内の素片データとで韻律がずれていても、音声コーパスから選択された音声素片に基づく合成音声の音質劣化を防止することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明による音声合成装置の実施形態のブロック図である。
【図２】波形選択部のブロック図である。
【図３】音声合成装置をソフトウェア処理として実現できるコンピュータのハードウェア構成例を示す図である。
【図４】音声合成処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。図１は、本発明による音声合成装置１００の実施形態のブロック図であり、テキスト入力部１０１、形態素解析部１０２、韻律予測部１０３、韻律辞書１０４、波形選択部１０５、音声辞書１０６、および波形合成部１０７を備える。
【００２０】
テキスト入力部１０１は、入力テキストデータを入力する。
【００２１】
形態素解析部１０２は、テキスト入力部１０１が入力した入力テキストデータに対して形態素解析処理を実行することにより、入力テキストデータに対応する音素列を抽出する。入力テキストデータは、音素列中の音素ごとにセグメント分けされ、各音素を示す音素データが、そのセグメント分けにより得られる合成目標を構成する各セグメントデータに登録される。
【００２２】
韻律予測部１０３は、形態素解析部１０２で得られる言語情報をもとに、実際の音声データに基づく韻律に関する統計的なモデルを記憶した韻律辞書１０４を参照することにより、合成目標の音素列中の音素ごとに、声帯の基本周波数であるピッチの高さ、持続時間長、および強度（振幅）によって表される韻律を予測する。この結果、韻律予測部１０３は、音素セグメントごとに、韻律情報である目標韻律データを生成し、合成目標を構成する上記セグメントデータに登録する。
【００２３】
すなわち、形態素解析部１０２および韻律予測部１０３は、セグメントデータ列抽出手段として動作する。そして、入力テキストデータから合成目標として生成されるセグメントデータの列において、各セグメントデータは、音素データと目標韻律データを含む。
【００２４】
波形選択部１０５はまず、形態素解析部１０２および韻律予測部１０３から入力するセグメントデータの列の全体にわたり目標韻律データを移動させる目標韻律移動手段として動作する。
【００２５】
次に、波形選択部１０５は、音素及び韻律が対応付けられた音声素片の集合である音声コーパスが登録されている音声辞書１０６から、音素および韻律に関して計算されるコストが最良になるように、上記移動後の目標韻律を含むセグメントデータの列に対応する音声素片の列を選択する音声素片列選択手段として動作する。具体的には、波形選択部１０５は、上記移動後の目標韻律データと音素データを含むセグメントデータごとに、素片評価のコスト条件を満たす素片候補データを音声辞書１０６中の音声コーパスからリストアップする。そして、波形選択部１０５は、セグメントデータごとに、接続評価のコスト条件を満たす最良の素片候補データを、リストアップした素片候補データから選択し、最終的に、セグメントデータの列の全体にわたる音声素片の列を選定する。
【００２６】
次に、波形選択部１０５は、上述の目標韻律の移動量を制御しながら音声素片の列を選定させ、その選定時のコストが移動量が制御された中でさらに最良となるときの音声素片の列を決定する音声素片列決定手段として動作する。
【００２７】
波形合成部１０７は、波形選択部１０５が決定した音声素片の列に含まれる各音声素片を接続することにより合成音声を出力する。
【００２８】
以上のようにし、本実施形態では、音声素片の韻律を目標韻律に合わせるのではなく、目標韻律を全体的に移動させて音声素片の韻律に合わせてコスト評価を行い、最良の音声素片の列として合成音声の生成に用いる。これにより、選定された音声素片の列は信号処理等によって改変されることはないため、合成音声の音質を高めることが可能となる。
【００２９】
図２は、図１の波形選択部１０５の詳細な構成を示すブロック図である。波形選択部１０５は、図１の韻律予測部１０３から出力された目標韻律データ２０１、韻律入力部２０２、韻律倍率変更部２０３、およびコスト算出用韻律データ２０４を備える。また、波形選択部１０５は、素片選定部２０５および評価部２０６を備える。素片選定部２０５は、素片リストアップ部２０５ａとそこから出力された素片候補データ２０７、および音声素片列選定部２０５ｂを備える。評価部２０６は、素片評価部２０６ａ、接続評価部２０６ｂ、および最良コスト判定部２０６ｃを備える。
【００３０】
図２で、韻律入力部２０２は、図１の韻律予測部１０３が出力した目標韻律データ２０１を入力する。
【００３１】
韻律倍率変更部２０３は、セグメントデータの列の全体にわたり目標韻律データ２０１の基本周波数を、所定の範囲（例えば、０．５倍から２倍の範囲）内で、所定の間隔で移動（例えば０．１倍ずつ変更させた倍率を基本周波数に乗算）させ、セグメントデータごとのコスト算出用韻律データ２０４を生成する。
【００３２】
次に、素片選定部２０５において、素片リストアップ部２０５ａは、コスト算出用韻律データ２０４を含むセグメントデータごとに（以下これを「処理対象セグメントデータ」と記載する）、その処理対象セグメントデータに含まれる音素と一致する音素を有する１つ以上の素片データを、音声辞書１０６中の音声コーパス内の素片データから選択し、素片候補データ２０７（以下これを「処理対象素片候補データ２０７」と記載する）として出力する。
【００３３】
評価部２０６内の素片評価部２０６ａは、処理対象素片候補データ２０７ごとに、その音素を処理対象セグメントデータの音素と比較することによって、処理対象素片候補データ２０７の音素に関するコストを評価する。具体的には、素片評価部２０６ａは、処理対象セグメントデータの音素とその処理対象セグメントデータの前後のセグメントデータの音素とから構成される音素列と、処理対象素片候補データ２０７の音素とその処理対象素片候補データ２０７の前後の素片データの音素とから構成される音素列とを比較することにより、音素列コストを算出する。この音素列コストは、音素列の不一致度を示す。隣接するセグメントデータ間の音素列と隣接する素片データ間の音素列の一致度が高いほど音素列コストが低くなるように、音素列コストが算出される。前後の音素列が一致する素片データを選択したほうが、自然な合成音声が得られるからである。
【００３４】
また、素片評価部２０６ａは、処理対象素片候補データ２０７ごとに、その素片韻律データを、処理対象セグメントデータのコスト算出用韻律データ２０４と比較することにより、処理対象素片候補データ２０７の韻律に関するコストを評価する。具体的には、素片評価部２０６ａは、処理対象セグメントデータのコスト算出用韻律データ２０４と処理対象素片候補データ２０７の素片韻律データとの差に基づいて、韻律コストを算出する。韻律コストは、コスト算出用韻律データ２０４と処理対象素片候補データ２０７の距離を示す。
【００３５】
そして、素片評価部２０６ａは、音素列コストと韻律コストとの重み付け和のコスト値を、現在の処理対象素片候補データ２０７に対応する素片コストとして算出する。
【００３６】
素片リストアップ部２０５ａは、素片評価部２０６ａが評価した素片コストが低い順に、素片候補データ２０７を並び替えて、処理対象セグメントデータとリンクさせて出力する。
【００３７】
素片選定部２０５内の音声素片列選定部２０５ｂは、図１の韻律予測部１０３から入力するセグメントデータ列の先頭から２番目のセグメント（処理対象セグメントデータ）から順に、以下の処理を順次実行する。
【００３８】
まず、音声素片列選定部２０５ｂは、処理対象セグメントデータに対応する素片候補データ２０７のグループから１つの素片候補データ２０７（処理対象素片候補データ２０７）を選択する。
【００３９】
音声素片列選定部２０５ｂは、処理対象素片候補データ２０７と、処理対象セグメントデータの前方（時間的に１つ手前）のセグメントデータ（以下これを「前方セグメントデータ」と記載する）の各素片候補データ２０７（以下これを「前方素片候補データ２０７」と記載する）との間で、以下のコスト値を計算する。音声素片列選定部２０５ｂは、前方素片候補データ２０７に至るまでの最良の経路に対するコスト値として確定しているトータルコストと、前方素片候補データ２０７と処理対象素片候補データ２０７との間の接続コストとの、重み付き和のコスト値を計算する。
【００４０】
上述の接続コストは、評価部２０６内の接続評価部２０６ｂが計算する。接続評価部２０６ｂは、処理対象素片候補データ２０７と前方素片候補データ２０７との間の音素接続点での各素片データの音響パラメータ（特徴量ベクトルデータ）の不連続性の大きさを、接続コストとして算出する。より具体的には、接続評価部２０６ｂは例えば、上記両者間の各素片データの各特徴量ベクトルデータの組によって算出される各素片データの各スペクトル包絡の距離（例えばメルケプストラムのユークリッド距離）を、接続コストとして算出する。
【００４１】
音声素片列選定部２０５ｂは、前方素片候補データ２０７で確定しているトータルコストと、前方素片候補データ２０７と処理対象素片候補データ２０７との間の接続コストとの、重み付き和のコスト値が、最も小さい前方素片候補データ２０７を、処理対象素片候補データ２０７に対する最良の前方素片候補データ２０７として記憶する。同時に、音声素片列選定部２０５ｂは、そのときの重み付き和のコスト値を、処理対象素片候補データ２０７に対する確定したトータルコストとして記憶する。
【００４２】
音声素片列選定部２０５ｂは、処理対象セグメントデータ内の全ての素片候補データ２０７のうち、上述のトータルコストが最小となる素片候補データ２０７を記憶する。
【００４３】
その後、音声素片列選定部２０５ｂは、処理対象セグメントデータを１つ後方（時間的に１つ後ろ）に進める。
【００４４】
音声素片列選定部２０５ｂは、最後のセグメントデータまで処理が終わったら、まず、最後のセグメントデータでトータルコストが最小の素片候補データ２０７を選択し、その後、最後のセグメントデータから先頭のセグメントデータに向かって順次、選択した素片候補データ２０７に記憶されている最良の前方素片候補データ２０７を選択してゆく。音声素片列選定部２０５ｂは、このようにして順次選択した素片候補データ２０７の列を、音声素片の列として選定する。
【００４５】
次に、評価部２０６内の最良コスト判定部２０６ｃは、音声素片列選定部２０５ｂが今回音声素片の列を選定したときの、素片評価部２０６ａおよび接続評価部２０６ｂにおける総合コストが、韻律倍率変更部２０３でいままで変更された倍率に対応する中で最良のコストであるか否かを判定する。総合コストが最良のコストであれば、音声素片列選定部２０５ｂが今回選定した音声素片の列を、最良の音声素片の列として記憶する。その後、最良コスト判定部２０６ｃは、韻律倍率変更部２０３に対してさらに別の倍率を指示して動作を実行させ、その結果得られるコスト算出用韻律データ２０４を用いて素片選定部２０５および評価部２０６に対して音声素片の列の選定動作を繰り返し実行させる。
【００４６】
このようにして、入力テキストデータから生成される目標韻律データ２０１の韻律遷移を、音声辞書１０６内の音声コーパスの韻律遷移に合わせることが可能となって、入力テキストデータと素片データとで全体的な韻律がずれていても（言い換えれば例えば話者が異なっても）、素片データを正しく選択して質の良い合成音声を出力することが可能となる。
【００４７】
図３は、図１の音声合成装置１００をソフトウェア処理として実現できるコンピュータのハードウェア構成例を示す図である。図３に示されるコンピュータは、ＣＰＵ３０１、ＲＯＭ（リードオンリーメモリ：読出し専用メモリ）３０２、ＲＡＭ（ランダムアクセスメモリ）３０３、入力装置３０４、出力装置３０５、外部記憶装置３０６、可搬記録媒体４１０が挿入される可搬記録媒体駆動装置３０７、及び通信インタフェース３０８を有し、これらがバス３０９によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
【００４８】
ＲＯＭ３０２は、コンピュータを制御する音声合成プログラムを含む各プログラムを記憶するメモリである。ＲＡＭ３０３は、各プログラムの実行時に、ＲＯＭ３０２に記憶されているプログラム又はデータを一時的に格納するメモリである。
【００４９】
外部記憶装置３０６は、例えばＳＳＤ（ソリッドステートドライブ）記憶装置またはハードディスク記憶装置であり、入力テキストデータや合成音声データの保存に用いられる。
【００５０】
ＣＰＵ３０１は、各プログラムを、ＲＯＭ３０２からＲＡＭ３０３に読み出して実行することにより、当該コンピュータ全体の制御を行う。
【００５１】
入力装置３０４は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をＣＰＵ３０１に通知する。また、入力装置３０４は、図１のテキスト入力部１０１の機能を実行して入力テキストデータを外部から入力し、ＲＡＭ３０３または外部記憶装置３０６に記憶させる。
【００５２】
出力装置３０５は、ＣＰＵ３０１の制御によって送られてくるデータを表示装置や印刷装置に出力する。また、出力装置３０５は、図１の波形合成部１０７が外部記憶装置３０６またはＲＡＭ３０３に出力した合成音声データを、音声として放音する。
【００５３】
可搬記録媒体駆動装置３０７は、光ディスクやＳＤＲＡＭ、コンパクトフラッシュ等の可搬記録媒体４１０を収容するもので、外部記憶装置３０６の補助の役割を有する。
【００５４】
通信インターフェース３０８は、例えばＬＡＮ（ローカルエリアネットワーク）又はＷＡＮ（ワイドエリアネットワーク）の通信回線を接続するための装置である。
【００５５】
本実施形態によるシステムは、図１および図２の各処理部の機能を搭載した音声合成プログラムを、ＲＯＭ３０２からＲＡＭ３０３に読み出してＣＰＵ３０１が実行することで実現される。そのプログラムは、例えば外部記憶装置３０６や可搬記録媒体４１０に記録して配布してもよく、或いはネットワーク接続装置３０８によりネットワークから取得できるようにしてもよい。
【００５６】
図４は、図１および図２の構成に対応する音声合成装置の機能を、図３のハードウェア構成例を有するコンピュータのＣＰＵ３０１が、ソフトウェアプログラムの処理により実現する場合の、音声合成処理の例を示すフローチャートである。以下に説明する処理はすべてＣＰＵ３０１が実行する処理である。
【００５７】
まず、ＣＰＵ３０１は、入力テキストから目標韻律付き音素列を生成する（ステップＳ４０１）。この処理は、前述した図１のテキスト入力部１０１、形態素解析部１０２、韻律予測部１０３、および韻律辞書１０４の機能に対応する。
【００５８】
次に、ＣＰＵ３０１は、倍率変更用のＲＡＭ３０３上の変数ｉの値を０に設定する（ステップＳ４０２）。
【００５９】
次に、ＣＰＵ３０１は、ＲＡＭ３０３上の定数ａ、定数ｂ、および定数ｃとして、例えばａ＝０．５、ｂ＝２．０、ｃ＝０．１を設定する。その上で、ＣＰＵ３０１は、図２のコスト算出用韻律データ２０４を、図２の目標韻律データ２０１の（ａ＋ｉ×ｃ）倍に設定する（ステップＳ４０３）。最初はｉ＝０であるため、倍率はａ＝０．５倍となる。後述するステップＳ４１０でｉが＋１ずつインクリメントされるごとに、倍率は０．１倍ずつアップされる。上限は、ステップＳ４１１の判定により１．９倍である。ステップＳ４０２、Ｓ４０３、Ｓ４１０、およびＳ４１１の処理は、図２の韻律倍率変更部２０３の機能に対応する。
【００６０】
次に、ＣＰＵ３０１は、コスト算出用韻律データ２０４を含む処理対象セグメントデータごとに、それに含まれる音素と一致する音素を有する１つ以上の素片データを、例えば外部記憶装置３０６に記憶される音声辞書１０６中の音声コーパス内の素片データから選択して処理対象素片候補データ２０７（図２参照）として抽出し、ＲＡＭ３０３に記憶させる（ステップＳ４０４）。
【００６１】
次に、ＣＰＵ３０１は、処理対象素片候補データ２０７ごとに、処理対象セグメントデータの音素とその前後のセグメントデータの音素とから構成される音素列と、処理対象素片候補データ２０７の音素とその前後の素片データの音素とから構成される音素列とを比較することにより、音素列コストを算出する（ステップＳ４０５）。
【００６２】
次に、ＣＰＵ３０１は、処理対象セグメントデータのコスト算出用韻律データ２０４と処理対象素片候補データ２０７の素片韻律データとの差に基づいて、韻律コストを算出する（ステップＳ４０６）。
【００６３】
次に、ＣＰＵ３０１は、音素列コストと韻律コストとの重み付け和のコスト値を、現在の処理対象素片候補データ２０７に対応する素片コストとして算出する。そして、ＣＰＵ３０１は、素片コストが低い順に、処理対象素片候補データ２０７を並び替えて、処理対象セグメントデータとリンクさせてＲＡＭ３０３に記憶させる（ステップＳ４０７）。
【００６４】
以上のステップＳ４０４からＳ４０７の処理は、図２の素片リストアップ部２０７ａおよび素片評価部２０８ａの機能に対応する。
【００６５】
次に、ＣＰＵ３０１は、図２の音声素片列選定部２０５ｂおよび接続評価部２０８ｂの説明で前述したようにして、接続コストに基づいて最良の音声素片の列を選定する（ステップＳ４０８）。
【００６６】
次に、ＣＰＵ３０１は、ステップＳ４０７とＳ４０８で算出された素片コストと接続コストの総合コストが、これまで算出された音声素片の列の中で最良のコストであるか否かを判定する（ステップ４０９）。なお、この判定のために、ＣＰＵ３０１は、ステップＳ４０７とＳ４０８で算出された素片コストと接続コストの総合コストを、毎回ＲＡＭ３０３に記憶させておく。この処理は、図２の最良コスト判定部２０６ｃの機能に対応する。
【００６７】
ステップＳ４０９の判定がＹＥＳならば、ステップＳ４０８で今回選定した音声素片の列を、合成音声のための候補としてＲＡＭ３０３に記憶する（ステップＳ４１０）。
【００６８】
その後、ＣＰＵ３０１は、変数ｉの値を＋１インクリメントし（ステップＳ４１１）、倍率値（ａ＋ｉ×ｃ）の値が定数ｂよりも小さければ、ステップＳ４０３の韻律倍率変更の処理に戻り、セグメントデータ全体にわたる目標韻律データ２０１が（ａ＋ｉ×ｃ）倍されてコスト算出用韻律データ２０４とされ、上記と同様の処理が繰り返し実行される。
【００６９】
以上の繰返し動作の結果、ステップＳ４１２の判定がＮＯになると、最終的にＲＡＭ３０３に記憶されている音声素片の列で、合成音声が生成され出力される（ステップＳ４１３）。この処理は、図１または図２の波形合成部１０７の機能に対応する。
【００７０】
以上のようにして、本実施形態によれば、目標韻律の基本周波数列がある定められた範囲内（例えば０．５倍から２．０倍未満の間）の定められた間隔（例えば０．１倍づつ）で、０．５倍、０．６倍、０．７倍、・・・、１．８倍、１．９倍というように全体的に移動させられ、そのそれぞれについてコスト関数に基づき，最良の音声素片の列が選定される。そして、それらの中からさらに最良の並びの音声素片の列を使い、合成音声が生成される。
【００７１】
以上の音声合成処理によって、入力テキストデータから生成される目標韻律データ２０１の韻律遷移を、音声辞書１０６内の音声コーパスの韻律遷移に合わせることが可能となり、入力テキストデータと素片データとで韻律がずれていても、素片データを正しく選択して音声辞書１０６の音声コーパスの話者に合わせた、質の良い合成音声を出力することが可能となる。これにより、音声合成において、小さい音声コーパスを使う場合でも、音質の劣化を抑えることが可能となり、音声合成装置のコストダウンが可能となる。
【００７２】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
入力テキストデータから音素及び目標韻律が対応付けられたセグメントデータの列を抽出するセグメントデータ列抽出手段と、
前記目標韻律を、予め設定された範囲内でかつ予め設定された間隔で順次移動させる目標韻律移動手段と、
前記目標韻律移動手段により目標韻律が移動される毎に、音素及び韻律が対応付けられた素片の集合である音声コーパスから、前記抽出されたセグメントデータの列に対応する素片の列であって、音素および韻律に関するコストが最良となる素片の列を選定する素片列選択手段と、
前記素片選定手段により、前記目標韻律が移動される毎に選定された素片列のうち、前記コストが最良となる音声素片の列を決定する素片列決定手段と、
当該決定された素片の列に基づいて合成音声を出力する波形合成手段と、
を備える音声合成装置。
（付記２）
前記目標韻律移動手段は、前記目標韻律に含まれる基本周波数を、予め設定された範囲内で予め設定された間隔で順次移動させる、付記１に記載の音声合成装置。
（付記３）
前記素片列選択手段は、
前記音声コーパスから、前記抽出されたセグメントデータに含まれる音素と一致する音素を有する素片全てを選択する素片選択手段と、
前記選択された素片毎に、当該素片に対応付けられた音素及び韻律に基づいた素片コストを算出する素片コスト算出手段と、
前記選択された素片夫々を、前記抽出されたセグメントデータに対応して並べて素片列を生成した場合の接続コストを算出する接続コスト算出手段と、
前記算出された音素列コスト、韻律コスト及び接続コストを含む総合コストが最良となる素片列を生成する素片列生成手段と、
を有する、付記１又は２に記載の音声合成装置。
（付記４）
前記素片コスト算出手段は、
前記選択された素片毎に、当該素片及びその前後の素片夫々に対応付けられた音素からなる音素列と、前記抽出されたセグメントデータに含まれる音素とその前後の音素とからなる音素列とを比較して音素列コストを算出する音素列コスト算出手段と、
前記選択された素片毎に、当該選択された素片に対応付けられた韻律と前記目標韻律との差に基づく韻律コストを算出する韻律コスト算出手段と、
を有する付記３に記載の音声合成装置。
（付記５）  
音声合成装置が、
入力テキストデータから音素及び目標韻律が対応付けられたセグメントデータの列を抽出し、
前記目標韻律を、予め設定された範囲内でかつ予め設定された間隔で順次移動させ、
前記目標韻律が移動される毎に、音素及び韻律が対応付けられた素片の集合である音声コーパスから、前記抽出されたセグメントデータの列に対応する素片の列であって、音素および韻律に関するコストが最良となる素片の列を選定し、
前記目標韻律が移動される毎に選定された素片列のうち、前記コストが最良となる音声素片の列を決定し、
当該決定された素片の列に基づいて合成音声を出力する、音声合成方法。
（付記６）
音声合成装置として用いられるコンピュータに、
入力テキストデータから音素及び目標韻律が対応付けられたセグメントデータの列を抽出するステップと、
前記目標韻律を、予め設定された範囲内でかつ予め設定された間隔で順次移動させるステップと、
前記目標韻律が移動される毎に、音素及び韻律が対応付けられた素片の集合である音声コーパスから、前記抽出されたセグメントデータの列に対応する素片の列であって、音素および韻律に関するコストが最良となる素片の列を選定するステップと、
前記目標韻律が移動される毎に選定された素片列のうち、前記コストが最良となる音声素片の列を決定するステップと、
当該決定された素片の列に基づいて合成音声を出力するステップと、
を実行させるプログラム。
【符号の説明】
【００７３】
１００  音声合成装置
１０１  テキスト入力部
１０２  形態素解析部
１０３  韻律予測部
１０４  韻律辞書
１０５  波形選択部
１０６  音声辞書
１０７  波形合成部
２０１  目標韻律データ
２０２  韻律入力部
２０３  韻律倍率変更部
２０４  コスト算出用韻律データ
２０５  素片選定部
２０５ａ  素片リストアップ部
２０５ｂ  音声素片列選定部
２０６  評価部
２０６ａ  素片評価部
２０６ｂ  接続評価部
２０６ｃ  最良コスト判定部
２０７  素片候補データ
３０１  倍率変更前の目標韻律のピッチ周波数
３０２  倍率変更後の目標韻律のピッチ周波数
４０１  ＣＰＵ
４０２  ＲＯＭ（リードオンリーメモリ）
４０３  ＲＡＭ（ランダムアクセスメモリ）
４０４  入力装置
４０５  出力装置
４０６  外部記憶装置
４０７  可搬記録媒体駆動装置
４０８  通信インタフェース
４０９  バス
４１０  可搬記録媒体
【図１】
2016065900.tif 000003
【図２】
2016065900.tif 000004
【図３】
2016065900.tif 000005
【図４】
2016065900.tif 000006