(57)【要約】  重み付け加算の対象となるセグメントの複数の組みを、オーディオデータの時間軸に対して非線形に、選択する。選択された複数の組みに対して、重み付け加算を実行することで、速度変換を実現する。非線形な選択は、オーディオデータに存在するセグメントの組みのそれぞれに対して類似度を算出し、その類似度に基づきセグメントの組みの順序付けを行って、かかる順位が上位に位置するものを、重ね合わせの対象とすることでなされる。
2007086365.tif 000002
【特許請求の範囲】
【請求項１】
変換装置であって、
オリジナルのオーディオデータを構成する複数セグメントのうち一部のものの再生期間を、他のセグメントの再生期間と重ね合わせるセグメント処理手段と、
重ね合わせの対象になったセグメントの組みと、当該重ね合わせの対象にならなかったセグメントとを、時系列に並べることで、変換結果となるオーディオデータを生成する生成手段とを備え、
前記重ね合わせの対象になったセグメントの組みと、当該重ね合わせの対象にならなかったセグメントとは、オリジナルのオーディオデータの時間軸において、非線形な関係にある
ことを特徴とする変換装置。
【請求項２】
前記変換装置は、
オリジナルのオーディオデータを構成するセグメントの組合せを複数生成して、個々の組合せについて、類似度を算出する算出手段を備え、
前記重ね合わせの対象となるセグメントの組みは、
複数セグメントの組合せのうち、算出手段により算出された類似度の高さが上位となるものであり、
前記重ね合わせの対象にならなかったセグメントは、
複数セグメントの組合せのうち、算出手段により算出された類似度の高さが上位にならなかったものである
ことを特徴とする請求項１記載の変換装置。
【請求項３】
前記変換装置は、
重ね合わせの対象となるセグメントの組みをオーディオデータから選択する選択手段を備え、
選択手段は、1つ選択して、その度に、その組みにおけるセグメント間の時間差の累計をとり、
重ね合わせの対象となるセグメントの組みは、
当該時間差の累計値が、目標時間長を越えないことを条件として、選択手段がセグメントの組みの選択を繰り返すことで選ばれる
ことを特徴とする請求項２記載の変換装置。
【請求項４】
元のオーディオデータの時間長と、目標時間長との比率をαとした場合、
前記変換が圧縮である場合の目標時間長は、オーディオデータの時間長×(１−α)であり、
前記変換が伸長である場合の目標時間長は、オーディオデータの時間長×(α−１)である
ことを特徴とする請求項３記載の変換装置。
【請求項５】
重ね合わせの対象となるセグメントの組みのそれぞれは、基準セグメント、補助セグメントからなり、
基準セグメントは、オーディオデータのスタート点からエンド点まで、ある時間間隔置きに存在する複数のセグメントの中のどれかであり、
補助セグメントは、基準セグメントの位置を基準にして最大遅延時間だけ隔てられた時点から、最小遅延時間だけ隔てられた時点までに存在する複数のセグメントのどれかであり、
前記時間間隔とは、最小遅延時間を上回る時間長である、請求項２記載の変換装置。
【請求項６】
最小遅延時間は入力信号の最短周期の近傍の値であり、最大遅延時間は、入力信号の最長周期の近傍の値であり、
基準セグメントの時間長が最小遅延時間と最大遅延時間の中間値であり、かつ基準セグメントから最大遅延時間だけ隔てた位置に補助セグメントが配された場合、基準セグメントと補助セグメントとにはギャップが生じ、
基準セグメントの時間長が最小遅延時間と最大遅延時間の中間値であり、かつ基準セグメントから最小遅延時間だけ隔てた位置に補助セグメントが配された場合、基準セグメントと補助セグメントとにはオーバーラップが生じる、ことを特徴とする請求項５記載の変換装置。
【請求項７】
速度変換が時間圧縮である場合、補助セグメントは、再生時間軸において基準セグメントより後に位置し、
前記変換が伸長である場合、補助セグメントは、再生時間軸において基準セグメントより前に位置する、ことを特徴とする請求項２記載の変換装置。
【請求項８】
前記変換装置は、音声用の変換装置として映像及び音声の再生出力を行う再生装置に組み込まれ、
再生装置は、映像再生の速度変換を行う映像用の変換装置を備え、
映像用の変換装置は、
ビデオデータを構成する複数のフレームのうち、一部をフリーズ又はスキップしつつ出力することで、速度変換を行う
ことを特徴とする請求項１記載の変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声の速度変換技術の技術分野に属し、再生音声の聴きやすさの向上に関する。
【背景技術】
【０００２】
音声の速度変換技術とは、音声の基本周波数（音程）を維持しつつ、継続時間長のみを変化させる技術であり、映像や音楽の再生装置において、トリック再生時の音質向上に取り入れられている。以下、従来の速度変換について説明する。
従来の速度変換では、オーディオデータを複数の周期に分け、各周期を、12m秒のセグメントに分割する。ここでは、1つの周期がA,B,C,D,Eという5つのセグメントに分割されたとすると、これら同じ周期に属するセグメントの組合せに対して、類似度を算出し、この周期に属するセグメントのうち、類似度が最も高くなる組み合わせが、どれとどれの組み合わせであるかを判定する。ここでA,B,C,D,Eのうち、B,Cの組み合わせについての類似度が最も高い場合、B,Cが同時に再生されるように重ね合わせを行う。この重ね合わせは、時間的に前に存在するセグメントBに、時間的に漸減する窓関数を乗じ、時間的に後に存在するセグメントCに、時間的に漸増する窓関数を乗じて、2つのセグメントを加算することでなされる。この重ね合わせの結果を、B/Cとして、上述したようなA,B,C,D,Eを、A,B/C,D,Eとして出力すれば、周期の時間長は4/5になる。同様の類似度算出と、重ね合わせとを全ての周期に対して行えば、オーディオデータの時間長4/5に縮小することになる。【０００３】
逆に、時間的に前に存在するセグメントBに、時間的に漸増する窓関数を乗じ、時間的に後に存在するセグメントCに、時間的に漸減する窓関数を乗じて、2つのセグメントを加算した場合の重ね合わせの結果を、C＼Bとする。上述したようなA,B,C,D,Eに、このC＼Bを加えて、A,B,C＼B,C,D,Eとして出力すれば、周期の時間長は6/5倍になる。同様の類似度算出と、重ね合わせとを全ての周期に対して行えば、オーディオデータの時間長を6/5倍に伸長することができる。【０００４】
上述したような速度変換には、例えば特許文献１に記載されているようなオーディオデータの話速制御型補聴方法、または特許文献２もしくは非特許文献１に記載されているようなオーディオデータに対する線形な音声変換装置が知られている。
【特許文献１】特開平５-８０７９６号公報
【特許文献２】特開平４-１０４２００号公報
【非特許文献１】鈴木，三崎  「高品質音声速度変換方式のDSPによる実現」，信学    技報，SP90-34（１９９０）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上述したような速度変換は、対象となる信号に対して例えば周期を定めて、周期に属する複数のセグメントから重ね合わせの対象となるものを選ぶという線形的なものなので、重ね合わせの対象となるセグメントは、オーディオデータの再生時間軸に対して、一様に選ばれることになる。このような一様な選択の結果、再生される音声は、録音テープを早く回したり、遅く回して再生したとき生じるような、おかしな音声になることがあり、その内容の聞き取りやすさが、充分に保障されているとはいい難い。【０００６】
また、重ね合わせ処理の対象として、母音が発声されている有音区間や無音区間を選ぶことが、有効であるという事実が、近年の研究にて判明しているが、数百ミリ秒の母音区間や、1秒、2秒というオーダの無音区間が継続しているようなオーディオデータが速度変換の対象である場合、上述したような速度変換は、有音になっている区間からも、無音になっている区間からも、一様に重ね合わせの対象となるセグメントを選んでしまう。そのため、周期を定めて、その中から重ね合わせの対象となるセグメントを選ぶという速度変換は、余り効率がよいとはいえないとの問題点があった。【０００７】
本発明の目的は、内容の聞き取り易さを維持しつつも、時間長を、所望の長さにして再生することができる、変換装置を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明にかかる変換装置は、オリジナルのオーディオデータを構成する複数セグメントのうち一部のものの再生期間を、他のセグメントの再生期間と重ね合わせるセグメント処理手段と、重ね合わせの対象になったセグメントの組みと、当該重ね合わせの対象にならなかったセグメントとを、時系列に並べることで、変換結果となるオーディオデータを生成する生成手段とを備え、前記重ね合わせの対象になったセグメントの組みと、当該重ね合わせの対象にならなかったセグメントとは、オリジナルのオーディオデータの時間軸において、非線形な関係にあることを特徴としている。
【発明の効果】
【０００９】
前記重ね合わせの対象になったセグメントの組みと、当該重ね合わせの対象にならなかったセグメントとは、オリジナルのオーディオデータの時間軸において、非線形な位置に存在するので、無音区間や母音が発声されている有音区間から、重ね合わせの対象となる音声を多く選び、子音が発声されている有音区間からセグメントを全く選択しないという、非線形選択が可能になる。オーディオデータにおいて一部に偏在している母音の発生区間や無音声区間を、重ね合わせの対象とすることができるので、原音の周波数を余り変えることなく、オーディオデータの時間長を伸び縮みさせることができる。【００１０】
かかる伸び縮みは、人間が早く話したり、遅く話したりする際、無意識にしているものであり、かかる伸び縮みの実現により、話し口調に近い音声再生が、速度変換において実現されることになる。これにより、再生音声を、人間が発声速度を変える場合の速度の遷移に類似させることができる。従って、音声欠落や音声重複が少なく、音質劣化も少ないという効果がある。【００１１】
重ね合わせの対象となるセグメントを、オーディオデータから非線形に選択するので、速度変換の対象となるオーディオデータの区間が広ければ広いほど、多くの範囲から、重ね合わせの対象となるセグメントの組みが選ばれることになる。線形型の速度変換のように、重ね合わせの対象は、周期の内部に制限されないので、当該速度変換と比較して、高効率な伸長／圧縮が可能となる。【００１２】
組みにおけるセグメントのうち、一方はある人物の音声のみからなり、他方は、同じ人物の音声にBGMやノイズを加えたものであっても、かかる組みの類似度が、これ以外のセグメントの組みより高いと判定されることにより重ね合わせの対象と選ばれるので、期待の圧縮比や伸長比での再生出力を実現することができる。
また、任意的であるが、上述した変換装置の技術的事項(技術的事項１とする)に、以下の技術的事項を加え、変換装置を具体的な構成にすることにより、更なる効果をもたらすことができる。【００１３】
｛技術的事項２｝
前記変換装置は、オリジナルのオーディオデータを構成するセグメントの組合せを複数生成して、個々の組合せについて、類似度を算出する算出手段を備え、前記重ね合わせの対象となるセグメントの組みは、複数セグメントの組合せのうち、算出手段により算出された類似度の高さが上位となるものであり、前記重ね合わせの対象にならなかったセグメントは、複数セグメントの組合せのうち、算出手段により算出された類似度の高さが上位にならなかったものである。【００１４】
本発明にかかる変換装置の特定に、上述したような技術的事項が追加されることにより、類似度が高くなるセグメントの時間差の決定と、重み付け加算を行うセグメントの組の選択とを、類似度という単一の評価尺度を用いて行うので、処理の複雑さや処理量を抑えることができるという効果もある。
｛技術的事項３｝
前記変換装置は、重ね合わせの対象となるセグメントの組みをオーディオデータから選択する選択手段を備え、選択手段は、1つ選択して、その度に、その組みにおけるセグメント間の時間差の累計をとり、重ね合わせの対象となるセグメントの組みは、当該時間差の累計値が、目標時間長を越えないことを条件として、選択手段がセグメントの組みの選択を繰り返すことで選ばれることを特徴としている。【００１５】
本発明にかかる変換装置の特定に、上述したような技術的事項が追加されることにより、所望の時間軸変換比が得られる組数だけ重み付け加算を行うセグメントの組みを選択するので、時間軸変換比を細かくかつ精度良く変えることができるという効果もある。
｛技術的事項４｝
前記変換装置は、音声用の変換装置として映像及び音声の再生出力を行う再生装置に組み込まれ、再生装置は、映像再生の速度変換を行う映像用の変換装置を備え、映像用の変換装置は、ビデオデータを構成する複数のフレームのうち、一部をフリーズ又はスキップしつつ出力することで、速度変換を行うことを特徴としている。【００１６】
本発明にかかる変換装置の特定に、上述したような技術的事項が追加されることにより、ビデオデータに対しては、フレーム画像を一部フリーズ又はスキップすることで、時間軸に対してほぼ均一に、つまり、線形的に、速度変換が施されることになる。
その結果、ビデオデータの表示には簡単な処理でガクガクしない滑らかな速度変換が施されることになり、オーディオデータには、人間が発声速度を変える場合の速度遷移に類似した自然な速度変換が施されることになる。【００１７】
さらに映像と音声の同期は途中でずれることはあるものの、音声に対する速度変換は非線形であるが正確に、所定の変換比率に基づく速度変換を行うので、少なくとも最後には映像と音声の同期を一致させることができるという効果がある。
【図面の簡単な説明】
【００１８】
【図１】変換装置が組込まれる再生装置の内部構成を示す図である。
【図２】非線形選択により選択される複数のセグメントを示す図である。
【図３】図２で選択されたセグメントの組みが、どのように重ね合わせられるかを示す図である。
【図４】セグメント選択ログを示す図である。
【図５】（ａ）は、時間軸伸長を行う場合に、類似度が最高であるとして選択された、Ｘ１、Ｘ２の3つの組みを示す図である。
【００１９】
（ｂ）Ｘ１,Ｘ２か重ね合わせの対象になる場合、実行される演算を模式的に示す図である。
（ｃ）は、図５（ａ）のように、Ｘ１、Ｘ２とＸ１'，Ｘ２'が選択された場合の重ね合わせ出力を示す。
【図６】（ａ）は、時間軸圧縮を行う場合に選択される、Ｘ１、Ｘ２の3つの組みを示す図である。
【００２０】
（ｂ）Ｘ１,Ｘ２が重ね合わせの対象になる場合、実行される演算を模式的に示す図である。
（ｃ）（ａ）のように、Ｘ１、Ｘ２と、Ｘ１'，Ｘ２'とが選択された場合の重ね合わせ出力を示す。
【図７】時間軸伸張（α≧１）である場合における、速度変換の処理手順を示すフローチャートである。
【図８】処理単位iについての最適時間差Tl_optと、最小二乗誤差R_minとを算出する処理の詳細な処理手順を示すフローチャートである。
【図９】時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組を選択する処理手順を示すフローチャートである。
【図１０】類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する処理手順を示すフローチャートである。
【図１１】（ａ）ステップＳ７３９の１巡目の実行にて、出力される部分を示す。
【００２１】
（ｂ）ステップＳ７３９の２巡目以降の実行にて、出力される部分を示す。
（ｃ）ステップＳ７４７の実行にて、出力される部分を示す。
【図１２】時間軸圧縮（α≦１）による速度変換を行う場合の処理手順を示すフローチャートである。
【図１３】処理単位iについて最適時間差Tl_optと、最小二乗誤差R_minとを算出する処理のフローチャートである。
【図１４】時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組の選択を行う処理手順を示すフローチャートである。
【図１５】類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する処理手順を示すフローチャートである。
【図１６】（ａ）ステップＳ８３９の１巡目の実行にて、出力される部分を示す。
【００２２】
（ｂ）ステップＳ８３９の２巡目以降の実行にて、出力される部分を示す。
（ｃ）ステップＳ８４７の実行にて、出力される部分を示す。
【図１７】第２実施形態に係る変換装置の内部構成を示す図である。
【図１８】類似度の評価関数が二乗誤差である場合の類似度計算回路１０５の内部構成を示す図である。
【図１９】類似度の評価関数が相関関数の場合の類似度計算回路１０５の内部構成を示す図である。
【図２０】判定回路１０６の内部構成を示す図である。
【図２１】第３実施形態に係る変換装置が組込まれる再生装置の内部構成を示す図である。
【図２２】速度変換のためのセットアップメニューの一例を示す図である。
【図２３】第３実施形態に示した再生装置の内部構成を組込んだシステムLSIを模式的に示す図である。
【図２４】図２３のようにして作られたシステムLSIを、機器内に組み込んだ状態を示す図である。
【符号の説明】
【００２３】
１  記憶回路
２  映像音声分離回路
３  映像復号回路
４  音声復号回路
５  音声速度変換装置
６  記憶回路
７  制御回路
８  映像速度変換装置
９  制御回路
１０１  記憶回路
１０２  スイッチ回路
１０３  バッファメモリ回路
１０４  バッファメモリ回路
１０５  類似度計算回路
１０６  判定回路
１０７  窓関数発生回路
１０８  スイッチ回路
１０９  スイッチ回路
１１０  乗算回路
１１１  乗算回路
１１２  加算回路
１１３  スイッチ回路
１１４  出力バッファ回路
１１５  速度設定回路
１１６  パラメータ記憶回路
１１７  ポインタ値計算回路
１１８  ポインタ制御回路
１１９  制御信号発生回路
１２０  パラメータ選択回路
【発明を実施するための最良の形態】
【００２４】
(第１実施形態)
以下、図面を参照しながら、本発明にかかる変換装置の実施形態について説明する。本発明にかかる変換装置の使用形態は、再生装置に組み込まれ、音声再生機能の一部として利用されるというものである。
変換装置による速度変換は、半導体メモリカードやHDDなど、書き換え型の記録媒体に記録されているオリジナルのオーディオデータを読み出し、読み出されたオリジナルのオーディオデータを一旦、非圧縮の状態にまで復号して、これにより得られた非圧縮のオーディオデータを構成するセグメントのうち、ユーザにより指定された時間範囲Trに属するものの組みを、オーディオデータの再生時間軸とは非線形に選択して、かかるセグメントの組みを重ね合わせて出力することでなされる。このように出力されたセグメントの集まりが、トリック再生用のオーディオデータになる。【００２５】
トリック再生用のオーディオデータとは、再生装置がトリック再生を実行するにあたって、オリジナルのオーディオデータの代わりに再生されるオーディオデータであり、変換の元になったオリジナルのオーディオデータと、その時間範囲Trと、速度変換前後の再生時間軸の比率αとに対応付けられた状態で記録媒体に書き込まれる。
そうすると、後日、オリジナルのオーディオデータの時間範囲Trに対して、比率αでのトリック再生が命じられた際、再生装置は、記録媒体に記録されているトリック再生用のオーディオデータのうち、このオリジナルのオーディオデータと、時間範囲Trと、トリック再生における速度比率αとの組合せに合致するものを取り出して、オリジナルのオーディオデータの代わりに再生することができる。この際、予め作成しておいたトリック再生用オーディオデータを、記録媒体から読み出して、再生に供することができるので、ユーザは、きれいな音声で、トリック再生時の音声を聞くことができる。【００２６】
本実施形態では、トリック再生用オーディオデータを一旦蓄積して、再生することを意図しているので、変換装置による速度変換の実行は、必ずしも、リアルタイムに行われる必要はない。
図１は、変換装置が組込まれる再生装置の内部構成を示す図である。本図に示すように再生装置は、記憶回路１と、映像音声分離回路２と、映像復号回路３と、音声復号回路４と、記憶回路６と、制御回路７とから構成される。【００２７】
記憶回路１は、MPEG2-Video,MPEG4-AVC等の符号化方式で圧縮されたビデオデータと、MPEG2-AAC,Dolby Digitalといった符号化方式で圧縮されたオーディオデータとを格納するものであり、制御回路が出力するアドレス値に基づいて、所望のビデオデータとオーディオデータを出力する。
映像音声分離回路２は、記憶回路１から出力されたビデオデータとオーディオデータを入力し、ビデオデータは映像復号回路３に出力し、オーディオデータは音声復号回路４に出力する。【００２８】
映像復号回路３は、映像音声分離回路２から出力されたビデオデータを映像信号に復号する。
音声復号回路４は、映像音声分離回路２から出力されたオーディオデータをオーディオデータに復号して、記憶回路６に格納する。
制御回路７は、MPU、当該MPUに命令コードを供給するROMから構成されるワンチップマイコンであり、音声復号回路の復号によりメモリ上に得られた非圧縮のオーディオデータのうち、予め定められた時間範囲Trに対して、速度変換を施す。この速度変換は、オーディオデータの予め定められた時間範囲Trの中に存在するセグメントの組のうち、類似度が高いものを非線形に選んで、重み付け加算の対象とするというものである。【００２９】
本発明は、重ね合わせの対象となるセグメントを、非線形選択に選択することを特徴としている。以下、この非線形選択の原理を模式的に説明する。
図２は、非線形選択により選択される複数のセグメントを示す図である。第１段目は、対象となるオーディオデータに対応する音声信号レベルを示し、第２段目は、このオーディオデータに対して非線形選択を行った場合、選択されるセグメントを示し、第３段目は、このオーディオデータに対して線形選択を行った場合、選択されるセグメントを示す。第３段目において、重ね合わせの対象として選択されたセグメントの組みは、ハッチングを付して示している。このハッチングが付されたセグメントの所在に注意を払えば、第３段目では、“｛”にて明示されている周期から、重ね合わせの対象となるセグメントの組みが選択されている。このことから線形選択では、オーディオデータにおける一定周期に属するセグメントの中から、重ね合わせの対象となるセグメントの組みが一様に選択されていることがわかる。【００３０】
第２段目においても、重ね合わせの対象として選択されたセグメントの組みは、ハッチングを付して示している。このハッチングが付されたセグメントの所在に注意を払えば、第２段目では、第１段目における音声信号レベルのうち、その波高値が閾値未満となる部分(無音区間という)から、重ね合わせの対象となる組みが選ばれていることがわかる。このことから非線形選択では、オーディオデータにおける一定周期とは無関係に、重ね合わせの対象となるセグメントの組みが、無音区間から集中的に選択されていることがわかる。【００３１】
図３は、図２で選択されたセグメントの組みが、どのように重ね合わせられるかを示す。本図における第１段目は、非線形選択による重ね合わせを示し、第２段目は、線形選択による重ね合わせを示す。これら第１段目、第２段目は、図２に示したオーディオデータのうち、有音区間から無音区間に切り替わる部分を特に示している。
第２段目におけるB/Cは、線形選択の実行時において、重ね合わせの対象になるセグメントの組みを示す。このB/Cの所在に注意を払えば、重ね合わせの対象となるセグメントの組みは、有音区間に属する周期からも、無音区間に属する周期からも、一様に選ばれていることがわかる。【００３２】
第１段目におけるA/B、C/Dは、非線形選択の実行時において重ね合わせの対象になるセグメントの組みを示す。このA/B、C/Dの所在に注意を払えば、重ね合わせの対象となるセグメントの組みは、無音区間に属する周期から集中的に選ばれていて、有音区間に属する周期からは、選ばれていないことがわかる。
以上の非線形選択の要件について、更に説明を進める。【００３３】
＜非線形選択の対象＞
非線形選択の対象となる区間、つまり、図２に例示するところの無音区間の特色としては、セグメントの相関性が高い値になるか、又は、最小２乗誤差が低い値になっているという性質が認められる。これら相関性の高さ、又は、最小２乗誤差の低さを、“類似度の高さ”と呼ぶ。本発明では、かかる類似度が高いセグメントの組みを、非線形選択の対象としている。【００３４】
ここで二乗誤差の演算、相関関数の演算としては、以下の数式を利用することができる。
（数１）は、類似度算出のための二乗誤差の演算を示す。ただし（数１）では簡単のため、単位時間とサンプリング周期とを等しいとして表現している。【００３５】
【数１】
2007086365.tif 000003
【００３６】
（数２）は、類似度算出のための相関関数の演算を示す。ただし（数２）では簡単のため、単位時間とサンプリング周期とを等しいとして表現している。【００３７】
【数２】
2007086365.tif 000004
【００３８】
かかる類似度が高くなる区間は、無音区間であるとは限らず、母音が偏在しているような有音区間も、類似度が高くなる。また類似度として上述の(数１)(数２)以外のものを採用した場合は、別の特性をもった区間における類似度が高くなる可能性がある。このようにして算出された類似度が、高くなる区間を、本発明にかかる非線形選択では、選択の対象としている。【００３９】
類似度として、最小２乗誤差、相関関数のどちらを使用するかによって、類似度が高いセグメントを選択するか、類似度が低いセグメントを選択するかという基準が変わる。以降は、特に断らない限り、類似度の高さとして最小２乗誤差の小ささを採用するものとし、かかる類似度が高いかどうかを、セグメント選択の基準とする。
また、(数１)(数２）においては、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)との組みに対して、２乗誤差又は相関関数が算出されているので、これらＸ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)との組みが、非線形選択の対象となる。以降、これらＸ１(1)〜Ｘ１(Ts)、Ｘ２(1)〜Ｘ２(Ts)をそれぞれ、Ｘ１、Ｘ２と呼び、一個の処理単位として扱う。
＜選択の範囲＞
上述したような非線形選択の範囲は、以下の数３、数４を満たすセグメントの集まりであるといえる。【００４０】
【数３】
2007086365.tif 000005
【００４１】
【数４】
2007086365.tif 000006
【００４２】
ここでαは、オーディオデータの入力時間長と、出力時間長との時間軸変換比であり、数３は、α≧１のケースにて適用され、数４は、α＜１のケースにて適用される。
時間軸伸長を行う場合、α≧１となり、時間軸圧縮を行う場合、α＜１となる。これらの数３、数４において、左辺はオーディオデータの目標時間長、右辺はセグメントの時間長の累計であるので、数３、数４を満たすセグメントの集合は、オーディオデータにおけるセグメントの組みに対して、類似度を算出して、その類似度に基づきセグメントの組みの順位付けを行い、この順位に従った選択を繰り返すことで得られる。上述したように、類似度の算出は、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とを対象にしてなされているので、この数３、数４における選択も、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とを対象にしてなされる。
＜重ね合わせ＞
非線形選択により選択されたセグメントの組みは、以下の数式に基づく重ね合わせの対象となる。【００４３】
【数５】
2007086365.tif 000007
【００４４】
【数６】
2007086365.tif 000008
【００４５】
ここでＷ1(n)は、漸増する窓関数であり、Ｗ2(n)は、漸減する窓関数である。Tsは、セグメントの個数を意味する。上述したように、類似度の算出及びセグメントの選択は、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とを対象にしてなされているので、この数５、数６における重ね合わせも、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とを対象にしてなされる。【００４６】
予め断っておくが、本願において技術的思想の創作として位置付けられているのは、以上に述べたような、重ね合わせの対象たるセグメントを、時間軸とは非線形に選ぶという点であり、本明細書で開示したハードウェア構成及びソフトウェア構成は、かかる技術的思想の創作を、実際の再生装置に実装する場合に合理的であると考えられているものの1つに過ぎない。以降、MPUに、速度変換を実行させる場合の、ソフトウェアによる実装を、以下に説明する。【００４７】
非線形選択にあたって、重ね合わせの対象となるセグメントの組みをどのように選択するかについて説明する。上述したように、類似度の算出と、選択、重ね合わせは、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とを対象にしてなされている。
これらのセグメントの組みを以降、Ｘ１、Ｘ２と略記する。ここで、Ｘ１は、Ｘ２より時間的に先に位置する。【００４８】
時間軸伸長の場合、時間的に後続するＸ２を基準にして、Ｘ１を移動させる。基準となるセグメントを上述したように選ぶのは、Ｘ２を固定し、Ｘ１を、再生時間軸において移動させるためである。これによりＸ２と、Ｘ２以前の部分との連続性を維持しつつ、最大遅延時間Tl_maxから、最小遅延時間Tl_minまでの範囲にて時間長を変更させることができる。【００４９】
Tl_max、Tl_min、セグメントの時間長について説明する。例えば音声信号の基本周波数(fundamental frequency)の取り得る範囲は、おおよそ50〜500Hzと言われる。従って、音声信号の最長周期は50Hzの逆数である20msecとなり、最短周期は500Hzの逆数である2msecとなる。上述したようなセグメントＸ１、Ｘ２の時間長は、2msecと20msecの間の、12msecに設定している。そして最小遅延時間Tl_minは、最短周期の2msec以下の時間長に設定し、最大遅延時間Tl_maxは、20msec以上の時間長に設定している。そうすれば、基本周波数が50〜500Hzの範囲の入力音声信号に対して、セグメント間の位相を合わせて重み付け加算をすることが可能となる。ただし演算量との兼ね合いから、実際には遅延時間が2msec以下から20msec以上の範囲でセグメント間の位相を合わせるためのセグメント探索を行わない場合があり、ソフトウェア又はハードウェアで、速度変換を実現するにあたっては、最小遅延時間Tl_minは入力信号の最短周期に、所定時間を加減算した値、つまり、最短周期の近傍値に設定するのが望ましい。同様に、最大遅延時間Tl_maxもまた、入力信号の最長周期に所定時間を加減算した値、つまり、最長周期の近傍値に設定するのが望ましい。【００５０】
時間軸圧縮を行う場合、時間的に先行するＸ１を基準とし、Ｘ２を移動させる。基準セとなるセグメントを上述したように選ぶのは、Ｘ１を固定し、Ｘ２を、再生時間軸において、移動させるためである。これによりＸ１と、Ｘ１以前の部分との連続性を維持しつつ、最大遅延時間Tl_maxから、最小遅延時間Tl_minまでの範囲にて、Ｘ１と、Ｘ２との間の時間長を変更させることができる。かかる移動において、類似度が最高となった補助セグメントの位置を、最適遅延時間Tl_optにて表現する。ここでＸ１、Ｘ２のうち、基準として固定する側を“基準セグメント”といい、類似度の最大値を探索するため、移動させる側を“補助セグメント”という。【００５１】
こうした類似度の算出と、セグメントの選択とは、図４に示す選択ログを用いることで実現される。図４は、セグメント選択ログを示す図である。本ログの追記単位は、Ｘ１の先頭時刻と、Ｘ２の先頭時刻との組みに、類似度Ｒ(i)と、選択フラグＭ(i)とを対応付けることで構成される。図中のログにおける先頭の追記単位は、時刻AAAAと、時刻BBBBとの組みに対して、CCCCの類似度と、値“1”の選択フラグとを対応付けたものである。【００５２】
次の追記単位は、時刻AAAA'と、時刻BBBB’との組みに対して、CCCC’の類似度と、値“1”の選択フラグとが対応付けたものである。
Ｘ１、Ｘ２、Tl_max、Tl_min、Tl_optがどのような値を取り得るかを時間軸上で描いたのが、図５である。図５（ａ）は、時間軸伸長を行う場合に、類似度が最高であるとして選択された、Ｘ１、Ｘ２の3つの組みを示す図である。【００５３】
本図における５０７、５０８、５０９は、Ｘ２となるべき信号区間である。これらのうち、５０７は、オーディオデータの先頭から間隔Tl_maxだけ隔てられており、５０８は、５０７から所定の間隔ΔTdだけ、５０９も、５０８から所定の間隔ΔTdだけ隔てられている。この所定の間隔ΔTdは、例えばTl_maxを上回る間隔である。
Ｘ１は、Ｘ２の位置を基準にしてTl_maxだけ隔てられた時点から、Tl_minだけ隔てられた時点までのどこかに存在する。
(Ｘ２が、５０７に位置した場合)
５０２_iは、Ｘ１の先頭時点を指し示す第１ポインタであり、５０３_iは、Ｘ２が５０７に位置していた場合において、Ｘ２の先頭時点を指し示す第２ポインタである。５０２_iは、５０３_i−Tl_minの計算から算出される時刻なので、かかる時刻が第１ポインタに初期設定される。【００５４】
５０４_minから５０４_maxまでは、Ｘ１が移動することで、Ｘ１が存在し得る範囲を示す。つまり、第２ポインタを上述した位置に固定し、第１ポインタを更新することで、Ｘ１をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ１が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。５０４_maxは、Ｘ２が上述した５０７に位置していた場合、５０３_i−Tl_maxの計算から算出されるＸ１の占有範囲である。５０４_minは、Ｘ２が上述した５０７に位置していた場合、５０３_i−Tl_minの計算から算出されるＸ１の占有範囲である。【００５５】
５０４_optは、Ｘ１が５０４_maxから５０４_minまでの範囲を移動するにあたって、類似度が最高となる場合におけるＸ１の占有範囲であり、その先頭位置は、５０３_i−Tl_optとなる。Tl_optは、上述したようなＸ１の移動範囲において類似度の高いセグメントの組みを探索することで得られた値であり、その時のＸ１とＸ２の時間差を意味する。
(Ｘ２が、５０８に位置した場合)
このときのＸ１、Ｘ２をＸ１’、Ｘ２’とする。【００５６】
５０２_i+1は、Ｘ１’の先頭時点を示す第１ポインタの値である。５０３_i+1は、Ｘ２’の先頭時点を示す第２ポインタの値である。５０２_i+1は、５０３_i+1−Tl_minの計算から算出される時刻なので、かかる時刻が第１ポインタに初期設定される。
５０５_minから５０５_maxまでは、Ｘ１’が取り得る範囲を示す。つまり、第２ポインタを上述した位置に固定し、第１ポインタを更新することで、Ｘ１’をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ１’が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。５０５_maxは、Ｘ２’が上述した５０８に位置していた場合、５０３_i+1−Tl_maxの計算から算出されるＸ１’の占有範囲である。５０５_minは、Ｘ２’が上述した５０８に位置していた場合、５０３_i+1−Tl_minの計算から算出されるＸ１’の占有範囲である。【００５７】
５０５_optは、Ｘ１’が５０５_maxから５０５_minまでの範囲を移動するにあたって、類似度が最高となる場合におけるＸ１’の占有範囲であり、その先頭位置は、５０３_i+1−Tl_optとなる。Ｘ２’が、５０８に位置していた場合、この５０５_optが、導きだされることになる。
(Ｘ２が、５０９に位置した場合)
このときのＸ１、Ｘ２をＸ１''、Ｘ２''とする。【００５８】
５０２_i+2は、Ｘ１''の先頭時点を示す第１ポインタの値であり、５０３_i+2は、Ｘ２''のＸ２の先頭時点を示す第２ポインタの値である。５０２_i+2は、５０３_i+2−Tl_minの計算から算出される時刻なので、かかる時刻が第１ポインタに初期設定される。
５０６_minから５０６_maxまでは、Ｘ１''が取り得る範囲を示す。つまり、第２ポインタを上述した位置に固定し、第１ポインタを更新することで、Ｘ１''をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ１''が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。５０６_maxは、Ｘ２''が上述した５０９に位置していた場合、５０３_i+2−Tl_maxの計算から算出されるＸ１''の占有範囲である。５０６_minは、Ｘ２''が上述した５０９に位置していた場合、５０３_i+2−Tl_minの計算から算出されるＸ１''の占有範囲である。【００５９】
５０６_optは、５０６_maxから５０６_minまでの範囲を移動するにあたって、類似度が最高となる場合におけるＸ１''の占有範囲であり、その先頭位置は、５０３_i+2−Tl_optとなる。
図５のＸ１,Ｘ２、Ｘ１',Ｘ２'が選択された後、Ｘ１'',Ｘ２''が選択された時点で、累計Tasが、目標の時間長Taを上回ったとすると、Ｘ１'',Ｘ２''は選択対象から外れる。これによりＸ１,Ｘ２、Ｘ１',Ｘ２'の組みが、重ね合わせの対象になる。図中の、Ｘ３、Ｘ４は、Ｘ１,Ｘ２、Ｘ１',Ｘ２'の組みが選択されることで、そのまま出力される区間である。【００６０】
図５（ｂ）は、Ｘ１,Ｘ２か重ね合わせの対象になる場合、実行される演算を模式的に示す図である。
図中の演算「Ｘ１」×「Ｗ１」は、Ｘ１（５１０）に対して、漸減する窓関数を乗ずるという演算を示す。本図において、Ｘ１を表す四角形の大きさはＸ１のデータ量を示し、Ｗ１を表す三角形の大きさは、Ｗ１による縮小比率を表す。つまり、Ｘ１にＷ１が乗ざれることで、Ｘ１は、Ｗ１に相当する三角形の大きさまで、縮小されるのである。【００６１】
図中の演算「Ｘ２」×「Ｗ２」は、Ｘ２（５１１）に対して、漸増する窓関数５１３を乗ずるという演算を示す。本図において、Ｘ２を表す四角形の大きさはＸ２のデータ量を示し、Ｗ２を表す三角形の大きさは、Ｗ２による縮小比率を表す。つまり、Ｘ２にＷ２が乗ざれることで、Ｘ２は、Ｗ２に相当する三角形の大きさまで、縮小されるのである。
図中の演算「＋」は、「Ｘ１×Ｗ１」と、「Ｘ２×Ｗ２」との加算を示す。加算された信号「Ｘ２＼Ｘ１」は、Ｗ１により縮小がなされたＸ１と、Ｗ２により縮小がなされたＸ２との和である。【００６２】
図５（ｃ）は、図５（ａ）のように、Ｘ１、Ｘ２とＸ１'，Ｘ２'が選択された場合の重ね合わせ出力を示す。本図における出力信号は、「Ｘ２＼Ｘ１」の出力区間、「Ｘ０」の出力区間、「Ｘ２’＼Ｘ１’」の出力区間、「Ｘ３」の出力区間、「Ｘ２''」の出力区間、「Ｘ４」の出力区間からなる。図中の「Ｘ２＼Ｘ１」は、「Ｘ１×Ｗ１」と、「Ｘ２×Ｗ２」との加算出力である。図中の「Ｘ２’＼Ｘ１’」は、「Ｘ１’×Ｗ１」と、「Ｘ２’×Ｗ２」との加算出力である。「Ｘ３」は、そのまま出力されたものである。【００６３】
図中の「Ｘ２''」、「Ｘ４」は、そのまま出力されたものである。
図６（ａ）は、時間軸圧縮を行う場合に選択される、Ｘ１、Ｘ２の3つの組みを示す図である。
６０４、６０５、６０６は、Ｘ１が存在する区間を示す。Ｘ２は、Ｘ１の位置を基準にしてTl_maxだけ隔てられた時点から、Tl_minだけ隔てられた時点までのどこかに存在する。【００６４】
(Ｘ１が、６０４に位置した場合)
６０２_iは、Ｘ１の先頭時点を指し示す第１ポインタであり、６０３_iは、Ｘ２の先頭時点を指し示す第２ポインタである。第２ポインタは、６０２_i＋Tl_minの値に初期設定される。
６０７_minから６０７_maxまでは、Ｘ２が取り得る範囲を示す。つまり、第１ポインタを上述した位置に固定し、第２ポインタを更新することで、Ｘ２をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ２が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。６０７_maxは、Ｘ１が上述した６０４に位置していた場合、６０２_i＋Tl_maxの計算から算出されるＸ２の占有範囲である。６０７_minは、Ｘ１が上述した６０４に位置していた場合、６０２_i＋Tl_minの計算から算出されるＸ２の占有範囲である。【００６５】
６０７_optは、６０７_maxから６０７_minまでの範囲をＸ２が移動するにあたって、類似度が最高となる場合におけるＸ２の占有範囲であり、その先頭位置は、６０２_i+Tl_optとなる。
(Ｘ１が、６０５に位置した場合)
このときのＸ１、Ｘ２をＸ１’、Ｘ２’とする。６０２_i+1は、Ｘ１’が６０５に位置していた場合における、Ｘ１’の先頭時点を指し示す第１ポインタであり、６０３_i+1は、Ｘ２’の先頭時刻を指し示す第２ポインタである。この第２ポインタは、６０２_i+1+Tl_minの値に初期設定される。【００６６】
６０８_minから６０８_maxまでは、Ｘ２’が取り得る範囲を示す。つまり、第１ポインタを上述した位置に固定し、第２ポインタを更新することで、Ｘ２’をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ２’が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。６０８_maxは、Ｘ１’が上述した６０５に位置していた場合、６０２_i+1＋Tl_maxの計算から算出されるＸ２’の占有範囲である。６０８_minは、Ｘ１’が上述した６０５に位置していた場合、６０２_i+1+Tl_minの計算から算出されるＸ２'の占有範囲である。【００６７】
６０８_optは、６０８_maxから６０８_minまでの範囲を移動するにあたって、類似度が最高となる場合におけるＸ２’の占有範囲であり、その先頭位置は、６０２_i+1+Tl_opt’となる。第１ポインタが６０２_i+1を指し、Ｘ１’が、６０５に位置していた場合、かかる位置の第１ポインタに対して、かかる６０８_optが、導きだされることになる。
(Ｘ１が、６０６に位置した場合)
このときのＸ１、Ｘ２をＸ１''、Ｘ２''とする。６０２_i+2は、Ｘ１''の先頭時点を指し示す第１ポインタであり、６０３_i+2は、Ｘ２''の先頭時点を指し示す第２ポインタである。【００６８】
６０９_minから６０９_maxまでは、Ｘ２''が取り得る範囲を示す。つまり、第１ポインタを上述した位置に固定し、第２ポインタを更新することで、Ｘ２''をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ２''が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。６０９_maxは、Ｘ１''が上述した６０６に位置していた場合、６０２_i+2＋Tl_maxの計算から算出されるＸ２''の占有範囲である。６０９_minは、Ｘ１''が上述した６０６に位置していた場合、６０２_i+2+Tl_minの計算から算出されるＸ２''の占有範囲である。【００６９】
６０９_optは、Ｘ２''が６０９_maxから６０９_minまでの範囲を移動するにあたって、類似度が最高となる場合におけるＸ２''の占有範囲であり、その先頭位置は、６０２_i+2+Tl_optとなる。第１ポインタが６０２_i+2を指し、Ｘ１''が、６０６に位置していた場合、かかる位置の第１ポインタに対して、かかる６０９_optが、導きだされることになる。【００７０】
図６のＸ１,Ｘ２、Ｘ１',Ｘ２'が選択された後、Ｘ１'',Ｘ２''が選択された時点で、累計TasがTaを上回ったとすると、Ｘ１'',Ｘ２''は選択外となる。これによりＸ１,Ｘ２、Ｘ１',Ｘ２'の組みが、重ね合わせの対象になる。図中の、Ｘ３、Ｘ４は、Ｘ１,Ｘ２、Ｘ１',Ｘ２'の組みが選択されることで、そのまま出力される区間である。Ｘ１,Ｘ２、Ｘ１',Ｘ２'が選択されたため、Ｘ０は、Ｘ２と、Ｘ１’との間になっており、Ｘ３は、Ｘ２’と、Ｘ１''との間になっている。一方、Ｘ１'',Ｘ２''は、選択外なので、Ｘ４は、Ｘ２’以降、全てになっている。【００７１】
図６（ｂ）は、Ｘ１,Ｘ２か重ね合わせの対象になる場合、実行される演算を模式的に示す図である。
図中の演算「Ｘ１」×「Ｗ２」は、Ｘ１（６１０）に対して、漸減する窓関数６１２を乗ずるという演算を示す。本図において、Ｘ１を表す四角形の大きさはＸ１のデータ量を示し、Ｗ２を表す三角形の大きさは、Ｗ２による縮小比率を表す。つまり、Ｘ１にＷ２が乗ざれることで、Ｘ１は、Ｗ２に相当する三角形の大きさまで、縮小されるのである。【００７２】
図中の演算「Ｘ２」×「Ｗ１」は、Ｘ２（６１１）に対して、漸増する窓関数６１３を乗ずるという演算を示す。本図において、Ｘ２を表す四角形の大きさはＸ２のデータ量を示し、Ｗ１を表す三角形の大きさは、Ｗ１による縮小比率を表す。つまり、Ｘ２にＷ１が乗ざれることで、Ｘ２は、Ｗ１に相当する三角形の大きさまで、縮小されるのである。
図中の演算「＋」は、「Ｘ１×Ｗ２」と、「Ｘ２×Ｗ１」との加算を示す。加算された信号「Ｘ１／Ｘ２」は、Ｗ２により縮小がなされたＸ１と、Ｗ１により縮小がなされたＸ２との和である。【００７３】
図６（ｃ）は、図６（ａ）のように、Ｘ１、Ｘ２と、Ｘ１'，Ｘ２'とが選択された場合の重ね合わせ出力を示す。本図における出力信号は、「Ｘ１／Ｘ２」の出力区間、「Ｘ０」の出力区間、「Ｘ１’／Ｘ２’」の出力区間、「Ｘ４」の出力区間からなる。
図中の「Ｘ１／Ｘ２」は、「Ｘ１×Ｗ２」と、「Ｘ２×Ｗ１」との加算出力である。「Ｘ０」は、そのまま出力されたものである。【００７４】
図中の「Ｘ１’／Ｘ２’」は、「Ｘ１'×Ｗ２」と、「Ｘ２'×Ｗ１」との加算出力である。図中の「Ｘ４」は、そのまま出力されたものである。
これらの図５、図６において、Ｘ１とＸ２とにギャップが生じるには、Ｘ１、Ｘ２がTl_maxだけ隔てられている場合であって、セグメントの時間長がTl_minとTl_maxの中間値であることが条件になる。Ｘ１とＸ２とにオーバラップが生じるには、Ｘ１、Ｘ２がTl_minだけ隔てられている場合であって、セグメントの時間長がTl_minとTl_maxの中間値であることが条件になる。つまり図５、図６は、セグメントの長さを、音声信号の最短周期と、最長周期の中間値に設定していることを条件にしている。【００７５】
以上のような速度変換のソフトウェアによる実装は、時間軸伸長の場合は図７〜図１０の処理手順を、時間軸圧縮の場合は図１２〜図１５の処理手順をコンピュータ記述言語で記述し、プログラムを作成して、MPUに実行させることでなされる。尚、以降、フローチャートの解説には、図１１、図１６の参考図を引用するものとする。
図７は、時間軸伸張（α≧１）である場合の速度変換の処理手順を示すフローチャートである。これら図７〜図１０のフローチャートの各ステップは、７００番台の参照符号を付すことで、図１２〜図１５のフローチャートのステップと区別することにする。【００７６】
ステップＳ７０２は、時間軸変換比αを読み込み、ステップＳ７０３において、スタート点の最大時間差Tl_max後の値を第２のポインタに初期設定する。ステップＳ７０４において処理単位カウンタiを初期値０に初期設定する。ステップＳ７００、ステップＳ７１５〜ステップＳ７２１は、ステップＳ７２０を終了条件とし、変数iを制御変数としたループを構成している。ステップＳ７０４は、このループに初期条件を与えるものである。【００７７】
ステップＳ７００は、処理単位iについて最適時間差Tl_optと、最小二乗誤差R_minとを算出する。ステップＳ７１５は、第２ポインタから最適時間差Tl_optを引いた時刻を、処理単位iにおける第1のセグメントの先頭時刻Ｘ１（i）として記憶し、ステップＳ７１６では、第２ポインタの時刻を、処理単位iにおける第２のセグメントの先頭時刻Ｘ２（i）として記憶する。【００７８】
ステップＳ７１７は、処理単位iにおける類似度R（i）として、求められた最小二乗誤差R_minを記憶する。
ステップＳ７１８は、処理単位iにおける選択M（i）として、未選択を示す“０”を設定する。ステップＳ７１９は、第２ポインタを時間△Tdだけ進める。
ステップＳ７２０は、第２ポインタに処理単位の時間長Tsを加算した時刻とエンド点とを比較するステップであり、ループの終了条件を規定する。第２ポインタに処理単位の時間長Tsを加算した時刻が、エンド点を越えない限り、本ループは繰り返されることがわかる。エンド点を越えれば、ステップＳ７５０に移行する。以上のように、本ループでは、第２ポインタを、ΔTd刻みに変化させてゆき、時間軸における各座標において、最小二乗誤差R(i)がどれだけになっているかを算出していることがわかる。【００７９】
ステップＳ７５０は、（数３）に基づいて求めた必要延長時間Taに累計延長時間Tasが到達するまで、時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組の選択を行う。
ステップＳ７５１は、類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する。【００８０】
図８は、処理単位iについて最適時間差Tl_optと、最小二乗誤差R_minとを算出する処理の詳細な処理手順を示すフローチャートである。
ステップＳ７０５は、最小二乗誤差R_minを初期値Nに初期設定するステップであり、ステップＳ７０６は、時間差Tlを初期値Tl_maxに初期設定する。ステップＳ７０７〜ステップＳ７１４は、ステップＳ７１４を終了条件とし、変数Tlを制御変数としたループを構成している。【００８１】
ステップＳ７０７は、（第２のポインタ-Tl）を開始点として、Ts個のセグメントを入力するステップであり、ステップＳ７０８は、第２のポインタを開始点としてTs個のセグメントを入力するステップである。かかるステップにより、数１、数２に示したＸ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とが入力されることになる。
ステップＳ７０９は、（数１）に基づいて時間差Tlの時のＸ１とＸ２の二乗誤差R（Tl）を計算する。【００８２】
ステップＳ７１０は、最小二乗誤差R_minと二乗誤差R（Tl）との比較であり、ステップＳ７１１及びステップＳ７１２を実行するかスキップするかの切り替えを行う。
二乗誤差R（Tl）がR_minよりも小さければステップＳ７１１及びステップＳ７１２を実行するが、大きければ、これらのステップをスキップしてステップＳ１３に移行する。
ステップＳ７１１は、二乗誤差R（Tl）を用いて最小二乗誤差R_minを更新するステップである。【００８３】
ステップＳ７１２は、時間差Tlを最適時間差Tl_optとして更新するステップである。
ステップＳ７１３は、時間差Tlを１サンプルだけ減少させる。
ステップＳ７１４は、時間差Tlと最小時間差Tl_minとを比較するという判定ステップであり、本ループの終了条件は、ステップＳ７１４がYesと判定されることである。時間差Tlが最小時間差Tl_minよりも小さくない場合にはステップＳ７０７に戻って、本ループの実行が継続される。時間差Tlが最小時間差Tl_minよりも小さい場合には、図７のフローチャートにリターンしてステップＳ７１５に進むことで、時間差Tlを最大時間差Tl_maxから最小時間差Tl_minの範囲で変える。Tlは、Tl_maxからTl_minまでの数値範囲を変化し、第１ポインタは、第２ポインタ-Tlにより定まるので、第１ポインタは、第２ポインタ-Tl_maxから第２ポインタ-Tl_minまでの数値範囲を変化する。【００８４】
このフローチャートは、変数iがインクリメントされ、第２ポインタがΔTd刻みに移動する毎に実行されるので、第２ポインタがΔTdだけ変化する毎に、第１ポインタが、第２ポインタ-Tl_maxから第２ポインタ-Tl_minまでの値をとることになる。第２ポインタがΔTd刻みに移動した場合の各移動位置において、類似度が最高になるところのＸ１の位置が、本フローチャートの実行により計算されることになる。【００８５】
以降、ステップＳ７５０の詳細について説明する。このステップＳ７５０は、以下の(数３)を満たす複数のセグメントの組みを選択するというものであり、その手順を表したのが図９のフローチャートである。
図９は、時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組を選択する処理手順を示すフローチャートである。【００８６】
ステップＳ７２２〜７３６は、スタート点からエンド点までの範囲で時間△Td毎に処理単位iを変えるループ処理である。
ステップＳ７２２は、時間軸変換比αにするための必要延長時間Taを計算する。
ステップＳ７２３は、累計延長時間Tasを初期値０に初期設定する。ステップＳ７２４〜ステップＳ７３６は、ステップＳ７３６を終了条件とし、変数Tasを制御変数とした第１ループを構成している。ステップＳ７２３は、この第１ループに初期条件を与えるものである。【００８７】
ステップＳ７２４は、類似度Rを初期値Nに初期設定して、処理単位カウンタjを初期値０に初期設定し、処理単位kを-１に初期設定する。このjは、0からiまでの変数にて特定されるＸ１、Ｘ２の組みのうち、処理対象となるものを示す。
ステップＳ７２７〜ステップＳ７３２は、ステップＳ７３２を終了条件とし、変数jを制御変数とした第２ループを構成している。ステップＳ７２４は、この第２ループに初期条件を与えるものである。この第２ループは、jを0からiまでの範囲で変化させて(ステップＳ７３１、ステップＳ７３２)、最小となるR(j)を用いて、Rを更新するものである(ステップＳ７２８、ステップＳ７２９)。またその最小となる時のjを、kとして保存するものである。【００８８】
ステップＳ７２７は、j番目の処理単位の選択フラグM（j）が0でないかどうかの判定ステップであり、ステップＳ７２８、ステップＳ７２９を実行するか、スキップするかの切り替えを行う。ここで、第２ループにおいて、jは同じ数値範囲、つまり、0からiまでの数値範囲を変化するので、同じＸ１、Ｘ２の組みが、重複して選択される可能性がある。かかる重複選択を排除するのが、このステップＳ７２７の役割である。【００８９】
ステップＳ７２８は、類似度Rを処理単位jにおける類似度R（j）と比較するステップであり、ステップＳ７２９を実行するか、スキップするかの切り替えを行う。本フローチャートでは、類似度として最小二乗誤差を用いているので、本ステップでは、R(j)がRより小さいかどうか、つまり、R＞R(j)という数式にて、本ステップにおける比較内容を表現している。類似度Rが、類似度R（j）よりも低い（二乗誤差は大きい）ならばステップＳ７２９へ進む。類似度Rが、類似度R（j）よりも高い（二乗誤差は大きくない）ならばステップＳ７２９をスキップしてステップＳ７３１へ進む。【００９０】
ステップＳ７２９は、類似度Rを処理単位jにおける類似度R（j）で更新し、選択された処理単位kを処理単位jに更新する。
ステップＳ７３１は、変数jをインクリメントするステップである。
ステップＳ７３２は、iと処理単位カウンタjとの比較であり、第２ループの終了条件を規定する。上述したような、ループ処理を抜けた後なので、iは、全処理単位数を示す値になっている。全処理単位数iが処理単位jより小さくないならばステップＳ７２７に戻り、本ループを継続する。全処理単位数を示すiが処理単位jより小さいならばステップＳ７３３に進み、本ループを抜ける。【００９１】
第２ループでは、ステップＳ７２８での比較でYesと判定されれば、R(j)の値を用いて、Rを更新してゆくので(ステップＳ７２９)、0≦ｊ≦iの範囲においてRは、最低の値になる。また、最低になったときのjの値は、kとして保存されることになる。
ステップＳ７３３は、選択処理単位kが負かどうかの判定であり、かかるループの終了条件を規定する。選択処理単位kが負であることは、第２ループにおいて、kが一度も更新されなかったことを意味する。この場合、本フローチャートの処理を終了する。【００９２】
ステップＳ７３５は、類似度が高いとして選択されたk番目の処理単位の選択M（k）に１を設定すると共に、累計延長時間Tasを更新するステップであり、累計延長時間Tasの更新は、k番目の処理単位におけるＸ２（k）の先頭時刻と、k番目の処理単位におけるＸ１（k）の先頭時刻の時間差とを加算することでなされる。かかる加算が、第１ループにおいて繰り返し実行されるので、Ｘ１、Ｘ２の時間差の累計がTasに得られることになる。【００９３】
ステップＳ７３６は、更新後の必要延長時間Taが累計延長時間Tasを越えたかどうかの判定であり、越えない場合、ステップＳ７２４に戻ってループを継続し、次に類似度の高いセグメントの組の選択を行う。越える場合、ループの終了条件は満たされたとして、本フローチャートの処理は終了することになる。
上述したように、類似度Rを最高にするための処理(ステップＳ７２８、ステップＳ７２９)は、選択フラグM（j）が０に設定されている場合に実行されるので、ステップＳ７３５において、Tasを更新すると共に、M(j)が１に更新されることで、一度選択されたjの値は、選択から除外される。そうすると、本第１ループの２巡目には、２番目に値が小さいＸ(j)が類似度Rに設定されることになり、３巡目には、３番目に値が小さいＸ(j)が類似度Rに設定されることになる。こうすることで、類似度Rが小さい順に、X1、X2の組みが選ばれてゆくことになる。【００９４】
ステップＳ７５１の処理手順の詳細について説明する。ステップＳ７５１は、セグメントの組みに対して、以下の(数５)に基づく重ね合わせを実行する手順であり、その詳細なフローチャートを図１０に示す。図１０は、類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する処理手順を示すフローチャートである。
図９では、類似度が高い順にセグメントの組みをソーティングしたが、かかる類似度の高さ順では、時系列にセグメントの組みを出力してゆくことができないので、図１０では、第２ポインタをスタート点＋Tl_maxに設定しなおすことで、セグメントの組みを時系列に選択しなおして、重ね合わせの対象としている。【００９５】
ステップＳ７３７は、第２ポインタにスタート点を設定する。ステップＳ７３８は、処理単位カウンタjを初期値０に初期設定する。
ステップＳ７３９〜ステップＳ７４６は、ステップＳ７４６を終了条件とし、変数jを制御変数としたループを構成している。
ステップＳ７３９は、第２ポインタを開始点としてj番目の処理単位におけるＸ２（j）の先頭時刻の直前までオーディオデータを入力してそのまま出力する。【００９６】
ステップＳ７４０は、選択フラグM（j）に1が設定されているか否かの判定ステップであり、ステップＳ７４１〜ステップＳ７４４の処理をスキップするか、そのまま実行するかを切り替える。変数jのうち、前図のフローチャートにおいて、選択の対象になっているものは、M(j)が“1”になっており、選択対象になっていないものは、M(j)が“0”になっている。0からiまでの数値範囲をとる変数jのうち、前図のフローチャートにおいて、選択フラグM（j）が１に設定されているものは、処理単位jの類似度が高く、選択対象であるとしてステップＳ７４１〜ステップＳ７４４を実行する。【００９７】
選択フラグM（j）が１に設定されていないならば処理単位jの類似度が高くなく選択されていないとしてステップＳ７４１〜ステップＳ７４４をスキップしてステップＳ７４５に進む。
ステップＳ７４１は、j番目の処理単位のＸ１（j）を構成するTs個のセグメントを入力する。ステップＳ７４２は、j番目の処理単位のＸ２（j）を構成するTs個のセグメントを入力する。かかるステップにより、数１、数２に示したＸ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とが入力されることになる。【００９８】
ステップＳ７４３は、数５に基づき、重ね合わせを実行する。具体的には、ステップＳ７４１、７４２で入力されたＸ１(1)〜Ｘ１(Ts)に対して、Ｗ１(1)〜Ｗ１(Ts)を乗じると共に、Ｘ２(1)〜Ｘ２(Ts)に対して、Ｗ２(1)〜Ｗ２(Ts)を乗じ、これらの乗算結果を加算して、加算結果であるＹ(1)〜Ｙ(Ts)を出力する。
ステップＳ７４４は、第１ポインタに示されているj番目の処理単位のＸ１（j）の先頭時刻に、処理単位の時間長Tsを加算し、Ｘ１（j）末尾の時刻直後を第２ポインタに設定する。【００９９】
ステップＳ７４５は、変数jをインクリメントする。
ステップＳ７４６は、全処理単位数を示すiと処理単位カウンタjとの比較であり、第２ループの終了条件を規定する。全処理単位数を示すiが処理単位jより小さくないならばステップＳ７３９に戻り、本ループを継続する。全処理単位数を示すiが処理単位jより小さいならばステップＳ７４７に進み、本ループを抜ける。【０１００】
ステップＳ７４７は、第２ポインタを開始点としてエンド点までそのまま出力する。
ただしこのフローチャートでは簡単のため、単位時間とサンプリング周期とを等しいとして表現している。
図１１（ａ）〜（ｃ）は、図１０のフローチャートによりオーディオデータのどの部分が出力されるかを示す図である。【０１０１】
図１１（ａ）は、ステップＳ７３９の１巡目の実行にて、出力される部分を示す。ステップＳ７３９の１巡目の実行時には、第２ポインタは、スタート点を指しているので、本図に示すように、そのまま出力される区間は、スタート点から第２ポインタの直前までとなる。
図１１（ｂ）は、ステップＳ７３９の２巡目以降の実行にて、出力される部分を示す。ステップＳ７３９の２巡目以降の実行時には、第２ポインタは、Ｘ１(j)の先頭点＋Tsを指しているので、本図に示すように、そのまま出力される区間は、Ｘ１(j)の先頭点から、Ｘ２(j+1)の直前までとなる。【０１０２】
図１１（ｃ）は、ステップＳ７４７の実行にて、出力される部分を示す。ステップＳ７４７の実行時には、第２ポインタは、Ｘ１(j)の先頭点＋Tsを指しているので、本図に示すように、そのまま出力される区間は、Ｘ１(j)の直後から、エンド点までとなる。
このように、ステップＳ７０７からステップＳ７１４で、2つのセグメント間の時間差をTl_minからTl_maxまで、１サンプルずつ変えて、２つのセグメント間の類似度を（数１）もしくは（数2）に基づいて求め、その中から最も類似度の高い2つのセグメントを探索し、ステップＳ７１５で最も高い類似度になる第1のセグメントの先頭時刻Ｘ１（i）を記憶し、ステップＳ７１６で最も高い類似度になる第２のセグメントの先頭時刻Ｘ２（i）を記憶し、ステップＳ７１７で最も高い類似度になる時の類似度R（i）を記憶している。【０１０３】
ステップＳ７２２からステップＳ７３６は、入力となるオーディオデータにおける様々なセグメントの組み合わせの中から、類似度が特に高く重み付け加算するのに最適なセグメントの組を優先的に選択することができるので、音声欠落や音声重複が少なく、音質劣化も少ないという効果がある。
また、所望の時間軸変換比αが得られるのに必要な数の重み付け加算を行うセグメントの組みだけを選択して、かつ重み付け加算されたセグメントの前後に任意の時間長のオーディオデータを出力するので、時間軸変換比を細かくかつ精度良く変えることができという効果もある。【０１０４】
ここで、類似度が高い値を持つセグメントの組は、一般的に無音区間や母音の発生区間に偏在しているので、人間が発声速度を変える場合の速度の遷移に類似させることができるという効果がある。
そして、時間△Td毎に求めた最も高い類似度R（j）の中から、類似度の高い順にセグメントの組を選択するので、類似度が高くなるセグメント間の時間差Tl_optの決定と、重み付け加算を行うセグメントの組の選択を、全て類似度という単一の評価尺度を用いて行うので、処理の複雑さや処理量を抑えることができるという効果もある。【０１０５】
さらにステップＳ７４１で、j番目の処理単位のＸ１（j）の開始点から、Ｘ１(1)〜Ｘ１(Ts)を入力し、ステップＳ７４２で、j番目の処理単位のＸ２（j）の開始点から、Ｘ２(1)〜Ｘ２(Ts)を入力して、これらの重ね合わせを行う結果、どのような場合でも重み付け加算したオーディオデータの出力の時間長を一定の処理単位の時間長Tsにでき、音質が低下しにくいという効果もある。以上が、時間軸伸長を行う場合の処理手順である。【０１０６】
続いて、再生時間軸圧縮を行う場合の処理手順について説明する。
図１２は、時間軸圧縮（α≦１）による速度変換を行う場合の処理手順を示すフローチャートである。これら図１２〜図１５のフローチャートの各ステップは、８００番台の参照符号を付すことで、図７〜図１０のフローチャートのステップと区別することにする。
ステップＳ８０１は、時間軸変換比αを読み込む。ステップＳ８０２は、第１ポインタにスタート点の値を初期設定する。ステップＳ８０３は、処理単位カウンタiを初期値０に初期設定する。ステップＳ８００、ステップＳ８１５〜ステップＳ８２１は、ステップＳ８２０を終了条件とし、変数iを制御変数としたループを構成している。【０１０７】
ステップＳ８００は、処理単位iについて最適時間差Tl_optと、最小二乗誤差R_minとを算出する。
ステップＳ８１５は、第１ポインタの時刻を、処理単位iにおけるＸ１（i）の先頭時刻として記憶する。ステップＳ８１６は、第１ポインタに最適時間差Tl_optを加えた時刻を、処理単位iにおけるＸ２（i）の先頭時刻として記憶する。ステップＳ８１７は、処理単位iにおける類似度R（i）として、求められた最小二乗誤差R_minを記憶する。ステップＳ８１８は、処理単位iにおける選択M（i）として、未選択を示す０を記憶する。ステップＳ８１９は、第１ポインタを時間△Tdだけ進める。【０１０８】
ステップＳ８２０は、第１ポインタに、最大時間差Tl_maxと処理単位の時間長Tsを加算した時刻と、エンド点との比較であり、本ループの終了条件を規定している。エンド点が第１ポインタに最大時間差Tl_maxと処理単位の時間長Tsを加算した時刻よりも小さいと判定された場合、本ループを抜けてステップ８５０に移行する。大きいと判定された場合、ステップＳ８２１に移行する。【０１０９】
ステップＳ８５０は、数４に基づきセグメントの組みを選択するステップである。
ステップＳ８５１は、類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する。
以降、ステップＳ８００の詳細について説明する。このステップＳ８００は複数のセグメントの組みを選択するというものであり、その処理手順を図１３のフローチャートに示す。図１３は、処理単位iについて最適時間差Tl_optと、最小二乗誤差R_minとを算出する処理のフローチャートである。【０１１０】
ステップＳ８０５は、最小二乗誤差R_minを初期値Nに初期設定する。ステップＳ８０６は、時間差Tlを初期値Tl_maxに初期設定する。ステップＳ８０７〜ステップＳ８１４は、ステップＳ８１４を終了条件とし、変数Tlを制御変数としたループを構成している。
ステップＳ８０７は、第１ポインタを開始点として、処理単位Ｘ１を構成するTs個のセグメントを入力する。具体的には、Ｘ１(1)〜Ｘ１(Ts)を入力する。ステップＳ８０８は、(第１ポインタ＋Tl)を開始点として、処理単位Ｘ２を構成するTs個のセグメントを入力する。具体的には、Ｘ２(1)〜Ｘ２(Ts)を入力する。【０１１１】
ステップＳ８０９は、（数１）に基づいて時間差Tlの時のＸ１とＸ２の二乗誤差R（Tl）を計算する。ステップＳ８１０は、最小二乗誤差R_minと二乗誤差R（Tl）とを比較し、ステップＳ８１１、ステップＳ８１２をスキップするか、これらを実行するかを切り替えるものである。
R_minが二乗誤差R（Tl）よりも大きければステップＳ８１１、８１２を実行し、そうでなければこれらのステップを実行する。【０１１２】
ステップＳ８１１は、二乗誤差R（Tl）を新たな最小二乗誤差R_minとして更新する。ステップＳ８１２は、時間差Tlを最適時間差Tl_optとして更新する。ステップＳ８１３は、時間差Tlを１サンプルだけ減少させる。ステップＳ８１４は、時間差Tlと最小時間差Tl_minとを比較であり、本ループの終了条件を規定している。時間差Tlが最小時間差Tl_minよりも小さくない場合にはステップＳ８０７に戻って本ループを継続する。時間差Tlが最小時間差Tl_minよりも小さい場合には、本フローチャートの処理を終える。
図１４は、時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組の選択を行う処理手順を示すフローチャートである。本フローチャートは、以下の(数４)を満たす複数のセグメントの組みを選択するというものである。（数４）は、必要短縮時間Taに累計延長時間Tasが到達するまで、時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組の選択を行うことを意味する。【０１１３】
ステップＳ８２２は、（数４）に基づいて、時間軸変換比αにするための必要短縮時間Taを計算する。ステップＳ８２３は、累計短縮時間Tasを初期値０に初期設定する。ステップＳ８２４〜ステップＳ８３５は、ステップＳ８３５を終了条件とし、変数Tasを制御変数としたループを構成している。ステップＳ８２３は、このループに初期条件を与えるものである。【０１１４】
ステップＳ８２４は、類似度Rを初期値Nに初期設定し、処理単位カウンタjを初期値０に初期設定して、選択処理単位kを-１に初期設定する。ステップＳ８２７〜ステップＳ８３２は、ステップＳ８３２を終了条件とし、変数jを制御変数としたループを構成している。
ステップＳ８２７は、j番目の処理単位の選択フラグM（j）が０でないかどうかの判定であり、ステップＳ８２８、ステップＳ８２９を実行するか、これらをスキップするかを切り替える。j番目の処理単位の選択フラグM（j）が１ならば既にj番目の処理単位は選択済みとして、ステップＳ８２８、ステップＳ８２９をスキップしてステップＳ８３１に進む。j番目の処理単位の選択フラグM（j）が０ならば未選択としてステップＳ８２８に進む。【０１１５】
ステップＳ８２８は、類似度Rと、処理単位jにおける類似度R（j）との比較であり、ステップＳ８２９を実行するかスキップするかの切り替えを行う。本フローチャートでは、類似度として最小二乗誤差を用いているので、本ステップでは、R(j)がRより小さいかどうか、つまり、R＞R(j)という数式にて、本ステップにおける比較内容を表現している。
類似度Rが類似度R（j）よりも高い（二乗誤差は大きくない）ならばステップＳ８２９をスキップしてステップＳ８３１へ進み、類似度Rが類似度R（j）よりも低い（二乗誤差は大きい）ならばステップＳ８２９を実行する。【０１１６】
ステップＳ８２９は、処理単位jにおける類似度R（j）を用いて類似度Rを更新し、処理単位jを用いて選択処理単位kを更新する。
ステップＳ８３１は、処理単位jを１増加させるステップであり、ステップＳ８３２は、全処理単位数を示すiと処理単位カウンタjとの比較であり、第２ループの終了条件を規定する。全処理単位数を示すiが処理単位jより小さくないならばステップＳ８２７に戻り、本ループを継続する。全処理単位数を示すiが処理単位jより小さいならばステップＳ８３３に進み、本ループを抜ける。【０１１７】
ステップＳ８３３は、選択処理単位kが負かどうかの判定であり、本フローチャートの終了条件を規定している。ｋが負であるなら、全ての処理単位で重み付け加算処理が終了しているとして本フローチャートの処理を終える。選択処理単位kが負でないならば重み付け加算が済んでいない処理単位が存在するとしてステップＳ８３４に進む。
ステップＳ８３４は、類似度が高いとして選択されたk番目の処理単位の選択M（k）に１を設定すると共に、累計短縮時間Tasにk番目の処理単位Ｘ２（k）の先頭時刻と、k番目の処理単位Ｘ１（k）の先頭時刻との時間差を加算することにより、累計短縮時間Tasを更新する。【０１１８】
ステップＳ８３５は、必要短縮時間Taと累計短縮時間Tasとの比較であり、本フローチャート及びループの終了要件を規定する。必要短縮時間Taが累計短縮時間Tasよりも大きいならばステップＳ８２４に戻って次に類似度の高いセグメントの組の選択を行い、必要短縮時間Taが累計短縮時間Tasよりも大きくないならば類似度の高いセグメントの組の選択を終了したとして本フローチャート及び本ループを終了する。
ステップＳ８５１の処理手順の詳細について説明する。【０１１９】
ステップＳ８５１は、セグメントの組みに対して、上述したような(数６)に基づく重ね合わせを実行する手順であり、その詳細なフローチャートを図１５に示す。
図１５は、類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する処理手順を示すフローチャートである。
ステップＳ８３７は、第１ポインタをスタート点に設定し、ステップＳ８３８は、処理単位カウンタjを初期値０に初期設定する。図１４では、類似度が高い順にセグメントの組みをソーティングしたが、かかる類似度の高さ順では、時系列にセグメントの組みを出力してゆくことができないので、図１５では、第１ポインタをスタート点に設定しなおすことで、セグメントの組みを時系列に選択しなおして、重ね合わせの対象としている。  ステップＳ８３９〜ステップＳ８４６は、ステップＳ８４６を終了条件とし、変数jを制御変数としたループを構成している。ステップＳ８３８は、このループに初期条件を与えるものである。【０１２０】
ステップＳ８３９は、第１ポインタを開始点としてj番目の処理単位のＸ１（j）の先頭時刻の直前までオーディオデータを入力してそのまま出力する。ステップＳ８４０は、選択フラグM（j）に１が設定されているか否かの判定であり、ステップＳ８４１〜ステップＳ８４４を実行するか、これらのステップをスキップするかの切り替えを行う。
選択フラグM（j）が１に設定されているならば処理単位jの類似度が高く選択されているとしてステップＳ８４１〜ステップＳ８４４の処理を実行する。選択フラグM（j）が“1”に設定されていないならば処理単位jの類似度が高くなく選択されていないとしてステップＳ８４１〜ステップＳ８４４の処理をスキップしてステップＳ８４５に進む。【０１２１】
ステップＳ８４１は、j番目の処理単位のＸ１（j）を開始点として、処理単位Ｘ１を構成するTs個のセグメントを入力する。具体的には、Ｘ１(1)〜Ｘ１(Ts)を入力する。
ステップＳ８４２は、j番目の処理単位のＸ２（j）を開始点として、処理単位Ｘ２を構成するTs個のセグメントを入力する。具体的には、Ｘ２(1)〜Ｘ２(Ts)を入力する。
ステップＳ８４３は、（数６）に基づいた重ね合わせを実行する。具体的には、ステップＳ８４１、８４２で入力されたＸ１(1)〜Ｘ１(Ts)に対して、Ｗ２(1)〜Ｗ２(Ts)を乗じると共に、Ｘ２(1)〜Ｘ２(Ts)に対して、Ｗ１(1)〜Ｗ１(Ts)を乗じ、これらの乗算結果を加算して、加算結果であるＹ(1)〜Ｙ(Ts)を出力する。【０１２２】
ステップＳ８４４は、第２ポインタに示される処理単位のＸ２（j）の先頭時刻に処理単位の時間長Tsを加算し、Ｘ２（j）の末尾の時刻の直後を第１ポインタに設定する。
ステップＳ８４５は、処理単位カウンタjを１つ増加させる。
ステップＳ８４６は、全処理単位数を示すiと処理単位カウンタjとの比較であり、全処理単位数を示すiが処理単位jより小さくないならばステップＳ８３９に戻って、本ループの実行を継続する。【０１２３】
全処理単位数を示すiが処理単位jより小さいならばステップＳ８４７において、第１のポインタを開始点としてエンド点までのオーディオデータをそのまま出力した後、本フローチャートの処理を終える。
ただしこのフローチャートでは簡単のため、単位時間とサンプリング周期とを等しいとして表現している。【０１２４】
図１６（ａ）〜（ｃ）は、図１５のフローチャートによりオーディオデータのどの部分が出力されるかを示す図である。
図１６（ａ）は、ステップＳ８３９の１巡目の実行にて、出力される部分を示す。ステップＳ８３９の１巡目の実行時には、第１ポインタは、スタート点を指しているので、本図に示すように、そのまま出力される区間は、スタート点からＸ１(j)の直前までとなる。ここで、Ｘ１からＸ２までの間の部分は、出力されない。【０１２５】
図１６（ｂ）は、ステップＳ８３９の２巡目以降の実行にて、出力される部分を示す。ステップＳ８３９の２巡目以降の実行時には、第１ポインタは、Ｘ２(j)の先頭点＋Tsを指しているので、本図に示すように、そのまま出力される区間は、Ｘ２(j)の直後から、Ｘ１(j+1)の直前までとなる。Ｘ１(j)と、Ｘ２(j)との間、及び、Ｘ１(j+1)と、Ｘ２(j+1)との間は、出力されない。【０１２６】
図１６（ｃ）は、ステップＳ８４７の実行にて、出力される部分を示す。ステップＳ８４９の実行時には、第１ポインタは、Ｘ２(j)の先頭点＋Tsを指しているので、本図に示すように、そのまま出力される区間は、Ｘ２(j)及びその直後から、エンド点までとなる。
以上のように、ステップＳ８２２からステップＳ８３５で、（数４）に基づいて求めた必要短縮時間Taに累計短縮時間Tasが到達するまで、時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組の選択を行うので、所望の時間軸変換比αが得られるのに必要な数の重み付け加算を行うセグメントの組みだけが選択でき、かつ重み付け加算されたセグメントの前後に任意の時間長のオーディオデータを出力するので、時間軸変換比を細かくかつ精度良く変えることができという効果もある。【０１２７】
ここで、類似度が高い値を持つセグメントの組は一般的に無音区間や母音の発生区間に偏在しているので、人間が発声速度を変える場合の速度の遷移に類似させることができるという効果がある。
更に、類似度が高くなるセグメント間の時間差Tl_optの決定と、重み付け加算を行うセグメントの組の選択を、全て類似度という単一の評価尺度を用いて行うので、処理の複雑さや処理量を抑えることができるという効果もある。【０１２８】
加えて、どのような場合でも重み付け加算したオーディオデータの出力の時間長を一定の処理単位の時間長Tsにでき、音質が低下しにくいという効果もある。
（第２実施形態）
第２実施形態は、第１実施形態に述べた速度変換を、専用のハードウェアを用いて実装する場合の改良に関する。【０１２９】
図１７は、第２実施形態に係る変換装置の内部構成を示す図であり、本図に示すように、第２実施形態に係る変換装置は、記憶回路１０１、スイッチ回路１０２、バッファメモリ回路１０３、バッファメモリ回路１０４、類似度計算回路１０５、判定回路１０６、窓関数発生回路１０７、スイッチ回路１０８、スイッチ回路１０９、乗算回路１１０、乗算回路１１１、加算回路１１２、スイッチ回路１１３、出力バッファ回路１１４、速度設定回路１１５、パラメータ記憶回路１１６、ポインタ値計算回路１１７、ポインタ制御回路１１８、制御信号発生回路１１９、パラメータ選択回路１２０から構成される。これら図１７の内部構成図における構成要素には、１００番台の参照符号を付すことで、図１の内部構成図における構成要素と区別することにする。
記憶回路１０１は、オーディオデータを記憶しており、ポインタ制御回路１１８が出力するアドレス値と時間長に基づいて、所望の開始点と時間長のオーディオデータを出力する。【０１３０】
スイッチ回路１０２は、記憶回路１０１が出力するオーディオデータの出力先をバッファメモリ回路１０３とバッファメモリ回路１０４とスイッチ回路１１３とから選択する。
バッファメモリ回路１０３は、スイッチ回路１０２から出力されるTs個のセグメントＸ１を蓄える。
バッファメモリ回路１０４は、スイッチ回路１０２から出力されるTs個のセグメントのＸ２を格納する。【０１３１】
類似度計算回路１０５は、２つのセグメントの時間差Tlが最小時間差Tl_minから最大時間差Tl_maxまでの範囲である場合において、バッファメモリ回路１０３に格納されているＸ１と、バッファメモリ回路１０４に格納されているＸ２との類似度を算出する。
判定回路１０６は、類似度計算回路１０５がこれまで出力した類似度のうち、最も高いものはどれであるか判定して、その最高の類似度に対応するＸ１、Ｘ２の組みを検出して、かかるＸ１の先頭時刻と、Ｘ２の先頭時刻と、類似度とをパラメータ記憶回路１１６に出力する。【０１３２】
窓関数発生回路１０７は、漸増する窓関数と漸減する窓関数とを出力する。
スイッチ回路１０８は、閉じることで、バッファメモリ回路１０３に格納されたＸ１を乗算回路１１０に出力する。開いた場合、バッファメモリ回路１０３に格納されたＸ１は、乗算回路１１０に出力されない。
スイッチ回路１０９は、閉じることで、バッファメモリ回路１０４に格納されたＸ２を乗算回路１１１に出力する。スイッチ回路１０９が開いた場合、バッファメモリ回路１０４に格納されたＸ２は、乗算回路１１１に出力されない。【０１３３】
乗算回路１１０は、パラメータ記憶回路１１６に記憶され、パラメータ選択回路１２０により選択されたパラメータに基づいて記憶回路１０１から出力されたセグメントＸ１に対して窓関数発生回路１０７が出力する一方の窓関数を乗じる。
乗算回路１１１は、パラメータ記憶回路１１６に記憶され、パラメータ選択回路１２０により選択されたパラメータに基づいて記憶回路１０１から出力されたセグメントＸ２に対して窓関数発生回路１０７が出力する他方の窓関数を乗じる。【０１３４】
加算回路１１２は、乗算回路１１０により窓関数が乗じられたＸ１と、乗算回路１１１により窓関数が乗じられたＸ２とを加算する。
スイッチ回路１１３は、加算回路１１２の出力、スイッチ回路１０２の出力のうち一方を選択して、出力バッファ回路１１４に出力する。
出力バッファ回路１１４は、スイッチ回路１１３からの出力である、Ｘ１と、Ｘ２との重み付け加算の結果を一旦蓄積し、速度調整を施した上で出力する。【０１３５】
速度設定回路１１５は、GUI等を介したユーザ操作に従って入力された時間軸変換比α（出力時間長/入力時間長）を記憶する。
パラメータ記憶回路１１６は、図４に示したセグメント選択ログを記憶する。本ログの追記単位は、図４と同じであり、Ｘ１の先頭時刻と、Ｘ２の先頭時刻との組みに、類似度(i)と、選択フラグＭ(i)とを対応付けることで構成される。かかるログの追記を行うため、速度設定回路１１５は、判定回路１０６が最も高い値を検出した時の類似度と、ポインタ制御回路１１８が出力した2つのセグメントに対応するアドレス値を、ポインタ値計算回路１１７が求めるために用いたセグメントの先頭時刻とを、それぞれ、判定回路１０６、ポインタ値計算回路１１７から受け取り、受け取った類似度、先頭時刻から追記単位を作成して、これを選択ログに加える。【０１３６】
ポインタ値計算回路１１７は、類似度計算回路１０５が類似度を求めるべき、２つのセグメントのアドレス値を計算してポインタ制御回路１１８に出力する。またパラメータ記憶回路１１６に記録されているパラメータに基づいて類似度の高い、Ｘ１、Ｘ２の組みのアドレス値と時間長を計算すると共に、その前後に連続するセグメントのアドレス値と時間長を計算してポインタ制御回路１１８に出力する。【０１３７】
ポインタ制御回路１１８は、ポインタ値計算回路１１７により計算されたアドレス値に基づき、第１実施形態に述べた第１ポインタと、第２ポインタを記憶回路１０１に対して出力して、かかる第１ポインタ、第２ポインタに基づき、Ｘ１、Ｘ２が読み出されるよう、記憶回路１０１を制御する。また、ポインタ値計算回路１１７により計算された時間長に基づき、第１ポインタ、第２ポインタを更新する処理を行う。【０１３８】
制御信号発生回路１１９は、スイッチ回路１０２、１０８、１０９、１１３に対する制御を行う。ここで、類似度計算回路１０５が類似度を計算する場合、スイッチ制御としては、スイッチ回路１０２をバッファメモリ回路１０３側もしくはバッファメモリ回路１０４側に倒し、スイッチ回路１０８とスイッチ回路１０９とを開くというものになる。
加算回路１１２による加算結果を出力する場合、スイッチ制御としては、スイッチ回路１０２をバッファメモリ回路１０３側もしくはバッファメモリ回路１０４側に倒し、スイッチ回路１０８とスイッチ回路１０９は閉じ、スイッチ回路１１３を加算回路１１２側に倒すというものになる。記憶回路１０１に記憶されているセグメントを、そのまま出力バッファ回路１１４に出力する場合、スイッチ制御は、スイッチ回路１０２をスイッチ回路１１３側に倒し、スイッチ回路１１３をスイッチ回路１０２側に倒すというものになる。【０１３９】
パラメータ選択回路１２０は、類似度の高い順番に、速度設定回路に設定されている時間軸変換比αが得られる組数だけ、セグメントの組を選択する。ここで選択の対象となるのは、時間範囲Tr内に存在する複数のセグメントであって、パラメータ記憶回路１１６に先頭時刻が記憶されているもののどれかである。
以上が、本実施形態に係る変換装置のハードウェア構成を示す図である。【０１４０】
続いて、類似度計算回路１０５のハードウェア構成の詳細について、図１８、図１９を参照しながら説明する。ここで類似度としては、二乗誤差、相関関数といった2種類のものがあり、これらのどちらを類似度として採用するかによって、類似度計算回路１０５のハードウェア構成は変わってくる。先ず最初に、二乗誤差を採用した場合の内部構成について説明する。【０１４１】
図１８は、類似度の評価関数として二乗誤差を採用した場合の類似度計算回路１０５の内部構成を示す図であり、シフトレジスタメモリ回路２０１、シフトレジスタメモリ回路２０２、減算回路２０３_１〜２０３_Ts、乗算回路２０４_１〜２０４_Ts、加算回路２０５からなる。
シフトレジスタメモリ回路２０１には、バッファメモリ回路１０３に蓄えられている処理単位Ｘ１が逐次入力される。シフトレジスタメモリ回路２０１に入力される処理単位Ｘ１は、Ts個のセグメントである、X1(1),X1(2),X1(3)・・・・X1(Tsー1),X1(Ts)から構成される。【０１４２】
シフトレジスタメモリ回路２０２には、バッファメモリ回路１０４に蓄えられている処理単位Ｘ２が逐次入力される。シフトレジスタメモリ回路２０２に入力されるＸ２は、Ts個のセグメントである、X2(1),X2(2),X2(3)・・・・X2(Tsー1),X2(Ts)から構成される。
減算回路２０３_１〜２０３_Tsは、シフトレジスタメモリ回路２０１に蓄えられているX1(1),X1(2),X1(3)・・・・X1(Tsー1),X1(Ts)から、シフトレジスタメモリ回路２０２に蓄えられているX2(1),X2(2),X2(3)・・・・X2(Tsー1),X2(Ts)を減じる演算を、Ts個同時に実行する。【０１４３】
乗算回路２０４_１〜２０４_Tsは、減算回路２０３_１〜２０３_Tsの出力を二乗する。
加算回路２０５は、乗算回路２０４_１〜２０４_Tsの出力の総和を求め、結果を二乗誤差として出力する。類似度計算回路１０５が行う二乗誤差の演算は、第１実施形態で述べた（数１）に従う。以上が、類似度として二乗誤差を採用した場合の、類似度計算回路１０５の内部構成についての説明である。【０１４４】
続いて、相関関数を採用した場合の内部構成について説明する。図１９は、類似度の評価関数として、相関関数を採用した場合場合の類似度計算回路１０５の内部構成を示す図であり、シフトレジスタメモリ回路３０１、シフトレジスタメモリ回路３０２、乗算回路３０３_１〜３０３_Ts、加算回路３０４である。
シフトレジスタメモリ回路３０１には、バッファメモリ回路１０３に蓄えられているセグメントＸ１が逐次入力される。シフトレジスタメモリ回路３０１に入力される処理単位Ｘ１は、Ts個のセグメントである、X1(1),X1(2),X1(3)・・・・X1(Tsー1),X1(Ts)から構成される。【０１４５】
シフトレジスタメモリ回路３０２には、バッファメモリ回路１０４に蓄えられているセグメントが逐次入力される。シフトレジスタメモリ回路３０２に入力される処理単位Ｘ２は、Ts個のセグメントである、X2(1),X2(2),X2(3)・・・・X2(Tsー1),X2(Ts)から構成される。
乗算回路３０３_１〜３０３_Tsは、シフトレジスタメモリ回路３０１に蓄えられているX1(1),X1(2),X1(3)・・・・X1(Tsー1),X1(Ts)と、シフトレジスタメモリ回路３０２に蓄えられているX2(1),X2(2),X2(3)・・・・X2(Tsー1),X2(Ts)との乗算を、Ts個同時に実行する。【０１４６】
加算回路３０４は、乗算回路３０３_１〜３０３_Tsの出力の総和を求め、結果を相関関数として出力する。類似度計算回路１０５が行う相関関数の演算は、第１実施形態で述べた（数２）に従う。以上が、類似度として相関関数を採用した場合の、類似度計算回路１０５の内部構成についての説明である。
続いて、判定回路１０６のハードウェア構成の詳細について、図２０を参照しながら説明する。【０１４７】
図２０は、判定回路１０６の内部構成を示す図であり、類似度メモリ回路４０１、比較回路４０２、最大/最小メモリ回路４０３から構成される。
類似度メモリ回路４０１には、類似度計算回路１０５により計算された類似度が記憶される。
最大/最小メモリ回路４０３には、類似度の最大値もしくは最小値が記憶されている。最大/最小メモリ回路４０３が最小値を記憶するのは、評価関数が二乗誤差の場合である場合であり、比較回路４０２が最大値を記憶するのは評価関数が相関関数の場合である。【０１４８】
比較回路４０２は、類似度メモリ回路４０１が出力する現在の類似度と、最大/最小メモリ回路４０３に記憶されている過去における類似度の最大値もしくは最小値とを比較する。この比較の結果、類似度メモリ回路４０１に記憶されている類似度が、最大値より大きいこと、又は、最小値より小さいことを条件にして、類似度メモリ回路４０１に記憶されている類似度を、最大/最小メモリ回路４０３に書き込むことにより、最大/最小メモリ回路４０３における最大値又は最小値の更新を行う。かかる更新にあたって、パラメータ記憶回路１１６に対し、現在のＸ１の先頭時刻と、Ｘ２の先頭時刻とを、類似度の高いセグメントの組の候補として記憶するように指示を出す。以上が判定回路１０６の内部構成である。これで、速度変換を実行するためのハードウェア構成の説明を終える。【０１４９】
以上のようにして構成された変換装置の動作について、以下説明する。
(類似度算出)
２つのセグメントＸ１、Ｘ２間の時間差をTl_minからTl_maxまでの範囲で変化させながら、類似度計算回路１０５がバッファメモリ回路１０３に格納されたＸ１とバッファメモリ回路１０４に格納されたＸ２との類似度を算出する。次に、判定回路１０６は類似度計算回路１０５が出力する類似度の内から類似度の最も高い値を示すセグメントの組を検出する。【０１５０】
そして、2つのセグメントに対応するアドレス値をポインタ値計算回路１１７が求めるために用いた2つのセグメントの開始時刻と、セグメントの類似度とを、1つの追記単位として、パラメータ記憶回路１１６における選択ログに追記する。
(セグメントの選択)
これらの処理を、所定の時間範囲Tr内の複数の異なる時刻において行う。そしてパラメータ選択回路１２０が、パラメータ記憶回路１１６に記憶されている所定の時間範囲Tr内の複数の異なる時刻で求めた類似度の中から類似度の高い順番に、速度設定回路１１５に設定されている所望の時間軸変換比αが得られる組数だけセグメントの組を選択する。ここでパラメータ記憶回路１１６の追記単位において、選択されたセグメントに対応する追記単位における選択フラグをオンに設定し、選択されなかったセグメントに対応する追記単位における選択フラグはオフに設定する。【０１５１】
(重ね合わせ)
そしてパラメータ記憶回路１１６の選択ログにおいて、オンと設定された追記単位に対応するセグメントの組は、乗算回路１１０、乗算回路１１１、加算回路１１２により重み付け加算されて出力され、それ以外の区間におけるセグメントは、そのまま出力される。
第１実施形態で述べた図５に対して、本実施形態に係る変換装置が、時間軸伸張（時間軸変換比α=４/３）の場合の処理を以下に説明する。
(i番目の処理単位)
記憶回路１０１に記録されているオーディオデータのうち、i番目の処理単位に対する処理を行う。ここでは、i番目の処理単位においてポインタ制御回路１１８が出力するポインタ５０２_iとポインタ５０３_iとを基準として、Ｘ１(1)〜Ｘ１(Ts）とＸ２(1)〜Ｘ２(Ts）とがバッファメモリ回路１０３とバッファメモリ回路１０４に、読み出される。【０１５２】
Ｘ２に対する時間差を、Tl_minからTl_maxまでの範囲で変化させつつ、Ｘ１を取り込んでゆき、Ｘ１と、Ｘ２との類似度を類似度計算回路１０５に算出させる。
そして判定回路１０６により類似度の高い値の探索が行われ、その時のＸ１とＸ２の時間差がTl_optとして算出される。類似度の評価関数が二乗誤差の場合には、判定回路１０６により類似度計算回路１０５が出力する二乗誤差の最小値が検出され、類似度の評価関数が相関関数の場合には、判定回路１０６により類似度計算回路１０５が出力する相関関数の最大値が検出される。【０１５３】
パラメータ記憶回路１１６は、判定回路１０６が最高の類似度を検出した時の類似度の値と、Ｘ１の先頭時刻と、Ｘ２の先頭時刻とを記憶する。
(i+１番目の処理単位)
次にi+１番目の処理単位においてポインタ制御回路１１８が出力するポインタ５０２_i+１と、ポインタ５０３_i+１とを基準として、Ｘ２’に対する時間差を、Tl_minからTl_maxまで変化させつつ、Ｘ１’を取り込む。そして、Ｘ１’と、Ｘ２’との類似度が類似度計算回路１０５に算出される。【０１５４】
判定回路１０６による類似度の高い値の探索が行われ、その時のＸ１’とＸ２’の時間差がTl_opt’となる。判定回路１０６が最高の類似度を検出した時の類似度の値とＸ１’の先頭時刻とＸ２’の先頭時刻は、パラメータ記憶回路１１６により記憶される。
(i+２番目の処理単位)
i+２番目の処理単位においてポインタ制御回路１１８が出力するポインタ５０２_i+２とポインタ５０３_i+２とを基準として同様の処理がなされる。【０１５５】
判定回路１０６により最高の類似度が検出されれば、その時の類似度の値とＸ１''の先頭時刻とＸ２''の先頭時刻とが、パラメータ記憶回路１１６に記憶される。図５の例ではこれで探索は終わる。
(類似度に基づくソーティング)
次にパラメータ選択回路１２０が、パラメータ記憶回路に記憶されているi番目からi+２番目の処理単位における類似度の高い値を比較し、類似度の高い方からセグメントの組を選択していく。そして出力信号の時間長が、入力信号の時間長に対して速度設定回路１１５に設定された時間軸変換比α（出力時間長/入力時間長）になるまで、パラメータ選択回路１２０が（数３）に基づいて、類似度の高いセグメントの組の選択を繰り返す。【０１５６】
図５の例では、セグメントの組Ｘ１とＸ２およびＸ１’とＸ２’の類似度が高く、これら２つのセグメントの組の選択により（数3）の条件が満足されるとパラメータ選択回路１２０により判断され、パラメータ記憶回路１１６における選択フラグがオンに設定される。
(重ね合わせ)
パラメータ記憶回路１１６に記憶されているセグメントの先頭時刻に基づいて、ポインタ値計算回路１１７によりアドレス値が算出される。ポインタ制御回路１１８が出力した2つのセグメントに対応するアドレス値により、時間長TsのＸ２（５１１）とＸ１（５１０）が記憶回路１０１から読み出され、バッファメモリ回路１０４とバッファメモリ回路１０３とに出力される。【０１５７】
窓関数発生回路１０７は、漸増する窓関数５１２と漸減する窓関数５１３とを出力し、乗算回路１１０はバッファメモリ回路１０３に蓄えられているＸ１（５１０）に対して窓関数発生回路１０７が出力する漸増する窓関数５１２を乗じて出力し、乗算回路１１１はバッファメモリ回路１０４に蓄えられているＸ２（５１１）に対して窓関数発生回路１０７が出力する漸減する窓関数５１３を乗じて出力する。【０１５８】
加算回路１１２は乗算回路１１０の出力と乗算回路１１１の出力とを加算した加算結果５１４を出力バッファ回路１１４に出力する。そしてポインタ制御回路１１８がＸ１に後続するサンプルを開始点とし、Ｘ２‘の開始点直前のサンプルを終了点とするＸ０（５１６）を記憶回路１０１から読み出し、出力バッファ回路１１４に出力する。
次にパラメータ記憶回路１１６に記憶されているセグメントの組Ｘ１’とＸ２’のセグメントの先頭時刻に基づいて、ポインタ値計算回路１１７によりアドレス値が求められ、ポインタ制御回路１１８が出力した2つのセグメントのアドレス値により、時間長TsのＸ２’とＸ１’とが記憶回路１０１から読み出されて、バッファメモリ回路１０４とバッファメモリ回路１０３とに出力される。【０１５９】
窓関数発生回路１０７は、漸増する窓関数５１２と漸減する窓関数５１３とを出力し、乗算回路１１０はバッファメモリ回路１０３に蓄えられているＸ１’に対して窓関数発生回路１０７が出力する漸増する窓関数５１２を乗じて出力する。乗算回路１１１はバッファメモリ回路１０４に蓄えられているＸ２’に対して窓関数発生回路１０７が出力する漸減する窓関数５１３を乗じて出力し、加算回路１１２は乗算回路１１０の出力と乗算回路１１１の出力とを加算した信号５１７を出力バッファ回路１１４に出力する。そしてポインタ制御回路１１８がＸ１’に後続するサンプルを開始点とし、Ｘ２''（５１９）の開始点直前のサンプルを終了点とするＸ３（５１８）と、Ｘ２''（５１９）と、Ｘ２''（５１９）に後続するサンプルを開始点とするオーディオデータX４（５２０）を記憶回路１０１から読み出し、出力バッファ回路１１４に出力する。【０１６０】
上記処理を入力信号が終了するまで繰り返しても良いし、全入力信号に対して上記処理を1回で施してしまっても良い。
また、第１実施形態に示した図６の具体例に対して、本実施形態に係る変換装置が、時間軸圧縮（時間軸変換比α=２/３）を行う場合の動作例について説明する。
(i番目の処理単位)
記憶回路１０１に記録されているオーディオデータに対して、i番目の処理単位を処理する場合をここでは想定している。この場合、ポインタ制御回路１１８が出力するポインタ６０２_iとポインタ６０３_iを基準として、バッファメモリ回路１０３とバッファメモリ回路１０４とに、Ｘ１（１〜Ts）とＸ２（１〜Ts）とが読み出される。Ｘ２は、６０４で示されるＸ１に対して、Tl_minだけ遅延する６０７_minからTl_maxだけ遅延する６０７_maxまで範囲に存在し得る。【０１６１】
Tl_minからTl_maxまで、１サンプルずつ時間差を変化させながら、Ｘ2を取り込んでゆく。そしてＸ1との類似度を類似度計算回路１０５に求めさせる。こうして、Ｘ１と、Ｘ２との類似度が算出されれば、判定回路１０６により類似度の高い値の探索が行われる。その結果、得られたＸ１とＸ２の時間差をTl_optとする。類似度の評価関数が二乗誤差の場合には、判定回路１０６は類似度計算回路１０５が出力する二乗誤差の最小値を検出し、類似度の評価関数が相関関数の場合には、判定回路１０６は類似度計算回路１０５が出力する相関関数の最大値を検出する。こうして、最高の類似度が算出されれば、パラメータ記憶回路１１６は、判定回路１０６が最高の類似度を検出した時の類似度の値とＸ１の先頭時刻とＸ２の先頭時刻を記憶する。
(i+１番目の処理単位)
次にi+１番目の処理単位においてポインタ制御回路１１８が出力するポインタ６０２_i+１とポインタ６０３_i+１を基準として、Ｘ２‘をＸ１’に対して遅延する時間差を、Tl_minからTl_maxまで、１サンプルずつ変えながら取り込み、Ｘ１’との類似度を類似度計算回路１０５が求め、判定回路１０６が類似度の高い値の探索を行い、その時のＸ１’とＸ２‘の時間差はTl_opt’となり、パラメータ記憶回路１１６は、判定回路１０６が最高の類似度を検出した時の類似度の値とＸ１’の先頭時刻とＸ２’の先頭時刻を記憶する。      【０１６２】
(i+２番目の処理単位)
さらにi+２番目の処理単位においてポインタ制御回路１１８が出力するポインタ６０２_i+２とポインタ６０３_i+２を基準として同様の処理を行い、パラメータ記憶回路１１６は、判定回路１０６が最高の類似度を検出した時の類似度の値とＸ１''の先頭時刻とＸ２''の先頭時刻を記憶する。図６の例ではこれで探索は終わり、次にパラメータ選択回路１２０が、パラメータ記憶回路に記憶されているi番目からi+２番目の処理単位における類似度の高い値を比較し、類似度の高い方からセグメントの組を選択していく。そして出力信号の時間長が、入力信号の時間長に対して速度設定回路１１５に設定された時間軸変換比α（出力時間長/入力時間長）になるまで、パラメータ選択回路１２０が（数４）に基づいて、類似度の高いセグメントの組の選択を繰り返す。
(類似度の判断)
図６の例では、セグメントの組Ｘ１とＸ２およびＸ１’とＸ２’の類似度が高く、これら２つのセグメントの組の選択により（数４）の条件が満足されるとパラメータ選択回路１２０が判断し、パラメータ記憶回路１１６に選択のフラグを立てる。そしてパラメータ記憶回路１１６に記憶されているセグメントの先頭時刻に基づいて、ポインタ値計算回路１１７がアドレス値を求め、ポインタ制御回路１１８が出力した2つのセグメントに対応するアドレス値により、時間長TsのＸ１（６１０）とＸ２（６１１）を記憶回路１０１から読み出し、バッファメモリ回路１０３とバッファメモリ回路１０４とに出力する。
(Ｘ１,Ｘ２に対する重ねあわせ)
窓関数発生回路１０７は、漸減する窓関数６１２と漸増する窓関数６１３とを出力し、乗算回路１１０はバッファメモリ回路１０３に蓄えられているＸ１（６１０）に対して窓関数発生回路１０７が出力する漸減する窓関数６１２を乗じて出力する。乗算回路１１１はバッファメモリ回路１０４に蓄えられているＸ２（６１１）に対して窓関数発生回路１０７が出力する漸増する窓関数６１３を乗じて出力し、加算回路１１２は乗算回路１１０の出力と乗算回路１１１の出力とを加算した信号６１４を出力バッファ回路１１４に出力する。そしてポインタ制御回路１１８がＸ２に後続するサンプルを開始点とし、Ｘ１’の開始点直前のサンプルを終了点とするＸ０（６１６）を記憶回路１０１から読み出し、出力バッファ回路１１４に出力する。【０１６３】
次にパラメータ記憶回路１１６に記憶されているセグメントの組Ｘ１’とＸ２’のセグメントの先頭時刻に基づいて、ポインタ値計算回路１１７がアドレス値を求め、ポインタ制御回路１１８が出力した2つのセグメントのアドレス値により、時間長TsのＸ１’とＸ２‘を記憶回路１０１から読み出し、バッファメモリ回路１０３とバッファメモリ回路１０４とに出力する。
(Ｘ１’,Ｘ２’に対する重ねあわせ)
窓関数発生回路１０７は、漸減する窓関数６１２と漸増する窓関数６１３とを出力し、乗算回路１１０はバッファメモリ回路１０３に蓄えられているＸ１’に対して窓関数発生回路１０７が出力する漸減する窓関数６１２を乗じて出力する。乗算回路１１１はバッファメモリ回路１０４に蓄えられているＸ２’に対して窓関数発生回路１０７が出力する漸増する窓関数６１３を乗じて出力し、加算回路１１２は乗算回路１１０の出力と乗算回路１１１の出力とを加算した信号６１７を出力バッファ回路１１４に出力する。そしてポインタ制御回路１１８がＸ２’に後続するサンプルを開始点とするオーディオデータX４（６１８）を記憶回路１０１から読み出し、出力バッファ回路１１４に出力する。【０１６４】
上記処理を入力信号が終了するまで繰り返しても良いし、全入力信号に対して上記処理を1回で施してしまっても良い。
以上のように本実施形態によれば、パラメータ記憶回路１１６が判定回路１０６の検出した最も類似度の高い時の類似度の値とＸ１の先頭時刻とＸ２の先頭時刻を記憶し、パラメータ選択回路１２０が、パラメータ記憶回路１１６に記憶されている複数の異なる時刻の処理単位における類似度の値を比較して、類似度の高い方から順番にセグメントの組を選択する結果、入力信号のある範囲内における様々なセグメントの組み合わせの中から、類似度が高く重み付け加算するのに最適なセグメントの組を優先的に選択することができるので、音声欠落や音声重複が少なく、音質劣化も少ないという効果がある。【０１６５】
また、パラメータ選択回路１２０が、パラメータ記憶回路１１６の記憶されている複数の異なる時刻に求めた高い類似度のセグメントの組の中から、さらに類似度の高い値を持つセグメントの組を、（数３）もしくは（数４）に基づいて所望の時間軸変換比αが得られる組数だけ選択するので、所望の時間軸変換比αに細かくかつ精度良く変えることができという効果もある。【０１６６】
ここで、類似度が高い値を持つセグメントの組は一般的に無音区間や母音の発生区間に偏在しているので、人間が発声速度を変える場合の速度の遷移に類似させることができるという効果がある。
そして類似度計算回路１０５は、類似度が高くなるセグメント間の時間差の決定と重み付け加算を行うセグメントの組の選択を、類似度という単一の評価尺度を用いて行うので、処理の複雑さや処理量を抑えることができるという効果もある。【０１６７】
さらにパラメータ記憶回路１１６に記憶されているパラメータに基づいて、ポインタ値計算回路１１７がアドレスを計算し、記憶回路１０１からバッファメモリ回路１０３とバッファメモリ回路１０４に類似度が高いセグメントの組（Ｘ１，Ｘ２）を読み出すので、どのような場合でも加算回路１１２の出力の時間長を一定の処理単位の時間長Tsにでき、音質が低下しにくいという効果もある。【０１６８】
以上のように本実施形態によれば、速度変換をハードウェアで実現するので、かかるハードウェア構成の一部又は全部のパイプライン化を実現することで、速度変換の高速化を図ることができる。
（第３実施形態）
本実施形態は、第１実施形態又は第２実施形態に示した音声再生のための変換装置を、映像及び音声の再生を行う再生装置に組込む場合の改良に関する。【０１６９】
図２１は、第３実施形態に係る変換装置が組込まれる再生装置の内部構成を示す図であり、本図に示すように、本実施形態に係る再生装置は、記憶回路１、映像音声分離回路２、映像復号回路３、音声復号回路４、音声速度変換装置５、映像速度変換装置８、制御回路９、速度設定回路１１５から構成される。
映像速度変換装置８は速度設定回路１１５から出力された時間軸変換比αに基づいて、映像復号回路３から出力された映像信号に対して速度変換処理を施す。映像速度変換は、時間軸変換比α>１の時間軸伸張の場合には映像フレームを繰り返して（フリーズして）出力し、時間軸変換比α<１の時間軸圧縮の場合には映像フレームを飛ばして（スキップして）出力することにより実現できる。特に時間軸圧縮の場合には、B-pictureをスキップするようにして、映像復号回路３でのB-pictureの復号処理を省略することができる。映像速度変換装置８での速度変換処理は、速度変換処理後の映像の動きが滑らかになるように、ほぼ均等に（線形に）映像フレームのフリーズ/スキップが実施される。【０１７０】
音声速度変換装置５は、第２実施形態に示したものであり、速度設定回路１１５から出力された時間軸変換比αに基づいて、音声復号回路４から出力されたオーディオデータに対して速度変換処理を施す。音声速度変換装置５での速度変換処理は、類似度の高いセグメントの組が優先的に選択されて重み付け加算されるため、主に無音区間や有音区間が伸張/圧縮される結果、非線形に速度が変わる。【０１７１】
制御回路９は、記憶回路１に対して所望のデータを出力させるためのアドレスを出力し、映像音声分離回路２に対してビデオデータを分離抽出するための映像識別番号とオーディオデータを分離抽出するための音声識別番号を出力し、映像復号回路３に対して通常再生や特殊再生などの映像復号制御信号を出力する。映像速度変換装置８に対しては、速度変換処理の開始/停止などの映像速度変換制御信号を出力し、音声復号回路４に対して通常再生や特殊再生などの音声復号制御信号を出力し、音声速度変換装置５に対して速度変換処理の開始/停止などの音声速度変換制御信号を出力する。【０１７２】
速度設定回路１１５は映像速度変換装置８と音声速度変換装置５と制御回路９に所望の時間軸変換比αの情報を出力する。
以上のように本実施形態によれば、映像速度変換装置８が時間軸に対してほぼ均一に、つまり、線形に時間軸変換比αで映像信号に速度変換処理を行い、音声速度変換装置５が時間軸に対して不均一に、つまり、非線形に、時間軸変換比αでオーディオデータに速度変換処理を行う結果、映像信号には簡単な処理でガクガクしない滑らかな速度変換処理を施すことができ、オーディオデータには、人間が発声速度を変える場合の速度遷移に類似した自然な速度変換を施すことができる。【０１７３】
さらに映像と音声の同期は途中でずれることはあるものの、音声速度変換装置５は非線形であるが正確に時間軸変換比αで速度変換を行うので、少なくとも最後には映像と音声の同期を一致させることができるという効果がある。
また、音声速度変換装置５は第１実施形態で示したように、所定の時間範囲Tr毎に区切って処理を行うので、少なくとも時間Tr毎には映像と音声の同期を一致させることができるという効果がある。
(第４実施形態)
本実施形態は、第１実施形態及び第２実施形態に示した再生装置が、速度変換を実行するにあたっての時間範囲Trの設定や、変換比率αの設定を、ユーザからのGUI操作に基づき実行するための改良に関する。本実施形態に係る再生装置は、図２２に示すようなセットアップメニューを表示し、これを通じて、速度変換のための指定を受け付ける。【０１７４】
図２２は、速度変換のためのセットアップメニューの一例を示す図である。
本メニューは、スライドバーwd1、ウィンドゥwd2、スタート点／エンド点ボタンwd3,wd4、時間範囲Trナビwd5,wd6、数値欄nm1、再生ボタンnm2、キャンセルボタンnm3といったGUI部品からなる。
スライドバーwd1は、スタート点／エンド点の位置決め操作を、ユーザから受け付けるGUI部品である。リモコンの左右キーを押下することで、スライドバーをガイド上に左右に移動させ、そのガイドにおけるスライドバーの位置を、映像信号上の位置に変換することによりこの位置決め操作はなされる。速度変換の対象が2時間の映像信号であり、スライドバーがガイドの真ん中あたりに存在しているのなら、映像信号先頭から1時間経過後の位置が指示されることになる。【０１７５】
ウィンドゥwd2は、映像信号のうち、スライドバーにて指示されている位置の映像が表示される。スライドバーに対する位置決め操作と、ウィンドゥwd2によるフィードバックとにより、スタート点／エンド点になるべき位置の微調整が可能になる。
スタート点／エンド点ボタンwd3,wd4は、ガイドにおけるスライドバーの位置を、スタート点／エンド点として確定するGUI部品である。スタート点／エンド点ボタンに対する押下で時間範囲Trのスタート点と、時間範囲Trのエンド点とが確定されれば時間範囲Trが生成されたことになる。【０１７６】
時間範囲Trナビwd5,wd6は、スライドバーによる位置決めと、スタート点／エンド点ボタンに対する確定操作とで生成された時間範囲Trを視覚的に表現するものであり、時間範囲Trのスタート点に位置する映像のサムネール、及び、エンド点に位置する映像のサムネールにより時間範囲Trを表す。
数値欄nm1は、時間軸の比率αの数値入力を受け付ける。この操作は、数値欄に1〜200の数値を入力することによりなされる。【０１７７】
再生ボタンnm2は、上述したように設定された時間範囲Trと、数値αとに基づき速度変換を行い、その変換結果たる音声を、映像と共に再生する旨の指示を受け付けるボタンである。
キャンセルボタンnm3は、本メニューに対する設定を中止する操作を受け付けるボタンである
かかるメニューは、OSD(On Screen Display)グラフィクスやBML(Broadcast Markup Languege)を用いて記述される。再生装置は、かかるメニューを再生映像に合成して、かかるメニューに対する操作に従い、時間範囲Trや比率αを設定した上で、変換装置に速度変換を行わせる。【０１７８】
以上のように本実施形態によれば、速度変換の対象となる時間範囲Trを、再生時間軸上の何処に定めるか、そしてその際の比率αを、どのような値にすべきかという調整が、対話的になされるので、速度変換の変換結果として得られる音声を、より聴きやすいものにすることができる。
(第５実施形態)
第１実施形態、第２実施形態では、各セグメントの組みに対して類似度を算出して、この類似度に基づき、セグメントの組みの順位付けを行なったが、本実施形態は、このセグメントの組みの順位付けを省く改良を提案する。この順位付けの代わりに、本実施形態では、類似度の閾値を導入する。具体的にいうと、図７、図８のフローチャート、図１２、図１３のフローチャートにおいて、Ｘ１、Ｘ２のどちらかが基準に設定されて、時間間隔ΔＴｄだけ移動した際、これを基準にして、Tl_maxからTl_minの範囲において、他方のセグメントを移動させる。そして、セグメントの移動点のそれぞれにおいて、このＸ１、Ｘ２の組みに対する類似度を算出する。そうして類似度が算出されれば、算出された類似度がこの閾値よりも低いかどうかを判定する。そして低いと判定された場合、かかるＸ１、Ｘ２のセグメントの組みを重ね合わせの対象にし、その後、基準セグメントを移動させる。つまり、Tl_maxからTl_minの範囲の中で補助セグメントを移動させた場合に、最も類似度が高くなるＸ２を、選択するのではなく、補助セグメントの移動にあたって、その類似度が初めて閾値を上回るものが発見され次第、類似度の最小値の探索を打ち切り、選択の対象とするのである。【０１７９】
以上は、類似度に最小２乗誤差を採用した場合の処理であるが、類似度に相関関数を採用した場合は、類似度が閾値より高いかどうかが判定の対象になる。
かかる重ね合わせにあたって、セグメントの時間差の累計をとる。かかる累計が数３、数４に示される条件を満たす限り、同様の処理を繰り返す。そして、この累計が、数３、数４の左辺に示す目標値時間長を超えた時点で、重ね合わせを終了する。つまり、第１実施形態では、数３、数４を満たすセグメントの組みを選択することで、類似度が高い順にセグメントの組みを順位付けした上、そうして選択したセグメントの組みを、再生時間軸に従い、出力していったが、本実施形態では、そうした順位付けを省き、数３、数４を満たす限り、重ね合わせを実行していることがわかる。このような速度変換を行うことで、速度変換のリアルタイム実行が現実的になり、速度変換を、一般の家電機器に組込むことが、現実的になる。
＜備考＞
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
(時間範囲Tr)
ユーザにより指定された時間範囲Trは、プレイリストを構成する再生区間として、指定されたものであってもよい。変換装置による速度変換は、このプレイリスト作成の際実行され、トリック再生用のオーディオデータを作成してもよい。
(リアルタイム記録への発展)
オーディオデータ全体に対して、類似度が上位となる組みを選ぶという処理を前提にしたため、オーディオデータが記憶回路内に存在することを必要としたが、セグメント対象の範囲を、オーディオデータの一部に狭めるならば、オーディオデータの記録途中でも、又は、オーディオデータの再生の途中でも、本発明による速度変換を実行することが可能になる。
(オリジナルのオーディオデータとの対応付け)
速度変換の結果であるトリック再生用のオーディオデータは、オリジナルオーディオデータと多重化した上で、記録媒体に記録するのが望ましい。また、プレイリスト情報のメインパス情報にオリジナルオーディオデータを指定させ、サブパス情報にトリック再生用のオーディオデータを指定させることで、これらが、1つの再生パスを構成するようにしてもよい。
(オーサリング技術への発展)
本発明にかかる速度変換を、オーサリングシステムにおいて実行してもよい。そして、そうして速度変換により得られたオーディオストリームを、映画作品の副音声として、DVDやBD-ROMに記録して、ユーザに頒布してもよい。こうすることで、再生装置は、DVDやBD-ROMに記録された映画作品をトリック再生する際、速度変換により得られたオーディオストリームを副音声として選択することで、本発明の速度変換により得られたオーディオストリームを再生させることができる。これによりユーザは、映画作品のトリック再生時において、聴きやすいきれいな音声で、映画作品の内容を短区間に理解することができる。
(音声要約の発展)
要約音声を作成するという技術に、本発明にかかる速度変換を応用してもよい。具体的にいうと、αが５％、１０％等短い値に設定されたオーディオデータを、要約音声として、第３実施形態に示したメニューを用いて予め作成しておく。そして複数の動画像のサムネールが一覧表示されているようなプログラムナビのGUIにおいて、ある動画像のサムネールがセレクテッド状態になった際、かかる要約音声を再生するのである。こうするとユーザは、今セレクテッド状態になっている動画像が、どのような内容のものであるかを、短時間に知ることができ、その動画像を再生するかどうかの判断を好適に行うことができる。
(類似度を求める評価尺度)
第１実施形態に示した図８のフローチャートにおけるステップＳ７０９、図１３のフローチャートにおけるステップＳ８０９は、類似度を求める評価尺度として、（数１）に示した正規化していない二乗誤差の小ささや、（数2）に示した正規化していない相関関数の大きさを用いたが、正規化した二乗誤差の小ささや、正規化した相関関数の大きさを用いることもできる。この場合には、演算量が増加するが、オーディオデータの振幅の大きさに依存しない評価尺度となるので、オーディオデータの振幅に影響されずに類似度を求めることができ、音質改善が期待できる。【０１８０】
(オーディオデータの出力Y（n）の時間長)
第１実施形態に示した図１０のフローチャートにおけるステップＳ７４３、図１５のフローチャートにおけるステップＳ８４３では、（数５）に基づいてＸ１（n）とＸ２（n）とを重み付け加算した固定時間長Tsの信号Y（n）を出力しているが、重み付け加算したオーディオデータの出力Y（n）の時間長を可変にしても良い。この場合には、例えば類似度の高い、2つのセグメント間の時間差Tl_optが処理単位の時間長Tsよりも短い場合に、重み付け加算長をTl_optにすることで、不必要な重み付け加算を減らすことができ、演算量の削減と音質の改善、または時間軸圧縮の場合の時間軸変換比αをより小さい値に設定できることが期待できる。
(選択対象)
第１実施形態に示した図７のフローチャートにおけるステップＳ７０３からステップＳ７２１では、図１２のフローチャートにおけるステップＳ８０３からステップＳ８２１では、スタート点からエンド点まで時間△Td毎に最も高い類似度R（j）（ここでj：０〜i）を１度に求め、図９におけるステップＳ７２２から７３６では、図１４におけるステップＳ８２２から８３６では、それを1度に比較して類似度の高い方から順に選択しているが、例えば所定の時間範囲Tr毎に区切って行っても良い。この場合には、図７におけるステップＳ７１５からステップＳ７１８、図１２におけるステップＳ８１５からステップＳ８１８において必要な記憶容量を小さくできるだけでなく、複数文章を含む長さ毎に区切って実行することにより、スタート点からエンド点までの途中で所望の時間軸変換比αからのずれが大きくなることが防がれるばかりでなく、文間の無音区間を含めて効率的に時間軸伸張できる。
(周期の時間)
第１実施形態に示した図７のフローチャートにおけるステップＳ７１９、図１２のフローチャートにおけるステップＳ８１９では、高い類似度R（Tl_opt）を求める周期の時間△Tdは一定であるが、可変でも良い。この場合には、例えば類似度が高くなるセグメント間の時間差Tl_optが短い時には、時間△Tdも短くすることにより、重み付け加算したオーディオデータの出力の周期を短くすることができ、結果として時間軸変換比αの範囲を広げることができる。【０１８１】
(選択対象)
第１実施形態に示した図９のフローチャートにおけるステップＳ７３６、図１４のフローチャートにおけるステップＳ８３６では、所定に時間軸変換比αになるまで類似度の高いセグメントの組を選択しているが、一定の閾値よりも類似度が高いセグメントの組を選択しても良い。この場合には、入力信号の性質に応じて一定の品質で音声速度変換処理が可能になる。
(オーディオデータの読み込み単位)
第１実施形態に示した図８のフローチャートにおけるステップＳ７０７、Ｓ７０８、図１３のフローチャートにおけるステップＳ８０７、Ｓ８０８では、オーディオデータを処理単位の時間長Ts単位で読み込んでいるが、もっと大きい処理単位毎に読み込んでも良い。例えば、図７におけるステップＳ７００からステップＳ７２１や、図１３におけるステップＳ８００からステップＳ８２１で使うオーディオデータを1度に読み込んでしまっても良い。この場合には、最初にオーディオデータを読み込むための記憶容量は必要になるが、あとはポインタの移動だけでセグメントの読み込み処理を済ませることができるので、重複の多いオーディオデータの読み込み処理の無駄を省くことができ、処理を効率的かつ高速に行えるようになる。
(評価尺度)
本実施の形態の類似度計算回路１０５における評価尺度として、正規化していない二乗誤差の小ささや、正規化していない相関関数の大きさを用いたが、正規化した二乗誤差の小ささや、正規化した相関関数の大きさを用いることもできる。この場合には、演算量が増加するが、オーディオデータの振幅の大きさに依存しない評価尺度となるので、オーディオデータの振幅に影響されずに類似度を求めることができ、音質改善が期待できる。
(処理単位の大きさ)
第２実施形態の図１７において、バッファメモリ回路１０３とバッファメモリ回路１０４では、オーディオデータを処理単位の時間長Ts単位で記憶回路１０１から読み込んでいるが、もっと大きい処理単位毎に読み込んでも良い。例えば図５における時間軸伸張の場合には、５０４_maxの開始点から５０９の終了点までを、図６に示す時間軸圧縮の場合には、６０４の開始点から６０９_maxの終了点までを、バッファメモリ回路１０３とバッファメモリ回路１０４に読み込んでしまうことにより、異なる時刻において、２つのセグメント間の時間差を変えながら類似度を求める時と、パラメータ選択回路１２０により選択された2つのセグメントを重み付け加算する時に、記憶回路１０１へのアクセスをしないようにできる。この場合には、記憶回路１０１からバッファメモリ回路１０３とバッファメモリ回路１０４への転送回数が少なくて済むので、処理時間を短縮することが可能となる。【０１８２】
(システムLSI化)
第１実施形態において図１に示した再生装置及び変換装置の内部構成や、第２実施形態において、図１７に示した変換装置の内部構成、第３実施形態において、図２１に示した再生装置の内部構成は、1つのシステムLSIとして構成してもよい。
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。【０１８３】
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置の中核としての役割を果たす。【０１８４】
かかるシステムLSIは、再生装置は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、本発明の用途を多いに広げることができる。
図２３は、第３実施形態に示した再生装置の内部構成を組込んだシステムLSIを模式的に示す図である。【０１８５】
具体的な生産手順の詳細は以下のものになる。まず各実施形態に示した構成図を基に、システムLSIとすべき部分の回路図を作成し、回路素子やIC,LSIを用いて、構成図における構成要素を具現化する。
そうして、各構成要素を具現化してゆけば、回路素子やIC,LSI間を接続するバスやその周辺回路、外部とのインターフェイス等を規定する。更には、接続線、電源ライン、グランドライン、クロック信号線等も規定してゆく。この規定にあたって、LSIのスペックを考慮して各構成要素の動作タイミングを調整したり、各構成要素に必要なバンド幅を保証する等の調整を加えながら、回路図を完成させてゆく。【０１８６】
各実施形態の内部構成のうち、一般的な部分については、既存の回路パターンを定義したIntellectual Propertyを組み合わせて設計するのが望ましい。特徴的な部分については、HDLを用いた抽象度が高い動作レベルを記述やレジスタトランスファレベルでの記述を用いてトップダウン設計を行うのが望ましい。  
回路図が完成すれば、実装設計を行う。実装設計とは、回路設計によって作成された回路図上の部品(回路素子やIC,LSI)を基板上のどこへ配置するか、あるいは、回路図上の接続線を、基板上にどのように配線するかを決定する基板レイアウトの作成作業である。【０１８７】
こうして実装設計が行われ、基板上のレイアウトが確定すれば、実装設計結果をCAMデータに変換して、NC工作機械等の設備に出力する。NC工作機械は、このCAMデータを基に、SoC実装やSiP実装を行う。SoC(System on chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(System in Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、各実施形態に示した再生装置の内部構成図を基に作ることができる。図２４は、こうして作られたシステムLSIを、機器内に組み込んだ状態を示す図である。【０１８８】
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(Look Up Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込むませる必要がある。更に、デコーダを内蔵した映像復調回路は、積和演算機能を内蔵したDSPで実現するのが望ましい。
(アーキテクチャ)
本発明にかかるシステムLSIは、再生装置の機能を実現するものなので、システムLSIは、Uniphierアーキテクチャに準拠させるのが望ましい。【０１８９】
Uniphierアーキテクチャに準拠したシステムLSIは、以下の回路ブロックから構成される。
・データ並列プロセッサDPP
これは、複数の要素プロセッサが同一動作するSIMD型プロセッサであり、各要素プロセッサに内蔵されている演算器を、1つの命令で同時動作させることで、ピクチャを構成する複数画素に対するデコード処理の並列化を図る。【０１９０】
特に、第２実施形態に示した比較回路４０２にSIMDプロセッサを採用して、Ts個のセグメントの組みを、類似度が高い順に並べる処理を、並列化すれば、速度変換のリアルタイム処理が可能になる。速度変換をハードウェアで再生装置に実装する場合は、変換装置のアーキテクチャの改良次第で、リアルタイムに速度変換を実現することができる。
・命令並列プロセッサIPP
これは、命令RAM、命令キャッシュ、データRAM、データキャッシュからなる「Local Memory Contoroller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイルからなる「Processing Unit部」、複数アプリケーションの並列実行をProcessing Unit部に行わせる「Virtual Multi Processor Unit部」で構成される。【０１９１】
・CPUブロック
これは、ARMコア、外部バスインターフェイス(Bus Control Unit:BCU)、DMAコントローラ、タイマー、ベクタ割込コントローラといった周辺回路、UART、GPIO(General Purpose Input Output)、同期シリアルインターフェイスなどの周辺インターフェイスで構成される。先に述べたコントローラは、このCPUブロックとしてシステムLSIに実装される。【０１９２】
・ストリームI/Oブロック
これは、USBインターフェイスやATA Packetインターフェイスを介して、外部バス上に接続されたドライブ装置、ハードディスクドライブ装置、SDメモリカードドライブ装置とのデータ入出力を行う。
・AVI/Oブロック
これは、オーディオ入出力、ビデオ入出力、OSDコントローラで構成され、テレビ、AVアンプとのデータ入出力を行う。【０１９３】
・メモリ制御ブロック
これは、外部バスを介して接続されたSD-RAMの読み書きを実現するブロックであり、各ブロック間の内部接続を制御する内部バス接続部、システムLSI外部に接続されたSD-RAMとのデータ転送を行うアクセス制御部、各ブロックからのSD-RAMのアクセス要求を調整するアクセススケジュール部からなる。
(本発明に係るプログラムの生産形態)
本発明に係るプログラムは、コンピュータが実行することができる実行形式のプログラム(オブジェクトプログラム)であり、実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVA(登録商標)バイトコードというように、様々な種類がある。【０１９４】
本発明にかかるプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。【０１９５】
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを１つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み出しを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。以上の処理を経て、本発明に係るプログラムを作ることができる。
(プログラムの実行時間)
プログラムコードにおいて、一命令の実行区間が、命令のフェッチ区間に等しい場合、フローチャートに示される手順の実行に必要な命令数を実効ステップ数Taとすると、MPUにおける命令語長のワード数やフェッチ単位のワード数から、本発明にかかるプログラムの処理区間が与えられる。具体的には、以下の式にて算出される。
実効ステップ数Ta×フェッチサイクル×(命令語長のワード数/フェッチ単位のワード数)
第１実施形態に示したMPUが、本発明にかかるプログラムをパイプラインで実行しようとする場合、そのパイプラインの深さがＤ、ピッチがＰ秒であるなら、本発明にかかるプログラムの実行には、(Ｄ＋Taー１)×Ｐ秒になるので、本発明にかかるプログラムをリアルタイムに実行できるかどうかは、当該時間に基づき、検証すべきである。【０１９６】
リアルタイム処理を実現する場合、かかる処理時間を考慮しつつ、装置の動作クロックや、メモリの規模を決定するのが望ましい。
(並列化)
本発明にかかるプログラムのうち、並列処理が可能な部分と、逐次処理が必要な部分との比率がＦ:１−Ｆであると仮定する。【０１９７】
そして、本発明にかかるプログラムの処理時間が時間Ａであるから、これをn個のプロセッサで同時に実行する場合、本発明にかかる処理時間Ｂは、アムダールの法則により、
時間Ｂ＝Ａ×Ｆ/ｎ＋Ａ×(１−Ｆ)になる。
これらn個のプロセッサに、速度変換を実行させるには、時間範囲Trを、このプロセッサ数nで分割すると共に、(数3)、(数4)に示した目標値時間長を、nで分割して、n個のプロセッサにこれらに対する速度変換を同時実行させるのが望ましい。【０１９８】
かかる並列化を行う制御部は、主記憶を共有し合う複数のMPUからなる密結合のマルチプロセッサシステムであってもよい。また、バス、通信回線を共有する複数のMPUからなる粗結合のマルチプロセッサシステムであってもよい。
(リアルタイムOS)
本発明にかかるプログラムは、リアルタイムOS(RTOS)上で動作させるのが望ましい。リアルタイムOSでは、最悪実行時間の予測が可能であるので、上述したようなリアルタイム化が現実的になるとの利点がある。【０１９９】
リアルタイムOSは、カーネル、デバイスドライバから構成される。
カーネルは、システムコール処理、割込信号により割込ハンドラを起動するハンドラ入口処理、割込ハンドラの出口処理を行う。
デバイスドライバは、ハードウェア的な割込み信号により起動する「割込ハンドラ部」と、「割込タスク部」、「リクエスト処理部」から構成される。デバイスドライバは、システムコールの形で実現してもよいし、アプリケーションタスクの形で実現してもよい。システムコールの形で実現した場合、デバイスドライバは、システムのメモリ空間にマッピングされ、特権モードで動作することになる。【０２００】
各図のソフトウェア的な構成要素を、RTOS上のタスクとして実装して、動作させることが、リアルタイム処理の実現につながる。
【産業上の利用可能性】
【０２０１】
本発明に係る再生装置は、上記実施形態に内部構成が開示されており、この内部構成に基づき量産することが明らかなので、資質において工業上利用することができる。そして、音声の基本周波数を変えずに継続時間長のみを変えることができ、速度を変えても明瞭度が下がりにくいので、ディスク媒体や半導体メモリに記録された音声信号を、使用者が聞き易い速度や聞きたい速度で再生することが必要な用途に適用できるので、DVD±Rプレーヤ、DVD±Rレコーダ、ハードディスクレコーダ、放送受像機あるいは半導体メモリを用いたビデオレコーダなどの製品分野の開発に適用する事ができる。
【図１】
2007086365.tif 000009
【図２】
2007086365.tif 000010
【図３】
2007086365.tif 000011
【図４】
2007086365.tif 000012
【図５】
2007086365.tif 000013
【図６】
2007086365.tif 000014
【図７】
2007086365.tif 000015
【図８】
2007086365.tif 000016
【図９】
2007086365.tif 000017
【図１０】
2007086365.tif 000018
【図１１】
2007086365.tif 000019
【図１２】
2007086365.tif 000020
【図１３】
2007086365.tif 000021
【図１４】
2007086365.tif 000022
【図１５】
2007086365.tif 000023
【図１６】
2007086365.tif 000024
【図１７】
2007086365.tif 000025
【図１８】
2007086365.tif 000026
【図１９】
2007086365.tif 000027
【図２０】
2007086365.tif 000028
【図２１】
2007086365.tif 000029
【図２２】
2007086365.tif 000030
【図２３】
2007086365.tif 000031
【図２４】
2007086365.tif 000032
【手続補正書】
【提出日】平成20年7月9日(2008.7.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
変換装置であって、
オリジナルのオーディオデータを構成する複数のセグメントからセグメントの組みを選択して、それらのセグメントの組みの再生期間が重なり合うよう、セグメントを処理するセグメント処理手段と、
重ね合わせの対象になったセグメントの組みと、当該重ね合わせの対象にならなかったセグメントとを、時系列に並べることで、変換結果となるオーディオデータを生成する生成手段とを備え、
前記重ね合わせの対象になったセグメントの組みと、当該重ね合わせの対象にならなかったセグメントとは、オリジナルのオーディオデータの時間軸において、非線形な関係にある
ことを特徴とする変換装置。
【請求項２】
前記変換装置は、
オリジナルのオーディオデータを構成するセグメントの組合せを複数生成して、個々の組合せについて、類似度を算出する算出手段を備え、
前記重ね合わせの対象となるセグメントの組みは、
複数セグメントの組合せのうち、算出手段により算出された類似度の高さが上位となるものであり、
前記重ね合わせの対象にならなかったセグメントは、
複数セグメントの組合せのうち、算出手段により算出された類似度の高さが上位にならなかったものである
ことを特徴とする請求項１記載の変換装置。
【請求項３】
前記変換装置は、
前記処理手段は、1つ選択して、その度に、その組みにおけるセグメント間の時間差の累計をとり、
重ね合わせの対象となるセグメントの組みは、
当該時間差の累計値が、目標時間長を越えないことを条件として、選択手段がセグメントの組みの選択を繰り返すことで選ばれる
ことを特徴とする請求項２記載の変換装置。
【請求項４】
元のオーディオデータの時間長と、目標時間長との比率をαとした場合、
前記変換が圧縮である場合の目標時間長は、オーディオデータの時間長×(１−α)であり、
前記変換が伸長である場合の目標時間長は、オーディオデータの時間長×(α−１)である
ことを特徴とする請求項３記載の変換装置。
【請求項５】
重ね合わせの対象となるセグメントの組みのそれぞれは、基準セグメント、補助セグメントからなり、
基準セグメントは、オーディオデータのスタート点からエンド点まで、ある時間間隔置きに存在する複数のセグメントの中のどれかであり、
補助セグメントは、基準セグメントの位置を基準にして最大遅延時間だけ隔てられた時点から、最小遅延時間だけ隔てられた時点までに存在する複数のセグメントのどれかであり、
前記時間間隔とは、最小遅延時間を上回る時間長である、請求項２記載の変換装置。
【請求項６】
最小遅延時間は入力信号の最短周期の近傍の値であり、最大遅延時間は、入力信号の最長周期の近傍の値であり、
基準セグメントの時間長が最小遅延時間と最大遅延時間の中間値であり、かつ基準セグメントから最大遅延時間だけ隔てた位置に補助セグメントが配された場合、基準セグメントと補助セグメントとにはギャップが生じ、
基準セグメントの時間長が最小遅延時間と最大遅延時間の中間値であり、かつ基準セグメントから最小遅延時間だけ隔てた位置に補助セグメントが配された場合、基準セグメントと補助セグメントとにはオーバーラップが生じる、ことを特徴とする請求項５記載の変換装置。
【請求項７】
速度変換が時間圧縮である場合、補助セグメントは、再生時間軸において基準セグメントより後に位置し、
前記変換が伸長である場合、補助セグメントは、再生時間軸において基準セグメントより前に位置する、ことを特徴とする請求項５記載の変換装置。
【請求項８】
前記変換装置は、音声用の変換装置として映像及び音声の再生出力を行う再生装置に組み込まれ、
再生装置は、映像再生の速度変換を行う映像用の変換装置を備え、
映像用の変換装置は、
ビデオデータを構成する複数のフレームのうち、一部をフリーズ又はスキップしつつ出力することで、速度変換を行う
ことを特徴とする請求項１記載の変換装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声の速度変換技術の技術分野に属し、再生音声の聴きやすさの向上に関する。
【背景技術】
【０００２】
音声の速度変換技術とは、音声の基本周波数（音程）を維持しつつ、継続時間長のみを変化させる技術であり、映像や音楽の再生装置において、トリック再生時の音質向上に取り入れられている。以下、従来の速度変換について説明する。
従来の速度変換では、オーディオデータを複数の周期に分け、各周期を、12m秒のセグメントに分割する。ここでは、1つの周期がA,B,C,D,Eという5つのセグメントに分割されたとすると、これら同じ周期に属するセグメントの組合せに対して、類似度を算出し、この周期に属するセグメントのうち、類似度が最も高くなる組み合わせが、どれとどれの組み合わせであるかを判定する。ここでA,B,C,D,Eのうち、B,Cの組み合わせについての類似度が最も高い場合、B,Cが同時に再生されるように重ね合わせを行う。この重ね合わせは、時間的に前に存在するセグメントBに、時間的に漸減する窓関数を乗じ、時間的に後に存在するセグメントCに、時間的に漸増する窓関数を乗じて、2つのセグメントを加算することでなされる。この重ね合わせの結果を、B/Cとして、上述したようなA,B,C,D,Eを、A,B/C,D,Eとして出力すれば、周期の時間長は4/5になる。同様の類似度算出と、重ね合わせとを全ての周期に対して行えば、オーディオデータの時間長4/5に縮小することになる。
【０００３】
逆に、時間的に前に存在するセグメントBに、時間的に漸増する窓関数を乗じ、時間的に後に存在するセグメントCに、時間的に漸減する窓関数を乗じて、2つのセグメントを加算した場合の重ね合わせの結果を、C＼Bとする。上述したようなA,B,C,D,Eに、このC＼Bを加えて、A,B,C＼B,C,D,Eとして出力すれば、周期の時間長は6/5倍になる。同様の類似度算出と、重ね合わせとを全ての周期に対して行えば、オーディオデータの時間長を6/5倍に伸長することができる。
【０００４】
上述したような速度変換には、例えば特許文献１に記載されているようなオーディオデータの話速制御型補聴方法、または特許文献２もしくは非特許文献１に記載されているようなオーディオデータに対する線形な音声変換装置が知られている。
【特許文献１】特開平５-８０７９６号公報
【特許文献２】特開平４-１０４２００号公報
【非特許文献１】鈴木，三崎  「高品質音声速度変換方式のDSPによる実現」，信学    技報，SP90-34（１９９０）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上述したような速度変換は、対象となる信号に対して例えば周期を定めて、周期に属する複数のセグメントから重ね合わせの対象となるものを選ぶという線形的なものなので、重ね合わせの対象となるセグメントは、オーディオデータの再生時間軸に対して、一様に選ばれることになる。このような一様な選択の結果、再生される音声は、録音テープを早く回したり、遅く回して再生したとき生じるような、おかしな音声になることがあり、その内容の聞き取りやすさが、充分に保障されているとはいい難い。
【０００６】
また、重ね合わせ処理の対象として、母音が発声されている有音区間や無音区間を選ぶことが、有効であるという事実が、近年の研究にて判明しているが、数百ミリ秒の母音区間や、1秒、2秒というオーダの無音区間が継続しているようなオーディオデータが速度変換の対象である場合、上述したような速度変換は、有音になっている区間からも、無音になっている区間からも、一様に重ね合わせの対象となるセグメントを選んでしまう。そのため、周期を定めて、その中から重ね合わせの対象となるセグメントを選ぶという速度変換は、余り効率がよいとはいえないとの問題点があった。
【０００７】
本発明の目的は、内容の聞き取り易さを維持しつつも、時間長を、所望の長さにして再生することができる、変換装置を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明にかかる変換装置は、オリジナルのオーディオデータを構成する複数のセグメントからセグメントの組みを選択して、それらのセグメントの組みの再生期間が重なり合うよう、セグメントを処理するセグメント処理手段と、重ね合わせの対象になったセグメントの組みと、当該重ね合わせの対象にならなかったセグメントとを、時系列に並べることで、変換結果となるオーディオデータを生成する生成手段とを備え、前記重ね合わせの対象になったセグメントの組みと、当該重ね合わせの対象にならなかったセグメントとは、オリジナルのオーディオデータの時間軸において、非線形な関係にあることを特徴としている。
【発明の効果】
【０００９】
前記重ね合わせの対象になったセグメントの組みと、当該重ね合わせの対象にならなかったセグメントとは、オリジナルのオーディオデータの時間軸において、非線形な位置に存在するので、無音区間や母音が発声されている有音区間から、重ね合わせの対象となる音声を多く選び、子音が発声されている有音区間からセグメントを全く選択しないという、非線形選択が可能になる。オーディオデータにおいて一部に偏在している母音の発生区間や無音声区間を、重ね合わせの対象とすることができるので、原音の周波数を余り変えることなく、オーディオデータの時間長を伸び縮みさせることができる。
【００１０】
かかる伸び縮みは、人間が早く話したり、遅く話したりする際、無意識にしているものであり、かかる伸び縮みの実現により、話し口調に近い音声再生が、速度変換において実現されることになる。これにより、再生音声を、人間が発声速度を変える場合の速度の遷移に類似させることができる。従って、音声欠落や音声重複が少なく、音質劣化も少ないという効果がある。
【００１１】
重ね合わせの対象となるセグメントを、オーディオデータから非線形に選択するので、速度変換の対象となるオーディオデータの区間が広ければ広いほど、多くの範囲から、重ね合わせの対象となるセグメントの組みが選ばれることになる。線形型の速度変換のように、重ね合わせの対象は、周期の内部に制限されないので、当該速度変換と比較して、高効率な伸長／圧縮が可能となる。
【００１２】
組みにおけるセグメントのうち、一方はある人物の音声のみからなり、他方は、同じ人物の音声にBGMやノイズを加えたものであっても、かかる組みの類似度が、これ以外のセグメントの組みより高いと判定されることにより重ね合わせの対象と選ばれるので、期待の圧縮比や伸長比での再生出力を実現することができる。
また、任意的であるが、上述した変換装置の技術的事項(技術的事項１とする)に、以下の技術的事項を加え、変換装置を具体的な構成にすることにより、更なる効果をもたらすことができる。
【００１３】
｛技術的事項２｝
前記変換装置は、オリジナルのオーディオデータを構成するセグメントの組合せを複数生成して、個々の組合せについて、類似度を算出する算出手段を備え、前記重ね合わせの対象となるセグメントの組みは、複数セグメントの組合せのうち、算出手段により算出された類似度の高さが上位となるものであり、前記重ね合わせの対象にならなかったセグメントは、複数セグメントの組合せのうち、算出手段により算出された類似度の高さが上位にならなかったものである。
【００１４】
本発明にかかる変換装置の特定に、上述したような技術的事項が追加されることにより、類似度が高くなるセグメントの時間差の決定と、重み付け加算を行うセグメントの組の選択とを、類似度という単一の評価尺度を用いて行うので、処理の複雑さや処理量を抑えることができるという効果もある。
｛技術的事項３｝
前記処理手段は、重ね合わせの対象となるセグメントの組みをオーディオデータから選択する選択手段を備え、選択手段は、1つ選択して、その度に、その組みにおけるセグメント間の時間差の累計をとり、重ね合わせの対象となるセグメントの組みは、当該時間差の累計値が、目標時間長を越えないことを条件として、選択手段がセグメントの組みの選択を繰り返すことで選ばれることを特徴としている。
【００１５】
本発明にかかる変換装置の特定に、上述したような技術的事項が追加されることにより、所望の時間軸変換比が得られる組数だけ重み付け加算を行うセグメントの組みを選択するので、時間軸変換比を細かくかつ精度良く変えることができるという効果もある。
｛技術的事項４｝
前記変換装置は、音声用の変換装置として映像及び音声の再生出力を行う再生装置に組み込まれ、再生装置は、映像再生の速度変換を行う映像用の変換装置を備え、映像用の変換装置は、ビデオデータを構成する複数のフレームのうち、一部をフリーズ又はスキップしつつ出力することで、速度変換を行うことを特徴としている。
【００１６】
本発明にかかる変換装置の特定に、上述したような技術的事項が追加されることにより、ビデオデータに対しては、フレーム画像を一部フリーズ又はスキップすることで、時間軸に対してほぼ均一に、つまり、線形的に、速度変換が施されることになる。
その結果、ビデオデータの表示には簡単な処理でガクガクしない滑らかな速度変換が施されることになり、オーディオデータには、人間が発声速度を変える場合の速度遷移に類似した自然な速度変換が施されることになる。
【００１７】
さらに映像と音声の同期は途中でずれることはあるものの、音声に対する速度変換は非線形であるが正確に、所定の変換比率に基づく速度変換を行うので、少なくとも最後には映像と音声の同期を一致させることができるという効果がある。
【発明を実施するための最良の形態】
【００１８】
(第１実施形態)
以下、図面を参照しながら、本発明にかかる変換装置の実施形態について説明する。本発明にかかる変換装置の使用形態は、再生装置に組み込まれ、音声再生機能の一部として利用されるというものである。
変換装置による速度変換は、半導体メモリカードやHDDなど、書き換え型の記録媒体に記録されているオリジナルのオーディオデータを読み出し、読み出されたオリジナルのオーディオデータを一旦、非圧縮の状態にまで復号して、これにより得られた非圧縮のオーディオデータを構成するセグメントのうち、ユーザにより指定された時間範囲Trに属するものの組みを、オーディオデータの再生時間軸とは非線形に選択して、かかるセグメントの組みを重ね合わせて出力することでなされる。このように出力されたセグメントの集まりが、トリック再生用のオーディオデータになる。
【００１９】
トリック再生用のオーディオデータとは、再生装置がトリック再生を実行するにあたって、オリジナルのオーディオデータの代わりに再生されるオーディオデータであり、変換の元になったオリジナルのオーディオデータと、その時間範囲Trと、速度変換前後の再生時間軸の比率αとに対応付けられた状態で記録媒体に書き込まれる。
そうすると、後日、オリジナルのオーディオデータの時間範囲Trに対して、比率αでのトリック再生が命じられた際、再生装置は、記録媒体に記録されているトリック再生用のオーディオデータのうち、このオリジナルのオーディオデータと、時間範囲Trと、トリック再生における速度比率αとの組合せに合致するものを取り出して、オリジナルのオーディオデータの代わりに再生することができる。この際、予め作成しておいたトリック再生用オーディオデータを、記録媒体から読み出して、再生に供することができるので、ユーザは、きれいな音声で、トリック再生時の音声を聞くことができる。
【００２０】
本実施形態では、トリック再生用オーディオデータを一旦蓄積して、再生することを意図しているので、変換装置による速度変換の実行は、必ずしも、リアルタイムに行われる必要はない。
図１は、変換装置が組込まれる再生装置の内部構成を示す図である。本図に示すように再生装置は、記憶回路１と、映像音声分離回路２と、映像復号回路３と、音声復号回路４と、記憶回路６と、制御回路７とから構成される。
【００２１】
記憶回路１は、MPEG2-Video,MPEG4-AVC等の符号化方式で圧縮されたビデオデータと、MPEG2-AAC,Dolby Digitalといった符号化方式で圧縮されたオーディオデータとを格納するものであり、制御回路が出力するアドレス値に基づいて、所望のビデオデータとオーディオデータを出力する。
映像音声分離回路２は、記憶回路１から出力されたビデオデータとオーディオデータを入力し、ビデオデータは映像復号回路３に出力し、オーディオデータは音声復号回路４に出力する。
【００２２】
映像復号回路３は、映像音声分離回路２から出力されたビデオデータを映像信号に復号する。
音声復号回路４は、映像音声分離回路２から出力されたオーディオデータをオーディオデータに復号して、記憶回路６に格納する。
制御回路７は、MPU、当該MPUに命令コードを供給するROMから構成されるワンチップマイコンであり、音声復号回路の復号によりメモリ上に得られた非圧縮のオーディオデータのうち、予め定められた時間範囲Trに対して、速度変換を施す。この速度変換は、オーディオデータの予め定められた時間範囲Trの中に存在するセグメントの組のうち、類似度が高いものを非線形に選んで、重み付け加算の対象とするというものである。
【００２３】
本発明は、重ね合わせの対象となるセグメントを、非線形選択に選択することを特徴としている。以下、この非線形選択の原理を模式的に説明する。
図２は、非線形選択により選択される複数のセグメントを示す図である。第１段目は、対象となるオーディオデータに対応する音声信号レベルを示し、第２段目は、このオーディオデータに対して非線形選択を行った場合、選択されるセグメントを示し、第３段目は、このオーディオデータに対して線形選択を行った場合、選択されるセグメントを示す。第３段目において、重ね合わせの対象として選択されたセグメントの組みは、ハッチングを付して示している。このハッチングが付されたセグメントの所在に注意を払えば、第３段目では、“｛”にて明示されている周期から、重ね合わせの対象となるセグメントの組みが選択されている。このことから線形選択では、オーディオデータにおける一定周期に属するセグメントの中から、重ね合わせの対象となるセグメントの組みが一様に選択されていることがわかる。
【００２４】
第２段目においても、重ね合わせの対象として選択されたセグメントの組みは、ハッチングを付して示している。このハッチングが付されたセグメントの所在に注意を払えば、第２段目では、第１段目における音声信号レベルのうち、その波高値が閾値未満となる部分(無音区間という)から、重ね合わせの対象となる組みが選ばれていることがわかる。このことから非線形選択では、オーディオデータにおける一定周期とは無関係に、重ね合わせの対象となるセグメントの組みが、無音区間から集中的に選択されていることがわかる。
【００２５】
図３は、図２で選択されたセグメントの組みが、どのように重ね合わせられるかを示す。本図における第１段目は、非線形選択による重ね合わせを示し、第２段目は、線形選択による重ね合わせを示す。これら第１段目、第２段目は、図２に示したオーディオデータのうち、有音区間から無音区間に切り替わる部分を特に示している。
第２段目におけるB/Cは、線形選択の実行時において、重ね合わせの対象になるセグメントの組みを示す。このB/Cの所在に注意を払えば、重ね合わせの対象となるセグメントの組みは、有音区間に属する周期からも、無音区間に属する周期からも、一様に選ばれていることがわかる。
【００２６】
第１段目におけるA/B、C/Dは、非線形選択の実行時において重ね合わせの対象になるセグメントの組みを示す。このA/B、C/Dの所在に注意を払えば、重ね合わせの対象となるセグメントの組みは、無音区間に属する周期から集中的に選ばれていて、有音区間に属する周期からは、選ばれていないことがわかる。
以上の非線形選択の要件について、更に説明を進める。
【００２７】
＜非線形選択の対象＞
非線形選択の対象となる区間、つまり、図２に例示するところの無音区間の特色としては、セグメントの相関性が高い値になるか、又は、最小２乗誤差が低い値になっているという性質が認められる。これら相関性の高さ、又は、最小２乗誤差の低さを、“類似度の高さ”と呼ぶ。本発明では、かかる類似度が高いセグメントの組みを、非線形選択の対象としている。
【００２８】
ここで二乗誤差の演算、相関関数の演算としては、以下の数式を利用することができる。
（数１）は、類似度算出のための二乗誤差の演算を示す。ただし（数１）では簡単のため、単位時間とサンプリング周期とを等しいとして表現している。
【００２９】
【数１】
2007086365.tif 000033
（数２）は、類似度算出のための相関関数の演算を示す。ただし（数２）では簡単のため、単位時間とサンプリング周期とを等しいとして表現している。
【００３０】
【数２】
2007086365.tif 000034
かかる類似度が高くなる区間は、無音区間であるとは限らず、母音が偏在しているような有音区間も、類似度が高くなる。また類似度として上述の(数１)(数２)以外のものを採用した場合は、別の特性をもった区間における類似度が高くなる可能性がある。このようにして算出された類似度が、高くなる区間を、本発明にかかる非線形選択では、選択の対象としている。
【００３１】
類似度として、最小２乗誤差、相関関数のどちらを使用するかによって、類似度が高いセグメントを選択するか、類似度が低いセグメントを選択するかという基準が変わる。以降は、特に断らない限り、類似度の高さとして最小２乗誤差の小ささを採用するものとし、かかる類似度が高いかどうかを、セグメント選択の基準とする。
また、(数１)(数２）においては、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)との組みに対して、２乗誤差又は相関関数が算出されているので、これらＸ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)との組みが、非線形選択の対象となる。以降、これらＸ１(1)〜Ｘ１(Ts)、Ｘ２(1)〜Ｘ２(Ts)をそれぞれ、Ｘ１、Ｘ２と呼び、一個の処理単位として扱う。
【００３２】
＜選択の範囲＞
上述したような非線形選択の範囲は、以下の数３、数４を満たすセグメントの集まりであるといえる。
【００３３】
【数３】
2007086365.tif 000035
【００３４】
【数４】
2007086365.tif 000036
ここでαは、オーディオデータの入力時間長と、出力時間長との時間軸変換比であり、数３は、α≧１のケースにて適用され、数４は、α＜１のケースにて適用される。
時間軸伸長を行う場合、α≧１となり、時間軸圧縮を行う場合、α＜１となる。これらの数３、数４において、左辺はオーディオデータの目標時間長、右辺は選択されたセグメントの時間差の累計であるので、数３、数４を満たすセグメントの集合は、オーディオデータにおけるセグメントの組みに対して、類似度を算出して、その類似度に基づきセグメントの組みの順位付けを行い、この順位に従った選択を繰り返すことで得られる。上述したように、類似度の算出は、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とを対象にしてなされているので、この数３、数４における選択も、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とを対象にしてなされる。
＜重ね合わせ＞
非線形選択により選択されたセグメントの組みは、以下の数式に基づく重ね合わせの対象となる。
【００３５】
【数５】
2007086365.tif 000037
【００３６】
【数６】
2007086365.tif 000038
ここでＷ1(n)は、漸増する窓関数であり、Ｗ2(n)は、漸減する窓関数である。Tsは、セグメントの個数を意味する。上述したように、類似度の算出及びセグメントの選択は、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とを対象にしてなされているので、この数５、数６における重ね合わせも、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とを対象にしてなされる。
【００３７】
予め断っておくが、本願において技術的思想の創作として位置付けられているのは、以上に述べたような、重ね合わせの対象たるセグメントを、時間軸とは非線形に選ぶという点であり、本明細書で開示したハードウェア構成及びソフトウェア構成は、かかる技術的思想の創作を、実際の再生装置に実装する場合に合理的であると考えられているものの1つに過ぎない。以降、MPUに、速度変換を実行させる場合の、ソフトウェアによる実装を、以下に説明する。
【００３８】
非線形選択にあたって、重ね合わせの対象となるセグメントの組みをどのように選択するかについて説明する。上述したように、類似度の算出と、選択、重ね合わせは、Ｘ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とを対象にしてなされている。
これらのセグメントの組みを以降、Ｘ１、Ｘ２と略記する。ここで、Ｘ１は、Ｘ２より時間的に先に位置する。
【００３９】
時間軸伸長の場合、時間的に後続するＸ２を基準にして、Ｘ１を移動させる。基準となるセグメントを上述したように選ぶのは、Ｘ２を固定し、Ｘ１を、再生時間軸において移動させるためである。これによりＸ２と、Ｘ２以前の部分との連続性を維持しつつ、最大遅延時間Tl_maxから、最小遅延時間Tl_minまでの範囲にて時間長を変更させることができる。
【００４０】
Tl_max、Tl_min、セグメントの時間長について説明する。例えば音声信号の基本周波数(fundamental frequency)の取り得る範囲は、おおよそ50〜500Hzと言われる。従って、音声信号の最長周期は50Hzの逆数である20msecとなり、最短周期は500Hzの逆数である2msecとなる。上述したようなセグメントＸ１、Ｘ２の時間長は、2msecと20msecの間の、12msecに設定している。そして最小遅延時間Tl_minは、最短周期の2msec以下の時間長に設定し、最大遅延時間Tl_maxは、20msec以上の時間長に設定している。そうすれば、基本周波数が50〜500Hzの範囲の入力音声信号に対して、セグメント間の位相を合わせて重み付け加算をすることが可能となる。ただし演算量との兼ね合いから、実際には遅延時間が2msec以下から20msec以上の範囲でセグメント間の位相を合わせるためのセグメント探索を行わない場合があり、ソフトウェア又はハードウェアで、速度変換を実現するにあたっては、最小遅延時間Tl_minは入力信号の最短周期に、所定時間を加減算した値、つまり、最短周期の近傍値に設定するのが望ましい。同様に、最大遅延時間Tl_maxもまた、入力信号の最長周期に所定時間を加減算した値、つまり、最長周期の近傍値に設定するのが望ましい。
【００４１】
時間軸圧縮を行う場合、時間的に先行するＸ１を基準とし、Ｘ２を移動させる。基準セとなるセグメントを上述したように選ぶのは、Ｘ１を固定し、Ｘ２を、再生時間軸において、移動させるためである。これによりＸ１と、Ｘ１以前の部分との連続性を維持しつつ、最大遅延時間Tl_maxから、最小遅延時間Tl_minまでの範囲にて、Ｘ１と、Ｘ２との間の時間長を変更させることができる。かかる移動において、類似度が最高となった補助セグメントの位置を、最適遅延時間Tl_optにて表現する。ここでＸ１、Ｘ２のうち、基準として固定する側を“基準セグメント”といい、類似度の最大値を探索するため、移動させる側を“補助セグメント”という。
【００４２】
こうした類似度の算出と、セグメントの選択とは、図４に示す選択ログを用いることで実現される。図４は、セグメント選択ログを示す図である。本ログの追記単位は、Ｘ１の先頭時刻と、Ｘ２の先頭時刻との組みに、類似度Ｒ(i)と、選択フラグＭ(i)とを対応付けることで構成される。図中のログにおける先頭の追記単位は、時刻AAAAと、時刻BBBBとの組みに対して、CCCCの類似度と、値“1”の選択フラグとを対応付けたものである。
【００４３】
次の追記単位は、時刻AAAA'と、時刻BBBB’との組みに対して、CCCC’の類似度と、値“1”の選択フラグとが対応付けたものである。
Ｘ１、Ｘ２、Tl_max、Tl_min、Tl_optがどのような値を取り得るかを時間軸上で描いたのが、図５である。図５（ａ）は、時間軸伸長を行う場合に、類似度が最高であるとして選択された、Ｘ１、Ｘ２の3つの組みを示す図である。
【００４４】
本図における５０７、５０８、５０９は、Ｘ２となるべき信号区間である。これらのうち、５０７は、オーディオデータの先頭から間隔Tl_maxだけ隔てられており、５０８は、５０７から所定の間隔ΔTdだけ、５０９も、５０８から所定の間隔ΔTdだけ隔てられている。この所定の間隔ΔTdは、例えばTl_maxを上回る間隔である。
Ｘ１は、Ｘ２の位置を基準にしてTl_maxだけ隔てられた時点から、Tl_minだけ隔てられた時点までのどこかに存在する。
(Ｘ２が、５０７に位置した場合)
５０２_iは、Ｘ１の先頭時点を指し示す第１ポインタであり、５０３_iは、Ｘ２が５０７に位置していた場合において、Ｘ２の先頭時点を指し示す第２ポインタである。５０２_iは、５０３_i−Tl_minの計算から算出される時刻なので、かかる時刻が第１ポインタに初期設定される。
【００４５】
５０４_minから５０４_maxまでは、Ｘ１が移動することで、Ｘ１が存在し得る範囲を示す。つまり、第２ポインタを上述した位置に固定し、第１ポインタを更新することで、Ｘ１をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ１が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。５０４_maxは、Ｘ２が上述した５０７に位置していた場合、５０３_i−Tl_maxの計算から算出されるＸ１の占有範囲である。５０４_minは、Ｘ２が上述した５０７に位置していた場合、５０３_i−Tl_minの計算から算出されるＸ１の占有範囲である。
【００４６】
５０４_optは、Ｘ１が５０４_maxから５０４_minまでの範囲を移動するにあたって、類似度が最高となる場合におけるＸ１の占有範囲であり、その先頭位置は、５０３_i−Tl_optとなる。Tl_optは、上述したようなＸ１の移動範囲において類似度の高いセグメントの組みを探索することで得られた値であり、その時のＸ１とＸ２の時間差を意味する。
(Ｘ２が、５０８に位置した場合)
このときのＸ１、Ｘ２をＸ１’、Ｘ２’とする。
【００４７】
５０２_i+1は、Ｘ１’の先頭時点を示す第１ポインタの値である。５０３_i+1は、Ｘ２’の先頭時点を示す第２ポインタの値である。５０２_i+1は、５０３_i+1−Tl_minの計算から算出される時刻なので、かかる時刻が第１ポインタに初期設定される。
５０５_minから５０５_maxまでは、Ｘ１’が取り得る範囲を示す。つまり、第２ポインタを上述した位置に固定し、第１ポインタを更新することで、Ｘ１’をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ１’が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。５０５_maxは、Ｘ２’が上述した５０８に位置していた場合、５０３_i+1−Tl_maxの計算から算出されるＸ１’の占有範囲である。５０５_minは、Ｘ２’が上述した５０８に位置していた場合、５０３_i+1−Tl_minの計算から算出されるＸ１’の占有範囲である。
【００４８】
５０５_optは、Ｘ１’が５０５_maxから５０５_minまでの範囲を移動するにあたって、類似度が最高となる場合におけるＸ１’の占有範囲であり、その先頭位置は、５０３_i+1−Tl_optとなる。Ｘ２’が、５０８に位置していた場合、この５０５_optが、導きだされることになる。
(Ｘ２が、５０９に位置した場合)
このときのＸ１、Ｘ２をＸ１''、Ｘ２''とする。
【００４９】
５０２_i+2は、Ｘ１''の先頭時点を示す第１ポインタの値であり、５０３_i+2は、Ｘ２''のＸ２の先頭時点を示す第２ポインタの値である。５０２_i+2は、５０３_i+2−Tl_minの計算から算出される時刻なので、かかる時刻が第１ポインタに初期設定される。
５０６_minから５０６_maxまでは、Ｘ１''が取り得る範囲を示す。つまり、第２ポインタを上述した位置に固定し、第１ポインタを更新することで、Ｘ１''をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ１''が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。５０６_maxは、Ｘ２''が上述した５０９に位置していた場合、５０３_i+2−Tl_maxの計算から算出されるＸ１''の占有範囲である。５０６_minは、Ｘ２''が上述した５０９に位置していた場合、５０３_i+2−Tl_minの計算から算出されるＸ１''の占有範囲である。
【００５０】
５０６_optは、５０６_maxから５０６_minまでの範囲を移動するにあたって、類似度が最高となる場合におけるＸ１''の占有範囲であり、その先頭位置は、５０３_i+2−Tl_optとなる。
図５のＸ１,Ｘ２、Ｘ１',Ｘ２'が選択された後、Ｘ１'',Ｘ２''が選択された時点で、累計Tasが、目標の時間長Taを上回ったとすると、Ｘ１'',Ｘ２''は選択対象から外れる。これによりＸ１,Ｘ２、Ｘ１',Ｘ２'の組みが、重ね合わせの対象になる。図中の、Ｘ３、Ｘ４は、Ｘ１,Ｘ２、Ｘ１',Ｘ２'の組みが選択されることで、そのまま出力される区間である。
【００５１】
図５（ｂ）は、Ｘ１,Ｘ２か重ね合わせの対象になる場合、実行される演算を模式的に示す図である。
図中の演算「Ｘ１」×「Ｗ１」は、Ｘ１（５１０）に対して、漸減する窓関数を乗ずるという演算を示す。本図において、Ｘ１を表す四角形の大きさはＸ１のデータ量を示し、Ｗ１を表す三角形の大きさは、Ｗ１による縮小比率を表す。つまり、Ｘ１にＷ１が乗ざれることで、Ｘ１は、Ｗ１に相当する三角形の大きさまで、縮小されるのである。
【００５２】
図中の演算「Ｘ２」×「Ｗ２」は、Ｘ２（５１１）に対して、漸増する窓関数５１３を乗ずるという演算を示す。本図において、Ｘ２を表す四角形の大きさはＸ２のデータ量を示し、Ｗ２を表す三角形の大きさは、Ｗ２による縮小比率を表す。つまり、Ｘ２にＷ２が乗ざれることで、Ｘ２は、Ｗ２に相当する三角形の大きさまで、縮小されるのである。
図中の演算「＋」は、「Ｘ１×Ｗ１」と、「Ｘ２×Ｗ２」との加算を示す。加算された信号「Ｘ２＼Ｘ１」は、Ｗ１により縮小がなされたＸ１と、Ｗ２により縮小がなされたＸ２との和である。
【００５３】
図５（ｃ）は、図５（ａ）のように、Ｘ１、Ｘ２とＸ１'，Ｘ２'が選択された場合の重ね合わせ出力を示す。本図における出力信号は、「Ｘ２＼Ｘ１」の出力区間、「Ｘ０」の出力区間、「Ｘ２’＼Ｘ１’」の出力区間、「Ｘ３」の出力区間、「Ｘ２''」の出力区間、「Ｘ４」の出力区間からなる。図中の「Ｘ２＼Ｘ１」は、「Ｘ１×Ｗ１」と、「Ｘ２×Ｗ２」との加算出力である。図中の「Ｘ２’＼Ｘ１’」は、「Ｘ１’×Ｗ１」と、「Ｘ２’×Ｗ２」との加算出力である。「Ｘ３」は、そのまま出力されたものである。
【００５４】
図中の「Ｘ２''」、「Ｘ４」は、そのまま出力されたものである。
図６（ａ）は、時間軸圧縮を行う場合に選択される、Ｘ１、Ｘ２の3つの組みを示す図である。
６０４、６０５、６０６は、Ｘ１が存在する区間を示す。Ｘ２は、Ｘ１の位置を基準にしてTl_maxだけ隔てられた時点から、Tl_minだけ隔てられた時点までのどこかに存在する。
【００５５】
(Ｘ１が、６０４に位置した場合)
６０２_iは、Ｘ１の先頭時点を指し示す第１ポインタであり、６０３_iは、Ｘ２の先頭時点を指し示す第２ポインタである。第２ポインタは、６０２_i＋Tl_minの値に初期設定される。
６０７_minから６０７_maxまでは、Ｘ２が取り得る範囲を示す。つまり、第１ポインタを上述した位置に固定し、第２ポインタを更新することで、Ｘ２をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ２が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。６０７_maxは、Ｘ１が上述した６０４に位置していた場合、６０２_i＋Tl_maxの計算から算出されるＸ２の占有範囲である。６０７_minは、Ｘ１が上述した６０４に位置していた場合、６０２_i＋Tl_minの計算から算出されるＸ２の占有範囲である。
【００５６】
６０７_optは、６０７_maxから６０７_minまでの範囲をＸ２が移動するにあたって、類似度が最高となる場合におけるＸ２の占有範囲であり、その先頭位置は、６０２_i+Tl_optとなる。
(Ｘ１が、６０５に位置した場合)
このときのＸ１、Ｘ２をＸ１’、Ｘ２’とする。６０２_i+1は、Ｘ１’が６０５に位置していた場合における、Ｘ１’の先頭時点を指し示す第１ポインタであり、６０３_i+1は、Ｘ２’の先頭時刻を指し示す第２ポインタである。この第２ポインタは、６０２_i+1+Tl_minの値に初期設定される。
【００５７】
６０８_minから６０８_maxまでは、Ｘ２’が取り得る範囲を示す。つまり、第１ポインタを上述した位置に固定し、第２ポインタを更新することで、Ｘ２’をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ２’が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。６０８_maxは、Ｘ１’が上述した６０５に位置していた場合、６０２_i+1＋Tl_maxの計算から算出されるＸ２’の占有範囲である。６０８_minは、Ｘ１’が上述した６０５に位置していた場合、６０２_i+1+Tl_minの計算から算出されるＸ２'の占有範囲である。
【００５８】
６０８_optは、６０８_maxから６０８_minまでの範囲を移動するにあたって、類似度が最高となる場合におけるＸ２’の占有範囲であり、その先頭位置は、６０２_i+1+Tl_opt’となる。第１ポインタが６０２_i+1を指し、Ｘ１’が、６０５に位置していた場合、かかる位置の第１ポインタに対して、かかる６０８_optが、導きだされることになる。
(Ｘ１が、６０６に位置した場合)
このときのＸ１、Ｘ２をＸ１''、Ｘ２''とする。６０２_i+2は、Ｘ１''の先頭時点を指し示す第１ポインタであり、６０３_i+2は、Ｘ２''の先頭時点を指し示す第２ポインタである。
【００５９】
６０９_minから６０９_maxまでは、Ｘ２''が取り得る範囲を示す。つまり、第１ポインタを上述した位置に固定し、第２ポインタを更新することで、Ｘ２''をかかる範囲内で移動させるのである。図中の“−−−−”は、Ｘ２''が、これら_minから_maxまでの間を、徐々に移動してゆくことを模式的に示している。このような移動により、類似度が最も高くなる位置の探索を行う。６０９_maxは、Ｘ１''が上述した６０６に位置していた場合、６０２_i+2＋Tl_maxの計算から算出されるＸ２''の占有範囲である。６０９_minは、Ｘ１''が上述した６０６に位置していた場合、６０２_i+2+Tl_minの計算から算出されるＸ２''の占有範囲である。
【００６０】
６０９_optは、Ｘ２''が６０９_maxから６０９_minまでの範囲を移動するにあたって、類似度が最高となる場合におけるＸ２''の占有範囲であり、その先頭位置は、６０２_i+2+Tl_optとなる。第１ポインタが６０２_i+2を指し、Ｘ１''が、６０６に位置していた場合、かかる位置の第１ポインタに対して、かかる６０９_optが、導きだされることになる。
【００６１】
図６のＸ１,Ｘ２、Ｘ１',Ｘ２'が選択された後、Ｘ１'',Ｘ２''が選択された時点で、累計TasがTaを上回ったとすると、Ｘ１'',Ｘ２''は選択外となる。これによりＸ１,Ｘ２、Ｘ１',Ｘ２'の組みが、重ね合わせの対象になる。図中の、Ｘ３、Ｘ４は、Ｘ１,Ｘ２、Ｘ１',Ｘ２'の組みが選択されることで、そのまま出力される区間である。Ｘ１,Ｘ２、Ｘ１',Ｘ２'が選択されたため、Ｘ０は、Ｘ２と、Ｘ１’との間になっており、Ｘ３は、Ｘ２’と、Ｘ１''との間になっている。一方、Ｘ１'',Ｘ２''は、選択外なので、Ｘ４は、Ｘ２’以降、全てになっている。
【００６２】
図６（ｂ）は、Ｘ１,Ｘ２か重ね合わせの対象になる場合、実行される演算を模式的に示す図である。
図中の演算「Ｘ１」×「Ｗ２」は、Ｘ１（６１０）に対して、漸減する窓関数６１２を乗ずるという演算を示す。本図において、Ｘ１を表す四角形の大きさはＸ１のデータ量を示し、Ｗ２を表す三角形の大きさは、Ｗ２による縮小比率を表す。つまり、Ｘ１にＷ２が乗ざれることで、Ｘ１は、Ｗ２に相当する三角形の大きさまで、縮小されるのである。
【００６３】
図中の演算「Ｘ２」×「Ｗ１」は、Ｘ２（６１１）に対して、漸増する窓関数６１３を乗ずるという演算を示す。本図において、Ｘ２を表す四角形の大きさはＸ２のデータ量を示し、Ｗ１を表す三角形の大きさは、Ｗ１による縮小比率を表す。つまり、Ｘ２にＷ１が乗ざれることで、Ｘ２は、Ｗ１に相当する三角形の大きさまで、縮小されるのである。
図中の演算「＋」は、「Ｘ１×Ｗ２」と、「Ｘ２×Ｗ１」との加算を示す。加算された信号「Ｘ１／Ｘ２」は、Ｗ２により縮小がなされたＸ１と、Ｗ１により縮小がなされたＸ２との和である。
【００６４】
図６（ｃ）は、図６（ａ）のように、Ｘ１、Ｘ２と、Ｘ１'，Ｘ２'とが選択された場合の重ね合わせ出力を示す。本図における出力信号は、「Ｘ１／Ｘ２」の出力区間、「Ｘ０」の出力区間、「Ｘ１’／Ｘ２’」の出力区間、「Ｘ４」の出力区間からなる。
図中の「Ｘ１／Ｘ２」は、「Ｘ１×Ｗ２」と、「Ｘ２×Ｗ１」との加算出力である。「Ｘ０」は、そのまま出力されたものである。
【００６５】
図中の「Ｘ１’／Ｘ２’」は、「Ｘ１'×Ｗ２」と、「Ｘ２'×Ｗ１」との加算出力である。図中の「Ｘ４」は、そのまま出力されたものである。
これらの図５、図６において、Ｘ１とＸ２とにギャップが生じるには、Ｘ１、Ｘ２がTl_maxだけ隔てられている場合であって、セグメントの時間長がTl_minとTl_maxの中間値であることが条件になる。Ｘ１とＸ２とにオーバラップが生じるには、Ｘ１、Ｘ２がTl_minだけ隔てられている場合であって、セグメントの時間長がTl_minとTl_maxの中間値であることが条件になる。つまり図５、図６は、セグメントの長さを、音声信号の最短周期と、最長周期の中間値に設定していることを条件にしている。
【００６６】
以上のような速度変換のソフトウェアによる実装は、時間軸伸長の場合は図７〜図１０の処理手順を、時間軸圧縮の場合は図１２〜図１５の処理手順をコンピュータ記述言語で記述し、プログラムを作成して、MPUに実行させることでなされる。尚、以降、フローチャートの解説には、図１１、図１６の参考図を引用するものとする。
図７は、時間軸伸張（α≧１）である場合の速度変換の処理手順を示すフローチャートである。これら図７〜図１０のフローチャートの各ステップは、７００番台の参照符号を付すことで、図１２〜図１５のフローチャートのステップと区別することにする。
【００６７】
ステップＳ７０２は、時間軸変換比αを読み込み、ステップＳ７０３において、スタート点の最大時間差Tl_max後の値を第２のポインタに初期設定する。ステップＳ７０４において処理単位カウンタiを初期値０に初期設定する。ステップＳ７００、ステップＳ７１５〜ステップＳ７２１は、ステップＳ７２０を終了条件とし、変数iを制御変数としたループを構成している。ステップＳ７０４は、このループに初期条件を与えるものである。
【００６８】
ステップＳ７００は、処理単位iについて最適時間差Tl_optと、最小二乗誤差R_minとを算出する。ステップＳ７１５は、第２ポインタから最適時間差Tl_optを引いた時刻を、処理単位iにおける第1のセグメントの先頭時刻Ｘ１（i）として記憶し、ステップＳ７１６では、第２ポインタの時刻を、処理単位iにおける第２のセグメントの先頭時刻Ｘ２（i）として記憶する。
【００６９】
ステップＳ７１７は、処理単位iにおける類似度R（i）として、求められた最小二乗誤差R_minを記憶する。
ステップＳ７１８は、処理単位iにおける選択M（i）として、未選択を示す“０”を設定する。ステップＳ７１９は、第２ポインタを時間△Tdだけ進める。
ステップＳ７２０は、第２ポインタに処理単位の時間長Tsを加算した時刻とエンド点とを比較するステップであり、ループの終了条件を規定する。第２ポインタに処理単位の時間長Tsを加算した時刻が、エンド点を越えない限り、本ループは繰り返されることがわかる。エンド点を越えれば、ステップＳ７５０に移行する。以上のように、本ループでは、第２ポインタを、ΔTd刻みに変化させてゆき、時間軸における各座標において、最小二乗誤差R(i)がどれだけになっているかを算出していることがわかる。
【００７０】
ステップＳ７５０は、（数３）に基づいて求めた必要延長時間Taに累計延長時間Tasが到達するまで、時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組の選択を行う。
ステップＳ７５１は、類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する。
【００７１】
図８は、処理単位iについて最適時間差Tl_optと、最小二乗誤差R_minとを算出する処理の詳細な処理手順を示すフローチャートである。
ステップＳ７０５は、最小二乗誤差R_minを初期値Nに初期設定するステップであり、ステップＳ７０６は、時間差Tlを初期値Tl_maxに初期設定する。ステップＳ７０７〜ステップＳ７１４は、ステップＳ７１４を終了条件とし、変数Tlを制御変数としたループを構成している。
【００７２】
ステップＳ７０７は、（第２のポインタ-Tl）を開始点として、Ts個のセグメントを入力するステップであり、ステップＳ７０８は、第２のポインタを開始点としてTs個のセグメントを入力するステップである。かかるステップにより、数１、数２に示したＸ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とが入力されることになる。
ステップＳ７０９は、（数１）に基づいて時間差Tlの時のＸ１とＸ２の二乗誤差R（Tl）を計算する。
【００７３】
ステップＳ７１０は、最小二乗誤差R_minと二乗誤差R（Tl）との比較であり、ステップＳ７１１及びステップＳ７１２を実行するかスキップするかの切り替えを行う。
二乗誤差R（Tl）がR_minよりも小さければステップＳ７１１及びステップＳ７１２を実行するが、大きければ、これらのステップをスキップしてステップＳ７１３に移行する。
ステップＳ７１１は、二乗誤差R（Tl）を用いて最小二乗誤差R_minを更新するステップである。
【００７４】
ステップＳ７１２は、時間差Tlを最適時間差Tl_optとして更新するステップである。
ステップＳ７１３は、時間差Tlを１サンプルだけ減少させる。
ステップＳ７１４は、時間差Tlと最小時間差Tl_minとを比較するという判定ステップであり、本ループの終了条件は、ステップＳ７１４がYesと判定されることである。時間差Tlが最小時間差Tl_minよりも小さくない場合にはステップＳ７０７に戻って、本ループの実行が継続される。時間差Tlが最小時間差Tl_minよりも小さい場合には、図７のフローチャートにリターンしてステップＳ７１５に進むことで、時間差Tlを最大時間差Tl_maxから最小時間差Tl_minの範囲で変える。Tlは、Tl_maxからTl_minまでの数値範囲を変化し、第１ポインタは、第２ポインタ-Tlにより定まるので、第１ポインタは、第２ポインタ-Tl_maxから第２ポインタ-Tl_minまでの数値範囲を変化する。
【００７５】
このフローチャートは、変数iがインクリメントされ、第２ポインタがΔTd刻みに移動する毎に実行されるので、第２ポインタがΔTdだけ変化する毎に、第１ポインタが、第２ポインタ-Tl_maxから第２ポインタ-Tl_minまでの値をとることになる。第２ポインタがΔTd刻みに移動した場合の各移動位置において、類似度が最高になるところのＸ１の位置が、本フローチャートの実行により計算されることになる。
【００７６】
以降、ステップＳ７５０の詳細について説明する。このステップＳ７５０は、以下の(数３)を満たす複数のセグメントの組みを選択するというものであり、その手順を表したのが図９のフローチャートである。
図９は、時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組を選択する処理手順を示すフローチャートである。
【００７７】
ステップＳ７２２〜７３６は、スタート点からエンド点までの範囲で時間△Td毎に処理単位iを変えるループ処理である。
ステップＳ７２２は、時間軸変換比αにするための必要延長時間Taを計算する。
ステップＳ７２３は、累計延長時間Tasを初期値０に初期設定する。ステップＳ７２４〜ステップＳ７３６は、ステップＳ７３６を終了条件とし、変数Tasを制御変数とした第１ループを構成している。ステップＳ７２３は、この第１ループに初期条件を与えるものである。
【００７８】
ステップＳ７２４は、類似度Rを初期値Nに初期設定して、処理単位カウンタjを初期値０に初期設定し、処理単位kを-１に初期設定する。このjは、0からiまでの変数にて特定されるＸ１、Ｘ２の組みのうち、処理対象となるものを示す。
ステップＳ７２７〜ステップＳ７３２は、ステップＳ７３２を終了条件とし、変数jを制御変数とした第２ループを構成している。ステップＳ７２４は、この第２ループに初期条件を与えるものである。この第２ループは、jを0からiまでの範囲で変化させて(ステップＳ７３１、ステップＳ７３２)、最小となるR(j)を用いて、Rを更新するものである(ステップＳ７２８、ステップＳ７２９)。またその最小となる時のjを、kとして保存するものである。
【００７９】
ステップＳ７２７は、j番目の処理単位の選択フラグM（j）が0でないかどうかの判定ステップであり、ステップＳ７２８、ステップＳ７２９を実行するか、スキップするかの切り替えを行う。ここで、第２ループにおいて、jは同じ数値範囲、つまり、0からiまでの数値範囲を変化するので、同じＸ１、Ｘ２の組みが、重複して選択される可能性がある。かかる重複選択を排除するのが、このステップＳ７２７の役割である。
【００８０】
ステップＳ７２８は、類似度Rを処理単位jにおける類似度R（j）と比較するステップであり、ステップＳ７２９を実行するか、スキップするかの切り替えを行う。本フローチャートでは、類似度として最小二乗誤差を用いているので、本ステップでは、R(j)がRより小さいかどうか、つまり、R＞R(j)という数式にて、本ステップにおける比較内容を表現している。類似度Rが、類似度R（j）よりも低い（二乗誤差は大きい）ならばステップＳ７２９へ進む。類似度Rが、類似度R（j）よりも高い（二乗誤差は大きくない）ならばステップＳ７２９をスキップしてステップＳ７３１へ進む。
【００８１】
ステップＳ７２９は、類似度Rを処理単位jにおける類似度R（j）で更新し、選択された処理単位kを処理単位jに更新する。
ステップＳ７３１は、変数jをインクリメントするステップである。
ステップＳ７３２は、iと処理単位カウンタjとの比較であり、第２ループの終了条件を規定する。上述したような、ループ処理を抜けた後なので、iは、全処理単位数を示す値になっている。全処理単位数iが処理単位jより小さくないならばステップＳ７２７に戻り、本ループを継続する。全処理単位数を示すiが処理単位jより小さいならばステップＳ７３３に進み、本ループを抜ける。
【００８２】
第２ループでは、ステップＳ７２８での比較でYesと判定されれば、R(j)の値を用いて、Rを更新してゆくので(ステップＳ７２９)、0≦ｊ≦iの範囲においてRは、最低の値になる。また、最低になったときのjの値は、kとして保存されることになる。
ステップＳ７３３は、選択処理単位kが負かどうかの判定であり、かかるループの終了条件を規定する。選択処理単位kが負であることは、第２ループにおいて、kが一度も更新されなかったことを意味する。この場合、本フローチャートの処理を終了する。
【００８３】
ステップＳ７３５は、類似度が高いとして選択されたk番目の処理単位の選択M（k）に１を設定すると共に、累計延長時間Tasを更新するステップであり、累計延長時間Tasの更新は、k番目の処理単位におけるＸ２（k）の先頭時刻と、k番目の処理単位におけるＸ１（k）の先頭時刻の時間差とを加算することでなされる。かかる加算が、第１ループにおいて繰り返し実行されるので、Ｘ１、Ｘ２の時間差の累計がTasに得られることになる。
【００８４】
ステップＳ７３６は、更新後の必要延長時間Taが累計延長時間Tasを越えたかどうかの判定であり、越えない場合、ステップＳ７２４に戻ってループを継続し、次に類似度の高いセグメントの組の選択を行う。越える場合、ループの終了条件は満たされたとして、本フローチャートの処理は終了することになる。
上述したように、類似度Rを最高にするための処理(ステップＳ７２８、ステップＳ７２９)は、選択フラグM（j）が０に設定されている場合に実行されるので、ステップＳ７３５において、Tasを更新すると共に、M(j)が１に更新されることで、一度選択されたjの値は、選択から除外される。そうすると、本第１ループの２巡目には、２番目に値が小さいＸ(j)が類似度Rに設定されることになり、３巡目には、３番目に値が小さいＸ(j)が類似度Rに設定されることになる。こうすることで、類似度Rが小さい順に、X1、X2の組みが選ばれてゆくことになる。
【００８５】
ステップＳ７５１の処理手順の詳細について説明する。ステップＳ７５１は、セグメントの組みに対して、以下の(数５)に基づく重ね合わせを実行する手順であり、その詳細なフローチャートを図１０に示す。図１０は、類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する処理手順を示すフローチャートである。
図９では、類似度が高い順にセグメントの組みをソーティングしたが、かかる類似度の高さ順では、時系列にセグメントの組みを出力してゆくことができないので、図１０では、第２ポインタをスタート点＋Tl_maxに設定しなおすことで、セグメントの組みを時系列に選択しなおして、重ね合わせの対象としている。
【００８６】
ステップＳ７３７は、第２ポインタにスタート点を設定する。ステップＳ７３８は、処理単位カウンタjを初期値０に初期設定する。
ステップＳ７３９〜ステップＳ７４６は、ステップＳ７４６を終了条件とし、変数jを制御変数としたループを構成している。
ステップＳ７３９は、第２ポインタを開始点としてj番目の処理単位におけるＸ２（j）の先頭時刻の直前までオーディオデータを入力してそのまま出力する。
【００８７】
ステップＳ７４０は、選択フラグM（j）に1が設定されているか否かの判定ステップであり、ステップＳ７４１〜ステップＳ７４４の処理をスキップするか、そのまま実行するかを切り替える。変数jのうち、前図のフローチャートにおいて、選択の対象になっているものは、M(j)が“1”になっており、選択対象になっていないものは、M(j)が“0”になっている。0からiまでの数値範囲をとる変数jのうち、前図のフローチャートにおいて、選択フラグM（j）が１に設定されているものは、処理単位jの類似度が高く、選択対象であるとしてステップＳ７４１〜ステップＳ７４４を実行する。
【００８８】
選択フラグM（j）が１に設定されていないならば処理単位jの類似度が高くなく選択されていないとしてステップＳ７４１〜ステップＳ７４４をスキップしてステップＳ７４５に進む。
ステップＳ７４１は、j番目の処理単位のＸ１（j）を構成するTs個のセグメントを入力する。ステップＳ７４２は、j番目の処理単位のＸ２（j）を構成するTs個のセグメントを入力する。かかるステップにより、数１、数２に示したＸ１(1)〜Ｘ１(Ts)と、Ｘ２(1)〜Ｘ２(Ts)とが入力されることになる。
【００８９】
ステップＳ７４３は、数５に基づき、重ね合わせを実行する。具体的には、ステップＳ７４１、７４２で入力されたＸ１(1)〜Ｘ１(Ts)に対して、Ｗ１(1)〜Ｗ１(Ts)を乗じると共に、Ｘ２(1)〜Ｘ２(Ts)に対して、Ｗ２(1)〜Ｗ２(Ts)を乗じ、これらの乗算結果を加算して、加算結果であるＹ(1)〜Ｙ(Ts)を出力する。
ステップＳ７４４は、第１ポインタに示されているj番目の処理単位のＸ１（j）の先頭時刻に、処理単位の時間長Tsを加算し、Ｘ１（j）末尾の時刻直後を第２ポインタに設定する。
【００９０】
ステップＳ７４５は、変数jをインクリメントする。
ステップＳ７４６は、全処理単位数を示すiと処理単位カウンタjとの比較であり、第２ループの終了条件を規定する。全処理単位数を示すiが処理単位jより小さくないならばステップＳ７３９に戻り、本ループを継続する。全処理単位数を示すiが処理単位jより小さいならばステップＳ７４７に進み、本ループを抜ける。
【００９１】
ステップＳ７４７は、第２ポインタを開始点としてエンド点までそのまま出力する。
ただしこのフローチャートでは簡単のため、単位時間とサンプリング周期とを等しいとして表現している。
図１１（ａ）〜（ｃ）は、図１０のフローチャートによりオーディオデータのどの部分が出力されるかを示す図である。
【００９２】
図１１（ａ）は、ステップＳ７３９の１巡目の実行にて、出力される部分を示す。ステップＳ７３９の１巡目の実行時には、第２ポインタは、スタート点を指しているので、本図に示すように、そのまま出力される区間は、スタート点からＸ2(j)の直前までとなる。
図１１（ｂ）は、ステップＳ７３９の２巡目以降の実行にて、出力される部分を示す。ステップＳ７３９の２巡目以降の実行時には、第２ポインタは、Ｘ１(j)の先頭点＋Tsを指しているので、本図に示すように、そのまま出力される区間は、Ｘ１(j)の終了点から、Ｘ２(j+1)の直前までとなる。
【００９３】
図１１（ｃ）は、ステップＳ７４７の実行にて、出力される部分を示す。ステップＳ７４７の実行時には、第２ポインタは、Ｘ１(j)の先頭点＋Tsを指しているので、本図に示すように、そのまま出力される区間は、Ｘ１(j)の直後から、エンド点までとなる。
このように、ステップＳ７０７からステップＳ７１４で、2つのセグメント間の時間差をTl_minからTl_maxまで、１サンプルずつ変えて、２つのセグメント間の類似度を（数１）もしくは（数2）に基づいて求め、その中から最も類似度の高い2つのセグメントを探索し、ステップＳ７１５で最も高い類似度になる第1のセグメントの先頭時刻Ｘ１（i）を記憶し、ステップＳ７１６で最も高い類似度になる第２のセグメントの先頭時刻Ｘ２（i）を記憶し、ステップＳ７１７で最も高い類似度になる時の類似度R（i）を記憶している。
【００９４】
ステップＳ７２２からステップＳ７３６は、入力となるオーディオデータにおける様々なセグメントの組み合わせの中から、類似度が特に高く重み付け加算するのに最適なセグメントの組を優先的に選択することができるので、音声欠落や音声重複が少なく、音質劣化も少ないという効果がある。
また、所望の時間軸変換比αが得られるのに必要な数の重み付け加算を行うセグメントの組みだけを選択して、かつ重み付け加算されたセグメントの前後に任意の時間長のオーディオデータを出力するので、時間軸変換比を細かくかつ精度良く変えることができという効果もある。
【００９５】
ここで、類似度が高い値を持つセグメントの組は、一般的に無音区間や母音の発生区間に偏在しているので、人間が発声速度を変える場合の速度の遷移に類似させることができるという効果がある。
そして、時間△Td毎に求めた最も高い類似度R（j）の中から、類似度の高い順にセグメントの組を選択するので、類似度が高くなるセグメント間の時間差Tl_optの決定と、重み付け加算を行うセグメントの組の選択を、全て類似度という単一の評価尺度を用いて行うので、処理の複雑さや処理量を抑えることができるという効果もある。
【００９６】
さらにステップＳ７４１で、j番目の処理単位のＸ１（j）の開始点から、Ｘ１(1)〜Ｘ１(Ts)を入力し、ステップＳ７４２で、j番目の処理単位のＸ２（j）の開始点から、Ｘ２(1)〜Ｘ２(Ts)を入力して、これらの重ね合わせを行う結果、どのような場合でも重み付け加算したオーディオデータの出力の時間長を一定の処理単位の時間長Tsにでき、音質が低下しにくいという効果もある。以上が、時間軸伸長を行う場合の処理手順である。
【００９７】
続いて、再生時間軸圧縮を行う場合の処理手順について説明する。
図１２は、時間軸圧縮（α≦１）による速度変換を行う場合の処理手順を示すフローチャートである。これら図１２〜図１５のフローチャートの各ステップは、８００番台の参照符号を付すことで、図７〜図１０のフローチャートのステップと区別することにする。
ステップＳ８０１は、時間軸変換比αを読み込む。ステップＳ８０２は、第１ポインタにスタート点の値を初期設定する。ステップＳ８０３は、処理単位カウンタiを初期値０に初期設定する。ステップＳ８００、ステップＳ８１５〜ステップＳ８２１は、ステップＳ８２０を終了条件とし、変数iを制御変数としたループを構成している。
【００９８】
ステップＳ８００は、処理単位iについて最適時間差Tl_optと、最小二乗誤差R_minとを算出する。
ステップＳ８１５は、第１ポインタの時刻を、処理単位iにおけるＸ１（i）の先頭時刻として記憶する。ステップＳ８１６は、第１ポインタに最適時間差Tl_optを加えた時刻を、処理単位iにおけるＸ２（i）の先頭時刻として記憶する。ステップＳ８１７は、処理単位iにおける類似度R（i）として、求められた最小二乗誤差R_minを記憶する。ステップＳ８１８は、処理単位iにおける選択M（i）として、未選択を示す０を記憶する。ステップＳ８１９は、第１ポインタを時間△Tdだけ進める。
【００９９】
ステップＳ８２０は、第１ポインタに、最大時間差Tl_maxと処理単位の時間長Tsを加算した時刻と、エンド点との比較であり、本ループの終了条件を規定している。エンド点が第１ポインタに最大時間差Tl_maxと処理単位の時間長Tsを加算した時刻よりも小さいと判定された場合、本ループを抜けてステップ８５０に移行する。大きいと判定された場合、ステップＳ８２１に移行する。
【０１００】
ステップＳ８５０は、数４に基づきセグメントの組みを選択するステップである。
ステップＳ８５１は、類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する。
以降、ステップＳ８００の詳細について説明する。このステップＳ８００は複数のセグメントの組みを選択するというものであり、その処理手順を図１３のフローチャートに示す。図１３は、処理単位iについて最適時間差Tl_optと、最小二乗誤差R_minとを算出する処理のフローチャートである。
【０１０１】
ステップＳ８０５は、最小二乗誤差R_minを初期値Nに初期設定する。ステップＳ８０６は、時間差Tlを初期値Tl_maxに初期設定する。ステップＳ８０７〜ステップＳ８１４は、ステップＳ８１４を終了条件とし、変数Tlを制御変数としたループを構成している。
ステップＳ８０７は、第１ポインタを開始点として、処理単位Ｘ１を構成するTs個のセグメントを入力する。具体的には、Ｘ１(1)〜Ｘ１(Ts)を入力する。ステップＳ８０８は、(第１ポインタ＋Tl)を開始点として、処理単位Ｘ２を構成するTs個のセグメントを入力する。具体的には、Ｘ２(1)〜Ｘ２(Ts)を入力する。
【０１０２】
ステップＳ８０９は、（数１）に基づいて時間差Tlの時のＸ１とＸ２の二乗誤差R（Tl）を計算する。ステップＳ８１０は、最小二乗誤差R_minと二乗誤差R（Tl）とを比較し、ステップＳ８１１、ステップＳ８１２をスキップするか、これらを実行するかを切り替えるものである。
R_minが二乗誤差R（Tl）よりも大きければステップＳ８１１、８１２を実行し、そうでなければこれらのステップをスキップする。
【０１０３】
ステップＳ８１１は、二乗誤差R（Tl）を新たな最小二乗誤差R_minとして更新する。ステップＳ８１２は、時間差Tlを最適時間差Tl_optとして更新する。ステップＳ８１３は、時間差Tlを１サンプルだけ減少させる。ステップＳ８１４は、時間差Tlと最小時間差Tl_minとを比較であり、本ループの終了条件を規定している。時間差Tlが最小時間差Tl_minよりも小さくない場合にはステップＳ８０７に戻って本ループを継続する。時間差Tlが最小時間差Tl_minよりも小さい場合には、本フローチャートの処理を終える。
図１４は、時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組の選択を行う処理手順を示すフローチャートである。本フローチャートは、以下の(数４)を満たす複数のセグメントの組みを選択するというものである。（数４）は、必要短縮時間Taに累計延長時間Tasが到達するまで、時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組の選択を行うことを意味する。
【０１０４】
ステップＳ８２２は、（数４）に基づいて、時間軸変換比αにするための必要短縮時間Taを計算する。ステップＳ８２３は、累計短縮時間Tasを初期値０に初期設定する。ステップＳ８２４〜ステップＳ８３５は、ステップＳ８３５を終了条件とし、変数Tasを制御変数としたループを構成している。ステップＳ８２３は、このループに初期条件を与えるものである。
【０１０５】
ステップＳ８２４は、類似度Rを初期値Nに初期設定し、処理単位カウンタjを初期値０に初期設定して、選択処理単位kを-１に初期設定する。ステップＳ８２７〜ステップＳ８３２は、ステップＳ８３２を終了条件とし、変数jを制御変数としたループを構成している。
ステップＳ８２７は、j番目の処理単位の選択フラグM（j）が０でないかどうかの判定であり、ステップＳ８２８、ステップＳ８２９を実行するか、これらをスキップするかを切り替える。j番目の処理単位の選択フラグM（j）が１ならば既にj番目の処理単位は選択済みとして、ステップＳ８２８、ステップＳ８２９をスキップしてステップＳ８３１に進む。j番目の処理単位の選択フラグM（j）が０ならば未選択としてステップＳ８２８に進む。
【０１０６】
ステップＳ８２８は、類似度Rと、処理単位jにおける類似度R（j）との比較であり、ステップＳ８２９を実行するかスキップするかの切り替えを行う。本フローチャートでは、類似度として最小二乗誤差を用いているので、本ステップでは、R(j)がRより小さいかどうか、つまり、R＞R(j)という数式にて、本ステップにおける比較内容を表現している。
類似度Rが類似度R（j）よりも高い（二乗誤差は大きくない）ならばステップＳ８２９をスキップしてステップＳ８３１へ進み、類似度Rが類似度R（j）よりも低い（二乗誤差は大きい）ならばステップＳ８２９を実行する。
【０１０７】
ステップＳ８２９は、処理単位jにおける類似度R（j）を用いて類似度Rを更新し、処理単位jを用いて選択処理単位kを更新する。
ステップＳ８３１は、処理単位jを１増加させるステップであり、ステップＳ８３２は、全処理単位数を示すiと処理単位カウンタjとの比較であり、第２ループの終了条件を規定する。全処理単位数を示すiが処理単位jより小さくないならばステップＳ８２７に戻り、本ループを継続する。全処理単位数を示すiが処理単位jより小さいならばステップＳ８３３に進み、本ループを抜ける。
【０１０８】
ステップＳ８３３は、選択処理単位kが負かどうかの判定であり、本フローチャートの終了条件を規定している。ｋが負であるなら、全ての処理単位で重み付け加算処理が終了しているとして本フローチャートの処理を終える。選択処理単位kが負でないならば重み付け加算が済んでいない処理単位が存在するとしてステップＳ８３４に進む。
ステップＳ８３４は、類似度が高いとして選択されたk番目の処理単位の選択M（k）に１を設定すると共に、累計短縮時間Tasにk番目の処理単位Ｘ２（k）の先頭時刻と、k番目の処理単位Ｘ１（k）の先頭時刻との時間差を加算することにより、累計短縮時間Tasを更新する。
【０１０９】
ステップＳ８３５は、必要短縮時間Taと累計短縮時間Tasとの比較であり、本フローチャート及びループの終了要件を規定する。必要短縮時間Taが累計短縮時間Tasよりも大きいならばステップＳ８２４に戻って次に類似度の高いセグメントの組の選択を行い、必要短縮時間Taが累計短縮時間Tasよりも大きくないならば類似度の高いセグメントの組の選択を終了したとして本フローチャート及び本ループを終了する。
ステップＳ８５１の処理手順の詳細について説明する。
【０１１０】
ステップＳ８５１は、セグメントの組みに対して、上述したような(数６)に基づく重ね合わせを実行する手順であり、その詳細なフローチャートを図１５に示す。
図１５は、類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する処理手順を示すフローチャートである。
ステップＳ８３７は、第１ポインタをスタート点に設定し、ステップＳ８３８は、処理単位カウンタjを初期値０に初期設定する。図１４では、類似度が高い順にセグメントの組みをソーティングしたが、かかる類似度の高さ順では、時系列にセグメントの組みを出力してゆくことができないので、図１５では、第１ポインタをスタート点に設定しなおすことで、セグメントの組みを時系列に選択しなおして、重ね合わせの対象としている。  ステップＳ８３９〜ステップＳ８４６は、ステップＳ８４６を終了条件とし、変数jを制御変数としたループを構成している。ステップＳ８３８は、このループに初期条件を与えるものである。
【０１１１】
ステップＳ８３９は、第１ポインタを開始点としてj番目の処理単位のＸ１（j）の先頭時刻の直前までオーディオデータを入力してそのまま出力する。ステップＳ８４０は、選択フラグM（j）に１が設定されているか否かの判定であり、ステップＳ８４１〜ステップＳ８４４を実行するか、これらのステップをスキップするかの切り替えを行う。
選択フラグM（j）が１に設定されているならば処理単位jの類似度が高く選択されているとしてステップＳ８４１〜ステップＳ８４４の処理を実行する。選択フラグM（j）が“1”に設定されていないならば処理単位jの類似度が高くなく選択されていないとしてステップＳ８４１〜ステップＳ８４４の処理をスキップしてステップＳ８４５に進む。
【０１１２】
ステップＳ８４１は、j番目の処理単位のＸ１（j）を開始点として、処理単位Ｘ１を構成するTs個のセグメントを入力する。具体的には、Ｘ１(1)〜Ｘ１(Ts)を入力する。
ステップＳ８４２は、j番目の処理単位のＸ２（j）を開始点として、処理単位Ｘ２を構成するTs個のセグメントを入力する。具体的には、Ｘ２(1)〜Ｘ２(Ts)を入力する。
ステップＳ８４３は、（数６）に基づいた重ね合わせを実行する。具体的には、ステップＳ８４１、８４２で入力されたＸ１(1)〜Ｘ１(Ts)に対して、Ｗ２(1)〜Ｗ２(Ts)を乗じると共に、Ｘ２(1)〜Ｘ２(Ts)に対して、Ｗ１(1)〜Ｗ１(Ts)を乗じ、これらの乗算結果を加算して、加算結果であるＹ(1)〜Ｙ(Ts)を出力する。
【０１１３】
ステップＳ８４４は、第２ポインタに示される処理単位のＸ２（j）の先頭時刻に処理単位の時間長Tsを加算し、Ｘ２（j）の末尾の時刻の直後を第１ポインタに設定する。
ステップＳ８４５は、処理単位カウンタjを１つ増加させる。
ステップＳ８４６は、全処理単位数を示すiと処理単位カウンタjとの比較であり、全処理単位数を示すiが処理単位jより小さくないならばステップＳ８３９に戻って、本ループの実行を継続する。
【０１１４】
全処理単位数を示すiが処理単位jより小さいならばステップＳ８４７において、第１のポインタを開始点としてエンド点までのオーディオデータをそのまま出力した後、本フローチャートの処理を終える。
ただしこのフローチャートでは簡単のため、単位時間とサンプリング周期とを等しいとして表現している。
【０１１５】
図１６（ａ）〜（ｃ）は、図１５のフローチャートによりオーディオデータのどの部分が出力されるかを示す図である。
図１６（ａ）は、ステップＳ８３９の１巡目の実行にて、出力される部分を示す。ステップＳ８３９の１巡目の実行時には、第１ポインタは、スタート点を指しているので、本図に示すように、そのまま出力される区間は、スタート点からＸ１(j)の直前までとなる。ここで、Ｘ１からＸ２までの間の部分は、出力されない。
【０１１６】
図１６（ｂ）は、ステップＳ８３９の２巡目以降の実行にて、出力される部分を示す。ステップＳ８３９の２巡目以降の実行時には、第１ポインタは、Ｘ２(j)の先頭点＋Tsを指しているので、本図に示すように、そのまま出力される区間は、Ｘ２(j)の直後から、Ｘ１(j+1)の直前までとなる。Ｘ１(j)と、Ｘ２(j)との間、及び、Ｘ１(j+1)と、Ｘ２(j+1)との間は、出力されない。
【０１１７】
図１６（ｃ）は、ステップＳ８４７の実行にて、出力される部分を示す。ステップＳ８４７の実行時には、第１ポインタは、Ｘ２(j)の先頭点＋Tsを指しているので、本図に示すように、そのまま出力される区間は、Ｘ２(j)及びその直後から、エンド点までとなる。
以上のように、ステップＳ８２２からステップＳ８３５で、（数４）に基づいて求めた必要短縮時間Taに累計短縮時間Tasが到達するまで、時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組の選択を行うので、所望の時間軸変換比αが得られるのに必要な数の重み付け加算を行うセグメントの組みだけが選択でき、かつ重み付け加算されたセグメントの前後に任意の時間長のオーディオデータを出力するので、時間軸変換比を細かくかつ精度良く変えることができという効果もある。
【０１１８】
ここで、類似度が高い値を持つセグメントの組は一般的に無音区間や母音の発生区間に偏在しているので、人間が発声速度を変える場合の速度の遷移に類似させることができるという効果がある。
更に、類似度が高くなるセグメント間の時間差Tl_optの決定と、重み付け加算を行うセグメントの組の選択を、全て類似度という単一の評価尺度を用いて行うので、処理の複雑さや処理量を抑えることができるという効果もある。
【０１１９】
加えて、どのような場合でも重み付け加算したオーディオデータの出力の時間長を一定の処理単位の時間長Tsにでき、音質が低下しにくいという効果もある。
（第２実施形態）
第２実施形態は、第１実施形態に述べた速度変換を、専用のハードウェアを用いて実装する場合の改良に関する。
【０１２０】
図１７は、第２実施形態に係る変換装置の内部構成を示す図であり、本図に示すように、第２実施形態に係る変換装置は、記憶回路１０１、スイッチ回路１０２、バッファメモリ回路１０３、バッファメモリ回路１０４、類似度計算回路１０５、判定回路１０６、窓関数発生回路１０７、スイッチ回路１０８、スイッチ回路１０９、乗算回路１１０、乗算回路１１１、加算回路１１２、スイッチ回路１１３、出力バッファ回路１１４、速度設定回路１１５、パラメータ記憶回路１１６、ポインタ値計算回路１１７、ポインタ制御回路１１８、制御信号発生回路１１９、パラメータ選択回路１２０から構成される。これら図１７の内部構成図における構成要素には、１００番台の参照符号を付すことで、図１の内部構成図における構成要素と区別することにする。
記憶回路１０１は、オーディオデータを記憶しており、ポインタ制御回路１１８が出力するアドレス値と時間長に基づいて、所望の開始点と時間長のオーディオデータを出力する。
【０１２１】
スイッチ回路１０２は、記憶回路１０１が出力するオーディオデータの出力先をバッファメモリ回路１０３とバッファメモリ回路１０４とスイッチ回路１１３とから選択する。
バッファメモリ回路１０３は、スイッチ回路１０２から出力されるTs個のセグメントＸ１を蓄える。
バッファメモリ回路１０４は、スイッチ回路１０２から出力されるTs個のセグメントのＸ２を格納する。
【０１２２】
類似度計算回路１０５は、２つのセグメントの時間差Tlが最小時間差Tl_minから最大時間差Tl_maxまでの範囲である場合において、バッファメモリ回路１０３に格納されているＸ１と、バッファメモリ回路１０４に格納されているＸ２との類似度を算出する。
判定回路１０６は、類似度計算回路１０５がこれまで出力した類似度のうち、最も高いものはどれであるか判定して、その最高の類似度に対応するＸ１、Ｘ２の組みを検出して、かかるＸ１の先頭時刻と、Ｘ２の先頭時刻と、類似度とをパラメータ記憶回路１１６に出力する。
【０１２３】
窓関数発生回路１０７は、漸増する窓関数と漸減する窓関数とを出力する。
スイッチ回路１０８は、閉じることで、バッファメモリ回路１０３に格納されたＸ１を乗算回路１１０に出力する。開いた場合、バッファメモリ回路１０３に格納されたＸ１は、乗算回路１１０に出力されない。
スイッチ回路１０９は、閉じることで、バッファメモリ回路１０４に格納されたＸ２を乗算回路１１１に出力する。スイッチ回路１０９が開いた場合、バッファメモリ回路１０４に格納されたＸ２は、乗算回路１１１に出力されない。
【０１２４】
乗算回路１１０は、パラメータ記憶回路１１６に記憶され、パラメータ選択回路１２０により選択されたパラメータに基づいて記憶回路１０１から出力されたセグメントＸ１に対して窓関数発生回路１０７が出力する一方の窓関数を乗じる。
乗算回路１１１は、パラメータ記憶回路１１６に記憶され、パラメータ選択回路１２０により選択されたパラメータに基づいて記憶回路１０１から出力されたセグメントＸ２に対して窓関数発生回路１０７が出力する他方の窓関数を乗じる。
【０１２５】
加算回路１１２は、乗算回路１１０により窓関数が乗じられたＸ１と、乗算回路１１１により窓関数が乗じられたＸ２とを加算する。
スイッチ回路１１３は、加算回路１１２の出力、スイッチ回路１０２の出力のうち一方を選択して、出力バッファ回路１１４に出力する。
出力バッファ回路１１４は、スイッチ回路１１３からの出力である、Ｘ１と、Ｘ２との重み付け加算の結果を一旦蓄積し、速度調整を施した上で出力する。
【０１２６】
速度設定回路１１５は、GUI等を介したユーザ操作に従って入力された時間軸変換比α（出力時間長/入力時間長）を記憶する。
パラメータ記憶回路１１６は、図４に示したセグメント選択ログを記憶する。本ログの追記単位は、図４と同じであり、Ｘ１の先頭時刻と、Ｘ２の先頭時刻との組みに、類似度Ｒ(i)と、選択フラグＭ(i)とを対応付けることで構成される。かかるログの追記を行うため、速度設定回路１１５は、判定回路１０６が最も高い値を検出した時の類似度と、ポインタ制御回路１１８が出力した2つのセグメントに対応するアドレス値を、ポインタ値計算回路１１７が求めるために用いたセグメントの先頭時刻とを、それぞれ、判定回路１０６、ポインタ値計算回路１１７から受け取り、受け取った類似度、先頭時刻から追記単位を作成して、これを選択ログに加える。
【０１２７】
ポインタ値計算回路１１７は、類似度計算回路１０５が類似度を求めるべき、２つのセグメントのアドレス値を計算してポインタ制御回路１１８に出力する。またパラメータ記憶回路１１６に記録されているパラメータに基づいて類似度の高い、Ｘ１、Ｘ２の組みのアドレス値と時間長を計算すると共に、その前後に連続するセグメントのアドレス値と時間長を計算してポインタ制御回路１１８に出力する。
【０１２８】
ポインタ制御回路１１８は、ポインタ値計算回路１１７により計算されたアドレス値に基づき、第１実施形態に述べた第１ポインタと、第２ポインタを記憶回路１０１に対して出力して、かかる第１ポインタ、第２ポインタに基づき、Ｘ１、Ｘ２が読み出されるよう、記憶回路１０１を制御する。また、ポインタ値計算回路１１７により計算された時間長に基づき、第１ポインタ、第２ポインタを更新する処理を行う。
【０１２９】
制御信号発生回路１１９は、スイッチ回路１０２、１０８、１０９、１１３に対する制御を行う。ここで、類似度計算回路１０５が類似度を計算する場合、スイッチ制御としては、スイッチ回路１０２をバッファメモリ回路１０３側もしくはバッファメモリ回路１０４側に倒し、スイッチ回路１０８とスイッチ回路１０９とを開くというものになる。
加算回路１１２による加算結果を出力する場合、スイッチ制御としては、スイッチ回路１０２をバッファメモリ回路１０３側もしくはバッファメモリ回路１０４側に倒し、スイッチ回路１０８とスイッチ回路１０９は閉じ、スイッチ回路１１３を加算回路１１２側に倒すというものになる。記憶回路１０１に記憶されているセグメントを、そのまま出力バッファ回路１１４に出力する場合、スイッチ制御は、スイッチ回路１０２をスイッチ回路１１３側に倒し、スイッチ回路１１３をスイッチ回路１０２側に倒すというものになる。
【０１３０】
パラメータ選択回路１２０は、類似度の高い順番に、速度設定回路に設定されている時間軸変換比αが得られる組数だけ、セグメントの組を選択する。ここで選択の対象となるのは、時間範囲Tr内に存在する複数のセグメントであって、パラメータ記憶回路１１６に先頭時刻が記憶されているもののどれかである。
以上が、本実施形態に係る変換装置のハードウェア構成を示す図である。
【０１３１】
続いて、類似度計算回路１０５のハードウェア構成の詳細について、図１８、図１９を参照しながら説明する。ここで類似度としては、二乗誤差、相関関数といった2種類のものがあり、これらのどちらを類似度として採用するかによって、類似度計算回路１０５のハードウェア構成は変わってくる。先ず最初に、二乗誤差を採用した場合の内部構成について説明する。
【０１３２】
図１８は、類似度の評価関数として二乗誤差を採用した場合の類似度計算回路１０５の内部構成を示す図であり、シフトレジスタメモリ回路２０１、シフトレジスタメモリ回路２０２、減算回路２０３_１〜２０３_Ts、乗算回路２０４_１〜２０４_Ts、加算回路２０５からなる。
シフトレジスタメモリ回路２０１には、バッファメモリ回路１０３に蓄えられている処理単位Ｘ１が逐次入力される。シフトレジスタメモリ回路２０１に入力される処理単位Ｘ１は、Ts個のセグメントである、X1(1),X1(2),X1(3)・・・・X1(Tsー1),X1(Ts)から構成される。
【０１３３】
シフトレジスタメモリ回路２０２には、バッファメモリ回路１０４に蓄えられている処理単位Ｘ２が逐次入力される。シフトレジスタメモリ回路２０２に入力されるＸ２は、Ts個のセグメントである、X2(1),X2(2),X2(3)・・・・X2(Tsー1),X2(Ts)から構成される。
減算回路２０３_１〜２０３_Tsは、シフトレジスタメモリ回路２０１に蓄えられているX1(1),X1(2),X1(3)・・・・X1(Tsー1),X1(Ts)から、シフトレジスタメモリ回路２０２に蓄えられているX2(1),X2(2),X2(3)・・・・X2(Tsー1),X2(Ts)を減じる演算を、Ts個同時に実行する。
【０１３４】
乗算回路２０４_１〜２０４_Tsは、減算回路２０３_１〜２０３_Tsの出力を二乗する。
加算回路２０５は、乗算回路２０４_１〜２０４_Tsの出力の総和を求め、結果を二乗誤差として出力する。類似度計算回路１０５が行う二乗誤差の演算は、第１実施形態で述べた（数１）に従う。以上が、類似度として二乗誤差を採用した場合の、類似度計算回路１０５の内部構成についての説明である。
【０１３５】
続いて、相関関数を採用した場合の内部構成について説明する。図１９は、類似度の評価関数として、相関関数を採用した場合場合の類似度計算回路１０５の内部構成を示す図であり、シフトレジスタメモリ回路３０１、シフトレジスタメモリ回路３０２、乗算回路３０３_１〜３０３_Ts、加算回路３０４である。
シフトレジスタメモリ回路３０１には、バッファメモリ回路１０３に蓄えられているセグメントＸ１が逐次入力される。シフトレジスタメモリ回路３０１に入力される処理単位Ｘ１は、Ts個のセグメントである、X1(1),X1(2),X1(3)・・・・X1(Tsー1),X1(Ts)から構成される。
【０１３６】
シフトレジスタメモリ回路３０２には、バッファメモリ回路１０４に蓄えられているセグメントが逐次入力される。シフトレジスタメモリ回路３０２に入力される処理単位Ｘ２は、Ts個のセグメントである、X2(1),X2(2),X2(3)・・・・X2(Tsー1),X2(Ts)から構成される。
乗算回路３０３_１〜３０３_Tsは、シフトレジスタメモリ回路３０１に蓄えられているX1(1),X1(2),X1(3)・・・・X1(Tsー1),X1(Ts)と、シフトレジスタメモリ回路３０２に蓄えられているX2(1),X2(2),X2(3)・・・・X2(Tsー1),X2(Ts)との乗算を、Ts個同時に実行する。
【０１３７】
加算回路３０４は、乗算回路３０３_１〜３０３_Tsの出力の総和を求め、結果を相関関数として出力する。類似度計算回路１０５が行う相関関数の演算は、第１実施形態で述べた（数２）に従う。以上が、類似度として相関関数を採用した場合の、類似度計算回路１０５の内部構成についての説明である。
続いて、判定回路１０６のハードウェア構成の詳細について、図２０を参照しながら説明する。
【０１３８】
図２０は、判定回路１０６の内部構成を示す図であり、類似度メモリ回路４０１、比較回路４０２、最大/最小メモリ回路４０３から構成される。
類似度メモリ回路４０１には、類似度計算回路１０５により計算された類似度が記憶される。
最大/最小メモリ回路４０３には、類似度の最大値もしくは最小値が記憶されている。最大/最小メモリ回路４０３が最小値を記憶するのは、評価関数が二乗誤差の場合である場合であり、比較回路４０２が最大値を記憶するのは評価関数が相関関数の場合である。
【０１３９】
比較回路４０２は、類似度メモリ回路４０１が出力する現在の類似度と、最大/最小メモリ回路４０３に記憶されている過去における類似度の最大値もしくは最小値とを比較する。この比較の結果、類似度メモリ回路４０１に記憶されている類似度が、最大値より大きいこと、又は、最小値より小さいことを条件にして、類似度メモリ回路４０１に記憶されている類似度を、最大/最小メモリ回路４０３に書き込むことにより、最大/最小メモリ回路４０３における最大値又は最小値の更新を行う。かかる更新にあたって、パラメータ記憶回路１１６に対し、現在のＸ１の先頭時刻と、Ｘ２の先頭時刻とを、類似度の高いセグメントの組の候補として記憶するように指示を出す。以上が判定回路１０６の内部構成である。これで、速度変換を実行するためのハードウェア構成の説明を終える。
【０１４０】
以上のようにして構成された変換装置の動作について、以下説明する。
(類似度算出)
２つのセグメントＸ１、Ｘ２間の時間差をTl_minからTl_maxまでの範囲で変化させながら、類似度計算回路１０５がバッファメモリ回路１０３に格納されたＸ１とバッファメモリ回路１０４に格納されたＸ２との類似度を算出する。次に、判定回路１０６は類似度計算回路１０５が出力する類似度の内から類似度の最も高い値を示すセグメントの組を検出する。
【０１４１】
そして、2つのセグメントに対応するアドレス値をポインタ値計算回路１１７が求めるために用いた2つのセグメントの開始時刻と、セグメントの類似度とを、1つの追記単位として、パラメータ記憶回路１１６における選択ログに追記する。
(セグメントの選択)
これらの処理を、所定の時間範囲Tr内の複数の異なる時刻において行う。そしてパラメータ選択回路１２０が、パラメータ記憶回路１１６に記憶されている所定の時間範囲Tr内の複数の異なる時刻で求めた類似度の中から類似度の高い順番に、速度設定回路１１５に設定されている所望の時間軸変換比αが得られる組数だけセグメントの組を選択する。ここでパラメータ記憶回路１１６の追記単位において、選択されたセグメントに対応する追記単位における選択フラグをオンに設定し、選択されなかったセグメントに対応する追記単位における選択フラグはオフに設定する。
【０１４２】
(重ね合わせ)
そしてパラメータ記憶回路１１６の選択ログにおいて、オンと設定された追記単位に対応するセグメントの組は、乗算回路１１０、乗算回路１１１、加算回路１１２により重み付け加算されて出力され、それ以外の区間におけるセグメントは、そのまま出力される。
第１実施形態で述べた図５に対して、本実施形態に係る変換装置が、時間軸伸張（時間軸変換比α=４/３）の場合の処理を以下に説明する。
(i番目の処理単位)
記憶回路１０１に記録されているオーディオデータのうち、i番目の処理単位に対する処理を行う。ここでは、i番目の処理単位においてポインタ制御回路１１８が出力するポインタ５０２_iとポインタ５０３_iとを基準として、Ｘ１(1)〜Ｘ１(Ts）とＸ２(1)〜Ｘ２(Ts）とがバッファメモリ回路１０３とバッファメモリ回路１０４に、読み出される。
【０１４３】
Ｘ２に対する時間差を、Tl_minからTl_maxまでの範囲で変化させつつ、Ｘ１を取り込んでゆき、Ｘ１と、Ｘ２との類似度を類似度計算回路１０５に算出させる。
そして判定回路１０６により類似度の高い値の探索が行われ、その時のＸ１とＸ２の時間差がTl_optとして算出される。類似度の評価関数が二乗誤差の場合には、判定回路１０６により類似度計算回路１０５が出力する二乗誤差の最小値が検出され、類似度の評価関数が相関関数の場合には、判定回路１０６により類似度計算回路１０５が出力する相関関数の最大値が検出される。
【０１４４】
パラメータ記憶回路１１６は、判定回路１０６が最高の類似度を検出した時の類似度の値と、Ｘ１の先頭時刻と、Ｘ２の先頭時刻とを記憶する。
(i+１番目の処理単位)
次にi+１番目の処理単位においてポインタ制御回路１１８が出力するポインタ５０２_i+１と、ポインタ５０３_i+１とを基準として、Ｘ２’に対する時間差を、Tl_minからTl_maxまで変化させつつ、Ｘ１’を取り込む。そして、Ｘ１’と、Ｘ２’との類似度が類似度計算回路１０５に算出される。
【０１４５】
判定回路１０６による類似度の高い値の探索が行われ、その時のＸ１’とＸ２’の時間差がTl_opt’となる。判定回路１０６が最高の類似度を検出した時の類似度の値とＸ１’の先頭時刻とＸ２’の先頭時刻は、パラメータ記憶回路１１６により記憶される。
(i+２番目の処理単位)
i+２番目の処理単位においてポインタ制御回路１１８が出力するポインタ５０２_i+２とポインタ５０３_i+２とを基準として同様の処理がなされる。
【０１４６】
判定回路１０６により最高の類似度が検出されれば、その時の類似度の値とＸ１''の先頭時刻とＸ２''の先頭時刻とが、パラメータ記憶回路１１６に記憶される。図５の例ではこれで探索は終わる。
(類似度に基づくソーティング)
次にパラメータ選択回路１２０が、パラメータ記憶回路１１６に記憶されているi番目からi+２番目の処理単位における類似度の高い値を比較し、類似度の高い方からセグメントの組を選択していく。そして出力信号の時間長が、入力信号の時間長に対して速度設定回路１１５に設定された時間軸変換比α（出力時間長/入力時間長）になるまで、パラメータ選択回路１２０が（数３）に基づいて、類似度の高いセグメントの組の選択を繰り返す。
【０１４７】
図５の例では、セグメントの組Ｘ１とＸ２およびＸ１’とＸ２’の類似度が高く、これら２つのセグメントの組の選択により（数3）の条件が満足されるとパラメータ選択回路１２０により判断され、パラメータ記憶回路１１６における選択フラグがオンに設定される。
(重ね合わせ)
パラメータ記憶回路１１６に記憶されているセグメントの先頭時刻に基づいて、ポインタ値計算回路１１７によりアドレス値が算出される。ポインタ制御回路１１８が出力した2つのセグメントに対応するアドレス値により、時間長TsのＸ２（５１１）とＸ１（５１０）が記憶回路１０１から読み出され、バッファメモリ回路１０４とバッファメモリ回路１０３とに出力される。
【０１４８】
窓関数発生回路１０７は、漸増する窓関数５１２と漸減する窓関数５１３とを出力し、乗算回路１１０はバッファメモリ回路１０３に蓄えられているＸ１（５１０）に対して窓関数発生回路１０７が出力する漸増する窓関数５１２を乗じて出力し、乗算回路１１１はバッファメモリ回路１０４に蓄えられているＸ２（５１１）に対して窓関数発生回路１０７が出力する漸減する窓関数５１３を乗じて出力する。
【０１４９】
加算回路１１２は乗算回路１１０の出力と乗算回路１１１の出力とを加算した加算結果５１４を出力バッファ回路１１４に出力する。そしてポインタ制御回路１１８がＸ１に後続するサンプルを開始点とし、Ｘ２‘の開始点直前のサンプルを終了点とするＸ０（５１６）を記憶回路１０１から読み出し、出力バッファ回路１１４に出力する。
次にパラメータ記憶回路１１６に記憶されているセグメントの組Ｘ１’とＸ２’のセグメントの先頭時刻に基づいて、ポインタ値計算回路１１７によりアドレス値が求められ、ポインタ制御回路１１８が出力した2つのセグメントのアドレス値により、時間長TsのＸ２’とＸ１’とが記憶回路１０１から読み出されて、バッファメモリ回路１０４とバッファメモリ回路１０３とに出力される。
【０１５０】
窓関数発生回路１０７は、漸増する窓関数５１２と漸減する窓関数５１３とを出力し、乗算回路１１０はバッファメモリ回路１０３に蓄えられているＸ１’に対して窓関数発生回路１０７が出力する漸増する窓関数５１２を乗じて出力する。乗算回路１１１はバッファメモリ回路１０４に蓄えられているＸ２’に対して窓関数発生回路１０７が出力する漸減する窓関数５１３を乗じて出力し、加算回路１１２は乗算回路１１０の出力と乗算回路１１１の出力とを加算した信号５１７を出力バッファ回路１１４に出力する。そしてポインタ制御回路１１８がＸ１’に後続するサンプルを開始点とし、Ｘ２''（５１９）の開始点直前のサンプルを終了点とするＸ３（５１８）と、Ｘ２''（５１９）と、Ｘ２''（５１９）に後続するサンプルを開始点とするオーディオデータX４（５２０）を記憶回路１０１から読み出し、出力バッファ回路１１４に出力する。
【０１５１】
上記処理を入力信号が終了するまで繰り返しても良いし、全入力信号に対して上記処理を1回で施してしまっても良い。
また、第１実施形態に示した図６の具体例に対して、本実施形態に係る変換装置が、時間軸圧縮（時間軸変換比α=２/３）を行う場合の動作例について説明する。
(i番目の処理単位)
記憶回路１０１に記録されているオーディオデータに対して、i番目の処理単位を処理する場合をここでは想定している。この場合、ポインタ制御回路１１８が出力するポインタ６０２_iとポインタ６０３_iを基準として、バッファメモリ回路１０３とバッファメモリ回路１０４とに、Ｘ１（１〜Ts）とＸ２（１〜Ts）とが読み出される。Ｘ２は、６０４で示されるＸ１に対して、Tl_minだけ遅延する６０７_minからTl_maxだけ遅延する６０７_maxまで範囲に存在し得る。
【０１５２】
Tl_minからTl_maxまで、１サンプルずつ時間差を変化させながら、Ｘ2を取り込んでゆく。そしてＸ1との類似度を類似度計算回路１０５に求めさせる。こうして、Ｘ１と、Ｘ２との類似度が算出されれば、判定回路１０６により類似度の高い値の探索が行われる。その結果、得られたＸ１とＸ２の時間差をTl_optとする。類似度の評価関数が二乗誤差の場合には、判定回路１０６は類似度計算回路１０５が出力する二乗誤差の最小値を検出し、類似度の評価関数が相関関数の場合には、判定回路１０６は類似度計算回路１０５が出力する相関関数の最大値を検出する。こうして、最高の類似度が算出されれば、パラメータ記憶回路１１６は、判定回路１０６が最高の類似度を検出した時の類似度の値とＸ１の先頭時刻とＸ２の先頭時刻を記憶する。
(i+１番目の処理単位)
次にi+１番目の処理単位においてポインタ制御回路１１８が出力するポインタ６０２_i+１とポインタ６０３_i+１を基準として、Ｘ２‘をＸ１’に対して遅延する時間差を、Tl_minからTl_maxまで、１サンプルずつ変えながら取り込み、Ｘ１’との類似度を類似度計算回路１０５が求め、判定回路１０６が類似度の高い値の探索を行い、その時のＸ１’とＸ２‘の時間差はTl_opt’となり、パラメータ記憶回路１１６は、判定回路１０６が最高の類似度を検出した時の類似度の値とＸ１’の先頭時刻とＸ２’の先頭時刻を記憶する。      
【０１５３】
(i+２番目の処理単位)
さらにi+２番目の処理単位においてポインタ制御回路１１８が出力するポインタ６０２_i+２とポインタ６０３_i+２を基準として同様の処理を行い、パラメータ記憶回路１１６は、判定回路１０６が最高の類似度を検出した時の類似度の値とＸ１''の先頭時刻とＸ２''の先頭時刻を記憶する。図６の例ではこれで探索は終わり、次にパラメータ選択回路１２０が、パラメータ記憶回路１１６に記憶されているi番目からi+２番目の処理単位における類似度の高い値を比較し、類似度の高い方からセグメントの組を選択していく。そして出力信号の時間長が、入力信号の時間長に対して速度設定回路１１５に設定された時間軸変換比α（出力時間長/入力時間長）になるまで、パラメータ選択回路１２０が（数４）に基づいて、類似度の高いセグメントの組の選択を繰り返す。
(類似度の判断)
図６の例では、セグメントの組Ｘ１とＸ２およびＸ１’とＸ２’の類似度が高く、これら２つのセグメントの組の選択により（数４）の条件が満足されるとパラメータ選択回路１２０が判断し、パラメータ記憶回路１１６に選択のフラグを立てる。そしてパラメータ記憶回路１１６に記憶されているセグメントの先頭時刻に基づいて、ポインタ値計算回路１１７がアドレス値を求め、ポインタ制御回路１１８が出力した2つのセグメントに対応するアドレス値により、時間長TsのＸ１（６１０）とＸ２（６１１）を記憶回路１０１から読み出し、バッファメモリ回路１０３とバッファメモリ回路１０４とに出力する。
(Ｘ１,Ｘ２に対する重ねあわせ)
窓関数発生回路１０７は、漸減する窓関数６１２と漸増する窓関数６１３とを出力し、乗算回路１１０はバッファメモリ回路１０３に蓄えられているＸ１（６１０）に対して窓関数発生回路１０７が出力する漸減する窓関数６１２を乗じて出力する。乗算回路１１１はバッファメモリ回路１０４に蓄えられているＸ２（６１１）に対して窓関数発生回路１０７が出力する漸増する窓関数６１３を乗じて出力し、加算回路１１２は乗算回路１１０の出力と乗算回路１１１の出力とを加算した信号６１４を出力バッファ回路１１４に出力する。そしてポインタ制御回路１１８がＸ２に後続するサンプルを開始点とし、Ｘ１’の開始点直前のサンプルを終了点とするＸ０（６１６）を記憶回路１０１から読み出し、出力バッファ回路１１４に出力する。
【０１５４】
次にパラメータ記憶回路１１６に記憶されているセグメントの組Ｘ１’とＸ２’のセグメントの先頭時刻に基づいて、ポインタ値計算回路１１７がアドレス値を求め、ポインタ制御回路１１８が出力した2つのセグメントのアドレス値により、時間長TsのＸ１’とＸ２‘を記憶回路１０１から読み出し、バッファメモリ回路１０３とバッファメモリ回路１０４とに出力する。
(Ｘ１’,Ｘ２’に対する重ねあわせ)
窓関数発生回路１０７は、漸減する窓関数６１２と漸増する窓関数６１３とを出力し、乗算回路１１０はバッファメモリ回路１０３に蓄えられているＸ１’に対して窓関数発生回路１０７が出力する漸減する窓関数６１２を乗じて出力する。乗算回路１１１はバッファメモリ回路１０４に蓄えられているＸ２’に対して窓関数発生回路１０７が出力する漸増する窓関数６１３を乗じて出力し、加算回路１１２は乗算回路１１０の出力と乗算回路１１１の出力とを加算した信号６１７を出力バッファ回路１１４に出力する。そしてポインタ制御回路１１８がＸ２’に後続するサンプルを開始点とするオーディオデータX４（６１８）を記憶回路１０１から読み出し、出力バッファ回路１１４に出力する。
【０１５５】
上記処理を入力信号が終了するまで繰り返しても良いし、全入力信号に対して上記処理を1回で施してしまっても良い。
以上のように本実施形態によれば、パラメータ記憶回路１１６が判定回路１０６の検出した最も類似度の高い時の類似度の値とＸ１の先頭時刻とＸ２の先頭時刻を記憶し、パラメータ選択回路１２０が、パラメータ記憶回路１１６に記憶されている複数の異なる時刻の処理単位における類似度の値を比較して、類似度の高い方から順番にセグメントの組を選択する結果、入力信号のある範囲内における様々なセグメントの組み合わせの中から、類似度が高く重み付け加算するのに最適なセグメントの組を優先的に選択することができるので、音声欠落や音声重複が少なく、音質劣化も少ないという効果がある。
【０１５６】
また、パラメータ選択回路１２０が、パラメータ記憶回路１１６の記憶されている複数の異なる時刻に求めた高い類似度のセグメントの組の中から、さらに類似度の高い値を持つセグメントの組を、（数３）もしくは（数４）に基づいて所望の時間軸変換比αが得られる組数だけ選択するので、所望の時間軸変換比αに細かくかつ精度良く変えることができという効果もある。
【０１５７】
ここで、類似度が高い値を持つセグメントの組は一般的に無音区間や母音の発生区間に偏在しているので、人間が発声速度を変える場合の速度の遷移に類似させることができるという効果がある。
そして類似度計算回路１０５は、類似度が高くなるセグメント間の時間差の決定と重み付け加算を行うセグメントの組の選択を、類似度という単一の評価尺度を用いて行うので、処理の複雑さや処理量を抑えることができるという効果もある。
【０１５８】
さらにパラメータ記憶回路１１６に記憶されているパラメータに基づいて、ポインタ値計算回路１１７がアドレスを計算し、記憶回路１０１からバッファメモリ回路１０３とバッファメモリ回路１０４に類似度が高いセグメントの組（Ｘ１，Ｘ２）を読み出すので、どのような場合でも加算回路１１２の出力の時間長を一定の処理単位の時間長Tsにでき、音質が低下しにくいという効果もある。
【０１５９】
以上のように本実施形態によれば、速度変換をハードウェアで実現するので、かかるハードウェア構成の一部又は全部のパイプライン化を実現することで、速度変換の高速化を図ることができる。
（第３実施形態）
本実施形態は、第１実施形態又は第２実施形態に示した音声再生のための変換装置を、映像及び音声の再生を行う再生装置に組込む場合の改良に関する。
【０１６０】
図２１は、第３実施形態に係る変換装置が組込まれる再生装置の内部構成を示す図であり、本図に示すように、本実施形態に係る再生装置は、記憶回路１、映像音声分離回路２、映像復号回路３、音声復号回路４、音声速度変換装置５、映像速度変換装置８、制御回路９、速度設定回路１１５から構成される。
映像速度変換装置８は速度設定回路１１５から出力された時間軸変換比αに基づいて、映像復号回路３から出力された映像信号に対して速度変換処理を施す。映像速度変換は、時間軸変換比α>１の時間軸伸張の場合には映像フレームを繰り返して（フリーズして）出力し、時間軸変換比α
音声速度変換装置５は、第２実施形態に示したものであり、速度設定回路１１５から出力された時間軸変換比αに基づいて、音声復号回路４から出力されたオーディオデータに対して速度変換処理を施す。音声速度変換装置５での速度変換処理は、類似度の高いセグメントの組が優先的に選択されて重み付け加算されるため、主に無音区間や有音区間が伸張/圧縮される結果、非線形に速度が変わる。
【０１６１】
制御回路９は、記憶回路１に対して所望のデータを出力させるためのアドレスを出力し、映像音声分離回路２に対してビデオデータを分離抽出するための映像識別番号とオーディオデータを分離抽出するための音声識別番号を出力し、映像復号回路３に対して通常再生や特殊再生などの映像復号制御信号を出力する。映像速度変換装置８に対しては、速度変換処理の開始/停止などの映像速度変換制御信号を出力し、音声復号回路４に対して通常再生や特殊再生などの音声復号制御信号を出力し、音声速度変換装置５に対して速度変換処理の開始/停止などの音声速度変換制御信号を出力する。
【０１６２】
速度設定回路１１５は映像速度変換装置８と音声速度変換装置５と制御回路９に所望の時間軸変換比αの情報を出力する。
以上のように本実施形態によれば、映像速度変換装置８が時間軸に対してほぼ均一に、つまり、線形に時間軸変換比αで映像信号に速度変換処理を行い、音声速度変換装置５が時間軸に対して不均一に、つまり、非線形に、時間軸変換比αでオーディオデータに速度変換処理を行う結果、映像信号には簡単な処理でガクガクしない滑らかな速度変換処理を施すことができ、オーディオデータには、人間が発声速度を変える場合の速度遷移に類似した自然な速度変換を施すことができる。
【０１６３】
さらに映像と音声の同期は途中でずれることはあるものの、音声速度変換装置５は非線形であるが正確に時間軸変換比αで速度変換を行うので、少なくとも最後には映像と音声の同期を一致させることができるという効果がある。
また、音声速度変換装置５は第１実施形態で示したように、所定の時間範囲Tr毎に区切って処理を行うので、少なくとも時間Tr毎には映像と音声の同期を一致させることができるという効果がある。
(第４実施形態)
本実施形態は、第１実施形態及び第２実施形態に示した再生装置が、速度変換を実行するにあたっての時間範囲Trの設定や、変換比率αの設定を、ユーザからのGUI操作に基づき実行するための改良に関する。本実施形態に係る再生装置は、図２２に示すようなセットアップメニューを表示し、これを通じて、速度変換のための指定を受け付ける。
【０１６４】
図２２は、速度変換のためのセットアップメニューの一例を示す図である。
本メニューは、スライドバーwd1、ウィンドゥwd2、スタート点／エンド点ボタンwd3,wd4、時間範囲Trナビwd5,wd6、数値欄nm1、再生ボタンnm2、キャンセルボタンnm3といったGUI部品からなる。
スライドバーwd1は、スタート点／エンド点の位置決め操作を、ユーザから受け付けるGUI部品である。リモコンの左右キーを押下することで、スライドバーをガイド上に左右に移動させ、そのガイドにおけるスライドバーの位置を、映像信号上の位置に変換することによりこの位置決め操作はなされる。速度変換の対象が2時間の映像信号であり、スライドバーがガイドの真ん中あたりに存在しているのなら、映像信号先頭から1時間経過後の位置が指示されることになる。
【０１６５】
ウィンドゥwd2は、映像信号のうち、スライドバーにて指示されている位置の映像が表示される。スライドバーに対する位置決め操作と、ウィンドゥwd2によるフィードバックとにより、スタート点／エンド点になるべき位置の微調整が可能になる。
スタート点／エンド点ボタンwd3,wd4は、ガイドにおけるスライドバーの位置を、スタート点／エンド点として確定するGUI部品である。スタート点／エンド点ボタンに対する押下で時間範囲Trのスタート点と、時間範囲Trのエンド点とが確定されれば時間範囲Trが生成されたことになる。
【０１６６】
時間範囲Trナビwd5,wd6は、スライドバーによる位置決めと、スタート点／エンド点ボタンに対する確定操作とで生成された時間範囲Trを視覚的に表現するものであり、時間範囲Trのスタート点に位置する映像のサムネール、及び、エンド点に位置する映像のサムネールにより時間範囲Trを表す。
数値欄nm1は、時間軸の比率αの数値入力を受け付ける。この操作は、数値欄に1〜200の数値を入力することによりなされる。
【０１６７】
再生ボタンnm2は、上述したように設定された時間範囲Trと、数値αとに基づき速度変換を行い、その変換結果たる音声を、映像と共に再生する旨の指示を受け付けるボタンである。
キャンセルボタンnm3は、本メニューに対する設定を中止する操作を受け付けるボタンである
かかるメニューは、OSD(On Screen Display)グラフィクスやBML(Broadcast Markup Languege)を用いて記述される。再生装置は、かかるメニューを再生映像に合成して、かかるメニューに対する操作に従い、時間範囲Trや比率αを設定した上で、変換装置に速度変換を行わせる。
【０１６８】
以上のように本実施形態によれば、速度変換の対象となる時間範囲Trを、再生時間軸上の何処に定めるか、そしてその際の比率αを、どのような値にすべきかという調整が、対話的になされるので、速度変換の変換結果として得られる音声を、より聴きやすいものにすることができる。
(第５実施形態)
第１実施形態、第２実施形態では、各セグメントの組みに対して類似度を算出して、この類似度に基づき、セグメントの組みの順位付けを行なったが、本実施形態は、このセグメントの組みの順位付けを省く改良を提案する。この順位付けの代わりに、本実施形態では、類似度の閾値を導入する。具体的にいうと、図７、図８のフローチャート、図１２、図１３のフローチャートにおいて、Ｘ１、Ｘ２のどちらかが基準に設定されて、時間間隔ΔＴｄだけ移動した際、これを基準にして、Tl_maxからTl_minの範囲において、他方のセグメントを移動させる。そして、セグメントの移動点のそれぞれにおいて、このＸ１、Ｘ２の組みに対する類似度を算出する。そうして類似度が算出されれば、算出された類似度がこの閾値よりも低いかどうかを判定する。そして低いと判定された場合、かかるＸ１、Ｘ２のセグメントの組みを重ね合わせの対象にし、その後、基準セグメントを移動させる。つまり、Tl_maxからTl_minの範囲の中で補助セグメントを移動させた場合に、最も類似度が高くなるＸ２を、選択するのではなく、補助セグメントの移動にあたって、その類似度が初めて閾値を上回るものが発見され次第、類似度の最小値の探索を打ち切り、選択の対象とするのである。
【０１６９】
以上は、類似度に最小２乗誤差を採用した場合の処理であるが、類似度に相関関数を採用した場合は、類似度が閾値より高いかどうかが判定の対象になる。
かかる重ね合わせにあたって、セグメントの時間差の累計をとる。かかる累計が数３、数４に示される条件を満たす限り、同様の処理を繰り返す。そして、この累計が、数３、数４の左辺に示す目標値時間長を超えた時点で、重ね合わせを終了する。つまり、第１実施形態では、数３、数４を満たすセグメントの組みを選択することで、類似度が高い順にセグメントの組みを順位付けした上、そうして選択したセグメントの組みを、再生時間軸に従い、出力していったが、本実施形態では、そうした順位付けを省き、数３、数４を満たす限り、重ね合わせを実行していることがわかる。このような速度変換を行うことで、速度変換のリアルタイム実行が現実的になり、速度変換を、一般の家電機器に組込むことが、現実的になる。
＜備考＞
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
(時間範囲Tr)
ユーザにより指定された時間範囲Trは、プレイリストを構成する再生区間として、指定されたものであってもよい。変換装置による速度変換は、このプレイリスト作成の際実行され、トリック再生用のオーディオデータを作成してもよい。
(リアルタイム記録への発展)
オーディオデータ全体に対して、類似度が上位となる組みを選ぶという処理を前提にしたため、オーディオデータが記憶回路内に存在することを必要としたが、セグメント対象の範囲を、オーディオデータの一部に狭めるならば、オーディオデータの記録途中でも、又は、オーディオデータの再生の途中でも、本発明による速度変換を実行することが可能になる。
(オリジナルのオーディオデータとの対応付け)
速度変換の結果であるトリック再生用のオーディオデータは、オリジナルオーディオデータと多重化した上で、記録媒体に記録するのが望ましい。また、プレイリスト情報のメインパス情報にオリジナルオーディオデータを指定させ、サブパス情報にトリック再生用のオーディオデータを指定させることで、これらが、1つの再生パスを構成するようにしてもよい。
(オーサリング技術への発展)
本発明にかかる速度変換を、オーサリングシステムにおいて実行してもよい。そして、そうして速度変換により得られたオーディオストリームを、映画作品の副音声として、DVDやBD-ROMに記録して、ユーザに頒布してもよい。こうすることで、再生装置は、DVDやBD-ROMに記録された映画作品をトリック再生する際、速度変換により得られたオーディオストリームを副音声として選択することで、本発明の速度変換により得られたオーディオストリームを再生させることができる。これによりユーザは、映画作品のトリック再生時において、聴きやすいきれいな音声で、映画作品の内容を短区間に理解することができる。
(音声要約の発展)
要約音声を作成するという技術に、本発明にかかる速度変換を応用してもよい。具体的にいうと、αが５％、１０％等短い値に設定されたオーディオデータを、要約音声として、第３実施形態に示したメニューを用いて予め作成しておく。そして複数の動画像のサムネールが一覧表示されているようなプログラムナビのGUIにおいて、ある動画像のサムネールがセレクテッド状態になった際、かかる要約音声を再生するのである。こうするとユーザは、今セレクテッド状態になっている動画像が、どのような内容のものであるかを、短時間に知ることができ、その動画像を再生するかどうかの判断を好適に行うことができる。
(類似度を求める評価尺度)
第１実施形態に示した図８のフローチャートにおけるステップＳ７０９、図１３のフローチャートにおけるステップＳ８０９は、類似度を求める評価尺度として、（数１）に示した正規化していない二乗誤差の小ささや、（数2）に示した正規化していない相関関数の大きさを用いたが、正規化した二乗誤差の小ささや、正規化した相関関数の大きさを用いることもできる。この場合には、演算量が増加するが、オーディオデータの振幅の大きさに依存しない評価尺度となるので、オーディオデータの振幅に影響されずに類似度を求めることができ、音質改善が期待できる。
【０１７０】
(オーディオデータの出力Y（n）の時間長)
第１実施形態に示した図１０のフローチャートにおけるステップＳ７４３、図１５のフローチャートにおけるステップＳ８４３では、（数５）に基づいてＸ１（n）とＸ２（n）とを重み付け加算した固定時間長Tsの信号Y（n）を出力しているが、重み付け加算したオーディオデータの出力Y（n）の時間長を可変にしても良い。この場合には、例えば類似度の高い、2つのセグメント間の時間差Tl_optが処理単位の時間長Tsよりも短い場合に、重み付け加算長をTl_optにすることで、不必要な重み付け加算を減らすことができ、演算量の削減と音質の改善、または時間軸圧縮の場合の時間軸変換比αをより小さい値に設定できることが期待できる。
(選択対象)
第１実施形態に示した図７のフローチャートにおけるステップＳ７０３からステップＳ７２１では、図１２のフローチャートにおけるステップＳ８０３からステップＳ８２１では、スタート点からエンド点まで時間△Td毎に最も高い類似度R（j）（ここでj：０〜i）を１度に求め、図９におけるステップＳ７２２から７３６では、図１４におけるステップＳ８２２から８３６では、それを1度に比較して類似度の高い方から順に選択しているが、例えば所定の時間範囲Tr毎に区切って行っても良い。この場合には、図７におけるステップＳ７１５からステップＳ７１８、図１２におけるステップＳ８１５からステップＳ８１８において必要な記憶容量を小さくできるだけでなく、複数文章を含む長さ毎に区切って実行することにより、スタート点からエンド点までの途中で所望の時間軸変換比αからのずれが大きくなることが防がれるばかりでなく、文間の無音区間を含めて効率的に時間軸伸張できる。
(周期の時間)
第１実施形態に示した図７のフローチャートにおけるステップＳ７１９、図１２のフローチャートにおけるステップＳ８１９では、高い類似度R（Tl_opt）を求める周期の時間△Tdは一定であるが、可変でも良い。この場合には、例えば類似度が高くなるセグメント間の時間差Tl_optが短い時には、時間△Tdも短くすることにより、重み付け加算したオーディオデータの出力の周期を短くすることができ、結果として時間軸変換比αの範囲を広げることができる。
【０１７１】
(選択対象)
第１実施形態に示した図９のフローチャートにおけるステップＳ７３６、図１４のフローチャートにおけるステップＳ８３６では、所定に時間軸変換比αになるまで類似度の高いセグメントの組を選択しているが、一定の閾値よりも類似度が高いセグメントの組を選択しても良い。この場合には、入力信号の性質に応じて一定の品質で音声速度変換処理が可能になる。
(オーディオデータの読み込み単位)
第１実施形態に示した図８のフローチャートにおけるステップＳ７０７、Ｓ７０８、図１３のフローチャートにおけるステップＳ８０７、Ｓ８０８では、オーディオデータを処理単位の時間長Ts単位で読み込んでいるが、もっと大きい処理単位毎に読み込んでも良い。例えば、図７におけるステップＳ７００からステップＳ７２１や、図１３におけるステップＳ８００からステップＳ８２１で使うオーディオデータを1度に読み込んでしまっても良い。この場合には、最初にオーディオデータを読み込むための記憶容量は必要になるが、あとはポインタの移動だけでセグメントの読み込み処理を済ませることができるので、重複の多いオーディオデータの読み込み処理の無駄を省くことができ、処理を効率的かつ高速に行えるようになる。
(評価尺度)
本実施の形態の類似度計算回路１０５における評価尺度として、正規化していない二乗誤差の小ささや、正規化していない相関関数の大きさを用いたが、正規化した二乗誤差の小ささや、正規化した相関関数の大きさを用いることもできる。この場合には、演算量が増加するが、オーディオデータの振幅の大きさに依存しない評価尺度となるので、オーディオデータの振幅に影響されずに類似度を求めることができ、音質改善が期待できる。
(処理単位の大きさ)
第２実施形態の図１７において、バッファメモリ回路１０３とバッファメモリ回路１０４では、オーディオデータを処理単位の時間長Ts単位で記憶回路１０１から読み込んでいるが、もっと大きい処理単位毎に読み込んでも良い。例えば図５における時間軸伸張の場合には、５０４_maxの開始点から５０９の終了点までを、図６に示す時間軸圧縮の場合には、６０４の開始点から６０９_maxの終了点までを、バッファメモリ回路１０３とバッファメモリ回路１０４に読み込んでしまうことにより、異なる時刻において、２つのセグメント間の時間差を変えながら類似度を求める時と、パラメータ選択回路１２０により選択された2つのセグメントを重み付け加算する時に、記憶回路１０１へのアクセスをしないようにできる。この場合には、記憶回路１０１からバッファメモリ回路１０３とバッファメモリ回路１０４への転送回数が少なくて済むので、処理時間を短縮することが可能となる。
【０１７２】
(システムLSI化)
第１実施形態において図１に示した再生装置及び変換装置の内部構成や、第２実施形態において、図１７に示した変換装置の内部構成、第３実施形態において、図２１に示した再生装置の内部構成は、1つのシステムLSIとして構成してもよい。
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
【０１７３】
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置の中核としての役割を果たす。
【０１７４】
かかるシステムLSIは、再生装置は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、本発明の用途を多いに広げることができる。
図２３は、第３実施形態に示した再生装置の内部構成を組込んだシステムLSIを模式的に示す図である。
【０１７５】
具体的な生産手順の詳細は以下のものになる。まず各実施形態に示した構成図を基に、システムLSIとすべき部分の回路図を作成し、回路素子やIC,LSIを用いて、構成図における構成要素を具現化する。
そうして、各構成要素を具現化してゆけば、回路素子やIC,LSI間を接続するバスやその周辺回路、外部とのインターフェイス等を規定する。更には、接続線、電源ライン、グランドライン、クロック信号線等も規定してゆく。この規定にあたって、LSIのスペックを考慮して各構成要素の動作タイミングを調整したり、各構成要素に必要なバンド幅を保証する等の調整を加えながら、回路図を完成させてゆく。
【０１７６】
各実施形態の内部構成のうち、一般的な部分については、既存の回路パターンを定義したIntellectual Propertyを組み合わせて設計するのが望ましい。特徴的な部分については、HDLを用いた抽象度が高い動作レベルを記述やレジスタトランスファレベルでの記述を用いてトップダウン設計を行うのが望ましい。  
回路図が完成すれば、実装設計を行う。実装設計とは、回路設計によって作成された回路図上の部品(回路素子やIC,LSI)を基板上のどこへ配置するか、あるいは、回路図上の接続線を、基板上にどのように配線するかを決定する基板レイアウトの作成作業である。
【０１７７】
こうして実装設計が行われ、基板上のレイアウトが確定すれば、実装設計結果をCAMデータに変換して、NC工作機械等の設備に出力する。NC工作機械は、このCAMデータを基に、SoC実装やSiP実装を行う。SoC(Systemon chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(System in Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、各実施形態に示した再生装置の内部構成図を基に作ることができる。図２４は、こうして作られたシステムLSIを、機器内に組み込んだ状態を示す図である。
【０１７８】
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(Look Up Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込むませる必要がある。更に、デコーダを内蔵した映像復調回路は、積和演算機能を内蔵したDSPで実現するのが望ましい。
(アーキテクチャ)
本発明にかかるシステムLSIは、再生装置の機能を実現するものなので、システムLSIは、Uniphierアーキテクチャに準拠させるのが望ましい。
【０１７９】
Uniphierアーキテクチャに準拠したシステムLSIは、以下の回路ブロックから構成される。
・データ並列プロセッサDPP
これは、複数の要素プロセッサが同一動作するSIMD型プロセッサであり、各要素プロセッサに内蔵されている演算器を、1つの命令で同時動作させることで、ピクチャを構成する複数画素に対するデコード処理の並列化を図る。
【０１８０】
特に、第２実施形態に示した比較回路４０２にSIMDプロセッサを採用して、Ts個のセグメントの組みを、類似度が高い順に並べる処理を、並列化すれば、速度変換のリアルタイム処理が可能になる。速度変換をハードウェアで再生装置に実装する場合は、変換装置のアーキテクチャの改良次第で、リアルタイムに速度変換を実現することができる。
・命令並列プロセッサIPP
これは、命令RAM、命令キャッシュ、データRAM、データキャッシュからなる「Local Memory Contoroller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイルからなる「ProcessingUnit部」、複数アプリケーションの並列実行をProcessing Unit部に行わせる「Virtual Multi Processor Unit部」で構成される。
【０１８１】
・CPUブロック
これは、ARMコア、外部バスインターフェイス(Bus Control Unit:BCU)、DMAコントローラ、タイマー、ベクタ割込コントローラといった周辺回路、UART、GPIO(GeneralPurpose Input Output)、同期シリアルインターフェイスなどの周辺インターフェイスで構成される。先に述べたコントローラは、このCPUブロックとしてシステムLSIに実装される。
【０１８２】
・ストリームI/Oブロック
これは、USBインターフェイスやATA Packetインターフェイスを介して、外部バス上に接続されたドライブ装置、ハードディスクドライブ装置、SDメモリカードドライブ装置とのデータ入出力を行う。
・AVI/Oブロック
これは、オーディオ入出力、ビデオ入出力、OSDコントローラで構成され、テレビ、AVアンプとのデータ入出力を行う。
【０１８３】
・メモリ制御ブロック
これは、外部バスを介して接続されたSD-RAMの読み書きを実現するブロックであり、各ブロック間の内部接続を制御する内部バス接続部、システムLSI外部に接続されたSD-RAMとのデータ転送を行うアクセス制御部、各ブロックからのSD-RAMのアクセス要求を調整するアクセススケジュール部からなる。
(本発明に係るプログラムの生産形態)
本発明に係るプログラムは、コンピュータが実行することができる実行形式のプログラム(オブジェクトプログラム)であり、実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVA(登録商標)バイトコードというように、様々な種類がある。
【０１８４】
本発明にかかるプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
【０１８５】
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを１つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み出しを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。以上の処理を経て、本発明に係るプログラムを作ることができる。
(プログラムの実行時間)
プログラムコードにおいて、一命令の実行区間が、命令のフェッチ区間に等しい場合、フローチャートに示される手順の実行に必要な命令数を実効ステップ数Taとすると、MPUにおける命令語長のワード数やフェッチ単位のワード数から、本発明にかかるプログラムの処理区間が与えられる。具体的には、以下の式にて算出される。
実効ステップ数Ta×フェッチサイクル×(命令語長のワード数/フェッチ単位のワード数)
第１実施形態に示したMPUが、本発明にかかるプログラムをパイプラインで実行しようとする場合、そのパイプラインの深さがＤ、ピッチがＰ秒であるなら、本発明にかかるプログラムの実行には、(Ｄ＋Taー１)×Ｐ秒になるので、本発明にかかるプログラムをリアルタイムに実行できるかどうかは、当該時間に基づき、検証すべきである。
【０１８６】
リアルタイム処理を実現する場合、かかる処理時間を考慮しつつ、装置の動作クロックや、メモリの規模を決定するのが望ましい。
(並列化)
本発明にかかるプログラムのうち、並列処理が可能な部分と、逐次処理が必要な部分との比率がＦ:１−Ｆであると仮定する。
【０１８７】
そして、本発明にかかるプログラムの処理時間が時間Ａであるから、これをn個のプロセッサで同時に実行する場合、本発明にかかる処理時間Ｂは、アムダールの法則により、
時間Ｂ＝Ａ×Ｆ/ｎ＋Ａ×(１−Ｆ)になる。
これらn個のプロセッサに、速度変換を実行させるには、時間範囲Trを、このプロセッサ数nで分割すると共に、(数3)、(数4)に示した目標値時間長を、nで分割して、n個のプロセッサにこれらに対する速度変換を同時実行させるのが望ましい。
【０１８８】
かかる並列化を行う制御部は、主記憶を共有し合う複数のMPUからなる密結合のマルチプロセッサシステムであってもよい。また、バス、通信回線を共有する複数のMPUからなる粗結合のマルチプロセッサシステムであってもよい。
(リアルタイムOS)
本発明にかかるプログラムは、リアルタイムOS(RTOS)上で動作させるのが望ましい。リアルタイムOSでは、最悪実行時間の予測が可能であるので、上述したようなリアルタイム化が現実的になるとの利点がある。
【０１８９】
リアルタイムOSは、カーネル、デバイスドライバから構成される。
カーネルは、システムコール処理、割込信号により割込ハンドラを起動するハンドラ入口処理、割込ハンドラの出口処理を行う。
デバイスドライバは、ハードウェア的な割込み信号により起動する「割込ハンドラ部」と、「割込タスク部」、「リクエスト処理部」から構成される。デバイスドライバは、システムコールの形で実現してもよいし、アプリケーションタスクの形で実現してもよい。システムコールの形で実現した場合、デバイスドライバは、システムのメモリ空間にマッピングされ、特権モードで動作することになる。
【０１９０】
各図のソフトウェア的な構成要素を、RTOS上のタスクとして実装して、動作させることが、リアルタイム処理の実現につながる。
【産業上の利用可能性】
【０１９１】
本発明に係る再生装置は、上記実施形態に内部構成が開示されており、この内部構成に基づき量産することが明らかなので、資質において工業上利用することができる。そして、音声の基本周波数を変えずに継続時間長のみを変えることができ、速度を変えても明瞭度が下がりにくいので、ディスク媒体や半導体メモリに記録された音声信号を、使用者が聞き易い速度や聞きたい速度で再生することが必要な用途に適用できるので、DVD±Rプレーヤ、DVD±Rレコーダ、ハードディスクレコーダ、放送受像機あるいは半導体メモリを用いたビデオレコーダなどの製品分野の開発に適用する事ができる。
【図面の簡単な説明】
【０１９２】
【図１】変換装置が組込まれる再生装置の内部構成を示す図である。
【図２】非線形選択により選択される複数のセグメントを示す図である。
【図３】図２で選択されたセグメントの組みが、どのように重ね合わせられるかを示す図である。
【図４】セグメント選択ログを示す図である。
【図５】（ａ）は、時間軸伸長を行う場合に、類似度が最高であるとして選択された、Ｘ１、Ｘ２の3つの組みを示す図である。  （ｂ）Ｘ１,Ｘ２か重ね合わせの対象になる場合、実行される演算を模式的に示す図である。  （ｃ）は、図５（ａ）のように、Ｘ１、Ｘ２とＸ１'，Ｘ２'が選択された場合の重ね合わせ出力を示す。
【図６】（ａ）は、時間軸圧縮を行う場合に選択される、Ｘ１、Ｘ２の3つの組みを示す図である。  （ｂ）Ｘ１,Ｘ２が重ね合わせの対象になる場合、実行される演算を模式的に示す図である。  （ｃ）（ａ）のように、Ｘ１、Ｘ２と、Ｘ１'，Ｘ２'とが選択された場合の重ね合わせ出力を示す。
【図７】時間軸伸張（α≧１）である場合における、速度変換の処理手順を示すフローチャートである。
【図８】処理単位iについての最適時間差Tl_optと、最小二乗誤差R_minとを算出する処理の詳細な処理手順を示すフローチャートである。
【図９】時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組を選択する処理手順を示すフローチャートである。
【図１０】類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する処理手順を示すフローチャートである。
【図１１】（ａ）ステップＳ７３９の１巡目の実行にて、出力される部分を示す。  （ｂ）ステップＳ７３９の２巡目以降の実行にて、出力される部分を示す。  （ｃ）ステップＳ７４７の実行にて、出力される部分を示す。
【図１２】時間軸圧縮（α≦１）による速度変換を行う場合の処理手順を示すフローチャートである。
【図１３】処理単位iについて最適時間差Tl_optと、最小二乗誤差R_minとを算出する処理のフローチャートである。
【図１４】時間△Td毎に求めた最も高い類似度R（j）の中から、さらに類似度の高い順にセグメントの組の選択を行う処理手順を示すフローチャートである。
【図１５】類似度が高いとして選択されたセグメントの組に対し、重み付け加算を行って出力する処理手順を示すフローチャートである。
【図１６】（ａ）ステップＳ８３９の１巡目の実行にて、出力される部分を示す。  （ｂ）ステップＳ８３９の２巡目以降の実行にて、出力される部分を示す。  （ｃ）ステップＳ８４７の実行にて、出力される部分を示す。
【図１７】第２実施形態に係る変換装置の内部構成を示す図である。
【図１８】類似度の評価関数が二乗誤差である場合の類似度計算回路１０５の内部構成を示す図である。
【図１９】類似度の評価関数が相関関数の場合の類似度計算回路１０５の内部構成を示す図である。
【図２０】判定回路１０６の内部構成を示す図である。
【図２１】第３実施形態に係る変換装置が組込まれる再生装置の内部構成を示す図である。
【図２２】速度変換のためのセットアップメニューの一例を示す図である。
【図２３】第３実施形態に示した再生装置の内部構成を組込んだシステムLSIを模式的に示す図である。
【図２４】図２３のようにして作られたシステムLSIを、機器内に組み込んだ状態を示す図である。
【符号の説明】
【０１９３】
１  記憶回路
２  映像音声分離回路
３  映像復号回路
４  音声復号回路
５  音声速度変換装置
６  記憶回路
７  制御回路
８  映像速度変換装置
９  制御回路
１０１  記憶回路
１０２  スイッチ回路
１０３  バッファメモリ回路
１０４  バッファメモリ回路
１０５  類似度計算回路
１０６  判定回路
１０７  窓関数発生回路
１０８  スイッチ回路
１０９  スイッチ回路
１１０  乗算回路
１１１  乗算回路
１１２  加算回路
１１３  スイッチ回路
１１４  出力バッファ回路
１１５  速度設定回路
１１６  パラメータ記憶回路
１１７  ポインタ値計算回路
１１８  ポインタ制御回路
１１９  制御信号発生回路
１２０  パラメータ選択回路
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2007086365.tif 000039
【図２】
2007086365.tif 000040
【図３】
2007086365.tif 000041
【図４】
2007086365.tif 000042
【図５】
2007086365.tif 000043
【図６】
2007086365.tif 000044
【図７】
2007086365.tif 000045
【図８】
2007086365.tif 000046
【図９】
2007086365.tif 000047
【図１０】
2007086365.tif 000048
【図１１】
2007086365.tif 000049
【図１２】
2007086365.tif 000050
【図１３】
2007086365.tif 000051
【図１４】
2007086365.tif 000052
【図１５】
2007086365.tif 000053
【図１６】
2007086365.tif 000054
【図１７】
2007086365.tif 000055
【図１８】
2007086365.tif 000056
【図１９】
2007086365.tif 000057
【図２０】
2007086365.tif 000058
【図２１】
2007086365.tif 000059
【図２２】
2007086365.tif 000060
【図２３】
2007086365.tif 000061
【図２４】
2007086365.tif 000062
【国際調査報告】
2007086365.tif 000063
2007086365.tif 000064
2007086365.tif 000065
2007086365.tif 000066