(57)【要約】【課題】音声伸縮処理による音声品質の劣化を減少させることを目的とする。【解決手段】音声処理装置１１０１は、入力装置１１１１を介して指示された倍率で音声信号を伸縮する。伸縮は、所定の単位波形毎に行われる。制御部１１２１は、前記所定の単位波形のそれぞれについて、新規単位波形の挿入または新規単位波形による置換を行うにあたっての優先順位をつけ、該順位に従って前記挿入または前記置換を行うことにより、音声信号を徐々に伸張または縮小していく。前記新規単位波形は元の単位波形に基づき生成するが、伸縮処理後の音声が不自然なものとならないように、同一の単位波形が連続することのないようにする。【選択図】図１
2008046160.tif 000002
【特許請求の範囲】
【請求項１】
区分波形の時系列である音声波形を記憶する記憶部と、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方に似た新規区分波形を単数又は複数生成し該連続する２個の前記区分波形の境界に関連付けて前記記憶部に記憶させる新規区分波形生成手段と、
前記新規区分波形をそれが関連づけられた前記境界に挿入する新規区分波形挿入手段と、
前記新規区分波形挿入手段により複数の前記新規区分波形を同一の前記境界に挿入する場合には該複数の前記新規区分波形が相互に異なるものとなるように調整する非連続化手段と、
前記新規区分波形挿入手段により伸張された音声波形を出力する音声波形出力手段と、
を具備する音声伸張装置。
【請求項２】
連続する２個の前記区分波形がどの程度似ているかを示す類似度を計算し該連続する２個の区分波形の境界に関連付けて前記記憶部に記憶させる類似度計算手段と、
前記新規区分波形挿入手段により伸張された音声波形の長さが所定の音声波形目標長に達しているか否かを判別する目標長到達判別手段と、
をさらに具備し、
前記新規区分波形挿入手段は、
前記境界のうちそれに関連付けられた前記類似度が大きい境界から順番に該境界に関連付けられた前記新規区分波形をひとつずつ挿入し、該挿入の度に前記目標長到達判別手段による判別を行い、前記伸張された音声波形の長さが前記所定の音声波形目標長に達していると判別された場合には挿入を終了し、全ての前記境界に前記新規区分波形をひとつずつ挿入しても前記伸張された音声波形の長さが前記所定の音声波形目標長に達しないと判別された場合には、一部又は全部の前記境界に該境界に関連付けられた前記新規区分波形を複数挿入することにより前記伸張された音声波形の長さを前記所定の音声波形目標長に達せしめる、
ことを特徴とする請求項１に記載の音声伸張装置。
【請求項３】
前記所定の新規区分波形生成規則は、
連続する２個の前記区分波形のうち、時間的に過去の区分波形に対しては０から始まり１で終わる重み係数を、時間的に未来の区分波形に対しては１から始まり０で終わる重み係数を、それぞれ用いて、重み付け加算する規則である、
ことを特徴とする請求項１又は２に記載の音声伸張装置。
【請求項４】
前記非連続化手段は、
同一の前記境界に関連付けられた複数の前記新規区分波形の長さを、該新規区分波形が挿入される前記境界に対して時間的に過去の区分波形の長さと、時間的に未来の区分波形の長さの間で、様々に変化させることにより、同一の新規区分波形が連続しないようにする、
ことを特徴とする請求項１乃至３の何れか１項に記載の音声伸張装置。
【請求項５】
前記非連続化手段は、前記新規区分波形のサンプリング位置の変更を行うことにより、前記新規区分波形の長さを変化させる、
ことを特徴とする請求項１乃至４の何れか１項に記載の音声伸張装置。
【請求項６】
処理対象である音声波形を区分波形の時系列に分割する音声分割手段をさらに具備する請求項１乃至５の何れか１項に記載の音声伸張装置。
【請求項７】
前記音声分割手段は、音声のピッチの区切りを検出し、該区切りに従った分割により区分波形の時系列を生成する、
ことを特徴とする請求項６に記載の音声伸張装置。
【請求項８】
区分波形の時系列である音声波形を記憶する記憶部と、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方と似ておりかつ該両方の長さの和より短い長さを有する新規区分波形を生成し該連続する２個の前記区分波形の境界に関連付けて前記記憶部に記憶させる新規区分波形生成手段と、
前記新規区分波形をそれが関連づけられた前記境界に挿入するとともに該境界をなしていた２個の前記区分波形を削除する区分波形置換手段と、
前記区分波形置換手段により縮小された音声波形を出力する音声波形出力手段と、
を具備する音声縮小装置。
【請求項９】
連続する２個の前記区分波形がどの程度似ているかを示す類似度を計算し該連続する２個の区分波形の境界に関連付けて前記記憶部に記憶させる類似度計算手段と、
前記区分波形置換手段により縮小された音声波形の長さが所定の音声波形目標長に達しているか否かを判別する目標長到達判別手段と、
をさらに具備し、
前記区分波形置換手段は、
前記境界のうちそれに関連付けられた前記類似度が大きい境界から順番に該境界に関連付けられた前記新規区分波形をひとつずつ挿入するとともに該境界をなしていた２個の前記区分波形を削除する置換操作を行い、該置換操作の度に前記目標長到達判別手段による判別を行い、該置換操作の結果縮小された音声波形の長さが前記所定の音声波形目標長に達していると判別された場合には前記置換操作を終了する、
ことを特徴とする請求項８に記載の音声縮小装置。
【請求項１０】
前記所定の新規区分波形生成規則は、
連続する２個の前記区分波形のうち、時間的に過去の区分波形に対しては１から始まり０で終わる重み係数を、時間的に未来の区分波形に対しては０から始まり１で終わる重み係数を、それぞれ用いて、重み付け加算する規則である、
ことを特徴とする請求項８又は９に記載の音声縮小装置。
【請求項１１】
処理対象である音声波形を区分波形の時系列に分割する音声分割手段をさらに具備する請求項８乃至１０の何れか１項に記載の音声縮小装置。
【請求項１２】
前記音声分割手段は、音声のピッチの区切りを検出し、該区切りに従った分割により区分波形の時系列を生成する、
ことを特徴とする請求項１１に記載の音声縮小装置。
【請求項１３】
処理対象である音声波形が区分波形の時系列から構成されている場合に、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方に似た新規区分波形を単数又は複数生成し該連続する２個の前記区分波形の境界に関連付ける新規区分波形生成ステップと、
前記新規区分波形をそれが関連づけられた前記境界に挿入する新規区分波形挿入ステップと、
前記新規区分波形挿入ステップにより伸張された音声波形を出力する音声波形出力ステップと、を具備し、
前記新規区分波形挿入ステップにおいて複数の前記新規区分波形を同一の前記境界に挿入する場合には該複数の前記新規区分波形が相互に異なるものとなるように調整する、
ことを特徴とする音声伸張方法。
【請求項１４】
処理対象である音声波形が区分波形の時系列から構成されている場合に、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方に似ておりかつ該両方の長さの和より短い長さを有する新規区分波形を生成し該連続する２個の前記区分波形の境界に関連付ける新規区分波形生成ステップと、
前記新規区分波形をそれが関連づけられた前記境界に挿入するとともに該境界をなしていた２個の前記区分波形を削除する区分波形置換ステップと、
前記区分波形置換ステップにより縮小された音声波形を出力する音声波形出力ステップと、
を具備する音声縮小方法。
【請求項１５】
コンピュータを、
区分波形の時系列として表されている音声波形について、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方に似た新規区分波形を単数又は複数生成し該連続する２個の前記区分波形の境界に関連付け、
前記新規区分波形をそれが関連づけられた前記境界に挿入することにより音声波形を伸張し、
該伸張のために複数の前記新規区分波形を同一の前記境界に挿入する場合には該複数の前記新規区分波形が相互に異なるものとなるように調整し、
伸張された音声波形を出力する、音声伸張装置として機能させる、
ことを特徴とするプログラム。
【請求項１６】
コンピュータを、
区分波形の時系列として表されている音声波形について、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方に似ておりかつ該両方の長さの和より短い長さを有する新規区分波形を生成し該連続する２個の前記区分波形の境界に関連付け、
前記新規区分波形をそれが関連づけられた前記境界に挿入するとともに該境界をなしていた２個の前記区分波形を削除することにより音声波形を縮小し、
縮小された音声波形を出力する、音声縮小装置として機能させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声信号を時間領域で処理して音声信号を伸縮する音声伸張装置、音声縮小装置、音声伸張方法、音声縮小方法、及び、プログラムに関する。
【背景技術】
【０００２】
音声信号を変形する処理の１つとして、処理対象の音声信号の振幅や周波数特性を変更することなく、処理対象の音声信号の長さ（サンプル数）を伸縮する処理がある。
【０００３】
例えば、英会話教材で聞き取りにくい部分をゆっくり再生するような場面では、音声信号の伸張処理が必要である。
【０００４】
一方、録音された会議や講演の内容を短時間で把握したいような場面では、音声信号の縮小処理が必要である。
【０００５】
音声信号を伸張するために、連続する２つの部分波形に基づいて新たな部分波形を生成し、該連続する２つの部分波形の間に新たな部分波形を割り込ませる方法が開示されている（特許文献１）。以下では、音声信号を何らかの規則に従って切り分けた部分波形を、区分波形と呼ぶこともある。なお、かかる切り分けの方法としては、例えば、ピッチ波形を単位とする方法が開示されている（特許文献２）。
【０００６】
新たな区分波形の挿入により音声波形を伸張するには、最も簡単には、連続する２つの区分波形のいずれかをそのままコピーしたものを新たな区分波形とすればよい。
【０００７】
しかしこのようにすると、伸張後の音声は、全く同一の区分波形が連続する時間帯が存在するために、不自然な音声になってしまう。
【０００８】
この短所は、新たな区分波形を、当該新たな区分波形の挿入先の前後の区分波形の中間的な波形、例えば重み付き平均波形、とすれば、解消され得る。
【０００９】
しかしそれも、伸張度が２倍を超える場合には、注意を要する。伸張度が２倍を超えると、元の音声信号における連続する２つの区分波形の境界のうちに、複数の新たな音声波形を割り込ませることを要する箇所が出現する。この場合、当該複数の新たな音声波形が同じものであるときには、結局、伸張後の音声は、全く同一の区分波形が連続する時間帯が存在するために、不自然な音声になってしまう。
【００１０】
一方、音声信号を縮小するためには、最も簡単には、区分波形を適宜間引くことが考えられる。
【００１１】
しかし、単純に区分波形を間引くと、元の音声信号においては連続していなかった区分波形が新たに隣接することなる。すると当該隣接箇所で音声信号の波形変化が急激なものとなってしまうので、縮小後の音声は、不自然な音声になってしまう。
【特許文献１】特開２００５−２７５０１０号公報
【特許文献２】特開平９−２５８７６２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
以上のように、音声伸張時には、複数の同一波形が連続することによる音声品質の低下が懸念される。一方、音声縮小時には、音声信号に変化の急激な部分が生じることによる音声品質の低下が懸念される。
【課題を解決するための手段】
【００１３】
本発明は、上記問題点に鑑みてなされたもので、音声伸縮による音声波形の劣化を減少させる音声伸縮装置、音声伸縮方法及びプログラムを提供することを目的とする。
【００１４】
上記目的を達成するために、本発明の第１の観点に係る音声伸張装置は、
区分波形の時系列である音声波形を記憶する記憶部と、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方に似た新規区分波形を単数又は複数生成し該連続する２個の前記区分波形の境界に関連付けて前記記憶部に記憶させる新規区分波形生成手段と、
前記新規区分波形をそれが関連づけられた前記境界に挿入する新規区分波形挿入手段と、
前記新規区分波形挿入手段により複数の前記新規区分波形を同一の前記境界に挿入する場合には該複数の前記新規区分波形が相互に異なるものとなるように調整する非連続化手段と、
前記新規区分波形挿入手段により伸張された音声波形を出力する音声波形出力手段と、
を具備する。
【００１５】
本発明によれば、仮に一つの境界に複数の新規生成波形を挿入せざるを得なくなった場合でも、当該複数の新規生成波形は相互に異なるものとなるように調整される。よって、伸張後の音声信号においては、全く同一の区分波形が連続することがない。したがって、伸張後の音声に不自然さが生じることを防止することができる。
【００１６】
上記音声伸張装置は、連続する２個の前記区分波形がどの程度似ているかを示す類似度を計算し該連続する２個の区分波形の境界に関連付けて前記記憶部に記憶させる類似度計算手段と、前記新規区分波形挿入手段により伸張された音声波形の長さが所定の音声波形目標長に達しているか否かを判別する目標長到達判別手段と、をさらに具備し、前記新規区分波形挿入手段は、前記境界のうちそれに関連付けられた前記類似度が大きい境界から順番に該境界に関連付けられた前記新規区分波形をひとつずつ挿入し、該挿入の度に前記目標長到達判別手段による判別を行い、前記伸張された音声波形の長さが前記所定の音声波形目標長に達していると判別された場合には挿入を終了し、全ての前記境界に前記新規区分波形をひとつずつ挿入しても前記伸張された音声波形の長さが前記所定の音声波形目標長に達しないと判別された場合には、一部又は全部の前記境界に該境界に関連付けられた前記新規区分波形を複数挿入することにより前記伸張された音声波形の長さを前記所定の音声波形目標長に達せしめる、ことが望ましい。
【００１７】
各境界について類似度を計算しておくと、新規生成波形を、どの境界に優先的に挿入するかを決定する際の手がかりとなって便利である。
【００１８】
いかなる新規生成波形も人工波形である以上、その付加により音質劣化が生じる可能性はゼロではない。しかし、新規生成波形を、類似度の大きい境界から優先的に挿入していくことにより、音質劣化を最小限に止めることができる。類似度の大きい境界においては類似した２個の区分波形が並んでおり、それらから新規に生成される区分波形も元の２個の区分波形に類似しているから、結局、よく似た３個の区分波形が並ぶことになり、類似度の小さい境界に新規波形を挿入する場合に比べて、新規生成区分波形が人工波形であるがゆえに突出して音声劣化をもたらす可能性は低いからである。
【００１９】
前記所定の新規区分波形生成規則は、例えば、連続する２個の前記区分波形のうち、時間的に過去の区分波形に対しては０から始まり１で終わる重み係数を、時間的に未来の区分波形に対しては１から始まり０で終わる重み係数を、それぞれ用いて、重み付け加算する規則であってもよい。
【００２０】
新規波形をある境界に挿入するのであるから、元の音声信号のうち、当該新規波形の挿入先となる境界に近い部分の波形を重視して新規波形の生成に役立てることにより、伸張後の音声に不自然さが生じないことが期待できる。
【００２１】
前記非連続化手段は、同一の前記境界に関連付けられた複数の前記新規区分波形の長さを、該新規区分波形が挿入される前記境界に対して時間的に過去の区分波形の長さと、時間的に未来の区分波形の長さの間で、様々に変化させることにより、同一の新規区分波形が連続しないようにしてもよい。
【００２２】
同一境界に挿入すべき新規区分波形を複数生成しなければならない場合に、それら複数の新規区分波形が相互に異なる波形でありつつ、いずれも元の連続する２つの波形に類似する波形にするためには、上述のようにするのが最も簡単である。すなわち、まずひとつだけ新規区分波形の基本形を生成し、当該基本形を時間軸上で伸縮させることにより、類似しつつ異なる、という条件を容易に満たすことができる。
【００２３】
前記非連続化手段は、前記新規区分波形のサンプリング位置の変更を行うことにより、前記新規区分波形の長さを変化させてもよい。
【００２４】
音声信号処理は多くの場合デジタル信号すなわち離散信号として処理される。かかる場合、音声信号のサンプリング間隔を変更することにより、波形の長さを簡単かつ確実に変化させることができる。
【００２５】
上記音声伸張装置は、処理対象である音声波形を区分波形の時系列に分割する音声分割手段をさらに具備してもよい。
【００２６】
当該手段を具備することにより、上記音声信号伸張装置は、音声波形データを直接入力された場合にも音声信号の伸張が可能になる。
【００２７】
前記音声分割手段は、音声のピッチの区切りを検出し、該区切りに従った分割により区分波形の時系列を生成してもよい。
【００２８】
音声信号は概ね周期の近いピッチ信号の繰り返しになっているため、ピッチの一区切りを一つの区分波形に対応させると、隣接する区分波形は相互に類似する結果となる場合が多い。よって、かかる分割方法は、本発明による音声信号の伸張処理に好都合である。
【００２９】
上記目的を達成するために、本発明の第２の観点に係る音声縮小装置は、
区分波形の時系列である音声波形を記憶する記憶部と、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方と似ておりかつ該両方の長さの和より短い長さを有する新規区分波形を生成し該連続する２個の前記区分波形の境界に関連付けて前記記憶部に記憶させる新規区分波形生成手段と、
前記新規区分波形をそれが関連づけられた前記境界に挿入するとともに該境界をなしていた２個の前記区分波形を削除する区分波形置換手段と、
前記区分波形置換手段により縮小された音声波形を出力する音声波形出力手段と、
を具備する。
【００３０】
本発明によれば、新規に生成され元の２つの区分波形の代わりに配置される区分波形は元の２つの区分波形のいずれにも似ている。よって、縮小後の音声信号においては、単に区分波形を間引きしただけの場合よりも、信号の形状の不連続さの程度が小さい。したがって、縮小後の音声に不自然さが生じることを防止する上で有利である。また、新規に生成される区分波形の長さは、元の２つの区分波形の長さの和を超えないので、上述の置換により音声信号は確実に縮小される。
【００３１】
上記音声伸張装置は、連続する２個の前記区分波形がどの程度似ているかを示す類似度を計算し該連続する２個の区分波形の境界に関連付けて前記記憶部に記憶させる類似度計算手段と、前記区分波形置換手段により縮小された音声波形の長さが所定の音声波形目標長に達しているか否かを判別する目標長到達判別手段と、をさらに具備し、前記区分波形置換手段は、前記境界のうちそれに関連付けられた前記類似度が大きい境界から順番に該境界に関連付けられた前記新規区分波形をひとつずつ挿入するとともに該境界をなしていた２個の前記区分波形を削除する置換操作を行い、該置換操作の度に前記目標長到達判別手段による判別を行い、該置換操作の結果縮小された音声波形の長さが前記所定の音声波形目標長に達していると判別された場合には前記置換操作を終了する、ことが望ましい。
【００３２】
各境界について類似度を計算しておくと、どの連続する２つの区分波形を新規生成波形に優先的に置き換えればよいかを決定する際の手がかりとなって便利である。
【００３３】
類似度の大きい境界の前後、すなわち、元々波形変化の少ない時間帯から優先的に新規区分波形への置き換えを進めていくことにより、音質劣化を最小限に止めることができる。
【００３４】
前記所定の新規区分波形生成規則は、例えば、連続する２個の前記区分波形のうち、時間的に過去の区分波形に対しては１から始まり０で終わる重み係数を、時間的に未来の区分波形に対しては０から始まり１で終わる重み係数を、それぞれ用いて、重み付け加算する規則であってもよい。
【００３５】
元の２つの区分波形に代えて１つの新規波形を配置するのであるから、元の音声信号のうち、新規波形挿入後に当該新規波形が隣接することになる音声フレームに近い部分の波形を重視して新規波形の生成に役立てることにより、縮小後の音声に不自然さが生じないことが期待できる。
【００３６】
上記音声縮小装置は、処理対象である音声波形を区分波形の時系列に分割する音声分割手段をさらに具備してもよい。
【００３７】
当該手段を具備することにより、上記音声信号縮小装置は、音声波形データを直接入力された場合にも音声信号の縮小が可能になる。
【００３８】
前記音声分割手段は、音声のピッチの区切りを検出し、該区切りに従った分割により区分波形の時系列を生成してもよい。
【００３９】
音声信号は概ね周期の近いピッチ信号の繰り返しになっているため、ピッチの一区切りを一つの区分波形に対応させると、隣接する区分波形は相互に類似する結果となる場合が多い。よって、かかる分割方法は、本発明による音声信号の縮小処理に好都合である。
【００４０】
上記目的を達成するために、本発明の第３の観点に係る音声伸張方法は、
処理対象である音声波形が区分波形の時系列から構成されている場合に、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方に似た新規区分波形を単数又は複数生成し該連続する２個の前記区分波形の境界に関連付ける新規区分波形生成ステップと、
前記新規区分波形をそれが関連づけられた前記境界に挿入する新規区分波形挿入ステップと、
前記新規区分波形挿入ステップにより伸張された音声波形を出力する音声波形出力ステップと、を具備し、
前記新規区分波形挿入ステップにおいて複数の前記新規区分波形を同一の前記境界に挿入する場合には該複数の前記新規区分波形が相互に異なるものとなるように調整する、
ことを特徴とする。
【００４１】
上記目的を達成するために、本発明の第４の観点に係る音声縮小方法は、
処理対象である音声波形が区分波形の時系列から構成されている場合に、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方に似ておりかつ該両方の長さの和より短い長さを有する新規区分波形を生成し該連続する２個の前記区分波形の境界に関連付ける新規区分波形生成ステップと、
前記新規区分波形をそれが関連づけられた前記境界に挿入するとともに該境界をなしていた２個の前記区分波形を削除する区分波形置換ステップと、
前記区分波形置換ステップにより縮小された音声波形を出力する音声波形出力ステップと、
を具備する。
【００４２】
上記目標を達成するために、本発明の第５の観点に係るプログラムは、
コンピュータを、
区分波形の時系列として表されている音声波形について、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方に似た新規区分波形を単数又は複数生成し該連続する２個の前記区分波形の境界に関連付け、
前記新規区分波形をそれが関連づけられた前記境界に挿入することにより音声波形を伸張し、
該伸張のために複数の前記新規区分波形を同一の前記境界に挿入する場合には該複数の前記新規区分波形が相互に異なるものとなるように調整し、
伸張された音声波形を出力する、音声伸張装置として機能させる、
ことを特徴とする。
【００４３】
上記目標を達成するために、本発明の第６の観点に係るプログラムは、
コンピュータを、
区分波形の時系列として表されている音声波形について、
所定の新規区分波形生成規則に従うことにより連続する２個の前記区分波形の両方に似ておりかつ該両方の長さの和より短い長さを有する新規区分波形を生成し該連続する２個の前記区分波形の境界に関連付け、
前記新規区分波形をそれが関連づけられた前記境界に挿入するとともに該境界をなしていた２個の前記区分波形を削除することにより音声波形を縮小し、
縮小された音声波形を出力する、音声縮小装置として機能させる、
ことを特徴とする。
【発明の効果】
【００４４】
本発明によれば、音声波形を伸縮する場合に、伸縮後の音声波形の劣化を減少させることができる。
【発明を実施するための最良の形態】
【００４５】
（実施形態１）
本発明に係る実施形態１を、以下、図面を参照して説明する。図１は、本発明の実施形態１に係る音声処理装置、特に、音声伸張装置、の構成を示すブロック図である。
【００４６】
図１に示すように、音声処理装置１１０１は、例えば、コンピュータなどの情報処理装置から構成される。入力装置１１１１と出力装置１１１３と記録媒体１１１５とが音声処理装置１１０１に接続される。音声処理装置１１０１は、入力装置１１１１から指示を受けて、記録媒体１１１５から入力された音声波形データを指定された倍数の長さに伸張し、記録媒体１１１５に出力する。
【００４７】
ここで、音声波形データとは、アナログ音声が所定のサンプリング周波数（例えば、８ｋＨｚ）で量子化されているサンプル値データである。
【００４８】
記録媒体１１１５は、例えば、ＣＤ−ＲＷ（Compact Disk ReWritable）ディスクなどであり、元となる音声波形データを格納したり、該音声波形データを指定された倍数の長さに伸張した音声波形データを格納したりする。
【００４９】
音声処理装置１１０１は、制御部１１２１と、入力制御部１１３１と、出力制御部１１３３と、プログラム格納部１１３５と、記憶部１１３７と、データ記録部１１３９とを備える。
【００５０】
制御部１１２１は、例えば、ＣＰＵ（Central Processing Unit：中央演算処理装置）、レジスタ、ＲＡＭ（Random Access Memory）等を備え、プログラム格納部１１３５に予め格納されている動作プログラムに基づいて、音声処理装置１１０１の各部を制御したり、データ記録部１１３９を介して、記録媒体１１１５に格納されている音声波形データを読み出したり、伸張した音声波形データを記録媒体１１１５に書き込んだり、後述する波形伸張処理などを実行したりする。
【００５１】
入力制御部１１３１は、例えば、キーボードやポインティングデバイス、等の入力装置１１１１を接続し、入力装置１１１１から入力された制御部１１２１への指示などを受け付けて制御部１１２１に伝達する。
【００５２】
出力制御部１１３３は、例えば、ディスプレイやスピーカ、等の出力装置１１１３を接続し、制御部１１２１の処理結果などを必要に応じて出力装置１１１３に出力する。
【００５３】
プログラム格納部１１３５は、ＲＯＭ（Read Only Memory）などによって構成され、制御部１１２１が実行するプログラムを格納する。
【００５４】
記憶部１１３７は、例えば、ハードディスク装置やＲＡＭ（Random Access Memory）などの記憶装置から構成され、データ記録部１１３９から送られてきた音声波形データ、及び波形伸張処理後の音声波形データを一時記憶する。記憶部１１３７は、一時記憶した音声波形データを、制御部１１２１に送り出したり、制御部１１２１を介してデータ記録部１１３９に送り出したりする。
【００５５】
データ記録部１１３９は、例えば、ＣＤ−ＲＷドライブなどであって、制御部１１２１からの指示に従って、記録媒体１１１５に格納されている音声波形データを読み出す。また、伸張された音声波形データを記録媒体１１１５に書き込む。
【００５６】
制御部１１２１は、記憶部１１３７に一時記憶された音声波形データに対して、波形伸張処理を行い、伸張後の音声波形データを記憶部１１３７に格納する。波形伸張処理において、制御部１１２１は、音声波形データを繰り返し単位でいくつかの区分波形に分割する。そして、各区分波形相互の境界に、該境界の前後の区分波形に基づいて、新たな区分波形を生成し、該区分波形を該境界に挿入することにより、音声波形データを伸張していく。かかる挿入動作の繰り返しにより、最終的には、指定の倍数となるような音声波形データが生成される。波形データは離散データであるから、指定の倍数がＭ倍である場合には、伸張後の音声波形データは、処理対象の元となる音声波形データのサンプル数のＭ倍のサンプル数を有する。
【００５７】
本実施形態においては、元となる音声波形は、制御部１１２１により、繰り返し単位をピッチとして分割される。この結果、元の音声信号は、音声処理装置１１０１の内部においては、図２に示すように、Ｎ個のピッチ波形Ｓ0、Ｓ1、・・・、ＳN-1が連続したものとして扱われる。
【００５８】
図２に示すとおり、サンプリングの時間間隔をｑとする。例えばサンプリング周波数が上述の８ｋＨｚであれば、ｑはその逆数である１２．５μｓとなる。
【００５９】
また、ピッチ波形Ｓj（０≦ｊ≦Ｎ−１）は、音声処理装置１１０１の内部では、ｐｌ（ｊ）個の離散データで表現されている。よって、ピッチ波形Ｓｊは、時間長ｐｌ（ｊ）×ｑを有する。以後このことを、単に、ピッチ波形の長さがｐｌ（ｊ）である、と述べることがある。
【００６０】
このように、サンプリングの時間間隔ｑは一定であるが、各ピッチ波形の長さは、一般には、概ね近い値ではあるものの一定ではない。このことは、後に詳しく説明するように、音声信号を２倍以上に伸張する際に役立つ。
【００６１】
ピッチ波形Ｓｊ（０≦ｊ≦Ｎ−１）は、ｐｌ（ｊ）個のサンプリング点の波高の列｛ｓj、0、ｓj、1、・・・、ｓj、i、・・・、ｓj、pl(j)-1｝で表現されている。このことを、以下では、Ｓj＝｛ｓj、0、・・・、ｓj、pl(j)-1｝と表す。
【００６２】
例えば、音声信号の時間変化を表した図２においては、ｊ番目のピッチ波形Ｓｊのｉ番目のサンプリング点（図２の白四角印）は、ピッチ波形Ｓｊの始点から時間長（ｉ−１）×ｑの位置にあり、波高はｓj、i-1である。より具体的には例えば、音声信号の始点を時間の原点にとった場合、最初のピッチ波形が継続中の時刻７ｑにおける波高はｓ0、7である（図２の左から８番目の白丸印）。
【００６３】
波形伸張は、ピッチ単位で行う。基本的には、隣接する２つのピッチ波形の間に、なんらかのピッチ波形を割り込ませることを繰り返すことにより、伸張を行う。かかる繰り返しによれば、原理的には、元の音声波形データを任意の長さに伸張することが可能である。
【００６４】
割り込ませるピッチ波形は、割り込まれる２個のピッチ波形の一方又は両方となんらかの相関を有していることが望ましいのは明らかである。仮に、割り込まれる２個のピッチ波形と全く相関のない唐突な形状のピッチ波形を割り込ませれば、その部分で音声信号に滑らかさが失われ、音質が劣化してしまう。
【００６５】
割り込ませる新たなピッチ波形に、割り込まれる２個の既存のピッチ波形の一方又は両方との相関関係を有せしめるためには、例えば、２個の既存のピッチ波形のうちどちらかを単にコピーしたものを、新たなピッチ波形とすればよい。
【００６６】
しかし、このようにすると、新たなピッチ波形を割り込ませた結果、全く同一のピッチ波形が連続することになってしまう。一般に、人の音声を伸張対象とする場合には、全く同一の波形を連続させることによる伸張を行うと、不自然な音声になってしまう。
【００６７】
以上のように、ピッチ波形単位での伸張に際しては、元の２つのピッチ波形の間に、全く唐突な波形を挿入するのが不適切であることはもちろんのこと、かかる２つのピッチ波形のいずれかの単なるコピーを挿入することも、望ましくない。つまり、挿入すべき新たな波形は、該挿入前には隣接関係にあった２個のピッチ波形の形状と比べて、全く無関係な形状であってはならないし、元の２個のピッチ波形の一方と似すぎていてもいけない。
【００６８】
かかる要請に応えるべく、図３に示すように、本実施形態においては、新規ピッチ波形の挿入予定先を境界としていた元の２つのピッチ波形（図３（ａ））をそれぞれ適当に波形変形処理し（図３（ｂ））、かかる処理済みの波形を重ね合わせることにより、元の２つのピッチ波形の中間的な形状を有する新規ピッチ波形を生成し（図３（ｃ））、該新規ピッチ波形を挿入して音声信号を伸張する（図３（ｄ））。
【００６９】
上述の波形変形処理（図３（ｂ））は、その後の重ね合わせの結果生成される新規ピッチ波形（図３（ｃ））が元の２つのピッチ波形（図３（ａ））の中間的な形状となるものであれば任意の処理でかまわない。後に、重み付けを用いた簡単な処理方法を説明する。
【００７０】
元のＮ個のピッチ波形の全ての境界に新たなピッチ波形をひとつずつ挿入したとしても、伸張度は２倍にしかならない。２倍より長く伸張したい場合には、元のピッチ波形の境界の少なくとも１カ所以上で、新規ピッチ波形を複数挿入する必要が生じる。
【００７１】
ここで、上述の、全く同一の波形が連続するのは避けるべきであるという要請が、再び問題となる。すなわち、元のピッチ波形の境界のひとつに新規ピッチ波形を複数挿入する場合、かかる複数の新規ピッチ波形は、元のピッチ波形のいずれとも同一でないことはもちろんのこと、新規ピッチ波形同士であっても、少なくとも伸張処理後に隣接関係になるものについては、同一であってはならない。このことは、元の２つのピッチ波形から図３に示す手順により新規波形を生成する場合に、新規波形の生成の仕方が複数要求されることを意味する。生成の仕方がひとつで済まないため、処理の複雑度が増す。
【００７２】
そこで、以下では、まず、より簡単な処理である、伸張が２倍より小さい場合の処理について説明する。その後、２倍より大きい場合の処理について説明する。
【００７３】
伸張が２倍より小さい場合には、元のピッチ波形の境界のうち、いくつかには新規波形を挿入し、残りのいくつかには何も挿入しないことになる。
【００７４】
そこで、音声信号を指定された伸張度に達せしめるために、元のピッチ波形の境界のうち、新規ピッチ波形を挿入すべき境界と、そうでない境界とを判別する必要が生じる。
【００７５】
このとき、元のピッチ波形の各境界に何らかの基準により優先順位を割り当て、優先順位の高い所から順番に新規ピッチ波形を挿入して音声信号を伸張していき、指定された伸張度まで伸びた時点で挿入を止める、という方針が簡便である。
【００７６】
そこで次は、優先順位をいかなる基準で定めるかが問題となる。定性的には、連続する元の２つのピッチ波形が似ているような境界ほど優先順位を高くすればよいのは明らかである。かかる境界においては、もともとピッチ波形の時間変化が緩やかであるため、人工的な波形である新規ピッチ波形を挿入しても、さほど目立たない、つまり、音声品質が劣化しづらいと考えられるからである。
【００７７】
するとさらに次は、２つのピッチ波形がどの程度似ているかを定量的に示す指標をいかに定義するかが問題となる。新規ピッチ波形の挿入の優先順位を決定するのに足りれば、いかなる指標でもよいが、本実施例では、簡便さを重視して、平均２乗誤差を採用する。そして、これを乖離度と称することにする。乖離度が小さい境界ほど、該境界をなす２つのピッチ波形は似ている、すなわち、ピッチ波形の時間変化が緩やかであるといえる。よって、乖離度の小さい境界から優先的に、新規ピッチ波形の挿入を行う。図２のように、ピッチ波形ＳｊとＳｊ＋１との乖離度ｅｊは、
ｅj＝｛（ｓj、0−ｓj+1、０）2＋
・・・＋（ｓj、pl(j)-1−ｓj+1、pl(j)-1）2｝／ｐｌ（ｊ）
のように定義する。
【００７８】
乖離度を用いた音声信号伸張処理の具体的な手順を、図４を参照しつつ説明する。すでに図１の記憶部１１３７には、処理対象となる音声信号がＮ個のピッチ波形Ｓ0、・・・、ＳN-1に分割された状態で格納されているとする。各ピッチ波形Ｓj（０≦ｊ≦Ｎ−１）は、サンプリング時間間隔ｑで採取された波高の列｛ｓj、0、・・・、ｓj、pl(j)-1｝である。
【００７９】
まず、制御部１１２１は、記憶部１１３７に、伸張後ピッチ波形を構成要素とする構造体Ｓmagnifiedを格納する領域を確保する。そして、Ｓmagnifiedの初期値Ｓinitとしては、記憶部１１３７に格納されている元の音声信号のピッチ波形の列｛Ｓ0、・・・、ＳN-1｝をそのままコピーしたものを採用する。すなわち、Ｓmagnified＝Ｓinit＝｛Ｓ0、・・・、ＳN-1｝とする（ステップＳ１４０１）。
【００８０】
上述のように、伸張の倍率が２倍より小さいか大きいかにより、処理の手順は異なる。そこで、倍率が２倍より小さいかどうかを判別し（ステップＳ１４０３）、２倍より大きい場合には（ステップＳ１４０３；Ｎｏ）、後に詳しく説明する２倍以上の伸張処理を行う（ステップＳ１４１９）。一方、倍率が２倍より小さいと判別された場合には（ステップＳ１４０３；Ｙｅｓ）、新規波形の割り込み先を決定するステップＳ１４０５に進む。
【００８１】
新規波形の割り込み先の決定には、上述のように、隣接ピッチ波形乖離度ｅ0、・・・、ｅNを利用する。乖離度はあらかじめ計算され記憶部１１３７に格納されているものとする。乖離度の小さいピッチ波形境界ほど優先して新規ピッチ波形を挿入することになるため、制御部１１２１は、乖離度を昇順にならべたときの順番を表す変数ｋをレジスタにカウンタとして格納することとし、初期値は１とする（ステップＳ１４０５）。乖離度ｅ0、・・・、ｅNを昇順に並べ替えたとき、例えばｅjがｋ番目になるとすれば、それは、ピッチ波形Ｓjとピッチ波形Ｓj+1との境界が、新規ピッチ波形の挿入先としてはｋ番目の候補となることを意味する。
【００８２】
次に、制御部１１２１は、記憶部１１３７に格納されている乖離度ｅ0、・・・、ｅNのうち、ｋ番目に小さいものを検索し、その添字を取り出し、ｋが格納されているレジスタとは別のカウンタ用レジスタにロードする（ステップ１４０７）。例えば、ｋ番目に小さい乖離度がｅｊであれば、ｊをロードする。なお、このとき、乖離度のソート作業が必要となるが、かかる作業は、バブルソート等、任意の既知のソート法を用いることとする。
【００８３】
上述の例のとおり、ステップ１４０７においてｊがロードされたとすれば、ピッチ波形Ｓjとピッチ波形Ｓj+1との境界に新規ピッチ波形を挿入することになる。新規ピッチ波形は、図３に示したとおり、元の２つのピッチ波形から生成される。よって、制御部１１２１は、プログラム格納部１１３５に格納されたプログラムに従って元の２つのピッチ波形に基づいた新規ピッチ波形を生成するに際して、まず、元となるピッチ波形ＳjとＳj+1とがどのようなものであるかを調べる必要がある。そこで、制御部１１２１は、汎用レジスタに、記憶部１１３７からピッチ波形ＳjとＳj+1とをロードする（ステップＳ１４０９）。
【００８４】
次に、制御部１１２１は、ピッチ波形Ｓjの波高列データｓj、0、・・・、ｓj、pl(j)-1と、ピッチ波形Ｓj+1の波高列データｓj+1、0、・・・、ｓj+1、pl(j+1)-1と、から、新しいピッチ波形Ｄj＝｛ｄj、0、・・・、ｄj、pl(j)-1｝を、プログラム格納部１１３５に格納されたプログラムに従って生成する（Ｓ１４１１）。
【００８５】
前述のように、新しいピッチ波形Ｄjは、元となる２つのピッチ波形ＳjとＳj+1との中間的な形を有するものでなければならない。一方で、中間的な形といえるものが生成されれば、いかなる生成法であってもよい。本実施形態においては、重み付け加算により、新たな波形を生成するものとする。重み付け加算には、計算が簡単であるという利点がある。
【００８６】
具体的には、元の２つのピッチ波形に図３（ａ）の鎖線で示すような重み付けを行ってから、重ね合わせる。伸張後に新規ピッチ波形からみて時間的に過去のピッチ波形となるＳｊには、０から始まり１で終わる、直線的に変化する重み付け係数を乗じることにより、図３（ｂ）の左側に示すような波形
｛ｓj、0×０／（ｐｌ（ｊ）−１）、ｓj、1×１／（ｐｌ（ｊ）−１）、・・・、ｓj、pl(j)-1×（ｐｌ（ｊ）−１）／（ｐｌ（ｊ）−１）｝
を生成する。一方、伸張後に新規ピッチ波形からみて時間的に未来のピッチ波形となるＳj+1には、１から始まり０で終わる、直線的に変化する重み付け係数を乗じることにより、図３（ｂ）の右側に示すような波形
｛ｓj+1、0×（ｐｌ（ｊ）−１）／（ｐｌ（ｊ）−１）、ｓj+1、1×（ｐｌ（ｊ）−２）／（ｐｌ（ｊ）−１）、・・・、ｓj+1、pl(j)-1×０／（ｐｌ（ｊ）−１）｝
を生成する。その後、重み付けの完了した２つの波形を重ね合わせて新しいピッチ波形
Ｄj＝｛ｄj、i（０≦ｉ≦ｐｌ（ｊ）−１）｜ｄj、i＝（ｓj、i×ｉ＋ｓj+1、i×（ｐｌ（ｊ）−１−ｉ））／（ｐｌ（ｊ）−１）｝
を生成する。
【００８７】
図３（ａ）の鎖線で示すような山状の重み付け係数を用いる理由は、挿入箇所に近い波形の形状ほど重視して新しいピッチ波形を作れば、人工的な波形を挿入することにより生じ得る音声としての不自然さを最小限に止めることが期待できるからである。
【００８８】
新しいピッチ波形Ｄjの生成が完了したら、図３（ｄ）に示すように、それを元のピッチ波形ＳjとＳj+1の間に挿入することにより、音声信号の長さをｐｌ（ｊ）だけ伸張する。この操作を音声処理装置１１０１の内部で行うには、制御部１１２１は、記憶部１１３７からピッチ波形列Ｓmagnifiedを取り出し、ＤjをＳjとＳj+1の間に挿入してＳmagnifiedをＳmagnified＝｛Ｓ0、・・・、Ｓj、Ｄj、Ｓj+1、・・・、ＳN-1｝のように更新する。さらに、制御部１１２１は、伸張の目標値との比較のために、この更新されたＳmagnifiedの長さを測った後、更新されたＳmagnifiedを記憶部１１３７に保存する（ステップＳ１４１３）。
【００８９】
伸張の目標値は、伸張処理の開始の前に、例えばユーザが入力装置１１１１を用いて入力制御部１１３１を介して制御部１１２１に伝えてあるものとする。ステップＳ１４１３で測られたＳmagnifiedの長さが、伸張の目標値に到達しているかどうかは、ステップＳ１４１５において判別される。目標値に到達しているならば（ステップＳ１４１５；Ｙｅｓ）、これ以上の伸張は不要なので、制御部１１２１は伸張処理を終了し、この時点におけるＳmagnifiedを伸張の最終結果としてデータ記録部１１３９により記録媒体１１１５に記録したり、伸張処理完了の旨を出力制御部１１３３を介して出力装置１１１３に出力してユーザに知らせたりする。
【００９０】
それに対して、ステップＳ１４１３で更新されたＳmagnifiedが目標長に到達していないと判別された場合（ステップＳ１４１５；Ｎｏ）、制御部１１２１はさらに新たなピッチ波形を生成してＳmagnifiedに追加しＳmagnifiedを伸張すべきであるから、新規ピッチ波形挿入先となる境界を検索するステップＳ１４０７に戻る。このとき、まだ新規ピッチ波形が挿入されていない境界のうちから挿入の優先度が最も高い境界を選び出すために、優先順位を表すカウンタｋを１だけ増加する（ステップＳ１４１７）。
【００９１】
伸張の程度は２倍より小さいので（ステップＳ１４０３；Ｙｅｓ）、元のピッチ波形同士がなす境界の全てに新規ピッチ波形を挿入し尽くすまでに、Ｓmagnifiedは必ず目標値に到達（ステップＳ１４１５；Ｙｅｓ）し、処理が完了する。
【００９２】
次に、指定された伸張が、２倍より大きい場合（ステップＳ１４０３；Ｎｏ）の処理（ステップＳ１４１９）について、図を改めて説明する。
【００９３】
図５が、２倍より大きい場合の伸張処理の具体的な手順を示したフローチャートである。２倍より小さく伸張する場合に比べると、元の連続する２つのピッチ波形の境界の一つ以上について、新規ピッチ波形を複数挿入しなければならないぶんだけ、処理が煩雑になる。基本的には、２倍より小さく伸張する場合と同じく、優先度の高い境界から順に新規ピッチ波形を挿入していく。しかし、全ての境界にひとつずつ新規ピッチ波形を挿入し終えても、信号を目標長にまで伸張させることができない。よって、さらにもう一回り、再び優先度の高い境界から順に、今度は２つずつ、新規ピッチ波形を挿入していく必要がある。その手順を終えてもなお目標長に到達しない場合には、さらにもう一回り、今度は３つずつ新規ピッチ波形を挿入する。このため、２倍より大きい場合の伸張処理（図５）は、おおまかにいって、２倍より小さい場合の伸張処理（図４）に対して、全境界を何回巡回しているかをカウントするループがひとつ増えた処理となる。
【００９４】
上述の、全境界を何回巡回しているかをカウントするカウンタを、全ピッチ波形間巡回回数カウンタｍと呼ぶことにする。初期値は、１巡目を表すために、ｍ＝１とする（ステップＳ１５０１）。
【００９５】
次に、元のピッチ波形のなす境界に、新規ピッチ波形の挿入先としての優先順位を割り当てるために、優先順位を表すカウンタｋをｋ＝１に初期化し（ステップＳ１５０３）、ｋ番目の候補である境界を表す添字ｊを求め（ステップＳ１５０５）、ｊに対応した元のピッチ波形であるＳj及びＳj+1を取り出す（ステップＳ１５０７）。これらは、２倍以下の伸張の際に行った手続（図４のステップＳ１４０５、Ｓ１４０７、Ｓ１４０９）と同一である。
【００９６】
この後、ステップＳ１５０９においては、ＳjとＳj+1とから、新しいピッチ波形を生成する。全ピッチ波形間の巡回が１回目のとき、すなわち、ｍ＝１のときには、新しいピッチ波形をひとつだけ生成すればよいので、２倍以下の伸張手続における新規波形生成方法（図４のステップＳ１４１１）と変わるところがない。前述のとおり、適切な重み付けを行った上で、加算して新規ピッチ波形をひとつ生成すればよい。
【００９７】
ところが、全ピッチ波形間の巡回を１回だけ行って伸張することができるのは、たかだか２倍までである。２倍以上の伸張処理の場合には、全ピッチ波形間の巡回は、１回では済まない。すなわち、全ピッチ波形間巡回回数カウンタｍの最大値は、必ず、２以上となる。ｍ回目の全ピッチ波形間巡回に際しては、すでに（ｍ−１）個の新規ピッチ波形が挿入済みである境界の中から、乖離度の小ささにより定まる優先度の高い境界を順に選び取り、該境界に挿入済みの（ｍ−１）個の新規ピッチ波形をいったん破棄し、その代わりに、新たにｍ個の新規ピッチ波形を生成して該境界に挿入する。これにより、ピッチ波形１個分だけ、音声信号を伸張することができる。
【００９８】
ここで問題となるのは、新規ピッチ波形は、元となる２つのピッチ波形のいずれとも異なっていなければならないばかりでなく、新規ピッチ波形同士も、複数生成された場合には、少なくとも挿入後に隣り合うことになるもの同士は異なっていなければならないということである。これは、前に説明したとおり、全く同じ波形の繰り返しにより人の音声として不自然なものとなってしまう事態を、避けるための要請である。
【００９９】
かかる問題のうち、元となる２つのピッチ波形のいずれとも異なっていなければならないという要請については、伸張度が２倍より小さい場合と同じ要請である。よって、伸張度が２倍より小さい場合と同じく、重み付き加算により新たなピッチ波形の生成を行えばよい。
【０１００】
それに対して、新たに生成する複数の新規ピッチ波形を、相互に異なるものとしなければならないという要請は、伸張度が２倍以上の場合になって初めて生じたものである。かかる要請に応えるためには、例えば、新規ピッチ波形を元の２つのピッチ波形から生成する方法を何種類も用意して、新規ピッチ波形の生成の度に新たな生成法を採用することにより、複数の新規ピッチ波形の形が重なってしまうのを避けるようにする、ということが考えられる。
【０１０１】
しかし、生成方法の種類をあらかじめ複数用意しておくのは煩雑である上、伸張度が大きい場合には用意された種類の生成方法を全て使い切ってしまい、一度生成した新規ピッチ波形と同一の新規ピッチ波形を再び生成せざるを得ず、上述の要請に応えられない可能性がある。
【０１０２】
そこで、本実施例においては、より簡便かつ確実な方法を採用する。前述のとおり、元のピッチ波形１個１個の長さは、オーダーとしては同程度ではあるものの、一般には、異なることが期待される。特に隣接ピッチ波形同士で、長さが同一になる可能性はほぼゼロである。本実施例に係る音声処理装置１１０１の処理対象としては主として人の音声が想定されているのであって、人の音声が長時間に渡り定常状態を保つことは考えにくいからである。
【０１０３】
本実施例では、このような、元の隣接ピッチ波形同士の長さが異なる性質を利用する。すなわち、新規ピッチ波形の生成方法としては、元の２つのピッチ波形の重み付け加算を行うという、上述の方法１種類だけにする。これにより、処理が簡潔になる。そして、新規ピッチ波形相互に差をつけなければならないという要請を満たすためには、生成された新規ピッチ波形を時間軸方向に何通りも伸縮することにより、同じ新規ピッチ波形が生じないようにする。
【０１０４】
新規ピッチ波形を時間軸方向に伸縮するということは、波形の長さを変化させるということである。そこで次は、どのような範囲で変化させるか、という点が問題となる。伸張後の音声の品質の劣化を最小限にするためには、明らかに、元の２つのピッチ波形の長さの間に収まる範囲で必要な個数の長さを選ぶのが適切である。
【０１０５】
本実施例でもそのような方法で複数の新規ピッチ波形を生成する。すなわち、ｍ個の新規ピッチ波形を生成する場合（ステップＳ１５０９）、まず、２倍以下伸張時（図３、図４のステップＳ１４１１）と同じく重み付け加算により新たなピッチ波形Ｄjを生成する。このＤjを時間軸上で伸縮することにより、ｍ個のバリエーションのピッチ波形
Ｄ1、j＝｛ｄ1、j、0、・・・、ｄ1、j、pl(j)-1｝、・・・、Ｄm、j＝｛ｄm、j、0、・・・、ｄm、j、pl(j+1)-1｝
を生成する。すなわち、元の２つの隣接ピッチ波形Ｓjの長さｐｌ（ｊ）とＳj+1の長さｐｌ（ｊ＋１）とが前述のようにほぼ確実に異なることに着目し、Ｄ1、j、・・・、Ｄm、jの長さを、ｐｌ（ｊ）からｐｌ（ｊ＋１）までのｍ段階の長さに調節する。ｐｌ（ｊ）からｐｌ（ｊ＋１）の間をどのようにｍ段階に分割するかについては、本実施例では最も簡潔に、比例的に分割するものとする。すなわち、ｉ番目（１≦ｉ≦ｍ）の新規ピッチ波形Ｄi、jの長さを、
ｐｌ（ｊ）＋［｛ｐｌ（ｊ＋１）−ｐｌ（ｊ）｝×（ｉ−１）／（ｍ−１）〕
とする。
【０１０６】
挿入する複数の新規ピッチ波形の長さを、このように、元のピッチ波形のうち時間的に過去のピッチ波形の長さから、時間的に未来のピッチ波形の長さにまで、漸増又は漸減させることには、処理が簡単になるばかりでなく、挿入による音声信号の変化が緩やかであるために伸張後の音声の品質の劣化を最小限に抑える利点もあると考えられる。
【０１０７】
なお、ピッチ波形の長さを変化させるに方法は、様々なものが考えられるが、サンプリング位置の変更を行うのが簡便である。この方法については、後に詳しく説明する。
【０１０８】
結局、元の２つのピッチ波形ＳjとＳj+1とから、ｍ個の新しいピッチ波形Ｄi、j（１≦ｉ≦ｍ）が生成される（ステップＳ１５０９）。Ｄ1、jの長さはＳｊと同じくｐｌ（ｊ）であり、Ｄm、jの長さはＳj+1と同じくｐｌ（ｊ＋１）であり、Ｄ2、j〜Ｄm-1、jの長さはｐｌ（ｊ）とｐｌ（ｊ＋１）との間である。
【０１０９】
ステップＳ１５０９においてｍ個の新規ピッチ波形が生成されたら、これらを、この時点での音声伸張結果であるＳmagnifiedに付加してＳmagnifiedを更新する。Ｓmagnifiedは、伸張処理の際に用意されている（図４のステップＳ１４０１）、伸張信号の候補である。より具体的には、制御部１１２１は、記憶部からピッチ波形列Ｓmagnifiedを取り出し、Ｄ1、j、・・・、Ｄm、jをＳjとＳj+1との間に挿入することにより、Ｓmagnified＝｛Ｓ0、・・・、Ｓj、Ｄ1、j、・・・、Ｄm、j、Ｓj+1、・・・、ＳN-1｝のように更新し、記憶部１１３７に保存する。また、同時に、目標長との比較に役立てるために、Ｓmagnifiedの長さを測っておく（ステップＳ１５１１）。
【０１１０】
上述のように、ｍ回目の全ピッチ波形間巡回においてｍ個の新規ピッチ波形を生成し適切な位置に挿入する際には、前回のピッチ波形巡回において該位置に挿入された（ｍ−１）個の新規波形は、破棄される。一方、この時点での挿入対象になっていない境界にすでに挿入されている（ｍ−１）個またはｍ個の新規ピッチ波形は、そのままにしておく。
【０１１１】
すると、挿入されたピッチ波形が１個増えたことになるため、音声信号Ｓmagnifiedは、ピッチ波形の長さ１個ぶんだけ伸張したことになる。そこで、ステップＳ１５１１にて測っておいたＳmagnifiedの長さが、この時点で伸張度の目標値に達しているか否かを判別し（ステップＳ１５１３）、達している場合には（ステップＳ１５１３；Ｙｅｓ）、伸張処理を完了し、Ｓmagnifiedを最終的な伸張結果とする。
【０１１２】
目標値に達していない場合（ステップＳ１５１３；Ｎｏ）、次に、優先順位のカウンタであるｋが、元のピッチ波形の個数Ｎより小さいかどうかを判別する。小さい場合には（ステップＳ１５１５；Ｙｅｓ）、まだｍ個の新規波形を挿入していない境界が存在するので、ｋを１だけ増やして（ステップＳ１５１９）、次の優先順位の挿入箇所を検索する処理に戻る（ステップＳ１５０５）。
【０１１３】
一方、ｋがＮになった場合には（ステップＳ１５１５；Ｎｏ）、全ての境界にｍ個の新規波形を挿入し終えたので、ｍを１だけ増加させて（ステップＳ１５１７）、全ピッチ波形間を乖離度により定まる優先順に巡回する操作を繰り返す（ステップＳ１５０３）。
【０１１４】
全ピッチ波形間巡回を繰り返すことにより、すなわち、ｍを大きくしていくことにより、原理的には、Ｓmagnifiedをいくらでも長くすることができる。よって、以上の手順により、処理は無限ループに陥ることなく、指定された伸張度に必ず達し、処理は完了する。
【０１１５】
（実施形態２）
本発明に係る実施形態２を、以下、図面を参照して説明する。実施形態２に係る音声処理装置は、音声縮小装置である。その構成は、図１に示す実施形態１に係る音声処理装置とほぼ同じであるが、音声伸張処理の代わりに音声縮小処理を行う。
【０１１６】
波形縮小処理において、制御部１１２１は、処理対象である元の音声波形データをピッチ波形単位に分割する。そして、連続する２つのピッチ波形に基づいて、新たなピッチ波形を生成し、元の連続する２つのピッチ波形を、該新たなピッチ波形で置き換えることにより、ピッチ波形の長さ１個ぶんずつ、音声波形データを縮小していく。かかる置換動作の繰り返しにより、最終的には、指定の長さとなるような音声波形データが生成される。
【０１１７】
波形縮小のためには、ピッチ波形を適宜間引きするのが最も簡単ではあるが、単に間引きしただけだと、間引きした結果隣り合うことになったピッチ波形同士の違いが大きすぎる箇所が生じる可能性がある。すると音声信号に不連続部分が生じたのと同様な効果が生じ、その結果、縮小後の音声信号の品質劣化につながる可能性がある。
【０１１８】
単なる間引きではなく置換を行うことにした以上、置換のために新たに生成されるピッチ波形は、それに置換される２個のピッチ波形の一方又は両方となんらかの相関を有していることが望ましいのは明らかである。仮に、とり除かれる２個のピッチ波形と全く相関のない唐突な形状のピッチ波形を配置すれば、その部分で音声信号に滑らかさが失われ、音質が劣化してしまう。
【０１１９】
置換のために生成された新たなピッチ波形に、置換される２個の既存のピッチ波形の一方又は両方との相関関係を有せしめるためには、例えば、２個の既存のピッチ波形のうちどちらかを単にコピーしたものを、新たなピッチ波形とすればよい。
【０１２０】
しかし、このようにすると、新たなピッチ波形を割り込ませた結果、全く同一のピッチ波形が連続することになってしまう。一般に、全く同一の波形が連続すると、不自然な音声になってしまう。
【０１２１】
以上のように、ピッチ波形単位での縮小に際しては、元の２つのピッチ波形の代わりに、全く唐突な波形を配置するのは不適切であることはもちろんのこと、かかる２つのピッチ波形のいずれかの単なるコピーを配置することも、望ましくない。つまり、置換に用いるべき新たなピッチ波形は、該置換前には隣接関係にあった２個のピッチ波形の形状と比べて、全く無関係な形状であってはならないし、元の２個のピッチ波形の一方と似すぎていてもいけない。
【０１２２】
かかる要請に応えるべく、図６に示すように、本実施形態においては、新規ピッチ波形の配置予定先に存在している元の２つのピッチ波形（図６（ａ））をそれぞれ適当に波形変形処理し（図６（ｂ））、かかる処理済みの波形を重ね合わせることにより、元の２つのピッチ波形の中間的な形状を有する新規ピッチ波形を生成し、該新規ピッチ波形を元の２つのピッチ波形の代わりに配置して音声信号を縮小する（図６（ｃ））。
【０１２３】
上述の波形変形処理（図６（ｂ））は、その後の重ね合わせの結果生成される新規ピッチ波形（図６（ｃ））が元の２つのピッチ波形（図６（ａ））の中間的な形状となるものであれば任意の処理でかまわない。後に、重み付けを用いた簡単な処理方法を説明する。
【０１２４】
元のＮ個のピッチ波形の全ての境界に新たなピッチ波形をひとつずつ配置したとしても、縮小度は０．５倍にしかならない。０．５倍より短く縮小したい場合が問題となる。
【０１２５】
かかる問題は、実施形態１において、２倍以上の伸張処理には特別な配慮が必要となった問題と呼応関係にある。
【０１２６】
しかしながら、縮小処理は拡大処理と異なり、ピッチ波形の数を減らしていくだけの処理である。よって、実施形態１で問題となったような、複数生成した新規ピッチ波形を相互に異なるものとしなければならないという配慮は、不要である。
【０１２７】
したがって、本実施形態において行われる、０．５倍より短く縮小する処理は、実施形態１において行われた、２倍より長く縮小する処理よりも簡単である。すなわち、０．５倍より短く縮小することが指定されている場合には、０．５倍までの縮小を終えた直後の縮小音声信号を、音声信号の新たな初期値であると考え、同じ手順を繰り返せば足りる。２回繰り返せば０．２５倍、ｉ回繰り返せば（０．５）i倍、というように、原理的には、ピッチ波形長程度の長さにまで縮小することを要求しない限りは、いくらでも縮小することができる。
【０１２８】
ゆえに、以下では、元の音声信号を０．５倍まで縮小可能な手順だけを説明する。
【０１２９】
要求される縮小度が０．５倍より大きい場合には、元のピッチ波形のうちには、新規波形に置換されるものと、そのまま残るものとが、生じることになる。
【０１３０】
そこで、音声信号を指定された縮小度に達せしめるために、元のピッチ波形のうち、新規ピッチ波形に置換すべきものと、そのまま残すべきものとを判別する必要が生じる。
【０１３１】
そこで、実施形態１の場合と同様に、元のピッチ波形の境界毎に乖離度ｅj（０≦ｊ≦Ｎ−１）を計算し、この値が小さい境界を挟む２個のピッチ波形から優先して、新たなピッチ波形に置き換えることにする。そして、優先順位の高い所から順番に置換して音声信号を縮小していき、指定された縮小度まで縮小した時点で置換を止める、という方針を採る。
【０１３２】
乖離度が小さい箇所ほど、元々、音声信号の時間変化が緩やかであったといえる。そこで、かかる箇所ほど、置換という人為的操作を加えても音声信号の品質が劣化しづらいと期待される。このことから、乖離度に基づいて置換箇所の優先順位を決めることは、合理的であるといえる。
【０１３３】
本実施形態における音声信号縮小処理の具体的な手順を、図７を参照しつつ説明する。すでに図１の記憶部１１３７には、処理対象となる音声信号がＮ個のピッチ波形Ｓ0、・・・、ＳN-1に分割された状態で格納されているとする。各ピッチ波形Ｓj（０≦ｊ≦Ｎ−１）は、サンプリング時間間隔ｑで採取された波高の列｛ｓj、0、・・・、ｓj、pl(j)-1｝である。
【０１３４】
まず、制御部１１２１は、記憶部１１３７に、伸張後ピッチ波形を構成要素とする構造体Ｓreducedを格納する領域を確保する。そして、Ｓreducedの初期値Ｓinitとしては、記憶部１１３７に格納されている元の音声信号のピッチ波形の列｛Ｓ0、・・・、ＳN-1｝をそのままコピーしたものを採用する。すなわち、Ｓreduced＝Ｓinit＝｛Ｓ0、・・・、ＳN-1｝とする（ステップＳ１７０１）。
【０１３５】
新規波形の配置先の決定には、上述のように、隣接ピッチ波形乖離度ｅ0、・・・、ｅNを利用する。乖離度はあらかじめ計算されて記憶部１１３７に格納されているものとする。乖離度の小さいピッチ波形境界ほど優先して新規ピッチ波形を挿入することになるため、制御部１１２１は、乖離度を昇順にならべたときの順番を表す変数ｋをレジスタにカウンタとして格納することとし、初期値は１とする（ステップＳ１７０３）。乖離度ｅ0、・・・、ｅNを昇順に並べ替えたとき、ｅjがｋ番目になるとすれば、それは、ピッチ波形Ｓjとピッチ波形Ｓj+1との境界が、置換操作の対象としてはｋ番目の候補となることを意味する。
【０１３６】
次に、制御部１１２１は、記憶部１１３７に格納されている乖離度ｅ0、・・・、ｅNのうち、ｋ番目に小さいものを検索し、その添字を取り出し、ｋが格納されているレジスタとは別のカウンタ用レジスタにロードする（ステップ１７０５）。例えば、ｋ番目に小さい乖離度がｅjであれば、ｊをロードする。
【０１３７】
上述の例のとおり、ステップ１７０５においてｊがロードされたとすれば、ピッチ波形Ｓjとピッチ波形Ｓj+1とを新規ピッチ波形に置き換えることになる。新規ピッチ波形は、図６に示したとおり、元の２つのピッチ波形から生成される。よって、制御部１１２１は、プログラム格納部１１３５に格納されたプログラムに従って元の２つのピッチ波形に基づいた新規ピッチ波形を生成するに際して、まず、元となるピッチ波形ＳjとＳj+1とがどのようなものであるかを調べる必要がある。そこで、制御部１１２１は、汎用レジスタに、記憶部１１３７からピッチ波形ＳjとＳj+1とをロードする（ステップＳ１７０７）。
【０１３８】
次に、制御部１１２１は、ピッチ波形Ｓjの波高列データｓj、0、・・・、ｓj、pl(j)-1と、ピッチ波形Ｓj+1の波高列データｓj+1、0、・・・、ｓj+1、pl(j+1)-1と、から、新しいピッチ波形Ｄj＝｛ｄj、0、・・・、ｄj、pl(j)-1｝を、プログラム格納部１１３５に格納されたプログラムに従って生成する（Ｓ１７０９）。
【０１３９】
本実施形態においては、重み付け加算により、新たな波形を生成するものとする。重み付け加算には、計算が簡単であるという利点がある。
【０１４０】
具体的には、元の２つのピッチ波形に図６（ａ）の鎖線で示すような重み付けを行ってから、重ね合わせる。Ｓｊには、１から始まり０で終わる、直線的に変化する重み付け係数を乗じることにより、図６（ｂ）の左側に示すような波形
｛ｓj、0×（ｐｌ（ｊ）−１）／（ｐｌ（ｊ）−１）、ｓj、1×（ｐｌ（ｊ）−２）／（ｐｌ（ｊ）−１）、・・・、ｓj、pl(j)-1×０／（ｐｌ（ｊ）−１）｝
を生成する。一方、Ｓj+1には、０から始まり１で終わる、直線的に変化する重み付け係数を乗じることにより、図３（ｂ）の右側に示すような波形
｛ｓj+1、0×０／（ｐｌ（ｊ）−１）、ｓj+1、1×１／（ｐｌ（ｊ）−１）、・・・、ｓj+1、pl(j)-1×（ｐｌ（ｊ）−１）／（ｐｌ（ｊ）−１）｝
を生成する。その後、重み付けの完了した２つの波形を重ね合わせて新しいピッチ波形
Ｃj＝｛ｃj、i（０≦ｉ≦ｐｌ（ｊ）−１）｜ｃj、i＝｛ｓj、i×（ｐｌ（ｊ）−１−ｉ）＋ｓj+1、i×ｉ）／（ｐｌ（ｊ）−１）｝
を生成する。
【０１４１】
図６（ａ）の鎖線で示すような谷状の重み付け係数を用いる理由は、置換により取り除かれるピッチ波形Ｓj及びＳj+1のうち、置換されずに残されるピッチ波形Ｓj-1に近い部分及びＳj+2に近い部分の形状ほど重視して新しいピッチ波形を作れば、人工的な波形を挿入することにより生じ得る音声としての不自然さを最小限に止めることが期待できるからである。
【０１４２】
新しいピッチ波形Ｃjの生成が完了したら、図６（ｃ）に示すように、それを元のピッチ波形ＳjとＳj+1の代わりに配置することにより、音声信号の長さをｐｌ（ｊ＋１）だけ縮める。この操作を音声処理装置１１０１の内部で行うには、制御部１１２１は、記憶部１１３７からピッチ波形列Ｓreduced＝｛Ｓr、0、・・・、Ｓr、N-k｝を取り出す。なお、Ｓreducedは、（ｋ−１）回の置換を経ているためにピッチ波形の数が（ｋ−１）個減って、結局、合計（Ｎ−ｋ＋１）個のピッチ波形で構成されている。制御部１１２１は、ＳreducedからＳr、j+1を削除することにより第１暫定ピッチ波形列Ｓtmp＝｛Ｓr、0、・・・、Ｓr、j、Ｓr、j+2、・・・、Ｓr、N-k｝を生成した後、ＣjをＳr、jに代入する操作を行う。続いて、Ｓr、j+2の値をＳr、j+1に代入する操作、Ｓr、j+3の値をＳr、j+2に代入する操作、等を、Ｓr、N-kの値をＳr、N-k-1に代入するまで継続する。こうして第２暫定ピッチ波形列Ｓ’tmp＝｛Ｓr、0、・・・、Ｓr、N-k-1｝を生成し、ＳreducedをＳreduced＝Ｓ’tmpに更新する。さらに、制御部１１２１は、縮小の目標値との比較のために、この更新されたＳreducedの長さを測った後、更新されたＳreducedを記憶部１１３７に保存する（ステップＳ１７１１）。
【０１４３】
縮小の目標値は、縮小処理の開始の前に、例えばユーザが入力装置１１１１を用いて入力制御部１１３１を介して制御部１１２１に伝えてあるものとする。ステップＳ１７１１で測られたＳreducedの長さが、縮小の目標値に到達しているかどうかは、ステップＳ１７１３において判別される。目標値に到達しているならば（ステップＳ１７１３；Ｙｅｓ）、これ以上の縮小は不要なので、制御部１１２１は伸張処理を終了し、この時点におけるＳreducedを縮小の最終結果としてデータ記録部１１３９により記録媒体１１１５に記録したり、縮小処理完了の旨を出力制御部１１３３を介して出力装置１１１３に出力してユーザに知らせたりする。
【０１４４】
それに対して、ステップＳ１７１１更新されたＳreducedが目標長に到達していないと判別された場合（ステップＳ１７１３；Ｎｏ）、制御部１１２１はさらに新たなピッチ波形を生成して置換操作を行いＳreducedを縮めるべきであるから、新規ピッチ波形配置先となる境界を検索するステップＳ１７０５に戻る。このとき、まだ新規ピッチ波形の配置に関わっていない境界のうちから挿入の優先度が最も高い境界を選び出すために、優先順位を表すカウンタｋを１だけ増加する（ステップＳ１７１５）。
【０１４５】
前述のように、指定された縮小度としては０．５より大きい値を前提としているから、元のピッチ波形同士がなす境界の全てについて置換操作を行い尽くすまでに、Ｓreducedは必ず目標値に到達（ステップＳ１７１３；Ｙｅｓ）し、処理が完了する。
【０１４６】
前述のように、指定された縮小度が０．５より小さい場合であっても、図７に示す処理を繰り返すことにより、目標の長さにまで縮小することができる。
【０１４７】
（実施形態３）
本発明に係る実施形態３に係る装置として、実施形態１に係る装置の音声伸張機能と、実施形態２に係る装置の音声縮小機能とを、併せ持つ装置が挙げられる。つまり、本実施形態に係る装置は、音声伸縮装置である。
【０１４８】
その構成は、実施形態１及び２に係る装置と同じく、図１に示す音声処理装置１１０１である。ただし、プログラム格納部１１３５には、音声伸張と音声縮小の両方の処理に対応できるようなプログラムが格納されている。
【０１４９】
本実施形態に係る装置は、まず伸張か縮小かの判別を行い、伸張する場合であれば実施形態１に係る装置と同じ動作を行うものとし、縮小する場合であれば実施形態２に係る装置と同じ動作を行うものであるとする。
【０１５０】
ユーザは、図１に示す入力装置１１１１によって、伸張倍率または縮小倍率Ｍ（Ｍ＞０）を指定する。すると、制御部１１２１は、プログラム格納部１１３５に格納されたプログラムに従って、まず、Ｍが、０＜Ｍ＜１であるか、それともＭ＞１であるか、あるいはＭ＝１であるか、を判別する。次に、制御部１１２１は、０＜Ｍ＜１と判別した場合には、縮小処理が要求されていると判断して、本実施形態に係る装置を、実施形態２に係る装置として動作させる。Ｍ＞１と判別された場合には、実施形態１に係る装置により行われる伸張処理と同じ伸張処理が実行される。なお、Ｍ＝１である場合は、等倍であることを意味するから、処理対象である元の音声波形データを、そのままコピーしたものを処理結果とする。
【０１５１】
（ピッチ波形の長さの変更方法の例）
実施形態１に係る装置においては、２倍以上の伸張時に、ピッチ波形の長さを様々に変更する処理が必要とされる。かかるピッチ波形長の変更方法としては、既に述べたように、サンプリング位置の変更を行うのが簡便である。以下ではこの方法について、図８を参照して具体的に説明する。
【０１５２】
図８（ａ）は、ピッチ波形Ｓjの時間依存性を模式的に示したものである。横軸が時間を表す。サンプリング周期をｑとすると、ピッチ波形Ｓjは、図１の音声処理装置１１０１の内部では時間間隔ｑごとの波高の配列として表現され（図８（ａ）の白丸印）、ピッチ波形長はｐｌ（ｊ）×ｑである。
【０１５３】
サンプリング位置の変更によるピッチ波形長変更方法の原理は、ピッチ波形長を伸張する場合も、縮小する場合も、同じである。ここでは、縮小する場合を例に、説明する。
【０１５４】
サンプリング周期をｒ（ただし、ｒ＞ｑである。）として、再サンプリングを行うと仮定する。この新たなサンプリングが行われる時刻は、図８（ａ）の黒三角印で示され、新たなサンプリングにより採取される波形は、図８（ａ）の白四角印で示される。理解を容易にするため、さらに、ｒのｑに対する関係は、図８に示すようなものであるとする。すなわち、ピッチ波形Ｓｊの開始時刻から順に時系列を追ったときに、新たなサンプリング時刻が、元のサンプリング時刻からしだいに遅れていき、ピッチ波形Ｓｊが終了する時刻には、新旧のサンプリング時刻が一致するとする。
【０１５５】
新たなサンプリング周期ｒは、元来は、元のサンプリング周期ｑよりも長いのであるが、計算上は、新たなサンプリング周期ｒで採取された波高を、元のサンプリング周期ｑで採取されたものであるとして扱う。つまり、ピッチ波形長ｐｌ（ｊ）×ｑの長さのピッチ波形が新たなサンプリング周期ｒの波高配列で離散的に表現されている状態（図８（ｂ））から、波高配列はそのままにして、サンプリング周期がｑになったものとみなす処理を行う。この処理は、図８（ｂ）において、白四角印で表されたサンプリング点を白矢印のように移動させることを意味する。
【０１５６】
該移動の結果、図８（ｃ）に示す新たなピッチ波形が生成された。この図から明らかなように、新たなピッチ波形は、元のピッチ波形Ｓｊを、時間軸上で縮めたものである。そして、新たなピッチ波形の波形長ｐｌ’は、元のピッチ波形Ｓｊの波形長ｐ（ｊ）×ｑより、時間ｑだけ短縮されたものである。すなわち、
ｐｌ’＝｛ｐｌ（ｊ）−１｝×ｑ
である。あるいは、倍率にして
〔｛ｐｌ（ｊ）−１｝／｛ｐｌ（ｊ）｝〕
倍の縮小が完了したということもできる。
【０１５７】
以上では、元のピッチ波形に忠実に、再サンプリングを行うことを前提として説明してきた。しかし、音声処理装置１１０１の動作によっては、ピッチ波形Ｓjをひとたび周期ｑでサンプリングし終えた後、アナログデータとしてのピッチ波形Ｓjを破棄してしまう場合も考えられる。あるいは、破棄しないまでも、再サンプリングに要する手続を省略したい場合も考えられる。
【０１５８】
かかる場合には、元々サンプルのない位置での再サンプリングが必要となる。そのためには様々な方法が考えられるが、最も簡単な方法は、以下に説明する１次補間を用いる方法である。
【０１５９】
図８（ｄ）には、アナログデータとしてのピッチ波形が鎖線で描かれ、最初のサンプリングが行われた箇所を白丸印で表している。波形縮小処理のために、図８（ｄ）の黒三角印の時刻で再サンプリングをしようとしたときに、アナログデータとしてのピッチ波形が既に失われているか、または、もうアナログデータの処理を繰り返したくないとする。このとき、厳密な再サンプリングは、たまたま最初のサンプリング時刻と重なっている時刻を除き、もはや不可能である。よって、次善の策として、図８（ｄ）に示すように、例えば元の波高ａとｂとに挟まれ元のサンプリング間隔をｔ：ｕに内分する時刻における再サンプリング値が必要になったときには、１次補間
ａ＋〔｛（ｂ−ａ）×ｔ｝／（ｔ＋ｕ）｝
により計算される値で近似する。
【０１６０】
なお、本発明は上記実施形態に限定されず、種々の変形及び応用が可能である。
例えば、実施形態１では、音声信号を２倍より大きく伸張する場合に、ピッチ波形長を少しずつ変えた複数の新規ピッチ波形長を生成することとした。一方、２倍より長くする伸張処理の場合であっても、実施形態２において半分以下の長さに縮めることが要求された場合に行われる処理によく似た処理を用いてもよい。つまり、２倍以上の伸張を要求された際には、いったん２倍までの伸張を行い、その伸張結果を再び元の音声データとみなして、２倍を限度とする伸張処理を再び行えば、ピッチ波形長の調整をせずに、本当の元の音声データからみて４倍までの伸張が可能になる。これを繰り返せば、原理的には、任意の倍率に伸張することができる。
【０１６１】
また、音声処理装置１１０１は、インターネット等の通信ネットワークを介して他の装置と通信を行う通信制御部をさらに備えてもよく、この通信制御部を介して、伸縮した音声波形データを他の装置に送信するようにしてもよい。また、この通信制御部を介して、音声波形データを他の装置から受信し、伸縮を行うようにしてもよい。
【０１６２】
あるいはまた、出力装置１１１３を音声出力が可能なものとし、伸縮処理の結果得られた音声信号をすぐに再生して、ユーザがその出来映えをその場で判断することができるようにしてもよい。
【０１６３】
なお、本発明の実施形態にかかる音声処理装置１１０１を実現するための情報処理装置は、必ずしも専用のシステムによらずとも、通常のコンピュータシステムを用いて実現可能である。例えば、汎用コンピュータに、上述の動作を実行するためのプログラムを格納したコンピュータ読み取り可能な記録媒体（ＦＤ、ＣＤ−ＲＯＭ、ＤＶＤ等）に格納して配布し、該プログラムをコンピュータにインストールすることにより、上述の処理を実行する音声処理装置１１０１を構成することができる。また、該プログラムをインターネット等の通信ネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えばコンピュータにダウンロード等するようにしてもよい。
【０１６４】
また、ＯＳが上述の処理の一部を分担する場合、あるいは、ＯＳが本願発明の構成要素の一部を構成するような場合には、記録媒体には、その部分を除いたプログラムを格納して配布してもよく、また、コンピュータにダウンロード等してもよい。この場合も、その記録媒体には、コンピュータが実行する各機能または各ステップを実行するためのプログラムが格納されている。
【図面の簡単な説明】
【０１６５】
【図１】本発明の実施形態１にかかる音声処理装置のブロック図である。
【図２】処理対象である音声波形がピッチ波形に時分割されている状態を示す図である。
【図３】連続する２つのピッチ波形に基づいて新規ピッチ波形を生成し、それを挿入する様子を示す図である。
【図４】本発明の実施形態１に係る音声伸張処理のうち、主に２倍より小さい伸張が要求されている場合の処理を説明するためのフローチャートである。
【図５】本発明の実施形態１に係る音声伸張処理のうち、２倍より大きい伸張が要求されている場合の処理を説明するためのフローチャートである。
【図６】連続する２つのピッチ波形に基づいて新規ピッチ波形を生成し、それにより元の２つのピッチ波形を置換する様子を示す図である。
【図７】本発明の実施形態２に係る音声縮小処理を説明するためのフローチャートである。
【図８】サンプリング点の変更と１次補間とによりピッチ波形の長さを変更する様子を示す図である。
【符号の説明】
【０１６６】
１１０１・・・音声処理装置、１１１１・・・入力装置、１１１３・・・出力装置、１１１５・・・記録媒体、１１２１・・・制御部、１１３１・・・入力制御部、１１３３・・・出力制御部、１１３５・・・プログラム格納部、１１３７・・・記憶部、１１３９・・・データ記録部
【図１】
2008046160.tif 000003
【図２】
2008046160.tif 000004
【図３】
2008046160.tif 000005
【図４】
2008046160.tif 000006
【図５】
2008046160.tif 000007
【図６】
2008046160.tif 000008
【図７】
2008046160.tif 000009
【図８】
2008046160.tif 000010