(57)【要約】      （修正有）【課題】音声コーパスからの音声素片の選択によって音声合成を行う技術に関し、計算量を削減しながら、目標韻律に合った自然性の高い音声を出力する。【解決手段】最小分割パス探索部２０３ａは、連続する音声素片の列の候補である素片列候補データ２０５を、その候補に対応する音素列がセグメントデータ列２０１中の音素列に一致すると共に、その候補がセグメントデータ列２０１に対して連続性を満たし、上記音素列がセグメントデータ列２０１全体を分割する数が少なくなるように、音声辞書１０６中の音声コーパスから探索する。音声素片列選択部２０３ｂは、探索された素片列候補データ２０５の組合せの中から、セグメントデータ列２０１に最も合致する組を選択し、波形合成部１０７に出力する。【選択図】図２
2015152790.tif 000002
【特許請求の範囲】
【請求項１】
入力テキストデータから生成された連続する音素セグメントの列に基づき、音声コーパスから複数の音声素片の列を選択し、当該選択された複数の音声素片の列を接続することにより合成音声を出力する音声合成装置において、
前記選択される音声素片の列の候補に対応する音素列であって、当該音素列が、前記連続する音素セグメントの列の少なくとも一部と一致すると共に、当該連続する音素セグメントの列に対して連続性を満たし、かつ当該音素列が当該音素セグメントの列全体を分割する数が少なくなるように、前記音声コーパスから前記音声素片の列の候補を探索する最小分割パス探索部と、
探索された前記連続する音声素片の列の候補の組合せの中から、前記連続する音素セグメントの列に最も合致する音声素片の列の候補の組を選択する音声素片列選択部と、
を備えることを特徴とする音声合成装置。
【請求項２】
前記連続性を満たすことは、前記音声素片の列の候補の前または後ろに接続する音声素片の音素が前記音素セグメントの列の前または後ろに接続する音素セグメントの音素に一致し、かつ前記音声素片の列の候補の韻律情報と前記連続する音素セグメントの列の韻律情報の音響的特徴の差が所定の閾値に比較して小さいことであることを特徴とする請求項１に記載の音声合成装置。
【請求項３】
前記最小分割パス探索部は、音素の数が大きい順の前記音素列ごとに、前記連続性を満たす前記音声素片の列の候補の数が所定の閾値以上となったら当該音素列に対応する前記音声素片の列の候補の探索を打ち切ることを特徴とする請求項１または２のいずれかに記載の音声合成装置。
【請求項４】
前記最小分割パス探索部は、前記音声素片の列の候補の組合せの中で、前記音素セグメントの列全体を分割する数が最小のものから順に所定数までに対応する組合せのみを探索することを特徴とする請求項１ないし３のいずれかに記載の音声合成装置。
【請求項５】
音素列ごとに、当該音素列を含む前記音声コーパス内の音声素片の列へのインデックスを登録した連続音素列テーブルをさらに備え、
前記最小分割パス探索部は、前記音素列ごとに、当該音素列に対応する前記連続する音声素片の列の候補を、前記連続音素列テーブルを参照することにより探索することを特徴とする請求項１ないし４のいずれかに記載の音声合成装置。
【請求項６】
前記音声素片列選択部は、前記音素セグメントの列を分割する数が最小となる前記音声素片の列の候補の組合せにおいて、当該組合せを構成する前記音声素片の列の候補に対応する韻律情報と前記連続する音素セグメントの列に対応する韻律情報との差に基づいて算出される韻律コストと、前記音声素片の列の候補の前または後ろに接続する前記音声素片の列の候補の接続部の音響パラメータの不連続性の大きさに基づいて算出される接続コストとに基づいて、探索された前記音声素片の列の候補の組合せの中から前記音素セグメントの列に最も合致する音声素片の列の候補の組を選択することを特徴とする請求項１ないし５のいずれかに記載の音声合成装置。
【請求項７】
前記音素列を構成する音素は無音を示す情報を含むことを特徴とする請求項１ないし６のいずれかに記載の音声合成装置。
【請求項８】
入力テキストデータから生成された連続する音声セグメントの列に基づき、音声コーパスから複数の音声素片の列を選択し、当該選択された複数の音声素片を接続することにより合成音声を出力する音声合成装置に用いられる音声合成方法であって、前記音声合成装置は、
前記選択される音声素片の列の候補に対応する音素列であって、当該音素列が、前記連続する音素セグメントの列の少なくとも一部と一致すると共に、当該連続する音素セグメントの列に対して連続性を満たし、かつ当該音素列が当該音素セグメントの列全体を分割する数が少なくなるように、前記音声コーパスから音声素片の列の候補を探索し、
探索された前記音声素片の列の候補の組合せの中から、前記連続する音素セグメントの列に最も合致する音声素片の列の候補の組を選択する、音声合成方法。
【請求項９】
入力テキストデータから生成された連続する音声セグメントの列に基づき、音声コーパスから複数の音声素片の列を選択し、当該選択された複数の音声素片の列を接続することにより合成音声を出力するコンピュータに、
前記選択される音声素片の列の候補に対応する音素列であって、当該音素列が、前記連続する音素セグメントの列の少なくとも一部と一致すると共に、当該連続する音素セグメントの列に対して連続性を満たし、かつ当該音素列が当該音素セグメントの列全体を分割する数が少なくなるように、前記音声コーパスから前記音声素片の列の候補を探索する最小分割パス探索処理と、
探索された前記音声素片の列の候補の組合せの中から、前記連続する音素セグメントの列に最も合致する音声素片の列の候補の組を選択する音声素片列選択処理と、
を実行させるための音声合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声コーパスからの音声素片の選択によって音声合成を行う技術に関する。
【背景技術】
【０００２】
入力テキストデータから生成される合成目標に対して、電子化された大規模な言語・音声データである音声コーパスを参照することにより音声素片を選択し、当該音声素片を接続することにより合成音声を出力する音声合成技術が知られている。
【０００３】
このような音声合成技術において、音声コーパスから合成目標に最も適合する音声素片列を選択するための手法として従来、次のような技術が知られている（例えば非特許文献１に記載の技術）。まず、入力テキストデータから抽出される音素セグメントごとに、その音素と同じ音素を有する音声素片のデータ（以下、「素片データ」と記載する）が、素片候補データとして音声コーパスから抽出される。次に、ＤＰ（Ｄｙｎａｍｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ：動的計画法）アルゴリズムによって、入力テキストデータ全体に渡ってコストが最小となる最良の素片候補データの組（最良の素片データ列）が決定される。コストとしては、入力テキストデータと音声コーパス内の各素片データ間の音素列および韻律の差異、素片候補データである隣接する素片データ間のスペクトラム包絡などの音響パラメータ（特徴量ベクトルデータ）の不連続性などが用いられる。
【０００４】
上述のような素片接続型の音声合成において、より自然な聴感を得られるためには、入力テキストデータと音声コーパス内の各素片データとで、音素列が一致していること、指定された韻律遷移に忠実であること、素片同士の接続部が滑らかに連続していることなどが必須である。
【０００５】
これらを同時に実現するためには、なるべく連続する区間を採用できるような、元音声情報を大量に搭載する辞書、あるいは、音素の切れ目が正確に定義されている辞書が必要となる。一般に、辞書制作のための音素片分割には、自動分割の精度が低く、人間が実際に録音音声を聞いたうえで切り出しを行うなど、高いコストを要求される。
【０００６】
音声の連続性を考慮した素片接続型の従来の音声合成技術として、次のような技術が知られている（例えば特許文献１または２に記載の技術）。これらの従来技術では、音声コーパス方式の音声合成手法において、信号処理を行わずに素片接続を行う前提で、連続性の評価値として、目標の音素列と選択素片の音素列を形態素単位で比較を行っている。
【０００７】
一方、音声の連続性を考慮した素片接続型の従来の他の音声合成技術として、次のような技術が知られている（例えば特許文献３に記載の技術）。この従来技術では、音声コーパス方式の音声合成手法において、信号処理を行う前提で、１モーラ毎に連続性の算出を行っている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−３２１６３０号公報
【特許文献２】特許４２９７４９６号公報
【特許文献３】特開２０１３−１５６４７２号公報
【非特許文献】
【０００９】
【非特許文献１】河井  恒、“知識ベース  3-4 コーパスベース音声合成”、［online］、ver.1/2011.1.7、電子情報通信学会、［平成２５年１２月２５日検索］、インターネット＜ＵＲＬ：http://27.34.144.197/files/02/02gun_07hen_03.pdf#page=6＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、前述した特許文献１または２に記載の従来技術では、信号処理で選択素片の音響情報を目標韻律にあわせる場合、形態素毎に連続性を評価する必要は無く、音響的連続性に基づいて、音素毎に連続性を判断したほうが、形態素のような言語的情報より正確である。
【００１１】
また、前述した特許文献３に記載の従来技術は、音声辞書データベースが小さい場合を想定しており、連続性の高い音素片の情報に基づいて信号処理による劣化が少なく済むように目標韻律の情報を変更している。このため、データベースの大きさが十分で必ず目標韻律に合った音声を合成したい場合には、不向きである。
【００１２】
そこで、本発明は、計算量を削減しながら、目標韻律に合った自然性の高い音声を出力することを目的とする。
【課題を解決するための手段】
【００１３】
態様の一例では、入力テキストデータから生成された連続する音素セグメントの列に基づき、音声コーパスから複数の音声素片の列を選択し、当該選択された複数の音声素片の列を接続することにより合成音声を出力する音声合成装置において、前記選択される音声素片の列の候補に対応する音素列であって、当該音素列が、前記連続する音素セグメントの列の少なくとも一部と一致すると共に、当該連続する音素セグメントの列に対して連続性を満たし、かつ当該音素列が当該音素セグメントの列全体を分割する数が少なくなるように、前記音声コーパスから前記音声素片の列の候補を探索する最小分割パス探索部と、探索された前記連続する音声素片の列の候補の組合せの中から、前記連続する音素セグメントの列に最も合致する音声素片の列の候補の組を選択する音声素片列選択部と、
を備える。
【発明の効果】
【００１４】
本発明によれば、計算量を削減しながら、目標韻律に合った自然性の高い音声を出力することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明による音声合成装置の実施形態のブロック図である。
【図２】波形選択部のブロック図である。
【図３】実施形態の動作説明図（その１）である。
【図４】実施形態の動作説明図（その２）である。
【図５】音声合成装置をソフトウェア処理として実現できるコンピュータのハードウェア構成例を示す図である。
【図６】音声合成処理の例を示すフローチャートである。
【図７】最小分割パス探索処理の詳細例を示すフローチャートである。
【図８】連続性評価処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
【００１７】
図１は、本発明による音声合成装置１００の実施形態のブロック図であり、テキスト入力部１０１、形態素解析部１０２、韻律予測部１０３、韻律辞書１０４、波形選択部１０５、音声辞書１０６、および波形合成部１０７を備える。
【００１８】
テキスト入力部１０１は、入力テキストデータを入力する。
【００１９】
形態素解析部１０２は、テキスト入力部１０１が入力した入力テキストデータに対して形態素解析処理を実行することにより、入力テキストデータに対応する音素列を抽出する。入力テキストデータは、音素列中の音素ごとにセグメント分けされ、各音素を示す音素情報が、そのセグメント分けにより得られる合成目標を構成するセグメントデータに登録される。
【００２０】
韻律予測部１０３は、形態素解析部１０２で得られる言語情報をもとに、実際の音声データに基づく韻律に関する統計的なモデルを記憶した韻律辞書１０４を参照することにより、合成目標の音素列中の音素ごとに、声帯の基本周波数であるピッチの高さ、持続時間長、および強度（振幅）によって表される韻律を予測する。この結果、韻律予測部１０３は、音素セグメント毎に、韻律情報である目標韻律情報を生成し、合成目標を構成する上記セグメントデータに登録する。
【００２１】
すなわち、入力テキストデータから合成目標として生成されるセグメントデータ列を構成する各セグメントデータは、音素情報と目標韻律情報を有する。
【００２２】
波形選択部１０５は、セグメントデータ列中の音素列に対応する素片列候補データ２０５を、音声辞書１０６中の音声コーパスから探索する。そして、波形選択部１０５は、素片列候補データ２０５ごとに、韻律コストおよび接続コストを評価することにより、最良の素片列候補データを素片列候補データ２０５から選択する。
【００２３】
波形合成部１０７は、波形選択部１０５が音声辞書１０６から選択した最良の素片列候補データに基づいて、合成音声を生成し出力する。
【００２４】
図２は、図１の波形選択部１０５の詳細な構成を示すブロック図である。波形選択部１０５は、セグメントデータ列２０１、セグメント入力部２０２、素片列選定部２０３、および評価部２０４を備える。素片列選定部２０３は、最小分割パス探索部２０３ａとそこから出力された素片列候補データ２０５、および音声素片列選択部２０３ｂを備える。評価部２０４は、連続性評価部２０４ａおよびコスト評価部２０４ｂを備える。
【００２５】
セグメント入力部２０２は、図１の形態素解析部１０２および韻律予測部１０３が出力したセグメントデータ列２０１を入力する。
【００２６】
素片列選定部２０３内の最小分割パス探索部２０３ａは、セグメント入力部２０２からのセグメントデータ列２０１に基づき、音声辞書１０６内の音声コーパスから、連続する音声素片の列の候補のデータ（以下、「素片列候補データ」と記載する）２０５を探索する。素片列候補データ２０５は、そのデータの音素列が、セグメントデータ列２０１中の音素列に一致するように探索される。同時に、素片列候補データ２０５は、セグメントデータ列２０１に対して連続性を有し、上記音素列３０２がセグメントデータ列２０１の全を分割する数ができる限り少なくなるように、音声コーパスから探索される。
【００２７】
評価部２０４内の連続性評価部２０４ａは、最小分割パス探索部２０３ａが素片列候補データ２０５を探索するときの連続性に関する評価を行う。連続性評価部２０４ａは、最小分割パス探索部２０３ａが音声辞書１０６内の音声コーパスから順次抽出する連続する音声素片の列の候補の前または後ろに接続する音声素片の音素が、セグメントデータ列２０１内の該当するセグメントデータ列の前または後ろに接続する音素セグメントの音素に一致するか否かを評価する。また、連続性評価部２０４ａは、連続する音声素片の列の候補の韻律情報（以下、「素片韻律情報」と記載する）とそれに対応するセグメントデータ列２０１内の該当するセグメントデータ列の目標韻律情報の音響的特徴の差が所定の閾値に比較して小さいか否かを評価する。最小分割パス探索部２０３ａは、連続性評価部２０４ａにおける上記２つの評価の結果が合格であった連続する音声素片の列の候補に基づいて、素片列候補データ２０５を抽出する。
【００２８】
図３および図４は、本実施形態の動作説明図である。例えば図３の３０１に示される入力テキストデータ「お金を得た」に対して、３０２の実線枠で示される音素列を有するセグメントデータ列２０１がセグメント入力部２０２に入力されたとする。音素列３０２において、「＃」は無音を示す音素である。最小分割パス探索部２０３ａは、音素列３０２の例えば末尾から順次、連続する音声素片の列の候補を探索する。
【００２９】
例えば、最小分割パス探索部２０３ａは、音素列３０２の末尾の無音の音素「＃」を探索対象音素として、３０３として示される２組のそれぞれ連続する音声素片の列の候補に対応する音素列候補「ａ＃」および「＃」を抽出する。
【００３０】
ここで、破線枠で囲まれたアルファベットまたは＃記号が音素ラベルを示し、括弧で囲まれたアルファベットまたは＃記号が、破線枠で囲まれた音素列候補の前後に接続する音声素片の音素ラベルを示している。３０４、３０５の音素列候補においても同様である。
【００３１】
３０３に示される２組の音素列候補のうち、まず音素列候補「＃」については、左側に接続する音声素片の音素ラベル「ａ」が音素列３０２の対応する音素セグメントの音素ラベルと一致して連続性評価部２０４ａでの音素列の前後の音素の一致性の評価を満たすものとして、例えば１０万個が音声コーパスから探索されたとする。一方、これら１０万個の音素列候補「＃」の素片韻律情報はいずれも、音素列候補「＃」に対応するセグメントデータ列２０１内のセグメントデータ列「＃」の目標韻律情報との音響的特徴の差が大きく、連続性評価部２０４ａでの韻律情報に関する評価を満たしていないとする。
【００３２】
一方、３０３に示される２組の音素列候補のうち、音素列候補「ａ＃」については、左側に接続する音声素片の音素ラベル「ｔ」が音素列３０２中の対応する音素セグメントの音素ラベルと一致し、かつ音素列候補「ａ＃」に対応するセグメントデータ列２０１中のセグメントデータ列「ａ＃」の目標韻律情報との音響的特徴の差が小さく、連続性評価部２０４ａでの音素列の前後の音素の一致性の評価および韻律情報に関する評価の両方を満たすものとして、例えば３００個が音声コーパスから探索されたとする。
【００３３】
この場合、３０３に示される２組の音素列候補のうち、音素列候補「＃」は素片列候補データ２０５としては選択されず（図中「ＮＧ」と記載する）、音素列候補「ａ＃」は素片列候補データ２０５として選択される（図中「ＯＫ」と記載する）。すなわち、図３の３０３中の濃い色の破線枠からなる音素列候補が、素片列候補データ２０５として選択される。
【００３４】
続いて、最小分割パス探索部２０３ａは、音素列３０２の末尾から２番目の音素「ａ」を探索対象音素として、３０４として示される３組のそれぞれ連続する音声素片の列の候補に対応する音素列候補「ｔａ＃」、「ｔａ」、および「ａ」を抽出する。そして、３０３の場合と同様の連続性評価部２０４ａによる評価の結果、例えば、音声コーパスから探索された８０個の音素列候補「ｔａ＃」と５００個の音素列候補「ｔａ」が、素片列候補データ２０５として選択される（ＯＫ）。また、例えば、５００個の音素列候補「ｔａ」は、「ａ」の後の音素である#と一致していないので、前後の音素が一致という条件を満たさないために素片列候補データ２０５とならず、また１００００個の音素列候補「ａ」は、連続性評価部２０４ａでの音素列の前後の音素の一致性の評価を満たしているが、連続性評価部２０４ａでの韻律情報に関する評価は満たさず、素片列候補データ２０５としては選択されない（ＮＧ）。すなわち、図３の３０４中の濃い色の破線枠からなる音素列候補が、素片列候補データ２０５として選択される。
【００３５】
ここで、最小分割パス探索部２０３ａは、音素列候補の組合せの中で、音素列３０２の全体を分割する数が最小のものから順に所定数までに対応する組合せのみを探索するように動作してよい。具体的には、探索対象音素に関して素片列候補データ２０５として選択できる音素列候補の種類が２種類以上探索された場合、連続する音素の数が最も長いすなわち音素列３０２を分割する数が最小（最小分割数）となる音素列候補と、連続する音素の数が２番目に長いすなわち音素列３０２を分割する数が最小分割数＋１となる音素列候補の２種類までが、素片列候補データ２０５として探索される。
【００３６】
例えば３０５において、音素列３０２を分割する数が最小分割数となる音素列候補「ｅｔａ＃」と、最小分割数＋１となる音素列候補「ｅｔａ」の２種類までが、最終的な素片列候補データ２０５として選択される。
【００３７】
音素列３０２を分割する数が最小分割数＋１となる音素列候補も素片列候補データ２０５として選択される理由は、以下の通りである。すなわち、本来は、連続する音素の数が最も長いすなわち音素列３０２を分割する数が最小分割数となる音素列候補のみを選択することによって、音声コーパス中のできるだけ連続する音声素片列に基づいて、最も自然な合成音声を得ることができる。しかし、他の探索対象音素との関係で、或る探索対象音素に対して、音素列３０２を分割する数が最小分割数となる音素列候補が選択できなかった場合に、その探索対象音素について他の音素列候補を選択可能とするために、音素列３０２を分割する数が最小分割数＋１となる音素列候補も素片列候補データ２０５として選択される。
【００３８】
さらに続いて、最小分割パス探索部２０３ａは、音素列３０２の末尾から３番目の音素「ｔ」を探索対象音素として、３０５として示される４組のそれぞれ連続する音声素片の列の候補に対応する音素列候補「ｅｔａ＃」、「ｅｔａ」、「ｅｔ」、および「ｔ」を抽出する。そして、３０３、３０４の場合と同様の連続性評価部２０４ａによる評価の結果、例えば、音声コーパスから探索された５０個の音素列候補「ｅｔａ＃」と３００個の音素列候補「ｅｔａ」が、素片列候補データ２０５として選択される（ＯＫ）。また、例えば、２００００個の音素列候補「ｅｔ」と５００００個の音素列候補「ｔ」は、連続性評価部２０４ａでの音素列の前後の音素の一致性の評価を満たしているが、連続性評価部２０４ａでの韻律情報に関する評価は満たさず、素片列候補データ２０５としては選択されない（ＮＧ）。すなわち、図３の３０５中の濃い色の破線枠からなる音素列候補が、素片列候補データ２０５として選択される。
【００３９】
ここでも、例えば、３０４の場合と同様に、音素列３０２を分割する数が最小分割数となる音素列候補「ｅｔａ＃」と、最小分割数＋１となる音素列候補「ｅｔａ」の２種類までが、最終的な素片列候補データ２０５として選択される。
【００４０】
いま、最小分割パス探索部２０３ａが、例えば図４の４０１に示されるように、音素列３０２中の音素「ｗ」を探索対象音素として素片列候補データ２０５を選択する場合を考察する。この場合例えば、音素列中の音素数が多いものから順に探索をしたときに、音素列候補「ｅｗｏｅｔａ＃」、「ｅｗｏｅｔａ」、および「ｅｗｏｅｔ」については連続性評価部２０４ａでの評価を満たさずに、素片列候補データ２０５として選択されなかったとする（ＮＧ）。そして、音素列候補「ｅｗｏｅ」および「ｅｗｏ」の２組の音素列候補について連続性評価部２０４ａでの評価を満たしたものが、それぞれ１０個および１００個探索されたとする。この場合、通常ならば、音素列３０２を分割する数が最小分割数となる音素列候補「ｅｗｏｅ」が１番目に選択されることになる。しかし、その音素列候補「ｅｗｏｅ」よりも１つ音素の数が多い連続性評価部２０４ａでの評価を満たす音素列候補「ｅｗｏｅｔ」は、音声コーパス中には無いことがわかっている。この場合、音素列候補「ｅｗｏｅ」が選択されたとしても、図２の音声素片列選択部２０３ｂは、その音素列候補をその前後の音素列候補と接続しても、最良の素片列候補データを生成することはできない（ＯＫ→ＮＧ）。
【００４１】
そこで、本実施形態による最小分割パス探索部２０３ａは、音素列３０２を分割する数が最小分割数となる音素列候補を選択しようとした場合に、その音素列候補よりも１つ音素の数が多い連続性評価部２０４ａでの評価を満たす音素列候補が音声コーパス中に無い場合（末尾をのぞく）には、音素列３０２を分割する数が最小分割数＋１となる音素列候補を選択するように動作する。すなわち、図４の４０１中の濃い色の破線枠からなる音素列候補「ｅｗｏ」が、素片列候補データ２０５として選択される。この場合、それよりも末尾側には、上記音素列候補「ｅｗｏ」と接続できる音素列候補「ｅｔａ」などが探索されているはずなので、図２の音声素片列選択部２０３ｂは、それらの音素列候補を接続することで、最良の素片列候補データを生成することができる。
【００４２】
なお、最小分割パス探索部２０３ａは、音素数が大きい順の音素列ごとに、連続性評価部２０４ａにおける上記２つの評価に合格した連続する音声素片の列の候補の数が所定の閾値以上となったら、連続する音声素片の列の候補の探索を打ち切るように動作してよい。音素数が大きい順の音素列ごとに探索された連続する音声素片の列の候補は、探索数が少なくても音声コーパス内の音声の連続性が保証された候補であるため、これを用いて十分に高品質な音声を合成できる。従って、探索が途中で打ち切られることにより、合成音声の品質を維持したまま、音声コーパスからの最良の素片列候補データの選択動作を従来技術に比較して高速化することが可能となる。
【００４３】
最小分割パス探索部２０３ａは、以上の動作を、音素列３０２の末尾の音素から先頭の音素までをそれぞれ探索対象音素として、探索対象音素ごとに素片列候補データ２０５を選択する。
【００４４】
図２の音声素片列選択部２０３ｂは、最小分割パス探索部２０３ａがセグメントデータ列２０１中探索対象音素ごとに音声コーパスから探索した素片列候補データ２０５の組合せの中から、セグメントデータ列２０１に最も合致する最良の素片列候補データを選択する。
【００４５】
上記最良の素片列候補データの選択のために、音声素片列選択部２０３ｂはまず、セグメントデータ列２０１の音素列を分割する分割数が最小となる素片列候補データ２０５の組合せを選択する。この組合せは、複数種類選択される可能性がある。
【００４６】
次に、図２の評価部２０４内のコスト評価部２０４ｂは、上述のようにして音声素片列選択部２０３ｂが選択した組合せを構成する素片列候補データ２０５ごとに、その素片列候補データ２０５に対応する素片韻律情報と、その素片列候補データ２０５に対応するセグメントデータ列２０１に対応する目標韻律情報との差（距離）に基づいて、韻律コストを算出する。
【００４７】
さらに、コスト評価部２０４ｂは、上記素片列候補データ２０５ごとに、その素片列候補データ２０５の前または後ろに接続する素片列候補データ２０５の接続部の音響パラメータの不連続性の大きさに基づいて、接続コストを算出する。
【００４８】
そして、音声素片列選択部２０３ｂは、セグメントデータ列２０１の音素列を分割する分割数が最小となる素片列候補データ２０５の組合せのうち、コスト評価部２０４ｂが算出した韻律コストと接続コストの重み付き加重和が最も小さくなる組合せを、最良の素片列候補データとして図１または図２の波形合成部１０７へ出力する。
【００４９】
図５は、図１の音声合成装置１００をソフトウェア処理として実現できるコンピュータのハードウェア構成例を示す図である。図５に示されるコンピュータは、ＣＰＵ５０１、ＲＯＭ（リードオンリーメモリ：読出し専用メモリ）５０２、ＲＡＭ（ランダムアクセスメモリ）５０３、入力装置５０４、出力装置５０５、外部記憶装置５０６、可搬記録媒体５１０が挿入される可搬記録媒体駆動装置５０７、及び通信インタフェース５０８を有し、これらがバス５０９によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
【００５０】
ＲＯＭ５０２は、コンピュータを制御する音声合成プログラムを含む各プログラムを記憶するメモリである。ＲＡＭ５０３は、各プログラムの実行時に、ＲＯＭ５０２に記憶されているプログラム又はデータを一時的に格納するメモリである。
【００５１】
外部記憶装置５０６は、例えばＳＳＤ（ソリッドステートドライブ）記憶装置またはハードディスク記憶装置であり、入力テキストデータや合成音声データの保存に用いられる。
【００５２】
ＣＰＵ５０１は、各プログラムを、ＲＯＭ５０２からＲＡＭ５０３に読み出して実行することにより、当該コンピュータ全体の制御を行う。
【００５３】
入力装置５０４は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をＣＰＵ５０１に通知する。また、入力装置５０４は、図１のテキスト入力部１０１の機能を実行して入力テキストデータを外部から入力し、ＲＡＭ５０３または外部記憶装置５０６に記憶させる。
【００５４】
出力装置５０５は、ＣＰＵ５０１の制御によって送られてくるデータを表示装置や印刷装置に出力する。また、出力装置５０５は、図１の波形合成部１０７が外部記憶装置５０６またはＲＡＭ５０３に出力した合成音声データを、音声として放音する。
【００５５】
可搬記録媒体駆動装置５０７は、光ディスクやＳＤＲＡＭ、コンパクトフラッシュ等の可搬記録媒体５１０を収容するもので、外部記憶装置５０６の補助の役割を有する。
【００５６】
通信インターフェース５０８は、例えばＬＡＮ（ローカルエリアネットワーク）又はＷＡＮ（ワイドエリアネットワーク）の通信回線を接続するための装置である。
【００５７】
本実施形態によるシステムは、図１および図２の各処理部の機能を搭載した音声合成プログラムを、ＲＯＭ５０２からＲＡＭ５０３に読み出してＣＰＵ５０１が実行することで実現される。そのプログラムは、例えば外部記憶装置５０６や可搬記録媒体５１０に記録して配布してもよく、或いはネットワーク接続装置５０８によりネットワークから取得できるようにしてもよい。
【００５８】
図６は、図１および図２の音声合成装置１００に対応する機能を、図５のハードウェア構成例を有するコンピュータのＣＰＵ５０１が、ソフトウェアプログラムの処理により実現する場合の、音声合成処理の例を示すフローチャートである。以下に説明する処理はすべてＣＰＵ５０１が実行する処理である。
【００５９】
まず、外部記憶装置５０６等から入力テキストデータが入力される（ステップＳ６０１）。この処理では、前述した図１のテキスト入力部１０１の機能が実行される。
【００６０】
次に、ステップＳ６０１で入力された入力テキストデータに対して形態素解析処理が実行されることにより、入力テキストデータに対応する音素列が抽出される（ステップＳ６０２）。この結果、入力テキストデータは、音素列中の音素ごとにセグメント分けされ、各音素を示す音素情報が、そのセグメント分けにより得られる各セグメントデータに登録される。このようにして得られるセグメントデータの集合が、セグメントデータ列２０１として図５のＲＡＭ５０３または外部記憶装置５０６等に記憶される。この処理では、前述した形態素解析部１０２の機能が実行される。
【００６１】
次に、ステップＳ６０２の形態素解析処理で得られる言語情報をもとに、図１で説明した韻律辞書１０４が参照されることにより、音素セグメント毎に、目標韻律情報が生成され、セグメントデータ列２０１を構成する各セグメントデータに登録される（ステップＳ６０３）。この処理では、前述した韻律予測部１０３の機能が実行される。
【００６２】
次に、図１で説明した音声辞書１０６内の音声コーパスから、音素列ごとに、当該音素列を含む音声素片の列のインデックスを登録した連続音素列テーブルが、例えば図５のＲＡＭ５０３上に生成される（ステップＳ６０４）。このテーブルにより、音声コーパスからの連続する音声素片の列の候補の探索速度を向上させることが可能となる。
【００６３】
次に、上記連続音素列テーブルが参照されることにより、最小分割パス探索処理が実行される（ステップＳ６０５）。この処理では、前述した図２のセグメント入力部２０２および素片列選定部２０３内の最小分割パス探索部２０３ａの機能が実行される。この処理の詳細については、図７のフローチャートを用いて後述する。
【００６４】
その後、音声素片列選択処理が実行される（ステップＳ６０６）。この処理では、前述した図２の素片選定部２０３内の音声素片列選択部２０３ｂおよび評価部２０４内のコスト評価部２０４ｂの機能が実行される。
【００６５】
さらに、信号処理が実行される（ステップＳ６０７）。この処理では例えば、音声素片列選択部２０３ｂが出力した最良の素片列候補データに対して、韻律補正などの適切な信号処理が実行される。
【００６６】
最後に、合成音声出力処理が実行される（ステップＳ６０８）。上記信号処理後の最良の素片列候補データに基づいて、合成音声が生成され出力する。
【００６７】
図７は、図１のステップＳ６０５の最小分割パス探索処理の詳細例を示すフローチャートである。
【００６８】
まず、図６のステップＳ６０１で図５のＲＡＭ５０３に読み込まれたセグメントデータ列２０１中の探索対象音素の位置を示す変数ｉの値が０に初期化される（ステップＳ７０１）。
【００６９】
次に、変数ｉの値がステップＳ７０１で初期設定された値０からステップＳ７０９で＋１ずつインクリメントされながら、ステップＳ７０８で変数ｉの値がセグメントデータ列２０１中の音素数ｎに達したと判定されるまで、ステップＳ７０２で音素数ｎから変数ｉの値を減算して得られる値として設定される探索対象音素の現在位置ごとに、ステップＳ７０２からステップＳ７０７までの一連の処理が実行される。
【００７０】
ここで、変数ｉ＝０である初期状態のときには探索対象音素の現在位置はｎとなってセグメントデータ列２０１の末尾の音素が指示され、変数ｉの値がインクリメントされるに従って探索対象音素の現在位置がセグメントデータ列２０１の末尾の音素から先頭の音素に向かって順次指示されてゆき、変数ｉの値がｎのときに探索対象音素の現在位置は０となってセグメントデータ列２０１の先頭の音素が指示される。
【００７１】
上記繰返し処理において、まず、ステップＳ７０３からＳ７０５の繰返し処理が実行される。この繰返し処理では、最大でセグメントデータ列２０１の音素の数ｎから数１まで順次音素列を構成する音素数が減らされながら、ステップＳ７０２の現在位置で示されるセグメントデータ列２０１中の探索対象音素を含む音素列が生成される。そして、音素数の大きい順の音素列ごとに、以下のステップＳ７０３からＳ７０５の一連の処理が実行される。
【００７２】
まず、上記音素列に対応する連続する音声素片の列の候補が、図６のステップＳ６０４で図５のＲＡＭ５０３上に生成された連続音素列テーブルを介して、図５の外部記憶装置５０６に記憶されている音声辞書１０６内の音声コーパスから読み込まれる（ステップＳ７０３）。このとき、上記音素列をインデックスとして図６のステップＳ６０３でＲＡＭ５０３上に生成された連続音素列テーブルが参照されることにより、音声コーパス中の上記音素列に対応する連続する音声素片の列の候補が高速に読み込まれる。
【００７３】
次に、ステップＳ７０３で読み込まれた連続する音声素片の列の候補について、連続性評価処理が実行される（ステップＳ７０４）。この処理では、図２の評価部２０４内の連続性評価部２０４ａの機能が実行される。この処理の詳細は、図８を用いて後述する。この連続性評価処理では、ステップＳ７０３で読み込まれた連続する音声素片の列の候補が連続性の評価基準を満たす場合に、上記音素列に対応するカウント値がインクリメントされ、そのカウント値が上記音素列ごとにＲＡＭ５０３に記憶される。
【００７４】
ステップＳ７０４の連続性評価処理の後、ＲＡＭ５０３に記憶されている上記音素列ごとのカウント値が参照される。これにより、連続性の評価基準を満たし連続性の高い音素列が所定の閾値以上存在するか否か、あるいは、音声コーパス上で該当する連続する音声素片の列の候補の探索が終了したか否かが判定される（ステップＳ７０５）。
【００７５】
ステップＳ７０５の判定がＮＯならば、ステップＳ７０８の連続する音声素片の列の候補の読み込みが続けられる。
【００７６】
ステップＳ７０５の判定がＹＥＳになると、ステップＳ７０３からＳ７０５の繰返し処理により連続する音声素片の列の候補が一定数以上検出された各音素数の音素列に対応する音素のパス（経路）について、そのパスのコストが計算される（ステップＳ７０６）。このコストの値は例えば、その音素列がセグメントデータ列２０１の音素列の全体を分割する数が少ないほど、またその音素列における音素数が大きいほど小さくなるように計算される。
【００７７】
次に、ステップＳ７０６で算出されたパスのコストに基づいて、不要なパスが削除される（ステップＳ７０７）。この処理は、図３の３０４または３０５の説明で前述したように、連続する音素の数が最も長いすなわち音素列を分割する数が最小分割数となる音素列候補と、連続する音素の数が２番目に長いすなわち音素列を分割する数が最小分割数＋１となる音素列候補の２種類までを素片列候補データ２０５として残し、それ以外は削除する処理である。
【００７８】
以上のステップＳ７０２からＳ７０７までの一連の処理によって、ステップＳ７０２で音素数ｎから変数ｉの値を減算して得られる値として設定されるセグメントデータ列２０１中の現在位置に対応する探索対象音素について、素片列候補データ２０５が探索される。
【００７９】
その後、変数ｉの値がセグメントデータ列２０１の音素数ｎに等しくなったか否かが判定され（ステップＳ７０８）。
【００８０】
ステップＳ７０８の判定がＮＯならば、変数ｉの値が＋１インクリメントされ（ステップＳ７０９）、ステップＳ７０２の処理に戻る。この結果、セグメントデータ列２０１中の次の位置に対応する探索対象音素についての素片列候補データ２０５の探索が続けられる。
【００８１】
セグメントデータ列２０１中の先頭位置に対応する探索対象音素についての素片列候補データ２０５の探索までが終了してステップＳ７０８の判定がＹＥＳになるご、図７のフローチャートの処理を終了し、図６のステップＳ６０５の最小分割パス探索処理を終了する。
【００８２】
図８は、図７のステップＳ７０４の連続性評価処理の詳細例を示すフローチャートである。
【００８３】
まず、図７のステップＳ７０３で読み込まれた連続する音声素片の列の候補の前または後ろに接続する音声素片の音素が、セグメントデータ列２０１内の該当するセグメントデータ列の前または後ろに接続する音素セグメントの音素に一致するか否かが判定される（ステップＳ８０１）。
【００８４】
ステップＳ８０１の判定がＹＥＳならばさらに、上記連続する音声素片の列の候補の素片韻律情報とそれに対応するセグメントデータ列２０１内の該当するセグメントデータ列の目標韻律情報の音響的特徴の差が所定の閾値以下であるか否かが判定される（ステップＳ８０２）。
【００８５】
ステップＳ８０２の判定もＹＥＳならば、上記連続する音声素片の列の候補に関する連続性の評価は合格し、その連続する音声素片の列の候補に対応する音素列ごとに図５のＲＡＭ５０３に保持されているカウンタ値が＋１される（ステップＳ８０３）。
【００８６】
ステップＳ８０３の後、またはステップＳ８０１またはＳ８０２の判定がＮＯの場合に、図８のフローチャートの処理を終了し、図７のステップＳ７０４の連続性評価処理を終了する。
【００８７】
以上のようにして、本実施形態によれば、図７のフローチャートで例示される最小分割パス探索処理において、ステップＳ７０５で、連続性の高い音素列がある程度見つかったら探索を途中で打ち切ることにより、合成音声の品質を維持したまま、音声コーパスからの最良の素片列候補データの選択動作を従来技術に比較して高速化することが可能となる。また、音声コーパスを探索するときに、図６のステップＳ６０４で生成される連続音素列テーブルを参照することにより、音素列に対応する音声コーパス中の連続する音声素片の列の候補の高速なインデックス検索が可能となる。これらの処理を含めて、本実施形態では、計算量を削減しながら、目標韻律に合った自然性の高い音声を出力することが可能となる。
【００８８】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
入力テキストデータから生成された連続する音素セグメントの列に基づき、音声コーパスから複数の音声素片の列を選択し、当該選択された複数の音声素片の列を接続することにより合成音声を出力する音声合成装置において、
前記選択される音声素片の列の候補に対応する音素列であって、当該音素列が、前記連続する音素セグメントの列の少なくとも一部と一致すると共に、当該連続する音素セグメントの列に対して連続性を満たし、かつ当該音素列が当該音素セグメントの列全体を分割する数が少なくなるように、前記音声コーパスから前記音声素片の列の候補を探索する最小分割パス探索部と、
探索された前記連続する音声素片の列の候補の組合せの中から、前記連続する音素セグメントの列に最も合致する音声素片の列の候補の組を選択する音声素片列選択部と、
を備えることを特徴とする音声合成装置。
（付記２）
前記連続性を満たすことは、前記音声素片の列の候補の前または後ろに接続する音声素片の音素が前記音素セグメントの列の前または後ろに接続する音素セグメントの音素に一致し、前記音声素片の列の候補の韻律情報と前記連続する音素セグメントの列の韻律情報の音響的特徴の差が所定の閾値に比較して小さいことであることを特徴とする付記１に記載の音声合成装置。
（付記３）
前記最小分割パス探索部は、音素の数が大きい順の前記音素列ごとに、前記連続性を満たす前記音声素片の列の候補の数が所定の閾値以上となったら当該音素列に対応する前記音声素片の列の候補の探索を打ち切ることを特徴とする付記１または２のいずれかに記載の音声合成装置。
（付記４）
前記最小分割パス探索部は、前記音声素片の列の候補の組合せの中で、前記音素セグメントの列全体を分割する数が最小のものから順に所定数までに対応する組合せのみを探索することを特徴とする付記１ないし３のいずれかに記載の音声合成装置。
（付記５）
音素列ごとに、当該音素列を含む前記音声コーパス内の音声素片の列へのインデックスを登録した連続音素列テーブルをさらに備え、
前記最小分割パス探索部は、前記音素列ごとに、当該音素列に対応する前記音声素片の列の候補を、前記連続音素列テーブルを参照することにより探索することを特徴とする付記１ないし４のいずれかに記載の音声合成装置。
（付記６）
前記音声素片列選択部は、前記音素セグメントの列を分割する数が最小となる前記音声素片の列の候補の組合せにおいて、当該組合せを構成する前記音声素片の列の候補に対応する韻律情報と前記連続する音素セグメントの列に対応する韻律情報との差に基づいて算出される韻律コストと、前記音声素片の列の候補の前または後ろに接続する前記音声素片の列の候補の接続部の音響パラメータの不連続性の大きさに基づいて算出される接続コストとに基づいて、探索された前記音声素片の列の候補の組合せの中から前記連続する音素セグメントの列に最も合致する音声素片の列の候補の組を選択することを特徴とする付記１ないし５のいずれかに記載の音声合成装置。
（付記７）
前記音素列を構成する音素は無音を示す情報を含むことを特徴とする付記１ないし６のいずれかに記載の音声合成装置。
（付記８）
入力テキストデータから生成された連続する音声セグメントの列に基づいて、音声コーパスから複数の音声素片の列を選択し、当該選択された複数の音声素片を接続することにより合成音声を出力する音声合成装置に用いられる音声合成方法であって、前記音声合成装置は、
前記選択される音声素片の列の候補に対応する音素列であって、当該音素列が、前記連続する音素セグメントの列の少なくとも一部と一致すると共に、当該連続する音素セグメントの列に対して連続性を満たし、かつ当該音素列が当該音素セグメントの列全体を分割する数が少なくなるように、前記音声コーパスから音声素片の列の候補を探索し、
探索された前記音声素片の列の候補の組合せの中から、前記連続する音素セグメントの列に最も合致する音声素片の列の候補の組を選択する、音声合成方法。
（付記９）
入力テキストデータから生成された連続する音声セグメントの列に基づき、音声コーパスから複数の音声素片の列を選択し、当該選択された複数の音声素片の列を接続することにより合成音声を出力するコンピュータに、
前記選択される音声素片の列の候補に対応する音素列であって、当該音素列が、前記連続する音素セグメントの列の少なくとも一部と一致すると共に、当該連続する音素セグメントの列に対して連続性を満たし、かつ当該音素列が当該音素セグメントの列全体を分割する数が少なくなるように、前記音声コーパスから前記音声素片の列の候補を探索する最小分割パス探索処理と、
探索された前記音声素片の列の候補の組合せの中から、前記連続する音素セグメントの列に最も合致する音声素片の列の候補の組を選択する音声素片列選択処理と、
を実行させるための音声合成プログラム。
【符号の説明】
【００８９】
１０１  テキスト入力部
１０２  形態素解析部
１０３  韻律予測部
１０４  韻律辞書
１０５  波形選択部
１０６  音声辞書
１０７  波形合成部
２０１  セグメントデータ列
２０２  セグメント入力部
２０３  素片列選定部
２０３ａ  最小分割パス探索部
２０３ｂ  音声素片列選択部
２０４  評価部
２０４ａ  連続性評価部
２０４ｂ  コスト評価部
２０５  素片列候補データ
３０１  入力テキストデータ
３０２  音素列
３０３、３０４、３０５  音素列候補
５０１  ＣＰＵ
５０２  ＲＯＭ（リードオンリーメモリ）
５０３  ＲＡＭ（ランダムアクセスメモリ）
５０４  入力装置
５０５  出力装置
５０６  外部記憶装置
５０７  可搬記録媒体駆動装置
５０８  通信インタフェース
５０９  バス
５１０  可搬記録媒体
【図１】
2015152790.tif 000003
【図２】
2015152790.tif 000004
【図３】
2015152790.tif 000005
【図４】
2015152790.tif 000006
【図５】
2015152790.tif 000007
【図６】
2015152790.tif 000008
【図７】
2015152790.tif 000009
【図８】
2015152790.tif 000010