JP4228630B2 - Speech coding apparatus and speech coding program - Google Patents

Speech coding apparatus and speech coding program Download PDF

Info

Publication number
JP4228630B2
JP4228630B2 JP2002255476A JP2002255476A JP4228630B2 JP 4228630 B2 JP4228630 B2 JP 4228630B2 JP 2002255476 A JP2002255476 A JP 2002255476A JP 2002255476 A JP2002255476 A JP 2002255476A JP 4228630 B2 JP4228630 B2 JP 4228630B2
Authority
JP
Japan
Prior art keywords
impulse response
elements
calculation
parallel
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002255476A
Other languages
Japanese (ja)
Other versions
JP2004093946A (en
Inventor
圭 見市
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2002255476A priority Critical patent/JP4228630B2/en
Publication of JP2004093946A publication Critical patent/JP2004093946A/en
Application granted granted Critical
Publication of JP4228630B2 publication Critical patent/JP4228630B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To obtain a speech encoding system which can perform encoding of speech signals in a relatively short time even with a processor of relatively low operating frequencies and a speech encoding program. <P>SOLUTION: A region 11 is the region where the significant computation result of the autocorrelation matrix of the impulse response of an acoustic feeling weighted composition filter is set. A region 12 is the region which is the symmetric matrix of the region 11. A region 13 is the region where the result of an imaginary computation is are set. The operations are executed by allocating parallel calculation means to the autocorrelation matrix calculation of the impulse response of the acoustic feeling weighted composition filter at high frequency. For that reason, the impulse response elements of the acoustic feeling weighted composition filter are continuously stored in a memory region. Furthermore, the impulse response elements of the virtual acoustic feeling weighted composition filter are stored in continuation to the impulse response elements of the acoustic feeling weighted composition filter. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は音声符号化装置および音声符号化プログラムに係わり、たとえば電話端末や電話交換機で音声の符号化を行う音声符号化装置および音声符号化プログラムに関する。
【0002】
【従来の技術】
近年、携帯電話機の爆発的な普及に伴って伝送路を流れる音声トラフィック量が急激に増大している。この増大しているトラフィックに対応するために通信事業者は伝送設備の増強を行っている。しかしながら伝送設備の増強には多大なコストが必要であるため無尽蔵に増強することはできない。
【0003】
また近年の通信の分野ではアナログ信号を送受するアナログ通信に代わり、ディジタル信号を送受するディジタル通信が主流である。ディジタル通信は、雑音の影響を受けにくい点や複数の信号を多重しやすい点でアナログ通信よりも優れているため急速に普及してきた。電話機を用いた電話システムにおいてもこの傾向は同じであり、アナログ信号である音声信号をディジタル化して送受することが主流となっている。
【0004】
アナログ信号をディジタル信号に変換するためには標本化と量子化および符号化が必要である。標本化とは時間的に連続な信号波形を時間的に離れた時点の値で表現することである。また量子化とは波形の値を有限個の値の中の1つで近似的に表現することである。そして符号化とは具体的にどのように表現するかということで、通常は2進数で表現する。
【0005】
アナログ信号である音声信号をディジタル化する技術としては、従来より波形の振幅をサンプリング定理に基づいて量子化する線形パルス符号化(Pulse Code Modulation:PCM)技術がよく知られている。この線形パルス符号化はアナログ信号を一様なステップで量子化するもので、通常“A/D変換”と呼ばれているものと同じである。
【0006】
電話端末を用いて通話を行うシステムに対して利用者が求める大きなポイントは、“誰とでもいつでもつながること”と“明瞭に会話ができること”である。このうちの“誰とでもいつでもつながること”を必ず実現しようとすると、すべての電話端末同士の接続の組み合わせに対する伝送路を予め確保しておく必要がある。しかしこれは膨大な組み合わせ数となる上に実際に通話をしていない場合であっても伝送路を占有することになり、経済性を大きく損ねることになるため現実的ではない。そこで伝送路を予め確保しておくことは行わずに、接続が必要となってから空いている伝送路を探してこれを確保して使用するようにしている。つまり伝送路は複数の利用者の共有資源という位置付けになる。したがって他の利用者によって伝送路が完全に占有されている場合には新たな接続を確立させることができないが、伝送路に空きが残っていれば新たな接続を確立することができる。つまりそれぞれの接続を確立するために必要な伝送路の占有量を小さくすることができれば、数多くの接続を同時に確立することができる。そこでそれぞれの接続が占有する伝送路の容量を小さくする技術が検討されている。
【0007】
また“明瞭に会話ができること”が実現されるためには互いの音声信号ができるだけ元の信号から変化することなく相手に届けられる必要がある。音声信号を伝送のためにディジタル化するにあたって、その音声信号の変化を小さくするためには標本化と量子化と符号化をできるだけ細やかに行う必要がある。標本化の細やかさは時間的な離れ度合いを小さくすることで実現できる。つまりこれは標本化の周期を短くすることになる。また量子化の細やかさは波形の値を表現する有限個の近似的な値の変化ステップを小さくするとともに値の個数を多くすることで実現できる。つまり量子化のステップを小さくするとともに、近似値の範囲と近似値を表現する符号の取りうる値の範囲を大きくすることが必要である。
【0008】
標本化の周期を短くすることによって単位時間当たりの標本の数は増加する。また量子化のステップを小さくして近似値を表わす符号の範囲を大きくすることによって符号の桁数あるいはビット数も増大する。伝送する情報の量は単位時間当たりの標本の数と符号の桁数あるいはビット数の積に比例するので、“明瞭に会話できること”を実現しようとすると伝送する情報の量が増大することになる。ところがこれは“誰とでもいつでもつながること”を実現するために必要である“それぞれの接続を確立するために必要な伝送路の占有量を小さくすること”とは相反した要求である。
【0009】
そこでこれらの相反した要求を同時に満足するために、増大した音声情報を伝送する際に情報量を小さくする音声符号化の技術が検討されている。
【0010】
なお伝送する音声の情報量を小さくするためには、音声符号化を行う前に不必要な情報を伝送する情報に入れ込まないことも重要である。標本化周期については音声情報をディジタル化するにあたって必要十分な細かさに限定すれば伝送する情報量を小さくすることができる。一般に電話機で通話を行うのに必要な周波数帯域の上限は4キロヘルツと言われている。つまり4キロヘルツの信号まで再現可能な標本化周期で標本化を実施すればよい。この場合の標本化周期はシャノンの定理により2倍の8キロヘルツである。
【0011】
量子化については音声振幅の統計的な性質を用いて振幅を対数変換して圧縮する技術がある。対数変換の公式としてはμ則またはA則と呼ばれる式が広く活用されている。この対数圧縮によって同じ量子化ステップ数で音声波形を細やかに量子化することができる。更に音声振幅の変化の特性に合わせて量子化のステップ幅を時間的に変化させる適応量子化と呼ばれる技術がある。
【0012】
また音声信号には周期性があるため隣接した標本間で相関がある他に、離れた標本間でも相関があるという特性がある。隣接した標本間の差分、あるいはその相関を利用して予測した値と実際の標本値の予測差分を符号化することによって情報を圧縮することができる。単純に差分を伝送する技術として差分量子化(Differentioal Pulse Code Modulation:DPCM)技術がある。この差分量子化技術の中には、差分を“0”あるいは“1”のいずれかしか取り得ないものがある。これはデルタ変調(Delta Modulation:DM)と呼ばれるものであり、量子化した直前のデータと現データとの差分が一定の値を超えている場合には“1”を伝送し、それ以外の場合には“0”を伝送する。これにより伝送に必要な差分情報の情報量を非常に小さく抑えることができる。また予測差分を伝送する技術の例としては適応差分量子化(Adaptive Differntioal Pulse Code Modulation:ADPCM)技術がある。適応差分量子化技術を用いて符号化したデータは元データの半分程度にまで圧縮することができる。
【0013】
また、音声波形や音声の周波数成分情報等をディジタル化する際にそれぞれの標本化値ごとに量子化せずに複数の標本化値の組をまとめて1個の符号で表現する量子化技術がある。これはベクトル量子化と呼ばれるもので、複数の情報をまとめて1個の符号で表現することによって情報を圧縮することができる。
【0014】
これまで説明した差分量子化技術や適応差分量子化技術は、音声信号の波形そのものをできるだけ忠実に表現しようとする技術である。これとは別に音声というものがいかにして生成されるのかをモデル化して、この生成モデルに基づいて音声をパラメータに変換して表現する“分析合成技術”と呼ばれる技術がある。音声の分析合成技術を用いた通信では音声信号波形そのものを伝送する代わりに音声を合成して作り出す際に必要な音源の性質を表わす情報と、その音源の出力信号に周波数フィルタ処理を行う際の周波数フィルタの性質を表わす情報を符号化して伝送する。この符号化された信号を受信した側では符号を復号して元の情報に変換した後、音源の性質を表わす情報と周波数フィルタの性質を表わす情報を基に音声信号を合成して再現する。
【0015】
音声は声帯が振動することによって生じる周期性をもった有声音と、空気の流れによって生じる周期性をもたない無声音で構成されている。つまりこれらの周期性をもった音源情報と周期性を持たない音源情報の両方を伝送する必要がある。また人の声帯で生成された空気の振動は、のどや口の中といった太さの異なる複数の管を通った後に放射される。これは声帯で生成した信号に複数の周波数フィルタをかけて出力信号を得ていることに相当する。そこでこの信号通過経路を複数の周波数フィルタを合成した“合成フィルタ”と考える。この合成フィルタの性質は複数の周波数についての、その周波数フィルタの入出力特性で表わすことができる。
【0016】
人の声が言葉として聞き分けられているということは、音声信号が時間の経過とともに変化しておりその変化を感じ取っていることになる。つまりこの音声信号の音源の性質とフィルタの性質も時間の経過とともに変化しており一様ではない。したがって分析合成技術を用いた音声信号の伝送においても、この時間の経過とともに変化した、それぞれ異なった情報を逐一伝送する必要がある。
【0017】
音声の分析合成技術の例としてマルチパルス符号化と呼ばれる技術がある。マルチパルス符号化技術は入力音声信号を分析して、この入力音声信号を構成する周波数帯ごとの強弱を示すスペクトル包絡情報と音源情報とを抽出して伝送し、受信側でこの情報を元に音声を合成する技術である。スペクトル包絡情報は一般的に線形予測分析を用いて求められる。また、ここでの音源情報は入力音声信号からスペクトル包絡情報を除いた残差信号と呼ばれるもので、振幅と位置に自由度のある複数パルスからなるパルス列によって表わされる。このマルチパルス符号化技術を用いて伝送効率を改善する提案には、たとえば特開平4−84200公報に示されたものがある。また、音声の分析合成技術の他の例として符号励振線形予測(Code Excited Linear Prediction Audio Codes:CELP)と呼ばれる技術がある。
【0018】
図7は、符号励振線形予測技術を用いた装置の例として2台の携帯電話端末の音声入出力部分を表わしたものである。ここでは符号励振線形予測技術の概要を説明する。通常それぞれの携帯電話端末には音声を符号化する音声符号化装置と符号化された信号を音声に復号する音声復号化装置の両方が搭載されている。しかし、ここでは説明を容易にするために音声を送信する側に音声符号化装置101のみを示し、音声を受信する側に音声復号化装置102のみを示している。音声を送信する側では利用者が発した音声を携帯電話端末のマイクロフォン103で検出し、これを電気信号に変換して音声符号化装置101の音声入力手段104に入力する。音声入力手段104は音声を所定の周期で分割した音声信号105を生成する。分割された音声信号105は、線形予測分析器106に入力され線形予測分析が実施されて周波数フィルタ特性107が求められ、合成フィルタ108に入力される。この周波数フィルタ特性107に基づいて合成フィルタ108は、入力された音声信号105のもつフィルタ特性の反映された周波数フィルタとして動作する。また、合成フィルタ108には音源として用いることができる信号のパターンが各種格納されている符号帳109から、聴感重み付け誤差最小化器110からの制御信号に従って、音源に相当する音源信号111が入力される。符号帳109にはこの音源として用いることができる信号のパターンが各種格納されており、コードブックとも呼ばれている。また、符号帳109に格納された各種信号のパターンには、それぞれ符号が付与されている。入力された音源信号111は、周波数フィルタ特性107が反映された合成音声信号112となる。また音声信号105は、加算器113にも入力され合成音声信号112と加算される。この時、合成音声信号112を加算器113の負の入力とすることによって、加算器113からの出力信号は、音声信号105と合成音声信号112との差分信号114となる。この差分信号114が最小となる符号帳の出力を探索するために、聴感重み付け誤差最小化器110は、符号帳109に対して新たな音源信号111の出力を要求する。この要求を繰り返して、差分信号114が最小となった際に符号帳109から出力された音源信号111に付与されていた符号115が、伝送路116に対して出力される。また、これと併せて線形予測分析器106から出力された周波数フィルタ特性107が伝送路116に対して出力される。
【0019】
音声を受信する側の音声復号化装置102は、符号帳117と合成フィルタ118と合成の完了した音声に周波数ごとの強弱を付加するポストフィルタ119で構成されている。伝送路116から受信した符号121は、音声を送信する側が送信した符号115と同一のものである。また、伝送路116から受信した周波数フィルタ特性122は、音声を送信する側が送信した周波数フィルタ特性107と同一のものである。音声復号化装置102は伝送路116から受信した符号121を符号帳117に入力して得た音源信号123を合成フィルタ118に入力する。符号帳117は、音声を送信する側がもつ符号帳109と同一のものであり、同じ符号が符号帳に入力された場合に出力される音源信号は同じものとなる。この音源信号123は、伝送路116から受信した周波数フィルタ特性122に従って周波数入出力特性が調整された合成フィルタ118に入力されて、合成音声124が出力される。この合成音声124はポストフィルタ119に入力されて周波数ごとの強弱を加えられて聴感上聞き取り易い合成音声125に変換された後スピーカ120から出力されるようになっている。
【0020】
このように符号励振線形予測では、あらかじめ種々の音源のパターンを蓄えておきそれぞれに符号を割り当てておく。音声符号化装置に入力された音声信号は一定の時間間隔ごとに区切られて、線形予測分析によって周波数スペクトル包絡を求め、これに基づいた合成フィルタの係数が求められる。符号帳の各音源のパターンに対して、この合成フィルタの係数を入力パラメータとした合成フィルタ処理を行い合成音声を生成する。この合成音声と入力された音声信号を比較して、最も誤差の小さかった音源のパターンに割り当てられている符号を入力された音声信号に対応する符号として用いる。符号帳のもつ音源のパターンを細やかにかつ種類を豊富に作成する程、入力音声信号との類似度の高いパターンを選択できる可能性が高まり、音声の再現性も高まる。しかし膨大な数のパターンを作成して、これを音声符号化装置に記憶させることは装置の記憶媒体の増大と比較処理量の増大に繋がるため限度がある。そこでこのパターンを代数的に生成して、少ない記憶媒体量で多種のパターンを代替する技術が提案されている。この技術を用いた符号励振線形予測は代数符号励振線形予測(Algebraic Code Excited Linear Prediction:ACELP)と呼ばれ、携帯電話システムにおいて利用されている。この代数符号励振線形予測を更に少ない記憶媒体量で実現する提案は、たとえば特表平10−502191に示されている。
【0021】
音声信号を符号化する技術とこれを元に戻す復号化技術は、対になったものが詳細に規定されていなければ正しく元の音声信号を再現することができない。またこの符号化技術を多くの機器に普及させるためには、その詳細な仕様が広く認知される必要がある。そこで符号化技術は標準化組織のもとで詳細が規定されて、勧告として公開されている。このうち代数符号励振線形予測に関しては、国際的な標準化組織である“ITU”(International Telecommunication Union)において“ITU−勧告G723.1低レート方式(5.3kbit/sec)”として勧告化されている。また、別の国際的な標準化組織である“3GPP”(3rd Generation Partnership Project)において、“GSM−AMR”(Global System for Mobile Communications -Adaptive Multi-Rate Speech Transcoding)として勧告化されている。これらは代数符号励振線形予測を原理とする符号化技術であり大幅に符号量を削減しながら高品質な音声を再生できる技術として知られている。
【0022】
これらの音声信号の符号化技術は電話システムにおいて利用者が持つ携帯電話端末で用いられる他に、電話端末間の接続を仲介する電話交換機にも用いられる。電話交換機においては、異なった音声符号化技術を採用している電話端末同士の通話を成立させるために符号化された音声信号の相互変換を行う。そこで、異なった音声符号化技術間で共通に取り扱える信号に変換するために音声の符号化と復号化を行う必要がある。電話交換機は同時に多数の電話端末間の接続を仲介する装置であるため、音声符号化の相互変換を行う回路は同時に多数の電話端末に対応できるものでなければならない。
【0023】
図8は、符号励振線形予測技術を用いた音声符号化装置の要部を表わしたものである。この音声符号化装置を用いて、符号励振線形予測技術の概要を説明する。この音声符号化装置はフィルタ部位131と音源部位132と比較器部位133で構成されている。フレーム分割された音声信号134はまずフィルタ部位131に入力されて線形予測分析および量子化器135によって線形予測分析が行われて周波数フィルタ特性が求められた後、この周波数フィルタ特性が量子化される。量子化された周波数フィルタ特性は合成フィルタ136に入力されて入力音声のもつフィルタ特性をもったフィルタが形成される。
【0024】
音源部位132は、音声のもつ声の高さに相当する周期成分の信号を生成する音源となる適応コードブック137と音声のもつ周期成分以外の信号を生成する音源となる雑音コードブック138をもつ。そしてこれらの音源から出力された信号の振幅を制御するためのゲインコードブック139と、適応コードブック137の生成した信号の振幅を調整する適応コードブック信号増幅器140と、雑音コードブック138の生成した信号の振幅を調整する雑音コードブック信号増幅器141をもつ。振幅の調整されたこれらの音源信号は、音源加算器142によって加算された後、フィルタ部位131の合成フィルタ136に入力されて周波数ごとの強弱を付加された合成音声143として生成される。
【0025】
比較器部位133には音声信号134と合成音声143が入力されて、加算器144で加算される。ここで合成信号143を負の形式で入力することで差分を求める。この差分に対して聴感重み付けフィルタ145によって、聴感上の聞こえにくい周波数成分を強めるとともに、聴感上聞こえやすい周波数成分を弱めるフィルタ処理を行う。この処理によって人の聴感上で冗長な情報を削減し情報量を低減させる。この後誤差最小化器146は、合成音声143と音声信号134の最小二乗誤差を算出することで誤差を求めると共に、音源部位132のそれぞれのコードブックに対して別の信号出力を実行させる。この処理を繰り返し実行し、誤差が最小となった際のコードブックからの出力信号が目標の信号であるとみなし、この信号に付与されている符号を音声符号化装置の出力として得る。この、コードブックから目標の出力信号を見つけ出す処理は“パターン探索”、“パルス探索”あるいは“コードブック探索”等と呼ばれている。
【0026】
図9は、人の聴感上で知覚されにくい情報を省き冗長な情報を削除する周波数ごとの強弱処理を行う聴感重み付けを実施した聴感重み付け音声信号と聴感重み付け合成音声信号とこれら2つの音声信号の誤差信号をベクトルで表わしたものである。ここで聴感重み付け音声信号151をr、聴感重み付け合成音声信号152をGHνξとすると、誤差信号153はr−GHνξとして表わすことができる。ここで音声符号化に関する勧告の一例である“ITU勧告G723.1”の記述を用いて代数符号励振線形予測で行うパターン探索原理を詳しく説明する。パターン探索は入力音声信号と合成音声信号の平均二乗誤差Eξを求めて、この誤差が最小となるパターンを目的のパターンとするものである。この平均二乗誤差を求める演算を次の(1)式に示す。
【数1】

Figure 0004228630
【0027】
ここで、聴感重み付け音声信号rと聴感重み付け合成音声信号GHvξの誤差を最小にすることは、(1)式の平均二乗誤差Eξを最小にすることと同じである。(1)式の右辺を展開して、次の(2)式に表わす。
【0028】
ξ=(r)×(r−GHνξ)−(GHνξ)×(r−GHνξ)……(2)
【0029】
この時に誤差が最小となる条件を図9で誤差信号153を表わしている“r−GHνξ”で考えると、聴感重み付け合成音声信号152と誤差信号153のなす角度が直角であるとき誤差が最小となることがわかる。これはベクトルが直交する時それらのベクトルの内積が“0”である原理に基づいている。したがって、誤差が最小であるとき(2)式の第2項は“0”となる。ここで、GHνξのGはコードブックの各パターンから生成される音源信号に与える利得に相当するコードブック利得を示す。また、νξはインデクスξにおけるパターンを表わす代数的符号語を示す。また、Hは音声信号線形予測分析して求めたスペクトル包絡情報に聴感重み付けを行った合成フィルタに、広帯域の周波数成分を均等に含むインパルス信号を入力した際の応答を示す合成フィルタのインパルス応答を要素とする行列を示す。これはインパルス応答要素h(n)を、対角がh(0)、低位の対角がh(1)、・・・、h(L−1)の下三角テプリッツ畳み込み行列の形式にしたものである。ここでnは、入力音声信号を一定時間で区切って標本化した際の各標本のインデクス値と等しいものである。また、Lは入力音声を一定時間に区切った1区間内の標本の数である。テプリッツ行列とは、対称でかつ対角線に平行な線上の要素がすべて等しい性質をもっている行列をいう。また、下三角畳み込みとは行列の対角線より下の三角形の領域に要素を設定して、それ以外の領域には“0”が設定されていることをいう。
【0030】
直行したベクトルの内積が“0”であるという原理に基づき、(2)式の第2項を“0”とする。更に平均二乗誤差“Eξ=0”として、式の変形を行う。ここでパラメータを振ることができる唯一の要素であるコードブック利得Gについて(2)式を微分する。さらにこれをコードブック利得Gに関してまとめると、次の(3)式のように表わすことができる。
【数2】
Figure 0004228630
【0031】
これを(1)式に代入すると平均二乗誤差Eξは、次の(4)式のように求められる。
【数3】
Figure 0004228630
【0032】
この平均二乗誤差Eξを最小化するには、(4)式の第2項を最大化すればよい。そこで(4)式の第2項をτξとすると、次の(5)式が求められる。
【数4】
Figure 0004228630
【0033】
ここでは(4)式からこの(5)式を求めるにあたり、次の(6)式を用いた。ここでdは聴感重み付け音声信号と聴感重み付け合成フィルタのインパルス応答の相関を表わすベクトルである。
【0034】
d=HTr ……(6)
【0035】
また、(4)式から(5)式を求めるにあたり、次の(7)式を用いる。Φは聴感重み付け合成フィルタのインパルス応答の共分散行列である。
【0036】
Φ=HTH ……(7)
【0037】
そして、このベクトルdと行列Φをコードブック探索に先だって演算によって求める。このベクトルdのそれぞれの要素は、次の(8)式で表わすことができる。
【数5】
Figure 0004228630
【0038】
ここで“j”は“0”以上でかつ“N−1”以下である。また、“N”は聴感重み付け合成フィルタのインパルス応答の要素数であり、また音声をフレーム分割した際の1フレームあたりの標本数である。そして“n”と“i”と“j”は聴感重み付け合成フィルタのインパルス応答の要素と標本化された音声の要素と聴感重み付け合成フィルタのインパルス応答の共分散行列の要素を番号付けするための値である。
【0039】
また、行列Φ(i,j)は次の(9)式で表わすことができる。
【数6】
Figure 0004228630
【0040】
ここでiは“0”以上でかつ“N−1”以下であり、iはj以下である。
【0041】
この“ITU勧告G723.1”の例では、パターン探索は4本のパルスの位置と極性を探索する。そのために、それぞれのパルス位置に対応した4重のループ処理が実行される。そして、それぞれのループ処理によって新しいパルスの寄与分が加算される。そこで、(5)式の相関Cは以下の(10)式で表わすことができる。
【0042】
C=α0d[m0]+α1d[m1]+α2d[m2]+α3d[m3]……(10)
【0043】
ここで、mkはk番目のパルスの位置を示しており、αkはk番目のパルスの極性を示している。また、ベクトルdは(8)式にて求めた値である。
【0044】
ここで探索しているパルスは、振幅が零でないことを意味する“非零パルス”と呼ばれるものである。この非零パルスの1サブフレームあたりの本数は、それぞれの代数符号励振線形予測技術の種類ごとに定められている。そして、決められたパルス位置の複数の候補の中から演算によって最適な位置を決定する。一例として示した勧告G.723.1で規定されている2種類の伝送速度のうちの低ビットレートの場合、(10)式に4個の項がありそれぞれがパルスの位置を示しているように非零パルスの本数は最大4本である。また、勧告G.723.1ではフレーム長が30ミリ秒、フレームを4分割したサブフレーム長が7.5ミリ秒、サンプリング周波数が8キロヘルツなので、1サブフレーム中のサンプル数は“60”となる。非零パルス位置候補は、演算量削減のために偶数番目のみと考えている。非零パルス部分以外は計算をしないことにより、演算量を大幅に低減している。サンプル数“60”の中の偶数番目は30本あり、この中から4本を選ぶため、それぞれは8カ所の中から選ぶものとする。つまり4本の非零パルスはおのおの8カ所の位置候補のうち最適な場所を演算で選ぶ。しかし“8カ所”の4倍は“32カ所”となり、“30”を“2”超過している。この時の3番目と4番目のパルスはフレーム内に収まらずに、結果としてパルスの本数が減ることもあり得る。この時は、非零パルスの本数は4本よりも少なくなる。別の例として、勧告のGSM−AMRでは8種類の伝送速度(ビットレート)が存在し、非零パルスの本数は、一部重複するものを含めて6種類のパターンがある。
【0045】
(5)式における偶数パルス位置にパルスのあるパターンのベクトルのもつエネルギーを求める。このエネルギーεは、次の(11)式で表わすことができる。
【0046】
ε=Φ(m0,m0
+Φ(m1,m1)+2α0α1Φ(m0,m1
+Φ(m2,m2)+2[α0α2Φ(m0,m2)+α1α2Φ(m1,m2)]
+Φ(m3,m3)+2[α0α3Φ(m0,m3)+α1α3Φ(m1,m3)+α2α3Φ(m2,m3)] ……(11)
【0047】
演算量を削減するために、パルスは偶数番目に存在するものと仮定して計算を行い、奇数番目のパルス位置にパルスのあるパターンのベクトルについては、近似を用いて算出する。奇数番目のパルス位置にパルスのあるパターンのベクトルを計算するために、ベクトルd[j]と対称行列Φ(m1,m2)を変形して、新たに式s[j]を定義してベクトルd’[j]を構成する。
【0048】
s[2j]=s[2j+1]=sign(d[2j])
|d[2j]|>|d[2j+1]|の場合
s[2j]=s[2j+1]=sign(d[2j+1])
それ以外の場合 ……(12)
【0049】
d’[j]=d[j]×s[j] ……(13)
Φ’(i,j)=s[i]×s[j]×Φ(i,j) ……(14)
【0050】
ここで、(13)式におけるベクトルd’[j]と(14)式における対称行列Φ’(i,j)は、ベクトルd[j]と対称行列Φ(i,j)に、式s[j]を用いてパルスの極性要素を取り込んだものである。そのため、(10)式と(11)式では、すべてのパルスの極性αは“1”とみなすことができる。したがって、(10)式と(11)式は、以下の(15)式と(16)式のように表わすことができる。
【0051】
C=d’[m0]+d’[m1]+d’[m2]+d’[m3]……(15)
ε=Φ’(m0,m0
+Φ’(m1,m1)+2Φ’(m0,m1
+Φ’(m2,m2)+2[Φ’(m0,m2)+Φ’(m1,m2)]
+Φ’(m3,m3)+2[Φ’(m0,m3)+Φ’(m1,m3)+Φ’(m2,m3)]……(16)
【0052】
ここで求められたエネルギーεと(15)式で求めた相関Cを更に式(5)のエネルギーεξと相関Cξに代入し、相関エネルギー比τξが最小となるパルス位置を求めることがパターン探索の原理である。この原理に従ったパターン探索を行うために、代数符号励振線形予測技術では、聴感重み付け合成フィルタのインパルス応答h(n)を用いた下三角テプリッツ畳み込み行列Hと、下三角テプリッツ畳み込み行列Hの転置行列との相関演算で、N行N列の二次元行列Φ(i,j)を算出している。
【0053】
代数符号励振線形予測のうちの勧告GSM−AMRを例として、音声符号化処理を具体的な数値を用いて説明する。勧告GSM−AMRで音声信号を符号化する単位は、5ミリ秒の時間幅をもったサブフレームである。フレームは、サブフレームを4個まとめた20ミリ秒の時間幅をもっている。標本化周期は8キロヘルツなので、1つのサブフレーム中のサンプル数Nは“40”となる。これらの40個のサンプルについて、パターン探索処理を実施することになる。
【0054】
パターン探索を行うにあたり、まず符号器のもつ聴感重み付け合成フィルタのインパルス応答h(n)を用いた下三角テプリッツ畳み込み行列Hと、行列Hの転置行列の相関演算を実施し、N行N列の二次元行列Φ(i,j)を求める。ここでサンプル数Nが40であるので、N行N列の二次元行列Φ(i,j)の要素数は“40×40”の1600個となる。また、40個の要素を番号付けする値となる“n”の値の範囲は0〜39となる。
【0055】
二次元行列Φ(i,j)は、(9)式に“n”の値の範囲を反映させて、次の(17)式で表わすことができる。
【数7】
Figure 0004228630
【0056】
ここでjはi以上であり、iは“0”以上でかつ“39”以下である。
【0057】
これらの演算を、N行N列の二次元行列Φ(i,j)の要素数分行わなければならない。しかしこの行列は下三角テプリッツ畳み込み行列であり、対称行列である性質を用いて各要素の算出をNの二乗個の演算で求めるのではなく、“N(N+1)/2”個の演算で求めている。このように、パターン探索に関しては演算量削減の各種の提案が行われている。
【0058】
たとえば、特開平11−327599公報では符号励振線形予測技術を用いた音声符号化装置でコードブックからパターン探索する際に用いる聴感重み付け合成フィルタのインパルス応答行列の長さを音声の周期成分の2分の1以下の長さに短縮している。つまりインパルス応答行列の長さを短縮することで、インパルス応答行列の相関演算量を削減している。そして、この削減した部分は近似処理を行うことで置き換えている。しかしこの近似処理を用いた置き換えは、近似処理をせずに相関演算を行った場合とは異なった結果となる可能性があり音声品質を劣化させる要因となりかねず、また、各勧告とのビットイグザクトを保証できなくなる恐れがある。
【0059】
また、特開平03−189700公報では符号励振線形予測技術を用いた音声符号化装置でコードブックからパターン探索に用いる聴感重み付け合成フィルタのインパルス応答行列の相関行列の演算を初期要素のみに対して行っている。そして、それ以外の要素については1つ前に求めた要素を基に再帰的に求めている。これにより演算の重複を削減して演算量を削減している。しかしこの再帰的な演算は、再帰的な演算をせずに相関演算を実施した場合とは異なった結果となる可能性があり音声品質を劣化させる要因となりかねず、また、各勧告とのビットイグザクトを保証できなくなる恐れがある。
【0060】
【発明が解決しようとする課題】
以上説明したように、符号励振線形予測技術を用いた音声符号化装置では少ない伝送情報量で高品質な音声を再生することが可能である。しかしながら音声のもつ特徴を抽出しこれを表現するのに適切な情報を符号帳から求めるために大量の演算を短時間で実施しなければならない。特に、数多くの電話端末に対する音声符号化処理を行う電話交換機等の集線装置では、この大量の演算を更に数多くの電話端末数分実施しなければならない。そこで、これを賄うために多数の動作周波数の高いプロセッサを備えるか、あるいは更に動作周波数の高いプロセッサを備えなければならなかった。
【0061】
そこで本発明の目的は動作周波数の比較的低いプロセッサであっても比較的短時間で音声信号の符号化ができる音声符号化装置および音声符号化プログラムを提供することにある。
【0062】
【課題を解決するための手段】
本発明では、(イ)通話者が発する音声を入力する音声入力手段と、(ロ)この音声入力手段で入力された音声を代数符号励振線形予測による音声符号化アルゴリズムごとに、L個(Lは自然数)の標本を持つサブフレームq個(qは自然数)を持つ、所定の単位時間長としてのフレームに分割する分割手段と、(ハ)この分割手段で分割された音声のフレームごとの周波数強度分布を表わすスペクトラム包絡に基づく周波数入出力特性をもち、前記した音声符号化アルゴリズムで音源信号と共に音声合成モデルを構成する合成フィルタを生成する合成フィルタ生成手段と、(ニ)この合成フィルタ生成手段によって生成された合成フィルタに広帯域の周波数成分を均等に含むインパルス信号を入力した際の応答であり、音声符号化アルゴリズムごとに定まるL個の要素をもつ前記した合成フィルタのインパルス応答を求めるインパルス応答取得手段と、(ホ)このインパルス応答取得手段によって求めたL個の合成フィルタのインパルス応答を、下三角テプリッツ畳み込み行列の要素として、前記した下三角テプリッツ畳み込み行列とその転置行列の積を、その積が対称行列となる性質を利用して作成し、前記した下三角テプリッツ畳み込み行列とその転置行列の自己相関演算を合成フィルタのインパルス応答のL個の要素のうちのこれよりも少ないn個(nは自然数)の要素ずつ取り出して1処理周期あたりn個の要素を並列して実行する並列演算で、n個の合成フィルタのインパルス応答の自己相関値を求める並列演算手段と、(へ)この並列演算手段によるn個の要素に関する前記した並列演算を繰り返してL×L個の合成フィルタのインパルス応答の自己相関値を求める繰り返し手段と、(ト)この繰り返し手段によるn個の要素に関する前記した並列演算の繰り返しにより、演算対象の合成フィルタのインパルス応答の要素をL個を越える要素数に仮想的に拡張して前記した並列演算による自己相関演算を実施する演算要素拡張手段と、(チ)前記した繰り返し手段と前記した演算要素拡張手段によって求めた自己相関値から、本来のインパルス応答の値を用いて演算した結果を有意なものとして選択する自己相関値選択手段と、(リ)前記したインパルス応答取得手段で求めた合成フィルタのインパルス応答と音声の相互相関値演算を行う相互相関演算手段と、(ヌ)前記した自己相関値選択手段によって選択した有意な自己相関値と前記した相互相関演算手段によって求めた相互相関値のうちの前記した音声符号化アルゴリズムごとに設定されるサブフレームについての前記したL個の要素に応じて定まる所定の個数の要素を選び出して比較演算を行い音声の構成要素の1つである空気の流れによって生じる周期性をもたない無声音成分を表わす情報を求める無声音解析手段と、(ル)この無声音解析手段によって求めた無声音成分を表わす情報を音声の非周期成分の要素として通話者の通話相手に向けて出力する出力手段とを音声符号化装置に具備させ、
前記した並列演算手段は、(ホ−1)前記したインパルス応答の配列h(n)の前記した下三角テプリッツ畳み込み行列としての自己相関行列Φ(i,j)における“i”と“j”を“0”で初期設定する初期設定手段と、(ホ−2)この演算を実装置環境上で実施するにあたって前記したインパルス応答の配列h(i)が1データ当たりaビット(aは自然数)の要素の配列であり、演算処理に使用するレジスタのビット幅がbビット(bは自然数)で、全部でc個(cは自然数)のレジスタファイルが前記した並列演算のための演算器に配置されているものとし、前記した演算器は1処理周期に最大n個の演算を並列して実行できるものとしたとき、前記したレジスタにはbをaで割った商であるd個(dは自然数)のaビットデータを一括して読み込むことが可能なことにより、前記した演算器にまずインパルス応答の配列h(i)〜h(i+(d−1))を読み込み、次にインパルス応答の配列h(j)〜h(j+(d−1))を読み込む読込処理手段と、(ホ−3)次のn個の演算式を1処理周期で並列して、それぞれ積算結果を求める演算手段と、
h(i)×h(j)
h(i+1)×h(j+1)
h(i+2)×h(j+2)
……
h(i+(n−1))×h(j+(n−1))
(ホ−4)前記した“i”の値および前記した“j”の値に“n”の値をそれぞれ加算して、前記した演算器の前記したc個のレジスタファイルに格納する積算結果の個数がbを2aで割った商にcを掛けたレジスタファイル満杯値に達するまで前記した演算手段による演算を繰り返す演算繰り返し制御手段と、(ホ−5)この演算繰り返し制御手段によって前記したレジスタファイル満杯値に到達したとき、これら全積算結果を前記したc個のレジスタファイルに連続で格納するレジスタファイル格納制御手段を具備し、
前記した演算要素拡張手段は、前記した下三角テプリッツ畳み込み行列がインパルス応答の要素数をNとするとき、N行N列の対称行列である性質を利用して、自己相関行列Φ(i,j)を算出するにあたり全要素nの二乗個ではなく、「n×(n+1)/2」個を計算し、要素Φ(i,j)と要素Φ(j,i)が等しいものである関係を利用して、計算を行っていない要素部分を補間することを特徴としている
【0064】
また本発明では、(イ)通話者が発する音声を入力する音声入力手段と、(ロ)この音声入力手段で入力された音声を代数符号励振線形予測による音声符号化アルゴリズムごとに、L個(Lは自然数)の標本を持つサブフレームq個(qは自然数)を持つ、所定の単位時間長としてのフレームに分割する分割手段と、(ハ)この分割手段で分割された音声のフレームごとの周波数強度分布を表わすスペクトラム包絡に基づく周波数入出力特性をもち、前記した音声符号化アルゴリズムで音源信号と共に音声合成モデルを構成する合成フィルタを生成する合成フィルタ生成手段と、(ニ)この合成フィルタ生成手段によって生成された合成フィルタに広帯域の周波数成分を均等に含むインパルス信号を入力した際の応答であり、音声符号化アルゴリズムごとに定まるL個の要素をもつ前記した合成フィルタのインパルス応答を求めるインパルス応答取得手段と、(ホ)このインパルス応答取得手段によって求めたL個の合成フィルタのインパルス応答を、下三角テプリッツ畳み込み行列の要素として、前記した下三角テプリッツ畳み込み行列とその転置行列の積を、その積が対称行列となる性質を利用して作成し、前記した下三角テプリッツ畳み込み行列とその転置行列の自己相関演算を合成フィルタのインパルス応答のL個の要素のうちのこれよりも少ないn個(nは自然数)の要素ずつ取り出して1処理周期あたりn個の要素を並列して実行する並列演算で、n個の合成フィルタのインパルス応答の自己相関値を求める並列演算手段と、(へ)この並列演算手段によるn個の要素に関する前記した並列演算を繰り返してL×L個の合成フィルタのインパルス応答の自己相関値を求める繰り返し手段と、(ト)この繰り返し手段によるn個の要素に関する前記した並列演算の繰り返しにより、演算対象の合成フィルタのインパルス応答の要素にL−1個の仮想的な合成フィルタのインパルス応答要素を追加拡張して前記した並列演算を実施する演算要素拡張手段と、(チ)前記した繰り返し手段と前記した演算要素拡張手段によって求めた自己相関値から、本来のインパルス応答の値を用いて演算した結果を有意なものとして選択する自己相関値選択手段と、(リ)前記したインパルス応答取得手段で求めた合成フィルタのインパルス応答と音声の相互相関値演算を行う相互相関演算手段と、(ヌ)前記した自己相関値選択手段によって選択した有意な自己相関値と前記した相互相関演算手段によって求めた相互相関値のうちの前記した音声符号化アルゴリズムごとに設定されるサブフレームについての前記したL個の要素に応じて定まる所定の個数の要素を選び出して比較演算を行い音声の構成要素の1つである空気の流れによって生じる周期性をもたない無声音成分を表わす情報を求める無声音解析手段と、(ル)この無声音解析手段によって求めた無声音成分を表わす情報を音声の非周期成分の要素として通話者の通話相手に向けて出力する出力手段とを音声符号化装置に具備させ、
前記した並列演算手段は、(ホ−1)前記したインパルス応答の配列h(n)の前記した下三角テプリッツ畳み込み行列としての自己相関行列Φ(i,j)における“i”と“j”を“0”で初期設定する初期設定手段と、(ホ−2)この演算を実装置環境上で実施するにあたって前記したインパルス応答の配列h(i)が1データ当たりaビット(aは自然数)の要素の配列であり、演算処理に使用するレジスタのビット幅がbビット(bは自然数)で、全部でc個(cは自然数)のレジスタファイルが前記した並列演算のための演算器に配置されているものとし、前記した演算器は1処理周期に最大n個の演算を並列して実行できるものとしたとき、前記したレジスタにはbをaで割った商であるd個(dは自然数)のaビットデータを一括して読み込むことが可能なことにより、前記した演算器にまずインパルス応答の配列h(i)〜h(i+(d−1))を読み込み、次にインパルス応答の配列h(j)〜h(j+(d−1))を読み込む読込処理手段と、(ホ−3)次のn個の演算式を1処理周期で並列して、それぞれ積算結果を求める演算手段と、
h(i)×h(j)
h(i+1)×h(j+1)
h(i+2)×h(j+2)
……
h(i+(n−1))×h(j+(n−1))
(ホ−4)前記した“i”の値および前記した“j”の値に“n”の値をそれぞれ加算して、前記した演算器の前記したc個のレジスタファイルに格納する積算結果の個数がbを2aで割った商にcを掛けたレジスタファイル満杯値に達するまで前記した演算手段による演算を繰り返す演算繰り返し制御手段と、(ホ−5)この演算繰り返し制御手段によって前記したレジスタファイル満杯値に到達したとき、これら全積算結果を前記したc個のレジスタファイルに連続で格納するレジスタファイル格納制御手段を具備し、
前記した演算要素拡張手段は、前記した下三角テプリッツ畳み込み行列がインパルス応答の要素数をNとするとき、N行N列の対称行列である性質を利用して、自己相関行列Φ(i,j)を算出するにあたり全要素nの二乗個ではなく、「n×(n+1)/2」個を計算し、要素Φ(i,j)と要素Φ(j,i)が等しいものである関係を利用して、計算を行っていない要素部分を補間することを特徴としている
【0068】
更に本発明では、コンピュータに、(イ)音声入力手段で入力された音声を代数符号励振線形予測による音声符号化アルゴリズムごとに、L個(Lは自然数)の標本を持つサブフレームq個(qは自然数)を持つ、所定の単位時間長としてのフレームに分割する分割処理と、(ロ)この分割処理で分割された音声のフレームごとの周波数強度分布を表わすスペクトラム包絡に基づく周波数入出力特性をもち、前記した音声符号化アルゴリズムで音源信号と共に音声合成モデルを構成する合成フィルタを生成する合成フィルタ生成処理と、(ハ)この合成フィルタ生成処理によって生成された合成フィルタに広帯域の周波数成分を均等に含むインパルス信号を入力した際の応答であり、音声符号化アルゴリズムごとに定まるL個の要素をもつ前記した合成フィルタのインパルス応答を求めるインパルス応答取得処理と、(ニ)このインパルス応答取得処理によって求めたL個の合成フィルタのインパルス応答を、下三角テプリッツ畳み込み行列の要素として、前記した下三角テプリッツ畳み込み行列とその転置行列の積を、その積が対称行列となる性質を利用して作成し、前記した下三角テプリッツ畳み込み行列とその転置行列の自己相関演算を合成フィルタのインパルス応答のL個の要素のうちのこれよりも少ないn個(nは自然数)の要素ずつ取り出して1処理周期あたりn個の要素を並列して実行する並列演算で、n個の合成フィルタのインパルス応答の自己相関値を求める並列演算処理と、(ホ)この並列演算処理によるn個の要素に関する前記した並列演算を繰り返してL×L個の合成フィルタのインパルス応答の自己相関値を求める繰り返し処理と、(へ)この繰り返し処理によるn個の要素に関する前記した並列演算の繰り返しにより、演算対象の合成フィルタのインパルス応答の要素をL個を越える要素数に仮想的に拡張して前記した並列演算による自己相関演算を実施する演算要素拡張処理と、(ト)前記した繰り返し処理と前記した演算要素拡張処理によって求めた自己相関値から、本来のインパルス応答の値を用いて演算した結果を有意なものとして選択する自己相関値選択処理と、(チ)前記したインパルス応答取得処理で求めた合成フィルタのインパルス応答と音声の相互相関値演算を行う相互相関演算処理と、(リ)前記した自己相関値選択処理によって選択した有意な自己相関値と前記した相互相関演算処理によって求めた相互相関値のうちの前記した音声符号化アルゴリズムごとに設定されるサブフレームについての前記したL個の要素に応じて定まる所定の個数の要素を選び出して比較演算を行い音声の構成要素の1つである空気の流れによって生じる周期性をもたない無声音成分を表わす情報を求める無声音解析処理とを音声符号化プログラムとして実行させ、
前記した並列演算処理は、(ニ−1)前記したインパルス応答の配列h(n)の前記した下三角テプリッツ畳み込み行列としての自己相関行列Φ(i,j)における“i”と“j”を“0”で初期設定する初期設定処理と、(ニ−2)この演算を実装置環境上で実施するにあたって前記したインパルス応答の配列h(i)が1データ当たりaビット(aは自然数)の要素の配列であり、演算処理に使用するレジスタのビット幅がbビット(bは自然数)で、全部でc個(cは自然数)のレジスタファイルが前記した並列演算のための演算器に配置されているものとし、前記した演算器は1処理周期に最大n個の演算を並列して実行できるものとしたとき、前記したレジスタにはbをaで割った商であるd個(dは自然数)のaビットデータを一括して読み込むことが可能なことにより、前記した演算器にまずインパルス応答の配列h(i)〜h(i+(d−1))を読み込み、次にインパルス応答の配列h(j)〜h(j+(d−1))を読み込む読込処理と、(ニ−3)次のn個の演算式を1処理周期で並列して、それぞれ積算結果を求める演算処理と、
h(i)×h(j)
h(i+1)×h(j+1)
h(i+2)×h(j+2)
……
h(i+(n−1))×h(j+(n−1))
(ニ−4)前記した“i”の値および前記した“j”の値に“n”の値をそれぞれ加算して、前記した演算器の前記したc個のレジスタファイルに格納する積算結果の個数がbを 2aで割った商にcを掛けたレジスタファイル満杯値に達するまで前記した演算手段による演算を繰り返す演算繰り返し制御処理と、(ニ−5)この演算繰り返し制御手段によって前記したレジスタファイル満杯値に到達したとき、これら全積算結果を前記したc個のレジスタファイルに連続で格納するレジスタファイル格納制御処理とを実行させ、
前記した演算要素拡張処理は、前記した下三角テプリッツ畳み込み行列がインパルス応答の要素数をNとするとき、N行N列の対称行列である性質を利用して、自己相関行列Φ(i,j)を算出するにあたり全要素nの二乗個ではなく、「n×(n+1)/2」個を計算し、要素Φ(i,j)と要素Φ(j,i)が等しいものである関係を利用して、計算を行っていない要素部分を補間する処理であることを特徴としている。
【0070】
更にまた本発明では、コンピュータに、(イ)音声入力手段で入力された音声を代数符号励振線形予測による音声符号化アルゴリズムごとに、L個(Lは自然数)の標本を持つサブフレームq個(qは自然数)を持つ、所定の単位時間長としてのフレームに分割する分割処理と、(ロ)この分割処理で分割された音声のフレームごとの周波数強度分布を表わすスペクトラム包絡に基づく周波数入出力特性をもち、前記した音声符号化アルゴリズムで音源信号と共に音声合成モデルを構成する合成フィルタを生成する合成フィルタ生成処理と、(ハ)この合成フィルタ生成処理によって生成された合成フィルタに広帯域の周波数成分を均等に含むインパルス信号を入力した際の応答であり、音声符号化アルゴリズムごとに定まるL個の要素をもつ前記した合成フィルタのインパルス応答を求めるインパルス応答取得処理と、(ニ)このインパルス応答取得処理によって求めたL個の合成フィルタのインパルス応答を、下三角テプリッツ畳み込み行列の要素として、前記した下三角テプリッツ畳み込み行列とその転置行列の積を、その積が対称行列となる性質を利用して作成し、前記した下三角テプリッツ畳み込み行列とその転置行列の自己相関演算を合成フィルタのインパルス応答のL個の要素のうちのこれよりも少ないn個(nは自然数)の要素ずつ取り出して1処理周期あたりn個の要素を並列して実行する並列演算で、n個の合成フィルタのインパルス応答の自己相関値を求める並列演算処理と、(ホ)この並列演算処理によるn個の要素に関する前記した並列演算を繰り返してL×L個の合成フィルタのインパルス応答の自己相関値を求める繰り返し処理と、(へ)この繰り返し処理によるn個の要素に関する前記した並列演算の繰り返しにより、演算対象の合成フィルタのインパルス応答の要素にL−1個の仮想的な合成フィルタのインパルス応答要素を追加拡張して前記した並列演算を実施する演算要素拡張処理と、(ト)前記した繰り返し処理と前記した演算要素拡張処理によって求めた自己相関値から、本来のインパルス応答の値を用いて演算した結果を有意なものとして選択する自己相関値選択処理と、(チ)前記したインパルス応答取得処理で求めた合成フィルタのインパルス応答と音声の相互相関値演算を行う相互相関演算処理と、(リ)前記した自己相関値選択処理によって選択した有意な自己相関値と前記した相互相関演算処理によって求めた相互相関値のうちの前記した音声符号化アルゴリズムごとに設定されるサブフレームについての前記したL個の要素に応じて定まる所定の個数の要素を選び出して比較演算を行い音声の構成要素の1つである空気の流れによって生じる周期性をもたない無声音成分を表わす情報を求める無声音解析処理とを音声符号化プログラムとして実行させ、
前記した並列演算処理は、(ニ−1)前記したインパルス応答の配列h(n)の前記した下三角テプリッツ畳み込み行列としての自己相関行列Φ(i,j)における“i”と“j”を“0”で初期設定する初期設定処理と、(ニ−2)この演算を実装置環境上で実施するにあたって前記したインパルス応答の配列h(i)が1データ当たりaビット(aは自然数)の要素の配列であり、演算処理に使用するレジスタのビット幅がbビット(bは自然数)で、全部でc個(cは自然数)のレジスタファイルが前記した並列演算のための演算器に配置されているものとし、前記した演算器は1処理周期に最大n個の演算を並列して実行できるものとしたとき、前記したレジスタにはbをaで割った商であるd個(dは自然数)のaビットデータを一括して読み込むことが可能なことにより、前記した演算器にまずインパルス応答の配列h(i)〜h(i+(d−1))を読み込み、次にインパルス応答の配列h(j)〜h(j+(d−1))を読み込む読込処理と、(ニ−3)次のn個の演算式を1処理周期で並列して、それぞれ積算結果を求める演算処理と、
h(i)×h(j)
h(i+1)×h(j+1)
h(i+2)×h(j+2)
……
h(i+(n−1))×h(j+(n−1))
(ニ−4)前記した“i”の値および前記した“j”の値に“n”の値をそれぞれ加算して、前記した演算器の前記したc個のレジスタファイルに格納する積算結果の個数がbを 2aで割った商にcを掛けたレジスタファイル満杯値に達するまで前記した演算手段による演算を繰り返す演算繰り返し制御処理と、(ニ−5)この演算繰り返し制御手段によって前記したレジスタファイル満杯値に到達したとき、これら全積算結果を前記したc個のレジスタファイルに連続で格納するレジスタファイル格納制御処理とを実行させ、
前記した演算要素拡張処理は、前記した下三角テプリッツ畳み込み行列がインパルス応答の要素数をNとするとき、N行N列の対称行列である性質を利用して、自己相関行列Φ(i,j)を算出するにあたり全要素nの二乗個ではなく、「n×(n+1)/2」個を計算し、要素Φ(i,j)と要素Φ(j,i)が等しいものである関係を利用して、計算を行っていない要素部分を補間する処理であることを特徴としている。
【0072】
【実施例】
以下実施例につき本発明を詳細に説明する。
【0073】
図1は、本発明の一実施例における音声符号化装置を表わしたものである。この音声符号化装置は、フィルタ部位51と音源部位52と比較器部位53で構成されている。フレーム分割された音声信号54はまずフィルタ部位51に入力されて線形予測分析および量子化器55によって線形予測分析が行われて周波数フィルタ特性が求められた後、この周波数フィルタ特性が量子化される。量子化された周波数フィルタ特性は合成フィルタ56に入力されて入力音声のもつフィルタ特性をもったフィルタが形成される。
【0074】
音源部位52は、音声のもつ声の高さに相当する周期成分の信号を生成する音源となる適応コードブック57と音声のもつ周期成分以外の信号を生成する音源となる雑音コードブック58をもつ。そしてこれらの音源から出力された信号の振幅を制御するためのゲインコードブック59と、適応コードブック57の生成した信号の振幅を調整する適応コードブック信号増幅器60と、雑音コードブック58の生成した信号の振幅を調整する雑音コードブック信号増幅器61をもつ。振幅の調整されたこれらの音源信号は、音源加算器62によって加算された後、フィルタ部位51の合成フィルタ56に入力されて周波数ごとの強弱を付加された合成音声63として生成される。
【0075】
比較器部位53には音声信号54と合成音声63が入力されて、加算器64で加算される。ここで合成信号63を負の形式で入力することで差分を求める。この差分に対して聴感重み付けフィルタ65で、聴感上の聞こえにくい周波数成分を強めるとともに、聴感上聞こえやすい周波数成分を弱めるフィルタ処理を行う。この処理によって人の聴感上で冗長な情報を削減し情報量を低減させる。聴感重み付けフィルタ65で周波数成分の調整された信号は誤差最小化器66に入力される。誤差最小化器66は、合成音声63と音声信号54の最小二乗誤差を算出することで誤差を求めると共に、音源部位52のそれぞれのコードブックに対して別の信号出力を実行させる。この処理を繰り返し実行し、誤差が最小となった際のコードブックからの出力信号が目標の信号であるとみなし、この信号に付与されている符号を音声符号化装置の出力として得る。誤差最小化器66では、図示しないマイクロプロセッサを用いてこの最小二乗誤差を求める演算を行う。そのために合成フィルタ56がもつ周波数フィルタ特性に基づくインパルス応答の自己相関演算を行う。このインパルス応答の自己相関演算は演算量が膨大であり処理に要する時間が比較的長くなる傾向がある。そこで、この処理を効率良く短時間で実施するために以下の手法を用いる。
【0076】
図2は、聴感重み付け合成フィルタのインパルス応答h(n)の自己相関行列Φ(i,j)を示している。領域11は有意な演算結果が設定される領域である。また、領域12は領域11の対称行列である領域である。そして領域13はその後の演算には用いない仮想的な演算結果が設定される領域である。つまり、領域11と領域12をまとめて示した範囲14がその後の演算に必要な中間値であり、範囲15がその後の演算には用いない仮想的な値である。
【0077】
図2に示しているVA〜VFの値を以下に具体的に表わす。
VA=h(0)2 ……(18)
【0078】
VB=h(1)2+h(0)2 ……(19)
【0079】
【数8】
Figure 0004228630
【0080】
VD=h(0)×h(1) ……(21)
【0081】
【数9】
Figure 0004228630
【0082】
VF=h(0)×h(n−1) ……(23)
【0083】
この聴感重み付け合成フィルタのインパルス応答h(n)の自己相関行列Φ(i,j)の求め方を説明する。この行列はN行N列の下三角テプリッツ畳み込み行列であり、自己相関行列Φ(i,j)はN行N列の対称行列となる。対称行列である性質を利用して、Φ(i,j)を算出するにあたり全要素nの二乗個ではなく、“n×(n+1)/2”個を計算する。そして、要素Φ(i,j)と要素Φ(j,i)が等しいものである関係を利用して、実際の計算を行っていない要素部分を補間する。つまりこの行列Φ(i,j)は対称行列であるため、領域11と領域12の要素は、領域11のみを算出することですべてを得られる。各要素の算出は、図2の右下から矢印の方向に向けて累積して、積和を行う。矢印1本ごとにループ処理を繰り返して、掛け合わせるh(n)の値をずらしていく。1周目のループ処理によって、N項の対角線上の要素を算出する。第1項は、次の(24)式で表わすことができる。
h(0)2 ……(24)
【0084】
第2項は、次の(25)式で表わすことができる。
h(0)2+h(1)2 ……(25)
【0085】
以降第n項は、次の(26)式のように表わすことができる。
【数10】
Figure 0004228630
【0086】
2周目のループ処理では、積算するh(i)を1つずらした“39”項を右下から左上の矢印方向に算出する。2周目のループ処理の第1項は次の(27)式で表わすことができる。
h(0)×h(1) ……(27)
【0087】
2周目のループ処理の第2項は、次の(28)式で表わすことができる。
h(0)×h(1)+h(1)×h(2) ……(28)
【0088】
そして2周目のループ処理の第n−1項は、次の(29)式で表わすことができる。
【数11】
Figure 0004228630
【0089】
更にn周目のループ処理での第1項は、次の(30)式で表わすことができる。
h(0)×h(n−1) ……(30)
【0090】
以上の計算により図2の領域11の各要素を求めた後、領域11に含まれる行列の対角線部分に線対称となるように領域11の各要素を領域12に複写する。これによって行列Φ(i,j)の全要素を得ることができる。
【0091】
以上が行列Φ(i,j)を求める際の基本的な処理になる。これを演算時間を短縮するために以下の処理を行う。
【0092】
まず、N行N列の二次元行列で表わされていた自己相関行列Φ(i,j)を1次元配列oda[indk]として表わす。この1次元配列oda[indk]は、次の(31)式で表わすことができる。
【数12】
Figure 0004228630
【0093】
ここで勧告GSM−AMRを具体例として、それぞれの変数の具体的な値とその範囲を示す。勧告GSM−AMRは、音声信号を一定長に区切ったフレーム長が20ミリ秒で、それを更に4分割して5ミリ秒のサブフレームとし、このサブフレームを1単位として符号化を行うものである。音声信号を標本化する周期は、音声信号処理で一般的な8キロヘルツである。1サブフレーム中の標本数は、5ミリ秒と8キロヘルツの積で求められ“40”標本となる。この標本数“40”が、自己相関を求めるN行N列の行列の、行と列のそれぞれの要素となる。つまりN行N列の行列とは、40行40列の行列であり、その行列の要素数は“40”と“40”の積の“1600”となる。この1600個の要素をもつ1次元行列をoda[indk]とするので、行列の1要素を番号付けする値として使用されるindkの値の範囲は0以上1600未満となる。式(31)のpの値は、1次元行列oda[indk]を番号付けするindkの値を、行の要素数“40”で除した際の商である。また式(31)のmの値は1次元行列oda[indk]を番号付けするindkの値を、行の要素数“40”で除した際の余りである。
【0094】
この1次元配列oda[indk]を算出する際に、聴感重み付け合成フィルタのインパルス応答の配列h(n)の範囲を拡張し、後の演算では使用しない値も含めて演算を行う。つまり、配列h(n)の拡張を実施しない場合であれば、h(0)×h(j)〜h(N−1−j)×h(N−1)の“N−j”回の演算を行うところを、h(0)×h(j)〜h(N−1)×h(N−1+j)のN回の演算を行う。具体的には、聴感聴感重み付け合成フィルタのインパルス応答の配列h(N−1)をh(2×N−1)に拡張する。つまり要素数をN個から“2×N−1”個に拡張する。但しこの拡張部分は演算で使用されはするが、演算結果が利用されるものではないため領域を宣言するのみで十分であり、要素の値を指定する必要はない。
【0095】
図3および図4は聴感重み付け合成フィルタのインパルス応答の配列h(n)の自己相関行列を求める処理を示したものである。
【0096】
まず、聴感重み付け合成フィルタのインパルス応答の配列h(n)の各要素の符号を求め、これを格納する。(図3ステップS51)
【0097】
図5は、聴感重み付け合成フィルタのインパルス応答の配列h(n)の符号ビットのみを取り出して格納する領域を表わしたものである。図5に示すように聴感重み付け合成フィルタのインパルス応答の配列h(n)の符号ビットのみを取り出して領域sig_n[0]と領域sig_n[1]に順番に格納する。sig_n[0]は下位8ビットを有意な領域として使用する。sig_n[1]は全32ビットを有意な領域として使用する。
【0098】
聴感重み付け合成フィルタのインパルス応答の配列の各要素を算出する際にh(i)の拡張した部分にはみ出す形で、常にN個の要素を算出する。図2の領域13が、このはみ出した部分である。この領域13は、後続の計算では不要となる。聴感重み付け合成フィルタのインパルス応答の自己相関を求める処理の前半は、各要素間の積算処理である。この積算は、“h(i)×h(j)”を“i”と“j”を漸増させながら実施する。聴感重み付け合成フィルタのインパルス応答の配列の要素数はN個なので、“i”の値の範囲は“0”以上で“N−1”以下である。また、“j”は“i”以上で“N−1”以下であるが、“i”の値にかかわらず“h(i)×h(j)”の演算をN回繰り返すことができるように、聴感重み付け合成フィルタのインパルス応答の配列h(i)に関して“j”の値の範囲を“i”以上で、“i+N−1”以下と拡張する。
【0099】
図3に戻って説明を続ける。聴感重み付け合成フィルタのインパルス応答の配列h(n)を番号付けする値である“i”と“j”を“0”で初期設定する(ステップS52)。
【0100】
聴感重み付け合成フィルタのインパルス応答の配列h(i)は、1データあたり16ビットの要素の配列であるものとする。これを記憶領域に連続して格納しておく。また、前記した図示しないマイクロプロセッサの演算器のもつ演算処理に使用する記憶領域であるレジスタのビット幅は128ビットであるものとする。そして演算器は1処理周期に最大4個の演算を並列して実行できるものとする。つまり演算器のレジスタに、連続した8個の16ビットデータを一括して読み込むことが可能である。したがって演算器への読み込み処理の1度目に聴感重み付け合成フィルタのインパルス応答h(i)〜h(i+7)を読み込み(ステップS53)、演算器への読み込み処理の2度目で聴感重み付け合成フィルタのインパルス応答h(j)〜h(j+7)を読み込む(ステップS54)。そして以下の4個の演算式(32)〜(35)を1処理周期で並列して実行する(ステップS55)。
【0101】
h(i)×h(j) ……(32)
【0102】
h(i+1)×h(j+1) ……(33)
【0103】
h(i+2)×h(j+2) ……(34)
【0104】
h(i+3)×h(j+3) ……(35)
【0105】
それぞれの演算は“16ビットデータ×16ビットデータ”であるから、それぞれの演算結果を格納するには“16ビット+16ビット”の最大32ビットの記憶領域が必要である。そこでこれら4個の演算結果を格納する記憶領域のビット幅は一律に“32ビット×4”とする。この“32ビット×4”の記憶領域を10個分連続して演算器のレジスタへの高速なデータ受け渡しが可能な128ビット幅の10個のレジスタファイルに確保する。4個の演算を実施した後、“i”の値に“4”を加算し、“j”の値に“4”を加算して次の演算処理に備える(ステップS56)。そして再度、4個の演算式(32)〜(35)を1処理周期で並列して実行する(ステップS57)。この処理を10回になるまで繰り返して(ステップS59:N)、それぞれの繰り返し処理のたびに“i”の値に“4”を加算して、“j”の値に“4”を加算する(ステップS58)。5回の繰り返しが完了すると(ステップS59:Y)、積算結果は合計で40個求められる。これを128ビットのレジスタファイル10個にそれぞれ4データずつ計40データを連続で格納する。そしてこの積算結果を用いて加算処理を行う。加算処理を行うにあたり、10個のレジスタファイルを番号付けするインデクス値を“0”で初期設定する(図4のステップS60)。
【0106】
図6は、これまでに実施した4個の並列積算をして求めた結果を用いて行う加算処理の対象となるレジスタと加算処理の流れを示すものである。この加算処理も、4個を並列して実行する。
【0107】
図6のレジスタ211〜213は、物理的には同一のレジスタであるが、処理サイクルの進展に伴う内容の変化を表わすためにそれぞれ別の符号を付している。レジスタ221〜223と、レジスタ231〜233についても同様である。また、各レジスタは128ビット幅で、それぞれ32ビットの4個のレジスタ要素で構成されている。たとえばレジスタ211はレジスタ要素311〜314で構成されており、レジスタ221はレジスタ要素321〜324で構成されている。また、レジスタ231は、レジスタ要素331〜334で構成されている。これらの各レジスタ要素についても、処理サイクルの進展に伴う内容の変化を表わすために、物理的には同一のレジスタ要素であるが処理サイクルごとに別の符号を付している。たとえば、レジスタ要素311とレジスタ要素315とレジスタ要素319は物理的には同一であり、同様にレジスタ要素321とレジスタ要素325とレジスタ要素329は物理的に同一である。他のレジスタ要素についても同様である。
【0108】
図4とともに加算処理の流れを説明する。加算を行う第1の処理サイクルでは、まずレジスタ211〜213の全レジスタ要素に対して、“0”を設定して初期化する(図4ステップS60)。そしてレジスタ211に積算結果の格納されているレジスタファイルをインデクス値で番号付けして求めた4個の積算結果を書き込む(図4ステップS61)。具体例を示すと、レジスタ要素314に“h(i)×h(j)”を書き込み、レジスタ要素313に“h(i+1)×h(j+1)”を書き込む。更に、レジスタ要素312に“h(i+2)×h(j+2)”を書き込み、レジスタ要素311に“h(i+3)×h(j+3)”を書き込む。この書き込みが完了した後に、積算結果の格納されているレジスタファイルのインデクス値に“1”を加算する(図4ステップS62)。この、加算結果の書き込みは、積算結果を格納した10個のレジスタファイルに順に上書きするものとする。このようにすることで、他のメモリアクセスをせずに32ビットデータを40個、後続の演算に引き継ぐ。
【0109】
加算を行う第2のサイクルでは、加算を行う第1のサイクルで設定したレジスタの内容を使用して加算を行う。レジスタ211と221のそれぞれの内容を加算してレジスタ222に書き込む。また、レジスタ212には加算を行う第1の処理サイクルでレジスタ211に設定した次の積算結果である32ビットデータを4個、128ビット分まとめて書き込む。レジスタ211のレジスタ要素311とレジスタ211のレジスタ要素312とレジスタ211のレジスタ要素313を加算した結果をレジスタ222のレジスタ要素325に設定する。またこれと並列して、レジスタ211のレジスタ要素312とレジスタ211のレジスタ要素313を加算した結果をレジスタ222のレジスタ要素326に設定する。またこれと並列して、レジスタ211のレジスタ要素313をレジスタ222のレジスタ要素327に設定する。また、これと並列して、レジスタ211のレジスタ要素314とレジスタ221のレジスタ要素321とレジスタ221のレジスタ要素324を加算して、レジスタ222のレジスタ要素328に設定する。更にこれらと平行して、レジスタ212のレジスタ要素315、316、317、318に対して、前のサイクルでレジスタ211に設定した積算結果の次の積算結果データ4個をレジスタ21 2 設定する(図4ステップS63)。この4個の積算結果は、レジスタファイルを現在のインデクス値で番号付けして求める。この書き込みが完了した後に、積算結果の格納されているレジスタファイルのインデクス値に“1”を加算する(図4ステップS64)。
【0110】
加算を行う第3の処理サイクルでは、加算を行う第2のサイクルで設定したレジスタの内容を使用して加算を行う。レジスタ212と222のそれぞれの内容を加算してレジスタ223に書き込む。また、レジスタ213には加算を行う第2の処理サイクルでレジスタ212に設定した次の積算結果である32ビットデータを4個、128ビット分まとめて書き込む。レジスタ222のレジスタ要素325とレジスタ222のレジスタ要素328を加算して、レジスタ233のレジスタ要素339に設定する。またこれと並列して、レジスタ222のレジスタ要素326とレジスタ222のレジスタ要素328を加算して、レジスタ233のレジスタ要素3310に設定する。またこれと並列して、レジスタ222のレジスタ要素327とレジスタ222のレジスタ要素328を加算して、レジスタ233のレジスタ要素3311に設定する。またこれと並列して、レジスタ222のレジスタ要素328を、レジスタ233のレジスタ要素3312に設定する。またこれと並列して、レジスタ212のレジスタ要素315とレジスタ212のレジスタ要素316とレジスタ212のレジスタ要素317を加算した結果をレジスタ223のレジスタ要素329に設定する。またこれと並列して、レジスタ212のレジスタ要素316とレジスタ212のレジスタ要素317を加算した結果をレジスタ223のレジスタ要素3210に設定する。またこれと並列して、レジスタ212のレジスタ要素317をレジスタ223のレジスタ要素3211に設定する。また、これと並列して、レジスタ212のレジスタ要素318とレジスタ222のレジスタ要素325とレジスタ222のレジスタ要素328を加算して、レジスタ223のレジスタ要素3212に設定する。更にこれらと並列して、レジスタ213の319、3110、3111、3112に、前のサイクルでレジスタ212に設定した積算結果の次の格納領域の4個の積算結果を設定する(図4ステップS65)。この4個の積算結果は、レジスタファイルを現在のインデクス値で番号付けして求める。この書き込みが完了した後に、積算結果の格納されているレジスタファイルのインデクス値に“1”を加算する(図4ステップS66)。そしてレジスタ233の値が書き込まれる128ビット幅のレジスタファイルへの書き出し先を1レジスタファイル分進める。
【0111】
この加算を行う第3の処理サイクルを更に9回繰り返して、合計10回行う(図4のステップS67:N)。これによって積算処理で求めた“10個×4データ”のすべてについて加算処理を行う。このように図3に示した流れ図の積算結果を、図4に示した流れ図で加算することによって、合計12サイクルの加算処理が実施されて、128ビットのレジスタファイルの10個に必要な40個の積和結果が格納されることになる(ステップS67:Y)。
【0112】
そして、この40個の積和結果のそれぞれに対して、あらかじめ格納しておいた領域sig_n[0]と領域sig_n[1]の符号を付加する(ステップS68)。
【0113】
以上の“4並列の積算を10回繰り返し、更に4並列の加算を12サイクル実施する、その結果に対して符号データを付加する”処理を、聴感重み付け合成フィルタのインパルス応答h(n)の要素数である“40”回繰り返す(ステップS69:N)。この繰り返しを実施する際に、聴感重み付け合成フィルタのインパルス応答h(n)を番号付けするインデクス値“i”に“0”を設定する。これとともに、繰り返しごとに聴感重み付け合成フィルタのインパルス応答h(n)を番号付けするインデクス値“j”の開始点を“1”ずつ進めるために、“j”に“1”を加算する(ステップS70)。この繰り返しが40回実施されることで、聴感重み付け合成フィルタのインパルス応答の自己相関行列Φ(i,j)の全1600個の要素を1次元配列の形式で求めることができる(ステップS69:Y)。
【0114】
このように、自己相関値演算を演算器のもつ並列演算手段で実施する。更にこの自己相関演算の繰り返しを極力切れ目無く実行する。自己相関演算の切れ目は、演算器に合成フィルタのインパルス応答の要素を取り込む際に、合成フィルタのインパルス応答の要素が格納されている領域を演算で求めなければならなくなった場合に発生する。そこで、合成フィルタのインパルス応答の各要素を格納領域を演算で求めなくとも済むように連続させて格納しておく。但し、有限個数の要素を繰り返し使用して演算するためには、格納領域の途中の領域を演算で求める必要が生じる場合もある。そこで、この演算が発生する頻度を低下させる。そのために、合成フィルタのインパルス応答の要素をL−1個仮想的に増加させて、あたかも演算対象の要素があるかのように扱って自己相関演算を行う。これによって増加分の演算を実施することになるが、並列演算による自己相関演算回数の低減と格納領域演算回数の低減効果でこれを補い、総合的に処理時間を短縮するようになっている。
【0115】
なお、本明細書でフレームとして表現しているものの中にはフレームのみでなくサブフレームも含まれていることは当然である。
【0116】
【発明の効果】
以上説明したように請求項1または請求項2記載記載の発明によれば、n個の並列演算が可能な並列演算手段に、入力音声から求めた聴感重み付け合成フィルタのインパルス応答の要素の自己相関演算を極力連続して実行させている。これによって並列演算手段の持つ処理能力を有効に活用している。したがって動作周波数の比較的低いプロセッサであっても比較的短時間で音声信号の符号化ができる。
【0117】
また、請求項3記載の発明によれば、並列演算手段は、1処理周期で並列演算を行うことが可能な最大数で並列演算を実施するようにしている。これによって演算器の持つ処理能力を有効に活用している。したがって動作周波数の比較的低いプロセッサであっても比較的短時間で音声信号の符号化ができる。
【0118】
更に、請求項4または請求項5記載記載の発明によれば、n個の並列演算が可能な並列演算処理に、入力音声から求めた聴感重み付け合成フィルタのインパルス応答の要素の自己相関演算を極力連続して実行させている。これによって並列演算処理の持つ処理能力を有効に活用している。したがって動作周波数の比較的低いプロセッサであっても比較的短時間で音声信号の符号化ができる。
【図面の簡単な説明】
【図1】本発明の一実施例における符号励振線形予測技術を用いた音声符号化装置の要部を示したブロック図である。
【図2】本実施例の聴感重み付け合成フィルタのインパルス応答の自己相関行列を示した説明図である。
【図3】本実施例の聴感重み付け合成フィルタのインパルス応答の配列h(n)の自己相関行列を求める積算処理の流れを示した流れ図である。
【図4】本実施例の聴感重み付け合成フィルタのインパルス応答の配列h(n)の自己相関行列を求める加算処理の流れを示した流れ図である。
【図5】本実施例の聴感重み付け合成フィルタのインパルス応答の配列h(n)の符号ビットを格納する領域を示した説明図である。
【図6】本実施例の並列加算処理の対象となるレジスタと加算処理を示すブロック図である。
【図7】符号励振線形予測技術を用いた音声符号化装置および音声復号化装置の要部を示したブロック図である。
【図8】符号励振線形予測技術を用いた音声符号化装置の要部を示したブロック図である。
【図9】音声信号とコードブックから探索する推定信号とこの2つの信号の差分をベクトル信号として表わした説明図である。
【符号の説明】
11 領域(有意な演算結果が設定される領域)
12 領域(領域11の対称行列である領域)
13 領域(仮想的な演算結果が設定される領域)
14 範囲(その後の演算に必要な中間値)
15 範囲(仮想的な値)[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a speech coding apparatus and a speech coding program, and relates to a speech coding apparatus and a speech coding program that perform speech coding in a telephone terminal or a telephone exchange, for example.
[0002]
[Prior art]
In recent years, along with the explosive spread of mobile phones, the amount of voice traffic flowing through a transmission path has increased rapidly. In order to cope with this increasing traffic, communication carriers are increasing transmission facilities. However, it is impossible to infinitely enhance transmission equipment because it requires a great deal of cost.
[0003]
In recent years, in the field of communication, digital communication that transmits and receives digital signals is the mainstream instead of analog communication that transmits and receives analog signals. Digital communication has rapidly become popular because it is superior to analog communication in that it is less susceptible to noise and is easy to multiplex a plurality of signals. This tendency is the same in a telephone system using a telephone, and it is the mainstream to digitize and transmit an analog audio signal.
[0004]
Sampling, quantization, and encoding are required to convert an analog signal to a digital signal. Sampling is to express a signal waveform that is continuous in time as a value at a point in time. Quantization is the approximate expression of a waveform value by one of a finite number of values. The encoding means how to express specifically, and is usually expressed in binary.
[0005]
As a technique for digitizing an audio signal that is an analog signal, a linear pulse coding (PCM) technique for quantizing the amplitude of a waveform based on a sampling theorem has been well known. This linear pulse encoding quantizes an analog signal in a uniform step, and is the same as what is usually called “A / D conversion”.
[0006]
The major points that users demand for a system that uses a telephone terminal to make a call are “connect with anyone at any time” and “be able to talk clearly”. In order to realize “always connect with anyone at any time”, it is necessary to secure a transmission path for a combination of connections between all telephone terminals in advance. However, this is not realistic because the number of combinations becomes enormous and the transmission path is occupied even when a call is not actually made, which greatly impairs the economy. Therefore, a transmission line is not reserved in advance, but an empty transmission line is searched for after connection is required, and this is secured and used. In other words, the transmission path is positioned as a shared resource for a plurality of users. Therefore, a new connection cannot be established when the transmission path is completely occupied by another user, but a new connection can be established if there is a vacancy in the transmission path. That is, if the transmission path occupation amount necessary for establishing each connection can be reduced, a large number of connections can be established simultaneously. Therefore, a technique for reducing the capacity of the transmission line occupied by each connection has been studied.
[0007]
In addition, in order to realize “a clear conversation”, it is necessary that each other's audio signal be delivered to the other party without changing from the original signal as much as possible. When digitizing an audio signal for transmission, it is necessary to perform sampling, quantization, and encoding as finely as possible in order to reduce the change in the audio signal. Sampling fineness can be realized by reducing the degree of time separation. In other words, this shortens the sampling period. Further, the fineness of quantization can be realized by reducing the number of finite approximate value change steps expressing the waveform value and increasing the number of values. In other words, it is necessary to reduce the quantization step and increase the range of approximate values and the range of values that can be taken by the codes representing the approximate values.
[0008]
By shortening the sampling period, the number of samples per unit time is increased. Further, the number of digits or the number of bits of the code is increased by reducing the quantization step and increasing the range of the code representing the approximate value. Since the amount of information to be transmitted is proportional to the product of the number of samples per unit time and the number of digits of the code or the number of bits, the amount of information to be transmitted will increase if it is intended to achieve “being able to talk clearly” . However, this is a contradictory requirement for “reducing the occupation amount of the transmission line necessary for establishing each connection” necessary for realizing “connecting with anyone at any time”.
[0009]
Therefore, in order to satisfy these conflicting requirements at the same time, a speech coding technique for reducing the amount of information when transmitting increased speech information has been studied.
[0010]
In order to reduce the amount of audio information to be transmitted, it is important not to insert unnecessary information into the information to be transmitted before performing audio encoding. If the sampling period is limited to a fine enough to digitize voice information, the amount of information to be transmitted can be reduced. In general, it is said that the upper limit of the frequency band necessary for making a telephone call is 4 kilohertz. That is, it is only necessary to perform sampling at a sampling period that can be reproduced up to a signal of 4 kHz. In this case, the sampling period is doubled by 8 kHz according to Shannon's theorem.
[0011]
As for quantization, there is a technique in which the amplitude is logarithmically converted and compressed using the statistical property of speech amplitude. As a logarithmic transformation formula, an expression called μ-law or A-law is widely used. With this logarithmic compression, the speech waveform can be finely quantized with the same number of quantization steps. Furthermore, there is a technique called adaptive quantization in which the quantization step width is changed with time in accordance with the characteristics of the change in speech amplitude.
[0012]
Further, since the audio signal has periodicity, there is a characteristic that there is a correlation between adjacent samples as well as a correlation between distant samples. Information can be compressed by encoding a difference between adjacent samples or a prediction difference between a value predicted using the correlation and an actual sample value. As a technique for simply transmitting a difference, there is a differential quantization (Differentioal Pulse Code Modulation: DPCM) technique. Some of the differential quantization techniques can only take a difference of “0” or “1”. This is called Delta Modulation (DM). If the difference between the data immediately before quantization and the current data exceeds a certain value, “1” is transmitted, otherwise. Transmits “0”. Thereby, the information amount of difference information required for transmission can be kept very small. An example of a technique for transmitting a prediction difference is an adaptive differential quantization (ADPCM) technique. Data encoded using the adaptive differential quantization technique can be compressed to about half of the original data.
[0013]
Also, there is a quantization technique for expressing a set of a plurality of sampled values by a single code without quantizing each sampled value when digitizing a speech waveform or frequency component information of speech. is there. This is called vector quantization, and information can be compressed by combining a plurality of pieces of information and expressing them with one code.
[0014]
The differential quantization technique and the adaptive differential quantization technique described so far are techniques for expressing the waveform of the audio signal itself as faithfully as possible. In addition to this, there is a technique called “analytic synthesis technique” in which how speech is generated is modeled, and speech is converted into parameters based on this generation model. In communication using speech analysis and synthesis technology, instead of transmitting the speech signal waveform itself, information that represents the properties of the sound source required to synthesize and create speech and frequency filter processing for the output signal of that sound source Information representing the nature of the frequency filter is encoded and transmitted. On the side of receiving the encoded signal, the code is decoded and converted into the original information, and then the audio signal is synthesized and reproduced based on the information indicating the property of the sound source and the information indicating the property of the frequency filter.
[0015]
The voice is composed of a voiced sound having a periodicity caused by vibration of the vocal cords and a voiceless sound having no periodicity caused by the flow of air. That is, it is necessary to transmit both sound source information having periodicity and sound source information having no periodicity. The vibration of air generated in the human vocal cords is radiated after passing through a plurality of tubes having different thicknesses such as the throat and mouth. This corresponds to obtaining an output signal by applying a plurality of frequency filters to a signal generated in the vocal cords. Therefore, the signal passing path is considered as a “synthesis filter” obtained by synthesizing a plurality of frequency filters. The property of this synthesis filter can be expressed by the input / output characteristics of the frequency filter for a plurality of frequencies.
[0016]
The fact that a human voice is recognized as a word means that the voice signal is changing over time and the change is felt. In other words, the sound source property and the filter property of the audio signal change with time and are not uniform. Therefore, even in the transmission of audio signals using the analysis / synthesis technique, it is necessary to transmit different information one by one, which has changed over time.
[0017]
An example of speech analysis and synthesis technology is a technology called multipulse coding. Multipulse coding technology analyzes the input speech signal, extracts the spectral envelope information indicating the strength of each frequency band that composes this input speech signal and the sound source information and transmits them, and based on this information on the receiving side This is a technology for synthesizing speech. Spectral envelope information is generally obtained using linear prediction analysis. The sound source information here is called a residual signal obtained by removing spectral envelope information from the input voice signal, and is represented by a pulse train composed of a plurality of pulses having degrees of freedom in amplitude and position. For example, Japanese Patent Laid-Open No. 4-84200 discloses a proposal for improving the transmission efficiency using this multipulse encoding technique. Another example of speech analysis and synthesis technology is a technology called Code Excited Linear Prediction Audio Codes (CELP).
[0018]
FIG. 7 shows a voice input / output portion of two mobile phone terminals as an example of an apparatus using the code excitation linear prediction technique. Here, the outline of the code excitation linear prediction technique will be described. Normally, each mobile phone terminal is equipped with both a speech encoding device that encodes speech and a speech decoding device that decodes the encoded signal into speech. However, for ease of explanation, only the speech encoding apparatus 101 is shown on the side that transmits speech, and only the speech decoding apparatus 102 is shown on the side that receives speech. On the voice transmitting side, the voice uttered by the user is detected by the microphone 103 of the mobile phone terminal, converted into an electric signal, and input to the voice input means 104 of the voice encoding device 101. The voice input unit 104 generates a voice signal 105 obtained by dividing the voice at a predetermined cycle. The divided speech signal 105 is input to the linear prediction analyzer 106 and subjected to linear prediction analysis to obtain a frequency filter characteristic 107 and input to the synthesis filter 108. Based on the frequency filter characteristic 107, the synthesis filter 108 operates as a frequency filter in which the filter characteristic of the input audio signal 105 is reflected. In addition, the synthesis filter 108 receives a sound source signal 111 corresponding to a sound source from a codebook 109 in which various signal patterns that can be used as a sound source are stored, according to a control signal from an auditory weighting error minimizer 110. The The code book 109 stores various signal patterns that can be used as the sound source, and is also called a code book. Further, each signal pattern stored in the code book 109 is given a code. The input sound source signal 111 becomes a synthesized voice signal 112 in which the frequency filter characteristic 107 is reflected. The audio signal 105 is also input to the adder 113 and added to the synthesized audio signal 112. At this time, by making the synthesized voice signal 112 a negative input of the adder 113, the output signal from the adder 113 becomes a difference signal 114 between the voice signal 105 and the synthesized voice signal 112. In order to search for the output of the codebook that minimizes the difference signal 114, the perceptual weighting error minimizer 110 requests the codebook 109 to output a new sound source signal 111. By repeating this request, the code 115 assigned to the sound source signal 111 output from the codebook 109 when the difference signal 114 becomes minimum is output to the transmission line 116. At the same time, the frequency filter characteristic 107 output from the linear prediction analyzer 106 is output to the transmission line 116.
[0019]
The voice decoding apparatus 102 on the voice receiving side includes a codebook 117, a synthesis filter 118, and a post filter 119 that adds strength for each frequency to the synthesized voice. The code 121 received from the transmission line 116 is the same as the code 115 transmitted by the voice transmitting side. Further, the frequency filter characteristic 122 received from the transmission line 116 is the same as the frequency filter characteristic 107 transmitted by the voice transmitting side. The speech decoding apparatus 102 inputs the excitation signal 123 obtained by inputting the code 121 received from the transmission path 116 to the codebook 117 to the synthesis filter 118. The code book 117 is the same as the code book 109 of the voice transmitting side, and the same sound source signal is output when the same code is input to the code book. The sound source signal 123 is input to the synthesis filter 118 whose frequency input / output characteristics are adjusted according to the frequency filter characteristics 122 received from the transmission path 116, and the synthesized speech 124 is output. The synthesized speech 124 is input to the post filter 119, and is converted into a synthesized speech 125 that is easy to hear from the sense of being perceived and is output from the speaker 120.
[0020]
Thus, in code excitation linear prediction, various sound source patterns are stored in advance and a code is assigned to each pattern. The speech signal input to the speech coding apparatus is divided at regular time intervals, the frequency spectrum envelope is obtained by linear prediction analysis, and the coefficients of the synthesis filter based on this are obtained. A synthesis filter process using the synthesis filter coefficient as an input parameter is performed on each excitation pattern of the codebook to generate synthesized speech. The synthesized speech and the input speech signal are compared, and the code assigned to the sound source pattern having the smallest error is used as the code corresponding to the input speech signal. The finer and more abundant types of sound source patterns that the codebook has, the more likely it is to select a pattern with a high degree of similarity to the input audio signal, and the higher the reproducibility of the audio. However, creating a huge number of patterns and storing them in the speech encoding apparatus is limited because it leads to an increase in the storage medium of the apparatus and an increase in the amount of comparison processing. Therefore, a technique has been proposed in which this pattern is generated algebraically and various patterns are substituted with a small amount of storage medium. Code-excited linear prediction using this technique is called Algebraic Code Excited Linear Prediction (ACELP) and is used in mobile phone systems. A proposal for realizing this algebraic code-excited linear prediction with a smaller amount of storage medium is shown, for example, in Japanese Translation of PCT International Publication No. 10-502191.
[0021]
A technique for encoding an audio signal and a decoding technique for restoring the original cannot correctly reproduce the original audio signal unless the paired ones are defined in detail. Further, in order to spread this encoding technique to many devices, it is necessary to recognize the detailed specifications widely. Therefore, the encoding technology is defined in detail under a standardization organization and published as a recommendation. Among these, the algebraic code-excited linear prediction is recommended as “ITU-Recommendation G723.1 Low Rate Method (5.3 kbit / sec)” in the international standardization organization “ITU” (International Telecommunication Union). . Further, it is recommended as “GSM-AMR” (Global System for Mobile Communications—Adaptive Multi-Rate Speech Transcoding) in “3GPP” (3rd Generation Partnership Project), which is another international standardization organization. These are coding techniques based on the principle of algebraic code-excited linear prediction, and are known as techniques capable of reproducing high-quality speech while greatly reducing the amount of codes.
[0022]
These voice signal encoding techniques are used not only in mobile phone terminals owned by users in a telephone system but also in telephone exchanges that mediate connections between telephone terminals. In a telephone exchange, encoded speech signals are interconverted to establish a call between telephone terminals that employ different speech encoding techniques. Therefore, it is necessary to perform encoding and decoding of speech in order to convert it into a signal that can be handled in common between different speech encoding techniques. Since a telephone exchange is a device that mediates connections between a large number of telephone terminals at the same time, a circuit that performs interconversion of speech coding must be compatible with a large number of telephone terminals at the same time.
[0023]
FIG. 8 shows a main part of a speech encoding apparatus using a code excitation linear prediction technique. An outline of the code-excited linear prediction technique will be described using this speech encoding apparatus. This speech coding apparatus includes a filter part 131, a sound source part 132, and a comparator part 133. The audio signal 134 that has been divided into frames is first input to the filter part 131 and subjected to linear prediction analysis and linear prediction analysis by the quantizer 135 to obtain a frequency filter characteristic, and then the frequency filter characteristic is quantized. . The quantized frequency filter characteristic is input to the synthesis filter 136 to form a filter having the filter characteristic of the input voice.
[0024]
The sound source portion 132 has an adaptive code book 137 that becomes a sound source that generates a signal of a periodic component corresponding to the voice pitch of the voice and a noise code book 138 that becomes a sound source that generates a signal other than the periodic component of the voice. . Then, a gain codebook 139 for controlling the amplitude of the signals output from these sound sources, an adaptive codebook signal amplifier 140 for adjusting the amplitude of the signal generated by the adaptive codebook 137, and a noise codebook 138 are generated. A noise codebook signal amplifier 141 for adjusting the amplitude of the signal is provided. These sound source signals whose amplitudes have been adjusted are added by the sound source adder 142, and then input to the synthesis filter 136 of the filter portion 131 to be generated as synthesized speech 143 to which the strength for each frequency is added.
[0025]
A voice signal 134 and a synthesized voice 143 are input to the comparator part 133 and added by the adder 144. Here, the difference is obtained by inputting the composite signal 143 in a negative format. With respect to this difference, the auditory weighting filter 145 performs a filter process that intensifies frequency components that are difficult to hear in terms of perception and weakens frequency components that are easy to hear in terms of perception. This process reduces redundant information in terms of human hearing and reduces the amount of information. Thereafter, the error minimizer 146 calculates the least square error between the synthesized speech 143 and the speech signal 134 to obtain an error, and causes each code book of the sound source portion 132 to execute another signal output. This process is repeatedly executed, and the output signal from the code book when the error is minimized is regarded as the target signal, and the code assigned to this signal is obtained as the output of the speech coding apparatus. This process of finding the target output signal from the code book is called “pattern search”, “pulse search”, “code book search” or the like.
[0026]
FIG. 9 shows an auditory weighted audio signal, an auditory weighted synthesized audio signal, an auditory weighted synthesized audio signal, and an auditory weighted synthesized audio signal that perform intensity processing for each frequency that eliminates redundant information and eliminates information that is difficult to perceive on human perception. The error signal is represented by a vector. Here, the perceptual weighting voice signal 151 is r, and the perceptual weighting synthesized voice signal 152 is GHν.ξThen, the error signal 153 is r-GHν.ξCan be expressed as Here, the principle of pattern search performed by algebraic code-excited linear prediction using the description of “ITU recommendation G723.1”, which is an example of a recommendation regarding speech coding, will be described in detail. Pattern search is performed by calculating the mean square error E between the input speech signal and the synthesized speech signalξThe pattern having the smallest error is determined as the target pattern. The calculation for obtaining the mean square error is shown in the following equation (1).
[Expression 1]
Figure 0004228630
[0027]
Here, the perceptual weighting voice signal r and the perceptual weighting synthesized voice signal GHv.ξTo minimize the error of the mean square error E of equation (1)ξIs the same as minimizing. The right side of equation (1) is expanded and expressed in the following equation (2).
[0028]
Eξ= (R) × (r-GHνξ)-(GHνξ) × (r-GHν)ξ) …… (2)
[0029]
The condition for minimizing the error at this time is “r-GHν” representing the error signal 153 in FIG.ξThe error is minimized when the angle formed by the perceptually weighted synthesized speech signal 152 and the error signal 153 is a right angle. This means that when the vectors are orthogonal, the inner product of those vectors is “0”. Therefore, when the error is minimum, the second term of the equation (2) is “0”, where GHνξG indicates a code book gain corresponding to a gain given to a sound source signal generated from each pattern of the code book. Also, νξIndicates an algebraic codeword representing a pattern in the index ξ. H represents the impulse response of the synthesis filter indicating the response when an impulse signal that uniformly includes a wideband frequency component is input to the synthesis filter obtained by performing auditory weighting on the spectral envelope information obtained by the speech signal linear prediction analysis. Indicates a matrix as an element. This is an impulse response element h (n) in the form of a lower triangular Toeplitz convolution matrix whose diagonal is h (0) and whose lower diagonal is h (1), ..., h (L-1). It is. Here, n is equal to the index value of each sample when the input audio signal is sampled by dividing it at a fixed time. Further, L is the number of samples in one section obtained by dividing the input voice at a certain time. The Toeplitz matrix refers to a matrix that has the property that all elements on a line that is symmetrical and parallel to a diagonal line are equal. The lower triangular convolution means that elements are set in a triangular area below the diagonal line of the matrix, and “0” is set in other areas.
[0030]
Based on the principle that the inner product of the orthogonal vectors is “0”, the second term of equation (2) is set to “0”. Furthermore, the mean square error "Eξ= 0 ", the expression is modified. Here, the expression (2) is differentiated with respect to the codebook gain G, which is the only element that can be used to change the parameters. (3) It can be expressed as:
[Expression 2]
Figure 0004228630
[0031]
Substituting this into equation (1) gives the mean square error EξIs obtained by the following equation (4).
[Equation 3]
Figure 0004228630
[0032]
This mean square error EξCan be minimized by maximizing the second term of equation (4). Therefore, the second term of equation (4) is changed to τξThen, the following equation (5) is obtained.
[Expression 4]
Figure 0004228630
[0033]
Here, the following equation (6) was used to obtain the equation (5) from the equation (4). Here, d is a vector representing the correlation between the perceptually weighted audio signal and the impulse response of the perceptually weighted synthesis filter.
[0034]
d = HTr ...... (6)
[0035]
Further, the following equation (7) is used to obtain the equation (5) from the equation (4). Φ is a covariance matrix of the impulse response of the perceptual weighting synthesis filter.
[0036]
Φ = HTH ...... (7)
[0037]
Then, the vector d and the matrix Φ are obtained by calculation prior to the code book search. Each element of the vector d can be expressed by the following equation (8).
[Equation 5]
Figure 0004228630
[0038]
  Here, “j” is “0” or more and “N−1” or less. “N” is the number of impulse response elements of the perceptual weighting synthesis filter, and the number of samples per frame when speech is divided into frames. “N”, “i”, and “j” are the elements of the impulse response of the perceptual weighting synthesis filter, the elements of the sampled speech, and the elements of the covariance matrix of the impulse response of the perceptual weighting synthesis filter.NumberingIt is a value to do.
[0039]
The matrix Φ (i, j) can be expressed by the following equation (9).
[Formula 6]
Figure 0004228630
[0040]
Here, i is “0” or more and “N−1” or less, and i is j or less.
[0041]
In the example of “ITU recommendation G723.1”, the pattern search searches for the position and polarity of four pulses. For this purpose, quadruple loop processing corresponding to each pulse position is executed. Then, a new pulse contribution is added by each loop process. Therefore, the correlation C in the equation (5) can be expressed by the following equation (10).
[0042]
C = α0d [m0] + Α1d [m1] + Α2d [m2] + ΑThreed [mThree] …… (10)
[0043]
Where mkIndicates the position of the kth pulse, αkIndicates the polarity of the kth pulse. Further, the vector d is a value obtained by the equation (8).
[0044]
The pulse searched here is a so-called “non-zero pulse” which means that the amplitude is not zero. The number of non-zero pulses per subframe is determined for each type of algebraic code-excited linear prediction technique. Then, an optimum position is determined by calculation from a plurality of candidates for the determined pulse position. Recommendation G. given as an example. In the case of a low bit rate out of the two types of transmission rates defined in 723.1, the number of non-zero pulses is as follows, as there are four terms in equation (10) and each indicating the position of a pulse. The maximum is 4. Also, Recommendation G. In 723.1, since the frame length is 30 milliseconds, the sub-frame length obtained by dividing the frame into four is 7.5 milliseconds, and the sampling frequency is 8 kHz, the number of samples in one sub-frame is “60”. Non-zero pulse position candidates are considered to be only even numbers in order to reduce the amount of calculation. The calculation amount is greatly reduced by not calculating anything other than the non-zero pulse portion. There are 30 even numbers in the sample number “60”, and four of these are selected, so each of them is selected from eight locations. That is, for the four non-zero pulses, the optimum place among the eight position candidates is selected by calculation. However, four times "8 places" is "32 places", exceeding "30" by "2". The third and fourth pulses at this time do not fit within the frame, and as a result, the number of pulses may decrease. At this time, the number of non-zero pulses is less than four. As another example, in the recommended GSM-AMR, there are 8 types of transmission rates (bit rates), and the number of non-zero pulses includes 6 types of patterns including some overlapping.
[0045]
The energy of the vector of the pattern having a pulse at the even pulse position in the equation (5) is obtained. This energy ε can be expressed by the following equation (11).
[0046]
ε = Φ (m0, M0)
+ Φ (m1, M1) + 2α0α1Φ (m0, M1)
+ Φ (m2, M2) +2 [α0α2Φ (m0, M2) + Α1α2Φ (m1, M2]]
+ Φ (mThree, MThree) +2 [α0αThreeΦ (m0, MThree) + Α1αThreeΦ (m1, MThree) + Α2αThreeΦ (m2, MThree]] (11)
[0047]
In order to reduce the amount of calculation, calculation is performed on the assumption that pulses exist evenly, and a vector of a pattern having pulses at odd-numbered pulse positions is calculated using approximation. In order to calculate a vector of a pattern having pulses at odd-numbered pulse positions, a vector d [j] and a symmetric matrix Φ (m1, M2) To define a new expression s [j] to form a vector d '[j].
[0048]
s [2j] = s [2j + 1] = sign (d [2j])
| D [2j] |> | d [2j + 1] |
s [2j] = s [2j + 1] = sign (d [2j + 1])
Otherwise ...... (12)
[0049]
d ′ [j] = d [j] × s [j] (13)
Φ ′ (i, j) = s [i] × s [j] × Φ (i, j) (14)
[0050]
Here, the vector d ′ [j] in the equation (13) and the symmetric matrix Φ ′ (i, j) in the equation (14) are transformed into the vector s [i] and the symmetric matrix Φ (i, j) by the equation s [ j] is used to capture the polar element of the pulse. Therefore, in the equations (10) and (11), the polarity α of all the pulses can be regarded as “1”. Therefore, the expressions (10) and (11) can be expressed as the following expressions (15) and (16).
[0051]
C = d '[m0] + D '[m1] + D '[m2] + D '[mThree] …… (15)
ε = Φ ′ (m0, M0)
+ Φ ’(m1, M1) + 2Φ '(m0, M1)
+ Φ ’(m2, M2) +2 [Φ ′ (m0, M2) + Φ ’(m1, M2]]
+ Φ ’(mThree, MThree) +2 [Φ ′ (m0, MThree) + Φ ’(m1, MThree) + Φ ’(m2, MThree]] …… (16)
[0052]
The energy ε obtained here and the correlation C obtained by the equation (15) are further converted into the energy ε of the equation (5).ξAnd correlation CξAnd the correlation energy ratio τξThe principle of the pattern search is to obtain a pulse position where the minimum is. In order to perform a pattern search according to this principle, the algebraic code-excited linear prediction technique transposes the lower triangular Toeplitz convolution matrix H using the impulse response h (n) of the perceptual weighting synthesis filter and the lower triangular Toeplitz convolution matrix H. A two-dimensional matrix Φ (i, j) of N rows and N columns is calculated by a correlation operation with the matrix.
[0053]
The speech encoding process will be described using specific numerical values with the recommendation GSM-AMR of algebraic code excitation linear prediction as an example. A unit for encoding a voice signal in the recommended GSM-AMR is a subframe having a time width of 5 milliseconds. The frame has a time width of 20 milliseconds in which four subframes are collected. Since the sampling period is 8 kilohertz, the number of samples N in one subframe is “40”. A pattern search process is performed on these 40 samples.
[0054]
  In performing the pattern search, first, a correlation operation between the lower triangular Toeplitz convolution matrix H using the impulse response h (n) of the audibility weighting synthesis filter of the encoder and the transposed matrix of the matrix H is performed, and N rows and N columns are performed. A two-dimensional matrix Φ (i, j) is obtained. Here, since the sample number N is 40, the number of elements of the N-row N-column two-dimensional matrix Φ (i, j) is 1600 of “40 × 40”. And 40 elementsNumberingThe range of the value of “n” that is a value to be 0 to 39.
[0055]
The two-dimensional matrix Φ (i, j) can be expressed by the following equation (17) by reflecting the range of the value “n” in the equation (9).
[Expression 7]
Figure 0004228630
[0056]
Here, j is i or more, and i is “0” or more and “39” or less.
[0057]
These operations must be performed for the number of elements of the N-row N-column two-dimensional matrix Φ (i, j). However, this matrix is a lower triangular Toeplitz convolution matrix, and is calculated by “N (N + 1) / 2” operations rather than by calculating N squares using the property of being a symmetric matrix. ing. As described above, various proposals for reducing the amount of calculation have been made for the pattern search.
[0058]
For example, in Japanese Patent Laid-Open No. 11-327599, the length of an impulse response matrix of an audible weighting synthesis filter used when searching for a pattern from a codebook by a speech coding apparatus using a code-excited linear prediction technique is divided into two periods of speech periodic components. The length is shortened to 1 or less. That is, by reducing the length of the impulse response matrix, the amount of correlation calculation of the impulse response matrix is reduced. The reduced portion is replaced by performing an approximation process. However, replacement using this approximation process may result in a different result from the case where the correlation operation is performed without the approximation process, and may cause a deterioration in voice quality. There is a risk that the exact cannot be guaranteed.
[0059]
Further, in Japanese Patent Laid-Open No. 03-189700, the correlation matrix of the impulse response matrix of the perceptual weighting synthesis filter used for the pattern search from the code book is calculated for the initial element only by the speech coding apparatus using the code excitation linear prediction technique. ing. The other elements are recursively obtained based on the element obtained immediately before. This reduces the amount of calculation by reducing the duplication of calculation. However, this recursive operation may have a different result from the case where the correlation operation is performed without performing the recursive operation, which may cause a deterioration in voice quality. There is a risk that the exact cannot be guaranteed.
[0060]
[Problems to be solved by the invention]
As described above, a speech coding apparatus using code-excited linear prediction technology can reproduce high-quality speech with a small amount of transmission information. However, a large amount of computations must be performed in a short time in order to obtain information suitable for extracting and expressing the features of speech from the codebook. In particular, in a concentrator such as a telephone exchange that performs voice encoding processing for a large number of telephone terminals, this large amount of calculations must be performed for a larger number of telephone terminals. Therefore, in order to cover this, it has been necessary to provide a large number of processors having a high operating frequency or a processor having a higher operating frequency.
[0061]
SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to provide a speech encoding apparatus and speech encoding program that can encode speech signals in a relatively short time even with a processor having a relatively low operating frequency.
[0062]
[Means for Solving the Problems]
  In the present invention, (a) a voice input means for inputting a voice uttered by a caller, and (b) a voice input by the voice input means for each voice coding algorithm based on algebraic code excitation linear prediction (L Is a division unit that divides q into subframes having a predetermined unit time length (q is a natural number) and (c) a frequency for each frame of the audio divided by the division unit. A synthesis filter generating means for generating a synthesis filter having a frequency input / output characteristic based on a spectrum envelope representing an intensity distribution and forming a voice synthesis model together with a sound source signal by the voice encoding algorithm, and (d) the synthesis filter generating means This is the response when an impulse signal that uniformly contains a wideband frequency component is input to the synthesis filter generated by And (e) impulse response of the L synthesis filters obtained by the impulse response acquisition means is converted into a lower triangular Toeplitz convolution. As a matrix element, a product of the lower triangular Toeplitz convolution matrix and its transpose matrix is created using the property that the product becomes a symmetric matrix, and the autocorrelation operation of the lower triangular Toeplitz convolution matrix and its transpose matrix is made. Is a parallel operation of taking out n elements (n is a natural number) from the L elements of the impulse response of the synthesis filter and executing n elements in parallel per processing cycle. Parallel calculation means for obtaining the autocorrelation value of the impulse response of the synthesis filter, and (f) the n elements by the parallel calculation means. Repetitive means for obtaining the autocorrelation value of the impulse response of the L × L synthesis filters by repeating the parallel operation described above, and An element expansion means for virtually expanding the impulse response elements of the synthesis filter to more than L elements and performing the autocorrelation calculation by the parallel calculation as described above, and (h) the repetition means and the calculation described above. Autocorrelation value selection means for selecting the result calculated using the value of the original impulse response as significant from the autocorrelation value obtained by the element expansion means, and (i) the synthesis obtained by the impulse response acquisition means described above. A cross-correlation calculating means for calculating a cross-correlation value between the impulse response of the filter and the voice, and (n) the autocorrelation value selecting means described above. Of the significant autocorrelation value and the cross-correlation value obtained by the cross-correlation calculating means, a predetermined number determined according to the above-mentioned L elements for the subframe set for each speech encoding algorithm. And (v) unvoiced sound analysis means for obtaining information representing an unvoiced sound component having no periodicity generated by the air flow, which is one of the constituent elements of voice, by performing a comparison operation. Output means for outputting information representing the unvoiced sound component as an element of the non-periodic component of the voice to the other party of the caller.Equipped in a speech encoding device,
  The parallel calculation means described above (e-1) calculates “i” and “j” in the autocorrelation matrix Φ (i, j) as the lower triangular Toeplitz convolution matrix of the impulse response array h (n) described above. Initial setting means for initial setting at “0”, and (e-2) when the above-described impulse response array h (i) is executed in an actual device environment, the above-described impulse response array h (i) is a bit (a is a natural number) per data. This is an array of elements, and the bit width of a register used for arithmetic processing is b bits (b is a natural number), and a total of c (c is a natural number) register files are arranged in the arithmetic unit for the parallel operation described above. Suppose that the above-mentioned arithmetic unit can execute a maximum of n operations in parallel in one processing cycle. In the above-mentioned register, d is a quotient obtained by dividing b by a (d is a natural number) ) A bit data Since it is possible to read in a lump, the impulse response array h (i) to h (i + (d-1)) is first read into the arithmetic unit, and then the impulse response array h (j) to h. Read processing means for reading (j + (d-1)), (e-3) arithmetic means for parallelizing the next n arithmetic expressions in one processing cycle, and obtaining an integration result,
h (i) × h (j)
h (i + 1) × h (j + 1)
h (i + 2) × h (j + 2)
......
h (i + (n−1)) × h (j + (n−1))
(E-4) The value of “n” is added to the value of “i” and the value of “j”, respectively, and the accumulated result stored in the c register files of the computing unit is stored. A calculation repeat control means for repeating the calculation by the calculation means until the register file full value obtained by multiplying the quotient obtained by dividing b by 2a by c; (e-5) the register file described above by the calculation repeat control means; Comprising a register file storage control means for continuously storing these total integration results in the c register files when the full value is reached;
  The arithmetic element expansion means described above uses the property that the lower triangular Toeplitz convolution matrix is a symmetric matrix of N rows and N columns when the number of impulse response elements is N, and uses the autocorrelation matrix Φ (i, j ) Is calculated by calculating “n × (n + 1) / 2” instead of the square of all the elements n, and the relationship that the elements Φ (i, j) and Φ (j, i) are equal is calculated. It is characterized by interpolating element parts that have not been calculated..
[0064]
  In the present invention, (a) a voice input means for inputting a voice uttered by a caller, and (b) a voice input by the voice input means for each voice coding algorithm based on algebraic code excitation linear prediction ( L is a sub-frame having q sub-frames (q is a natural number) having a sample of (L is a natural number) and is divided into frames having a predetermined unit time length; A synthesis filter generating means for generating a synthesis filter having a frequency input / output characteristic based on a spectrum envelope representing a frequency intensity distribution and forming a voice synthesis model together with a sound source signal by the voice encoding algorithm; and (d) generation of the synthesis filter. This is the response when an impulse signal that uniformly contains a wideband frequency component is input to the synthesis filter generated by the means. Impulse response acquisition means for obtaining the impulse response of the synthesis filter having L elements determined for each rhythm, and (e) the lower triangle Toeplitz convolution of the impulse responses of the L synthesis filters obtained by the impulse response acquisition means. As a matrix element, a product of the lower triangular Toeplitz convolution matrix and its transpose matrix is created using the property that the product becomes a symmetric matrix, and the autocorrelation operation of the lower triangular Toeplitz convolution matrix and its transpose matrix is made. Is a parallel operation of taking out n elements (n is a natural number) from the L elements of the impulse response of the synthesis filter and executing n elements in parallel per processing cycle. Parallel calculation means for obtaining an autocorrelation value of the impulse response of the synthesis filter of (n), and (f) n elements by the parallel calculation means Repetitive means for obtaining the autocorrelation value of the impulse response of L × L synthesis filters by repeating the above-mentioned parallel arithmetic, and (g) a computation object by repeating the parallel arithmetic for n elements by the repetitive means. An element expansion means for performing the above-mentioned parallel operation by additionally expanding the impulse response elements of L-1 virtual synthesis filters to the elements of the impulse response of the synthesis filter; The autocorrelation value selection means for selecting the result calculated using the original impulse response value as significant from the autocorrelation value obtained by the computed element expansion means, and (i) obtained by the impulse response acquisition means described above. A cross-correlation calculating means for calculating a cross-correlation value between the impulse response of the synthesized filter and the voice; The significant autocorrelation value selected by the stage and the cross-correlation value obtained by the cross-correlation calculating means are determined according to the L elements described above for the subframe set for each speech encoding algorithm. Unvoiced sound analysis means for selecting information representing an unvoiced sound component having no periodicity generated by the flow of air, which is one of the sound components, by selecting a predetermined number of elements and performing a comparison operation; Output means for outputting information representing the unvoiced sound component obtained by the means to the other party as a non-periodic component of speechIn a speech encoding device,
  The parallel calculation means described above (e-1) calculates “i” and “j” in the autocorrelation matrix Φ (i, j) as the lower triangular Toeplitz convolution matrix of the impulse response array h (n) described above. Initial setting means for initial setting at “0”, and (e-2) when the above-described impulse response array h (i) is executed in an actual device environment, the above-described impulse response array h (i) is a bit (a is a natural number) per data. This is an array of elements, and the bit width of a register used for arithmetic processing is b bits (b is a natural number), and a total of c (c is a natural number) register files are arranged in the arithmetic unit for the parallel operation described above. Suppose that the above-mentioned arithmetic unit can execute a maximum of n operations in parallel in one processing cycle. In the above-mentioned register, d is a quotient obtained by dividing b by a (d is a natural number) ) A bit data Since it is possible to read in a lump, the impulse response array h (i) to h (i + (d-1)) is first read into the arithmetic unit, and then the impulse response array h (j) to h. Read processing means for reading (j + (d-1)), (e-3) arithmetic means for parallelizing the next n arithmetic expressions in one processing cycle, and obtaining an integration result,
h (i) × h (j)
h (i + 1) × h (j + 1)
h (i + 2) × h (j + 2)
......
h (i + (n−1)) × h (j + (n−1))
(E-4) The value of “n” is added to the value of “i” and the value of “j”, respectively, and the accumulated result stored in the c register files of the computing unit is stored. A calculation repeat control means for repeating the calculation by the calculation means until the register file full value obtained by multiplying the quotient obtained by dividing b by 2a by c; (e-5) the register file described above by the calculation repeat control means; Comprising a register file storage control means for continuously storing these total integration results in the c register files when the full value is reached;
  The arithmetic element expansion means described above uses the property that the lower triangular Toeplitz convolution matrix is a symmetric matrix of N rows and N columns when the number of impulse response elements is N, and uses the autocorrelation matrix Φ (i, j ) Is calculated by calculating “n × (n + 1) / 2” instead of the square of all the elements n, and the relationship that the elements Φ (i, j) and Φ (j, i) are equal is calculated. It is characterized by interpolating element parts that have not been calculated..
[0068]
  Further, according to the present invention, (b) q subframes (q) having L samples (L is a natural number) for each speech coding algorithm based on algebraic code excitation linear prediction. (B) a frequency input / output characteristic based on a spectrum envelope representing a frequency intensity distribution for each frame of speech divided by this division process. In addition, a synthesis filter generation process for generating a synthesis filter that constitutes a voice synthesis model together with a sound source signal by the voice encoding algorithm described above, and (c) a wideband frequency component is equally distributed to the synthesis filter generated by the synthesis filter generation process. Is a response when an impulse signal included in is input, and has L elements determined for each speech encoding algorithm. Impulse response acquisition processing for obtaining the impulse response of the synthesized filter, and (d) the lower triangle Toeplitz convolution described above using the impulse responses of the L synthesis filters obtained by the impulse response acquisition processing as elements of the lower triangle Toeplitz convolution matrix A product of a matrix and its transpose matrix is created using the property that the product is a symmetric matrix, and the autocorrelation operation of the lower triangular Toeplitz convolution matrix and the transpose matrix is performed with the L elements of the impulse response of the synthesis filter. The parallel operation of taking out n elements (n is a natural number) less than this and executing n elements in parallel per processing cycle, and calculating the autocorrelation value of the impulse response of n synthesis filters And (e) repeating the above-described parallel operation for n elements by the parallel operation processing to obtain L × Iterative processing for obtaining autocorrelation values of impulse responses of L synthesis filters, and (f) by repeating the above-described parallel computation on n elements by this iterative processing, the elements of the impulse response of the synthesis filter to be computed are L A calculation element expansion process for performing the autocorrelation calculation by the parallel calculation by virtually extending to the number of elements exceeding the number of elements, and (g) from the autocorrelation value obtained by the above-described repetition process and the calculation element expansion process. Autocorrelation value selection processing for selecting the result calculated using the value of the original impulse response as significant, and (h) the cross-correlation value between the impulse response and the voice of the synthesis filter obtained by the impulse response acquisition processing described above A cross-correlation calculation process for performing the calculation, and (i) a significant autocorrelation value selected by the above-described autocorrelation value selection process and the above-described phase Of the cross-correlation values obtained by the correlation calculation process, a predetermined number of elements determined according to the above-mentioned L elements for the subframes set for each of the above-described speech encoding algorithms are selected and subjected to a comparison operation to perform speech An unvoiced sound analysis process for obtaining information representing an unvoiced sound component having no periodicity caused by air flow, which is one of the components ofRun as a speech encoding program,
  In the parallel processing described above, (d-1) “i” and “j” in the autocorrelation matrix Φ (i, j) as the lower triangular Toeplitz convolution matrix of the array of impulse responses h (n) described above are used. Initial setting process for initial setting at “0”, and (d-2) when the above-described impulse response array h (i) is executed in an actual device environment, the above-described impulse response array h (i) is a bit (a is a natural number) per data. This is an array of elements, and the bit width of a register used for arithmetic processing is b bits (b is a natural number), and a total of c (c is a natural number) register files are arranged in the arithmetic unit for the parallel operation described above. Suppose that the above-mentioned arithmetic unit can execute a maximum of n operations in parallel in one processing cycle. In the above-mentioned register, d is a quotient obtained by dividing b by a (d is a natural number) ) A bit data Since it is possible to read in a lump, the impulse response array h (i) to h (i + (d-1)) is first read into the arithmetic unit, and then the impulse response array h (j) to h. A reading process for reading (j + (d-1)), (d-3) an arithmetic process for calculating the integration result by parallelizing the next n arithmetic expressions in one processing cycle,
h (i) × h (j)
h (i + 1) × h (j + 1)
h (i + 2) × h (j + 2)
......
h (i + (n−1)) × h (j + (n−1))
(D-4) The value of “n” is added to the value of “i” and the value of “j”, respectively, and the accumulated result stored in the c register files of the computing unit is stored. The number is b (2) An arithmetic repeat control process for repeating the operation by the above-mentioned arithmetic means until the register file full value is obtained by multiplying the quotient divided by 2a until reaching the register file full value, and (d) 5 the register file full value is reached by this arithmetic repeat control means. Then, the register file storage control process for continuously storing all the integration results in the c register files is executed.
  The arithmetic element expansion process described above uses the property that the lower triangular Toeplitz convolution matrix is a symmetric matrix of N rows and N columns when the number of elements of the impulse response is N, and uses the autocorrelation matrix Φ (i, j ) Is calculated by calculating “n × (n + 1) / 2” instead of the square of all the elements n, and the relationship that the elements Φ (i, j) and Φ (j, i) are equal is calculated. This is characterized in that it is a process of interpolating element parts that are not calculated.
[0070]
  Furthermore, in the present invention, (b) q subframes (L is a natural number) having L samples (L is a natural number) for each speech coding algorithm based on algebraic code excitation linear prediction. (b) a frequency input / output characteristic based on a spectrum envelope representing a frequency intensity distribution for each frame of speech divided by this division process; And (c) a synthesis filter generation process for generating a synthesis filter that constitutes a voice synthesis model together with the sound source signal by the voice encoding algorithm, and (c) a wideband frequency component is added to the synthesis filter generated by the synthesis filter generation process. This is the response when an impulse signal that contains equal parts is input, and includes L elements determined for each speech encoding algorithm. The impulse response acquisition process for obtaining the impulse response of the synthesis filter described above, and (d) the impulse response of the L synthesis filters obtained by the impulse response acquisition process as elements of the lower triangle Toeplitz convolution matrix, The product of the convolution matrix and its transpose matrix is created using the property that the product is a symmetric matrix, and the autocorrelation operation of the lower triangular Toeplitz convolution matrix and the transpose matrix is performed with the L number of impulse responses of the synthesis filter. An autocorrelation value of impulse responses of n synthesis filters in a parallel operation in which n elements (n is a natural number) smaller than these elements are extracted and executed in parallel per n processing elements. And (e) repeating the above-described parallel operation for n elements by this parallel operation processing. An element of the impulse response of the synthesis filter to be computed is obtained by iterative processing for obtaining the autocorrelation values of the impulse responses of the L × L synthesis filters and (f) repetition of the above-described parallel computation for n elements by this iteration processing. Obtained by performing the above-described parallel operation by further expanding the impulse response elements of L-1 virtual synthesis filters, and (g) the above-described repetitive processing and the above-described calculation element expansion processing. Autocorrelation value selection processing for selecting the result calculated from the autocorrelation value using the value of the original impulse response as significant, and (h) the impulse response and sound of the synthesis filter obtained by the impulse response acquisition processing described above. Cross-correlation calculation processing for performing cross-correlation value calculation of (1) and significant autocorrelation selected by the above-described autocorrelation value selection processing And a predetermined number of elements determined according to the L elements described above for the subframes set for each of the speech encoding algorithms among the cross-correlation values obtained by the cross-correlation calculation process described above and compared Unvoiced sound analysis processing for calculating information representing unvoiced sound components having no periodicity generated by air flow, which is one of the constituent elements of speech.Run as a speech encoding program,
  In the parallel processing described above, (d-1) “i” and “j” in the autocorrelation matrix Φ (i, j) as the lower triangular Toeplitz convolution matrix of the array of impulse responses h (n) described above are used. Initial setting process for initial setting at “0”, and (d-2) when the above-described impulse response array h (i) is executed in an actual device environment, the above-described impulse response array h (i) is a bit (a is a natural number) per data. This is an array of elements, and the bit width of a register used for arithmetic processing is b bits (b is a natural number), and a total of c (c is a natural number) register files are arranged in the arithmetic unit for the parallel operation described above. Suppose that the above-mentioned arithmetic unit can execute a maximum of n operations in parallel in one processing cycle. In the above-mentioned register, d is a quotient obtained by dividing b by a (d is a natural number) ) A bit data Since it is possible to read in a lump, the impulse response array h (i) to h (i + (d-1)) is first read into the arithmetic unit, and then the impulse response array h (j) to h. A reading process for reading (j + (d-1)), (d-3) an arithmetic process for calculating the integration result by parallelizing the next n arithmetic expressions in one processing cycle,
h (i) × h (j)
h (i + 1) × h (j + 1)
h (i + 2) × h (j + 2)
......
h (i + (n−1)) × h (j + (n−1))
(D-4) The value of “n” is added to the value of “i” and the value of “j”, respectively, and the accumulated result stored in the c register files of the computing unit is stored. The number is b (2) An arithmetic repeat control process for repeating the operation by the above-mentioned arithmetic means until the register file full value is obtained by multiplying the quotient divided by 2a until reaching the register file full value, and (d) 5 the register file full value is reached by this arithmetic repeat control means. Then, the register file storage control process for continuously storing all the integration results in the c register files is executed.
  The arithmetic element expansion process described above uses the property that the lower triangular Toeplitz convolution matrix is a symmetric matrix of N rows and N columns when the number of elements of the impulse response is N, and uses the autocorrelation matrix Φ (i, j ) Is calculated by calculating “n × (n + 1) / 2” instead of the square of all the elements n, and the relationship that the elements Φ (i, j) and Φ (j, i) are equal is calculated. This is characterized in that it is a process of interpolating element parts that are not calculated.
[0072]
【Example】
Hereinafter, the present invention will be described in detail with reference to examples.
[0073]
FIG. 1 shows a speech encoding apparatus according to an embodiment of the present invention. This speech coding apparatus is composed of a filter part 51, a sound source part 52 and a comparator part 53. The frame-divided audio signal 54 is first input to the filter part 51 and subjected to linear prediction analysis and quantization by a quantizer 55 to obtain a frequency filter characteristic, and then the frequency filter characteristic is quantized. . The quantized frequency filter characteristic is input to the synthesis filter 56 to form a filter having the filter characteristic of the input voice.
[0074]
The sound source portion 52 has an adaptive code book 57 that is a sound source that generates a signal of a periodic component corresponding to the voice pitch of the voice and a noise code book 58 that is a sound source that generates a signal other than the periodic component of the voice. . Then, a gain code book 59 for controlling the amplitude of the signal output from these sound sources, an adaptive code book signal amplifier 60 for adjusting the amplitude of the signal generated by the adaptive code book 57, and a noise code book 58 are generated. A noise codebook signal amplifier 61 for adjusting the amplitude of the signal is provided. These sound source signals whose amplitudes are adjusted are added by a sound source adder 62 and then input to the synthesis filter 56 of the filter part 51 to be generated as a synthesized speech 63 to which the strength for each frequency is added.
[0075]
A voice signal 54 and a synthesized voice 63 are input to the comparator section 53 and added by an adder 64. Here, the difference is obtained by inputting the composite signal 63 in a negative format. With respect to this difference, the auditory weighting filter 65 performs a filter process for strengthening frequency components that are difficult to hear in terms of hearing and weakening frequency components that are easy to hear in terms of hearing. This process reduces redundant information in terms of human hearing and reduces the amount of information. The signal whose frequency component is adjusted by the perceptual weighting filter 65 is input to the error minimizer 66. The error minimizer 66 obtains an error by calculating a least square error between the synthesized speech 63 and the speech signal 54 and causes another signal output to be executed for each codebook of the sound source region 52. This process is repeatedly executed, and the output signal from the code book when the error is minimized is regarded as the target signal, and the code assigned to this signal is obtained as the output of the speech coding apparatus. The error minimizer 66 performs an operation for obtaining the least square error using a microprocessor (not shown). For this purpose, an autocorrelation calculation of an impulse response based on the frequency filter characteristic of the synthesis filter 56 is performed. The autocorrelation calculation of the impulse response has a large calculation amount and tends to take a relatively long time for processing. Therefore, the following method is used in order to perform this process efficiently and in a short time.
[0076]
FIG. 2 shows the autocorrelation matrix Φ (i, j) of the impulse response h (n) of the perceptual weighting synthesis filter. A region 11 is a region where a significant calculation result is set. The region 12 is a region that is a symmetric matrix of the region 11. The area 13 is an area in which virtual calculation results that are not used for subsequent calculations are set. That is, the range 14 that collectively shows the region 11 and the region 12 is an intermediate value necessary for the subsequent calculation, and the range 15 is a virtual value that is not used for the subsequent calculation.
[0077]
The values of VA to VF shown in FIG. 2 are specifically shown below.
VA = h (0)2        ...... (18)
[0078]
VB = h (1)2+ H (0)2        ...... (19)
[0079]
[Equation 8]
Figure 0004228630
[0080]
VD = h (0) × h (1) (21)
[0081]
[Equation 9]
Figure 0004228630
[0082]
VF = h (0) × h (n−1) (23)
[0083]
A method for obtaining the autocorrelation matrix Φ (i, j) of the impulse response h (n) of the perceptual weighting synthesis filter will be described. This matrix is a lower triangular Toeplitz convolution matrix with N rows and N columns, and the autocorrelation matrix Φ (i, j) is a symmetric matrix with N rows and N columns. By using the property of being a symmetric matrix, “n × (n + 1) / 2” is calculated instead of the square of all elements n in calculating Φ (i, j). Then, by utilizing the relationship in which the element Φ (i, j) and the element Φ (j, i) are equal, an element part that is not actually calculated is interpolated. That is, since this matrix Φ (i, j) is a symmetric matrix, all the elements of the region 11 and the region 12 can be obtained by calculating only the region 11. The calculation of each element is accumulated in the direction of the arrow from the lower right in FIG. The loop process is repeated for each arrow, and the value of h (n) to be multiplied is shifted. The element on the diagonal line of the N term is calculated by the loop processing of the first round. The first term can be expressed by the following equation (24).
h (0)2        (24)
[0084]
The second term can be expressed by the following equation (25).
h (0)2+ H (1)2        ...... (25)
[0085]
Hereinafter, the n-th term can be expressed as the following equation (26).
[Expression 10]
Figure 0004228630
[0086]
In the loop processing for the second round, the “39” term obtained by shifting the accumulated h (i) by one is calculated from the lower right to the upper left arrow. The first term of the loop processing in the second round can be expressed by the following equation (27).
h (0) × h (1) (27)
[0087]
The second term of the loop processing in the second round can be expressed by the following equation (28).
h (0) × h (1) + h (1) × h (2) (28)
[0088]
The n-1th term of the loop processing in the second round can be expressed by the following equation (29).
## EQU11 ##
Figure 0004228630
[0089]
Further, the first term in the n-th loop processing can be expressed by the following equation (30).
h (0) × h (n−1) (30)
[0090]
After obtaining the elements of the region 11 of FIG. 2 by the above calculation, the elements of the region 11 are copied to the region 12 so as to be symmetrical with respect to the diagonal portion of the matrix included in the region 11. As a result, all the elements of the matrix Φ (i, j) can be obtained.
[0091]
The above is the basic processing for obtaining the matrix Φ (i, j). In order to shorten the calculation time, the following processing is performed.
[0092]
First, an autocorrelation matrix Φ (i, j) represented by a two-dimensional matrix of N rows and N columns is represented as a one-dimensional array oda [indk]. This one-dimensional array oda [indk] can be expressed by the following equation (31).
[Expression 12]
Figure 0004228630
[0093]
  Here, specific values and ranges of the respective variables are shown with the recommendation GSM-AMR as a specific example. The recommendation GSM-AMR is a frame length obtained by dividing a voice signal into a fixed length of 20 milliseconds, which is further divided into four sub-frames of 5 milliseconds, and encoding is performed with this sub-frame as one unit. is there. The cycle for sampling the audio signal is 8 kilohertz, which is common in audio signal processing. The number of samples in one subframe is obtained as a product of 5 milliseconds and 8 kilohertz, and is “40” samples. The number of samples “40” is an element of each row and column of an N × N matrix for obtaining autocorrelation. That is, the matrix of N rows and N columns is a matrix of 40 rows and 40 columns, and the number of elements of the matrix is “1600” which is a product of “40” and “40”. Since this one-dimensional matrix having 1600 elements is set to oda [indk], one element of the matrix isNumberingThe range of the value of indk used as the value to be is 0 or more and less than 1600. The value of p in equation (31) is the one-dimensional matrix oda [indk].NumberingThis is the quotient when the value of indk is divided by the number of elements in the row “40”. The value of m in equation (31) is the one-dimensional matrix oda [indk].NumberingThis is the remainder when the value of indk is divided by the number of elements in the row “40”.
[0094]
When calculating the one-dimensional array oda [indk], the range of the impulse response array h (n) of the auditory weighting synthesis filter is expanded, and the calculation is performed including values that are not used in the subsequent calculation. That is, if the array h (n) is not expanded, “N−j” times of h (0) × h (j) to h (N−1−j) × h (N−1) The calculation is performed N times from h (0) × h (j) to h (N−1) × h (N−1 + j). Specifically, the array h (N−1) of impulse responses of the audibility and audibility weighting synthesis filter is expanded to h (2 × N−1). That is, the number of elements is expanded from N to “2 × N−1”. However, although this extended part is used in the calculation, since the calculation result is not used, it is sufficient to declare the area, and it is not necessary to specify the value of the element.
[0095]
FIG. 3 and FIG. 4 show processing for obtaining the autocorrelation matrix of the impulse response array h (n) of the perceptual weighting synthesis filter.
[0096]
First, the sign of each element of the impulse response array h (n) of the perceptual weighting synthesis filter is obtained and stored. (FIG. 3, step S51)
[0097]
FIG. 5 shows an area in which only the sign bit of the array h (n) of the impulse response of the perceptual weighting synthesis filter is extracted and stored. As shown in FIG. 5, only the sign bit of the impulse response array h (n) of the perceptual weighting synthesis filter is extracted and stored in order in the region sig_n [0] and the region sig_n [1]. sig_n [0] uses the lower 8 bits as a significant area. sig_n [1] uses all 32 bits as a significant area.
[0098]
When calculating each element of the impulse response array of the perceptual weighting synthesis filter, N elements are always calculated so as to protrude beyond the expanded portion of h (i). A region 13 in FIG. 2 is the protruding portion. This area 13 is not necessary for subsequent calculations. The first half of the process for obtaining the autocorrelation of the impulse response of the perceptual weighting synthesis filter is an integration process between the elements. This integration is performed by gradually increasing “i” and “j” from “h (i) × h (j)”. Since the number of elements of the impulse response array of the perceptual weighting synthesis filter is N, the range of the value of “i” is “0” or more and “N−1” or less. Further, “j” is not less than “i” and not more than “N−1”, but the calculation of “h (i) × h (j)” can be repeated N times regardless of the value of “i”. Furthermore, the range of the value of “j” with respect to the array of impulse responses h (i) of the perceptual weighting synthesis filter is expanded to “i” or more and “i + N−1” or less.
[0099]
  Returning to FIG. 3, the description will be continued. The array of impulse responses h (n) of the perceptual weighting synthesis filterNumberingInitialize “i” and “j” with “0”.(Step S52).
[0100]
It is assumed that the impulse response array h (i) of the perceptual weighting synthesis filter is an array of 16-bit elements per data. This is continuously stored in the storage area. Further, it is assumed that the bit width of the register which is a storage area used for the arithmetic processing of the arithmetic unit of the microprocessor (not shown) is 128 bits. The computing unit can execute a maximum of four computations in parallel in one processing cycle. That is, it is possible to collectively read 8 pieces of 16-bit data into the register of the arithmetic unit. Therefore, the impulse responses h (i) to h (i + 7) of the perceptual weighting synthesis filter are read at the first reading process to the arithmetic unit (step S53), and the perceptual weighting synthesis filter impulse is read at the second reading process to the arithmetic unit. Responses h (j) to h (j + 7) are read (step S54). Then, the following four arithmetic expressions (32) to (35) are executed in parallel in one processing cycle (step S55).
[0101]
h (i) × h (j) (32)
[0102]
h (i + 1) × h (j + 1) (33)
[0103]
h (i + 2) × h (j + 2) (34)
[0104]
h (i + 3) × h (j + 3) (35)
[0105]
  Since each calculation is “16-bit data × 16-bit data”, a storage area of a maximum of 32 bits of “16 bits + 16 bits” is required to store each calculation result. Therefore, the bit width of the storage area for storing these four calculation results is uniformly “32 bits × 4”. This “32 bits × 4” storage area is secured in 10 register files of 128-bit width capable of high-speed data transfer to the registers of the arithmetic unit continuously. After performing four operations, “4” is added to the value of “i” and “4” is added to the value of “j” to prepare for the next operation process (step S56). Then, the four arithmetic expressions (32) to (35) are again executed in parallel in one processing cycle (step S57). This process is repeated until it reaches 10 times (step S59: N), and "4" is added to the value of "i" and "4" is added to the value of "j" for each repetition process. (Step S58). When five repetitions are completed (step S59: Y), a total of 40 integration results are obtained. A total of 40 data is stored in 10 128-bit register files, 4 data each. Then, addition processing is performed using the integration result. When performing addition processing, 10 register filesNumberingThe index value to be initialized is initially set to “0” (step S60 in FIG. 4).
[0106]
FIG. 6 shows a register to be subjected to addition processing performed using the results obtained by performing the four parallel integrations performed so far and the flow of the addition processing. This addition process is also executed in parallel.
[0107]
Register 21 of FIG.1~ 21ThreeAre physically the same register, but are given different symbols in order to represent changes in the contents as the processing cycle progresses. Register 221~ 22ThreeAnd register 231~ 23ThreeThe same applies to. Each register is 128 bits wide and is composed of four 32-bit register elements. For example, register 211Is the register element 311~ 31FourAnd the register 221Is the register element 321~ 32FourIt consists of The register 231Register element 331~ 33FourIt consists of Each of these register elements is physically the same register element in order to represent a change in contents accompanying the progress of the processing cycle, but is given a different reference for each processing cycle. For example, register element 311And register element 31FiveAnd register element 319Are physically identical and similarly register element 321And register element 32FiveAnd register element 329Are physically identical. The same applies to the other register elements.
[0108]
  The flow of the addition process will be described with reference to FIG. In the first processing cycle in which addition is performed, first, the register 211~ 21ThreeAll the register elements are initialized by setting "0" (step S60 in FIG. 4). And register 211The register file that stores the integration results inNumberingThe four integration results obtained in this way are written (step S61 in FIG. 4). As a specific example, the register element 31Four“H (i) × h (j)” is written to the register element 31ThreeIs written as “h (i + 1) × h (j + 1)”. Furthermore, the register element 312“H (i + 2) × h (j + 2)” is written to the register element 311Is written as “h (i + 3) × h (j + 3)”. After this writing is completed, “1” is added to the index value of the register file storing the integration result (step S62 in FIG. 4). This writing of the addition result shall be overwritten in order on the ten register files storing the integration results. In this way, 40 32-bit data can be taken over to the subsequent calculation without performing another memory access.
[0109]
  In the second cycle in which addition is performed, addition is performed using the contents of the register set in the first cycle in which addition is performed. Register 211And 221Register 22 is added to register 222Write to. The register 212Register 21 in the first processing cycle in which addition is performed.14 pieces of 128-bit data, which is the next integration result set to 1, are written together. Register 211Register element 31 of1And register 211Register element 31 of2And register 211Register element 31 ofThreeIs added to the register 222Register element 32 ofFiveSet to. In parallel with this, the register 211Register element 31 of2And register 211Register element 31 ofThreeIs added to the register 222Register element 32 of6Set to. In parallel with this, the register 211Register element 31 ofThreeRegister 222Register element 32 of7Set to. In parallel with this, the register 211Register element 31 ofFourAnd register 221Register element 32 of1And register 221Register element 32 ofFourAnd register 222Register element 32 of8Set to. Further in parallel with these, the register 212Register element 31 ofFive, 316, 317, 318In contrast, register 21 in the previous cycle1Next to the integration result set inIntegration result data4 piecesRegister 21 2 InSetting is made (step S63 in FIG. 4). These four integration results show the register file with the current index value.NumberingAnd ask. After this writing is completed, “1” is added to the index value of the register file in which the integration result is stored (step S64 in FIG. 4).
[0110]
  In the third processing cycle in which addition is performed, addition is performed using the contents of the register set in the second cycle in which addition is performed. Register 212And 222Register 22 is added to register 22ThreeWrite to. The register 21ThreeRegister 21 in the second processing cycle in which addition is performed.24 pieces of 128-bit data, which is the next integration result set to 1, are written together. Register 222Register element 32 ofFiveAnd register 222Register element 32 of8And register 23ThreeRegister element 33 of9Set to. In parallel with this, the register 222Register element 32 of6And register 222Register element 32 of8And register 23ThreeRegister element 33 ofTenSet to. In parallel with this, the register 222Register element 32 of7And register 222Register element 32 of8And register 23ThreeRegister element 33 of11Set to. In parallel with this, the register 222Register element 32 of8, Register 23ThreeRegister element 33 of12Set to. In parallel with this, the register 212Register element 31 ofFiveAnd register 212Register element 31 of6And register 212Register element 31 of7Is added to the register 22ThreeRegister element 32 of9Set to. In parallel with this, the register 212Register element 31 of6And register 212Register element 31 of7Is added to the register 22ThreeRegister element 32 ofTenSet to. In parallel with this, the register 212Register element 31 of7Register 22ThreeRegister element 32 of11Set to. In parallel with this, the register 212Register element 31 of8And register 222Register element 32 ofFiveAnd register 222Register element 32 of8And register 22ThreeRegister element 32 of12Set to. Furthermore, in parallel with these, the register 21ThreeOf 319, 31Ten, 3111, 3112In the previous cycle, register 212The four integration results in the storage area next to the integration result set in (4) are set (step S65 in FIG. 4). These four integration results show the register file with the current index value.NumberingAnd ask. After this writing is completed, “1” is added to the index value of the register file storing the integration result (step S66 in FIG. 4). And register 23ThreeThe write destination to the 128-bit register file in which the value of 1 is written is advanced by one register file.
[0111]
  The third processing cycle in which this addition is performed is further repeated nine times for a total of 10 times (step S67: N in FIG. 4). Thus, addition processing is performed for all of “10 pieces × 4 data” obtained by the integration processing.In this way, the integration result of the flowchart shown in FIG. 3 is added in the flowchart shown in FIG.Thus, a total of 12 cycles of addition processing is performed, and 40 product-sum results required for 10 128-bit register files are stored (step S67: Y).
[0112]
Then, the codes of the area sig_n [0] and the area sig_n [1] stored in advance are added to each of the 40 product-sum results (step S68).
[0113]
  The above-mentioned process of “repeating 4 parallel integrations 10 times and performing 4 parallel additions for 12 cycles and adding code data to the result” is an element of the impulse response h (n) of the perceptual weighting synthesis filter. The number is repeated “40” times (step S69: N). When performing this iteration, the impulse response h (n) of the perceptual weighting synthesis filter isNumberingThe index value “i” to be set is set to “0”. At the same time, the impulse response h (n) of the perceptual weighting synthesis filter for each repetition.NumberingIn order to advance the starting point of the index value “j” to be incremented by “1”, “1” is added to “j” (step S70). By performing this iteration 40 times, all 1600 elements of the autocorrelation matrix Φ (i, j) of the impulse response of the perceptual weighting synthesis filter can be obtained in the form of a one-dimensional array (step S69: Y ).
[0114]
In this way, the autocorrelation value calculation is performed by the parallel calculation means of the calculator. Furthermore, this autocorrelation calculation is repeated as seamlessly as possible. An autocorrelation calculation break occurs when it is necessary to obtain an area in which the impulse response element of the synthesis filter is stored by calculation when the element of the impulse response of the synthesis filter is taken into the calculator. Therefore, each element of the impulse response of the synthesis filter is stored continuously so that the storage area does not have to be obtained by calculation. However, in order to repeatedly perform a calculation using a finite number of elements, it may be necessary to obtain an area in the middle of the storage area by calculation. Therefore, the frequency at which this calculation occurs is reduced. For this purpose, L-1 elements of the impulse response of the synthesis filter are virtually increased, and the autocorrelation calculation is performed as if there is an element to be calculated. As a result, the calculation for the increase is performed, but this is compensated by the effect of reducing the number of autocorrelation calculations and the number of storage area calculations by parallel calculation, and the processing time is shortened comprehensively.
[0115]
Of course, what is expressed as a frame in this specification includes not only frames but also subframes.
[0116]
【The invention's effect】
As described above, according to the first or second aspect of the invention, the autocorrelation of the impulse response element of the perceptual weighting synthesis filter obtained from the input speech is added to the n parallel operation means capable of performing parallel operation. Calculations are executed continuously as much as possible. As a result, the processing capability of the parallel computing means is effectively utilized. Therefore, even a processor having a relatively low operating frequency can encode a speech signal in a relatively short time.
[0117]
According to the third aspect of the present invention, the parallel operation means performs the parallel operation with the maximum number that can perform the parallel operation in one processing cycle. This makes effective use of the processing capability of the computing unit. Therefore, even a processor having a relatively low operating frequency can encode a speech signal in a relatively short time.
[0118]
Furthermore, according to the invention described in claim 4 or claim 5, the autocorrelation calculation of the impulse response element of the auditory weighting synthesis filter obtained from the input speech is performed as much as possible in the parallel calculation processing capable of n parallel calculations. It is running continuously. As a result, the processing capability of the parallel processing is effectively utilized. Therefore, even a processor having a relatively low operating frequency can encode a speech signal in a relatively short time.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a main part of a speech encoding apparatus using a code-excited linear prediction technique according to an embodiment of the present invention.
FIG. 2 is an explanatory diagram showing an autocorrelation matrix of an impulse response of the perceptual weighting synthesis filter of the present embodiment.
FIG. 3 is a flowchart showing a flow of integration processing for obtaining an autocorrelation matrix of an impulse response array h (n) of the perceptual weighting synthesis filter of the present embodiment.
FIG. 4 is a flowchart showing a flow of an addition process for obtaining an autocorrelation matrix of an impulse response array h (n) of the perceptual weighting synthesis filter of the present embodiment.
FIG. 5 is an explanatory diagram showing an area for storing a sign bit of an impulse response array h (n) of the perceptual weighting synthesis filter according to the embodiment;
FIG. 6 is a block diagram illustrating a register to be subjected to parallel addition processing according to the present embodiment and addition processing;
FIG. 7 is a block diagram showing a main part of a speech encoding apparatus and speech decoding apparatus using code-excited linear prediction technology.
FIG. 8 is a block diagram showing a main part of a speech encoding apparatus using a code-excited linear prediction technique.
FIG. 9 is an explanatory diagram showing an estimated signal searched from a speech signal and a code book and a difference between the two signals as a vector signal.
[Explanation of symbols]
11 areas (areas where significant calculation results are set)
12 regions (regions that are symmetric matrices of region 11)
13 areas (areas where virtual calculation results are set)
14 range (intermediate value required for subsequent calculations)
15 range (virtual value)

Claims (5)

通話者が発する音声を入力する音声入力手段と、
この音声入力手段で入力された音声を代数符号励振線形予測による音声符号化アルゴリズムごとに、L個(Lは自然数)の標本を持つサブフレームq個(qは自然数)を持つ、所定の単位時間長としてのフレームに分割する分割手段と、
この分割手段で分割された音声のフレームごとの周波数強度分布を表わすスペクトラム包絡に基づく周波数入出力特性をもち、前記音声符号化アルゴリズムで音源信号と共に音声合成モデルを構成する合成フィルタを生成する合成フィルタ生成手段と、
この合成フィルタ生成手段によって生成された合成フィルタに広帯域の周波数成分を均等に含むインパルス信号を入力した際の応答であり、音声符号化アルゴリズムごとに定まるL個の要素をもつ前記合成フィルタのインパルス応答を求めるインパルス応答取得手段と、
このインパルス応答取得手段によって求めたL個の合成フィルタのインパルス応答を、下三角テプリッツ畳み込み行列の要素として、前記下三角テプリッツ畳み込み行列とその転置行列の積を、その積が対称行列となる性質を利用して作成し、前記下三角テプリッツ畳み込み行列とその転置行列の自己相関演算を合成フィルタのインパルス応答のL個の要素のうちのこれよりも少ないn個(nは自然数)の要素ずつ取り出して1処理周期あたりn個の要素を並列して実行する並列演算で、n個の合成フィルタのインパルス応答の自己相関値を求める並列演算手段と、
この並列演算手段によるn個の要素に関する前記並列演算を繰り返してL×L個の合成フィルタのインパルス応答の自己相関値を求める繰り返し手段と、
この繰り返し手段によるn個の要素に関する前記並列演算の繰り返しにより、演算対象の合成フィルタのインパルス応答の要素をL個を越える要素数に仮想的に拡張して前記並列演算による自己相関演算を実施する演算要素拡張手段と、
前記繰り返し手段と前記演算要素拡張手段によって求めた自己相関値から、本来のインパルス応答の値を用いて演算した結果を有意なものとして選択する自己相関値選択手段と、
前記インパルス応答取得手段で求めた合成フィルタのインパルス応答と音声の相互相関値演算を行う相互相関演算手段と、
前記自己相関値選択手段によって選択した有意な自己相関値と前記相互相関演算手段によって求めた相互相関値のうちの前記音声符号化アルゴリズムごとに設定されるサブフレームについての前記L個の要素に応じて定まる所定の個数の要素を選び出して比較演算を行い音声の構成要素の1つである空気の流れによって生じる周期性をもたない無声音成分を表わす情報を求める無声音解析手段と、
この無声音解析手段によって求めた無声音成分を表わす情報を音声の非周期成分の要素として前記通話者の通話相手に向けて出力する出力手段とを備え、
前記並列演算手段は、
前記インパルス応答の配列h(n)の前記下三角テプリッツ畳み込み行列としての自己相関行列Φ(i,j)における“i”と“j”を“0”で初期設定する初期設定手段と、
この演算を実装置環境上で実施するにあたって前記インパルス応答の配列h(i)が1データ当たりaビット(aは自然数)の要素の配列であり、演算処理に使用するレジスタのビット幅がbビット(bは自然数)で、全部でc個(cは自然数)のレジスタファイルが前記並列演算のための演算器に配置されているものとし、前記演算器は1処理周期に最大n個の演算を並列して実行できるものとしたとき、前記レジスタにはbをaで割った商であるd個(dは自然数)のaビットデータを一括して読み込むことが可能なことにより、前記演算器にまずインパルス応答の配列h(i)〜h(i+(d−1))を読み込み、次にインパルス応答の配列h(j)〜h(j+(d−1))を読み込む読込処理手段と、
次のn個の演算式を1処理周期で並列して、それぞれ積算結果を求める演算手段と、
h(i)×h(j)
h(i+1)×h(j+1)
h(i+2)×h(j+2)
……
h(i+(n−1))×h(j+(n−1))
前記“i”の値および前記“j”の値に“n”の値をそれぞれ加算して、前記演算器の前記c個のレジスタファイルに格納する積算結果の個数がbを2aで割った商にcを掛けたレジスタファイル満杯値に達するまで前記演算手段による演算を繰り返す演算繰り返し制御手段と、
この演算繰り返し制御手段によって前記レジスタファイル満杯値に到達したとき、これら全積算結果を前記c個のレジスタファイルに連続で格納するレジスタファイル格納制御手段を具備し、
前記演算要素拡張手段は、前記下三角テプリッツ畳み込み行列がインパルス応答の要素数をNとするとき、N行N列の対称行列である性質を利用して、自己相関行列Φ(i,j)を算出するにあたり全要素nの二乗個ではなく、「n×(n+1)/2」個を計算し、要素Φ(i,j)と要素Φ(j,i)が等しいものである関係を利用して、計算を行っていない要素部分を補間する
ことを特徴とする音声符号化装置。
A voice input means for inputting voice uttered by the caller;
A predetermined unit time having q subframes (q is a natural number) having L (L is a natural number) samples for each speech encoding algorithm based on algebraic code excitation linear prediction. A dividing means for dividing the frame into long frames;
A synthesis filter having frequency input / output characteristics based on a spectrum envelope representing a frequency intensity distribution for each frame of speech divided by the dividing means, and generating a synthesis filter constituting a speech synthesis model together with a sound source signal by the speech encoding algorithm Generating means;
The impulse response of the synthesis filter having L elements determined for each speech encoding algorithm, which is a response when an impulse signal that uniformly includes a wideband frequency component is input to the synthesis filter generated by the synthesis filter generation means Impulse response acquisition means for obtaining
The impulse response of the L synthesis filters obtained by the impulse response acquisition means is used as an element of a lower triangular Toeplitz convolution matrix, and the product of the lower triangular Toeplitz convolution matrix and its transpose matrix, and the product becomes a symmetric matrix. By using the lower triangular Toeplitz convolution matrix and its transpose matrix, the n elements (n is a natural number) smaller than the L elements of the impulse response of the synthesis filter are extracted. Parallel computing means for obtaining autocorrelation values of impulse responses of n synthesis filters in parallel computation for executing n elements in parallel per processing cycle;
Repetitive means for obtaining autocorrelation values of impulse responses of L × L synthesis filters by repeating the parallel calculation of n elements by the parallel calculation means;
By repeating the parallel calculation for n elements by the repetition means, the impulse response elements of the synthesis filter to be calculated are virtually expanded to the number of elements exceeding L, and the autocorrelation calculation by the parallel calculation is performed. Arithmetic element expansion means;
Autocorrelation value selection means for selecting a result calculated using an original impulse response value as significant from the autocorrelation values obtained by the repetition means and the calculation element expansion means;
A cross-correlation calculating means for calculating a cross-correlation value between the impulse response of the synthesis filter obtained by the impulse response acquiring means and the sound;
According to the L elements of the subframes set for each of the speech encoding algorithms, among the significant autocorrelation value selected by the autocorrelation value selection unit and the crosscorrelation value obtained by the crosscorrelation calculation unit. An unvoiced sound analyzing means for selecting information representing an unvoiced sound component having no periodicity generated by the flow of air, which is one of the components of the sound, by selecting a predetermined number of elements determined by
Output means for outputting information representing the unvoiced sound component obtained by the unvoiced sound analysis means to the other party as a non-periodic component of the voice,
The parallel computing means includes
Initial setting means for initially setting “i” and “j” at “0” in the autocorrelation matrix Φ (i, j) as the lower triangular Toeplitz convolution matrix of the array of impulse responses h (n);
In performing this operation in an actual device environment, the impulse response array h (i) is an array of elements of a bits (a is a natural number) per data, and the bit width of the register used for the arithmetic processing is b bits. (B is a natural number) and a total of c register files (c is a natural number) are arranged in the arithmetic unit for the parallel operation, and the arithmetic unit performs a maximum of n operations in one processing cycle. When it can be executed in parallel, the register can read d pieces of a-bit data (d is a natural number), which is a quotient obtained by dividing b by a. Read processing means for reading the impulse response array h (i) to h (i + (d-1)) first, and then reading the impulse response array h (j) to h (j + (d-1));
The following n arithmetic expressions are parallelized in one processing cycle, and each of the arithmetic means obtains an integration result;
h (i) × h (j)
h (i + 1) × h (j + 1)
h (i + 2) × h (j + 2)
......
h (i + (n−1)) × h (j + (n−1))
The value of “n” is added to the value of “i” and the value of “j”, respectively, and the number of integration results stored in the c register files of the computing unit is the quotient obtained by dividing b by 2a. A calculation repeat control means for repeating the calculation by the calculation means until a register file full value multiplied by c is reached;
When the register file full value is reached by the arithmetic repeat control means, the register file storage control means for continuously storing all the integration results in the c register files,
The arithmetic element expanding means uses the property that the lower triangular Toeplitz convolution matrix is an N-row N-column symmetric matrix when the number of impulse response elements is N, and calculates an autocorrelation matrix Φ (i, j). In calculating, instead of the square of all the elements n, “n × (n + 1) / 2” is calculated, and the relationship that the elements Φ (i, j) and Φ (j, i) are equal is used. A speech encoding apparatus characterized by interpolating element parts that have not been calculated.
通話者が発する音声を入力する音声入力手段と、
この音声入力手段で入力された音声を代数符号励振線形予測による音声符号化アルゴリズムごとに、L個(Lは自然数)の標本を持つサブフレームq個(qは自然数)を持つ、所定の単位時間長としてのフレームに分割する分割手段と、
この分割手段で分割された音声のフレームごとの周波数強度分布を表わすスペクトラム包絡に基づく周波数入出力特性をもち、前記音声符号化アルゴリズムで音源信号と共に音声合成モデルを構成する合成フィルタを生成する合成フィルタ生成手段と、
この合成フィルタ生成手段によって生成された合成フィルタに広帯域の周波数成分を均等に含むインパルス信号を入力した際の応答であり、音声符号化アルゴリズムごとに定まるL個の要素をもつ前記合成フィルタのインパルス応答を求めるインパルス応答取得手段と、
このインパルス応答取得手段によって求めたL個の合成フィルタのインパルス応答を、下三角テプリッツ畳み込み行列の要素として、前記下三角テプリッツ畳み込み行列とその転置行列の積を、その積が対称行列となる性質を利用して作成し、前記下三角テプリッツ畳み込み行列とその転置行列の自己相関演算を合成フィルタのインパルス応答のL個の要素のうちのこれよりも少ないn個(nは自然数)の要素ずつ取り出して1処理周期あたりn個の要素を並列して実行する並列演算で、n個の合成フィルタのインパルス応答の自己相関値を求める並列演算手段と、
この並列演算手段によるn個の要素に関する前記並列演算を繰り返してL×L個の合成フィルタのインパルス応答の自己相関値を求める繰り返し手段と、
この繰り返し手段によるn個の要素に関する前記並列演算の繰り返しにより、演算対象の合成フィルタのインパルス応答の要素にL−1個の仮想的な合成フィルタのインパルス応答要素を追加拡張して前記並列演算を実施する演算要素拡張手段と、
前記繰り返し手段と前記演算要素拡張手段によって求めた自己相関値から、本来のインパルス応答の値を用いて演算した結果を有意なものとして選択する自己相関値選択手段と、
前記インパルス応答取得手段で求めた合成フィルタのインパルス応答と音声の相互相関値演算を行う相互相関演算手段と、
前記自己相関値選択手段によって選択した有意な自己相関値と前記相互相関演算手段によって求めた相互相関値のうちの前記音声符号化アルゴリズムごとに設定されるサブフレームについての前記L個の要素に応じて定まる所定の個数の要素を選び出して比較演算を行い音声の構成要素の1つである空気の流れによって生じる周期性をもたない無声音成分を表わす情報を求める無声音解析手段と、
この無声音解析手段によって求めた無声音成分を表わす情報を音声の非周期成分の要素として前記通話者の通話相手に向けて出力する出力手段とを備え、
前記並列演算手段は、
前記インパルス応答の配列h(n)の前記下三角テプリッツ畳み込み行列としての自己相関行列Φ(i,j)における“i”と“j”を“0”で初期設定する初期設定手段と、
この演算を実装置環境上で実施するにあたって前記インパルス応答の配列h(i)が1データ当たりaビット(aは自然数)の要素の配列であり、演算処理に使用するレジスタのビット幅がbビット(bは自然数)で、全部でc個(cは自然数)のレジスタファイルが前記並列演算のための演算器に配置されているものとし、前記演算器は1処理周期に最大n個の演算を並列して実行できるものとしたとき、前記レジスタにはbをaで割った商であるd個(dは自然数)のaビットデータを一括して読み込むことが可能なことにより、前記演算器にまずインパルス応答の配列h(i)〜h(i+(d−1))を読み込み、次にインパルス応答の配列h(j)〜h(j+(d−1))を読み込む読込処理手段と、
次のn個の演算式を1処理周期で並列して、それぞれ積算結果を求める演算手段と、
h(i)×h(j)
h(i+1)×h(j+1)
h(i+2)×h(j+2)
……
h(i+(n−1))×h(j+(n−1))
前記“i”の値および前記“j”の値に“n”の値をそれぞれ加算して、前記演算器の前記c個のレジスタファイルに格納する積算結果の個数がbを2aで割った商にcを掛けたレジスタファイル満杯値に達するまで前記演算手段による演算を繰り返す演算繰り返し制御手段と、
この演算繰り返し制御手段によって前記レジスタファイル満杯値に到達したとき、これら全積算結果を前記c個のレジスタファイルに連続で格納するレジスタファイル格納制御手段を具備し、
前記演算要素拡張手段は、前記下三角テプリッツ畳み込み行列がインパルス応答の要素数をNとするとき、N行N列の対称行列である性質を利用して、自己相関行列Φ(i,j)を算出するにあたり全要素nの二乗個ではなく、「n×(n+1)/2」個を計算し、要素Φ(i,j)と要素Φ(j,i)が等しいものである関係を利用して、計算を行っていない要素部分を補間する
ことを特徴とする音声符号化装置。
A voice input means for inputting voice uttered by the caller;
A predetermined unit time having q subframes (q is a natural number) having L (L is a natural number) samples for each speech encoding algorithm based on algebraic code excitation linear prediction. A dividing means for dividing the frame into long frames;
A synthesis filter having frequency input / output characteristics based on a spectrum envelope representing a frequency intensity distribution for each frame of speech divided by the dividing means, and generating a synthesis filter constituting a speech synthesis model together with a sound source signal by the speech encoding algorithm Generating means;
The impulse response of the synthesis filter having L elements determined for each speech encoding algorithm, which is a response when an impulse signal that uniformly includes a wideband frequency component is input to the synthesis filter generated by the synthesis filter generation means Impulse response acquisition means for obtaining
The impulse response of the L synthesis filters obtained by the impulse response acquisition means is used as an element of a lower triangular Toeplitz convolution matrix, and the product of the lower triangular Toeplitz convolution matrix and its transpose matrix, and the product becomes a symmetric matrix. By using the lower triangular Toeplitz convolution matrix and its transpose matrix, the n elements (n is a natural number) smaller than the L elements of the impulse response of the synthesis filter are extracted. Parallel computing means for obtaining autocorrelation values of impulse responses of n synthesis filters in parallel computation for executing n elements in parallel per processing cycle;
Repetitive means for obtaining autocorrelation values of impulse responses of L × L synthesis filters by repeating the parallel calculation of n elements by the parallel calculation means;
By repeating the parallel calculation for n elements by the repetition means, the impulse response elements of L-1 virtual synthesis filters are additionally expanded to the impulse response elements of the synthesis filter to be calculated, and the parallel calculation is performed. Computing element expansion means to be implemented;
Autocorrelation value selection means for selecting a result calculated using an original impulse response value as significant from the autocorrelation values obtained by the repetition means and the calculation element expansion means;
A cross-correlation calculating means for calculating a cross-correlation value between the impulse response of the synthesis filter obtained by the impulse response acquiring means and the sound;
According to the L elements of the subframes set for each of the speech encoding algorithms, among the significant autocorrelation value selected by the autocorrelation value selection unit and the crosscorrelation value obtained by the crosscorrelation calculation unit. An unvoiced sound analyzing means for selecting information representing an unvoiced sound component having no periodicity generated by the flow of air, which is one of the components of the sound, by selecting a predetermined number of elements determined by
Output means for outputting information representing the unvoiced sound component obtained by the unvoiced sound analysis means to the other party as a non-periodic component of the voice,
The parallel computing means includes
Initial setting means for initially setting “i” and “j” at “0” in the autocorrelation matrix Φ (i, j) as the lower triangular Toeplitz convolution matrix of the array of impulse responses h (n);
In performing this operation in an actual device environment, the impulse response array h (i) is an array of elements of a bits (a is a natural number) per data, and the bit width of the register used for the arithmetic processing is b bits. (B is a natural number) and a total of c register files (c is a natural number) are arranged in the arithmetic unit for the parallel operation, and the arithmetic unit performs a maximum of n operations in one processing cycle. When it can be executed in parallel, the register can read d pieces of a-bit data (d is a natural number), which is a quotient obtained by dividing b by a. Read processing means for reading the impulse response array h (i) to h (i + (d-1)) first, and then reading the impulse response array h (j) to h (j + (d-1));
The following n arithmetic expressions are parallelized in one processing cycle, and each of the arithmetic means obtains an integration result;
h (i) × h (j)
h (i + 1) × h (j + 1)
h (i + 2) × h (j + 2)
......
h (i + (n−1)) × h (j + (n−1))
The value of “n” is added to the value of “i” and the value of “j”, respectively, and the number of integration results stored in the c register files of the computing unit is the quotient obtained by dividing b by 2a. A calculation repeat control means for repeating the calculation by the calculation means until a register file full value multiplied by c is reached;
When the register file full value is reached by the arithmetic repeat control means, the register file storage control means for continuously storing all the integration results in the c register files,
The arithmetic element expanding means uses the property that the lower triangular Toeplitz convolution matrix is an N-row N-column symmetric matrix when the number of impulse response elements is N, and calculates an autocorrelation matrix Φ (i, j). In calculating, instead of the square of all the elements n, “n × (n + 1) / 2” is calculated, and the relationship that the elements Φ (i, j) and Φ (j, i) are equal is used. A speech encoding apparatus characterized by interpolating element parts that have not been calculated.
前記並列演算手段は、1処理周期で並列演算を行うことが可能な最大数の並列演算を実施する手段であることを特徴とする請求項1または請求項2記載の音声符号化装置。The parallel calculating means, the speech encoding apparatus according to claim 1 or claim 2, wherein it is a means for performing the maximum number of parallel operations that can perform parallel arithmetic at 1 processing cycle. コンピュータに、
音声入力手段で入力された音声を代数符号励振線形予測による音声符号化アルゴリズムごとに、L個(Lは自然数)の標本を持つサブフレームq個(qは自然数)を持つ、所定の単位時間長としてのフレームに分割する分割処理と、
この分割処理で分割された音声のフレームごとの周波数強度分布を表わすスペクトラム包絡に基づく周波数入出力特性をもち、前記音声符号化アルゴリズムで音源信号と共に音声合成モデルを構成する合成フィルタを生成する合成フィルタ生成処理と、
この合成フィルタ生成処理によって生成された合成フィルタに広帯域の周波数成分を均等に含むインパルス信号を入力した際の応答であり、音声符号化アルゴリズムごとに定まるL個の要素をもつ前記合成フィルタのインパルス応答を求めるインパルス応答取得処理と、
このインパルス応答取得処理によって求めたL個の合成フィルタのインパルス応答を、下三角テプリッツ畳み込み行列の要素として、前記下三角テプリッツ畳み込み行列とその転置行列の積を、その積が対称行列となる性質を利用して作成し、前記下三角テプリッツ畳み込み行列とその転置行列の自己相関演算を合成フィルタのインパルス応答のL個の要素のうちのこれよりも少ないn個(nは自然数)の要素ずつ取り出して1処理周期あたりn個の要素を並列して実行する並列演算で、n個の合成フィルタのインパルス応答の自己相関値を求める並列演算処理と、
この並列演算処理によるn個の要素に関する前記並列演算を繰り返してL×L個の合成フィルタのインパルス応答の自己相関値を求める繰り返し処理と、
この繰り返し処理によるn個の要素に関する前記並列演算の繰り返しにより、演算対象の合成フィルタのインパルス応答の要素をL個を越える要素数に仮想的に拡張して前記並列演算による自己相関演算を実施する演算要素拡張処理と、
前記繰り返し処理と前記演算要素拡張処理によって求めた自己相関値から、本来のインパルス応答の値を用いて演算した結果を有意なものとして選択する自己相関値選択処理と、
前記インパルス応答取得処理で求めた合成フィルタのインパルス応答と音声の相互相関値演算を行う相互相関演算処理と、
前記自己相関値選択処理によって選択した有意な自己相関値と前記相互相関演算処理によって求めた相互相関値のうちの前記音声符号化アルゴリズムごとに設定されるサブフレームについての前記L個の要素に応じて定まる所定の個数の要素を選び出して比較演算を行い音声の構成要素の1つである空気の流れによって生じる周期性をもたない無声音成分を表わす情報を求める無声音解析処理とを実行させ、
前記並列演算処理は、
前記インパルス応答の配列h(n)の前記下三角テプリッツ畳み込み行列としての自己相関行列Φ(i,j)における“i”と“j”を“0”で初期設定する初期設定処理と、
この演算を実装置環境上で実施するにあたって前記インパルス応答の配列h(i)が1データ当たりaビット(aは自然数)の要素の配列であり、演算処理に使用するレジスタのビット幅がbビット(bは自然数)で、全部でc個(cは自然数)のレジスタファイルが前記並列演算のための演算器に配置されているものとし、前記演算器は1処理周期に最大n個の演算を並列して実行できるものとしたとき、前記レジスタにはbをaで割った商であるd個(dは自然数)のaビットデータを一括して読み込むことが可能なことにより、前記演算器にまずインパルス応答の配列h(i)〜h(i+(d−1))を読み込み、次にインパルス応答の配列h(j)〜h(j+(d−1))を読み込む読込処理と、
次のn個の演算式を1処理周期で並列して、それぞれ積算結果を求める演算処理と、
h(i)×h(j)
h(i+1)×h(j+1)
h(i+2)×h(j+2)
……
h(i+(n−1))×h(j+(n−1))
前記“i”の値および前記“j”の値に“n”の値をそれぞれ加算して、前記演算器の前記c個のレジスタファイルに格納する積算結果の個数がbを2aで割った商にcを掛けたレジスタファイル満杯値に達するまで前記演算手段による演算を繰り返す演算繰り返し制御処理と、
この演算繰り返し制御手段によって前記レジスタファイル満杯値に到達したとき、これら全積算結果を前記c個のレジスタファイルに連続で格納するレジスタファイル格納制御処理とを実行させ、
前記演算要素拡張処理は、前記下三角テプリッツ畳み込み行列がインパルス応答の要素数をNとするとき、N行N列の対称行列である性質を利用して、自己相関行列Φ(i,j)を算出するにあたり全要素nの二乗個ではなく、「n×(n+1)/2」個を計算し、要素Φ(i,j)と要素Φ(j,i)が等しいものである関係を利用して、計算を行っていない要素部分を補間する処理である
ことを特徴とする音声符号化プログラム。
On the computer,
Predetermined unit time length having q subframes (q is a natural number) having L (L is a natural number) samples for each speech encoding algorithm based on algebraic code excitation linear prediction. Splitting process to divide into frames as
A synthesis filter having a frequency input / output characteristic based on a spectrum envelope representing a frequency intensity distribution for each frame of the voice divided by the division processing, and generating a synthesis filter constituting a voice synthesis model together with a sound source signal by the voice coding algorithm Generation process,
Impulse response of the synthesis filter having L elements determined for each speech encoding algorithm, which is a response when an impulse signal uniformly including a wideband frequency component is input to the synthesis filter generated by the synthesis filter generation process Impulse response acquisition processing for
The impulse response of the L synthesis filters obtained by this impulse response acquisition processing is used as an element of the lower triangular Toeplitz convolution matrix, and the product of the lower triangular Toeplitz convolution matrix and its transpose matrix is a property that the product becomes a symmetric matrix. The auto-correlation operation of the lower triangular Toeplitz convolution matrix and its transpose matrix is extracted for each of n elements (n is a natural number) smaller than the L elements of the impulse response of the synthesis filter. A parallel operation for executing n elements in parallel per processing cycle, and a parallel operation for obtaining autocorrelation values of impulse responses of n synthesis filters;
Iterative processing for obtaining autocorrelation values of impulse responses of L × L synthesis filters by repeating the parallel computation on n elements by the parallel computation processing;
By repeating the parallel calculation for n elements by this iterative process, the impulse response elements of the synthesis filter to be calculated are virtually expanded to the number of elements exceeding L, and the autocorrelation calculation is performed by the parallel calculation. Arithmetic element expansion processing,
An autocorrelation value selection process for selecting a result calculated using an original impulse response value as a significant one from the autocorrelation value obtained by the iterative process and the calculation element expansion process;
A cross-correlation calculation process for calculating a cross-correlation value between the impulse response and the voice of the synthesis filter obtained in the impulse response acquisition process;
According to the L elements of the subframes set for each of the speech encoding algorithms, among the significant autocorrelation value selected by the autocorrelation value selection process and the crosscorrelation value obtained by the crosscorrelation calculation process A predetermined number of elements determined in this way, and performing a comparison operation to execute unvoiced sound analysis processing for obtaining information representing an unvoiced sound component having no periodicity caused by the flow of air, which is one of the components of the sound,
The parallel processing is as follows:
An initial setting process for initializing “i” and “j” with “0” in the autocorrelation matrix Φ (i, j) as the lower triangular Toeplitz convolution matrix of the array of impulse responses h (n);
In performing this operation in an actual device environment, the impulse response array h (i) is an array of elements of a bits (a is a natural number) per data, and the bit width of the register used for the arithmetic processing is b bits. (B is a natural number) and a total of c register files (c is a natural number) are arranged in the arithmetic unit for the parallel operation, and the arithmetic unit performs a maximum of n operations in one processing cycle. When it can be executed in parallel, the register can read d pieces of a-bit data (d is a natural number), which is a quotient obtained by dividing b by a. A reading process of reading an impulse response array h (i) to h (i + (d-1)) first, and then reading an impulse response array h (j) to h (j + (d-1));
The following n arithmetic expressions are processed in parallel in one processing cycle, and each of them obtains an integration result;
h (i) × h (j)
h (i + 1) × h (j + 1)
h (i + 2) × h (j + 2)
......
h (i + (n−1)) × h (j + (n−1))
The value of “n” is added to the value of “i” and the value of “j”, respectively, and the number of integration results stored in the c register files of the computing unit is the quotient obtained by dividing b by 2a. A calculation repetition control process for repeating the calculation by the calculation means until the register file full value multiplied by c is reached;
When the register file full value is reached by the arithmetic repeat control means, the register file storage control process for continuously storing all the integration results in the c register files is executed.
The arithmetic element expansion processing uses the property that the lower triangular Toeplitz convolution matrix is a symmetric matrix of N rows and N columns, where N is the number of elements of the impulse response, to calculate the autocorrelation matrix Φ (i, j). In calculating, instead of the square of all elements n, “n × (n + 1) / 2” is calculated, and the relationship that the elements Φ (i, j) and Φ (j, i) are equal is used. A speech coding program characterized by interpolating element parts that have not been calculated.
コンピュータに、
音声入力手段で入力された音声を代数符号励振線形予測による音声符号化アルゴリズムごとに、L個(Lは自然数)の標本を持つサブフレームq個(qは自然数)を持つ、所定の単位時間長としてのフレームに分割する分割処理と、
この分割処理で分割された音声のフレームごとの周波数強度分布を表わすスペクトラム包絡に基づく周波数入出力特性をもち、前記音声符号化アルゴリズムで音源信号と共に音声合成モデルを構成する合成フィルタを生成する合成フィルタ生成処理と、
この合成フィルタ生成処理によって生成された合成フィルタに広帯域の周波数成分を均等に含むインパルス信号を入力した際の応答であり、音声符号化アルゴリズムごとに定まるL個の要素をもつ前記合成フィルタのインパルス応答を求めるインパルス応答取得処理と、
このインパルス応答取得処理によって求めたL個の合成フィルタのインパルス応答を、下三角テプリッツ畳み込み行列の要素として、前記下三角テプリッツ畳み込み行列とその転置行列の積を、その積が対称行列となる性質を利用して作成し、前記下三角テプリッツ畳み込み行列とその転置行列の自己相関演算を合成フィルタのインパルス応答のL個の要素のうちのこれよりも少ないn個(nは自然数)の要素ずつ取り出して1処理周期あたりn個の要素を並列して実行する並列演算で、n個の合成フィルタのインパルス応答の自己相関値を求める並列演算処理と、
この並列演算処理によるn個の要素に関する前記並列演算を繰り返してL×L個の合成フィルタのインパルス応答の自己相関値を求める繰り返し処理と、
この繰り返し処理によるn個の要素に関する前記並列演算の繰り返しにより、演算対象の合成フィルタのインパルス応答の要素にL−1個の仮想的な合成フィルタのインパルス応答要素を追加拡張して前記並列演算を実施する演算要素拡張処理と、
前記繰り返し処理と前記演算要素拡張処理によって求めた自己相関値から、本来のインパルス応答の値を用いて演算した結果を有意なものとして選択する自己相関値選択処理と、
前記インパルス応答取得処理で求めた合成フィルタのインパルス応答と音声の相互相関値演算を行う相互相関演算処理と、
前記自己相関値選択処理によって選択した有意な自己相関値と前記相互相関演算処理によって求めた相互相関値のうちの前記音声符号化アルゴリズムごとに設定されるサブフレームについての前記L個の要素に応じて定まる所定の個数の要素を選び出して比較演算を行い音声の構成要素の1つである空気の流れによって生じる周期性をもたない無声音成分を表わす情報を求める無声音解析処理とを実行させ、
前記並列演算処理は、
前記インパルス応答の配列h(n)の前記下三角テプリッツ畳み込み行列としての自己相関行列Φ(i,j)における“i”と“j”を“0”で初期設定する初期設定処理と、
この演算を実装置環境上で実施するにあたって前記インパルス応答の配列h(i)が1データ当たりaビット(aは自然数)の要素の配列であり、演算処理に使用するレジスタのビット幅がbビット(bは自然数)で、全部でc個(cは自然数)のレジスタファイルが前記並列演算のための演算器に配置されているものとし、前記演算器は1処理周期に最大n個の演算を並列して実行できるものとしたとき、前記レジスタにはbをaで割った商であるd個(dは自然数)のaビットデータを一括して読み込むことが可能なことにより、前記演算器にまずインパルス応答の配列h(i)〜h(i+(d−1))を読み込み、次にインパルス応答の配列h(j)〜h(j+(d−1))を読み込む読込処理と、
次のn個の演算式を1処理周期で並列して、それぞれ積算結果を求める演算処理と、
h(i)×h(j)
h(i+1)×h(j+1)
h(i+2)×h(j+2)
……
h(i+(n−1))×h(j+(n−1))
前記“i”の値および前記“j”の値に“n”の値をそれぞれ加算して、前記演算器の前記c個のレジスタファイルに格納する積算結果の個数がbを2aで割った商にcを掛けたレジスタファイル満杯値に達するまで前記演算手段による演算を繰り返す演算繰り返し制御処理と、
この演算繰り返し制御手段によって前記レジスタファイル満杯値に到達したとき、これら全積算結果を前記c個のレジスタファイルに連続で格納するレジスタファイル格納制御処理とを実行させ、
前記演算要素拡張処理は、前記下三角テプリッツ畳み込み行列がインパルス応答の要素数をNとするとき、N行N列の対称行列である性質を利用して、自己相関行列Φ(i,j)を算出するにあたり全要素nの二乗個ではなく、「n×(n+1)/2」個を計算し、要素Φ(i,j)と要素Φ(j,i)が等しいものである関係を利用して、計算を行っていない要素部分を補間する処理である
ことを特徴とする音声符号化プログラム。
On the computer,
Predetermined unit time length having q subframes (q is a natural number) having L (L is a natural number) samples for each speech encoding algorithm based on algebraic code excitation linear prediction. Splitting process to divide into frames as
A synthesis filter having a frequency input / output characteristic based on a spectrum envelope representing a frequency intensity distribution for each frame of the voice divided by the division processing, and generating a synthesis filter constituting a voice synthesis model together with a sound source signal by the voice coding algorithm Generation process,
Impulse response of the synthesis filter having L elements determined for each speech encoding algorithm, which is a response when an impulse signal uniformly including a wideband frequency component is input to the synthesis filter generated by the synthesis filter generation process Impulse response acquisition processing for
The impulse response of the L synthesis filters obtained by this impulse response acquisition processing is used as an element of the lower triangular Toeplitz convolution matrix, and the product of the lower triangular Toeplitz convolution matrix and its transpose matrix is a property that the product becomes a symmetric matrix. The auto-correlation operation of the lower triangular Toeplitz convolution matrix and its transpose matrix is extracted for each of n elements (n is a natural number) smaller than the L elements of the impulse response of the synthesis filter. A parallel operation for executing n elements in parallel per processing cycle, and a parallel operation for obtaining autocorrelation values of impulse responses of n synthesis filters;
Iterative processing for obtaining autocorrelation values of impulse responses of L × L synthesis filters by repeating the parallel computation on n elements by the parallel computation processing;
By repeating the parallel calculation for n elements by this iterative process, the impulse response elements of L-1 virtual synthesis filters are additionally expanded to the impulse response elements of the synthesis filter to be calculated, and the parallel calculation is performed. A calculation element expansion process to be performed;
An autocorrelation value selection process for selecting a result calculated using an original impulse response value as a significant one from the autocorrelation value obtained by the iterative process and the calculation element expansion process;
A cross-correlation calculation process for calculating a cross-correlation value between the impulse response and the voice of the synthesis filter obtained in the impulse response acquisition process;
According to the L elements of the subframes set for each of the speech encoding algorithms, among the significant autocorrelation value selected by the autocorrelation value selection process and the crosscorrelation value obtained by the crosscorrelation calculation process A predetermined number of elements determined in this way, and performing a comparison operation to execute unvoiced sound analysis processing for obtaining information representing an unvoiced sound component having no periodicity caused by the flow of air, which is one of the components of the sound,
The parallel processing is as follows:
An initial setting process for initializing “i” and “j” with “0” in the autocorrelation matrix Φ (i, j) as the lower triangular Toeplitz convolution matrix of the array of impulse responses h (n);
In performing this operation in an actual device environment, the impulse response array h (i) is an array of elements of a bits (a is a natural number) per data, and the bit width of the register used for the arithmetic processing is b bits. (B is a natural number) and a total of c register files (c is a natural number) are arranged in the arithmetic unit for the parallel operation, and the arithmetic unit performs a maximum of n operations in one processing cycle. When it can be executed in parallel, the register can read d pieces of a-bit data (d is a natural number), which is a quotient obtained by dividing b by a. A reading process of reading an impulse response array h (i) to h (i + (d-1)) first, and then reading an impulse response array h (j) to h (j + (d-1));
The following n arithmetic expressions are processed in parallel in one processing cycle, and each of them obtains an integration result;
h (i) × h (j)
h (i + 1) × h (j + 1)
h (i + 2) × h (j + 2)
......
h (i + (n−1)) × h (j + (n−1))
The value of “n” is added to the value of “i” and the value of “j”, respectively, and the number of integration results stored in the c register files of the computing unit is the quotient obtained by dividing b by 2a. A calculation repetition control process for repeating the calculation by the calculation means until the register file full value multiplied by c is reached;
When the register file full value is reached by the arithmetic repeat control means, the register file storage control process for continuously storing all the integration results in the c register files is executed.
The arithmetic element expansion processing uses the property that the lower triangular Toeplitz convolution matrix is a symmetric matrix of N rows and N columns, where N is the number of elements of the impulse response, to calculate the autocorrelation matrix Φ (i, j). In calculating, instead of the square of all elements n, “n × (n + 1) / 2” is calculated, and the relationship that the elements Φ (i, j) and Φ (j, i) are equal is used. A speech coding program characterized by interpolating element parts that have not been calculated.
JP2002255476A 2002-08-30 2002-08-30 Speech coding apparatus and speech coding program Expired - Fee Related JP4228630B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002255476A JP4228630B2 (en) 2002-08-30 2002-08-30 Speech coding apparatus and speech coding program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002255476A JP4228630B2 (en) 2002-08-30 2002-08-30 Speech coding apparatus and speech coding program

Publications (2)

Publication Number Publication Date
JP2004093946A JP2004093946A (en) 2004-03-25
JP4228630B2 true JP4228630B2 (en) 2009-02-25

Family

ID=32060991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002255476A Expired - Fee Related JP4228630B2 (en) 2002-08-30 2002-08-30 Speech coding apparatus and speech coding program

Country Status (1)

Country Link
JP (1) JP4228630B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090240494A1 (en) * 2006-06-29 2009-09-24 Panasonic Corporation Voice encoding device and voice encoding method

Also Published As

Publication number Publication date
JP2004093946A (en) 2004-03-25

Similar Documents

Publication Publication Date Title
RU2233010C2 (en) Method and device for coding and decoding voice signals
JP3112681B2 (en) Audio coding method
RU2677453C2 (en) Methods, encoder and decoder for linear predictive encoding and decoding of sound signals upon transition between frames having different sampling rates
KR20020077389A (en) Indexing pulse positions and signs in algebraic codebooks for coding of wideband signals
JPH096397A (en) Voice signal reproducing method, reproducing device and transmission method
WO2002043052A1 (en) Method, device and program for coding and decoding acoustic parameter, and method, device and program for coding and decoding sound
KR19980080463A (en) Vector quantization method in code-excited linear predictive speech coder
JPH10124092A (en) Method and device for encoding speech and method and device for encoding audible signal
JPH10319996A (en) Efficient decomposition of noise and periodic signal waveform in waveform interpolation
JPH10214100A (en) Voice synthesizing method
JP2000155597A (en) Voice coding method to be used in digital voice encoder
JP3064947B2 (en) Audio / musical sound encoding and decoding device
JPH0944195A (en) Voice encoding device
KR100422261B1 (en) Voice coding method and voice playback device
JP3531935B2 (en) Speech coding method and apparatus
JP4228630B2 (en) Speech coding apparatus and speech coding program
JP3303580B2 (en) Audio coding device
JP2796408B2 (en) Audio information compression device
JPH05158497A (en) Voice transmitting system
JPH0258100A (en) Voice encoding and decoding method, voice encoder, and voice decoder
JP3252285B2 (en) Audio band signal encoding method
JP3489748B2 (en) Audio encoding device and audio decoding device
JP3092436B2 (en) Audio coding device
JP3063087B2 (en) Audio encoding / decoding device, audio encoding device, and audio decoding device
JP3192051B2 (en) Audio coding device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081006

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081111

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081124

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121212

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121212

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131212

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees