説明

音声合成装置、音声合成方法およびプログラム

【課題】合成対象テキストの入力から音声の出力開始までのレスポンスタイムを短縮する。
【解決手段】音声合成装置100は、テキストの文字列に対応する第1の合成音声データを予め記憶部120に記憶しており、先頭断片テキスト抽出部111が入力テキストを取得する。そして、先頭断片音声選択部112が、前記記憶部120を参照しつつ、入力テキストの先頭文字列と一致する文字列を抽出し、その一致した文字列に対応する第1の合成音声データを音声再生部115に出力し、音声再生部115が直ちに再生する。その再生処理の間に、合成音声構成情報生成部113および構成情報指定付き音声合成部114が、前記一致した文字列より後の文字列に対応する第2の合成音声データの生成を開始して、音声再生部115に出力する。その結果、音声再生部115は、第1の合成音声データに連続して第2の合成音声データを再生する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力テキストに対応する音声を合成する音声合成装置、音声合成方法およびプログラムに関する。
【背景技術】
【0002】
従来、テキストを音声に変換して読み上げるテキスト音声合成技術、および、それを利用したテキスト音声合成システムが開発されている(例えば、非特許文献1参照)。近年、障碍者や高齢者を対象としたユニバーサルデザインや、電子書籍の普及にともなって、音声合成技術のニーズが拡大しており、例えば、視覚障碍者向けのスクリーンリーダシステム、電子書籍の読み上げ機能等に応用されている。
【0003】
視覚障碍者向けのスクリーンリーダシステムでは、PC(Personal Computer)の画面を音声で読み上げるが、ユーザは目的のメニュー、ボタンを、その読み上げ音声を頼りにカーソル移動していくことになる。そのため、すぐに次のメニューやボタンに移動できるように、その読み上げ音声をすぐに聞きたいという要望がある。また、読み上げ機能に関しては、電子書籍の読み上げに限られず、音声ニュースの読み上げにおいて、ユーザは聞きたいニュースでなければすぐに次のニュースに移動したいという要望がある。
【0004】
それらの要望に応えるために、例えば、特許文献1では、文節の読み飛ばし、早送り、次の文を読む等の移動指示に対応できるようにするために、文章を幾つかに分割して分割テキストを生成し、読み飛ばしや早送りによって早く指定されそうな分割テキストの先頭に対して並列して音声合成処理を開始する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−293187号公報
【非特許文献】
【0006】
【非特許文献1】古井貞熙著、「ディジタル音声処理」、東海大学出版会、1985年9月
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の技術においては、分割テキストの音声合成処理が完了する前に、その分割テキストが指定されてしまった場合には、音声合成処理が完了するまでの間、ユーザが待たされるという問題がある。
特に、最近、ユーザが増えているタブレット端末やスマートフォン等は、処理能力がPCほど高くないため、次の文への移動指示の後、合成音声が再生出力されるまでに多くの時間を必要とするという問題が生じる場合がある。
【0008】
そこで、本発明は、音声合成システムにおいて、テキストの入力から合成音声の出力開始までのレスポンスタイムを短くする技術を提供することを課題とする。
【課題を解決するための手段】
【0009】
前記課題を解決するために、本発明に係る音声合成装置は、テキストの文字列に対応する第1の合成音声データを予め記憶部に記憶しており、入力テキストを取得して、前記記憶部を参照しつつ、その入力テキストの先頭文字列と一致する文字列を抽出して、その一致した文字列に対応する第1の合成音声データを直ちに再生するとともに、その再生中に前記一致した文字列より後の文字列に対応する第2の合成音声データの生成を開始して、第1の合成音声データに連続して第2の合成音声データを出力する。
【発明の効果】
【0010】
本本発明によれば、音声合成システムにおいて、合テキストの入力から合成音声の出力開始までのレスポンスタイムを短くすることができる。
【図面の簡単な説明】
【0011】
【図1】第1実施形態にかかる音声合成装置の構成を示すブロック図である。
【図2】先頭断片記憶部に格納されている先頭断片情報の一例を示す説明図である。
【図3】合成音声構成情報生成部で生成する合成音声構成情報の一例を示す説明図である。
【図4】合成音声構成情報生成部の詳細な構成を示すブロック図である。
【図5】第2実施形態にかかる音声合成装置の構成を示すブロック図である。
【図6】文字対応情報を付加した合成音声構成情報の一例を示す説明図である。
【図7】各音韻の再生開始時刻情報を付加した合成音声構成情報の一例を示す説明図である。
【図8】先頭断片情報登録装置の構成を示すブロック図である。
【図9】中間音声データを付加した先頭断片情報の一例を示す説明図である。
【図10】出力開始位置情報(サンプル位置情報)を付加した先頭断片情報の一例を示す説明図である。
【発明を実施するための形態】
【0012】
次に、発明を実施するための形態(以降、「実施形態」と称す。)について、適宜図面を参照しながら詳細に説明する。
【0013】
(第1実施形態)
第1実施形態では、ユーザが読み上げ対象文(以降、合成対象テキストまたは入力テキストとも称する。)を選択し、音声合成装置100(図1参照)に合成対象テキストのデータが入力されると、音声合成装置100が、入力された合成対象テキストの先頭部分に対応する、予め生成済みの合成音声を記憶部から読み出して即座に再生出力する。そして、音声合成装置100は、先頭部分に対応する合成音声データを再生出力している間に、先頭部分の後続のテキストのデータに対応する合成音声データを生成しつつ、後続のテキストに対応する合成音声データを先頭部分に対応する合成音声に連続して(途切れることなく)再生出力する。
【0014】
(音声合成装置100の構成)
第1実施形態にかかる音声合成装置100の構成について、図1を用いて説明する。
図1に示すように、音声合成装置100は、処理部110と記憶部120とを備える。処理部110は、先頭断片テキスト抽出部(第1の手段)111、先頭断片音声選択部(第2の手段)112、合成音声構成情報生成部(第3の手段、第4の手段)113、構成情報指定付き音声合成部(第3の手段、第5の手段)114、および音声再生部115を機能として有する。処理部110は図示しないCPU(Central Processing Unit)およびメインメモリによって構成され、処理部110内の各部は記憶部120に記憶されているアプリケーションプログラムをメインメモリに展開して具現化される。
【0015】
記憶部120は、アプリケーションプログラムや先頭断片記憶部121を記憶している。
また、先頭断片記憶部121は、先頭断片テキストに対応する先頭断片情報(図2の符号200であり詳細は後記する。)を記憶している。先頭断片テキストとは、文章の先頭の文字列を断片として抽出したテキストのことである。また、先頭断片情報とは、(1)先頭断片テキストを示す先頭断片テキスト情報(図2の符号201)と、(2)その先頭断片テキストの合成音声データを示す先頭断片音声情報(図2の符号202)と、(3)合成音声データの生成に用いた先頭断片テキストの音韻情報、その音韻の長さおよび高さを含む合成音声構成情報(図2の符号203であり、詳細は図3を用いて後記する。)と、を関連付けた情報である。
【0016】
先頭断片テキスト抽出部111は、入力テキストから先頭部分の文字列を取り出して先頭断片テキストとして抽出する機能を有する。
先頭断片音声選択部112は、先頭断片テキスト抽出部111によって抽出された先頭断片テキストに一致する先頭断片テキスト情報(図2の符号201)を、先頭断片記憶部121を参照して抽出する機能を有する。そして、先頭断片音声選択部112は、抽出した先頭断片テキストに関連付けられた合成音声データ(第1の合成音声データ132)を音声再生部115に直接出力する機能を有しており、入力テキストの先頭部分の合成音声データ(第1の合成音声データ132)を即座に再生出力する。
【0017】
合成音声構成情報生成部113は、入力テキストに対応した合成音声構成情報または入力テキストの先頭部分の文字列より後のテキストに対応した合成音声構成情報を生成する機能を有する。
構成情報指定付き音声合成部114は、合成音声構成情報生成部113によって生成された合成音声構成情報を取得して、その合成音声構成情報に基づいて合成音声データ(第2の合成音声データ134)を生成し、音声再生部115に出力する機能を有する。つまり、この構成情報指定付き音声合成部114は、合成音声構成情報生成部113とともに、先頭断片テキストに後続するテキストに対して、合成音声データ(第2の合成音声データ134)を生成する役割を担っている。
音声再生部115は、先頭断片音声選択部112または構成情報指定付き音声合成部114から出力された合成音声データを取得して、合成音声として再生出力する機能を有する。
なお、先頭断片音声選択部112、合成音声構成情報生成部113、構成情報指定付き音声合成部114それぞれの機能の詳細については後記する。
【0018】
(音声合成装置100の動作の概要)
次に、音声合成装置100の動作の概要について説明する(適宜、図1参照)。
音声合成装置100に合成対象テキストが入力されると、先頭断片テキスト抽出部111は、入力テキストの先頭部分の文字列を、テキスト長を異ならせて複数出力する。これら複数の文字列は、先頭断片テキストの候補文字列となる。例えば、入力テキストが「本日の天気は晴れです。」という文章であった場合、先頭断片テキスト抽出部111は、「本」「本日」「本日の」・・・「本日の天気は晴れです。」という文字列を候補文字列群として出力する。ただし、先頭断片記憶部121に記憶されている先頭断片情報内の先頭断片テキストの文字数の最長値が予め決められている場合には、先頭断片テキスト抽出部111は、その最長値よりも長い文字数の候補文字列を生成する必要はない。
【0019】
先頭断片テキスト抽出部111によって出力された候補文字列群は、先頭断片音声選択部112に入力される。先頭断片音声選択部112は、先頭断片記憶部121に記憶されている先頭断片情報の中から先頭断片テキストが候補文字列群と一致するものを抽出する。ただし、先頭断片音声選択部112は、先頭断片情報を複数抽出した場合は、先頭断片テキストの文字長が最も長い先頭断片情報を選択する。つまり、先頭断片音声選択部112は、候補文字列の長い方から一致するものを探索していくと良い。
【0020】
図2は、先頭断片記憶部121に記憶されている先頭断片情報200の一例を示している。先頭断片情報200は、先頭断片テキスト情報201、先頭断片音声情報202(図2ではその格納場所を示すファイル名で表示している。)、および合成音声構成情報203を関連付けて記憶している。先頭断片音声選択部112は、図2に示す先頭断片テキスト情報201と、先頭断片テキスト抽出部111から取得した候補文字列群の文字列とを比較することによって、候補文字列に対応する先頭断片情報を抽出することができる。その結果、先頭断片音声選択部112は、候補文字列に最も長く一致した先頭断片テキストに対応する先頭断片音声情報202および合成音声構成情報203を取得する。なお、ここでは、入力テキストの候補文字列に対応する先頭断片情報200が事前にそろっているものとして説明する(適宜、図1,2参照)。
【0021】
図1の説明に戻り、先頭断片音声選択部112によって選択・抽出された先頭断片音声情報202の合成音声データ(第1の合成音声データ132)は、音声再生部115に入力され、合成音声の再生出力が行われる。音声再生部115は、通常のスピーカ等の音声再生デバイスで良いが、後記する構成情報指定付き音声合成部114から少しずつ出力されてくる合成音声データを、再生待ちキューに格納して保持する構成が必要となる。また、音声再生部115は、音声出力が途切れないように、少しずつ次の再生音声を再生待ちキューから取り出して再生出力を実行する。なお、このようなキューイング処理を用いなくても、PCやタブレット端末等のオペレーションシステムによっては、音声データのキューイングが提供されているケースもある。その場合、音声再生部115は、オペレーションシステムの音声再生API(Application Programming Interface)関数とみなすことができる。
【0022】
また、先頭断片音声選択部112によって選択・抽出された合成音声構成情報(第1の合成音声構成情報)203は、合成音声構成情報生成部113に入力される。合成音声構成情報生成部113では、音声合成装置100への入力テキスト全体に対応する合成音声構成情報300(図3参照)を生成する。その際に、合成音声構成情報生成部113は、先頭断片音声選択部112から入力された先頭断片テキストに対応する合成音声構成情報203を基にして、先頭断片テキストより後のテキストに対応する合成音声構成情報(第2の合成音声構成情報)303(図3参照)を生成する。
【0023】
ここで、合成音声構成情報生成部113で生成する合成音声構成情報303の一例について、図3を用いて説明する。なお、図3は、例文「本日の天気は晴れです。」という入力テキストに対する合成音声構成情報300を示しているが、「本日の」の部分は先頭断片音声選択部112から入力された合成音声構成情報203で構成され、「本日の」より後のテキストの部分を合成音声構成情報生成部113が生成した合成音声構成情報303で構成されている場合を示している。合成音声構成情報300は、少なくとも、入力テキストの各音韻情報(音節、音素等の音)301と、その音韻の長さや高さ等の韻律情報302とが必要となる。図3においては、各行が1つの音韻を示し、行の先頭に音韻情報301(カタカナ1文字で記述)を示し、それに続くカッコ内に韻律情報302として4つの数値を記述している。4つの数字は、先頭から順にそれぞれ、音韻の子音部分の音の長さ(ミリ秒単位)、母音部分の音の長さ(ミリ秒単位)、音韻の開始時刻での音の高さ(基本周波数)、音韻の終了時刻での音の高さ(基本周波数)を示している。
【0024】
合成音声構成情報300は、図3に示すようなフォーマットの他、例えば、音韻の音の強さを指定する韻律情報を追加したり、音の高さの情報を音韻の始終点の2点で指定するのではなくさらに細かく多点で指定したり、近似曲線の種類等で指定したり、様々なフォーマットで表現されても構わない。
【0025】
図1に戻り、合成音声構成情報生成部113によって生成された合成音声構成情報303は、構成情報指定付き音声合成部114に入力される。構成情報指定付き音声合成部114は、入力された合成音声構成情報303に基づいて、合成音声データの生成処理を実行する。つまり、構成情報指定付き音声合成部114が出力する合成音声データ(第2の合成音声データ134)は、先頭断片テキストに続く後続部分のテキストに対応する合成音声データのみで良い。
【0026】
構成情報指定付き音声合成部114は、合成音声データを生成しては、生成した合成音声データを音声再生部115に送り、再生待ちキューに加える。これにより、音声再生部115では、先頭断片テキストに対応する合成音声の再生が完了すると、途切れることなく構成情報指定付き音声合成部114によって生成された後続テキストの合成音声データを再生することができ、あたかも1文全体を音声合成で生成したかのように合成音声を再生出力することができる。
【0027】
(処理部110の各部の機能)
次に、先頭断片音声選択部112、合成音声構成情報生成部113、および構成情報指定付き音声合成部114の機能の詳細について説明する(適宜、図1,2,3参照)。
【0028】
<先頭断片音声選択部112>
先頭断片音声選択部112は、先頭断片テキスト抽出部111から入力された候補文字列群に一致する先頭断片テキストを抽出し、さらに、その抽出したものの中からテキスト長が最も長いものを選択する機能を有する。つまり、先頭断片音声選択部112では、主に文字列検索処理が実行される。
合成対象テキストが入力されてから合成音声データを再生出力するまでの時間を示す再生遅延時間を重視しないケースであれば、入力された候補文字列のうち、文字数が多いものから順番に先頭断片記憶部121を検索し、一致する先頭断片テキストを選択するという手法を用いても良い。例えば、「本」「本日」「本日の」・・・「本日の天気は晴れです。」という候補文字列群があったとして、文字数が最も多い「本日の天気は晴れです。」の候補文字列から先頭断片記憶部121の検索を開始するケースである。しかしながら、このような手法では、入力テキストが長くなるほど、一致する先頭断片テキストを見つけるための比較処理の回数が増加して、再生遅延時間が増加するという虞がある。
【0029】
そこで、この虞を解消するために、まず、先頭断片記憶部121に記憶されている先頭断片情報200内に含まれる先頭断片テキストの最長値を別途記憶しておき、その最長値よりも長い候補文字列に対しては検索処理を実行しないようにする。または、ハッシュ関数(文字列をハッシュ値に変換する関数)を用いて検索すべき文字列をハッシュ値に変換し、そのハッシュ値に対応するエントリを検索するハッシュ法検索を採用しても構わない。または、先頭断片記憶部121に含まれている先頭断片テキスト全体をトライと呼ばれる木構造に変換しておき、検索対象文字列の中の文字を先頭から順番にトライ木の上で辿っていくことで、最長一致する文字列を検索するトライ木を採用しても構わない。ただし、これらの文字列検索方法にはそれぞれ長所短所があり、先頭断片記憶部121の記憶容量や許容できる再生遅延時間等に応じて、採用する文字列検索方法を選択することが好ましい。
【0030】
<合成音声構成情報生成部113>
図4に示すように、合成音声構成情報生成部113は、テキスト解析部401および韻律解析部402を備えている。
テキスト解析部401は、漢字かな混じりの入力テキストを、自然言語処理技術を用いて音韻文字と韻律指定文字を含む中間言語表現に変換する。例えば、例文「本日の天気は晴れです。」の場合、「ホ’ンジツノ/テ’ンキワ/ハレ’デス%.」のような中間言語に変換される。ここでカタカナは音を示す音韻文字であり、ピリオド(.)は文末指定文字、パーセント(%)は直前の音韻が無声化されていることを示す記号である。また、アポストロフィー(’)はアクセント核位置を示す韻律記号、スラッシュ(/)はアクセント句の区切りを示す韻律記号である。入力テキストを中間言語表現に変換する処理手法は、公知技術(非特許文献1参照)であるため詳細な説明を省略するが、形態素解析処理と、音声合成処理に独特のアクセント句およびアクセント核位置の解析処理を組み合わせることで実現される。
【0031】
テキスト解析部401には、先頭断片テキスト抽出部111から合成対象テキスト「本日の天気は晴れです。」の全文が入力され、先頭断片音声選択部112から先頭断片テキスト情報201の「本日の」が入力される。つまり、テキスト解析部401には、入力テキスト全文に加えて先頭断片テキスト情報201も合わせて入力される点が公知の音声合成処理(非特許文献1参照)と異なる。そして、テキスト解析部401は、入力テキストを中間言語表現に変換するとともに、先頭断片テキスト部分がどの範囲に相当するか(どの位置で終了するか)を示すマーカを付して、マーカ付きの発音記号列を出力する。
【0032】
例えば、例文「本日の天気は晴れです。」の場合、テキスト解析部401には、入力テキスト「本日の天気は晴れです。」および先頭断片テキスト情報201の「本日の」が入力される。テキスト解析部401は、「本日の天気は晴れです。」を中間言語に変換するとともに、先頭断片テキスト情報201の「本日の」がどの位置で終了するかを示すマーカを付す。マーカ文字を、例えば“)”で表した場合、テキスト解析部401から出力される中間言語表現は、「ホ’ンジツノ)/テ’ンキワ/ハレ’デス%.」のようになる。
【0033】
マーカの追加方法を具体的に説明すると、まず、テキスト解析部401において、テキスト解析処理で用いる形態素解析処理によって、入力された漢字かな混じりテキストを形態素の列に分解する。次に、形態素列に対してアクセント句・アクセント核位置の解析処理を実行し、形態素の読みを連結していく。先頭断片テキストの末尾位置が形態素の境界位置に一致した場合は、末尾位置に対応する形態素の読みを出力した後に、マーカ文字を出力すれば良い。
【0034】
一方、先頭断片テキストの末尾位置が1つの形態素の内部に位置する場合は、末尾位置を内部に含む当該形態素を利用しないようにする。なお、先頭断片テキストの末尾位置が1つの形態素の内部に位置する場合とは、具体的には、例えば、「本日は晴れです。」という合成対象テキストに対して、先頭断片テキストが「本(ホン)」のみである場合等である。末尾位置を内部に含む当該形態素を利用しないようにするためには、形態素解析処理内部で、末尾位置を内部に含む形態素に割り当てるコストを増加させる、または、前後の形態素との接続を不可とする、等の処理を実行する。ここで、コストとは、形態素ごとに、その形態素を利用するか否かの判定に用いる重みであって、例えば、接続候補として複数の形態素があった場合、コストが最も小さい形態素を利用するというように決定される。
【0035】
次に、韻律解析部402について説明する。
韻律解析部402には、先頭断片テキスト抽出部111から、合成音声構成情報203の「ホ(20,80,220,230)ン(0,60,230,220)ジ(20,50,220,210)ツ(30,60,210,200)ノ(20,70,200,180)」が入力される。そして、韻律解析部402は、入力された合成音声構成情報203に続く部分の合成音声構成情報303を生成する。
【0036】
韻律解析部402における処理では、入力された合成音声構成情報203(以降、入力合成音声構成情報と称する。)の末尾部分の韻律と、韻律解析部402によって新たに生成される範囲の合成音声構成情報303(以降、新規生成合成音声構成情報と称する。)の先頭部分の韻律と、をスムーズに接続させることが重要となる。具体的には、入力合成音声構成情報の末尾の基本周波数と、新規生成合成音声構成情報の先頭の基本周波数とが一致、または近い値になるようにする。接続がスムーズでない場合、すでに再生中の先頭断片テキストに引き続いて再生される合成音声(新規生成合成音声構成情報による合成音声)との間で音の高さのギャップが生じ、聞きづらくなってしまう。また、基本周波数に加えて、入力テキスト全体での話速も一致させることが望ましい。つまり、入力合成音声構成情報内の平均音韻時間長(ミリ秒)と、新規生成合成音声構成情報の平均音韻時間長(ミリ秒)を近い値とすることが好ましい。
【0037】
このスムーズな接続を実現するためには、以下の方法を用いることができる。韻律解析部402は、先頭断片テキスト抽出部111から入力された合成音声構成情報203(入力合成音声構成情報)を無視し、まず、テキスト解析部401から入力された中間言語表現から、公知の音声合成処理で実施される韻律解析処理を用いて、入力テキスト全体に対応する合成音声構成情報を生成する。この際、テキスト解析部401から入力された中間言語表現にはマーカ文字が記入されているので、生成した合成音声構成情報のどこまでが合成音声構成情報203(入力合成音声構成情報)の末尾に対応するかを判定することができる。
【0038】
続いて、入力合成音声構成情報の末尾の基本周波数と、新規生成合成音声構成情報(生成した合成音声構成情報のうちマーカ文字以降の部分)の先頭の基本周波数との差分を求める。また、入力合成音声構成情報内の平均音韻時間長(ミリ秒)と、新規生成合成音声構成情報内の平均音韻時間長(ミリ秒)とを算出し、差分を求める。そして、求めた基本周波数の差分を新規生成合成音声構成情報内の基本周波数に加算し、求めた平均音韻時間長の差分を新規生成合成音声構成情報内の音韻時間長に加算することによって、入力合成音声構成情報と申請生成合成音声構成情報との間での音の高さと速さをそろえることができる。このような処理により、入力合成音声構成情報と、新規生成合成音声構成情報とをスムーズに接続させることができる。最後に、入力合成音声構成情報と新規生成合成音声構成情報とを連結して出力する。なお、入力合成音声構成情報と新規生成合成音声構成情報との境界にはマーカを付与しておく。
【0039】
<構成情報指定付き音声合成部114>
構成情報指定付き音声合成部114は、例えば、波形接続手法やパラメータ合成手法等、公知技術による音声合成手法(非特許文献1参照)を用いることによって合成音声データを生成する。
【0040】
音声合成手法を用いて合成音声データを生成する場合、少なくとも、合成する文章の音韻情報、その音韻の長さの情報および高さの情報が必要となる。波形接続手法による音声生成処理では、合成対象テキストの音韻に対応する音声素片を指定された高さと長さになるように韻律変形処理することによって合成音声データを生成する。また、パラメータ合成手法による音声生成処理では、合成対象テキストの音韻に対応するフィルタパラメータを用いて、指定された音の高さに対応するピッチ間隔で励振源を駆動し、指定された音韻の時間長の間、フィルタパラメータに駆動音源を入力することによって合成音声データを生成する。
【0041】
つまり、構成情報指定付き音声合成部114は、図3に示す合成音声構成情報300を用いて音声生成処理を実行する。そして、構成情報指定付き音声合成部114で生成された合成音声データは、各音韻に対する音声生成処理が完了した時点で音声再生部115に出力することが好ましい。これは、文全体の合成音声データを生成した後で出力した場合には、再生遅延時間が長くなってしまう虞があるためである。
【0042】
なお、第1実施形態の構成情報指定付き音声合成部114は、入力された合成音声構成情報300内のマーカに対する処理が必要な点において、公知の音声合成手法と異なっている。すなわち、構成情報指定付き音声合成部114は、マーカよりも前の音韻については合成音声データを生成処理する必要がなく、マーカ以降の合成音声データを生成し、出力すれば良い。ただし、マーカ以前の音韻の合成音声データとマーカ以降の合成音声データとの接続がスムーズになっている必要がある。そのため、この処理の実現方法としては、例えば、構成情報指定付き音声合成部114は、公知の音声合成手法と同様に、入力された合成音声構成情報300に対応する合成音声データをすべて生成した後、マーカ位置に対応する合成音声データの音声位置を検出し、マーカ以降の合成音声データを音声再生部115へ出力するという方法がある。なお、マーカ前後のスムーズな接続に関する前記方法とは異なる別法について、第3実施形態において説明する。
【0043】
以上、第1実施形態にかかる音声合成装置100は、テキストの文字列に対応する第1の合成音声データを予め記憶部120に記憶しており、先頭断片テキスト抽出部111が入力テキストを取得する。そして、先頭断片音声選択部112が、前記記憶部120を参照しつつ、入力テキストの先頭文字列と一致する文字列を抽出し、その一致した文字列に対応する第1の合成音声データを音声再生部115に出力し、音声再生部115が直ちに再生する。その再生処理の間に、合成音声構成情報生成部113および構成情報指定付き音声合成部114が、前記一致した文字列より後の文字列に対応する第2の合成音声データの生成を開始して、音声再生部115に出力する。その結果、音声再生部115は、第1の合成音声データに連続して第2の合成音声データを再生する。これにより、合成対象テキストの入力から合成音声を出力するまでの時間を示す再生遅延時間を短縮することが可能となり、ユーザの利便性を向上させることができる。
【0044】
なお、第1実施形態における説明では、先頭断片記憶部121内に入力テキストに対応する先頭断片情報200が記憶されているものとしていたが、先頭断片記憶部121内に入力テキストに対応する先頭断片情報200が記憶されていない場合についても本実施形態の比較例として説明しておく。この場合、合成音声構成情報生成部113で入力テキスト全体の合成音声構成情報を生成し、先頭にマーカを付けて構成情報指定付き音声合成部114に出力すれば良い。構成情報指定付き音声合成部114は、マーカが先頭にあるので、公知の音声合成手法と同様の処理となり、入力テキスト全体に対応する合成音声データを生成し、順次音声再生部115に出力していく。そのため、合成対象テキストの入力から合成音声を出力するまでの時間を示す再生遅延時間は、従来と同じ状態となる。
【0045】
(第2実施形態)
第2実施形態では、図5を用いて、先頭断片記憶部121内(図5参照)に入力テキストに対応する先頭断片情報200(図2参照)が記憶されていない場合に、先頭断片情報200をあらたに追加していく登録機能を有する音声合成装置500について説明する(適宜、図2,3参照)。これにより、以前と同じ合成対象テキストが再度入力された場合または先頭部分が同じ合成対象テキストが再度入力された場合は、一致する先頭断片情報200を利用することができ、即座に音声再生を行うことができる。
【0046】
図5は、第2実施形態にかかる音声合成装置500の構成を示している。ただし、図5では、第1実施形態にかかる音声合成装置100(図1参照)と同様の構成については、図1と同じ符号を付している。音声合成装置500は、処理部110aと記憶部120とを備える。処理部110aは、第1実施形態と同様の構成である先頭断片記憶部121、先頭断片テキスト抽出部111、先頭断片音声選択部112、合成音声構成情報生成部113、構成情報指定付き音声合成部114、音声再生部115に加えて、先頭断片情報抽出部(第6の手段)116が登録機能として追加されている。処理部110aは図示しないCPUおよびメインメモリによって構成され、処理部110a内の各部は記憶部120に記憶されているアプリケーションプログラムをメインメモリに展開して具現化される。
【0047】
音声合成装置500は、第1実施形態の場合と同様に、合成音声構成情報生成部113で入力テキスト全体の合成音声構成情報を生成し、生成した合成音声構成情報の先頭にマーカを付けて構成情報指定付き音声合成部114に出力する。構成情報指定付き音声合成部114は、入力テキスト全体に対応する合成音声データを生成し、順次、音声再生部115に出力していく。
【0048】
そして、先頭断片情報抽出部116は、先頭断片音声選択部112によって先頭断片記憶部121が検索された際に、入力テキストの先頭部分の文字列に一致する先頭断片テキストが存在しなかった場合に起動される。この場合、先頭断片情報抽出部116に対しては、構成情報指定付き音声合成部114から出力された合成音声データ、合成音声構成情報生成部113から出力された合成音声構成情報、および入力テキストが入力される。このとき、合成音声構成情報生成部113は、図6に示すような、合成音声構成情報内の各音韻601が入力テキスト内のいずれの文字と対応しているかを示す情報(文字対応情報603)を付加した合成音声構成情報600を出力する。さらに、構成情報指定付き音声合成部114は、図7に示すような、各音韻の再生開始時刻情報703を付加した合成音声構成情報700を出力する。
【0049】
図6は、例文「本日の天気は晴れです。」という入力テキストに対する合成音声構成情報600(以降、文字付加情報付き合成音声構成情報600とも称する。)を示している。合成音声構成情報600には、入力テキストの各音韻情報601、韻律情報602に加えて、各音韻が対応する形態素ごとに入力テキストの文字対応情報603が付加されている。文字対応情報603の付加は、合成音声構成情報生成部113における形態素解析処理を行う際の内部情報を用いることによって行われる。
【0050】
図7は、例文「本日の天気は晴れです。」という入力テキストに対する合成音声構成情報700(以降、再生開始時刻情報付き合成音声構成情報700とも称する。)を示している。合成音声構成情報700には、入力テキストの各音韻情報701、韻律情報702に加えて、生成された合成音声データ内での各音韻の再生開始時刻703がミリ秒単位で付加されている。韻律情報702を示すカッコ内の1番目は子音の長さ(ミリ秒単位)、2番目は母音の長さ(ミリ秒単位)を表している。そこで、各音韻の再生開始時刻703は、合成音声構成情報700として出力された音韻時間長の合計値(カッコ内の1番目および2番目の値を累積していった値)と一致した時刻としている。他の方法として、韻律変形処理を極力行わずに高品質化を図る波形接続音声合成処理においては、合成音声構成情報として出力された音韻時間長の合計値と実際の合成音声における音韻の開始位置(時刻)とは異なる場合も多い。その場合には、構成情報指定付き音声合成部114においても、合成音声内での実際の音韻再生開始時刻を合成音声構成情報700に付加しても良い。
【0051】
図5の説明に戻り、先頭断片情報抽出部116は、まず、図6に示す文字付加情報付き合成音声構成情報600を基に、先頭断片テキストを決定する。具体的には、文字付加情報付き合成音声構成情報600の先頭に位置する文字から順番に連結していき、先頭断片テキストとする。先頭断片テキストのテキスト長を決める基準としては、連結した文字列の文字数や、連結した文字列の合成音声の再生時間長等が挙げられる。また、再生処理時間を低減させるためには、先頭断片テキストの音声再生中に、後続の合成音声データの生成が一定量行われ、出力可能な状態になっていなければならない。つまり、先頭断片テキストのテキスト長は、連結した文字列に対応する合成音声データの再生時間が所定時間(後続の合成音声データの生成が一定量行われるための時間)以上となっている必要がある。したがって、先頭断片情報抽出部116は、先頭断片テキストのテキスト長を固定するのではなく、音声合成装置500内のプロセッサの処理速度(音声生成処理速度)に応じて、先頭断片テキストのテキスト長を設定しても良い。具体的には、処理速度が高くなるほど、テキスト長を長くするように決定する。
【0052】
そして、先頭断片情報抽出部116は、図6に示す文字対応情報付き合成音声構成情報600の文字対応情報603を参照して、決定した先頭断片テキストに対応する合成音声構成情報203を抽出する。また、先頭断片情報抽出部116は、図7に示す再生開始時刻情報付き合成音声構成情報700の再生開始時刻703を参照して、決定した先頭断片テキストに対応する合成音声データを切り出して、先頭断片音声情報202とする。この処理では、決定した先頭断片テキストの末尾に対応する音韻終了時刻までの合成音声データを切り出せば良い。このようにして、先頭断片情報200(図2参照)が生成される。次に、先頭断片情報抽出部116は、先頭断片テキスト情報201、先頭断片音声情報202、合成音声構成情報203を、先頭断片情報200として先頭断片記憶部121に追加し、記憶する。
【0053】
以上のような処理によって、入力テキストの先頭部分に一致する先頭断片情報200が先頭断片記憶部121に記憶されていなかった場合であっても、新たに先頭断片情報200を生成して、先頭断片記憶部121に追加することができる。これにより、以前と同じ合成対象テキストが再度入力された場合には、新たに追加されている先頭断片情報200の合成音声データを直ちに再生出力することができる。
【0054】
(先頭断片情報登録装置800の構成)
なお、音声合成装置500から先頭断片情報200の登録機能(先頭断片情報抽出部116)を切り離し、先頭断片記憶部121に先頭断片情報200の登録のみを行う専用装置を設けても良い。例えば、電子書籍やニュースの読み上げでは、先頭断片テキストはいろいろな分野にわたって多種になるため、先頭断片記憶部121内で先頭断片情報200が抽出されずに、新規に先頭断片情報200を生成し追加するケースが多くなると考えられる。このような場合には、図8に示す先頭断片情報登録装置800は、新規の先頭断片情報200を登録するための登録処理専用の装置として好適である。
【0055】
図8は、先頭断片情報登録装置800の構成を示している。ただし、図8では、第2実施形態にかかる音声合成装置500(図5参照)と同様の構成については、図5と同じ符号を付している。先頭断片情報登録装置800は、処理部110bと記憶部120とを備える。処理部110bは、第2実施形態の音声合成装置500(図5参照)の構成から音声再生部115を除くとともに、入力テキスト中の一文に相当する文字列を切り出す処理を行う文分解部117が追加されている。処理部110bは図示しないCPUおよびメインメモリによって構成され、処理部110b内の各部は記憶部120に記憶されているアプリケーションプログラムをメインメモリに展開して具現化される。
【0056】
文分解部117で分解された入力テキストは、先頭断片音声選択部112、合成音声構成情報生成部113、構成情報指定付き音声合成部114、先頭断片情報抽出部116で処理され、新規に先頭断片情報200が先頭断片記憶部121に蓄積される。先頭断片情報登録装置800による登録処理を入力テキストの読み上げ前に実行しておくことによって、実際の読み上げの際には速やかに音声再生を行うことができる。例えば、先頭断片情報登録装置800によって登録処理された先頭断片記憶部121に記憶されている先頭断片情報200を、第1実施形態の音声合成装置100の先頭断片記憶部121にインストールするようにして用いることができる。
【0057】
(第3実施形態)
第3実施形態では、マーカ前後のスムーズな接続に関して、第1実施形態で記載した方法とは異なる別法について説明する(適宜、図1,5参照)。この別法は、第1実施形態で説明した方法に比較して、マーカ以降の合成音声データの生成を開始する時間をより早めることができる。
【0058】
構成情報指定付き音声合成部114において用いられる音声合成アルゴリズムには、大きく分けて、パラメータ合成方式、波形重畳方式、波形接続方式の3つが知られている。これらの方式の詳細については、非特許文献1に記載されている。
前記3つの方式のうち、パラメータ合成方式および波形重畳方式は、それぞれ、合成する音素に対応する音響パラメータと音声素片とを、ピッチ(基本周波数)間隔で駆動する(それぞれフィルタ合成、ピッチ波形の重畳加算を実行する)ことによって合成音声データを生成する。このとき、生成された合成音声データの末尾部分は、次の音素の合成処理に必要なデータとなる。このように、パラメータ合成方式および波形重畳方式では、前の音素の合成処理で生成されたデータが後の音素の合成処理で必要となるので、合成対象テキストの先頭から逐次的に音声合成していく必要がある。なお、以下の説明では、後の音素の合成に必要なデータを中間音声データと呼ぶこととすると、パラメータ合成方式および波形重畳方式は、中間音声データを必要とするアルゴリズムであると言える。
【0059】
それに対して、波形接続方式では、音声素片と呼ばれる断片音声に対する信号処理を実行しない(ただし、音声素片間のスムージングを除く。)。そのため、波形接続方式の場合には、直前の音素の合成結果が後の音素の合成処理に影響するという問題は生じない。すなわち、波形接続方式は、中間音声データを必要としないアルゴリズムであると言える。
【0060】
まず、中間音声データを必要とするアルゴリズム(パラメータ合成方式および波形重畳方式)における音声生成処理について説明する。パラメータ合成方式および波形重畳方式では、中間音声データの量が決まっている。例えば、FIR(Finite Impulse Response)フィルタによるパラメータ合成方式では、そのフィルタのタップ数に相当する数の直前音声のサンプルデータがあれば良い。また、メルケプストラムフィルタ等の手法では、音声合成処理単位であるフレーム長さ(正確にはフレーム間重なりに対応するフレーム移動量)に相当する数の直前の音声のサンプルデータがあれば良い。また、波形重畳方式の場合は、合成対象音声のピッチ(基本周波数)間隔で音声素片のピッチ波形の重畳加算を行うため、ピッチ間隔の半分の長さの音声サンプルデータがあれば良い。
【0061】
このように、いずれの方式を用いる場合であっても、中間音声データは、音声のサンプルデータを所定数(多くても数百程度)あれば良い。このことから、先頭断片記憶部121に記憶する先頭断片情報200に、中間音声データ(正確にはマーカが示す合成開始位置の直前の音素の末尾部分の中間音声データ)をあわせて格納しておく。これにより、構成情報指定付き音声合成部114(図1,5参照)において、マーカ以降の合成音声データの生成を開始する時間を早め、マーカの前後の合成音声をスムーズに接続することができる。
【0062】
図9は、中間音声データを付加した先頭断片情報900の一例を示している。図9には、先頭断片記憶部121に記憶する先頭断片情報900として、先頭断片テキスト情報201、先頭断片音声情報202、合成音声構成情報203に加えて、中間音声データ情報904が付加されている。構成情報指定付き音声合成部114に入力される合成音声構成情報203に、中間音声データ情報904が付加されていることによって、構成情報指定付き音声合成部114では、中間音声データ情報904を参照してマーカが示す合成開始位置の音素から音声生成処理を開始することができる。
【0063】
次に、中間音声データを必要としないアルゴリズム(波形接続方式)における音声生成処理について説明する。波形接続方式では、基本的に音声素片を単純につなぎ合わせることで音声生成処理を実行する。そのため、音声素片境界の位置とマーカの示す合成開始位置とが一致している場合は、中間音声データは必要なく、再生中の先頭断片音声に続いて合成開始位置から生成した合成音声データをそのまま出力すれば良い。
【0064】
ただし、音声素片間でスムージング処理を実行する場合には、スムージング処理のために音素素片間で重ねる音声領域が必要となる。この場合、先頭断片音声の末尾部分に、重ねる音声領域のデータを付加しておく。そして、構成情報指定付き音声合成部114は、スムージング処理された音声位置から合成音声データを出力できるように、マーカに加えて、出力開始位置を示すサンプル位置の情報(出力開始位置情報)を合わせて付加しておくと良い。
【0065】
図10は、出力開始位置情報(サンプル位置情報)1004を付加した先頭断片情報1000の一例を示している。図10には、先頭断片記憶部121で格納する先頭断片情報1000として、先頭断片テキスト201、先頭断片音声情報202、合成音声構成情報203に加えて、出力開始位置情報(サンプル位置情報)1004が付加されている。構成情報指定付き音声合成部114は、出力開始位置情報(サンプル位置情報)1004を参照して、合成音声データを出力することができる。
【産業上の利用可能性】
【0066】
以上説明したように、本発明にかかる音声合成装置は、入力テキストに対応する合成音声データを読み上げる音声合成システムに有効であり、特に、ニュースの読み上げやスクリーンリーダシステム等、合成対象テキストが頻繁に変更される用途に用いる音声合成システムに適している。
【符号の説明】
【0067】
100,500 音声合成装置
110,110a,110b 処理部
111 先頭断片テキスト抽出部(第1の手段)
112 先頭断片音声選択部(第2の手段)
113 合成音声構成情報生成部(第3の手段、第4の手段)
114 構成情報指定付き音声合成部(第3の手段、第5の手段)
115 音声再生部(音声再生手段)
116 先頭断片情報抽出部(第6の手段)
117 文分解部
132 第1の合成音声データ
134 第2の合成音声データ
120 記憶部(記憶手段)
121 先頭断片記憶部
200 先頭断片情報
201 先頭断片テキスト情報
202 先頭断片音声情報
203 合成音声構成情報(第1の合成音声構成情報)
300 合成音声構成情報
301 音韻情報
302 韻律情報
303 合成音声構成情報(第2の合成音声構成情報)
401 テキスト解析部
402 韻律解析部
600 合成音声構成情報
601 音韻情報
602 韻律情報
603 文字対応情報
700 合成音声構成情報
701 音韻情報
702 韻律情報
703 再生開始時刻
800 先頭断片情報登録装置

【特許請求の範囲】
【請求項1】
取得したテキストの合成音声データを生成して音声再生手段で再生する音声合成装置であって、
前記テキストの文字列に対応する第1の合成音声データを記憶している記憶手段と、
前記取得したテキストから先頭の文字列を取り出す第1の手段と、
前記記憶手段を参照して、前記先頭の文字列に一致する文字列を抽出し、その一致した文字列に対応する前記第1の合成音声データを前記音声再生手段に出力する第2の手段と、
前記音声再生手段が前記第1の合成音声データを再生している間に、前記取得したテキストの先頭の文字列より後の文字列に対応する第2の合成音声データの生成処理を開始して、生成した前記第2の合成音声データを前記音声再生手段に出力する第3の手段と、
を備えることを特徴とする音声合成装置。
【請求項2】
前記第3の手段は、
前記第2の合成音声データを生成するために用いる、テキストの音韻情報とその音韻の長さおよび高さとを少なくとも含む第2の合成音声構成情報を生成する第4の手段と、
前記第2の合成音声構成情報に基づいて前記第2の合成音声データを生成する第5の手段と
を備えることを特徴とする請求項1に記載の音声合成装置。
【請求項3】
前記記憶手段は、さらに、前記第1の合成音声データを生成したときに用いた、テキストの音韻情報とその音韻の長さおよび高さとを少なくとも含む第1の合成音声構成情報を前記テキストの文字列に関連付けて記憶しており、
前記第2の手段は、さらに、前記一致した文字列に関連付けられた前記第1の合成音声構成情報を、前記記憶手段から取得し、
前記第4の手段は、第2の手段から取得した前記第1の合成音声構成情報と前記第2の合成音声構成情報とを用いて、前記第2の合成音声データの再生音の高さを前記第1の合成音声データの再生音の高さに一致させ、前記第2の合成音声構成情報内の平均音韻時間長を前記第1の合成音声構成情報内の平均音韻時間長に一致させる
ことを特徴とする請求項2に記載の音声合成装置。
【請求項4】
前記第2の手段において前記先頭の文字列に一致する文字列を抽出できなかった場合、前記取得したテキストの文字列からテキストの先頭側の文字列を選択し、前記取得したテキストに対応する第3の合成音声データを生成し、前記第3の合成音声データから前記先頭側の文字列に対応する断片を切り出し、前記先頭側の文字列と前記第3の合成音声データの断片とを関連付けて、前記記憶手段に記憶する第6の手段
をさらに備えることを特徴とする請求項1ないし請求項3のいずれか一項に記載の音声合成装置。
【請求項5】
前記第6の手段は、前記先頭側の文字列の長さを、当該先頭側の文字列に対応する前記第3の合成音声データの断片の再生時間が所定時間以上となるように決定する
ことを特徴とする請求項4に記載の音声合成装置。
【請求項6】
取得したテキストに対応する合成音声データを生成して音声再生手段で再生する音声合成装置の音声合成方法であって、
前記音声合成装置は、
前記テキストの文字列に対応する第1の合成音声データを記憶している記憶手段と音声再生手段とを備え、
前記取得したテキストの先頭の文字列を取り出す第1のステップと、
前記記憶手段を参照して、前記先頭の文字列に一致する文字列を抽出し、その一致した文字列に対応する前記第1の合成音声データを前記音声再生手段に出力する第2のステップと、
前記音声再生手段が前記第1の合成音声データを再生している間に、前記取得したテキストの先頭の文字列より後の文字列に対応する第2の合成音声データの生成処理を開始して、生成した前記第2の合成音声データを前記音声再生手段に出力する第3のステップと、
を実行することを特徴とする音声合成方法。
【請求項7】
前記第3のステップは、
前記第2の合成音声データを生成するために用いる、テキストの音韻情報とその音韻の長さおよび高さとを少なくとも含む第2の合成音声構成情報を生成する第4のステップと、
前記第2の合成音声構成情報に基づいて前記第2の合成音声データを生成する第5のステップと
を備えることを特徴とする請求項6に記載の音声合成方法。
【請求項8】
前記記憶手段は、さらに、前記第1の合成音声データを生成したときに用いた、テキストの音韻情報とその音韻の長さおよび高さとを少なくとも含む第1の合成音声構成情報を前記テキストの文字列に関連付けて記憶しており、
前記第2のステップでは、さらに、前記一致した文字列に関連付けられた前記第1の合成音声構成情報を、前記記憶手段から取得し、
前記第4のステップでは、第2のステップから取得した前記第1の合成音声構成情報と前記第2の合成音声構成情報とを用いて、前記第2の合成音声データの再生音の高さを前記第1の合成音声データの再生音の高さに一致させ、前記第2の合成音声構成情報内の平均音韻時間長を前記第1の合成音声構成情報内の平均音韻時間長に一致させる
ことを特徴とする請求項7に記載の音声合成方法。
【請求項9】
前記第2のステップにおいて前記先頭の文字列に一致する文字列を抽出できなかった場合、前記取得したテキストの文字列からテキストの先頭側の文字列を選択し、前記取得したテキストに対応する第3の合成音声データを生成し、前記第3の合成音声データから前記先頭側の文字列に対応する断片を切り出し、前記先頭側の文字列と前記第3の合成音声データの断片とを関連付けて、前記記憶手段に記憶する第6のステップ
をさらに実行することを特徴とする請求項6ないし請求項8のいずれか一項に記載の音声合成方法。
【請求項10】
前記第6のステップでは、前記先頭側の文字列の長さを、当該先頭側の文字列に対応する前記第3の合成音声データの断片の再生時間が所定時間以上となるように決定する
ことを特徴とする請求項9に記載の音声合成方法。
【請求項11】
請求項6ないし請求項10のいずれか一項に記載の音声合成方法を、コンピュータである前記音声合成装置に実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−61591(P2013−61591A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2011−201459(P2011−201459)
【出願日】平成23年9月15日(2011.9.15)
【出願人】(000005108)株式会社日立製作所 (27,607)