本発明の実施形態に係る音声再生装置およびそのプログラムについて、図面を参照しながら説明する。なお、以下の説明において、同一の構成については同一の名称及び符号を付し、詳細説明を省略する。
<第1実施形態>
[音声再生装置の構成]
本発明の第1実施形態に係る音声再生装置の構成について、図1〜図4を参照しながら説明する。音声再生装置1は、入力信号に信号処理を行って音声を再生するものであり、具体的には図1に示すように、外部から入力される音声データ再生リストに記載された複数の音声データの話速変換を行い、当該複数の音声データの再生時間長を指定時間長に収めて再生するものである。この音声再生装置1は、例えば人の調整を介することなく、株式市況や天気予報などの任意の複数の音声データを所定の放送番組時間内に収める場合に用いられる。
音声再生装置1は、ここでは図1に示すように、音声入力手段10と、音声データ記憶手段20と、伸縮率決定手段30と、話速変換無音接続手段40と、音声バッファリング手段50と、音声再生手段60と、を備えている。
音声入力手段10は、音声データを入力するものである。この「音声データ」は、例えばフレーズ単位や単語単位の音声を示すデータのことを示している。音声入力手段10は、図1に示すように、外部から入力された音声データ再生リストに記載されている音声データを音声データ記憶手段20から読み込み、図示しないメモリ上に展開する。そして、音声入力手段10は、図1に示すように、メモリ上に蓄えた音声データのうち、1回の話速変換に必要な分の音声データを話速変換手段43に対して出力する。また、音声入力手段10は、図1に示すように、図示しないメモリ上に蓄えている話速変換前の音声データの長さの総和(以下、残音声データの長さという)を伸縮率決定手段30内の残コンテンツ時間算出手段32(図2参照)および話速変換無音接続手段40内の目標時間長算出手段41に対して出力する。
なお、前記した「音声データ再生リスト」とは、予め用意された、放送番組において再生する音声データの種類および順番が示されたリストのことを示している。また、前記した「1回の話速変換に必要な分の音声データ」とは、音声入力手段10の図示しないメモリ上に蓄えられた音声データのうちの一部の音声データのことを示しており、具体的には、音声データの話速変換の際の単位となる波形の基本周期を3つ以上有する長さの音声データのことを示している。また、前記した「話速変換前の音声データ」とは、音声入力手段10の図示しないメモリ上に蓄えられた話速変換されていない音声データのことを示している。
音声データ記憶手段20は、話速変換前の音声データを記憶するものである。音声データ記憶手段20は、複数の音声データを識別情報(たとえば番号、ファイルなど)に対応付けて記憶している。ここで、音声データ記憶手段20は、具体的にはデータを記憶することができるハードディスクまたはフラッシュメモリなどで構成される。なお、音声データ記憶手段20内の音声データには、当該音声データの長さ(時間長)が付加されているものとする。また、音声データ記憶手段20は、ここでは図1に示すように、音声再生装置1内に設けられているが、外部に設けられた構成としても構わない。
伸縮率決定手段30は、音声データの話速変換を行う際の伸縮率を決定するものである。伸縮率決定手段30は、ここでは図2に示すように、残放送時間算出手段31と、残コンテンツ時間算出手段32と、伸縮率算出手段33と、を備えている。
残放送時間算出手段31は、指定時間長内における残りの放送時間を示す残放送時間を算出するものである。残放送時間算出手段31には、図2に示すように、外部から現在時刻と放送番組の終了時刻とが入力されるとともに、後記する音声バッファリング手段50から当該音声バッファリング手段50が保存している無音付音声データの長さが入力される。なお、前記した「無音付音声データ」とは、後記する無音接続手段44において、話速変換後の音声データに、当該音声データ間の間を示す無音が接続されたものを示している。
そして、残放送時間算出手段31は、以下の式(3)に示すように、指定時間長から音声バッファリング手段50に保存されている無音付音声データの長さの総和を減算することで残放送時間を算出し、図2に示すように、当該残放送時間を伸縮率算出手段33に対して出力する。なお、以下の式(3)における「終了時間−現在時刻」は、具体的には指定時間長のことを示している。
残放送時間=終了時刻−現在時刻−音声バッファリング手段内の無音付音声データの長さの総和 ・・・式(3)
残コンテンツ時間算出手段32は、話速変換前の音声データおよび無音の長さを示す残コンテンツ時間を算出するものである。残コンテンツ時間算出手段32には、図2に示すように、外部から基準無音長が入力されるとともに、音声入力手段10から残音声データの長さが入力される。そして、残コンテンツ時間算出手段32は、以下の式(4)に示すように、残音声データの長さ(話速変換前の音声データの長さの総和)に、予め定められた無音の長さである基準無音長の総和を加算することで残コンテンツ時間を算出し、図2に示すように、当該残コンテンツ時間を伸縮率算出手段33に対して出力する。
残コンテンツ時間=残音声データの長さ+基準無音長の総和 ・・・式(4)
伸縮率算出手段33は、音声データの話速変換を行う際の伸縮率を算出するものである。伸縮率算出手段33には、図2に示すように、残放送時間算出手段31から残放送時間が入力され、残コンテンツ時間算出手段32から残コンテンツ時間が入力される。そして、伸縮率算出手段33は、以下の式(5)に示すように、残放送時間と残コンテンツ時間との比を伸縮率として算出し、図2に示すように、当該伸縮率を目標時間長算出手段41および話速変換手段43に対して出力する。
伸縮率=残放送時間/残コンテンツ時間 ・・・式(5)
話速変換無音接続手段40は、音声データの話速変換を行うとともに、話速変換後の音声データに無音を接続するものである。話速変換無音接続手段40は、ここでは図1に示すように、目標時間長算出手段41と、時間長差分算出手段42と、話速変換手段43と、無音接続手段44と、を備えている。
目標時間長算出手段41は、個々の音声データの話速変換後の目標時間長を算出するものである。目標時間長算出手段41には、図1に示すように、音声入力手段10から残音声データの長さが入力され、伸縮率決定手段30内の伸縮率算出手段33(図2参照)から伸縮率が入力される。そして、目標時間長算出手段41は、以下の式(6)に示すように、話速変換前の音声データの長さに予め定められた無音の長さである基準無音長を加算し、当該加算した値に伸縮率を乗算することで、個々の音声データの目標時間長を算出し、図1に示すように、当該目標時間長を時間長差分算出手段42に対して出力する。なお、目標時間長算出手段41は、個々の音声データごとに目標時間長を算出するため、例えば音声データの数が4つの場合は目標時間長も4つ分算出する。
目標時間長=(話速変換前の音声データの長さ+基準無音長)×伸縮率 ・・・式(6)
時間長差分算出手段42は、目標時間長と話速変換後の音声データの長さの差分を算出するものである。時間長差分算出手段42には、図1に示すように、目標時間長算出手段41から目標時間長が入力され、話速変換手段43から話速変換後の音声データの長さが入力される。そして、時間長差分算出手段42は、以下の式(7)に示すように、目標時間長から話速変換後の音声データの長さを減算することで、両者の差分である時間長差分を算出し、図1に示すように、当該時間長差分を無音接続手段44に対して出力する。なお、前記した「話速変換後の音声データ」とは、話速変換手段43によって話速変換された、また無音が接続されていない音声データのことを示している。
時間長差分=目標時間長−話速変換後の音声データの長さ ・・・式(7)
話速変換手段43は、音声データの話速変換を行うものである。話速変換手段43には、図1に示すように、音声入力手段10から1回の話速変換に必要な分の音声データが入力され、伸縮率決定手段30内の伸縮率算出手段33(図2参照)から伸縮率が入力される。そして、話速変換手段43は、例えば音声データのパワー、零交差数、自己相関関数を用いて音声区間を検出するとともに、音声区間についてピッチ周期の抽出を行い、そのピッチ周期と伸縮率とによって規定される時間長に基づいて、音声波形の間引き/繰り返しを行い、音声波形同士を適切な時間長で重ね合わせて接続することで、話速変換を行う。なお、このような話速変換手法については、公知の技術を用いることができる(例えば、特許第3327936号、特許第2955247号)。
話速変換手段43は、例えば図3(a)に示すように、音声データの入力波形を分析して基本周期(例えば5〜10ミリ秒)を抽出する。そして、話速変換手段43は、図3(a)に示すように、基本周期分の音声波形を間引くことで音声データを短縮して話速を速め、基本周期分の音声波形を繰り返すことで音声データを伸長して話速を遅くする。なお、図3(a)では、(3)の音声波形と(8)の音声波形とを間引くあるいは繰り返して話速変換を行っているが、これは一例を示したものである。
ここで、話速を変換する方法としては、例えばテープの遅回しのような方法もあるが、この場合は図3(b)に示すように、音声波形の基本周期の数は変えずに、当該基本周期自体を長くするため、話速変換後の音声が低くなってしまう。一方、話速変換手段43における話速変換は、図3(a)に示すように、音声波形の基本周期を変えずに、当該基本周期を間引く、あるいは繰り返すことで基本周期の数を変化させるため、話速変換後の音声の高さは変化しないという利点がある。
話速変換手段43は、以上のような処理によって音声データの話速変換を行い、図1に示すように、話速変換後の音声データを無音接続手段44に対して出力するとともに、話速変換後の音声データの長さを時間長差分算出手段42に対して出力する。
無音接続手段44は、話速変換後の音声データに無音を接続するものである。無音接続手段44には、図1に示すように、時間長差分算出手段42から時間長差分が入力され、話速変換手段43から話速変換後の音声データが入力される。そして、無音接続手段44は、時間長差分に相当する長さの無音を話速変換後の音声データに接続して無音付音声データを生成し、図1に示すように、当該無音付音声データを音声バッファリング手段50に対して出力する。
音声バッファリング手段50は、無音付音声を一時的に保存するものである。音声バッファリング手段50は、図1に示すように、無音接続手段44から入力された無音付音声データを保存し、音声再生手段60の要求に応じて、これらを順次出力する。また、音声バッファリング手段50は、図1に示すように、当該音声バッファリング手段50内に保存されている無音付音声データの長さを伸縮率決定手段30内の残放送時間算出手段31(図2参照)に対して出力する。ここで、音声バッファリング手段50は、具体的にはデータを記憶することができるハードディスクまたはフラッシュメモリなどで構成される。
音声再生手段60は、無音付音声データを再生するものである。音声再生手段60は、図1に示すように、音声バッファリング手段50内に保存されている無音付音声データを古いものから順番に必要な個数だけ取り出し、スピーカなどの図示しない音声デバイスに対して出力して再生する。
(話速変換・無音接続処理の具体例)
以下、本発明における話速変換・無音接続処理の具体例について、図4(適宜図1および図2を参照)を参照しながら説明する。以下では、図4(a)に示すように、20秒の音声データAと、2秒の音声データBとにそれぞれ1秒の無音を接続し、話速変換によってこれらを指定時間長「11秒」に収める場合を考える。また、以下では、1回の処理で音声データを1つずつ話速変換する例について説明する。そして、以下の説明では、音声データの伸縮率について、小数点以下4桁以降を切り上げて表記するが、実際には小数点以下を切り上げずに計算を行っているため、値を代入した式と当該式によって算出された値とが対応していない場合がある。
まず、音声再生装置1は、音声データAの処理を行う。この場合、残放送時間算出手段31は、前記した式(3)によって残放送時間「11−0=11秒」を算出する。また、残コンテンツ時間算出手段32は、前記した式(4)によって残コンテンツ時間「20+2+1+1=24秒」を算出する。そして、伸縮率算出手段33は、前記した式(5)によって音声データAの伸縮率「11/24≒0.458」を算出する。
次に、目標時間長算出手段41は、前記した式(6)によって音声データAの目標時間長「(20+1)×0.458=9.625秒」を算出する。そして、話速変換手段43は、図4(a)、(b)に示すように、音声データAの話速変換を行う。ここで、音声データAの話速変換を行った場合、当該話速変換後の音声データAの長さが、話速変換前の音声データAの長さに伸縮率を乗算した長さ「20×0.458=9.167秒」となることが理想的であるが、ここでは図4(b)に示すように、話速変換時の誤差により、話速変換後の音声データAの長さが「9.1秒」となり、前記した理想的な長さよりも0.067秒短くなったものとする。なお、実際の話速変換処理においても、話速変換前の音声データの長さに伸縮率を乗算した長さよりも、話速変換後の音声データのほうが基本周期の単位分だけ短くなることがあるため、ここでは実態に即して説明する。
次に、時間長差分算出手段42は、前記した式(7)によって音声データAの時間長差分「9.625−9.1=0.525秒」を算出する。次に、無音接続手段44は、図4(b)に示すように、話速変換後の音声データAに対して0.525秒の無音を接続する。
次に、音声再生装置1は、音声データBの処理を行う。この場合、残放送時間算出手段31は、前記した式(3)によって残放送時間「11−(9.1+0.525)=1.375秒」を算出する。また、残コンテンツ時間算出手段32は、前記した式(4)によって残コンテンツ時間「2+1=3秒」を算出する。そして、伸縮率算出手段33は、前記した式(5)によって音声データBの伸縮率「1.375/3≒0.458」を算出する。
次に、目標時間長算出手段41は、前記した式(6)によって音声データBの目標時間長「(2+1)×0.458=1.375秒」を算出する。そして、話速変換手段43は、図4(a)、(c)に示すように、音声データBの話速変換を行う。ここで、音声データBの話速変換を行った場合、当該話速変換後の音声データBの長さが、話速変換前の音声データBの長さに伸縮率を乗算した長さ「2×0.458=0.917秒」となることが理想的であるが、ここでは図4(c)に示すように、話速変換時の誤差により、話速変換後の音声データBの長さが「0.9秒」となり、前記した理想的な長さよりも0.017秒短くなったものとする。
次に、時間長差分算出手段42は、前記した式(7)によって音声データBの時間長差分「1.375−0.9=0.475秒」を算出する。次に、無音接続手段44は、図4(b)に示すように、話速変換後の音声データBに対して0.475秒の無音を接続し、無音付音声データを生成する。
ここで、前記した特許文献1で提案された技術では、図13に示すように、音声データの長さに応じて無音の長さが変動し、短い音声データBにほとんど無音が含まれない場合がある。一方、本発明は、図4の例からも分かるように、短い音声データBにも十分な間が含まれる結果となる。
なお、音声再生装置1は、前記したように、伸縮率算出手段33によって複数の音声データのうち、予め定められた数の音声データごとに伸縮率を算出し、話速変換手段43によって複数の音声データのうち、予め定められた数の音声データごとに前記した伸縮率に従って話速変換を行う。従って、音声再生装置1によれば、音声の再生前に全ての音声データの話速変換を行うのではなく、音声の再生中にその都度伸縮率や無音の長さを調整しながら一部ずつ話速変換を行うため、再生時に何らかの不具合が生じたり、もしくは終了時間の変更が行われて指定時間長が変動した場合であっても、音声データを指定時間長ちょうどに収めて再生することができる。
以上のような構成を備える音声再生装置1によれば、目標時間算出手段41によって、話速変換前の音声データの長さのみならず、当該音声データに接続される無音の長さも考慮して話速変換後の目標時間長を算出するため、当該目標時間長内に無音を割り当てるための時間を確保することができる。そのため、音声再生装置1は、無音接続手段44によって話速変換後の音声データに無音を接続する際に、当該無音の長さが極端に短くなることがない。また、音声再生装置1は、無音接続手段44によって、予め算出した目標時間長から話速変換後の実際の音声データの長さを差し引いた無音を、話速変換後の音声データに接続するため、例えば話速変換の際に音声の基本周期の単位で誤差が生じた場合であっても、無音によってその誤差を吸収することができる。
従って、音声再生装置1によれば、話速変換後の音声データに接続される無音が極端に短くなることがないため、音声データの構成によらず、聞き取りやすい話速と自然な音声の間を実現することができる。また、音声再生装置1によれば、話速変換の際に発生した誤差を無音によって吸収することができるため、複数の音声データを例えば一番組分の指定時間長ちょうどに収めて再生することができる。
[音声再生装置の処理手順]
第1実施形態に係る音声再生装置1の処理手順について、図5を参照(適宜図1および図2を参照)しながら説明する。
音声再生装置1は、まず音声入力手段10によって、外部から入力される音声データ再生リストに従って、音声データ記憶手段20に記憶されている音声データを必要なだけ読み込む(ステップS1)。次に、音声再生装置1は、伸縮率算出手段33によって、前記した式(5)を用いて音声データの伸縮率を算出する(ステップS2)。次に、音声再生装置1は、目標時間長算出手段41によって、前記した式(6)を用いて音声データの目標時間長を算出する(ステップS3)。次に、音声再生装置1は、話速変換手段43によって、音声データの話速変換を行う(ステップS4)。
次に、音声再生装置1は、時間長差分算出手段42によって、前記した式(7)を用いて時間長差分を算出する(ステップS5)。次に、音声再生装置1は、無音接続手段44によって、話速変換後の音声データに時間長差分に相当する長さの無音を接続する(ステップS6)。次に、音声再生装置1は、音声バッファリング手段50によって、無音付音声データを保存する(ステップS7)。そして、音声再生装置1は、音声再生手段60によって、音声デバイスを介して音声バッファリング手段50に保存されている無音付音声データを再生し(ステップS8)、処理を終了する。
<第2実施形態>
[音声再生装置の構成]
本発明の第2実施形態に係る音声再生装置1Aの構成について、図6〜図11を参照しながら説明する。ここで、音声再生装置1Aは、図6に示すように、伸縮率決定手段30の代わりに伸縮率決定手段30Aを備え、話速変換無音接続手段40の代わりに話速変換無音接続手段40Aを備え、図7の無音割当時間算出手段70および無音長算出手段80を新たに備えること以外は、前記した第1実施形態に係る音声再生装置1と同様の構成を備えている。従って、以下では前記した音声再生装置1と重複する構成については、適宜説明を省略する。
伸縮率決定手段30Aは、前記した伸縮率決定手段30と同様に、音声データの話速変換を行う際の伸縮率を決定するものであるが、伸縮率決定手段30とは具体的な構成が異なる。すなわち、伸縮率決定手段30Aは、図7に示すように、前記した伸縮率決定手段30を構成する残放送時間算出手段31、残コンテンツ時間算出手段32および伸縮率算出手段33に加えて、伸縮率判定手段34と、伸縮率置換手段35と、除外時間算出手段36と、を備えている。
伸縮率判定手段34は、伸縮率が1を超えるか否か、すなわち音声データを伸長させるのか短縮させるのかを判定するものである。ここで、伸縮率が1を超える場合は、音声データを伸長させて遅く再生する場合を、伸縮率が1未満である場合は、音声データを短縮させて速く再生する場合と、伸縮率が1である場合は、音声データを等速で再生する場合を示している。伸縮率判定手段34には、図7に示すように、伸縮率算出手段33から伸縮率が入力される。そして、伸縮率判定手段34は、伸縮率が1を超えるか否かを判定し、図7に示すように、当該判定結果を伸縮率置換手段35および除外時間算出手段36に対して出力する。
伸縮率置換手段35は、伸縮率の値を予め定められた最大伸縮率または最小伸縮率に置き換えるものである。伸縮率置換手段35には、図7に示すように、外部から最大伸縮率および最小伸縮率が入力され、伸縮率判定手段34から判定結果(伸縮率算出手段33によって算出された伸縮率の値を含む)が入力される。そして、伸縮率置換手段35は、伸縮率判定手段34から伸縮率が1を超えている旨の判定結果が入力され、かつ、当該伸縮率が最大伸縮率を超えている場合は、当該伸縮率を最大伸縮率に置き換え、図7に示すように、置き換えた伸縮率を話速変換手段43、目標時間長算出手段41Aおよび無音割当時間算出手段70に対して出力する。一方、伸縮率置換手段35は、伸縮率判定手段34から伸縮率が1未満である旨の判定結果が入力され、かつ、当該伸縮率が最小伸縮率未満である場合は、当該伸縮率を最小伸縮率に置き換え、図7に示すように、置き換えた伸縮率を話速変換手段43、目標時間長算出手段41Aおよび無音割当時間算出手段70に対して出力する。なお、伸縮率置換手段35は、伸縮率算出手段33によって算出された伸縮率が最大伸縮率以下および最小伸縮率以上である場合は、置換前の伸縮率(伸縮率算出手段33によって算出された伸縮率)を話速変換手段43、目標時間長算出手段41Aおよび無音割当時間算出手段70に対して出力する。
ここで、前記した「最大伸縮率」および「最小伸縮率」は、予め実験的および経験的に求めた値であり、例えば放送用途であれば、最大伸縮率は2までの値に設定され、最小伸縮率は0.65までの値に設定される。
除外時間算出手段36は、除外時間を算出するものである。ここで、除外時間とは、予め設定された指定時間長から、音声入力手段10に入力された複数の音声データの話速変換および無音の接続に最低限必要な時間長を差し引いた値のことを示している。除外時間算出手段36には、図7に示すように、外部から最小伸縮率および無音長最小値が入力され、音声入力手段10から残音声データの長さ(話速変換前の音声データの長さの総和)が入力され、残放送時間算出手段31から残放送時間が入力され、伸縮率判定手段34から判定結果が入力される。なお、前記した「無音長最小値」は、音声データに接続される最小の無音長のことを示しており、予め実験的および経験的に求められる。
そして、除外時間算出手段36は、伸縮率判定手段34から伸縮率が1未満である旨の判定結果が入力された場合、以下の式(8)に示すように、残音声データの長さに最小伸縮率を乗算し、当該乗算した値に、無音長最小値に対して話速変換後の音声データに接続される無音の数を乗じた値を加算し、当該加算した値から残放送時間を減算することで、除外時間を算出する。
除外時間=残音声データの長さ×最小伸縮率+無音長最小値×無音の数−残放送時間 ・・・式(8)
ここで、音声データ間に挿入される無音は、例えば文と文との間に挿入される「文間無音」と、フレーズとフレーズの間に挿入される「フレーズ間無音」とに区分することができる。除外時間算出手段36は、このような2種類の無音を考慮して除外時間を算出することも可能である。この場合、除外時間算出手段36には、無音長最小値の代わりに、外部から文間無音最小値およびフレーズ間無音最小値が入力される。なお、前記した「文間無音最小値」および「フレーズ間無音最小値」は、それぞれ音声データに接続される最小の文間無音長およびフレーズ間無音長のことを示しており、予め実験的および経験的に求められる。
そして、除外時間算出手段36は、伸縮率判定手段34から伸縮率が1未満である旨の判定結果が入力された場合、以下の式(9)に示すように、残音声データの長さに最小伸縮率を乗算し、当該乗算した値に、文間無音長最小値に対して話速変換後の音声データに接続される文間無音の数を乗じた値と、フレーズ間無音長最小値に対して話速変換後の音声データに接続されるフレーズ間無音の数を乗じた値とを加算し、当該加算した値から残放送時間を減算することで、除外時間を算出する。なお、前記した文間無音の数とフレーズ間無音の数は、話速変換前の音声データの種類によって定められ、ここでは音声入力手段10から残音声データの長さとともに入力される。
除外時間=残音声データの長さ×最小伸縮率+文間無音長最小値×文間無音の数+フレーズ間無音長最小値×フレーズ間無音の数−残放送時間 ・・・式(9)
除外時間算出手段36は、前記した式(8)または式(9)によって除外時間を算出した後、当該除外時間が正の値であるか負の値であるかを判定する。ここで、除外時間が正の値であるとは、予め定められた指定時間長よりも、音声入力手段10に入力された複数の音声データの話速変換および無音の接続に最低限必要な時間長のほうが長く、そのまま話速変換すると指定時間長に収まらないことを示している。一方、除外時間が負の値であるとは、予め定められた指定時間長よりも、音声入力手段10に入力された複数の音声データの話速変換および無音の接続に最低限必要な時間長のほうが短く、そのまま話速変換しても指定時間長に十分収まることを示している。このように、除外時間算出手段36は、話速変換手段43によって話速変換を行う前に、話速変換後かつ無音接続後の音声データが指定時間長に収まるか否かの判定を予め行っている。
そして、除外時間算出手段36は、算出した除外時間が負の値である場合、すなわち話速変換後かつ無音接続後の音声データが指定時間長に収まる場合は、図7に示すように、無音割当時間算出手段70に対して無音長割当時間算出指示を出力し、当該無音割当時間算出手段70に話速変換後の音声データに接続する無音割当時間を算出させる。
一方、除外時間算出手段36は、算出した除外時間が正の値である場合、すなわち話速変換後かつ無音接続後の音声データが指定時間長に収まりきらない場合は、音声入力手段10に対して再生リスト削除指示を出力し、当該音声入力手段10の図示しないメモリ上に蓄えられた話速変換前の複数の音声データのうち、前記した音声データ再生リストの最後に記載された音声データを削除させる。すなわち、除外時間算出手段36は、指定時間長が複数の音声データの話速変換および無音の接続に最低限必要な時間長よりも短い場合は、音声入力手段10に入力さえた複数の音声のうち、最後に再生される音声データを削除する。
そして、除外時間算出手段36は、前記した式(8)または式(9)によって除外時間を再計算する。これにより、最初に除外時間を算出した場合よりも音声データの数が少ない状態、すなわち前記した式(8)または式(9)における「残音声データの長さ(話速変換前の音声データの長さの総和)」が短い状態で除外時間を再計算することになるため、当該除外時間の値が変化することになる(具体的には値が小さくなる)。
除外時間算出手段36は、除外時間が負の値となるまで音声入力手段10内の音声データを音声データ再生リストの下から順番に1つずつ削除しながら、前記した式(8)または式(9)により除外時間の算出処理を繰り返す。そして、除外時間算出手段36は、除外時間が負の値となった場合、除外時間の算出処理を終了し、図7に示すように、無音割当時間算出手段70に対して無音長割当時間算出指示を出力する。
なお、除外時間算出手段36によって音声入力手段10内の音声データを削除していく場合、残音声データの長さ(話速変換前の音声データの長さの総和)がどんどん短くなる。従って、除外時間算出手段36は、算出した除外時間が正の値である場合、音声入力手段10に対して再生リスト削除指示を出力すると同時に、図7に示すように、伸縮率算出手段33に対しても伸縮率再計算指示を出力する。これにより、伸縮率算出手段33は、最初に伸縮率を算出した場合よりも音声データの数が少ない状態、すなわち前記した式(3)〜式(5)における「残音声データの長さ」が短い状態で伸縮率を再計算することになるため、当該伸縮率の値が変化することになる(具体的には値が大きくなる)。そして、伸縮率算出手段33は、図7に示すように、算出した伸縮率を伸縮率判定手段34に対して再度出力する。以上のような処理を行うことで、音声再生装置1Aは、残音声データの長さが短くなった場合であっても伸縮率を再計算して調整することができる。
また、本発明を実際の放送番組の音声を再生するために利用した場合において、前記した除外時間算出手段36における処理によって音声データ再生リストの最後に記載された音声データを削除すると、放送番組の最後の音声が再生されないことになるため、この場合は、例えばテレビ画面上にお詫びコメントなどを表示したり、ラジオの場合にはお詫びコメントを最後に挿入したりすることで、音声の不足を視聴者に通知する処理を行う。
無音割当時間算出手段70は、指定時間長において無音を割り当てる時間を算出するものである。無音割当時間算出手段70には、図7に示すように、音声入力手段10から残音声データの長さが入力され、残放送時間算出手段31から残放送時間が入力され、伸縮率置換手段35から伸縮率が入力され、除外時間算出手段36から無音長割当時間算出指示が入力される。なお、伸縮率置換手段35から入力される伸縮率は、伸縮率算出手段33によって算出された伸縮率が最大伸縮率以下および最小伸縮率以上である場合は、置換前の伸縮率(伸縮率算出手段33によって算出された伸縮率)となり、伸縮率算出手段33によって算出された伸縮率が最大伸縮率を超える場合は最大伸縮率に置換後の伸縮率となり、伸縮率算出手段33によって算出された伸縮率が最小伸縮率未満である場合は最小伸縮率に置換後の伸縮率となる。
そして、無音割当時間算出手段70は、以下の式(10)に示すように、残放送時間から、残音声データの長さ(話速変換前の音声データの長さの総和)に伸縮率(あるいは最大伸縮率、最小伸縮率)を乗算した値を減算することで、無音割当時間を算出し、図7に示すように、当該無音割当時間を無音長算出手段80に対して出力する。
無音割当時間=残放送時間−残音声データの長さ×伸縮率 ・・・式(10)
無音長算出手段80は、話速変換後の音声データに接続する個々の無音の長さを算出するものである。無音長算出手段80には、外部から無音長最大値および無音長最小値が入力され、無音割当時間算出手段70から無音割当時間が入力される。そして、無音長算出手段80は、話速変換後の音声データに接続される無音の長さがそれぞれ同じである場合は、以下の式(11)に示すように、無音割当時間を話速変換後の音声データに接続される無音の数で除算することで、個々の無音の長さを算出し、図7に示すように、当該無音の長さを目標時間長算出手段41Aに対して出力する。
無音の長さ=無音割当時間/無音の数 ・・・式(11)
なお、無音長算出手段80は、前記した式(11)によって算出した無音の長さが前記した無音長最大値を超える場合、算出した無音の長さの代わりに無音長最大値を目標時間長算出手段41Aに対して出力する。一方、無音長算出手段80は、前記した式(11)によって算出した無音の長さが前記した無音長最小値未満である場合、算出した無音の長さの代わりに無音長最小値を目標時間長算出手段41Aに対して出力する。このような処理により、音声再生装置1Aは、音声データに対して不自然に長い無音や不自然に短い無音が接続されることを防止することができる。
ここで、音声データ間に挿入される無音は、「文間無音」と「フレーズ間無音」とに区分することができる。無音長算出手段80は、このような2種類の無音を考慮して文間無音の長さとフレーズ間無音の長さとを算出することも可能である。この場合、無音長算出手段80には、無音長最大値および無音長最小値の代わりに、外部からフレーズ間無音最大値、フレーズ間無音最小値、文間基準無音長およびフレーズ間基準無音長が入力される。なお、前記した「文間基準無音長」および「フレーズ間基準無音長」は、無音接続前における基準となる文間無音およびフレーズ間無音の長さのことを示している。
そして、無音長算出手段80は、以下の式(12)に示すように、無音割当時間に、フレーズ間基準無音長の総和に文間基準無音長の総和を加算した値を乗算し、当該乗算した値をフレーズ間基準無音長の総和で除算することで、フレーズ間無音割当時間を算出する。また、無音長算出手段80は、以下の式(13)に示すように、フレーズ間無音割当時間を話速変換後の音声データに接続されるフレーズ間無音の数で除算することで、個々のフレーズ間無音の長さを算出し、当該フレーズ間無音の長さを目標時間長算出手段41Aに対して出力する。
フレーズ間無音割当時間=無音割当時間/(フレーズ間基準無音長の総和+文間基準無音長の総和)×フレーズ間基準無音長の総和 ・・・式(12)
フレーズ間無音の長さ=フレーズ間無音割当時間/フレーズ間無音の数 ・・・式(13)
さらに、無音長算出手段80は、以下の式(14)に示すように、無音割当時間から、前記した式(13)で算出したフレーズ間無音長に話速変換後の音声データに接続されるフレーズ間無音の数を乗算した値を減算することで、文間無音割当時間を算出する。また、無音長算出手段80は、以下の式(15)に示すように、文間無音割当時間を話速変換後の音声データに接続される文間無音の数で除算することで、個々の文間無音の長さを算出し、当該文間無音の長さを目標時間長算出手段41Aに対して出力する。
文間無音割当時間=無音割当時間−フレーズ間無音長×フレーズ間無音の数 ・・・式(14)
文間無音の長さ=文間無音割当時間/文間無音の数 ・・・式(15)
このように、無音長算出手段80は、話速変換後の音声データに接続される無音の長さが接続される位置によって異なる場合は、無音の長さの総和に対するそれぞれの無音の長さの比に応じて無音割当時間を案分することで、個々の無音(フレーズ間無音および文間無音)の長さを算出することができる。
目標時間長算出手段41Aは、前記した目標時間長算出手段41と同様に、個々の音声データの話速変換後の目標時間長を算出するものであるが、目標時間長算出手段41とは具体的な処理内容が異なる。すなわち、目標時間長算出手段41Aには、図6に示すように、音声入力手段10から残音声データの長さが入力され、伸縮率決定手段30A内の伸縮率置換手段35(図7参照)から伸縮率が入力され、無音長算出手段80から無音の長さが入力される。なお、伸縮率決定手段30A内の伸縮率置換手段35(図7参照)から入力される伸縮率は、伸縮率算出手段33によって算出された伸縮率が最大伸縮率以下および最小伸縮率以上である場合は、置換前の伸縮率(伸縮率算出手段33によって算出された伸縮率)となり、伸縮率算出手段33によって算出された伸縮率が最大伸縮率を超える場合は置換後の伸縮率(伸縮率置換手段35によって置き換えられた最大伸縮率)となり、伸縮率算出手段33によって算出された伸縮率が最小伸縮率未満である場合は置換後の伸縮率(伸縮率置換手段35によって置き換えられた最小伸縮率)となる。
そして、目標時間長算出手段41Aは、以下の式(16)に示すように、話速変換前の音声データの長さに伸縮率を乗算し、当該乗算した値に無音長算出手段80によって算出された無音の長さを加算することで、個々の音声データの目標時間長を算出し、図6に示すように、当該目標時間長を時間長差分算出手段42に対して出力する。なお、目標時間長算出手段41Aは、個々の音声データごとに目標時間長を算出するため、例えば音声データの数が4つの場合は目標時間長も4つ分算出する。
目標時間長=(話速変換前の音声データの長さ×伸縮率)+無音長算出手段によって算出された無音の長さ ・・・式(16)
なお、前記したように、無音の長さを「文間無音」と「フレーズ間無音」とに区分する場合は、目標時間長算出手段41Aは、以下の式(17)および式(18)によって、文間無音が接続される音声データの目標時間長と、フレーズ間無音が接続される音声データの目標時間長とをそれぞれ算出し、図6に示すように、これらの目標時間長を時間長差分算出手段42に対して出力する。
目標時間長(文間無音)=(話速変換前の音声データの長さ×伸縮率)+無音長算出手段によって算出された文間無音の長さ ・・・式(17)
目標時間長(フレーズ間無音)=(話速変換前の音声データの長さ×伸縮率)+無音長算出手段によって算出されたフレーズ間無音の長さ ・・・式(18)
音声再生装置1Aは、以上のような処理によって目標時間長を算出した上で、前記した音声再生装置1と同様に、話速変換手段43によって話速変換を行い、時間長差分算出手段42によって前記した式(7)を用いて時間長差分を算出し、無音接続手段44によって無音を接続して無音付音声データを生成する。そして、音声再生装置1Aは、音声バッファリング手段50によって無音付音声データを保存し、音声再生手段60によって、音声デバイスを介して音声バッファリング手段50に保存されている無音付音声データを再生する。
(話速変換・無音接続処理の具体例)
以下、本発明における話速変換・無音接続処理の具体例について、図8〜図11(適宜図6および図7を参照)を参照しながら説明する。ここでは、図8〜図11に示すように、4つの音声データを伸長する場合と短縮する場合とに分けてそれぞれ説明することとする。そして、以下の説明では、音声データの伸縮率について、小数点以下4桁以降を切り上げて表記するが、実際には小数点以下を切り上げずに計算を行っているため、値を代入した式と当該式によって算出された値とが対応していない場合がある。
(1)音声データを伸長する場合
以下では、例えば図8(a)に示すように、音声データA,B,C,Dがそれぞれフレーズを構成し、音声データA,Bと音声データC,Dとがそれぞれ文を構成する場合において、2.5秒の音声データA,Cにそれぞれ0.3秒のフレーズ間無音を接続するとともに、2.5秒の音声データB,Dにそれぞれ0.7秒の文間無音を接続し、話速変換によってこれらを指定時間長「20秒」に収める場合を考える。また、以下では、音声入力手段10に入力された4つの音声データA,B,C,Dを2つずつ話速変換するとともに、予め定められた最大伸縮率が1.5である場合について説明する。
まず、音声再生装置1Aは、音声データA,Bの処理を行う。この場合、残放送時間算出手段31は、前記した式(3)によって残放送時間「20−0=20秒」を算出する。また、残コンテンツ時間算出手段32は、前記した式(4)によって残コンテンツ時間「2.5+2.5+2.5+2.5+0.3+0.3+0.7+0.7=12秒」を算出する。そして、伸縮率算出手段33は、前記した式(5)によって音声データA,Bの伸縮率「20/12≒1.667」を算出する。
次に、伸縮率判定手段34は、「1.667>1」であるため、伸縮率が1を超える旨を判定する。次に、伸縮率置換手段35は、「1.667>1.5」であるため、伸縮率「1.667」を最大伸縮率「1.5」に置き換える。次に、無音割当時間算出手段70は、図8(b)に示すように、前記した式(10)によって無音割当時間「20−10×1.5=5秒」を算出する。なお、図8(b)に示すように、指定時間長から無音割当時間を除いたものが話速変換後の音声データを割り当てる時間を示す音声データ割当時間となる。次に、無音長算出手段80は、前記した式(12)および式(13)によって、フレーズ間無音割当時間「5/(0.6+1.4)×0.6=1.5秒」と、フレーズ間無音長「1.5/2=0.75秒」とを算出し、前記した式(14)および式(15)によって、文間無音割当時間「5−0.75×2=3.5秒」と、文間無音長「3.5/2=1.75秒」とを算出する。
次に、目標時間長算出手段41Aは、前記した式(18)によって、音声データAおよび当該音声データAに接続されるフレーズ間無音の目標時間長「(2.5×1.5)+0.75=4.5秒」を算出し、前記した式(17)によって、音声データBおよび当該音声データBに接続される文間無音の目標時間長「(2.5×1.5)+1.75=5.5秒」を算出する。そして、話速変換手段43は、図9(a)、(b)に示すように、音声データA,Bの話速変換を行う。ここで、音声データA,Bの話速変換を行った場合、当該話速変換後の音声データA,Bの長さが、話速変換前の音声データA,Bの長さに伸縮率を乗算した長さ「2.5×1.5=3.75秒」となることが理想的であるが、ここでは図9(b)に示すように、話速変換時の誤差により、話速変換後の音声データA,Bの長さが「3.7秒」となり、前記した理想的な長さよりも0.05秒短くなったものとする。
次に、時間長差分算出手段42は、前記した式(7)によって、音声データAの時間長差分「4.5−3.7=0.8秒」と、音声データBの時間長差分「5.5−3.7=1.8秒」とを算出する。次に、無音接続手段44は、図9(b)に示すように、話速変換後の音声データAに対して0.8秒の無音を接続し、話速変換後の音声データBに対して1.8秒の無音を接続する。
次に、音声再生装置1Aは、音声データC,Dの処理を行う。この場合、残放送時間算出手段31は、前記した式(3)によって残放送時間「20−(3.7+3.7+0.8+1.8)=10秒」を算出する。また、残コンテンツ時間算出手段32は、前記した式(4)によって残コンテンツ時間「2.5+2.5+0.3+0.7=6秒」を算出する。そして、伸縮率算出手段33は、前記した式(5)によって音声データC,Dの伸縮率「10/6≒1.667」を算出する。
次に、伸縮率判定手段34は、「1.667>1」であるため、伸縮率が1を超える旨を判定する。次に、伸縮率置換手段35は、「1.667>1.5」であるため、伸縮率「1.667」を最大伸縮率「1.5」に置き換える。次に、無音割当時間算出手段70は、前記した式(10)によって無音割当時間「10−5×1.5=2.5秒」を算出する。次に、無音長算出手段80は、前記した式(12)および式(13)によって、フレーズ間無音割当時間「2.5/(0.3+0.7)×0.3=0.75秒」と、フレーズ間無音長「0.75/1=0.75秒」とを算出し、前記した式(14)および式(15)によって、文間無音割当時間「2.5−0.75×1=1.75秒」と、文間無音長「1.75/1=1.75秒」とを算出する。
次に、目標時間長算出手段41Aは、前記した式(17)によって、音声データCおよび当該音声データCに接続されるフレーズ間無音の目標時間長「(2.5×1.5)+0.75=4.5秒」を算出し、前記した式(18)によって、音声データDおよび当該音声データDに接続される文間無音の目標時間長「(2.5×1.5)+1.75=5.5秒」を算出する。そして、話速変換手段43は、図9(a)、(c)に示すように、音声データC,Dの話速変換を行う。ここで、音声データC,Dの話速変換を行った場合、当該話速変換後の音声データC,Dの長さが、話速変換前の音声データC,Dの長さに伸縮率を乗算した長さ「2.5×1.5=3.75秒」となることが理想的であるが、ここでは図9(c)に示すように、話速変換時の誤差により、話速変換後の音声データC,Dの長さが「3.7秒」となり、前記した理想的な長さよりも0.05秒短くなったものとする。
次に、時間長差分算出手段42は、前記した式(7)によって、音声データCの時間長差分「4.5−3.7=0.8秒」と、音声データDの時間長差分「5.5−3.7=1.8秒」とを算出する。次に、無音接続手段44は、図9(c)に示すように、話速変換後の音声データCに対して0.8秒の無音を接続し、話速変換後の音声データDに対して1.8秒の無音を接続する。
ここで、前記した特許文献1で提案された技術では、伸縮率の最大値を設けていないため、音声データの長さが伸長されて不自然な音声が再生される場合がある。一方、本発明は、図9の例からも分かるように、音声データの伸長を一定範囲内に制限することができるため、自然な音声を再生することができる。
(2)音声データを短縮する場合
以下では、例えば図10(a)に示すように、音声データA,B,C,Dがそれぞれフレーズを構成し、音声データA,Bと音声データC,Dとがそれぞれ文を構成する場合において、2.5秒の音声データA,Cにそれぞれ0.3秒のフレーズ間無音を接続するとともに、2.5秒の音声データB,Dにそれぞれ0.7秒の文間無音を接続し、話速変換によってこれらを指定時間長「6秒」に収める場合を考える。また、以下では、音声入力手段10に入力された4つの音声データA,B,C,Dを2つずつ話速変換するとともに、予め定められた最小伸縮率が0.65であり、文間無音長最小値が0.2であり、フレーズ間無音長最小値が0.1である場合について説明する。
まず、音声再生装置1Aは、音声データA,Bの処理を行う。この場合、残放送時間算出手段31は、前記した式(3)によって残放送時間「6−0=6秒」を算出する。また、残コンテンツ時間算出手段32は、前記した式(4)によって残コンテンツ時間「2.5+2.5+2.5+2.5+0.3+0.3+0.7+0.7=12秒」を算出する。そして、伸縮率算出手段33は、前記した式(5)によって音声データA,Bの伸縮率「6/12=0.5」を算出する。
次に、伸縮率判定手段34は、「0.5<1」であるため、伸縮率が1未満である旨を判定する。次に、伸縮率置換手段35は、「0.5<0.65」であるため、伸縮率「0.5」を最小伸縮率「0.65」に置き換える。次に、除外時間算出手段36は、図10(b)に示すように、前記した式(9)によって除外時間「(10×0.65+0.2×2+0.1×2)−6=1.1秒」を算出する。
次に、除外時間算出手段36は、算出された除外時間が正の値であるため、音声入力手段10の図示しないメモリ上に蓄えられた話速変換前の複数の音声データのうち、前記した音声データ再生リストの最後に記載された音声データを削除し、図10(c)に示すように、前記した式(9)によって再度除外時間「(7.5×0.65+0.2×1+0.1×2)−6=−0.725秒」を算出する。次に、除外時間算出手段36は、算出された除外時間が負の値であるため、無音割当時間算出手段70に対して無音長割当時間算出指示を出力する。そして、伸縮率算出手段33は、前記した式(5)によって音声データA,Bの伸縮率「6/8.8≒0.682」を算出する。
次に、無音割当時間算出手段70は、図10(d)に示すように、前記した式(10)によって無音割当時間「6−7.5×0.682=0.885秒」を算出する。次に、無音長算出手段80は、前記した式(12)および式(13)によって、フレーズ間無音割当時間「0.885/(0.6+0.7)×0.6=0.408秒」と、フレーズ間無音長「0.408/2=0.204秒」とを算出し、前記した式(14)および式(15)によって、文間無音割当時間「0.885−0.204×2=0.477」と、文間無音長「0.477/1=0.477秒」とを算出する。
次に、目標時間長算出手段41Aは、前記した式(18)によって、音声データAおよび当該音声データAに接続されるフレーズ間無音の目標時間長「(2.5×0.682)+0.204=1.909秒」を算出し、前記した式(17)によって、音声データBおよび当該音声データBに接続される文間無音の目標時間長「(2.5×0.682)+0.477=2.182秒」を算出する。そして、話速変換手段43は、図11(a)、(b)に示すように、音声データA,Bの話速変換を行う。ここで、音声データA,Bの話速変換を行った場合、当該話速変換後の音声データA,Bの長さが、話速変換前の音声データA,Bの長さに伸縮率を乗算した長さ「2.5×0.682=1.705秒」となることが理想的であるが、ここでは図9(b)に示すように、話速変換時の誤差により、話速変換後の音声データA,Bの長さが「1.7秒」となり、前記した理想的な長さよりも0.005秒短くなったものとする。
次に、時間長差分算出手段42は、前記した式(7)によって、音声データAの時間長差分「1.909−1.7=0.209秒」と、音声データBの時間長差分「2.182−1.7=0.482秒」とを算出する。次に、無音接続手段44は、図11(b)に示すように、話速変換後の音声データAに対して0.209秒の無音を接続し、話速変換後の音声データBに対して0.482秒の無音を接続する。
次に、音声再生装置1Aは、音声データCの処理を行う。この場合、残放送時間算出手段31は、前記した式(3)によって残放送時間「6−(1.7+1.7+0.209+0.482)=1.909秒」を算出する。また、残コンテンツ時間算出手段32は、前記した式(4)によって残コンテンツ時間「2.5+0.3=2.8秒」を算出する。そして、伸縮率算出手段33は、前記した式(5)によって音声データCの伸縮率「1.909/2.8=0.682」を算出する。
次に、伸縮率判定手段34は、「0.682<1」であるため、伸縮率が1未満である旨を判定する。次に、伸縮率置換手段35は、「0.682>0.65」であるため、伸縮率「0.682」を最小伸縮率「0.65」に置き換えずにそのままとする。次に、無音割当時間算出手段70は、前記した式(10)によって無音割当時間「1.909−2.5×0.682=0.204秒」を算出する。次に、無音長算出手段80は、前記した式(12)および式(13)によって、フレーズ間無音割当時間「0.204/0.3×0.3=0.204秒」と、フレーズ間無音長「0.204/1=0.204秒」とを算出する。
次に、目標時間長算出手段41Aは、前記した式(18)によって、音声データCおよび当該音声データCに接続されるフレーズ間無音の目標時間長「(2.5×0.682)+0.204=1.909秒」を算出する。そして、話速変換手段43は、図11(a)、(c)に示すように、音声データCの話速変換を行う。ここで、音声データC,Dの話速変換を行った場合、当該話速変換後の音声データC,Dの長さが、話速変換前の音声データC,Dの長さに伸縮率を乗算した長さ「2.5×0.682=1.705秒」となることが理想的であるが、ここでは図9(c)に示すように、話速変換時の誤差により、話速変換後の音声データC,Dの長さが「1.7秒」となり、前記した理想的な長さよりも0.005秒短くなったものとする。
次に、時間長差分算出手段42は、前記した式(7)によって音声データCの時間長差分「1.909−1.7=0.209秒」を算出する。次に、無音接続手段44は、図11(c)に示すように、話速変換後の音声データCに対して0.209秒の無音を接続する。
ここで、前記した特許文献1で提案された技術では、音声データに接続される無音(間)に最小値を設ける旨も提案されているが、単に無音の長さを制限するだけでは音声データを指定時間長に収められない場合がある。一方、本発明は、図11の例からも分かるように、指定時間長よりも、音声入力手段10に入力された複数の音声データの話速変換および無音の接続に最低限必要な時間長のほうが長い場合は、音声データ自体を削除して時間を確保するため、必ず指定時間長に収めることが可能となる。
以上のような構成を備える音声再生装置1Aは、伸縮率置換手段35によって、音声データの話速変換を行う際の伸縮率を、予め実験的および経験的に求めた最大伸縮率以下または最小伸縮率以上とすることができる。また、音声再生装置1Aは、除外時間算出手段36によって、話速変換後の音声データおよび無音の長さが指定時間長を超えるか否かを予め算出することができる。
従って、音声再生装置1Aは、話速変換前の音声データおよび無音の長さよりも指定時間長のほうが長い場合において、音声データの長さが伸長されすぎて必要以上に遅い音声となることを防止するとともに、話速変換前の音声データおよび無音の長さよりも指定時間長のほうが短い場合において、音声データの長さが短縮されすぎて必要以上に速い音声となることを防止し、聞きやすい音声で自動放送を行うことができる。
[音声再生装置の処理手順]
第2実施形態に係る音声再生装置1Aの処理手順について、図12を参照(適宜図6および図7を参照)しながら説明する。
音声再生装置1Aは、まず音声入力手段10によって、外部から入力される音声データ再生リストに従って、音声データ記憶手段20に記憶されている音声データを必要なだけ読み込む(ステップS11)。次に、音声再生装置1Aは、伸縮率算出手段33によって、前記した式(5)を用いて音声データの伸縮率を算出する(ステップS12)。次に、音声再生装置1Aは、伸縮率判定手段34によって、伸縮率が1を超えるか否かを判定する(ステップS13)。
音声再生装置1Aは、伸縮率が1を超える場合(ステップS13においてYes)、伸縮率置換手段35によって、伸縮率が最大伸縮率を超えるか否かを判定する(ステップS14)。そして、音声再生装置1Aは、伸縮率が最大伸縮率以下である場合(ステップS14においてNo)、ステップS16に進む。一方、音声再生装置1Aは、伸縮率が最大伸縮率を超える場合(ステップS14においてYes)、伸縮率置換手段35によって、当該伸縮率を最大伸縮率に置き換え(ステップS15)、ステップS16に進む。
次に、音声再生装置1Aは、無音割当時間算出手段70によって、前記した式(10)(または式(12)および式(14))を用いて無音割当時間(またはフレーズ間無音割当時間および文間無音割当時間)を算出する(ステップS16)。次に、音声再生装置1Aは、無音長算出手段80によって、前記した式(11)(または式(13)および式(15))を用いて無音の長さ(またはフレーズ間無音の長さおよび文間無音の長さ)を算出する(ステップS17)。次に、音声再生装置1Aは、目標時間長算出手段41Aによって、前記した式(16)(または式(17)および式(18))を用いて音声データの目標時間長を算出する(ステップS18)。次に、音声再生装置1Aは、話速変換手段43によって、音声データの話速変換を行う(ステップS19)。
次に、音声再生装置1Aは、時間長差分算出手段42によって、前記した式(7)を用いて時間長差分を算出する(ステップS20)。次に、音声再生装置1Aは、無音接続手段44によって、話速変換後の音声データに時間長差分に相当する長さの無音を接続する(ステップS21)。次に、音声再生装置1Aは、音声バッファリング手段50によって、無音付音声データを保存する(ステップS22)。そして、音声再生装置1Aは、音声再生手段60によって、音声デバイスを介して音声バッファリング手段50に保存されている無音付音声データを再生し(ステップS23)、処理を終了する。
ここで、音声再生装置1Aは、前記したステップS13において、伸縮率が1未満である場合(ステップS13においてNo)、除外時間算出手段36によって、前記した式(8)(または式(9))を用いて除外時間を算出する(ステップS24)。次に、音声再生装置1Aは、除外時間算出手段36によって、除外時間が負の値であるか否かを判定する(ステップS25)。そして、音声再生装置1Aは、除外時間が負の値ではない場合(ステップS25においてNo)、除外時間算出手段36によって、音声入力手段10の図示しないメモリ上に蓄えられた話速変換前の複数の音声データのうち、音声データ再生リストの最後に記載された音声データを削除し(ステップS26)、ステップS12に戻る。
一方、音声再生装置1Aは、前記したステップS25において、除外時間が負の値である場合(ステップS25においてYes)、伸縮率置換手段35によって、伸縮率が最小伸縮率未満であるか否かを判定する(ステップS27)。そして、音声再生装置1Aは、伸縮率が最小伸縮率以上である場合(ステップS27においてNo)、ステップS16に進む。一方、音声再生装置1Aは、伸縮率が最小伸縮率未満である場合(ステップS27においてYes)、伸縮率置換手段35によって、当該伸縮率を最小伸縮率に置き換え(ステップS28)、ステップS16に進み、ステップS16〜ステップS23の処理を行う。
[音声再生プログラム]
ここで、前記した音声再生装置1,1Aは、一般的なコンピュータを、前記した各手段および各部として機能させるプログラムにより動作させることで実現することができる。このプログラムは、通信回線を介して配布することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。
以上、本発明に係る音声再生装置およびそのプログラムについて、発明を実施するための形態により具体的に説明したが、本発明の趣旨はこれらの記載に限定されるものではなく、特許請求の範囲の記載に基づいて広く解釈されなければならない。また、これらの記載に基づいて種々変更、改変等したものも本発明の趣旨に含まれることはいうまでもない。
例えば、前記した音声再生装置1Aは、最大伸縮率および最小伸縮率の両方を規定して話速変換を行う構成となっていたが、最大伸縮率または最小伸縮率の一方のみを規定して話速変換を行う構成であっても構わない。この場合、最大伸縮率のみを規定する場合は、伸縮率決定手段30Aにおける除外時間算出手段36が不要となり、伸縮率置換手段35には、外部から最大伸縮率のみが入力されることになる。また、最小伸縮率のみを規定する場合は、伸縮率決定手段30Aにおける伸縮率置換手段35には、外部から最小伸縮率のみが入力されることになる。