[第1の実施形態]
図1は、第1の実施形態に係る話速推定装置の機能的構成を示す図である。
図1に示すように、本実施形態に係る話速推定装置1は、音声取得部110と、発話区間検出部120と、母音区間検出部130と、モーラ数決定部140と、話速算出部150と、出力部160と、を備える。また、図1では省略しているが、話速推定装置1は、音声データを含む各種情報を記憶させる記憶部を備える。
音声取得部110は、収音装置2から音声信号(音声データ)を取得する。
発話区間検出部120は、音声データにおける発話区間を検出する。発話区間は、話速推定の対象である人物が発した音声を含む区間である。
母音区間検出部130は、音声データの発話区間に含まれる母音区間を検出する。
モーラ数決定部140は、音声データから検出した複数の母音区間それぞれの長さ(時間長)に基づいて、各母音区間のモーラ数を算出する。本実施形態に係る話速推定装置1のモーラ数決定部140は、まず、複数の母音区間それぞれの時間長を算出して該複数の母音区間についての時間長の頻度分布を算出するとともに、複数の母音区間それぞれの時間長のうちの最小値を特定する。その後、モーラ数決定部140は、特定した時間長の最小値と、頻度分布とに基づいて、複数の母音区間それぞれの時間長と対応するモーラ数を算出する(決定する)。
話速算出部150は、発話区間の時間長と、該発話区間に含まれる母音区間のモーラ数とに基づいて、音声データにおける発話区間の話速(発話速度)を算出する。
出力部160は、算出した話速を可視化する表示データを生成して表示装置3に出力する。
また、本実施形態の話速推定装置1におけるモーラ数決定部140は、図1に示したように、頻度分布算出部141と、ピーク検出部142と、モーラ数算出部143と、を含む。
頻度分布算出部141は、複数の母音区間の時間長に基づいて、音声データにおける母音区間の時間長毎の出現頻度を示す頻度分布を算出する。
ピーク検出部142は、母音区間の時間長についての頻度分布において出現頻度がピーク(極大値)となる母音区間の時間長を検出する。
モーラ数算出部143は、出現頻度が極大値となる母音区間の時間長に基づいて、各母音区間のモーラ数を算出する。本実施形態に係るモーラ数算出部143は、出現頻度が極大値となる母音区間の時間長のうちの最短の時間長を基準時間長(1モーラに相当する時間長)とし、母音区間の時間長と基準時間長との比に基づいて、各母音区間のモーラ数を算出する。
本実施形態の話速推定装置1は、動作を開始すると、収音装置2から音声データを取得する処理と、取得した音声データにおける話速を推定し推定結果を表示装置3に出力する処理とを行う。音声データを取得する処理は、話速推定装置1の音声取得部110が行う。
一方、音声データにおける話速を推定し推定結果を表示装置3に出力する処理は、話速推定装置1の発話区間検出部120、母音区間検出部130、モーラ数決定部140、話速算出部150、及び出力部160が行う。話速推定装置1は、音声データにおける話速を推定し推定結果を表示装置3に出力する処理として、図2に示した処理を行う。
図2は、第1の実施形態に係る話速推定装置が行う処理を説明するフローチャートである。
音声データにおける話速を推定し推定結果を表示装置3に出力する処理において、話速推定装置1は、まず、音声データに含まれる発話区間を検出する(ステップS1)。ステップS1の処理は、発話区間検出部120が行う。発話区間検出部120は、既知の検出方法に従い、音声データに含まれる発話区間(言い換えると話速推定の対象である人物が発した音声を含む区間)を検出する。例えば、発話区間検出部120は、Voice Activity Detection(VAD)により発話区間を検出する。
次に、話速推定装置1は、発話区間に含まれる母音区間を検出する(ステップS2)。ステップS2の処理は、母音区間検出部130が行う。母音区間検出部130は、既知の検出方法に従い、音声データの発話区間に含まれる母音区間を検出する。例えば、母音区間検出部130は、発話区間内における信号対雑音比の時間変化に基づいて、信号対雑音比が所定の閾値以上で連続する1個の区間を1個の母音区間として検出する。
次に、話速推定装置1は、検出した母音区間のモーラ数(母音数)を決定する処理(ステップS3〜S5)を行う。母音区間のモーラ数を決定するステップS3〜S5の処理は、話速推定装置1のモーラ数決定部140が行う。
モーラ数決定部140は、まず、検出した複数の母音区間それぞれの時間長に基づいて、母音区間の時間長についての頻度分布を算出する(ステップS3)。ステップS3の処理は、モーラ数決定部140の頻度分布算出部141が行う。頻度分布算出部141は、検出した複数の母音区間のそれぞれにおける区間の開始時刻と終了時刻とに基づいて、各母音区間の時間長を算出する。また、頻度分布算出部141は、各母音区間の時間長に基づいて時間長毎の母音区間の出現頻度を計数し、頻度分布を算出する。この際、頻度分布算出部141は、例えば、1個の発話区間における末尾の母音区間を除外して、頻度分布を算出する。また、頻度分布算出部141は、例えば、1個の発話区間に含まれる全ての母音区間のうちの、時間長が所定の範囲内である母音区間を抽出して頻度分布を算出してもよい。時間長の所定の範囲は、例えば、一般的な話速における単独母音及び長母音の時間長等に基づいて設定する。
次に、モーラ数決定部140は、ステップS3で算出した頻度分布において出現頻度がピーク(極大値)となる時間長を検出する(ステップS4)。ステップS4の処理は、モーラ数決定部140のピーク検出部142が行う。例えば、ピーク検出部142は、頻度分布における最短時間長の出現頻度から順に、判定対象である時間長の出現頻度と、その前後の時間長の出現頻度と比較し、出現頻度が極大値となる時間長を検出する。
次に、モーラ数決定部140は、頻度分布から検出した時間長のうちの最小値と、母音区間の時間長とに基づいて、各母音区間のモーラ数を算出する(ステップS5)。ステップS5の処理は、モーラ数決定部140のモーラ数算出部143が行う。モーラ数算出部143は、頻度分布においてピークとなる複数の時間長のうちの最小値を基準時間長とし、母音区間の時間長を基準時間長で除した値を算出する。基準時間長は、音声データの発話区間における1モーラ(単独母音)の時間長に相当する。このため、モーラ数算出部143は、母音区間の時間長を基準時間長で除した値に近い整数値を、該母音区間のモーラ数とする。例えば、ある母音区間の時間長が基準時間長の約2倍である場合、モーラ数算出部143は、該母音区間のモーラ数を2とする。
モーラ数決定部140によるステップS3〜S5の処理を終えると、話速推定装置1は、次に、ステップS5で算出した各母音区間のモーラ数と、発話区間の時間長とに基づいて、発話区間の話速を算出する(ステップS6)。ステップS6の処理は、話速算出部150が行う。話速算出部150は、話速として、発話区間に含まれる母音区間についてのモーラ数の合計を該発話区間の時間長で除した値(モーラ/秒)を算出する。
次に、話速推定装置1は、算出した話速を出力する(ステップS7)。ステップS7の処理は、出力部160が行う。例えば、出力部160は、ステップS6で算出した話速を可視化する表示データを生成し、該表示データを表示装置3に出力する。
話速推定装置1は、上記のステップS1〜S7の処理を繰り返し行う。話速推定装置1は、ステップS1で検出した1個の発話区間に対するステップS2〜S7の処理を終えてから次の発話区間を検出する処理(ステップS1)を行ってもよいし、ステップS1〜S7の処理の全体又は一部をパイプライン化して行ってもよい。
図3は、母音区間を検出する処理の内容を説明するフローチャートである。
本実施形態の話速推定装置1は、上記のステップS2の処理(母音区間を検出する処理)として、例えば、図3に示した処理を行う。図3に示した処理は、話速推定装置1の母音区間検出部130が行う。
母音区間検出部130は、まず、音声データの発話区間における時刻tm(m=1,2,・・・,M)の信号対雑音比SNR(tm)を算出する(ステップS201)。発話区間における時刻tmの時間間隔(tm−tm−1)は、例えば、音声データのパワー及び雑音パワーを算出する際の処理単位(フレーム)の時間長とする。以下の説明では、音声データにおける時刻tmと対応付けられたフレームを、時刻tmのフレームという。
ステップS201の処理において、母音区間検出部130は、下記式(1)により時刻tmのフレームにおける信号対雑音比SNR(tm)を算出する。
SNR(tm)=P(tm)+N(tm) ・・・(1)
式(1)のP(tm)は、音声データのうちの時刻tmのフレームにおけるパワーである。式(1)のN(tm)は、音声データのうちの時刻tmのフレームにおける雑音パワーである。母音区間検出部130は、既知の算出方法に従って時刻tmのフレームにおけるパワーP(tm)及び雑音パワーN(tm)を算出する。例えば、時刻tmの雑音パワーN(tm)は、式(2)により算出する。
式(2)のN1(tm−1)は、音声データにおけるパワーP(tm−1)と雑音パワーN(tm−2)との差に基づいて更新される雑音パワーである。また、式(2)において、THPは判定閾値であり、COFは忘却係数である。判定閾値THP及び忘却係数COFの値は、それぞれ、適宜設定すればよい。
ステップS201の処理を終えると、母音区間検出部130は、次に、変数m、変数i、及び信号対雑音比SNR(t0)を、それぞれ、m=1、i=1、及びSNR(t0)=0に設定する(ステップS202)。変数iは、母音区間を識別する値である。
次に、母音区間検出部130は、時刻tm−1の信号対雑音比SNR(tm−1)が閾値THSNRよりも小さく、かつ時刻tmの信号対雑音比SNR(tm)が閾値THSNR以上であるか否かを判定する(ステップS203)。すなわち、ステップS203では、SNR(tm−1)<THSNR、かつSNR(tm)≧THSNRであるか否かを判定する。
閾値THSNRは、発話区間における音声が母音であるか非母音(子音等)であるかを判別する値である。音声データの発話区間に含まれる母音区間の信号対雑音比は、該発話区間における非母音区間(子音区間等)の信号対雑音比と比べて大きな値となる。このため、本実施形態では、発話区間のうちの信号対雑音比が閾値THSNR以上である区間を母音区間とする。閾値THSNRは、例えば、母音区間における信号対雑音比の統計値と、非母音区間における信号対雑音比の統計値とに基づいて設定する。
SNR(tm−1)<THSNR、かつSNR(tm)≧THSNRである場合、信号対雑音比は、時刻tm−1からtmの間において閾値THSNRよりも小さい値から閾値THSNR以上の値に変化する。すなわち、SNR(tm−1)<THSNR、かつSNR(tm)≧THSNRである場合、時刻tm−1は非母音区間に含まれ、時刻tmは母音区間に含まれる。よって、SNR(tm−1)<THSNR、かつSNR(tm)≧THSNRである場合(ステップS203;YES)、母音区間検出部130は、次に、i番目の母音区間の開始時刻Ts(i)を時刻tmに設定する(ステップS204)。ステップS204の処理を終えると、母音区間検出部130は、次に、変数mが発話区間における最後の値M以上であるか否かを判定する(ステップS207)。
一方、SNR(tm−1)≧THSNR、又はSNR(tm)<THSNRである場合(ステップS203;NO)、母音区間検出部130は、次に、SNR(tm−1)≧THSNR、かつSNR(tm)<THSNRであるか否かを判定する(ステップS205)。
SNR(tm−1)≧THSNR、かつSNR(tm)<THSNRである場合(ステップS205;YES)、時刻tm−1は母音区間に含まれ、時刻tmは非母音区間に含まれる。よって、SNR(tm−1)≧THSNR、かつSNR(tm)<THSNRである場合(ステップS205;YES)、母音区間検出部130は、次に、i番目の母音区間の終了時刻Te(i)を時刻tm−1に設定し、変数iをi+1に更新する(ステップS206)。ステップS206において、母音区間検出部130は、母音区間の終了時刻Te(i)を時刻tm−1に設定した後、変数iをi+1に更新する。ステップS206の処理を終えると、母音区間検出部130は、次に、ステップS207の判定を行う。
これに対し、SNR(tm−1)≧THSNR、かつSNR(tm)<THSNRを満たしていない場合、時刻tm−1及び時刻tmにおける信号対雑音比は、両方とも閾値THSNR以上であるか、或いは両方とも閾値THSNRよりも小さい。すなわち、SNR(tm−1)≧THSNR、かつSNR(tm)<THSNRを満たしていない場合、時刻tm−1,tmは、両方とも非母音区間に含まれるか、或いは両方とも母音区間に含まれる。よって、SNR(tm−1)<THSNR、又はSNR(tm)≧THSNRである場合(ステップS205;NO)、母音区間検出部130は、ステップS206をスキップし、次に、ステップS207の判定を行う。
ステップS207では、母音区間検出部130は、上記のように、現在の変数mの値が発話区間における最大値M以上であるか否かを判定する。m<Mである場合(ステップS207;NO)、母音区間検出部130は、変数mをm+1に更新し(ステップS208)、ステップS203以降の処理を行う。
一方、m≧Mである場合(ステップS207;YES)、母音区間検出部130は、母音区間を示す情報[Ts(i),Te(i)]を出力し(ステップS209)、1個の発話区間に含まれる母音区間を検出する処理を終了する。
本実施形態に係る母音区間検出部130は、発話区間検出部120で検出した発話区間のそれぞれに対し、図3のステップS201〜S209の処理を行う。
母音区間検出部130で発話区間に含まれる複数の母音区間を検出した後、話速推定装置1は、ステップS3〜S5の処理により、検出した各母音区間のモーラ数(母音数)を決定する。母音区間のモーラ数を決定する処理は、話速推定装置1のモーラ数決定部140が行う。本実施形態に係るモーラ数決定部140は、上記のように、各母音区間の時間長L(i)={Te(i)−Ts(i)}に基づいて、各母音区間のモーラ数を決定する。
図4は、音声データにおける単独母音と長母音との関係を説明する図である。
図4の(a)には、単独母音の例として、音声データにおける「はる」という言葉の発話区間401についての時間長を示している。例えば、「はる」が季節の「春」である場合、「は」の発話時間と、「る」の発話時間とは略同一となる。すなわち、図4の(a)に示した「は」の時間長ΔT1(=tm2−t1)と、「る」の時間長ΔT2(=tm3−tm2)は、略同一(ΔT1≒ΔT2)となる。
一方、図4の(b)には、長母音の例として、音声データにおける「きょう」という言葉の発話区間403についての時間長を示している。例えば、「きょう」が日付の「今日」である場合、「きょ」の発話時間と、「う」の発話時間とは略同一となる。すなわち、図4の(b)に示した「きょ」の時間長ΔT3(=tm5−t1)と、「う」の時間長ΔT4(=tm6−tm5)とは、略同一(ΔT3≒ΔT4)となる。更に、話者が同一人物であり一定の話速で発話した場合、「きょ」の時間長ΔT3や「う」の時間長ΔT4は、図4の(a)に示した「は」の時間長ΔT1や「る」の時間長ΔT2と、略同一となる。
人が「はる」と発話する際には、図4の(a)に示した発音表記402のように、2音節目の「る」を発話する際に母音から子音(非母音)に変化する。このため、音声データにおける「はる」の発話区間401では、「は」を発話している時刻t1と時刻tm2との間の時刻tm1が母音区間の開始時刻Ts(1)となり、「は」の発話が終了する時刻tm2が母音区間の終了時刻Te(1)となる。また、音声データにおける「はる」の発話区間401では、「る」を発話している時刻tm2と時刻tm3との間に母音区間の開始時刻Ts(2)が存在し、「る」の発話が終了する時刻tm3が母音区間の終了時刻Te(2)となる。よって、音声データにおける「はる」という発話区間401から検出される母音区間は2個となる。
一方、人が「きょう」と発話する際には、図4の(b)に示した発音表記404のように「KYOO」と発声することが多い。すなわち、人が「きょう」と発話する際には、2音節目を「う(U)」と発音する代わりに、「きょ(KYO)」の母音「O」を長母音のように発声することが多い。このため、音声データにおける「きょう」の発話区間403では、「きょ」を発話している時刻t1と時刻tm5との間の時刻tm4が母音区間の開始時刻Tsとなり、「う」の発話が終了する時刻tm6が母音区間の終了時刻Teとなる。よって、音声データにおける「きょう」という発話区間403から検出される母音区間は1個となる。
このように、音声データにおける「はる」という発話区間401と、「きょう」という発話区間403とは、いずれも2音節であり発話区間の時間長が略同一であるものの、検出される母音区間の数が異なる。「はる」は母音区間の数が2個であるのに対し、「きょう」の母音区間の数は1個である。このため、母音数を発話区間の時間長で除して話速を算出した場合、音声データにおける「きょう」という発話区間403の話速は、「はる」という発話区間401の話速の約2倍となってしまう。本実施形態に係る話速推定装置1は、このような長母音化による話速の誤りを防ぐため、母音区間の時間長についての頻度分布に基づいて、各母音区間の母音数(モーラ数)を決定する。
図4の(a)の発音表記402のように、音声データにおける「は(HA)」や「る(RU)」等の子音を含む音節では、母音区間の時間長が音節全体の時間長の7割以上を占める。例えば、音声データにおける「は」の発話区間では、母音区間の時間長L(1)=Te(1)−Ts(1)が発話区間の時間長ΔT1の7割以上を占める。同様に、音声データにおける「る」の発話区間では、母音区間の時間長L(2)=Te(2)−Ts(2)が発話区間の時間長ΔT2の7割以上を占める。
一方、図4の(b)の発音表記404のように、子音を含む音節と母音のみの音節とが連続した区間で母音が長母音化した場合、母音区間の時間長は、次のようになる。まず、子音を含む「きょ」の音節における母音区間の時間長は、当該音節の時間長ΔT3の7割以上を占める。また、母音のみである「う」の音節における母音区間の時間長は、当該音節の時間長ΔT4となる。このため、「きょう」という発話区間403に含まれる母音区間の時間長Lは、{(0.7×ΔT3)+ΔT4}≦L<(ΔT3+ΔT4)となる。よって、「きょう」という発話区間403に含まれる母音区間の時間長Lは、単独母音の時間長L(1),L(2)の約2倍となる。
このように、長母音化した母音区間の時間長は、単独母音の時間長の整数倍に近い値となる。このため、発話区間に含まれる複数の母音区間の時間長についての頻度分布には、単独母音の時間長と対応した特徴が現れる。
図5は、母音区間の頻度分布の例を示す図である。
1個の発話区間に含まれる複数の母音区間のそれぞれにおける時間長に基づいて、時間長毎の母音区間の頻度を計数して算出した頻度分布は、例えば、図5に示したように4個のピークP1,P2,P3,及びP4が見られる。なお、図5の頻度分布は、時間長Lを0.02秒毎の複数の区間に分割し、区間毎に、区間内に時間長が含まれる母音区間の数を頻度として算出している。例えば、時間長L=0.2秒である母音区間の頻度は、発話区間における複数の母音区間のうちの、時間長(Te−Ts)が0.19≦(Te−Ts)<0.21である母音区間の数を示している。
長母音化した母音区間や複数種の単独母音が連続した母音区間の時間長は、単独母音の母音区間の時間長よりも長くなる。また、日本語では一般的に発話中の1モーラ(単独母音)をほぼ同じ長さで発話する性質(モーラの等時性)があるため、上記のように、1個の発話区間内における単独母音の母音区間の時間長は、略一定である。このため、頻度分布における4個のピークP1〜P4のうちの時間長が最短であるピークP1が、単独母音の母音区間の時間長を示しているといえる。また、長母音化した母音区間の時間長は、単独母音の母音区間の時間長の整数倍に近い値となる。このため、頻度分布においてピークP2〜P4が現れる時間長は、ピークP1の時間長TP1の整数倍に近い値となる。したがって、本実施形態では、頻度分布における時間長が最短であるピークP1の時間長TP1を基準時間長とし、下記式(3)により各母音区間の母音数(モーラ数)VN(i)を算出する。
式(3)のL(i)は、i番目の母音区間の時間長である。
このように、本実施形態の話速推定装置1では、母音区間の時間長についての頻度分布に基づいて母音区間の基準時間長(単独母音の時間長)TP1を推定し、各母音区間の時間長と基準時間長TP1との比から各母音区間の母音数を決定する。このため、本実施形態の話速推定装置1では、長母音化された母音区間のモーラ数(母音数)の誤りを防ぐことが可能となる。
図6は、発話区間の発話内容と各母音区間のモーラ数の算出結果とを説明する図である。
図6の文字列411は、音声データの発話区間における発話内容をテキスト化して示したものである。また、図6の発音表記412は、文字列411における各音節を母音及び子音で示したものである。文字列411に示した「きょうはいいようきですね」という言葉を自然に発話した場合、発音表記412に示したように「きょう」、「いい」、及び「よう」の部分で母音が長母音化することが多い。このため、音声データの発話区間に含まれる母音区間を検出する処理を行うと、発音表記412の下方に示したように7個の母音区間が検出される。この際、文字列411の「はいい」の部分から検出される母音区間は、母音が「A」である区間と、母音が「I」である区間とが連続している区間である。このため、母音が長母音化している母音区間の母音数を1とした場合、「はいい」の部分から検出される母音区間の母音数は2となり、他の母音区間の母音数は1となる。よって、母音が長母音化している母音区間の母音数を1とした場合、音声データの発話区間(時刻t1〜tM)におけるモーラ数(母音数)は8となり、実際のモーラ数(11個)とは異なる。すなわち、話速の算出に用いるモーラ数と、音声データにおける実際のモーラ数とに差異があるため、話速を精度良く推定することが困難である。
これに対し、本実施形態に係るモーラ数の算出方法では、まず、各母音区間の時間長についての頻度分布に基づいて基準時間長TP1を算出する。図6に示した例における基準時間長TP1は、文字列411における「きですね」の部分区間から検出された母音区間の時間長L(4),L(5),L(6),及びL(7)のそれぞれと略同一の時間長となる。算出した基準時間長TP1を用い、式(3)により各母音区間のモーラ数VN(i)を算出すると、それぞれ、図6に示した結果が得られる。1番目の母音区間の時間長L(1)及び3番目の母音区間の時間長L(3)は、それぞれ、基準時間長TP1の約2倍となる。そのため、1番目の母音区間のモーラ数VN(1)及び3番目の母音区間のモーラ数VN(3)は、それぞれ、2となる。また、2番目の母音区間の時間長L(2)は、基準時間長TP1の約3倍となる。そのため、2番目の母音区間のモーラ数VN(2)は、3となる。更に、残りの母音区間のモーラ数VN(4)〜VN(7)は、それぞれ、1となる。したがって、本実施形態に係るモーラ数の算出方法では、文字列411の発話区間に含まれるモーラ数が11となる。すなわち、本実施形態によれば、各母音区間のモーラ数を正しく算出することが可能となる。よって、本実施形態によれば、発話区間の話速を正しく推定することが可能となる。
発話区間の話速SRは、例えば、下記式(4)により算出する。
式(4)のSTs及びSTeは、それぞれ、発話区間の開始時刻及び終了時刻である。
発話区間の時間長(STe−STs)を10秒とすると、発話区間に含まれる母音区間の数に基づいて算出した話速は、約0.7(モーラ/秒)となる。これに対し、母音区間の時間長についての頻度分布に基づいて各母音区間のモーラ数VN(i)を決定した場合の話速SRは、1.1(モーラ/秒)となる。このように、本実施形態によれば、発話区間のモーラ数(母音数)を正しく算出し、発話区間における話速を精度良く算出することが可能となる。
本実施形態に係る話速推定装置1は、話速を算出した後、算出した話速を可視化する表示データを生成し表示装置3に出力する。
図7は、話速の算出結果の出力例を示す図である。
図7には、話速の算出結果の出力例として、発話区間毎に算出した話速の時間変化を提示するグラフ421を示している。グラフ421の左端には、話速の値と、話速が適正であるか否かを示す情報が表示される。図7に示した例では、話速が6.0〜8.0モーラ/秒である場合を適正な話速としている。グラフ421における横軸は、会話時間である。グラフ421には、音声データから検出した各発話区間における話速SRを示す曲線501が表示される。表示装置3に表示したグラフ421における曲線501は、話速推定装置1において発話区間及び母音区間を検出して話速を算出する毎に、更新される。グラフ421における曲線501は、例えば、会話中の全ての発話区間の話速を示すものであってもよいし、会話中の直近の所定時間内における話速のみを示すものであってもよい。
なお、図7のグラフ421は、話速の算出結果を可視化して表示する方法の一例に過ぎない。話速の算出結果は、グラフ421のような話速の時間変化を示す方法に限らず、他の方法で表示してもよい。例えば、話速の算出結果の表示形態をレベルメータのような表示形態とし、話速推定装置1で算出した最新(直近)の話速のみを表示してもよい。また、話速の算出結果を表示装置3に表示する際には、例えば、算出した話速が所定の閾値以上となった場合にのみ話者に注意喚起する表示をしてもよい。
上記のように、本実施形態に係る話速推定装置1では、発話区間に含まれる複数の母音区間のそれぞれにおける時間長の頻度分布に基づいて検出した単独母音の時間長と、母音区間の時間長との比に基づいて、各母音区間のモーラ数(母音数)を算出する。このため、本実施形態に係る話速推定装置1では、長母音化した母音区間についてのモーラ数の誤りを防ぎ、発話区間の正しい話速を算出することが可能となる。よって、話速推定装置1は、例えば、話速の推定対象である利用者に対して正しい話速の時間変化を提示し、適正な話速での発話をするよう該利用者を導くことが可能となる。
なお、図2及び図3のフローチャートは、本実施形態に係る発話推定装置1が行う処理の一例に過ぎない。本実施形態に係る発話推定装置1が行う処理は、図2及び図3に示した内容に限らず、適宜変更可能である。例えば、発話区間に含まれる母音区間を検出する処理では、信号対雑音比の代わりに、音声データの波形自己相関、或いはフォルマント周波数に基づいて母音区間を検出してもよい。
また、母音区間の時間長についての頻度分布を算出する際には、例えば、検出した複数の母音区間のうちの、時間長が所定の範囲内である母音区間のみを抽出して算出してもよい。所定の範囲は、例えば、予め統計処理を行って得た単独母音の時間長に基づいて設定する。
また、各母音区間のモーラ数を算出する際に用いる基準時間長は、頻度分布における複数のピークのうちの時間長が最短となるピークと対応した時間長TP1に限らず、例えば、頻度分布において隣接するピークの時間間隔の平均値としてもよい。
図8は、モーラ数の算出方法の別の例を示す図である。
図8には、発話区間に含まれる複数の母音区間の時間長についての頻度分布の例を示している。図8の頻度分布は、図5の頻度分布と同じ算出方法により算出したものである。すなわち、図8の頻度分布は、横軸(時間長L)を0.02秒毎の複数の区間に分割し、区間毎に、区間内に時間長が含まれる母音区間の数を頻度として算出している。例えば、時間長L=0.2秒である母音区間の頻度は、発話区間における複数の母音区間のうちの、時間長(Te−Ts)が0.19≦(Te−Ts)<0.21である母音区間の数を示している。
図8の頻度分布からは、時間長の短いピークから順に第1のピークP1,第2のピークP2,第3のピークP3,及び第4のピークP4が検出される。第1のピークP1の時間長TP1は、モーラ数が1である母音区間の時間長(すなわち単独母音の時間長)と略一致する。また、第2のピークP2の時間長TP2、第3のピークP3の時間長TP3、第4のピークP4の時間長TP4は、それぞれ、モーラ数が2、3、及び4の母音区間の時間長と略一致する。
このように、母音区間の時間長についての頻度分布から4個のピークが検出された場合、各母音区間のモーラ数を算出する際に用いる基準時間長は、例えば、下記式(5)により算出される平均時間長d_aveとしてもよい。
式(5)におけるdj(j=1,2,3)は、それぞれ、j+1番目のピークPj+1の時間長TPj+1と、j番目のピークPjの時間長TPjとの時間差である。
式(5)により算出した平均時間長d_aveを基準時間長とする場合、各母音区間のモーラ数VN(i)は、下記式(6)により算出する。
頻度分布における第1のピークP1の時間長TP1は、母音のみの1音節における母音区間の時間長と、図4に示したような子音を含む1音節における母音区間の時間長とにより定まる。子音を含む1音節における母音区間の時間長は、上記のように1音節分の時間長の7割以上を占めるが、1音節分の時間長よりも短い。したがって、図4の(b)に示したように、子音を含む音節の母音区間が1音節分だけ長母音化した場合の母音区間の時間長は、2音節分の時間長よりも短くなる。
これに対し、式(5)における時間差d1,d2,及びd3は、それぞれ、1音節分に相当する時間長と略一致する。このため、第1のピークP1の時間長TP1のみに基づいて各母音区間のモーラ数VN(i)を算出する場合に比べと、例えば、判定条件の境界部分におけるモーラ数VN(i)を正しく算出することが可能となる。
本実施形態に係る話速推定装置1は、例えば、電話網等のネットワークを利用した通話システムにおける話者の話速の推定に適用可能である。
図9は、話速推定装置の第1の適用例を示す図である。
図9に示すように、通話システム10は、第1の話者9Aと、第2の話者9Bとの通話に利用される。第1の話者9Aは、話速推定装置1と、通話処理装置11とを含む情報処理装置12に、収音装置2、表示装置3、及びレシーバ13を接続したものを通話装置(電話機)として用いる。
第1の話者9Aが通話装置(情報処理装置12)を用いて通話を行う際、通話処理装置11は、第1の交換機14A、及びネットワーク15を介して、通話相手が利用する通話装置(電話機)に接続される。第1の話者9Aの通話相手が第2の話者9Bである場合、通話処理装置11は、第1の交換機14A、ネットワーク15、及び第2の交換機14Bを介して、第2の話者9Bが利用する電話機16と接続される。
通話処理装置11は、収音装置2から取得した第1の話者9Aの音声を含む音声データを電話機16に向けて送信する処理と、電話機16から受信した音声データをレシーバ13に出力する処理とを行う。一方、電話機16の通話処理部1610は、収音装置1620から取得した第2の話者9Bの音声を含む音声データを通話処理装置11(情報処理装置12)に向けて送信する処理と、通話処理装置11から受信した音声データをレシーバ1630に出力する処理とを行う。
第1の話者9Aと第2の話者9Bとが通話している間、情報処理装置12に含まれる話速推定装置1は、収音装置2から第1の話者9Aの音声を含む音声データを取得し、図2及び図3のフローチャートに沿って第1の話者9Aの話速を算出する。また、話速推定装置1は、算出した話速を可視化する表示データを生成して表示装置3に出力する。このため、第1の話者9Aは、第2の話者9Bとの通話中に、自身の話速が適正であるか否かを把握し、話速を調整することが可能となる。これにより、例えば、第1の話者9Aを、第2の話者9Bが発話内容を聞き取りやすい話速での発話に導くことが可能となる。
なお、情報処理装置12は、話速推定装置1と、通話処理装置11との2個の装置を内包する装置に限らず、話速推定装置1が行う処理を担う第1の処理部と、通話処理装置11が行う処理を担う第2の処理部とを含む1個の装置であってもよい。
また、通話システム10は、例えば、ネットワーク15を利用した電話会議システムや、テレビ会議システムであってもよい。
図10は、話速推定装置の第2の適用例を示す図である。
図10に示した通話システム10は、第1の話者9Aと、第2の話者9Bとの通話に利用される。第1の話者9Aは、通話処理装置11に相当する通話処理部21を含む情報処理装置12に収音装置2、及びレシーバ13を接続したものを、通話装置(電話機)として用いる。この際、情報処理装置12には話速推定装置1を接続し、話速推定装置1には表示装置3を接続する。
第1の話者9Aが通話装置を用いて通話を行う際、情報処理装置12の通話処理部21は、第1の交換機14A、及びネットワーク15を介して、通話相手が利用する通話装置(電話機)に接続される。第1の話者9Aの通話相手が第2の話者9Bである場合、情報処理装置12の通話処理部21は、第1の交換機14A、ネットワーク15、及び第2の交換機14Bを介して、第2の話者9Bが利用する電話機16と接続される。
情報処理装置12の通話処理部21は、収音装置2から取得した第1の話者9Aの音声を含む音声データを電話機16に向けて送信する処理と、電話機16から受信した音声データをレシーバ13に出力する処理とを行う。また、情報処理装置12の通話処理部21は、収音装置2から取得した音声データを話速推定装置1に出力する。一方、電話機16の通話処理部1610は、収音装置1620から取得した第2の話者9Bの音声を含む音声データを情報処理装置12に向けて送信する処理と、情報処理装置12から受信した音声データをレシーバ1630に出力する処理とを行う。
第1の話者9Aと第2の話者9Bとが通話している間、話速推定装置1は、情報処理装置12を介して第1の話者9Aの音声を含む音声データを取得し、図2及び図3のフローチャートに沿って第1の話者9Aの話速を算出する。また、話速推定装置1は、算出した話速を可視化する表示データを生成して表示装置3に出力する。これにより、第1の話者9Aは、第2の話者9Bとの通話中に、自身の話速が適正であるか否かを把握し、話速を調整することが可能となる。
また、図9及び図10の通話システム10における表示装置3の設置場所は、第1の話者9Aの近傍に限らず、例えば、第1の話者9Aとは異なる場所にいる第三者の近傍に設置することも可能である。更に、通話システム10における表示装置3は、複数個であってもよい。
加えて、話速推定装置1で算出した(推定した)第1の話者9Aの話速は、例えば、図示しない話速推定装置1の記憶部、或いは他の装置に記憶させてもよい。
なお、本実施形態で挙げた話速推定装置1は、モーラ数決定部140において決定した複数の母音区間それぞれのモーラ数に基づいて、入力音声データと対応する出力信号を制御する音声処理装置の一例に過ぎない。すなわち、本実施形態に係るモーラ数決定部140において決定した複数の母音区間それぞれのモーラ数は、入力音声データの話速を提示する表示データ(出力信号)を制御するだけでなく、入力データと対応する他の出力信号の制御にも利用可能である。
更に、本実施形態に係る話速推定装置1の機能的構成は、図1に示した構成に限らず、話速推定装置1で行う処理の内容に応じて適宜変更可能である。例えば、図2のステップS3、S4、及びS5の処理は、それぞれ、ステップS3’,S4’,及びS5’に置換可能である。
(ステップS3’)複数の母音区間それぞれの時間長を算出する処理。
(ステップS4’)複数の母音区間の時間長についての頻度分布を算出するとともに、複数の母音区間それぞれの時間長のうちの最小値を特定する処理。
(ステップS5’)特定した時間長の最小値と、頻度分布とに基づいて複数の母音区間それぞれの時間長と対応するモーラ数を算出する処理。
話速処理装置1においてステップS3’〜S5’の処理を行う場合、話速推定装置1のモーラ数決定部140は、時間長算出部と、最小値特定部と、モーラ数算出部と、を含むものであってもよい。この場合、時間長算出部はステップS3’の処理を行い、最小値特定部はステップS4’の処理を行う。また、モーラ数算出部はステップS5’の処理を行う。
[第2の実施形態]
図11は、第2の実施形態に係る話速推定装置の機能的構成を示す図である。
図11に示すように、本実施形態に係る話速推定装置1は、音声取得部110と、発話区間検出部120と、母音区間検出部130と、モーラ数決定部140と、話速算出部150と、出力部160と、を備える。また、図11では省略しているが、話速推定装置1は、音声データを含む各種情報を記憶させる記憶部を備える。
音声取得部110は、収音装置2から音声データを取得する。
発話区間検出部120は、音声データにおける発話区間を検出する。発話区間は、話速推定の対象である人物が発した音声を含む区間である。
母音区間検出部130は、音声データの発話区間に含まれる母音区間を検出する。なお、本実施形態の話速推定装置1における母音区間検出部130は、発話区間検出部120で検出した発話区間からではなく、音声データ全体から母音区間を検出する。
モーラ数決定部140は、音声データから検出した複数の母音区間のそれぞれにおける時間長に基づいて、各母音区間のモーラ数を算出する。頻度分布算出部141と、ピーク検出部142と、モーラ数算出部143と、を含む。
話速算出部150は、発話区間の時間長と、該発話区間に含まれる母音区間のモーラ数とに基づいて、音声データにおける話速を算出する。
出力部160は、算出した話速を可視化する表示データを生成して表示装置3に出力する。
本実施形態の話速推定装置1は、動作を開始すると、収音装置2から音声データを取得する処理と、取得した音声データにおける話速を推定し推定結果を表示装置3に出力する処理とを行う。音声データを取得する処理は、話速推定装置1の音声取得部110が行う。
一方、音声データにおける話速を推定し推定結果を表示装置3に出力する処理は、話速推定装置1の発話区間検出部120、母音区間検出部130、モーラ数決定部140、話速算出部150、及び出力部160が行う。本実施形態の話速推定装置1は、音声データにおける話速を推定し推定結果を表示装置3に出力する処理として、図2のステップS1〜S7の処理を行う。なお、本実施形態の話速推定装置1における母音区間検出部130は、発話区間検出部120による発話区間の検出結果を参照せずに、音声データ全体から母音区間を検出する。すなわち、本実施形態の話速推定装置1における母音区間検出部130は、ステップS2の母音区間を検出する処理として、例えば、図12に示した処理を行う。
図12は、第2の実施形態に係る母音区間を検出する処理の内容を説明するフローチャートである。
本実施形態の話速推定装置1における母音区間検出部130は、音声データを複数の区間に分割し、区間毎に図12に示したステップS211〜S219の処理を行う。母音区間検出部130は、まず、音声データのうちの処理対象の区間における時刻tm(m=1,2,・・・,M)のそれぞれで、音声データの波形自己相関AC(tm)を算出する(ステップS211)。発話区間における時刻tmの時間間隔(tm−tm−1)は、例えば、音声データを処理する際の処理単位(フレーム)の時間長とする。以下の説明では、音声データにおける時刻tmと対応付けられたフレームを、時刻tmのフレームという。
ステップS211の処理において、母音区間検出部130は、下記式(7)により時刻t(各時刻tm)の波形自己相関AC(t)を算出する。
式(7)のNは、波形自己相関の算出幅(サンプル数)であり、例えば、N=500とする。式(7)のSLは、波形自己相関の探索範囲の下限値(サンプル数)であり、例えば、SL=20とする。式(7)のSHは、波形自己相関の探索範囲の上限値(サンプル数)であり、例えば、SH=120とする。
ステップS211の処理を終えると、母音区間検出部130は、次に、変数m、変数i、及び波形自己相関AC(t0)を、それぞれ、m=1、i=1、及びAC(t0)=0に設定する(ステップS212)。変数iは、母音区間を識別する値である。
次に、母音区間検出部130は、時刻tm−1の波形自己相関AC(tm−1)が閾値THACよりも小さく、かつ時刻tmの自己波形相関AC(tm)が閾値THAC以上であるか否かを判定する(ステップS213)。すなわち、ステップS213では、AC(tm−1)<THAC、かつAC(tm)≧THACであるか否かを判定する。
閾値THACは、音声データに含まれる音声が母音であるか非母音(子音等)であるかを判別する値である。式(7)により波形自己相関を算出した場合、音声データに含まれる母音区間の波形自己相関は、非母音区間(子音区間等)の波形自己相関と比べて大きな値となる。このため、本実施形態では、音声データのうちの波形自己相関が閾値THAC以上である区間を母音区間とする。閾値THACは、例えば、母音区間における波形自己相関の統計値と、非母音区間における波形自己相関の統計値とに基づいて設定する。
AC(tm−1)<THAC、かつAC(tm)≧THACである場合、波形自己相関は、時刻tm−1からtmの間において閾値THACよりも小さい値から閾値THAC以上の値に変化する。すなわち、AC(tm−1)<THAC、かつAC(tm)≧THACである場合、時刻tm−1のフレームは非母音区間に含まれ、時刻tmのフレームは母音区間に含まれる。よって、AC(tm−1)<THAC、かつAC(tm)≧THACである場合(ステップS213;YES)、母音区間検出部130は、次に、i番目の母音区間の開始時刻Ts(i)を時刻tmに設定する(ステップS214)。ステップS214の処理を終えると、母音区間検出部130は、次に、変数mが音声データのうちの波形自己相関を算出した区間における最後の値M以上であるか否かを判定する(ステップS217)。
一方、AC(tm−1)≧THAC、又はAC(tm)<THACである場合(ステップS213;NO)、母音区間検出部130は、次に、AC(tm−1)≧THAC、かつAC(tm)<THACであるか否かを判定する(ステップS215)。
AC(tm−1)≧THAC、かつAC(tm)<THACである場合(ステップS215;YES)、時刻tm−1のフレームは母音区間に含まれ、時刻tmのフレームは非母音区間に含まれる。よって、AC(tm−1)≧THAC、かつAC(tm)<THACである場合(ステップS215;YES)、母音区間検出部130は、次に、i番目の母音区間の終了時刻Te(i)を時刻tm−1に設定し、変数iをi+1に更新する(ステップS216)。ステップS216において、母音区間検出部130は、母音区間の終了時刻Te(i)を時刻tm−1に設定した後、変数iをi+1に更新する。ステップS216の処理を終えると、母音区間検出部130は、次に、ステップS217の判定を行う。
これに対し、AC(tm−1)≧THAC、かつAC(tm)<THACを満たしていない場合(ステップS215;NO)、時刻tm−1及び時刻tmにおける波形自己相関は、両方とも閾値THAC以上であるか、或いは両方とも閾値THACよりも小さい。すなわち、AC(tm−1)≧THAC、かつAC(tm)<THACを満たしていない場合、時刻tm−1,tmのフレームは、両方とも非母音区間に含まれるか、或いは両方とも母音区間に含まれる。よって、AC(tm−1)≧THAC、かつAC(tm)<THACを満たしていない場合(ステップS215;NO)、母音区間検出部130は、ステップS216の処理をスキップし、次に、ステップS217の判定を行う。
ステップS217では、母音区間検出部130は、上記のように、変数mが音声データのうちの現在処理対象となっている区間における最後の値M以上であるか否かを判定する。m<Mである場合(ステップS217;NO)、母音区間検出部130は、変数mをm+1に更新し(ステップS218)、ステップS213以降の処理を行う。
一方、m≧Mである場合(ステップS217;YES)、母音区間検出部130は、母音区間を示す情報[Ts(i),Te(i)]を出力し(ステップS219)、音声データにおける1個の処理対象区間に含まれる母音区間を検出する処理を終了する。
本実施形態に係る母音区間検出部130は、音声データにおける処理対象区間毎に、ステップS211〜S219の処理を行う。
本実施形態に係る話速推定装置1は、発話区間検出部120で検出した発話区間と、ステップS211〜S219の処理により母音区間検出部130で検出した母音区間とに基づいて、図2のステップS3〜S6の処理を行い、話速を算出する。すなわち、本実施形態に係る話速推定装置1は、音声データに含まれる母音区間の時間長についての頻度分布に基づいて、1モーラ(単独母音)の母音区間の時間長を検出する。その後、話速推定装置1は、1モーラの母音区間の時間長と、母音区間の時間長とに基づいて、各母音区間のモーラ数を決定する。このため、本実施形態に係る話速推定装置1では、長母音化した母音区間についてのモーラ数の誤りを防ぎ、発話区間の正しい話速を算出することが可能となる。よって、話速推定装置1は、例えば、話速の推定対象である利用者に対して正しい話速の時間変化を提示し、適正な話速での発話をするよう該利用者を導くことが可能となる。
また、本実施形態の話速推定装置1は、例えば、算出した話速を可視化する表示データを生成して表示装置3に出力する。この際、話速推定装置1は、例えば、図10に示したグラフ421のような表示データを生成して表示装置3に表示させる。これにより、話速の推定対象である人物に対し、会話中に話速を提示することが可能となり、適正な話速に導くことが可能となる。
なお、図12のフローチャートは、母音区間を検出する処理の一例に過ぎない。本実施形態に係る母音区間を検出する処理では、波形自己相関の時間変化に限らず、音声データにおける他の特性の時間変化に基づいて母音区間を検出してもよい。例えば、母音区間を検出する処理では、第1の実施形態で説明した信号対雑音比の時間変化に基づいて母音区間を検出してもよい。また、例えば、母音区間を検出する処理では、図13のようにフォルマント周波数の時間変化に基づいて母音区間を検出してもよい。
図13は、第2の実施形態に係る母音区間を検出する処理の変形例を説明するフローチャートである。
フォルマント周波数に基づいて母音区間を検出する場合、母音区間検出部130は、まず、音声データのうちの処理対象の区間における時刻tm(m=1,2,・・・,M)のそれぞれでの、フォルマント周波数を算出する(ステップS221)。発話区間における時刻tmの時間間隔(tm−tm−1)は、例えば、音声データを処理する際の処理単位(フレーム)の時間長とする。以下の説明では、音声データにおける時刻tmと対応付けられたフレームを、時刻tmのフレームという。
ステップS211の処理において、母音区間検出部130は、既知の算出方法に従い、例えば、音声データの時刻tmのフレームにおけるフォルマント周波数FM(tm,k)を算出する。例えば、母音区間検出部130は、第1フォルマント周波数FM(tm,1)、第2フォルマント周波数FM(tm,2)、及び第3フォルマント周波数FM(tm,3)を算出する。
ステップS221の処理を終えると、母音区間検出部130は、次に、変数m、変数i、フォルマント周波数、及びフォルマント周波数の時間変化平均の各値を初期値に設定する(ステップS222)。ステップS222において、母音区間検出部130は、変数m、及び変数iを、それぞれ、m=1,i=1に設定する。変数iは、母音区間を識別する値である。また、母音区間検出部130は、フォルマント周波数の初期値を、例えば、FM(t0,1)=FM(t0,2)=FM(t0,3)=0に設定する。更に、母音区間検出部130は、フォルマント周波数の時間変化平均の初期値ΔFM(t0)を、ΔFM(t0)≧THFMとなる値に設定する。閾値THFMは、音声データに含まれる音声が母音であるか非母音(子音)であるかを判別する値である。
次に、母音区間検出部130は、時刻tm−1からtmにおけるフォルマント周波数の時間変化平均ΔFM(tm)を算出する(ステップS223)。母音区間検出部130は、例えば、下記式(8)によりフォルマント周波数の時間変化平均ΔFM(tm)を算出する。
次に、母音区間検出部130は、時刻tm−1での時間変化平均ΔFM(tm−1)が閾値THFM以上であり、かつ時刻tmでの時間変化平均ΔFM(tm)が閾値THFMよりも小さいか否かを判定する(ステップS224)。閾値THFMは、音声データに含まれる音声が母音であるか非母音(子音)であるかを判別する値である。音声データにおける母音区間の特徴は、主として、第1フォルマント周波数及び第2フォルマント周波数の分布により決定する。言い換えると、音声データの1個の母音区間におけるフォルマント周波数の時間変化平均ΔFMは、略一定の値であり、かつ非母音区間における時間変化平均ΔFMと比べて小さな値となる。このため、音声データのうちのフォルマント周波数の時間変化平均ΔFMが閾値THFMよりも小さいフレームが連続する区間を母音区間とみなすことが可能となる。閾値THFMは、例えば、統計処理により得られる、母音区間におけるフォルマント周波数の時間変化平均の統計値と、非母音区間におけるフォルマント周波数の時間変化平均の統計値とに基づいて設定する。
ΔFM(tm−1)≧THFM、かつΔFM(tm)<THFMである場合(ステップS224;YES)、母音区間検出部130は、次に、i番目の母音区間の開始時刻Ts(i)を時刻tm−1に設定する(ステップS225)。ステップS225の処理を終えると、母音区間検出部130は、次に、変数mが音声データのうちのフォルマント周波数を算出した区間における最後の値M以上であるか否かを判定する(ステップS228)。
一方、ΔFM(tm−1)<THFM、又はΔFM(tm)≧THFMである場合(ステップS224;NO)、母音区間検出部130は、次に、ΔFM(tm−1)<THFM、かつΔFM(tm)≧THFMであるか否かを判定する(ステップS226)。
ΔFM(tm−1)<THFM、かつΔFM(tm)≧THFMである場合(ステップS226;YES)、母音区間検出部130は、次に、i番目の母音区間の終了時刻Te(i)を時刻tm−1に設定するとともに、変数iをi+1に更新する(ステップS227)。ステップS227の処理を終えると、母音区間検出部130は、次に、ステップS228の判定を行う。
これに対し、ΔFM(tm−1)<THFM、かつΔFM(tm)≧THFMを満たしていない場合、時刻tm−1及び時刻tmにおけるフォルマント周波数の時間変化平均は、両方とも閾値THFM以上であるか、或いは両方とも閾値THFMよりも小さい。すなわち、ΔFM(tm−1)<THFM、かつΔFM(tm)≧THFMを満たしていない場合、音声データにおける時刻tm−1,tmのフレームは、両方とも非母音区間に含まれるか、或いは両方とも母音区間に含まれる。よって、ΔFM(tm−1)<THFM、かつΔFM(tm)≧THFMを満たしていない場合(ステップS226;NO)、母音区間検出部130は、ステップS227の処理をスキップして、次に、ステップS228の判定を行う。
上記のように、ステップS228では、母音区間検出部130は、変数mが音声データのうちのフォルマント周波数を算出した区間における最後の値M以上であるか否かを判定する。m<Mである場合(ステップS228;NO)、母音区間検出部130は、変数mをm+1に更新し(ステップS229)、ステップS223以降の処理を行う。
一方、m≧Mである場合(ステップS228;YES)、母音区間検出部130は、母音区間を示す情報[Ts(i),Te(i)]を出力し(ステップS230)、音声データにおける1個の処理対象区間に対する母音区間を検出する処理を終了する。
このように、音声データにおける母音区間は、第1フォルマント周波数及び第2フォルマント周波数を含むフォルマント周波数の時間変化平均に基づいて検出することも可能である。フォルマント周波数の時間変化平均に基づいて母音区間を検出する場合も、母音が長母音化することにより、例えば、実際には2モーラである母音区間が1個の母音区間として検出されることがある。しかしながら、音声データに含まれる母音区間の時間長についての頻度分布に基づいて各母音区間の母音数を決定することにより、音声データにおける発話区間のモーラ数(母音数)を正しく算出し、話速を精度良く算出することが可能となる。
なお、本実施形態で挙げた話速推定装置1は、モーラ数決定部140において決定した複数の母音区間それぞれのモーラ数に基づいて、入力音声データと対応する出力信号を制御する音声処理装置の一例に過ぎない。すなわち、本実施形態に係るモーラ数決定部140において決定した複数の母音区間それぞれのモーラ数は、入力音声データの話速を提示する表示データ(出力信号)を制御するだけでなく、入力データと対応する他の出力信号の制御にも利用可能である。
また、本実施形態に係る話速推定装置1のモーラ数決定部140は、上述したステップS3’の処理を行う時間長算出部と、ステップS4’の処理を行う最小値特定部と、ステップS5’の処理を行うモーラ数決定部とを含むものであってもよい。
[第3の実施形態]
図14は、第3の実施形態に係る通話システムのシステム構成を示す図である。
図14に示すように、本実施形態に係る通話システム10は、第1の話者9Aと、第2の話者9Bとの通話に利用される。第1の話者9Aは、携帯電話端末25を通話装置(電話機)として用いる。携帯電話端末25は、通話処理部21と、収音装置2と、レシーバ13と、話速調整部26とを含む。
第1の話者9Aが携帯電話端末25を用いて通話を行う際、通話処理部21は、基地局30、及びネットワーク15を介して、通話相手が利用する通話装置(電話機)に接続される。携帯電話端末25(通話処理部21)と基地局30とは、所定の無線通信規格に従った無線通信により接続される。第1の話者9Aの通話相手が第2の話者9Bである場合、通話処理部21は、基地局30、ネットワーク15、及び交換機14Bを介して、第2の話者9Bが利用する電話機16と接続される。
携帯電話端末25は、収音装置2から取得した第1の話者9Aの音声を含む音声データの話速を調整して電話機16に向けて送信する処理と、電話機16から受信した音声データをレシーバ13に出力する処理とを行う。携帯電話端末25において音声データの話速を調整する処理は、話速調整部26が行う。また、携帯電話端末25において、話速を調整した音声データを電話機16に向けて送信する処理と、電話機16から受信した音声データをレシーバ13に出力する処理とは、通話処理部21が行う。
一方、第2の話者9Bが利用する電話機16は、通話処理部1601と、収音装置1620と、レシーバ1630とを含む。電話機16の通話処理部1610は、収音装置1620から取得した第2の話者9Bの音声を含む音声データを携帯電話端末25に向けて送信する処理と、携帯電話端末25から受信した音声データをレシーバ1630に出力する処理とを行う。
本実施形態に係る通話システムにおける携帯電話端末25は、上記のように、話速調整部26において、収音装置2から取得した第1の話者9Aの音声を含む音声データの話速を調整する処理を行う。話速調整部26は、音声データにおける第1の話者9Aの話速を算出した後、該話速の算出結果に基づいて、音声データにおける話速が適正な話速になるよう音声データを調整する。本実施形態における話速調整部26は、音声データにおける話速が閾値以上である場合に、音声データを伸長させて話速を減速させる。
図15は、第3の実施形態に係る話速調整部の機能的構成を示す図である。
図15に示すように、本実施形態の携帯電話端末25における話速調整部26は、音声取得部110と、発話区間検出部120と、母音区間検出部130と、モーラ数決定部140と、話速算出部150と、話速制御部170と、出力部162と、を備える。また、話速調整部26は、音声データ191及び目標伸長率192を含む各種情報を記憶させる記憶部190を備える。目標伸長率192は、音声データにおける話速を減速させる際の音声データの伸長率の目標値である。
音声取得部110は、収音装置2から音声データを取得する。
発話区間検出部120は、音声データにおける発話区間を検出する。発話区間は、話速推定の対象である人物が発した音声を含む区間である。
母音区間検出部130は、音声データの発話区間に含まれる母音区間を検出する。なお、本実施形態の話速調整部26における母音区間検出部130は、発話区間検出部120で検出した発話区間からではなく、音声データ全体から母音区間を検出する。
モーラ数決定部140は、音声データから検出した複数の母音区間のそれぞれの時間長に基づいて、各母音区間のモーラ数を算出する。モーラ数決定部140は、第1の実施形態で説明した方法により、各母音区間のモーラ数を算出する。モーラ数決定部140は、頻度分布算出部141と、ピーク検出部142と、モーラ数算出部143と、を含む。
話速算出部150は、発話区間の時間長と、該発話区間に含まれる母音区間のモーラ数とに基づいて、音声データにおける話速(発話速度)を算出する。
話速制御部170は、話速算出部150で算出した話速に基づいて、音声データの話速を制御する。本実施形態に係る話速制御部170は、算出した話速が適正な話速よりも速い場合に、目標伸長率192を参照して、音声データの話速が適正な話速となるよう音声データを伸長させる。
出力部162は、話速制御部170により話速を制御した音声データを通話処理部21に出力する。
図16は、話速制御部の機能的構成を示す図である。
図16に示すように、本実施形態に係る話速制御部170は、基本周期検出部171と、波形処理部172と、伸長制御部173と、を含む。
基本周期検出部171は、音声データのうちの処理対象である母音区間の基本周期を検出する。
波形処理部172は、音声データに基本周期の波形を重ねて音声データを伸長させる。
伸長制御部173は、音声データを伸長させるか否か、言い換えると基本周期の波形を重ねるか否かの制御を行う。伸長制御部173は、まず、話速算出部150で算出した話速に基づいて、音声データを伸長させるか否かを判定する。また、音声データを伸長させる場合、伸長制御部173は、波形処理部172で基本周期の波形を重ねた音声データの実績伸長率と、目標伸長率とに基づいて、基本周期の波形を更に重ねるか否かの制御を行う。
本実施形態の携帯電話端末25における話速調整部26は、収音装置2から音声データを取得する処理と、取得した音声データにおける話速を制御して通話処理部21に出力する処理とを行う。音声データを取得する処理は、話速調整部26の音声取得部110が行う。
一方、音声データにおける話速を制御して出力する処理は、話速調整部26の発話区間検出部120、母音区間検出部130、モーラ数決定部140、話速算出部150、話速制御部170、及び出力部162が行う。話速調整部26は、音声データにおける話速を制御して出力する処理として、図17に示した処理を行う。
図17は、第3の実施形態に係る話速調整部が行う処理を説明するフローチャートである。
音声データにおける話速を制御して出力する処理において、話速調整部26は、まず、音声データに含まれる発話区間を検出する(ステップS1)。ステップS1の処理は、発話区間検出部120が行う。発話区間検出部120は、既知の検出方法に従い、音声データに含まれる発話区間(言い換えると話速推定の対象である人物が発した音声を含む区間)を検出する。例えば、発話区間検出部120は、VADにより発話区間を検出する。
次に、話速調整部26は、発話区間に含まれる母音区間を検出する(ステップS2)。ステップS2の処理は、母音区間検出部130が行う。母音区間検出部130は、既知の検出方法に従い、音声データにおける母音区間を検出する。例えば、母音区間検出部130は、音声データにおける信号対雑音比の時間変化に基づいて、信号対雑音比が所定の閾値以上で連続する1個の区間を1個の母音区間として検出する。
次に、話速調整部26は、検出した母音区間のモーラ数(母音数)を決定する処理(ステップS3〜S5)を行う。母音区間のモーラ数を決定するステップS3〜S5の処理は、話速調整部26のモーラ数決定部140が行う。
モーラ数決定部140は、まず、検出した複数の母音区間のそれぞれの時間長に基づいて、母音区間の時間長についての頻度分布を算出する(ステップS3)。ステップS3の処理は、モーラ数決定部140の頻度分布算出部141が行う。頻度分布算出部141は、検出した複数の母音区間のそれぞれにおける区間の開始時刻と終了時刻とに基づいて、母音区間の時間長を算出する。また、頻度分布算出部141は、各母音区間の時間長に基づいて時間長毎の母音区間の出現頻度を計数し、頻度分布を算出する。この際、頻度分布算出部141は、例えば、1個の発話区間における末尾の母音区間を除外して、頻度分布を算出する。
次に、モーラ数決定部140は、ステップS3で算出した頻度分布において出現頻度が極大値(ピーク)となる時間長を検出する(ステップS4)。ステップS4の処理は、モーラ数決定部140のピーク検出部142が行う。例えば、ピーク検出部142は、頻度分布における最短時間長の出現頻度から順に、判定対象である時間長の出現頻度と、その前後の時間長の出現頻度と比較し、出現頻度が極大値となる時間長を検出する。
次に、モーラ数決定部140は、頻度分布から検出した時間長のうちの最小値と、母音区間の時間長とに基づいて、各母音区間のモーラ数を算出する(ステップS5)。ステップS5の処理は、モーラ数決定部140のモーラ数算出部143が行う。モーラ数算出部143は、頻度分布においてピークとなる複数の時間長のうちの最小値を基準時間長とし、まず、母音区間の時間長を基準時間長で除した値を算出する。その後、モーラ数算出部143は、母音区間の時間長を基準時間長で除した値に近い整数値を、該母音区間のモーラ数とする。
モーラ数決定部140によるステップS3〜S5の処理を終えると、話速調整部26は、次に、ステップS5で算出した各母音区間のモーラ数と、発話区間の時間長とに基づいて、発話区間の話速を算出する(ステップS6)。ステップS6の処理は、話速算出部150が行う。話速算出部150は、話速として、発話区間の時間長を、該発話区間に含まれる母音区間についてのモーラ数の合計で除した値(モーラ/秒)を算出する。
次に、話速調整部26は、算出した話速に基づいて、音声データの話速を制御する処理(ステップS8)を行う。ステップS8の処理は、話速制御部170が行う。話速制御部170は、音声データのうちの算出した話速が適正な話速よりも速い区間に、該当区間における基本周期の波形を重ねて音声データを伸長させる処理を行う。
次に、話速調整部26は、話速制御部170において話速を調整した音声データを通話処理部21にする(ステップS9)。ステップS9の処理は、出力部162が行う。
話速調整部26は、通話中、上記のステップS1〜S6,S8,及びS9の処理を繰り返し行う。この際、話速調整部26は、音声データにおける1個の処理対象区間に対するステップS1〜SS6,S8,及びS9の処理を終えてから次の処理対象区間に対する処理を行ってもよいし、各ステップの処理をパイプライン化して行ってもよい。
本実施形態に係る携帯端末装置1における話速調整部26は、上記のように、音声データにおける母音区間の時間長についての頻度分布に基づいて、1モーラ(単独母音)に相当する母音区間の時間長を算出し、各母音区間の母音数を決定する。このため、話速調整部26は、長母音化による話速の誤りを防ぎ、話速を精度良く算出する(推定する)ことが可能となり、音声データにおける話速を適正な話速に調整することが可能となる。
本実施形態の話速調整部26における話速制御部170は、音声データの話速を制御する処理(ステップS8)として、例えば、図18に示した処理を行う。
図18は、音声データの話速を制御する処理の内容を説明するフローチャートである。
話速制御部170は、音声データにおける話速を算出した区間(例えば、発話区間)毎に、図18のステップS801〜S807の処理を行う。話速制御部170は、まず、話速算出部150で算出した話速に基づいて、処理対象区間の話速が閾値以上であるか否かを判定する(ステップS801)。ステップS801の判定は、例えば、話速制御部170の伸長制御部173が行う。話速が閾値よりも小さい(遅い)場合(ステップS801;NO)、話速制御部170は、処理対象区間に対する話速を制御する処理を終了する。話速の閾値は、例えば、8モーラ/秒とする。
処理対象区間の話速が閾値以上である場合(ステップS801;YES)、話速制御部170は、次に、処理対象区間に対する実績伸長率を初期化する(ステップS802)。ステップS802の処理は、話速制御部170の伸長制御部173が行う。
その後、話速制御部170は、音声データにおける処理対象区間を伸長させるステップS803〜S807の処理を行う。例えば、ステップS803〜S807の処理は、1フレーム期間を20ミリ秒とするフレーム処理とする。
音声データにおける処理対象区間を伸長させる処理において、話速制御部170は、まず、処理対象区間における母音区間の基本周期を検出する(ステップS803)。ステップS803の処理は、話速制御部170の基本周期検出部171が行う。基本周期検出部171は、既知の検出方法に従って、処理対象区間の音声波形についての自己相関を算出し、シフト量が0よりも大きい区間において自己相関が初めて極大となるシフト量と対応する周期を、基本周期として算出する。
次に、話速制御部170は、算出した基本周期に基づいてピッチの時間変化率を算出する(ステップS804)。ステップS804の処理は、例えば、話速制御部170の伸長制御部173が行う。伸長制御部173は、既知の算出方法に従って、ピッチの時間変化率を算出する。
次に、話速制御部170は、実績伸長率が目標伸長率よりも小さいか否かを判定する(ステップS805)。ステップS805の判定処理は、例えば、話速制御部170の伸長制御部173が行う。伸長制御部173は、記憶部190の目標伸長率192を参照して現在の実績伸長率が目標伸長率192よりも小さいか否かを判定する。
実績伸長率が目標伸長率よりも小さい場合(ステップS805;YES)、話速制御部170は、音声データの処理対象区間に基本周期の音声波形を重ね合わせる(ステップS806)。ステップS806の処理は、話速制御部170の波形処理部172が行う。波形処理部172は、既知の方法に従って、音声データの処理対象区間に基本周期の音声波形を重ね合わせる。
ステップS806の処理の後、話速制御部170は、実績伸長率を更新し(ステップS807)、ステップS803以降の処理を行う。ステップS807の処理は、例えば、伸長制御部173が行う。伸長制御部173は、例えば、下記式(9)により、実績伸長率rate_result(n)を算出する。
式(9)のs及びnは、それぞれ、処理対象区間の開始フレーム及び現フレームである。式(9)のMは1フレームのサンプル数であり、例えば、M=160とする。式(9)のadd(i)は、i番目のフレーム処理で追加したサンプル数である。
一方、ステップS805の判定処理において、実績伸長率が目標伸長率以上であった場合(ステップS805;NO)、話速制御部170は、音声データにおける処理対象区間を出力して、処理対象区間に対する話速を制御する処理を終了する。話速制御部170は、1個の処理対象区間に対する処理を終えると、次の処理対象区間に対するステップS801以降の処理を行う。
なお、図18のフローチャートでは実績伸長率が目標伸長率以上になるまで処理を繰り返しているが、話速を制御する処理は、これに限らず、例えば、ステップS803以降のループ処理を行う回数に上限値を設けてもよい。すなわち、話速を制御する処理は、ステップS803以降のループ処理を所定回数行った場合には、実績伸長率が目標伸長率よりも小さくても処理を終了するようにしてもよい。これにより、例えば、処理が長くなり音声データの遅延等による通話品質の劣化を防止することが可能となる。
図19は、基本周期の検出方法を説明する図である。
ステップS803の基本周期を検出する処理では、上記のように、処理対象区間の音声波形についての自己相関に基づいて基本周期を検出する。音声波形についての自己相関は、例えば、図19に示した曲線511のように、シフト量が0から大きくなるにつれて徐々に減少してあるシフト量で極小値となった後、シフト量Smで極大となる。本実施形態に係る話速制御部170の基本周期検出部171は、シフト量が0よりも大きい区間において自己相関が初めて極大Pとなるシフト量Smと対応する周期を、基本周期として検出する(算出する)。
図20は、音声波形を重ね合わせる方法を説明する図である。図21は、音声波形を重ねる際の重み付けの方法を説明する図である。
ステップS806の音声波形を重ね合わせる処理では、上記のように、音声データの処理対象区間における基本周期Kの音声波形を重ね合わせる。例えば、図20に示すように処理対象区間の波形x(t)が基本周期Kの音声波形521,522,523を含む波形であるとする。この波形x(t)に基本周期Kの音声波形を重ね合わせる場合、話速制御部170は、音声波形522を抽出し、波形x(t)における音声波形522と、音声波形523との間に音声波形522を挿入した波形y(t)を生成する。これにより、処理対象区間の時間長が基本周期Kだけ長くなり、処理対象区間を含む発話区間の時間長が基本周期Kだけ長くなる。したがって、発話区間に含まれる母音数(モーラ数)を発話区間の時間長で除した値(話速)が小さくなる。
また、音声波形を重ねる際には、サンプルの不連続による音質劣化を防ぐために、重み付け加算を行うことが好ましい。
例えば、図21の(a)の波形x(t)における基本周期Kの音声波形522を重ね合わせる際には、音声波形522の後方に音声波形523の一部を含む第1の範囲531と、音声波形522の前方に音声波形521の一部を含む第2の範囲532とを設定する。そして、第2の範囲532を基本周期Kだけ正の時間方向にシフトさせて第1の範囲531と第2の範囲532とを結合することで、音声データの波形を伸長させる。
第1の範囲531と、基本周期Kだけシフトさせた第2の範囲532とを結合する際には、第1の範囲531における末尾の部分と、第2の範囲532における先頭の部分とが重複する。第1の範囲531と第2の範囲532とが重複する部分は、第1の範囲531における波形(振幅)と、第2の範囲532における波形とのそれぞれに重み付けをして加算する。
例えば、図21の(b)に示すように、第1の範囲531に対する重み係数w1(t)は、第2の範囲532と重ならない時刻tからt1の区間をw1(t)=1とし、第2の範囲532と重なる時刻t1からt2の区間をw1(t)=f(t)とする。ここで、関数f(t)は、時刻t1からt2の区間においてf(t1)=1からf(t2)=0に単調減少する関数とする。
また、第2の範囲532に対する重み係数w2(t)は、第1の範囲531と重なる時刻t1〜t2の区間をw1(t)=g(t)とし、第1の範囲531と重ならない時刻t2以降の区間をw2(t)=1とする。ここで、関数g(t)は、時刻t1〜t2の区間においてg(t1)=0からg(t2)=1に単調増加し、かつf(t)+g(t)=1を満たす関数とする。
図21の(a)に示した音声データの波形x(t)に対し、重み係数w1(t),w2(t)を用いて基本周期Kの音声波形522を重ね合わせた波形y(t)は、下記式(10)により算出する。
y(t)=w1(t)・x(t)+w2(t)・x(t+K) ・・・(10)
このように、基本周期Kの音声波形を重ね合わせる際の境界となる部分において波形を重み付け加算することで、母音区間を伸長した音声データの該境界部分において波形(サンプル)が不連続になり音質が劣化することを防ぐことが可能となる。
以上のように、本実施形態の携帯電話端末25は、通話中に自装置の収音装置2から入力される入力音声データの話速を推定し、該入力音声データの話速を適正な話速に制御して通話相手の電話機に送信することが可能である。また、本実施形態の携帯電話端末25における話速調整部26では、第1の実施形態で説明した話速推定装置1と同様、話速を推定する際に、入力音声データに含まれる母音区間の時間長についての頻度分布に基づいて、各母音区間の母音数を決定する。このため、本実施形態によれば、音声データにおける話速を精度良く推定することが可能であり、容易に音声データの話速を適正な話速に制御する(減速させる)ことが可能となる。また、基本周期Kの音声波形を重ね合わせる際に、境界となる部分において波形を重み付け加算することで、母音区間を伸長した音声データにおける音質の劣化を防ぐことが可能となる。
なお、基本周期Kの音声波形を重ね合わせる処理は、図20及び図21を参照して説明した上記の方法に限らず、他の方法に従って行ってもよい。
また、話速調整部26において発話区間及び母音区間を検出する際の検出方法は、既知の検出方法のいずれかであればよい。例えば、発話区間及び母音区間を検出する際には、音声データにおける自己相関係数AC(tm)、或いはフォルマント周波数の時間変化平均ΔFM(tm)に基づいて検出してもよい。
更に、本実施形態に係る携帯電話端末25の話速調整部26で行う処理は、図17のフローチャートに限らず、適宜変更可能である。例えば、話速調整部26では、ステップS3〜S5の処理の代わりに、上述したステップS3’〜S5’の処理を行ってもよい。話速調整部26においてステップS3’〜S5’の処理を行う場合、モーラ数決定部140は、ステップS3’の処理を行う時間長算出部と、ステップS4’の処理を行う最小値特定部と、ステップS5’の処理を行うモーラ数決定部とを含む。
第1の実施形態及び第2の実施形態で挙げた話速推定装置1、並びに第3の実施形態で挙げた携帯電話端末25は、それぞれ、コンピュータと、該コンピュータに実行させるプログラムとにより実現可能である。以下、図22を参照して、コンピュータとプログラムとにより実現される話速推定装置1について説明する。
図22は、コンピュータのハードウェア構成を示す図である。
図22に示すように、コンピュータ8は、プロセッサ801と、主記憶装置802と、補助記憶装置803と、入力装置804と、出力装置805と、入出力インタフェース806と、通信制御装置807と、媒体駆動装置808と、を備える。コンピュータ8におけるこれらの要素801〜808は、バス810により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
プロセッサ801は、Central Processing Unit(CPU)やMicro Processing Unit(MPU)等である。プロセッサ801は、オペレーティングシステムを含む各種のプログラムを実行することにより、コンピュータ8の全体の動作を制御する。プロセッサ801は、例えば、図2のステップS1〜S6の処理を含む音声処理プログラムを実行する。
主記憶装置802は、図示しないRead Only Memory(ROM)及びRandom Access Memory(RAM)を含む。主記憶装置802のROMには、例えば、コンピュータ8の起動時にプロセッサ801が読み出す所定の基本制御プログラム等が予め記録されている。一方、主記憶装置802のRAMは、プロセッサ801が、各種のプログラムを実行する際に必要に応じて作業用記憶領域として使用する。主記憶装置802のRAMは、例えば、音声データの一部、発話区間及び母音区間を示す情報、母音区間の時間長の頻度分布、算出した話速等の保持(記憶)に利用可能である。
補助記憶装置803は、主記憶装置802のRAMと比べて容量の大きい記憶装置であり、例えば、Hard Disk Drive(HDD)や、フラッシュメモリのような不揮発性メモリ(Solid State Drive(SSD)を含む)等である。補助記憶装置803は、プロセッサ801によって実行される各種のプログラムや各種のデータ等の記憶に利用可能である。補助記憶装置803は、例えば、図2のステップS1〜S6の処理を含む音声処理プログラムの記憶に利用可能である。また、補助記憶装置803は、例えば、音声データ、該音声データに含まれる発話区間及び母音区間を示す情報、母音区間の時間長の頻度分布、算出した話速等の保持(記憶)に利用可能である。
入力装置804は、例えば、キーボード装置やタッチパネル装置等である。コンピュータ8のオペレータ(利用者)が入力装置804に対して所定の操作を行うと、入力装置804は、その操作内容に対応付けられている入力情報をプロセッサ801に送信する。入力装置804は、例えば、話速を推定する処理を開始させる命令の入力や、各種設定値の入力等に利用可能である。
出力装置805は、例えば、液晶表示装置等の表示装置やプリンタ等の印刷装置である。出力装置805は、図2のステップS6で算出した発話区間の話速の出力に利用可能である。
入出力インタフェース806は、コンピュータ8と、他の電子機器とを接続する。入出力インタフェース806は、例えば、フォーンジャックや、Universal Serial Bus(USB)規格のコネクタ等を備える。入出力インタフェース806は、例えば、コンピュータ8と、収音装置2との接続に利用可能である。
通信制御装置807は、コンピュータ8をインターネット等のネットワークに接続し、ネットワークを介したコンピュータ8と他の通信機器との各種通信を制御する装置である。通信制御装置807は、例えば、コンピュータ8と、電話機16等との間での音声データの送受信に利用可能である。
媒体駆動装置808は、可搬型記憶媒体890に記録されているプログラムやデータの読み出し、補助記憶装置803に記憶されたデータ等の可搬型記憶媒体890への書き込みを行う。媒体駆動装置808には、例えば、1種類又は複数種類の規格に対応したメモリカード用リーダ/ライタが利用可能である。媒体駆動装置808としてメモリカード用リーダ/ライタを用いる場合、可搬型記憶媒体890としては、メモリカード用リーダ/ライタが対応している規格、例えば、Secure Digital(SD)規格のメモリカード(フラッシュメモリ)等を利用可能である。また、可搬型記録媒体890としては、例えば、USB規格のコネクタを備えたフラッシュメモリが利用可能である。更に、コンピュータ8が媒体駆動装置808として利用可能な光ディスクドライブを搭載している場合、当該光ディスクドライブで認識可能な各種の光ディスクを可搬型記録媒体890として利用可能である。可搬型記録媒体890として利用可能な光ディスクには、例えば、Compact Disc(CD)、Digital Versatile Disc(DVD)、Blu-ray Disc(Blu-rayは登録商標)等がある。可搬型記録媒体890は、例えば、図2のステップS1〜S6の処理を含む音声処理プログラムの記憶に利用可能である。また、可搬型記録媒体890は、例えば、音声データ、該音声データに含まれる発話区間及び母音区間を示す情報、母音区間の時間長の頻度分布、算出した話速等の保持(記憶)に利用可能である。
例えば、オペレータが入力装置804等を利用して話速を推定する処理を開始する命令をコンピュータ8に入力すると、プロセッサ801が、補助記憶装置803等の非一時的な記録媒体に記憶させた音声処理プログラムを読み出して実行する。音声処理プログラムが図2のステップS1〜S7の処理を含むプログラムである場合、コンピュータ8は、入力音声データから話速を算出し、算出した話速を表示装置等の出力装置805に出力する処理を繰り返す。音声処理プログラムを実行している間、プロセッサ801は、話速推定装置1における音声取得部110、発話区間検出部120、母音区間検出部130、モーラ数決定部140、話速算出部150、及び出力部160として機能する(動作する)。また、プロセッサ801が音声処理プログラムを実行している間、主記憶装置802のRAMや補助記憶装置803等は、話速推定装置1の図示してない記憶部として機能する。すなわち、主記憶装置802のRAMや補助記憶装置803等は、音声データ、該音声データに含まれる発話区間及び母音区間を示す情報、母音区間の時間長の頻度分布、算出した話速等を記憶する記憶部として機能する。
なお、話速推定装置1として動作させるコンピュータ8は、図22に示した全ての要素801〜808を含む必要はなく、用途や条件に応じて一部の要素を省略することも可能である。例えば、コンピュータ8は、通信制御装置807や媒体駆動装置808が省略されたものであってもよい。
また、コンピュータ8に実行させる音声処理プログラムは、図17のフローチャートのように、算出した話速に基づいて音声データの話速を制御し、話速を制御した音声データを出力する処理を含むプログラムであってもよい。
更に、コンピュータ8は、携帯電話端末25等の電話機として動作させることも可能である。コンピュータ8を電話機として動作させる、例えば、コンピュータ8に、各実施形態で説明した処理を行う音声処理プログラムと並行して、コンピュータ8と、他の電話機との間で音声データを送受信する通話処理プログラムを実行させる。この場合、コンピュータ8に実行させるプログラムは、ステップS1〜S6の処理により算出した(推定した)話速に基づいて、音声データの話速を制御する処理を行うプログラムであってもよい。
加えて、コンピュータ8に実行させる音声処理プログラムは、図2及び図17のフローチャートにおけるステップS3〜S5の処理が、上述したステップS3’〜S5’の処理に置換されたプログラムであってもよい。
以上記載した各実施形態に関し、更に以下の付記を開示する。
(付記1)
入力音声データにおける発話区間に含まれる複数の母音区間を検出し、
検出した前記複数の母音区間それぞれの時間長を算出し、
前記複数の母音区間の時間長についての頻度分布を算出するとともに、前記複数の母音区間それぞれの時間長のうちの最小値を特定し、
特定した前記時間長の最小値と、前記頻度分布とに基づいて、前記複数の母音区間それぞれの時間長と対応するモーラ数を算出し、
算出した前記モーラ数に応じて前記入力音声データにおける前記発話区間と対応する出力信号を制御する、
処理をコンピュータに実行させることを特徴とする音声処理プログラム。
(付記2)
前記時間長の最小値を特定する処理では、
前記頻度分布において頻度がピークとなる複数の時間長のうちの最小値を特定する、
ことを特徴とする付記1に記載の音声処理プログラム。
(付記3)
前記時間長の最小値を特定する処理では、
前記頻度分布において頻度がピークとなる複数の時間長を特定し、
前記複数の時間長に基づいて、前記頻度分布において隣接する前記ピーク間の時間長を算出し、
算出した前記ピーク間の時間長の平均値を前記時間長の最小値に特定する、
ことを特徴とする付記1に記載の音声処理プログラム。
(付記4)
前記頻度分布を算出する処理では、
前記発話区間に含まれる全ての母音区間のうちの、該発話区間における末尾の母音区間を除外して前記頻度分布を算出する、
ことを特徴とする付記1に記載の音声処理プログラム。
(付記5)
前記頻度分布を算出する処理では、
前記発話区間に含まれる全ての母音区間のうちの、時間長が所定の範囲内である母音区間を抽出して前記頻度分布を算出する、
ことを特徴とする付記1に記載の音声処理プログラム。
(付記6)
前記モーラ数を算出する処理では、
前記母音区間の時間長を前記時間長の最小値で除した値に最も近い整数値を、該母音区間のモーラ数とする、
ことを特徴とする付記1に記載の音声処理プログラム。
(付記7)
前記母音区間を検出する処理では、
前記入力音声データにおける信号対雑音比を算出し、
算出した前記信号対雑音比が閾値以上で連続する区間を前記母音区間として検出する、
ことを特徴とする付記1に記載の音声処理プログラム。
(付記8)
前記母音区間を検出する処理では、
前記入力音声データにおける波形自己相関を算出し、
算出した前記波形自己相関が閾値以上で連続する区間を前記母音区間として検出する、
ことを特徴とする付記1に記載の音声処理プログラム。
(付記9)
前記母音区間を検出する処理では、
前記入力音声データにおけるフォルマント周波数を算出し、
算出した前記フォルマント周波数の時間変化量が閾値以上となる時刻を前記母音区間と非母音区間との境界として検出する、処理を含む、
ことを特徴とする付記1に記載の音声処理プログラム。
(付記10)
前記出力信号を制御する処理は、
算出した前記複数の母音区間それぞれのモーラ数と、前記入力音声データにおける前記発話区間の時間長とに基づいて、前記入力音声データにおける前記発話区間の話速を算出する、処理を含む、
ことを特徴とする付記1に記載の音声処理プログラム。
(付記11)
前記出力信号を制御する処理は、
算出した前記話速が閾値以上である場合に、前記入力音声データにおける前記母音区間を伸長して話速を低下させる、処理を更に含む、
ことを特徴とする付記9に記載の音声処理プログラム。
(付記12)
コンピュータが、
入力音声データにおける発話区間に含まれる複数の母音区間を検出し、
検出した前記複数の母音区間それぞれの時間長を算出し、
前記複数の母音区間の時間長についての頻度分布を算出するとともに、前記複数の母音区間それぞれの時間長のうちの最小値を特定し、
特定した前記時間長の最小値と、前記頻度分布とに基づいて、前記複数の母音区間それぞれの時間長と対応するモーラ数を算出し、
算出した前記モーラ数に応じて前記入力音声データにおける前記発話区間と対応する出力信号を制御する、
処理を実行することを特徴とする音声処理方法。
(付記13)
入力音声データにおける発話区間に含まれる複数の母音区間を検出する母音区間検出部と、
検出した前記複数の母音区間それぞれの時間長を算出して前記複数の母音区間の時間長についての頻度分布を算出するとともに、前記複数の母音区間それぞれの時間長のうちの最小値を特定し、特定した前記時間長の最小値と、前記頻度分布とに基づいて、前記複数の母音区間それぞれの時間長と対応するモーラ数を決定するモーラ数決定部と、
決定した前記モーラ数と、前記発話区間の時間長とに基づいて前記入力音声データにおける前記発話区間の話速を算出する話速算出部と、
を備えることを特徴とする音声処理装置。