JP2012507751A - 低ビットレート適用例のための遷移音声フレームのコーディング - Google Patents
低ビットレート適用例のための遷移音声フレームのコーディング Download PDFInfo
- Publication number
- JP2012507751A JP2012507751A JP2011534713A JP2011534713A JP2012507751A JP 2012507751 A JP2012507751 A JP 2012507751A JP 2011534713 A JP2011534713 A JP 2011534713A JP 2011534713 A JP2011534713 A JP 2011534713A JP 2012507751 A JP2012507751 A JP 2012507751A
- Authority
- JP
- Japan
- Prior art keywords
- frame
- pitch
- pulse
- packet
- value
- 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.)
- Pending
Links
- 230000007704 transition Effects 0.000 title description 78
- 238000000034 method Methods 0.000 claims abstract description 209
- 239000013598 vector Substances 0.000 claims description 179
- 230000005236 sound signal Effects 0.000 claims description 155
- 230000005284 excitation Effects 0.000 claims description 96
- 230000004044 response Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 102
- 230000000875 corresponding effect Effects 0.000 description 60
- 230000001052 transient effect Effects 0.000 description 38
- 238000004891 communication Methods 0.000 description 25
- 238000012360 testing method Methods 0.000 description 25
- 239000000284 extract Substances 0.000 description 21
- 239000004233 Indanthrene blue RS Substances 0.000 description 20
- 239000004148 curcumin Substances 0.000 description 20
- 238000001514 detection method Methods 0.000 description 19
- 239000004106 carminic acid Substances 0.000 description 17
- 230000000737 periodic effect Effects 0.000 description 16
- 230000015572 biosynthetic process Effects 0.000 description 15
- 230000000630 rising effect Effects 0.000 description 15
- 238000005070 sampling Methods 0.000 description 15
- 238000003786 synthesis reaction Methods 0.000 description 15
- 239000004334 sorbic acid Substances 0.000 description 14
- 230000003595 spectral effect Effects 0.000 description 14
- 239000004173 sunset yellow FCF Substances 0.000 description 14
- 239000001752 chlorophylls and chlorophyllins Substances 0.000 description 13
- 239000001733 1,4-Heptonolactone Substances 0.000 description 11
- 239000004255 Butylated hydroxyanisole Substances 0.000 description 11
- 239000001825 Polyoxyethene (8) stearate Substances 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 10
- 239000005711 Benzoic acid Substances 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 9
- 239000001814 pectin Substances 0.000 description 9
- 239000001394 sodium malate Substances 0.000 description 9
- 239000004291 sulphur dioxide Substances 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- LWIHDJKSTIGBAC-UHFFFAOYSA-K potassium phosphate Substances [K+].[K+].[K+].[O-]P([O-])([O-])=O LWIHDJKSTIGBAC-UHFFFAOYSA-K 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 8
- 239000001177 diphosphate Substances 0.000 description 7
- 238000013139 quantization Methods 0.000 description 7
- 239000000600 sorbitol Substances 0.000 description 7
- 239000000711 locust bean gum Substances 0.000 description 6
- 239000004300 potassium benzoate Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000004149 tartrazine Substances 0.000 description 6
- 230000001131 transforming effect Effects 0.000 description 6
- 239000001836 Dioctyl sodium sulphosuccinate Substances 0.000 description 5
- 239000011668 ascorbic acid Substances 0.000 description 5
- 239000001913 cellulose Substances 0.000 description 5
- KRKNYBCHXYNGOX-UHFFFAOYSA-N citric acid Substances OC(=O)CC(O)(C(O)=O)CC(O)=O KRKNYBCHXYNGOX-UHFFFAOYSA-N 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 239000000473 propyl gallate Substances 0.000 description 5
- 238000005311 autocorrelation function Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 101100522110 Oryza sativa subsp. japonica PHT1-10 gene Proteins 0.000 description 2
- 101100522109 Pinus taeda PT10 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 239000004403 ethyl p-hydroxybenzoate Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000004302 potassium sorbate Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- -1 E470 Substances 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000002087 whitening effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/10—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/12—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
- G10L19/125—Pitch excitation, e.g. pitch synchronous innovation CELP [PSI-CELP]
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/90—Pitch determination of speech signals
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Telephone Function (AREA)
Abstract
遷移音声フレームの低ビットレートコーディングのためのシステム、方法、および装置を開示する。
Description
米国特許法第120条に基づく優先権の主張
本特許出願は、譲受人に譲渡された、2008年6月20日に出願された「ロービットレートのアプリケーションについての過渡的な音声フレームの復号化(CODING OF TRANSITIONAL SPEECH FRAMES FOR LOW−BIT−RATE APPLICATION)」と題する係属中の特許出願第12/143,719号(代理人整理番号第071321号)の一部継続出願である。
本特許出願は、譲受人に譲渡された、2008年6月20日に出願された「ロービットレートのアプリケーションについての過渡的な音声フレームの復号化(CODING OF TRANSITIONAL SPEECH FRAMES FOR LOW−BIT−RATE APPLICATION)」と題する係属中の特許出願第12/143,719号(代理人整理番号第071321号)の一部継続出願である。
本開示は、音声信号の処理に関する。
デジタル技法によるボイスおよび音楽などのオーディオ信号の伝送は、特に長距離テレフォニー、ボイスオーバーIP(VoIPとも呼ばれ、IPはインターネットプロトコルを示す)などのパケット交換テレフォニー、およびセルラーテレフォニーなどのデジタル無線テレフォニーにおいて普及してきた。そのような普及により、再構成された音声の知覚品質を維持しながら、伝送チャネルによってボイス通信を転送するために使用される情報量を低減することに関心が生じている。たとえば、利用可能なワイヤレスシステム帯域幅を最も良く使用することが望ましい。システム帯域幅を効率的に使用する1つの方法は、信号圧縮技法を採用することである。音声信号を搬送するワイヤレスシステムの場合、通常、音声圧縮(または「音声コーディング」)技法がこの目的のために採用される。
人間音声発生のモデルに関係するパラメータを抽出することによって音声を圧縮するように構成されたデバイスは、しばしば、ボコーダ、「オーディオコーダ」、または「音声コーダ」と呼ばれる。(本明細書では、これらの3つの用語を互換的に使用する。)音声コーダは、一般にエンコーダとデコーダとを含む。エンコーダは、一般に、着信音声信号(オーディオ情報を表すデジタル信号)を「フレーム」と呼ばれる時間の区間に分割し、各フレームを分析して、いくつかの関係するパラメータを抽出し、それらのパラメータを符号化フレームに量子化する。符号化フレームは、伝送チャネル(すなわち、ワイヤードまたはワイヤレスネットワーク接続)を介して、デコーダを含む受信機に送信される。デコーダは、符号化フレームを受信し、処理し、逆量子化して、パラメータを生成し、逆量子化されたパラメータを使用して音声フレームを再現する。
典型的な会話では、各話者は、その時間の約60パーセントの間は沈黙状態である。音声エンコーダは、通常、音声を含んでいる音声信号のフレーム(「アクティブフレーム」)を、無音または背景雑音のみを含んでいる音声信号のフレーム(「非アクティブフレーム」)と区別するように構成される。そのようなエンコーダは、様々なコーディングモードおよび/またはレートを使用して、アクティブおよび非アクティブフレームを符号化するように構成できる。たとえば、音声エンコーダは、一般に、アクティブフレームを符号化する場合よりも、非アクティブフレームを符号化する場合のほうが、使用するビットが少なくなるように構成される。音声コーダは、知覚される品質損失がほとんどない、より低い平均ビットレートでの音声信号の転送をサポートするために、非アクティブフレームに対してより低いビットレートを使用する。
アクティブフレームを符号化するために使用されるビットレートの例は、1フレーム当たり171ビット、1フレーム当たり80ビット、および1フレーム当たり40ビットを含む。非アクティブフレームを符号化するために使用されるビットレートの例は、1フレーム当たり16ビットを含む。セルラーテレフォニーシステム(特に、電気通信工業会(Telecommunications Industry Association)(バージニア州アーリントン)によって公表された暫定標準(IS)−95、または同様の業界標準に準拠するシステム)のコンテキストでは、これらの4つのビットレートは、それぞれ「フルレート」、「ハーフレート」、「1/4レート」、および「1/8レート」とも呼ばれる。
一構成による音声信号フレームを処理する方法は、第1の音声信号フレーム内の第1の位置を計算することであって、第1の位置が、フレームの第1のサンプルとフレームの最後のサンプルとのうちの一方に関するフレームの端末ピッチパルスの位置である、計算することと、第1の音声信号フレームを表し、第1の位置を含む第1のパケットを発生することとを含む。本方法はまた、第2の音声信号フレーム内の第2の位置を計算することであって、第2の位置が、フレームの第1のサンプルとフレームの最後のサンプルとのうちの一方に関するフレームの端末ピッチパルスの位置である、計算することと、第2の音声信号フレームを表し、第2の音声信号フレーム内の第3の位置を含む第2のパケットを発生することとを含む。第3の位置は、フレームの第1のサンプルとフレームの最後のサンプルとのうちの他方に関するフレームの前記端末ピッチパルスの位置である。
一構成による符号化音声信号のパケットを復号する方法は、ビット位置の第1のセットとビット位置の第2のセットとを有するテンプレートに準拠する第1のパケットから第1の値を抽出することを含む。本方法では、第1および第2のセットは独立しており、第1の値はビット位置の第1のセットから抽出される。本方法はまた、第1の値をモード値と比較することと、第1の値を前記比較することの結果に応答して、第1の値に従って第1の励振信号内のピッチパルスを構成することとを含む。本方法は、テンプレートに準拠する第2のパケットから第2の値を抽出することを含み、第2の値はビット位置の第1のセットから抽出される。本方法は、第2の値をモード値と比較することと、第2のパケットのビット位置の第2のセットから第3の値を抽出することとを含む。本方法は、第2の値を前記比較することの結果に応答して、第3の値に従って第2の励振信号内のピッチパルスを構成することを含む。
一構成によるピッチパルスの形状を符号化する方法は、音声信号フレームのピッチ周期を推定することと、推定ピッチ周期に基づいて、パルス形状ベクトルの複数のテーブルのうちの1つを選択することとを含む。本方法は、音声信号フレームの少なくとも1つのピッチパルスからの情報に基づいて、パルス形状ベクトルの選択されたテーブル中のパルス形状ベクトルを選択することを含む。本方法では、パルス形状ベクトルの選択されたテーブル中の各パルス形状ベクトルの長さは、第1の値に等しく、パルス形状ベクトルの複数のテーブルのうちの別のテーブル中の各パルス形状ベクトルの長さは、第1の値とは異なる第2の値に等しい。
一構成によるピッチパルスの形状を復号する方法は、符号化音声信号の第1のパケットから符号化ピッチ周期値を抽出することを含む。本方法は、符号化ピッチ周期値に基づいて、パルス形状ベクトルの複数のテーブルのうちの1つを選択することと、前記第1のパケットから第1のインデックスを抽出することとを含む。本方法は、前記第1のインデックスに基づいて、パルス形状ベクトルの選択されたテーブルからパルス形状ベクトルを得ることを含む。
また、そのような方法を実行するように構成された装置および他の手段と、プロセッサによって実行されたとき、プロセッサにそのような方法の要素を実行させる命令を有するコンピュータ可読媒体とを明確に企図し、ここで開示される。
参照ラベルは、同じ構造を示すために2つ以上の図中に出現することがある。
本明細書で説明するシステム、方法、および装置(たとえば、方法M100、M200、M300、M400、M500、M550、M560、M600、M650、M700、および/またはM800)を使用して、2キロビット毎秒などの低い固定ビットレートまたは低い最大ビットレートでの音声コーディングをサポートすることができる。そのような制約付きビットレート音声コーディングの適用例は、セルラーまたはワイヤラインテレフォニーのための通信インフラストラクチャがないリモートエリアにおける電話サービスをサポートするために使用できる、(「ボイスオーバーサテライト」とも呼ばれる)衛星リンクを介したボイステレフォニーの伝送を含む。衛星テレフォニーを使用して、車両フリートなどのモバイル受信機のための連続ワイドエリアカバレージをサポートすることもでき、プッシュツートークなどのサービスが可能になる。より一般的には、そのような制約付きビットレート音声コーディングの適用例は、衛星を必要とする適用例に限定されず、電力制限されたチャネルに拡張することができる。
文脈によって明確に限定されない限り、「信号」という用語は、本明細書では、ワイヤ、バス、または他の伝送媒体上に表されたメモリ位置(またはメモリ位置のセット)の状態を含む、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「発生(generating)」という用語は、本明細書では、計算(computing)または別様の生成(producing)など、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「計算(calculating)」という用語は、本明細書では、値のセットから計算(computing)すること、評価(evaluating)すること、発生(generating)すること、および/または選択することなど、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「得る(obtaining)」という用語は、計算、導出、(たとえば、外部デバイスからの)受信、および/または(たとえば、記憶要素のアレイからの)検索など、その通常の意味のいずれをも示すのに使用される。文脈によって明確に限定されない限り、「推定(estimating)」という用語は、計算(computing)および/または評価など、その通常の意味のいずれをも示すのに使用される。「備える(comprising)」という用語は、本明細書および特許請求の範囲において使用される場合、他の要素または動作を除外するものではない。「に基づく」(「AはBに基づく」など)という用語は、(i)「少なくとも〜に基づく」(たとえば、「Aは少なくともBに基づく」)、および特定の文脈で適当な場合に、(ii)「と等しい」(たとえば、「AはBと等しい」)という場合を含む、その通常の意味のいずれをも示すのに使用される。文書の一部の参照によるいかなる組込みも、そのような定義が文書中の他の場所に現れた場合、その部分内で言及された用語または変数の定義を組み込んでいることをも理解されたい。
別段の指示がない限り、特定の特徴を有する音声エンコーダのいかなる開示も、類似の特徴を有する音声符号化の方法を開示する(その逆も同様)ことをも明確に意図し、特定の構成による音声エンコーダのいかなる開示も、類似の構成による音声符号化の方法を開示する(その逆も同様)ことをも明確に意図する。別段の指示がない限り、音声信号のフレームに対して演算を実行するための装置のいかなる開示も、音声信号のフレームに対して演算を実行するための対応する方法を開示する(その逆も同様)ことをも明確に意図する。別段の指示がない限り、特定の特徴を有する音声デコーダのいかなる開示も、類似の特徴を有する音声復号の方法を開示する(その逆も同様)ことをも明確に意図し、特定の構成による音声デコーダのいかなる開示も、類似の構成による音声復号の方法を開示する(その逆も同様)ことをも明確に意図する。「コーダ」、「コーデック」、および「コーディングシステム」という用語は、(場合によっては知覚的重み付けおよび/または他のフィルタ処理演算などの1つまたは複数の前処理演算の後に)音声信号のフレームを受信するように構成された少なくとも1つのエンコーダと、フレームの復号表現を生成するように構成された対応するデコーダとを含むシステムを示すのに互換的に使用される。
音声コーディングを目的として、音声信号は、一般に、サンプルのストリームを得るためにデジタル化(または量子化)される。デジタル化プロセスは、たとえば、パルス符号変調(PCM)、圧伸μ−law PCM、および圧伸A−law PCMを含む、当技術分野で知られている様々な方法のいずれかに従って実行できる。狭帯域音声エンコーダは、一般に、8kHzのサンプリングレートを使用するが、広帯域音声エンコーダは、一般に、より高いサンプリングレート(たとえば、12kHzまたは16kHz)を使用する。
音声エンコーダは、デジタル化された音声信号をフレームの連続として処理するように構成される。この連続は、通常、重複しない連続として実装されるが、フレームまたは(サブフレームとも呼ばれる)フレームの区間を処理する演算は、その入力中に1つまたは複数の隣接フレームの区間を含むこともできる。音声信号のフレームは、一般に、信号のスペクトルエンベロープがそのフレームにわたって比較的固定のままであることが予想できるほど十分に短い。フレームは、一般に、音声信号の5ミリ秒と35ミリ秒との間(または約40サンプルから200サンプルまで)に対応し、10ミリ秒、20ミリ秒、および30ミリ秒が一般的なフレームサイズである。符号化フレームの実際のサイズは、コーディングビットレートとともにフレームごとに変化することがある。
20ミリ秒のフレーム長は、7キロヘルツ(kHz)のサンプリングレートで140サンプルに対応し、8kHzのサンプリングレートで160サンプルに対応し、16kHzのサンプリングレートで320サンプルに対応するが、特定の適用例に好適と考えられる任意のサンプリングレートを使用することができる。音声コーディングに使用できるサンプリングレートの別の例は12.8kHzであり、さらなる例には12.8kHzから38.4kHzまでの範囲の他のレートがある。
一般に、すべてのフレームは同じ長さを有し、本明細書で説明する特定の例では、均一フレーム長を仮定する。ただし、不均一フレーム長を使用することも明確に企図され、本明細書によって開示される。たとえば、本明細書で説明する様々な装置および方法の実装は、アクティブおよび非アクティブフレームならびに/あるいは有声および無声フレームに対して異なるフレーム長を採用する適用例においても使用できる。
上記のように、様々なコーディングモードおよび/またはレートを使用して、アクティブフレームおよび非アクティブフレームを符号化するように音声エンコーダを構成することが望ましい。アクティブフレームを非アクティブフレームと区別するために、音声エンコーダは、一般に、(ボイスアクティビティ検出器またはVADと一般に呼ばれる)音声アクティビティ検出器を含むか、あるいは音声アクティビティを検出する方法を実行する。そのような検出器または方法は、フレームエネルギー、信号対雑音比、周期性、およびゼロ交差レートなど、1つまたは複数のファクタに基づいてフレームをアクティブまたは非アクティブに分類するように構成できる。そのような分類は、そのようなファクタの値または絶対値をしきい値と比較すること、および/またはそのようなファクタの変化の絶対値をしきい値と比較することを含むことができる。
音声アクティビティ検出器または音声アクティビティを検出する方法はまた、アクティブフレームを、(たとえば、母音を表す)有声、(たとえば、摩擦音を表す)無声、または(たとえば、ワードの始端または終端を表す)遷移など、2つ以上の異なるタイプのうちの1つとして分類するように構成できる。そのような分類は、音声および/または残差の自己相関、ゼロ交差レート、第1の反射係数などのファクタ、および/または(たとえば、コーディングスキームセレクタC200および/またはフレーム再分類器RC10に関して)本明細書でより詳細に説明する他の特徴に基づくことができる。音声エンコーダが、様々なコーディングモードおよび/またはビットレートを使用して、様々なタイプのアクティブフレームを符号化することが望ましい。
有声音声のフレームは、長期であり(すなわち、2フレーム周期以上の間継続し)、ピッチに関係する、周期構造を有する傾向がある。一般に、この長期スペクトル特徴の記述を符号化するコーディングモードを使用して有声フレーム(または有声フレームのシーケンス)を符号化するのがより効率的である。そのようなコーディングモードの例には、符号励振線形予測(code−excited linear prediction:CELP)、およびプロトタイプ波形補間(prototype waveform interpolation:PWI)などの波形補間技法がある。PWIコーディングモードの一例はプロトタイプピッチ周期(prototype pitch period:PPP)と呼ばれる。一方、無声フレームおよび非アクティブフレームには、通常、著しい長期スペクトル特徴がなく、音声エンコーダは、そのような特徴を記述しようと試みないコーディングモードを使用して、これらのフレームを符号化するように構成できる。雑音励振線形予測(noise−excited linear prediction:NELP)は、そのようなコーディングモードの一例である。
音声エンコーダまたは音声符号化の方法は、ビットレートと(「コーディングスキーム」とも呼ばれる)コーディングモードとの様々な組合せの中から選択するように構成できる。たとえば、音声エンコーダは、有声音声を含んでいるフレームおよび遷移フレームにはフルレートCELPスキームを使用し、無声音声を含んでいるフレームにはハーフレートNELPスキームを使用し、非アクティブフレームには1/8レートNELPスキームを使用するように構成できる。そのような音声エンコーダの他の例は、フルレートおよびハーフレートCELPスキームならびに/あるいはフルレートおよび1/4レートPPPスキームなど、1つまたは複数のコーディングスキームに対して複数のコーディングレートをサポートする。
音声エンコーダまたは音声符号化の方法によって生成された符号化フレームは、一般に、音声信号の対応するフレームを再構成することができる値を含んでいる。たとえば、符号化フレームは、周波数スペクトルにわたるフレーム内でのエネルギーの分布の記述を含むことができる。エネルギーのそのような分布はフレームの「周波数エンベロープ」または「スペクトルエンベロープ」とも呼ばれる。符号化フレームは、一般に、フレームのスペクトルエンベロープを記述する値の順序付きシーケンスを含む。場合によっては、順序付きシーケンスの各値は、対応する周波数における信号または対応するスペクトル領域にわたる信号の振幅または絶対値を示す。そのような記述の一例はフーリエ変換係数の順序付きシーケンスである。
他の場合には、順序付きシーケンスはコーディングモデルのパラメータの値を含む。そのような順序付きシーケンスの1つの典型的な例は線形予測コーディング(linear prediction coding:LPC)分析の係数の値のセットである。これらのLPC係数値は、符号化音声の共振(「ホルマント」とも呼ばれる)を符号化し、フィルタ係数または反射係数として構成できる。たいていの現代の音声コーダの符号化部分は、各フレームのLPC係数値のセットを抽出する分析フィルタを含む。(通常、1つまたは複数のベクトルとして構成される)セット中の係数値の数はLPC分析の「次数」とも呼ばれる。(セルラー電話などの)通信デバイスの音声エンコーダによって実行されるLPC分析の典型的な次数の例には、4、6、8、10、12、16、20、24、28、および32がある。
音声コーダは、一般に、(たとえば、対応するルックアップテーブルまたは「コードブック」への1つまたは複数のインデックスとして)量子化された形態で伝送チャネル上でスペクトルエンベロープの記述を送信するように構成される。したがって、音声エンコーダが、線スペクトル対(linear spectral pair:LSP)、線スペクトル周波数(line spectral frequency:LSF)、イミッタンススペクトル対(immittance spectral pair:ISP)、イミッタンススペクトル周波数(immittance spectral frequencyISF)、ケプストラム係数、または対数面積比の値のセットなどのLPC係数値のセットを効率的に量子化できる形態で計算することが望ましい。音声エンコーダはまた、変換および/または量子化の前に値の順序付きシーケンスに対して知覚的重み付けなどの他の演算を実行するように構成できる。
場合によっては、フレームのスペクトルエンベロープの記述はまた、(たとえば、フーリエ変換係数の順序付きシーケンスの場合のように)フレームの時間的情報の記述を含む。他の場合には、符号化フレームの音声パラメータのセットはフレームの時間的情報の記述をも含むことができる。時間的情報の記述の形態は、フレームを符号化するために使用される特定のコーディングモードに依存する。いくつかのコーディングモード(たとえば、CELPコーディングモード)の場合、時間的情報の記述はLPC分析の残差の記述(励振信号の記述とも呼ばれる)を含む。対応する音声デコーダは、励振信号を使用して、(たとえば、スペクトルエンベロープの記述によって定義された)LPCモデルを励振する。励振信号の記述は、一般に、(たとえば、対応するコードブックへの1つまたは複数のインデックスとして)量子化された形態で符号化フレーム中に現れる。
時間的情報の記述はまた、励振信号のピッチ成分に関係する情報を含むことができる。PPPコーディングモードの場合、たとえば、符号化された時間的情報は、音声デコーダが励振信号のピッチ成分を再生するために使用するプロトタイプの記述を含むことができる。ピッチ成分に関係する情報の記述は、一般に、(たとえば、対応するコードブックへの1つまたは複数のインデックスとして)量子化された形態で符号化フレーム中に現れる。他のコーディングモード(たとえば、NELPコーディングモード)の場合、時間的情報の記述は、(フレームの「エネルギーエンベロープ」または「利得エンベロープ」とも呼ばれる)フレームの時間エンベロープの記述を含むことができる。
図1に、(母音などの)有声音声区間の時間にわたる振幅の一例を示す。有声フレームの場合、励振信号は、一般に、ピッチ周波数において周期的であるパルスの連続に似ており、無声フレームの場合、励振信号は一般に白色ガウス雑音と同様である。CELPまたはPWIコーダは、より良い符号化効率を達成するために、有声音声区間の特性である、より高い周期を利用することができる。図2Aに、背景雑音から有声音声に遷移する音声区間の時間にわたる振幅の例を示し、図2Bに、背景雑音から有声音声に遷移する音声区間のLPC残差の時間にわたる振幅の例を示す。LPC残差のコーディングが符号化信号ストリームの大部分を占めるので、残差を符号化するために必要なビットレートを低減するために様々なスキームが開発されてきた。そのようなスキームは、CELP、NELP、PWI、およびPPPを含む。
トール品質(toll−quality)の復号された信号を与える方法で音声信号の制約付きビットレート符号化を低ビットレート(たとえば、2キロビット毎秒)で実行することが望ましい。トール品質は、一般に、約200〜3200Hzの帯域幅と30dBよりも大きい信号対雑音比(signal−to−noise ratio:SNR)とを有するものとして特徴づけられる。場合によっては、トール品質はまた、2または3パーセント未満の高調波ひずみを有するものとして特徴づけられる。残念ながら、一般に2キロビット毎秒に近いビットレートで音声を符号化するための既存の技法は、人工的(たとえば、ロボット的)で、雑音が多く、および/または過度に高調波的(たとえば、バズ)に聞こえる合成音声を生成する。
無音および無声フレームなどの非有声フレームの高品質の符号化は、通常、雑音励振線形予測(noise−excited linear prediction:NELP)コーディングモードを使用して低ビットレートで実行できる。しかしながら、有声フレームの高品質の符号化を低ビットレートで実行することはより困難である。低い平均ビットレートを達成するために、(オンセットフレームまたは立上り過渡フレームとも呼ばれる)無声から有声音声への遷移を含むフレームなどの困難なフレームにはより高いビットレートを使用し、後続の有声フレームにはより低いビットレートを使用することによって良好な結果が得られた。しかしながら、制約付きビットレートボコーダの場合、困難なフレームに対してより高いビットレートを使用するオプションは利用可能でないことがある。
エンハンスド・バリアブル・レート・コーデック(Enhanced Variable Rate Codec:EVRC)などの既存の可変レートボコーダは、一般に、CELPなどの波形コーディングモードを使用して、そのような困難なフレームをより高いビットレートで符号化する。低ビットレートでの有声音声区間の記憶または送信のために使用できる他のコーディングスキームは、PPPコーディングスキームなどのPWIコーディングスキームを含む。そのようなPWIコーディングスキームは、残差信号中の1つのピッチ周期の長さを有するプロトタイプ波形の位置を周期的に特定する。デコーダにおいて、残差信号は、元の高度に周期的な残差信号の近似値を得るために、プロトタイプ間のピッチ周期にわたって補間される。PPPコーディングのいくつかの適用例は、高ビットレート符号化フレームが1つまたは複数の後続の低ビットレート符号化フレームに基準を与えるように、混合ビットレートを使用する。そのような場合、低ビットレートフレーム中の情報の少なくともいくつかは差分符号化できる。
シーケンス中の後続のフレームの差分PWI(たとえば、PPP)符号化に良好なプロトタイプ(すなわち、良好なピッチパルス形状基準)および/またはピッチパルス位相基準を与える非差分方法で、オンセットフレームなどの遷移フレームを符号化することが望ましい。
ビットレート制約付きコーディングシステムにおいてオンセットフレームおよび/または他の遷移フレームのためのコーディングモードを与えることが望ましい。たとえば、低い固定ビットレートまたは低い最大ビットレートを有するように制限されたコーディングシステムにおいて、そのようなコーディングモードを与えることが望ましい。そのようなコーディングシステムの適用例の典型的な例は(たとえば、図14を参照しながら本明細書で説明する)衛星通信リンクである。
上述のように、音声信号のフレームは、有声、無声、または無音として分類できる。有声フレームは一般に高度に周期的であり、無声および無音フレームは一般に非周期的である。他の可能なフレーム分類は、オンセット、過渡、および立下り過渡を含む。(立上り過渡フレームとも呼ばれる)オンセットフレームは、一般に、ワードの始端において生じる。オンセットフレームは、図2B中の400サンプルと600サンプルとの間の領域の場合のように、フレームの始端では非周期的(たとえば、無声)であり、フレームの終端までに周期的(たとえば、有声)になることがある。過渡クラスは、有声であるが、周期的ではない音声を有するフレームを含む。過渡フレームは、ピッチの変化および/または周期性の低減を示し、一般に、(たとえば、音声信号のピッチが変化している)有声区間の中間または終端において生じる。典型的な立下り過渡フレームは、低エネルギー有声音声を有し、ワードの終端において生じる。オンセット、過渡、および立下り過渡フレームは「遷移」フレームと呼ばれることもある。
音声エンコーダが非差分方法でパルスのロケーション、振幅、および形状を符号化することが望ましい。たとえば、符号化フレームが後続の符号化フレームの励振信号に良好な基準プロトタイプを与えるように、オンセットフレーム、または有声フレームの連続の第1のフレームを符号化することが望ましい。そのようなエンコーダは、フレームの最終ピッチパルスの位置を特定し、最終ピッチパルスに隣接するピッチパルスの位置を特定し、ピッチパルスのピーク間の距離に従ってラグ値を推定し、最終ピッチパルスのロケーションと推定されたラグ値とを示す符号化フレームを生成するように構成できる。この情報は、位相情報なしに符号化された後続のフレームを復号する際に位相基準として使用できる。エンコーダはまた、(たとえばQPPPコーディングスキームを使用して)差分符号化された後続のフレームを復号する際に基準として使用されるピッチパルスの形状の指示を含む符号化フレームを生成するように構成できる。
遷移フレーム(たとえば、オンセットフレーム)をコーディングする際、フレームの正確な再生を達成することよりも、後続のフレームの良好な基準を与えることのほうが重要である。そのような符号化フレームを使用して、PPPまたは他の符号化スキームを使用して符号化される後続の有声フレームの良好な基準を与えることができる。たとえば、符号化フレームが、(たとえば、良好な形状基準を与えるための)ピッチパルスの形状の記述と、(たとえば、良好なラグ基準を与えるための)ピッチラグの指示と、(たとえば、良好な位相基準を与えるための)フレームの最終ピッチパルスのロケーションの指示とを含むことが望ましく、オンセットフレームの他の特徴を、より少数のビットを使用して符号化するか、または無視することさえできる。
図3Aに、符号化タスクE100およびE200を含む構成による音声符号化の方法M100のフローチャートを示す。タスクE100は、音声信号の第1のフレームを符号化し、タスクE200は、音声信号の第2のフレームを符号化し、第2のフレームは第1のフレームの後に続く。タスクE100は、第1のフレームを非差分符号化する基準コーディングモードとして実装でき、タスクE200は、第1のフレームに対して第2のフレームを符号化する相対コーディングモード(たとえば、差分コーディングモード)として実装できる。一例では、第1のフレームはオンセットフレームであり、第2のフレームはオンセットフレームの直後に続く有声フレームである。第2のフレームはまた、オンセットフレームの直後に続く連続する有声フレームの連続の1番目のフレームとすることができる。
符号化タスクE100は、励振信号の記述を含む第1の符号化フレームを生成する。この記述は、時間領域におけるピッチパルスの形状(すなわち、ピッチプロトタイプ)と、ピッチパルスが繰り返されるロケーションとを示す値のセットを含む。ピッチパルスロケーションは、フレームの端末ピッチパルスの位置など、基準点とともにラグ値を符号化することによって示される。本明細書では、ピッチパルスの位置はそのピークの位置を使用して示されるが、本開示の範囲は、その第1または最後のサンプルなど、パルスの別の特徴の位置によってピッチパルスの位置が同等に示されるコンテキストを明確に含む。第1の符号化フレームは、フレームのスペクトルエンベロープの記述(たとえば、1つまたは複数のLSPインデックス)など、他の情報の表現を含むこともできる。タスクE100を、テンプレートに準拠するパケットとして符号化フレームを生成するように構成することができる。たとえば、タスクE100は、本明細書で説明するパケット発生タスクE320、E340および/またはE440のインスタンスを含むことができる。
タスクE100は、第1のフレームの少なくとも1つのピッチパルスからの情報に基づいて、時間領域ピッチパルス形状のセットのうちの1つを選択するサブタスクE110を含む。フレームにおける最も高いピークを有するピッチパルスに(たとえば、最小2乗方向に)最も厳密に一致する形状を選択するように、タスクE110を構成することができる。代替的に、フレームにおける最も高いエネルギー(たとえば、2乗サンプル値の最も高い和)を有するピッチパルスに最も厳密に一致する形状を選択するように、タスクE110を構成することができる。代替的に、フレームの2つ以上のピッチパルス(たとえば、最も高いピークおよび/またはエネルギーを有するパルス)の平均に最も厳密に一致する形状を選択するように、タスクE110を構成することができる。タスクE110は、ピッチパルス形状(「形状ベクトル」とも呼ばれる)のコードブック(すなわち、量子化テーブル)による探索を含むように実装できる。たとえば、タスクE110は、本明細書で説明するパルス形状ベクトル選択タスクT660またはE430のインスタンスとして実装できる。
符号化タスクT100は、フレームの端末ピッチパルスの位置(たとえば、フレームの初期ピッチピークまたはフレームの最終ピッチピークの位置)を計算するサブタスクE120をも含む。端末ピッチパルスの位置は、フレームの始端に対して、フレームの終端に対して、またはフレーム内の別の基準ロケーションに対して示すことができる。(たとえば、サンプルの振幅またはサンプル値の2乗として一般に計算されるサンプルのエネルギーと、フレーム平均との間の関係に基づいて)フレーム境界の近くのサンプルを選択し、このサンプルの次のエリア内で最大値を有するサンプルを探索することによって端末ピッチパルスピークを発見するように、タスクE120を構成することができる。たとえば、タスクE120は、以下で説明する端末ピッチピーク位置特定タスクL100の構成のいずれかに従って実装できる。
符号化タスクE100は、フレームのピッチ周期を推定するサブタスクE130をも含む。(「ピッチラグ値」、「ラグ値」、「ピッチラグ」、または単に「ラグ」とも呼ばれる)ピッチ周期は、ピッチパルス間の距離(すなわち、隣接するピッチパルスのピーク間の距離)を示す。典型的なピッチ周波数は、男性話者の約70〜100Hzから女性話者の約150〜200Hzまで変動する。8kHzのサンプリングレートの場合、これらのピッチ周波数範囲は、典型的な女性話者の約40〜50サンプルおよび典型的な男性話者の約90〜100サンプルのラグ範囲に対応する。これらの範囲外にピッチ周波数を有する話者に適応するために、約50〜60Hzから約300〜400Hzまでのピッチ周波数範囲をサポートすることが望ましい。8kHzのサンプリングレートの場合、この周波数範囲は約20〜25サンプルから約130〜160サンプルまでのラグ範囲に対応する。
ピッチ周期推定タスクE130は、(たとえば、以下で説明するラグ推定タスクL200の実装のインスタンスとして)任意の好適なピッチ推定プロシージャを使用してピッチ周期を推定するように実装できる。そのようなプロシージャは一般に、端末ピッチピークに隣接するピッチピークを発見すること(あるいは少なくとも2つの隣接するピッチピークを発見すること)と、ピーク間の距離としてラグを計算することとを含む。そのエネルギーの測度(たとえば、サンプルエネルギーとフレーム平均エネルギーとの間の比率)、および/またはサンプルの近傍が、確認されたピッチピーク(たとえば、端末ピッチピーク)の同様の近傍とどのくらい相関するかという測度に基づいて、サンプルをピッチピークとして識別するように、タスクE130を構成することができる。
符号化タスクE100は、タスクE110によって選択された時間領域ピッチパルス形状、タスクE120によって計算された端末ピッチパルス位置、およびタスクE130によって推定されたラグ値など、第1のフレームについて励振信号の特徴の表現を含む第1の符号化フレームを生成する。一般にタスクE100は、ピッチ周期推定タスクE130の前にピッチパルス位置計算タスクE120を実行し、ピッチパルス形状選択タスクE110の前にピッチ周期推定タスクE130を実行するように構成される。
第1の符号化フレームは、推定されたラグ値を直接示す値を含むことができる。代替的に、符号化フレームが最小値に対するオフセットとしてラグ値を示すことが望ましい。20サンプルの最小ラグ値の場合、たとえば、20〜147(すなわち、20+0〜20+127)サンプルの範囲中の任意の可能な整数ラグ値を示すために7ビット数を使用できる。25サンプルの最小ラグ値の場合、25〜152(すなわち、25+0〜25+127)サンプルの範囲中の可能な整数ラグ値を示すために7ビット数を使用できる。そのような方法で、最小値に対するオフセットとしてラグ値を符号化することは、予想されるラグ値の範囲のカバレージを最大にし、値の範囲を符号化するために必要とされるビット数を最小限に抑えるために使用できる。非整数ラグ値の符号化をサポートするように、他の例を構成することができる。また、第1の符号化フレームは、第2のラグ値または他の場合はフレームの一方の側(たとえば、フレームの始端または終端)から他方へのラグ値の変化を示す値など、ピッチラグに関係する2つ以上の値を含むことが可能である。
フレームのピッチパルスの振幅が互いに異なる可能性がある。たとえば、オンセットフレームでは、フレームの終端の近くのピッチパルスがフレームの始端の近くのピッチパルスよりも大きい振幅を有するように、エネルギーが時間とともに増加する。少なくともそのような場合、第1の符号化フレームが、ピッチパルスの相対振幅の記述など、(「利得プロファイル」とも呼ばれる)時間にわたるフレームの平均エネルギーの変動の記述を含むことが望ましい。
図3Bに、サブタスクE140を含む符号化タスクE100の実装E102のフローチャートを示す。タスクE140は、第1のフレームの異なるピッチパルスに対応する利得値のセットとしてフレームの利得プロファイルを計算する。たとえば、利得値の各々は、フレームの異なるピッチパルスに対応することができる。タスクE140は、利得プロファイルのコードブック(たとえば、量子化テーブル)による探索と、フレームの利得プロファイルに(たとえば、最小2乗方向に)最も厳密に一致するコードブックエントリの選択とを含むことができる。符号化タスクE102は、タスクE110によって選択された時間領域ピッチパルス形状と、タスクE120によって計算された端末ピッチパルス位置と、タスクE130によって推定されたラグ値と、タスクE140によって計算された利得値のセットとの表現を含む第1の符号化フレームを生成する。図4に、ラベル「1」が端末ピッチパルス位置を示し、ラベル「2」が推定されたラグ値を示し、ラベル「3」が選択された時間領域ピッチパルス形状を示し、ラベル「4」が利得プロファイル(たとえば、ピッチパルスの相対振幅)において符号化された値を示す、フレーム中のこれらの特徴の概略図を示す。一般にタスクE102は、ピッチパルス形状選択タスクE110と直列に、または平行して実行できる利得値計算タスクE140の前にピッチ周期推定タスクE130を実行するように構成される。(図26のテーブルに示すように)一例では、符号化タスクE102は、基準パルス位置を示す7ビットと、基準パルス形状を示す7ビットと、基準ラグ値を示す7ビットと、利得プロファイルを示す4ビットと、1つまたは複数のLSPインデックスを搬送する13ビットと、フレームのコーディングモードを示す2ビット(たとえば、NELPなどの無声コーディングモードを示す「00」、QPPPなどの相対コーディングモードを示す「01」、および基準コーディングモードE102を示す「10」)とを含む40ビット符号化フレームを生成するように1/4レートで動作する。
第1の符号化フレームは、フレーム中のピッチパルス(またはピッチピーク)の数の明示的指示を含むことができる。代替的に、フレーム中のピッチパルスまたはピッチピークの数は、暗示的に符号化できる。たとえば、第1の符号化フレームは、ピッチラグおよび端末ピッチパルスの位置(たとえば、端末ピッチピークの位置)のみを使用してフレーム中のすべてのピッチパルスの位置を示すことができる。ラグ値および端末ピッチパルスの位置からピッチパルスの潜在的な位置を計算し、利得プロファイルから潜在的なパルス位置ごとの振幅を得るように、対応するデコーダを構成できる。フレームが潜在的なパルス位置よりも少数のパルスを含んでいる場合、利得プロファイルは、潜在的なパルス位置のうちの1つまたは複数について0の利得値(または他の極めて小さい値)を示すことができる。
本明細書に示すように、オンセットフレームは無声として開始し、有声として終了することができる。対応する符号化フレームは、全オンセットフレームの正確な再生をサポートするよりも、後続のフレームに良好な基準を与えることが望ましく、方法M100は、そのようなオンセットフレームの初期無声部分を符号化するための限定されたサポートのみを行うように実装できる。たとえば、無声部分内の任意のピッチパルス周期について0の(または0に近い)利得値を示す利得プロファイルを選択するように、タスクE140を構成することができる。代替的に、無声部分内のピッチ周期について0でない利得値を示す利得プロファイルを選択するように、タスクE140を構成することができる。そのような一例では、タスクE140は、0、または0の近くで開始し、フレームの有声部分の第1のピッチパルスの利得レベルに単調に上昇する一般的な利得プロファイルを選択する。
利得ベクトル量子化(vector quantization:VQ)テーブルのセットのうちの1つへのインデックスとして利得値のセットを計算し、異なる数のパルスに対して異なる利得VQテーブルが使用されるように、タスクE140を構成することができる。各利得VQテーブルが同じ数のエントリを含んでおり、異なる利得VQテーブルが異なる長さのベクトルを含んでいるように、テーブルのセットを構成することができる。そのようなコーディングシステムでは、タスクE140は、端末ピッチパルスのロケーションとピッチラグとに基づいてピッチパルスの推定された数を計算し、この推定された数は、利得VQテーブルのセットのうちの1つを選択するために使用される。この場合、符号化フレームを復号する対応する方法によって類似した演算を実行することもできる。ピッチパルスの推定された数がフレーム中のピッチパルスの実際の数よりも大きい場合、タスクE140はまた、上記で説明したように、フレーム中の追加のピッチパルス周期ごとに利得を小さい値、または0に設定することによってこの情報を搬送することができる。
符号化タスクE200は、第1のフレームの後に続く音声信号の第2のフレームを符号化する。タスクE200は、第1のフレームの対応する特徴に対して第2のフレームの特徴を符号化する相対コーディングモード(たとえば、差分コーディングモード)として実装できる。タスクE200は、現在のフレームのピッチパルス形状と前のフレームのピッチパルス形状との間のピッチパルス形状差を計算するサブタスクE210を含む。たとえば、第2のフレームからピッチプロトタイプを抽出し、抽出されたプロトタイプと第1のフレームのピッチプロトタイプ(すなわち、選択されたピッチパルス形状)との間の差としてピッチパルス形状差を計算するように、タスクE210を構成することができる。タスクE210によって実行できるプロトタイプ抽出演算の例は、2004年6月22日に発行された米国特許第6,754,630号(Dasら)、および2006年11月14日に発行された米国特許第7,136,812号(Manjunathら)に記載されているものを含む。
周波数領域中の2つのプロトタイプ間の差としてピッチパルス形状差を計算するようにタスクE210を構成することが望ましい。図5Aに、ピッチパルス形状差計算タスクE210の実装E212を含む符号化タスクE200の実装E202の図を示す。タスクE212は、現在のフレームの周波数領域ピッチプロトタイプを計算するサブタスクE214を含む。たとえば、抽出されたプロトタイプに対して高速フーリエ変換演算を実行するか、または他の場合は抽出されたプロトタイプを周波数領域に変換するように、タスクE214を構成することができる。また、周波数領域プロトタイプをいくつかの周波数ビン(たとえば、重複しないビンのセット)に分割し、要素が各ビンにおける平均絶対値である対応する周波数絶対値ベクトルを計算し、プロトタイプの周波数絶対値ベクトルと前のフレームのプロトタイプの周波数絶対値ベクトルとの間のベクトル差としてピッチパルス形状差を計算することによってピッチパルス形状差を計算するように、タスクE212のそのような実装を構成することができる。そのような場合、対応する符号化フレームが量子化差を含むようにピッチパルス形状差をベクトル量子化するように、タスクE212を構成することもできる。
符号化タスクE200は、現在のフレームのピッチ周期と前のフレームのピッチ周期との間のピッチ周期差を計算するサブタスクE220をも含む。たとえば、現在のフレームのピッチラグを推定し、前のフレームのピッチラグ値を減算してピッチ周期差を得るように、タスクE220を構成することができる。そのような一例では、タスクE220は、ピッチ周期差を(現在のラグ推定値−前のラグ推定値+7)として計算するように構成される。ピッチラグを推定するために、上述のピッチ周期推定タスクE130のインスタンス、以下で説明するラグ推定タスクL200のインスタンス、または上記で参照した、そのセクションが一例として参照により本明細書に組み込まれる、EVRC文書C.S0014−Cのセクション4.6.3(pp.4−44〜4−49)に記載されているプロシージャなど、任意の好適なピッチ推定技法を使用するように、タスクE220を構成することができる。前のフレームの非量子化ピッチラグ値が前のフレームの逆量子化ピッチラグ値と異なる場合、タスクE220は、現在のラグ推定値から逆量子化値を減算することによってピッチ周期差を計算することが望ましい。
符号化タスクE200は、1/4レートPPP(quarter−rate PPP:QPPP)などの限定された時間同期性を有するコーディングスキームを使用して実装できる。QPPPの実装は、「Enhanced Variable Rate Codec,Speech Service Options 3,68,and 70 for Wideband Spread Spectrum Digital Systems」と題する第3世代パートナーシッププロジェクト2(Third Generation Partnership Project 2:3GPP2)文書C.S0014−C、v1.0のセクション4.2.4(pp.4−10〜4−17)および4.12.28(pp.4−132〜4−138)、2007年1月(www−dot−3gpp−dot−orgでオンライン入手可能)に記載されており、そのセクションは一例として参照により本明細書に組み込まれる。このコーディングスキームは、その帯域幅が周波数とともに増加する21個の周波数ビンの不均一セットを使用してプロトタイプの周波数絶対値ベクトルを計算する。QPPPを使用して生成された符号化フレームの40ビットは、(図26のテーブルに示すように)1つまたは複数のLSPインデックスを搬送する16ビットと、デルタラグ値を搬送する4ビットと、フレームの振幅情報を搬送する18ビットと、モードを示す1ビットと、予約済みの1ビットとを含む。相対コーディングスキームのこの例は、パルス形状についてのビットも、位相情報についてのビットも含まない。
上記のように、タスクE100において符号化されるフレームは、オンセットフレームとすることができ、タスクE200において符号化されるフレームは、オンセットフレームの直後に続く連続する有声フレームの連続の1番目のフレームとすることができる。図5Bに、サブタスクE300を含む方法M100の実装M110のフローチャートを示す。タスクE300は、第2のフレームの後に続く第3のフレームを符号化する。たとえば、第3のフレームは、オンセットフレームの直後に続く連続する有声フレームの連続の2番目のフレームとすることができる。符号化タスクE300は、(たとえば、QPPP符号化のインスタンスとして)本明細書で説明するタスクE200の実装のインスタンスとして実装できる。そのような一例では、タスクE300は、第3のフレームのピッチプロトタイプと第2のフレームのピッチプロトタイプとの間のピッチパルス形状差を計算するように構成された(たとえば、タスクE212の)タスクE210のインスタンスと、第3のフレームのピッチ周期と第2のフレームのピッチ周期との間のピッチ周期差を計算するように構成されたタスクE220のインスタンスとを含む。別のそのような例では、タスクE300は、第3のフレームのピッチプロトタイプと第1のフレームの選択されたピッチパルス形状との間のピッチパルス形状差を計算するように構成された(たとえば、タスクE212の)タスクE210のインスタンスと、第3のフレームのピッチ周期と第1のフレームのピッチ周期との間のピッチ周期差を計算するように構成されたタスクE220のインスタンスとを含む。
図5Cに、サブタスクT100を含む方法M100の実装M120のフローチャートを示す。タスクT100は、(立上り過渡またはオンセットフレームとも呼ばれる)無声音声から有声音声への遷移を含むフレームを検出する。(たとえば、コーディングスキームセレクタC200に関して)以下で説明するEVRC分類スキームに従ってフレーム分類を実行するようにタスクT100を構成することができ、また、(たとえば、フレーム再分類器RC10に関して以下で説明するように)フレームを再分類するようにタスクT100を構成することができる。
図6Aに、音声信号のフレームを符号化するように構成された装置MF100のブロック図を示す。装置MF100は、音声信号FE100の第1のフレームを符号化するための手段と、音声信号FE200の第2のフレームを符号化するための手段とを含み、第2のフレームは第1のフレームの後に続く。手段FE100は、(たとえば、タスクE110の様々な実装に関して上記で説明したように)第1のフレームの少なくとも1つのピッチパルスからの情報に基づいて、時間領域ピッチパルス形状のセットのうちの1つを選択するための手段FE110を含む。手段FE100は、(たとえば、タスクE120の様々な実装に関して上記で説明したように)第1のフレームの端末ピッチパルスの位置を計算するための手段FE120をも含む。手段FE100は、(たとえば、タスクE130の様々な実装に関して上記で説明したように)第1のフレームのピッチ周期を推定するための手段FE130をも含む。図6Bに、(たとえば、タスクE140の様々な実装に関して上記で説明したように)第1のフレームの異なるピッチパルスに対応する利得値のセットを計算するための手段FE140をも含む手段FE100の実装FE102のブロック図を示す。
手段FE200は、(たとえば、タスクE210の様々な実装に関して上記で説明したように)第2のフレームのピッチパルス形状と、第1のフレームのピッチパルス形状との間のピッチパルス形状差を計算するための手段FE210を含む。手段FE200は、(たとえば、タスクE220の様々な実装に関して上記で説明したように)第2のフレームのピッチ周期と、第1のフレームのピッチ周期との間のピッチ周期差を計算するための手段FE220をも含む。
図7Aに、一般的構成による、音声信号の励振信号を復号する方法M200のフローチャートを示す。方法M200は、第1の励振信号を得るために第1の符号化フレームの部分を復号するタスクD100を含み、その部分は時間領域ピッチパルス形状と、ピッチパルス位置と、ピッチ周期との表現を含む。タスクD100は、ピッチパルス位置に従って第1の励振信号内に時間領域ピッチパルス形状の第1のコピーを構成するサブタスクD110を含む。タスクD100は、ピッチパルス位置とピッチ周期とに従って第1の励振信号内に時間領域ピッチパルス形状の第2のコピーを構成するサブタスクD120をも含む。一例では、タスクD110とタスクD120とは、(たとえば、時間領域ピッチパルス形状を表す第1の符号化フレームからのインデックスに従って)コードブックから時間領域ピッチパルス形状を得て、それを励振信号バッファにコピーする。タスクD100および/または方法M200はまた、(たとえば、第1の符号化フレームから1つまたは複数の量子化LSPベクトルを逆量子化し、結果を逆変換することによって)第1の符号化フレームからLPC係数値のセットを得て、LPC係数値のセットに従って合成フィルタを構成し、第1の復号フレームを得るために第1の励振信号を構成された合成フィルタに適用するタスクを含むように実装できる。
図7Bに、復号タスクD100の実装D102のフローチャートを示す。この場合、第1の符号化フレームの部分は、利得値のセットの表現をも含む。タスクD102は、利得値のセットのうちの1つを時間領域ピッチパルス形状の第1のコピーに適用するサブタスクD130を含む。タスクD102は、利得値のセットのうちの異なる1つを時間領域ピッチパルス形状の第2のコピーに適用するサブタスクD140をも含む。一例では、タスクD130は、その利得値をタスクD110中での形状に適用し、タスクD140は、その利得値をタスクD120中での形状に適用する。別の例では、タスクD110が実行された後に、タスクD130は、その利得値を励振信号バッファの対応する部分に適用し、タスクD120が実行された後に、タスクD140は、その利得値を励振信号バッファの対応する部分に適用する。タスクD102を含む方法M200の実装は、第1の復号フレームを得るために得られた利得調整された励振信号を構成された合成フィルタに適用するタスクを含むように構成できる。
方法M200は、第2の励振信号を得るために第2の符号化フレームの部分を復号するタスクD200をも含み、その部分はピッチパルス形状差とピッチ周期差との表現を含む。タスクD200は、時間領域ピッチパルス形状とピッチパルス形状差とに基づいて第2のピッチパルス形状を計算するサブタスクD210を含む。タスクD200は、ピッチ周期とピッチ周期差とに基づいて第2のピッチ周期を計算するサブタスクD220をも含む。タスクD200は、ピッチパルス位置と第2のピッチ周期とに従って第2の励振信号内に第2のピッチパルス形状の2つ以上のコピーを構成するサブタスクD230をも含む。タスクD230は、ピッチパルス位置からの対応するオフセットとして第2の励振信号内のコピーの各々のための位置を計算することを含むことができ、各オフセットは、第2のピッチ周期の整数倍である。タスクD200および/または方法M200はまた、(たとえば、第2の符号化フレームから1つまたは複数の量子化LSPベクトルを逆量子化し、結果を逆変換することによって)第2の符号化フレームからLPC係数値のセットを得て、LPC係数値のセットに従って合成フィルタを構成し、第2の復号フレームを得るために第2の励振信号を構成された合成フィルタに適用するタスクを含むように実装できる。
図8Aに、音声信号の励振信号を復号するための装置MF200のブロック図を示す。装置MF200は、第1の励振信号を得るために第1の符号化フレームの部分を復号するための手段FD100を含み、その部分は時間領域ピッチパルス形状と、ピッチパルス位置と、ピッチ周期との表現を含む。手段FD100は、ピッチパルス位置に従って第1の励振信号内に時間領域ピッチパルス形状の第1のコピーを構成するための手段FD110を含む。手段FD100は、ピッチパルス位置とピッチ周期とに従って第1の励振信号内に時間領域ピッチパルス形状の第2のコピーを構成するための手段FD120をも含む。一例では、手段FD110と手段FD120とは、(たとえば、時間領域ピッチパルス形状を表す第1の符号化フレームからのインデックスに従って)コードブックから時間領域ピッチパルス形状を得て、それを励振信号バッファにコピーするように構成される。手段FD200および/または装置MF200はまた、(たとえば、第1の符号化フレームから1つまたは複数の量子化LSPベクトルを逆量子化し、結果を逆変換することによって)第1の符号化フレームからLPC係数値のセットを得るための手段と、LPC係数値のセットに従って合成フィルタを構成するための手段と、第1の復号フレームを得るために第1の励振信号を構成された合成フィルタに適用するための手段とを含むように実装できる。
図8Bに、復号するための手段FD100の実装FD102のフローチャートを示す。この場合、第1の符号化フレームの部分は、利得値のセットの表現をも含む。手段FD102は、利得値のセットのうちの1つを時間領域ピッチパルス形状の第1のコピーに適用するための手段FD130を含む。手段FD102は、利得値のセットのうちの異なる1つを時間領域ピッチパルス形状の第2のコピーに適用するための手段FD140をも含む。一例では、手段FD130は、その利得値を手段FD110内での形状に適用し、手段FD140はその利得値を手段FD120内での形状に適用する。別の例では、手段FD130は、その利得値を、手段FD110が第1のコピーを構成した励振信号バッファの部分に適用し、手段FD140は、その利得値を、手段FD120が第2のコピーを構成した励振信号バッファの部分に適用する。手段FD102を含む装置MF200の実装は、第1の復号フレームを得るために得られた利得調整された励振信号を構成された合成フィルタに適用するための手段を含むように構成できる。
装置MF200は、第2の励振信号を得るために第2の符号化フレームの部分を復号するための手段FD200をも含み、その部分はピッチパルス形状差とピッチ周期差との表現を含む。手段FD200は、時間領域ピッチパルス形状とピッチパルス形状差とに基づいて第2のピッチパルス形状を計算するための手段FD210を含む。手段FD200は、ピッチ周期とピッチ周期差とに基づいて第2のピッチ周期を計算するための手段FD220をも含む。手段FD200は、ピッチパルス位置と第2のピッチ周期とに従って第2の励振信号内に第2のピッチパルス形状の2つ以上のコピーを構成するための手段FD230をも含む。手段FD230は、ピッチパルス位置からの対応するオフセットとして第2の励振信号内のコピーの各々のための位置を計算するように構成でき、各オフセットは、第2のピッチ周期の整数倍である。手段FD200および/または装置MF200はまた、(たとえば、第2の符号化フレームから1つまたは複数の量子化LSPベクトルを逆量子化し、結果を逆変換することによって)第2の符号化フレームからLPC係数値のセットを得るための手段と、LPC係数値のセットに従って合成フィルタを構成するための手段と、第2の復号フレームを得るために第2の励振信号を構成された合成フィルタに適用するための手段とを含むように実装できる。
図9Aに、(たとえば、フレームの連続として)デジタル化音声信号S100を受信し、通信チャネルC100(たとえば、ワイヤード、光、および/またはワイヤレス通信リンク)上で音声デコーダAD10に送信するための(たとえば、対応する符号化フレームの連続として)対応する符号化信号S200を生成するように構成された音声エンコーダAE10を示す。音声デコーダAD10は、符号化音声信号S200の受信したバージョンS300を復号し、対応する出力音声信号S400を合成するように構成される。音声エンコーダAE10は、装置MF100のインスタンスを含み、および/または方法M100の実装を実行するように実装できる。音声デコーダAD10は、装置MF200のインスタンスを含み、および/または方法M200の実装を実行するように実装できる。
上述のように、音声信号S100は、パルス符号変調(pulse code modulation:PCM)、圧伸μ−law、またはA−lawなど、当技術分野で知られている様々な方法のいずれかに従ってデジタル化および量子化された(たとえば、マイクロフォンによってキャプチャされる)アナログ信号を表す。信号は、雑音抑圧、知覚的重み付け、および/または他のフィルタ処理演算など、アナログおよび/またはデジタル領域における他の前処理演算をも受けることができる。追加または代替として、そのような演算は、音声エンコーダAE10内で実行できる。音声信号S100のインスタンスは、デジタル化および量子化された(たとえば、マイクロフォンのアレイによってキャプチャされる)アナログ信号の組合せをも表すことができる。
図9Bに、デジタル化音声信号S100の第1のインスタンスS110を受信し、通信チャネルC100の第1のインスタンスC110上で音声デコーダAD10の第1のインスタンスAD10aに送信するための符号化信号S200の対応するインスタンスS210を生成するように構成された音声エンコーダAE10の第1のインスタンスAE10aを示す。音声デコーダAD10aは、符号化音声信号S210の受信したバージョンS310を復号し、出力音声信号S400の対応するインスタンスS410を合成するように構成される。
図9Bに、デジタル化音声信号S100の第2のインスタンスS120を受信し、通信チャネルC100の第2のインスタンスC120上で音声デコーダAD10の第2のインスタンスAD10bに送信するための符号化信号S200の対応するインスタンスS220を生成するように構成された音声エンコーダAE10の第2のインスタンスAE10bをも示す。音声デコーダAD10bは、符号化音声信号S220の受信したバージョンS320を復号し、出力音声信号S400の対応するインスタンスS420を合成するように構成される。
音声エンコーダAE10aおよび音声デコーダAD10b(同様に、音声エンコーダAE10bおよび音声デコーダAD10a)は、たとえば、図14に関して後述するユーザ端末、地上局、またはゲートウェイを含む、音声信号を送信および受信するための任意の通信デバイス中で一緒に使用できる。本明細書で説明するように、音声エンコーダAE10は多くの異なる方法で実装でき、音声エンコーダAE10aおよびAE10bは、音声エンコーダAE10の異なる実装のインスタンスとすることができる。同様に、音声デコーダAD10は多くの異なる方法で実装でき、音声デコーダAD10aおよびAD10bは、音声デコーダAD10の異なる実装のインスタンスとすることができる。
図10Aに、音声信号の第1のフレームを第1の符号化フレームとして符号化するように構成された第1のフレームエンコーダ100と、音声信号の第2のフレームを第2の符号化フレームとして符号化するように構成された第2のフレームエンコーダ200とを含み、第2のフレームは第1のフレームの後に続く、一般的構成による音声信号A100のフレームを符号化するための装置のブロック図を示す。音声エンコーダAE10は、装置A100のインスタンスを含むように実装できる。第1のフレームエンコーダ100は、(たとえば、タスクE110の様々な実装に関して上記で説明したように)第1のフレームの少なくとも1つのピッチパルスからの情報に基づいて、時間領域ピッチパルス形状のセットのうちの1つを選択するように構成されたピッチパルス形状セレクタ110を含む。エンコーダ100は、(たとえば、タスクE120の様々な実装に関して上記で説明したように)第1のフレームの端末ピッチパルスの位置を計算するように構成されたピッチパルス位置計算器120をも含む。エンコーダ100は、(たとえば、タスクE130の様々な実装に関して上記で説明したように)第1のフレームのピッチ周期を推定するように構成されたピッチ周期推定器130をも含む。エンコーダ100を、テンプレートに準拠するパケットとして符号化フレームを生成するように構成することができる。たとえば、エンコーダ100は、本明細書で説明するパケットジェネレータ170および/または570のインスタンスを含むことができる。図10Bに、(たとえば、タスクE140の様々な実装に関して上記で説明したように)第1のフレームの異なるピッチパルスに対応する利得値のセットを計算するように構成された利得値計算器140をも含むエンコーダ100の実装102のブロック図を示す。
第2のフレームエンコーダ200は、(たとえば、タスクE210の様々な実装に関して上記で説明したように)第2のフレームのピッチパルス形状と、第1のフレームのピッチパルス形状との間のピッチパルス形状差を計算するように構成されたピッチパルス形状差計算器210を含む。エンコーダ200は、(たとえば、タスクE220の様々な実装に関して上記で説明したように)第2のフレームのピッチ周期と、第1のフレームのピッチ周期との間のピッチ周期差を計算するように構成されたピッチパルス差計算器220をも含む。
図11Aに、第1のフレームデコーダ300と第2のフレームデコーダ400とを含む一般的構成による、音声信号A200の励振信号を復号するための装置のブロック図を示す。デコーダ300は、第1の励振信号を得るために第1の符号化フレームの部分を復号するように構成され、その部分は時間領域ピッチパルス形状と、ピッチパルス位置と、ピッチ周期との表現を含む。デコーダ300は、ピッチパルス位置に従って第1の励振信号内に時間領域ピッチパルス形状の第1のコピーを構成するように構成された第1の励振信号発生器310を含む。励振発生器310はまた、ピッチパルス位置とピッチ周期とに従って第1の励振信号内に時間領域ピッチパルス形状の第2のコピーを構成するように構成される。たとえば、発生器310は、本明細書で説明するタスクD110およびD120の実装を実行するように構成できる。この例では、デコーダ300は、(たとえば、第1の符号化フレームから1つまたは複数の量子化LSPベクトルを逆量子化し、結果を逆変換することによって)第1の符号化フレームからデコーダ300によって得られたLPC係数値のセットに従って構成され、第1の復号フレームを得るために励振信号をフィルタ処理するように構成された合成フィルタ320をも含む。
図11Bに、第1の符号化フレームの部分が利得値のセットの表現をも含む場合、第1の乗算器330と第2の乗算器340とを含む第1の励振信号発生器310の実装312のブロック図を示す。第1の乗算器330は、利得値のセットのうちの1つを時間領域ピッチパルス形状の第1のコピーに適用するように構成される。たとえば、第1の乗算器330は、本明細書で説明するタスクD130の実装を実行するように構成できる。第2の乗算器340は、利得値のセットのうちの異なる1つを時間領域ピッチパルス形状の第2のコピーに適用するように構成される。たとえば、第2の乗算器340は、本明細書で説明するタスクD140の実装を実行するように構成できる。発生器312を含むデコーダ300の実装では、合成フィルタ320は、第1の復号フレームを得るために得られた利得調整された励振信号をフィルタ処理するように構成できる。第1の乗算器330と第2の乗算器340とは、異なる時間に異なる構造を使用するか、または同じ構造を使用して実装できる。
第2のフレームデコーダ400は、第2の励振信号を得るために第2の符号化フレームの部分を復号するように構成され、その部分はピッチパルス形状差とピッチ周期差との表現を含む。デコーダ400は、ピッチパルス形状計算器410とピッチ周期計算器420とを含む第2の励振信号発生器440を含む。ピッチパルス形状計算器410は、時間領域ピッチパルス形状とピッチパルス形状差とに基づいて第2のピッチパルス形状を計算するように構成される。たとえば、ピッチパルス形状計算器410は、本明細書で説明するタスクD210の実装を実行するように構成できる。ピッチ周期計算器420は、ピッチ周期とピッチ周期差とに基づいて第2のピッチ周期を計算するように構成される。たとえば、ピッチ周期計算器420は、本明細書で説明するタスクD220の実装を実行するように構成できる。励振発生器440は、ピッチパルス位置と第2のピッチ周期とに従って第2の励振信号内に第2のピッチパルス形状の2つ以上のコピーを構成するように構成される。たとえば、発生器440は、本明細書で説明するタスクD230の実装を実行するように構成できる。この例では、デコーダ400は、(たとえば、第1の符号化フレームから1つまたは複数の量子化LSPベクトルを逆量子化し、結果を逆変換することによって)第1の符号化フレームからデコーダ400によって得られたLPC係数値のセットに従って構成され、第2の復号フレームを得るために第2の励振信号をフィルタ処理するように構成された合成フィルタ430をも含む。合成フィルタ320と合成フィルタ430とは、異なる時間に異なる構造を使用するか、または同じ構造を使用して実装できる。音声デコーダAD10は、装置A200のインスタンスを含むように実装できる。
図12Aに、音声エンコーダAE10のマルチモード実装AE20のブロック図を示す。エンコーダAE20は、第1のフレームエンコーダ100の実装(たとえば、エンコーダ102)と、第2のフレームエンコーダ200の実装と、無声フレームエンコーダUE10(たとえば、QNELPエンコーダ)と、コーディングスキームセレクタC200とを含む。コーディングスキームセレクタC200は、セレクタ50a、50bを介してフレームごとにエンコーダ100、200、およびUE10のうちの適切な1つを選択するために(たとえば、後述する変更されたEVRCフレーム分類スキームに従って)音声信号S100の着信フレームの特性を分析するように構成される。1/4レートPPP(QPPP)コーディングスキームを適用するために第2のフレームエンコーダ200を実装し、1/4レートNELP(QNELP)コーディングスキームを適用するために無声フレームエンコーダUE10を実装することが望ましい。図12Bに、第1のフレームデコーダ300の実装(たとえば、デコーダ302)と、第2のフレームエンコーダ400の実装と、無声フレームデコーダUD10(たとえば、QNELPデコーダ)と、コーディングスキーム検出器C300とを含む音声エンコーダAD10の類似したマルチモード実装AD20のブロック図を示す。コーディングスキーム検出器C300は、セレクタ90a、90bを介して符号化フレームごとにデコーダ300、400、およびUD10のうちの適切な対応する1つを選択するために(たとえば、第1および/または最後のビットなど符号化フレームの1つまたは複数のモードビットに従って)受信した符号化音声信号S300の符号化フレームのフォーマットを判断するように構成される。
図13に、音声エンコーダAE10の実装内に含めることができる残差発生器R10のブロック図を示す。発生器R10は、音声信号S100の現在のフレームに基づいてLPC係数値のセットを計算するように構成されたLPC分析モジュールR110を含む。変換ブロックR120は、LPC係数値のセットをLSFのセットに変換するように構成され、量子化器R130は、(たとえば、1つまたは複数のコードブックインデックスとして)LSFを量子化してLPCパラメータSL10を生成するように構成される。逆量子化器R140は、量子化されたLPCパラメータSL10から復号されたLSFのセットを得るように構成され、逆変換ブロックR150は、復号されたLSFのセットから復号されたLPC係数値のセットを得るように構成される。復号されたLPC係数値のセットに従って構成された(分析フィルタとも呼ばれる)白色化フィルタR160は、音声信号S100を処理して、LPC残差SR10を生成する。残差発生器R10はまた、特定の適用例に好適であると考えられる他の設計に従ってLPC残差を発生するように実装できる。残差発生器R10のインスタンスは、フレームエンコーダ104、204、およびUE10のうちのいずれか1つまたは複数内で実装でき、および/またはそれらの間で共有できる。
図14は、衛星10、地上局20a、20b、およびユーザ端末30a、30bを含む衛星通信のためのシステムの概略図を示す。衛星10は、場合によっては1つまたは複数の他の衛星を介して、地上局20aと20bとの間、ユーザ端末30aと30bとの間、または地上局とユーザ端末との間で半二重または全二重チャネル上でボイス通信を中継するように構成できる。ユーザ端末30a、30bの各々は、ワイヤレスモデムを備えた携帯電話またはポータブルコンピュータなどワイヤレス衛星通信のためのポータブルデバイス、地上または宇宙ビークル内に取り付けられた通信ユニット、あるいは衛星ボイス通信のための別のデバイスとすることができる。地上局20a、20bの各々は、それぞれのネットワーク40a、40bにボイス通信チャネルをルーティングするように構成され、ネットワーク40a、40bは、アナログまたはパルス符号変調(PCM)ネットワーク(たとえば、公衆交換電話網つまりPSTN)および/またはデータネットワーク(たとえば、インターネット、ローカルエリアネットワーク(local area network:LAN)、キャンパスエリアネットワーク(campus area network:CAN)、メトロポリタンエリアネットワーク(metropolitan area network:MAN)、ワイドエリアネットワーク(wide area network:WAN)、リング型ネットワーク、スター型ネットワーク、および/またはトークンリングネットワーク)とすることができる。地上局20a、20bの一方または両方は、別の形態(たとえば、アナログ、PCM、より高いビットレートコーディングスキームなど)におよび/またはそれからボイス通信信号をトランスコードするように構成されたゲートウェイをも含むことができる。本明細書で説明する方法のうちの1つまたは複数は、図14に示すデバイス10、20a、20b、30a、および30bのうちのいずれか1つまたは複数によって実行でき、本明細書で説明する装置のうちの1つまたは複数は、そのようなデバイスのうちのいずれか1つまたは複数中に含めることができる。
PWI符号化中に抽出されるプロトタイプの長さは一般に、フレームごとに変化することができるピッチラグの現在の値に等しい。したがって、デコーダに送信するためのプロトタイプを量子化することが、次元が可変であるベクトルを量子化するという問題を提示することがある。従来のPWIおよびPPPコーディングスキームでは、可変次元プロトタイプベクトルの量子化は、(たとえば、離散時間フーリエ変換(discrete−time Fourier transform:DTFT)演算を使用して)時間領域ベクトルを複素数値周波数領域ベクトルに変換することによって一般に実行される。そのような演算は、ピッチパルス形状差計算タスクE210に関して上記で説明した。次いで、この複素数値可変次元ベクトルの振幅をサンプリングして、固定次元のベクトルを得る。振幅ベクトルのサンプリングは不均一でもよい。たとえば、高周波よりも低周波でより高い分解能をもつベクトルをサンプリングすることが望ましい。
オンセットフレームの後に続く有声フレームの差分PWI符号化を実行することが望ましい。フルレートPPPコーディングモードでは、周波数領域ベクトルの位相を、振幅と同様にしてサンプリングして、固定次元ベクトルを得る。しかしながら、QPPPコーディングモードでは、そのような位相情報をデコーダに搬送するために利用可能なビットがない。この場合、ピッチラグは、(たとえば、前のフレームのピッチラグに対して)差分的に符号化され、位相情報はまた、1つまたは複数の前のフレームからの情報に基づいて推定されなければならない。たとえば、遷移フレームコーディングモード(たとえば、タスクE100)を使用してオンセットフレームを符号化するとき、後続のフレームのための位相情報はピッチラグとパルスロケーション情報とから導出できる。
オンセットフレームを符号化するために、フレーム内のすべてのピッチパルスを検出することが予想できるプロシージャを実行することが望ましい。たとえば、ロバストなピッチピーク検出演算の使用は、後続のフレームにより良いラグ推定値および/または位相基準を与えることが予想できる。後続のフレームが差分コーディングスキーム(たとえば、タスクE200)などの相対コーディングスキームを使用して符号化される場合、そのようなスキームは一般に誤り伝搬を受けやすいので、確実な基準値が特に重要であることがある。上記のように、本明細書では、ピッチパルスの位置はそのピークの位置によって示されるが、別のコンテキストでは、ピッチパルスの位置は、その第1または最後のサンプルなど、パルスの別の特徴の位置によって同等に示すことができる。
図15Aに、タスクL100と、L200と、L300とを含む一般的構成による方法M300のフローチャートを示す。タスクL100は、フレームの端末ピッチピークの位置を特定する。特定の実装では、タスクL100は、(A)サンプル振幅に基づく量と(B)フレームの量の平均との間の関係に従って、サンプルを端末ピッチピークとして選択するように構成される。1つのそのような例では、量はサンプルの大きさ(sample magnitude)(すなわち、絶対値(absolute value))であり、この場合、フレーム平均は次のように計算できる。
式中、sはサンプル値(すなわち、振幅)を示し、Nはフレーム中のサンプルの数を示し、iはサンプルインデックスである。別のそのような例では、量はサンプルエネルギー(すなわち、振幅2乗)であり、この場合、フレーム平均は次のように計算できる。
以下の説明では、エネルギーが使用される。
タスクL100を、フレームの初期ピッチピークとして、またはフレームの最終ピッチピークとして端末ピッチピークの位置を特定するように構成することができる。初期ピッチピークの位置を特定するために、タスクL100を、フレームの第1のサンプルにおいて開始し、時間的に前方に動作するように構成することができる。最終ピッチピークの位置を特定するために、タスクL100を、フレームの最後のサンプルにおいて開始し、時間的に後方に動作するように構成することができる。後述する特定の例では、タスクL100を、フレームの最終ピッチピークとして端末ピッチピークの位置を特定するように構成する。
図15Bに、サブタスクL110と、L120と、L130とを含むタスクL100の実装L102のブロック図を示す。タスクL110は、端末ピッチピークとして適格であるフレーム中の最後のサンプルの位置を特定する。この例では、タスクL110は、フレーム平均に対するエネルギーが対応するしきい値TH1を超える(代替的に、しきい値以上である)最後のサンプルの位置を特定する。一例では、TH1の値は6である。フレーム中にそのようなサンプルが発見されない場合、方法M300は終了され、別のコーディングモード(たとえば、QPPP)がそのフレームに使用される。他の場合は、タスクL120は、(図16Aに示すように)このサンプルより前にウィンドウ内を探索して最も大きい振幅を有するサンプルを発見し、このサンプルを仮ピーク候補として選択する。タスクL120における探索ウィンドウが、最小許容ラグ値に等しい幅WL1を有することが望ましい。一例では、WL1の値は20サンプルである。探索ウィンドウ中の2つ以上のサンプルが最も大きい振幅を有する場合、タスクL120は、第1のそのようなサンプル、最後のそのようなサンプル、または他のそのようなサンプルを選択するように様々に構成できる。
タスクL130は、(図16Bに示すように)仮ピーク候補より前にウィンドウ内で最も大きい振幅を有するサンプルを発見することによって、最終ピッチピーク選択を検証する。タスクL130における探索ウィンドウが、初期ラグ推定値の50%と100%との間、または50%と75%との間である幅WL2を有することが望ましい。初期ラグ推定値は、(すなわち、前のフレームから)最も最近のラグ推定値に一般に等しい。一例では、WL2の値は、初期ラグ推定値の5/8に等しい。新しいサンプルの振幅が仮ピーク候補の振幅よりも大きい場合、タスクL130は、新しいサンプルを最終ピッチピークとして代わりに選択する。別の実装では、新しいサンプルの振幅が仮ピーク候補の振幅よりも大きい場合、タスクL130は、新しいサンプルを新しい仮ピーク候補として選択し、そのようなサンプルが発見されなくなるまで、新しい仮ピーク候補より前に幅WL2のウィンドウ内の探索を繰り返す。
タスクL200は、フレームのための推定されたラグ値を計算する。タスクL200は、端末ピッチピークに隣接しているピッチパルスのピークの位置を特定し、これらの2つのピーク間の距離としてラグ推定値を計算するように一般に構成される。フレーム境界内のみを探索する、および/または端末ピッチピークと隣接するピッチピークとの間の距離が最小許容ラグ値(たとえば、20サンプル)よりも大きい(代替的に、最小許容ラグ値以上である)ことを必要とするようにタスクL200を構成することが望ましい。
初期ラグ推定値を使用して、隣接するピークを発見するようにタスクL200を構成することが望ましい。ただし、最初に、タスクL200が、(ピッチ3倍および/またはピッチ4倍誤差を含むことができる)ピッチ2倍誤差について初期ラグ推定値を検査することが望ましい。一般に、初期ラグ推定値は、相関ベースの方法を使用して判断されている。ピッチ2倍誤差は、ピッチ推定の相関ベースの方法に共通であり、一般にかなり可聴である。図15Cに、タスクL200の実装L202のフローチャートを示す。タスクL202は、ピッチ2倍誤差について初期ラグ推定値を検査する、随意であるが推奨されるサブタスクL210を含む。タスクL210は、端末ピッチピークから、たとえば1/2、1/3、および1/4ラグの距離の狭いウィンドウ内でピッチピークを探索するように構成され、以下で説明するように反復することができる。
図17Aに、サブタスクL212と、L214と、L216とを含むタスクL210の実装L210aのフローチャートを示す。検査すべき最小ピッチ分数(たとえば、lag/4)の場合、タスクL212は、(たとえば、振幅、絶対値、またはエネルギーに関して)最大値を有するサンプルを発見するために、中心が、ピッチ分数に実質的に等しい距離(たとえば、打ち切りまたは丸め誤差内)だけ端末ピッチピークからオフセットされる小さいウィンドウ(たとえば、5サンプル)内で探索する。図18Aに、そのような動作を示す。
タスクT214は、最大値サンプル(すなわち、「候補」)の1つまたは複数の特徴を評価し、これらの値をそれぞれのしきい値と比較する。評価された特徴は、候補のサンプルエネルギー、平均フレームエネルギーに対する候補エネルギーの比(たとえば、ピーク対RMSエネルギー)、および/または端末ピークエネルギーに対する候補エネルギーの比を含むことができる。タスクL214を、任意の順序でそのような評価を実行するように構成することができ、評価は互いに直列および/または並列に実行できる。
タスクL214が、候補の近傍を端末ピッチピークの同様の近傍と相関させることが望ましい。この特徴評価の場合、タスクL214は、候補を中心とする長さN1サンプルの区間を、端末ピッチピークを中心とする等しい長さの区間と相関させるように一般に構成される。一例では、N1の値は17サンプルに等しい。(たとえば、0から1までの範囲内の結果を有する)正規化相関を実行するようにタスクL214を構成することが望ましい。(たとえば、タイミングオフセットおよび/またはサンプリング誤差をなくすために)たとえば、候補の前および後の1サンプルを中心とする長さN1の区間について相関を繰り返し、最大相関結果を選択するようにタスクL214を構成することが望ましい。相関ウィンドウがフレーム境界を越えて延びる場合、相関ウィンドウをシフトまたは打ち切ることが望ましい。(相関ウィンドウが打ち切られる場合、すでに正規化されているのでなければ、相関結果を正規化することが望ましい。)一例では、しきい値Tが6に等しいとすることができる、図19A中の列として示される条件の3つのセットのいずれかが満たされる場合、候補は隣接するピッチピークとして受け付けられる。
タスクT214が隣接するピッチピークを発見した場合、タスクL216は、端末ピッチピークと隣接するピッチピークとの間の距離として現在のラグ推定値を計算する。他の場合は、タスクL210aは、(図18Bに示すように)端末ピークの反対側に反復し、次いで、(図18C〜図18Fに示すように)隣接するピッチピークが発見されるまで、最小から最大まで、検査すべき他のピッチ分数について端末ピークの両側間で交互に行う。端末ピッチピークと、最も近接したフレーム境界との間で隣接するピッチピークが発見された場合、その端末ピッチピークは隣接するピッチピークとして再標示され、その新しいピークは端末ピッチピークとして標示される。代替実装では、タスクL210は、立上り側の前に端末ピッチピークの立下り側(すなわち、タスクL100においてすでに探索された側)を探索するように構成される。
分数ラグテストタスクL210がピッチピークの位置を特定しなかった場合、タスクL220は、(たとえば、初期ラグ推定値だけ端末ピーク位置からオフセットされるウィンドウ内で)初期ラグ推定値に従って端末ピッチピークに隣接するピッチピークを探索する。図17Bに、サブタスクL222と、L224と、L226と、L228とを含むタスクL220の実装L220aのフローチャートを示す。タスクL222は、(白丸が端末ピッチピークを示す図19Bに示すように)最終ピークの左側に1つのラグの距離を中心とする幅WL3のウィンドウ内で候補(たとえば、振幅または絶対値に関して最大値を有するサンプル)を発見する。一例では、WL3の値は初期ラグ推定値の0.55倍に等しい。タスクL224は候補サンプルのエネルギーを評価する。たとえば、タスクL224を、候補のエネルギーの測度(たとえば、ピーク対RMSエネルギーなど、フレーム平均エネルギーに対するサンプルエネルギーの比)が対応するしきい値TH3よりも大きい(代替的に、しきい値以上)かどうかを判断するように構成することができる。TH3の例示的な値は、1、1.5、3、および6を含む。
タスクL226は、候補の近傍を端末ピッチピークの同様の近傍と相関させる。タスクL226は、候補を中心とする長さN2サンプルの区間を、端末ピッチピークを中心とする等しい長さの区間と相関させるように一般に構成される。N2の値の例は、10、11、および17サンプルを含む。正規化相関を実行するようにタスクL226を構成することが望ましい。(たとえば、タイミングオフセットおよび/またはサンプリング誤差をなくすために)たとえば、候補の前および後の1サンプルを中心とする区間について相関を繰り返し、最大相関結果を選択するようにタスクL226を構成することが望ましい。相関ウィンドウがフレーム境界を越えて延びる場合、相関ウィンドウをシフトまたは打ち切ることが望ましい。(相関ウィンドウが打ち切られる場合、すでに正規化されているのでなければ、相関結果を正規化することが望ましい。)タスクL226はまた、相関結果が対応するしきい値TH4よりも大きい(代替的に、しきい値以上)かどうかを判断する。TH4の例示的な値は、0.75、0.65、および0.45を含む。タスクL224およびタスクL226のテストを、TH3およびTH4の値の異なるセットに従って組み合わせることができる。そのような一例では、値のセット、すなわちTH3=1およびTH4=0.75、TH3=1.5およびTH4=0.65、TH3=3およびTH4=0.45、TH3=6(この場合、タスクL226の結果は正とみなされる)のいずれかが正の結果を生成する場合、L224およびL226の結果は正である。
タスクL224およびL226の結果が正の場合、候補は、隣接するピッチピークとして受け付けられ、タスクT228は、このサンプルと端末ピッチピークとの間の距離として現在のラグ推定値を計算する。タスクL224およびL226は、いずれかの順序でおよび/または互いに並列に実行することができる。タスクL220はまた、タスクL224およびタスクL226のうちの1つのみを含むように実装できる。タスクL220が隣接するピッチピークを発見することなしに終わる場合、(白丸が端末ピッチピークを示す、図19Cに示すように)端末ピッチピークの立下り側でタスクL220を反復することが望ましい。
タスクL210およびL220のいずれもピッチピークの位置を特定しなかった場合、タスクL230は、端末ピッチピークの立上り側でピッチピークのオープンウィンドウ探索を実行する。図17Cに、サブタスクL232と、L234と、L236と、L238とを含むタスクL230の実装L230aのフローチャートを示す。端末ピッチピークから離れた例示的なある距離D1において開始し、タスクL232は、平均フレームエネルギーに対するエネルギーがしきい値(たとえば、TH1)を超える(代替的に、しきい値以下である)サンプルを発見する。図20Aに、そのような動作を示す。一例では、D1の値は、20サンプルなど、最小許容ラグ値である。タスクL234は、(図20Bに示すように)このサンプルの幅WL4のウィンドウ内で候補(たとえば、振幅または絶対値に関して最大値を有するサンプル)を発見する。一例では、WL4の値は20サンプルに等しい。
タスクL236は、候補の近傍を端末ピッチピークの同様の近傍と相関させる。タスクL236は、候補を中心とする長さN3サンプルの区間を、端末ピッチピークを中心とする等しい長さの区間と相関させるように一般に構成される。一例では、N3の値は11サンプルに等しい。正規化相関を実行するようにタスクL326を構成することが望ましい。(たとえば、タイミングオフセットおよび/またはサンプリング誤差をなくすために)たとえば、候補の前および後の1サンプルを中心とする区間について相関を繰り返し、最大相関結果を選択するようにタスクL326を構成することが望ましい。相関ウィンドウがフレーム境界を越えて延びる場合、相関ウィンドウをシフトまたは打ち切ることが望ましい。(相関ウィンドウが打ち切られる場合、すでに正規化されているのでなければ、相関結果を正規化することが望ましい。)タスクT326は、相関結果がしきい値TH5を超える(代替的に、しきい値以上である)かどうかを判断する。一例では、TH5の値は0.45に等しい。タスクL236の結果が正の場合、候補は、隣接するピッチピークとして受け付けられ、タスクT238は、このサンプルと端末ピッチピークとの間の距離として現在のラグ推定値を計算する。他の場合は、タスクL230aは、ピッチピークを発見するか、または探索し尽くすまで、(たとえば、図20Cに示すように、前の探索ウィンドウの左側で開始する)フレームにわたって反復する。
ラグ推定タスクL200が終わったとき、タスクL300は、フレーム中の他のピッチパルスの位置を特定することを実行する。タスクL300は、相関および現在のラグ推定値を使用してより多くのパルスの位置を特定するように実装できる。たとえば、タスクL300を、相関およびサンプル対RMSエネルギー値などの基準を使用して、ラグ推定値の周りの狭いウィンドウ内で最大値サンプルをテストするように構成することができる。ラグ推定タスクL200に比較して、特に端末ピッチピークに隣接するピークがすでに発見された場合、タスクL300を、より小さい探索ウィンドウおよび/または緩和基準(たとえば、より低いしきい値)を使用するように構成することができる。たとえば、オンセットまたは他の遷移フレームでは、パルス形状は、フレーム内のいくつかのパルスが強相関されないように変化することができ、パルスの振幅が十分に高く、(たとえば、現在のラグ値に従って)ロケーションが補正されている限り、第2のパルスの後のパルスの相関基準を緩和するか、さらには無視することが望ましい。有効なパルスを消失する確率を最小限に抑えることが望ましく、特に大きいラグ値について、フレームの有声部分は極めて尖っていなくてもよい。一例では、方法M300は、フレーム当たり最高8つのピッチパルスを可能にする。
タスクL300は、次のピッチピークのための2つ以上の異なる候補を計算し、これらの候補のうちの1つに従ってピッチピークを選択するように実装できる。たとえば、タスクL300を、サンプル値に基づいて候補サンプルを選択し、相関結果に基づいて候補距離を計算するように構成することができる。図21に、サブタスクL310と、L320と、L330と、L340と、L350とを含むタスクL300の実装L302のフローチャートを示す。タスクL310は、候補探索のためのアンカー位置を初期化する。たとえば、最も最近受け付けられたピッチピークの位置を初期アンカー位置として使用するように、タスクL310を構成することができる。タスクL302の第1の反復では、たとえば、アンカー位置は、タスクL200によって端末ピッチピークに隣接したピッチピークの位置が特定された場合、そのようなピークの位置、または他の場合は端末ピッチピークの位置とすることができる。また、タスクL310が、(たとえば、1の値に)ラグ乗数mを初期化することが望ましい。
タスクL320は、候補サンプルを選択し、候補距離を計算する。タスクL320を、図22Aに示すウィンドウ内でこれらの候補を探索するように構成することができ、図22Aでは、大きい有界な横線が現在のフレームを示し、左側の大きい垂直線はフレーム始端を示し、右側の大きい垂直線はフレーム終端を示し、ドットはアンカー位置を示し、影つき枠は探索ウィンドウを示す。この例では、ウィンドウは、アンカー位置からの距離が現在のラグ推定値とラグ乗数mの積であるサンプルを中心とし、ウィンドウは、左側(すなわち、時間的に後方)にWSサンプル、右側(すなわち、時間的に前方)に(WS−1)サンプル延びる。
ウィンドウサイズパラメータWSを、現在のラグ推定値の1/5の値に初期化するように、タスクL320を構成することができる。ウィンドウサイズパラメータWSが、12サンプルなど少なくとも最小値を有することが望ましい。代替的に、端末ピッチピークに隣接したピッチピークがまだ発見されていない場合、タスクL320が、ウィンドウサイズパラメータWSを現在のラグ推定値の1/2など、場合によってはより大きい値に初期化することが望ましい。
候補サンプルを発見するために、タスクL320は、ウィンドウを探索して最大値を有するサンプルを発見し、このサンプルのロケーションおよび値を記録する。タスクL320を、値が探索ウィンドウ内で最も高い振幅を有するサンプルを選択するように構成することができる。代替的に、タスクL320を、探索ウィンドウ内で、値が最も大きい絶対値または最も高いエネルギーを有するサンプルを選択するように構成することができる。
候補距離は、アンカー位置との相関が最も高い探索ウィンドウ内のサンプルに対応する。このサンプルを発見するために、タスクL320は、ウィンドウ中の各サンプルの近傍をアンカー位置の同様の近傍と相関させ、最大相関結果と対応する距離とを記録する。タスクL320は、各テストサンプルを中心とする長さN4サンプルの区間を、アンカー位置を中心とする等しい長さの区間と相関させるように一般に構成される。一例では、N4の値は11サンプルである。タスクL320が正規化相関を実行することが望ましい。
上述のように、タスクT320を、同じ探索ウィンドウを使用して、候補サンプルと候補距離とを発見するように構成することができる。ただし、タスクT320を、これらの2つの動作について異なる探索ウィンドウを使用するように構成することもできる。図22Bに、タスクL320が、サイズパラメータWS1を有するウィンドウにわたって候補サンプルの探索を実行する一例を示し、図22Cに、タスクL320の同じインスタンスが、異なる値のサイズパラメータWS2を有するウィンドウにわたって候補距離の探索を実行する一例を示す。
タスクL302は、候補サンプルと、候補距離に対応するサンプルとのうちの1つをピッチピークとして選択するサブタスクL330を含む。図23に、サブタスクL334と、L336と、L338とを含むタスクL330の実装L332のフローチャートを示す。
タスクL334は、候補距離をテストする。タスクL334は、相関結果をしきい値と比較するように一般に構成される。また、タスクL334が、対応するサンプルのエネルギーに基づく測度(たとえば、フレーム平均エネルギーに対するサンプルエネルギーの比)をしきい値と比較することが望ましい。ただ1つのピッチパルスが識別された場合、タスクL334を、候補距離が少なくとも最小値(たとえば、20サンプルなどの最小許容ラグ値)に等しいことを検証するように構成することができる。図24Aのテーブルの列は、候補距離に対応するサンプルをピッチピークとして受け付けるべきかどうかを判断するためにタスクL334の実装によって使用できるそのようなパラメータの値に基づく、テスト条件の4つの異なるセットを示す。
タスクL334が候補距離に対応するサンプルをピッチピークとして受け付けた場合、そのサンプルの振幅がより高い(代替的に、絶対値がより大きい)場合にピークロケーションを(たとえば、1サンプルだけ)左側または右側に調整することが望ましい。代替または追加として、そのような場合、タスクL334が、タスクL300のさらなる反復のために、ウィンドウサイズパラメータWSの値をより小さい値(たとえば、10サンプル)に設定する(またはパラメータWS1およびWS2のうちの一方または両方をそのような値に設定する)ことが望ましい。また、新しいピッチピークがフレームについて確認された第2のピッチピークのみである場合、タスクL334が、アンカー位置とピークロケーションとの間の距離として現在のラグ推定値を計算することが望ましい。
タスクL302は、候補サンプルをテストするサブタスクL336を含む。タスクL336を、サンプルエネルギーの測度(たとえば、フレーム平均エネルギーに対するサンプルエネルギーの比)がしきい値を超える(代替的に、しきい値以上である)かどうかを判断するように構成することができる。フレームについていくつのピッチピークが確認されたかに応じて、しきい値を変更することが望ましい。たとえば、フレームについてただ1つのピッチピークが確認された場合、タスクL336が、より低いしきい値(たとえば、T−3)を使用し、フレームについて2つ以上のピッチピークがすでに確認されている場合、より高いしきい値(たとえば、T)を使用することが望ましい。
また、タスクL336が、候補サンプルを第2の確認されたピッチピークとして選択した場合、タスクL336が、端末ピッチピークとの相関の結果に基づいて、ピークロケーションを(たとえば、1サンプルだけ)左側または右側に調整することが望ましい。そのような場合、タスクL336を、各そのようなサンプルを中心とする長さN5サンプルの区間を、端末ピッチピークを中心とする等しい長さの区間と相関させるように構成することができる(一例では、N5の値は11サンプルである)。代替または追加として、そのような場合、タスクL336が、タスクL300のさらなる反復のために、ウィンドウサイズパラメータWSの値をより小さい値(たとえば、10サンプル)に設定する(またはパラメータWS1およびWS2のうちの一方または両方をそのような値に設定する)ことが望ましい。
テストタスクL334とテストタスクL336の両方が不合格になった、およびフレームについてただ1つのピッチピークが確認された場合、タスクL302を、(タスクL350を介して)ラグ推定値乗数mの値を増分し、mの新しい値でタスクL320を反復して、新しい候補サンプルと新しい候補距離とを選択し、新しい候補についてタスクL332を繰り返すように構成することができる。
図23に示すように、タスクL336を、候補距離テストタスクL334の不合格のときに実行するように構成することができる。タスクT332の別の実装では、候補距離テストタスクL334がタスクL336の不合格のときにのみ実行するように、候補サンプルテストタスクL336を最初に実行するように構成することができる。
タスクL332は、サブタスクL338をも含む。テストタスクL334とテストタスクL336の両方が不合格になった、およびフレームについて2つ以上のピッチピークがすでに確認されている場合、タスクL338は、候補の一方または両方の、現在のラグ推定値との一致をテストする。
図24Bに、タスクL338の実装L338aのフローチャートを示す。タスクL338aは、候補距離をテストするサブタスクL362を含む。候補距離と現在のラグ推定値との間の絶対差がしきい値未満(代替的に、しきい値以下)である場合、タスクL362は候補距離を受け付ける。一例では、しきい値は3サンプルである。また、タスクL362が、相関結果および/または対応するサンプルのエネルギーが受付け可能な程度に高いことを検証することが望ましい。そのような一例では、相関結果が0.35以上であり、フレーム平均エネルギーに対するサンプルエネルギーの比が0.5以上である場合、タスクL362は、しきい値未満(代替的に、しきい値以下)である候補距離を受け付ける。また、タスクL362が候補距離を受け付けた場合、そのサンプルの振幅がより高い(代替的に、絶対値がより大きい)場合にタスクL362がピークロケーションを(たとえば、1サンプルだけ)左側または右側に調整することが望ましい。
タスクL338aはまた、候補サンプルのラグ一致をテストするサブタスクL364を含む。(A)候補サンプルと最も近接したピッチピークとの間の距離と(B)現在のラグ推定値との間の絶対差がしきい値未満(代替的に、しきい値以下)である場合、タスクL364は候補サンプルを受け付ける。一例では、しきい値は、2サンプルなどの低い値である。また、タスクL364が、候補サンプルのエネルギーが受付け可能な程度に高いことを検証することが望ましい。そのような一例では、候補サンプルがラグ一致テストに合格した場合、およびフレーム平均エネルギーに対するサンプルエネルギーの比が(T−5)以上である場合、タスクL364は、その候補サンプルを受け付ける。
図24Bに示すタスクL338aの実装はまた、タスクL364の低いしきい値よりもゆるい限界に対して候補サンプルのラグ一致をテストする別のサブタスクL366を含む。(A)候補サンプルと最も近接した確認されたピークとの間の距離と(B)現在のラグ推定値との間の絶対差がしきい値未満(代替的に、しきい値以下)である場合、タスクL366は候補サンプルを受け付ける。一例では、しきい値は(0.175*ラグ)である。また、タスクL366が、候補サンプルのエネルギーが受付け可能な程度に高いことを検証することが望ましい。そのような一例では、フレーム平均エネルギーに対するサンプルエネルギーの比が(T−3)以上である場合、タスクL366は候補サンプルを受け付ける。
候補サンプルと候補距離の両方がすべてのテストに不合格になった場合、タスクT302は、(タスクT350を介して)ラグ推定値乗数mを増分し、新しい候補サンプルと新しい候補距離とを選択するために新しい値mにおいてタスクL320を反復し、フレーム境界に到達するまで、新しい候補に対してタスクL330を繰り返す。新しいピッチピークが確認されると、フレーム境界に到達するまで、同じ方向に別のピークを探索することが望ましい。この場合、タスクL340は、アンカー位置を新しいピッチピークに移動し、ラグ推定値乗数mの値を1にリセットする。フレーム境界に到達したとき、アンカー位置を端末ピッチピーク位置に初期化し、タスクL300を反対方向に繰り返すことが望ましい。
1つのフレームから次のフレームへのラグ推定値の大きい低減は、ピッチオーバーフローエラーを示すことがある。そのようなエラーは、現在のフレームのラグ値が最大許容ラグ値を超えるように、ピッチ周波数の降下によって引き起こされる。方法M300は、(たとえば、新しいラグ推定値を計算するとき、または方法の終了時に)前のラグ推定値と現在のラグ推定値との間の絶対差または相対差をしきい値と比較し、エラーが検出された場合、フレームの最も大きいピッチピークのみを保持することが望ましい。一例では、しきい値は、前のラグ推定値の50%に等しい。
大きい絶対値2乗比をもつ2つのパルスを有する過渡として分類されるフレーム(たとえば、一般にワードの終端に向かって、大きいピッチ変化を有するフレーム)の場合、より小さいピークをピッチピークとして受け付ける前に、ごく小さいウィンドウにわたってではなく、現在のラグ推定値全体にわたって相関することが望ましい。そのような場合は、小さいウィンドウにわたってメインピークとよく相関する2次ピークを一般に有する男性ボイスの場合に発生する。タスクL200とL300の一方または両方を、そのような動作を含むように実装することができる。
方法M300のラグ推定タスクL200は、方法M100のラグ推定タスクE130と同じタスクとすることができることに明確に留意されたい。方法M300の端末ピッチピークロケーションタスクL100は、方法M100の端末ピッチピーク位置計算タスクE120と同じタスクとすることができることに明確に留意されたい。方法M100とM300の両方が実行される適用例の場合、ピッチパルス形状選択タスクE110を方法M300の終結時に実行するように構成することが望ましい。
図27Aに、音声信号のフレームのピッチピークを検出するように構成された装置MF300のブロック図を示す。装置MF300は、(たとえば、タスクL100の様々な実装に関して上記で説明したように)フレームの端末ピッチピークの位置を特定するための手段ML100を含む。装置MF300は、(たとえば、タスクL200の様々な実装に関して上記で説明したように)フレームのピッチラグを推定するための手段ML200を含む。装置MF300は、(たとえば、タスクL300の様々な実装に関して上記で説明したように)フレームの追加のピッチピークの位置を特定するための手段ML300を含む。
図27Bに、音声信号のフレームのピッチピークを検出するように構成された装置A300のブロック図を示す。装置A300は、(たとえば、タスクL100の様々な実装に関して上記で説明したように)フレームの端末ピッチピークの位置を特定するように構成された端末ピッチピークロケータA310を含む。装置A300は、(たとえば、タスクL200の様々な実装に関して上記で説明したように)フレームのピッチラグを推定するように構成されたピッチラグ推定器A320を含む。装置A300は、(たとえば、タスクL300の様々な実装に関して上記で説明したように)フレームの追加のピッチピークの位置を特定するように構成された追加のピッチピークロケータA330を含む。
図27Cに、音声信号のフレームのピッチピークを検出するように構成された装置MF350のブロック図を示す。装置MF350は、(たとえば、タスクL100の様々な実装に関して上記で説明したように)フレームのピッチピークを検出するための手段ML150を含む。装置MF350は、(たとえば、タスクL320およびL320bの様々な実装に関して上記で説明したように)候補サンプルを選択するための手段ML250を含む。装置MF350は、(たとえば、タスクL320およびL320aの様々な実装に関して上記で説明したように)候補距離を選択するための手段ML260を含む。装置MF350は、(たとえば、タスクL330の様々な実装に関して上記で説明したように)候補サンプルと候補距離に対応するサンプルとのうちの1つをフレームのピッチピークとして選択するための手段ML350を含む。
図27Dに、音声信号のフレームのピッチピークを検出するように構成された装置A350のブロック図を示す。装置A350は、(たとえば、タスクL100の様々な実装に関して上記で説明したように)フレームのピッチピークを検出するように構成されたピーク検出器150を含む。装置A350は、(たとえば、タスクL320およびL320bの様々な実装に関して上記で説明したように)候補サンプルを選択するように構成されたサンプルセレクタ250を含む。装置A350は、(たとえば、タスクL320およびL320aの様々な実装に関して上記で説明したように)候補距離を選択するように構成された距離セレクタ260を含む。装置A350は、(たとえば、タスクL330の様々な実装に関して上記で説明したように)候補サンプルと候補距離に対応するサンプルとのうちの1つをフレームのピッチピークとして選択するように構成されたピークセレクタ350を含む。
フレームの端末ピッチパルスの位置を一意に示す符号化フレームを生成するために音声エンコーダAE10、タスクE100、第1のフレームエンコーダ100、および/または手段FE100を実装することが望ましい。端末ピッチパルスの位置は、ラグ値と組み合わせられて、そのような時間同期性情報がないことがある後続のフレーム(たとえば、QPPPなどのコーディングスキームを使用して符号化されたフレーム)を復号するために重要な位相情報を与える。また、そのような位置情報を搬送するために必要なビット数を最小限に抑えることが望ましい。通常、160ビット(概して、Nビット)フレーム中の一意の位置を表すために8ビット(概して、
))のうちの1つを予約する。本明細書では、「モード値」という用語は、パラメータ(たとえば、ピッチパルス位置または推定ピッチ周期)の実効値の代わりに動作モードの変更を示すために取り込まれる、そのパラメータの可能な値を示す。
最後のサンプルに対する端末ピッチパルスの位置(すなわち、フレームの最終境界)が与えられた状況では、フレームは、以下の3つのケースのうちの1つに一致することになる。
ビット(7ビット)に符号化され、ピッチラグも(たとえば、7ビットで)送信される。
(たとえば、127))に設定される。
よりも大きい(たとえば、図29Bに示す160ビットフレームの場合、126よりも大きい)場合、フレームが2つ以上のピッチパルスを含んでいる可能性はない。160ビットフレームおよび8kHzのサンプリングレートの場合、これは、フレームの最初の約20パーセントにおいて少なくとも250Hzのピッチにおけるアクティビティがあり、フレームの残りにおいてピッチパルスがないことを暗示するであろう。そのようなフレームがオンセットフレームとして分類される可能性はないであろう。この場合、ピッチパルス位置モード値(たとえば、
または上記のように127)が実際のパルス位置の代わりに送信され、ラグビットは、フレームの第1のサンプルに関する端末ピッチパルスの位置(すなわち、フレームの初期境界)を搬送するために使用される。符号化フレームの位置ビットがピッチパルス位置モード値(たとえば、
のパルス位置)を示すかどうかをテストするように、対応するデコーダを構成することができる。そうであれば、デコーダは、符号化フレームのラグビットからフレームの第1のサンプルに関する端末ピッチパルスの位置を代わりに得ることができる。
160ビットフレームに適用されるケース3では、33個のそのような位置(すなわち、0〜32)が考えられる。その位置のうちの1つを別の位置に丸めることによって(たとえば、位置159を位置158に丸めることによって、または位置127を位置128に丸めることによって)、実際の位置を5つのビットのみで送信することができ、符号化フレームの7つのラグビットのうちの2つは他の情報を自由に搬送することができるようになる。また、ピッチパルス位置のうちの1つまたは複数を他のピッチパルス位置に丸めるそのようなスキームを、他の長さのフレームに対して使用して、(たとえば、符号化のために隣接する位置の各ペアを単一の位置に丸めることによって)符号化すべき一意のピッチパルス位置の総数を、場合によっては1/2だけ、またはさらに多く低減することができる。
図28に、上記の3つのケースに従って動作する方法M500の一般的構成によるフローチャートを示す。方法M500は、qビットフレーム中の端末ピッチパルスの位置をrビットを使用して符号化するように構成され、rはlog2q未満である。上述の一例では、qは160に等しく、rは7に等しい。方法M500は、音声エンコーダAE10の実装内で(たとえば、タスクE100の実装、第1のフレームエンコーダ100の実装、および/または手段FE100の実装内で)実行できる。そのような方法は、概して、1よりも大きい任意の整数値rに対して適用できる。音声適用例の場合、rは、通常(65〜1023のqの値に対応する)6から9までの範囲内の値を有する。
方法M500は、タスクT510、T520、およびT530を含む。タスクT510は、(フレームの最後のサンプルに対する)端末ピッチパルス位置が(2r−2)よりも大きい(たとえば、126よりも大きい)かどうかを判断する。その結果が真である場合、フレームは上記のケース3に一致する。この場合、タスクT520は、(たとえば、符号化フレームを搬送するパケットの)端末ピッチパルス位置ビットをピッチパルス位置モード値(たとえば、2r−1、または上記のように127)に設定し、(たとえば、パケットの)ラグビットを、フレームの第1のサンプルに対する端末ピッチパルスの位置に等しく設定する。
タスクT510の結果が偽である場合、タスクT530は、フレームが1つのピッチパルスのみを含んでいるかどうかを判断する。タスクT530の結果が真である場合、フレームは上記のケース2に一致し、ラグ値を送信する必要はない。この場合、タスクT540は、(たとえば、パケットの)ラグビットをラグモード値(たとえば、2r−1)に設定する。
タスクT530の結果が偽である場合、フレームは2つ以上のピッチパルスを含んでおり、フレームの終端に対する端末ピッチパルスの位置は(2r−2)以下(たとえば、126以下)である。そのようなフレームは上記のケース1に一致し、タスクT550は、その位置をrビットで符号化し、ラグ値をラグビットに符号化する。
第1のサンプルに対する端末ピッチパルスの位置(すなわち、初期境界)が与えられた状況では、フレームは、以下の3つのケースのうちの1つに一致することになる。
ビット(たとえば、7ビット)に符号化され、ピッチラグも(たとえば、7ビットで)送信される。
(たとえば、127))に設定される。
以下(たとえば、図29Dに示す160ビットフレームの場合、32以下)である場合、フレームが2つ以上のピッチパルスを含んでいる可能性はない。160ビットフレームおよび8kHzのサンプリングレートの場合、これは、フレームの最初の約20パーセントにおいて少なくとも250Hzのピッチにおけるアクティビティがあり、フレームの残りにおいてピッチパルスがないことを暗示するであろう。そのようなフレームがオンセットフレームとして分類される可能性はないであろう。この場合、ピッチパルス位置モード値(たとえば、
または127)が実際のパルス位置の代わりに送信され、ラグビットは、フレームの第1のサンプルに関する端末ピッチパルスの位置(すなわち、初期境界)を送信するために使用される。符号化フレームの位置ビットがピッチパルス位置モード値(たとえば、
のパルス位置)を示すかどうかをテストするように、対応するデコーダを構成することができる。そうであれば、デコーダは、符号化フレームのラグビットからフレームの第1のサンプルに関する端末ピッチパルスの位置を代わりに得ることができる。
160ビットフレームに適用されるケース3では、33個のそのような位置(0〜32)が考えられる。その位置のうちの1つを別の位置に丸めることによって(たとえば、位置0を位置1に丸めることによって、または位置32を位置31に丸めることによって)、実際の位置を5つのビットのみで送信することができ、符号化フレームの7つのラグビットのうちの2つは他の情報を自由に搬送することができるようになる。また、パルス位置のうちの1つまたは複数を他のパルス位置に丸めるそのようなスキームを、他の長さのフレームに対して使用して、(たとえば、符号化のために隣接する位置の各ペアを単一の位置に丸めることによって)符号化すべき一意の位置の総数を、場合によっては1/2だけ、またはさらにより多く低減することができる。第1のサンプルに対する端末ピッチパルスの位置が与えられた状況では、方法M500を変更することができることを当業者は認識されよう。
図30Aに、タスクE310およびE320を含む、一般的構成による音声信号フレームを処理する方法M400のフローチャートを示す。方法M400は、音声エンコーダAE10の実装内で(たとえば、タスクE100の実装、第1のフレームエンコーダ100の実装、および/または手段FE100の実装内で)実行できる。タスクE310は、第1の音声信号フレーム内の位置(「第1の位置」)を計算する。第1の位置は、フレームの最後のサンプルに関する(代替的に、フレームの第1のサンプルに関する)フレームの端末ピッチパルスの位置である。タスクE310は、本明細書で説明するパルス位置計算タスクE120またはL100のインスタンスとして実装できる。タスクE320は、第1の音声信号フレームを搬送し、第1の位置を含む第1のパケットを発生する。
方法M400は、タスクE330およびE340をも含む。タスクE330は、第2の音声信号フレーム内の位置(「第2の位置」)を計算する。第2の位置は、(A)フレームの第1のサンプルと(B)フレームの最後のサンプルとのうちの一方に関するフレームの端末ピッチパルスの位置である。タスクE330は、本明細書で説明するパルス位置計算タスクE120のインスタンスとして実装できる。タスクE340は、第2の音声信号フレームを搬送し、フレーム内に第3の位置を含む第2のパケットを発生する。第3の位置は、フレームの第1のサンプルとフレームの最後のサンプルとのうちの他方に関する端末ピッチパルスの位置である。言い換えれば、タスクT330が最後のサンプルに関する第2の位置を計算する場合、第3の位置は第1のサンプルに関し、その逆も同様である。
1つの特定の例では、第1の位置は、フレームの最終サンプルに関する第1の音声信号フレームの最終ピッチパルスの位置であり、第2の位置は、フレームの最終サンプルに関する第2の音声信号フレームの最終ピッチパルスの位置であり、第3の位置は、フレームの第1のサンプルに関する第2の音声信号フレームの最終ピッチパルスの位置である。
方法M400によって処理される音声信号フレームは、一般にLPC残差信号のフレームである。第1および第2の音声信号フレームは、同じボイス通信セッションからのものか、または異なるボイス通信セッションからのものとすることができる。たとえば、第1および第2の音声信号フレームは、1人の人によって話された音声信号からのものか、または異なる人によってそれぞれ話された2つの異なる音声信号からのものとすることができる。音声信号フレームは、ピッチパルス位置が計算される前および/または後に、他の処理演算(たとえば、知覚的重み付け)を受けることができる。
第1のパケットと第2のパケットの両方が、情報の様々なアイテムについてパケット内の対応するロケーションを示す(パケットテンプレートとも呼ばれる)パケット記述に準拠することが望ましい。パケットを発生する(たとえば、タスクE320およびE340によって実行される)動作は、そのようなパケットテンプレートに従って情報の様々なアイテムをバッファに書き込むことを含むことができる。(たとえば、パケットによって搬送される値を、パケット内の値のロケーションに従って対応するパラメータに関連付けることによって)パケットの復号を可能にするために、そのようなテンプレートに従ってパケットを発生することが望ましい。
パケットテンプレートの長さは、符号化フレームの長さ(たとえば、1/4レートコーディングスキームの場合、40ビット)に等しいとすることができる。そのような一例では、パケットテンプレートは、LSP値と符号化モードとを示すために使用される17ビットの領域と、端末ピッチパルスの位置を示すために使用される7ビットの領域と、推定ピッチ周期を示すために使用される7ビットの領域と、パルス形状を示すために使用される7ビットの領域と、利得プロファイルを示すために使用される2ビットの領域とを含む。他の例では、LSP値のための領域がより小さく、利得プロファイルのための領域が相応してより大きいテンプレートを含む。代替的に、パケットテンプレートは、(たとえば、パケットが2つ以上の符号化フレームを搬送する場合には)符号化フレームよりも長いことがある。また、パケット発生動作、またはそのような動作を実行するように構成されたパケットジェネレータは、(たとえば、あるフレーム情報が他のフレーム情報よりも少ない頻度で符号化される場合)異なる長さのパケットを生成するように構成できる。
1つの一般的な場合には、方法M400は、ビットロケーションの第1および第2のセットを含むパケットテンプレートを使用するように実装される。そのような場合、第1の位置がビットロケーションの第1のセットを占めるように、第1のパケットを発生するようにタスクE320を構成し、第3の位置がビットロケーションの第2のセットを占めるように、第2のパケットを発生するようにタスクE340を構成することができる。ビットロケーションの第1および第2のセットが独立している(すなわち、パケットのビットが両方のセット中にないようにする)ことが望ましい。図31Aに、独立しているビットロケーションの第1および第2のセットを含むパケットテンプレートPT10の一例を示す。この例では、第1および第2のセットの各々は、ビットロケーションの連続する連続である。ただし、概して、セット内のビットロケーションが互いに隣接している必要はない。図31Bに、独立しているビットロケーションの第1および第2のセットを含む別のパケットテンプレートPT20の一例を示す。この例では、第1のセットは、互いから1つまたは複数の他のビットロケーションだけ分離されたビットロケーションの2つの連続を含む。たとえば、図31Cに示すように、パケットテンプレート中のビットロケーションの2つの独立セットを少なくとも部分的にインターリーブすることさえできる。
図30Bに、方法M400の実装M410のフローチャートを示す。方法M410は、第1の位置をしきい値と比較するタスクE350を含む。タスクE350は、第1の位置がしきい値未満のときに第1の状態を有し、第1の位置がしきい値よりも大きいときに第2の状態を有する結果を生成する。そのような場合、第1の状態を有するタスクE350の結果に応答して第1のパケットを発生するようにタスクE320を構成することができる。
一例では、タスクE350の結果は、第1の位置がしきい値未満のときに第1の状態を有し、他の場合(すなわち、第1の位置がしきい値以上であるときに)第2の状態を有する。別の例では、タスクE350の結果は、第1の位置がしきい値以下のときに第1の状態を有し、他の場合(すなわち、第1の位置がしきい値よりも大きいときに)第2の状態を有する。タスクE350は、本明細書で説明するタスクT510のインスタンスとして実装できる。
図30Cに、方法M410の実装M420のフローチャートを示す。方法M420は、第2の位置をしきい値と比較するタスクE360を含む。タスクE360は、第2の位置がしきい値未満のときに第1の状態を有し、第2の位置がしきい値よりも大きいときに第2の状態を有する結果を生成する。そのような場合、第2の状態を有するタスクE360の結果に応答して第2のパケットを発生するように、タスクE340を構成することができる。
一例では、タスクE360の結果は、第2の位置がしきい値未満のときに第1の状態を有し、他の場合(すなわち、第2の位置がしきい値以上であるときに)第2の状態を有する。別の例では、タスクE360の結果は、第2の位置がしきい値以下のときに第1の状態を有し、他の場合(すなわち、第2の位置がしきい値よりも大きいときに)第2の状態を有する。タスクE360は、本明細書で説明するタスクT510のインスタンスとして実装できる。
方法M400は、第2の位置に基づいて第3の位置を得るように一般に構成される。たとえば、方法M400は、フレーム長から第2の位置を減算し、結果を減分することによって、またはフレーム長未満の値である値から第2の位置を減算することによって、または第2の位置とフレーム長とに基づく別の演算を実行することによって、第3の位置を計算するタスクを含むことができる。ただし、場合によっては、(たとえば、タスクE120に関して)本明細書で説明するピッチパルス位置計算演算のいずれかに従って第3の位置を得るように、方法M400を構成することができる。
図32Aに、方法M400の実装M430のフローチャートを示す。方法M430は、フレームのピッチ周期を推定するタスクE370を含む。タスクE370は、本明細書で説明するピッチ周期推定タスクE130またはL200のインスタンスとして実装できる。この場合、パケット発生タスクE320は、第1のパケットが、推定ピッチ周期を示す符号化ピッチ周期値を含むように実装される。たとえば、符号化ピッチ周期値がパケットのビットロケーションの第2のセットを占めるように、タスクE320を構成することができる。符号化ピッチ周期値が、推定ピッチ周期を最小ピッチ周期値(たとえば、20)に対するオフセットとして示すように、(たとえば、タスクE370内で)符号化ピッチ周期値を計算するように、方法M430を構成することができる。たとえば、推定ピッチ周期から最小ピッチ周期値を減算することによって符号化ピッチ周期値を計算するように、方法M430(たとえば、タスクE370)を構成することができる。
図32Bに、本明細書で説明する比較タスクE350をも含む方法M430の実装M440のフローチャートを示す。図32Cに、本明細書で説明する比較タスクE360をも含む方法M440の実装M450のフローチャートを示す。
図33Aに、音声信号フレームを処理するように構成された装置MF400のブロック図を示す。装置MF100は、(たとえば、タスクE310、E120、および/またはL100の様々な実装に関して上記で説明したように)第1の位置を計算するための手段FE310と、(たとえば、タスクE320の様々な実装に関して上記で説明したように)第1のパケットを発生するための手段FE320とを含む。装置MF100は、(たとえば、タスクE330、E120、および/またはL100の様々な実装に関して上記で説明したように)第2の位置を計算するための手段FE330と、(たとえば、タスクE340の様々な実装に関して上記で説明したように)第2のパケットを発生するための手段FE340とを含む。装置MF400はまた、(たとえば、方法M400に関して上記で説明したように)第3の位置を計算するための手段を含むことができる。
図33Bに、(たとえば、タスクE350の様々な実装に関して上記で説明したように)第1の位置をしきい値と比較するための手段FE350をも含む装置MF400の実装MF410のブロック図を示す。図33Cに、(たとえば、タスクE360の様々な実装に関して上記で説明したように)第2の位置をしきい値と比較するための手段FE360をも含む装置MF410の実装MF420のブロック図を示す。
図34Aに、装置MF400の実装MF430のブロック図を示す。装置MF430は、(たとえば、タスクE370、E130、および/またはL200の様々な実装に関して上記で説明したように)第1のフレームのピッチ周期を推定するための手段FE370を含む。図34Bに、手段FE370を含む装置MF430の実装MF440のブロック図を示す。図34Cに、手段FE360を含む装置MF440の実装MF450のブロック図を示す。
図35Aは、ピッチパルス位置計算器160とパケットジェネレータ170とを含む、一般的構成による音声信号フレームを処理するための装置(たとえば、フレームエンコーダ)A400のブロック図を示す。ピッチパルス位置計算器160は、(たとえば、タスクE310、E120、および/またはL100に関して上記で説明したように)第1の音声信号フレーム内の第1の位置を計算し、(たとえば、タスクE330、E120、および/またはL100に関して上記で説明したように)第2の音声信号フレーム内の第2の位置を計算するように構成される。たとえば、ピッチパルス位置計算器160は、本明細書で説明するピッチパルス位置計算器120または端末ピークロケータA310のインスタンスとして実装できる。パケットジェネレータ170は、(たとえば、タスクE320に関して上記で説明したように)第1の音声信号フレームを表し第1の位置を含む第1のパケットを発生し、(たとえば、タスクE340に関して上記で説明したように)第2の音声信号フレームを表し第2の音声信号フレーム内の第3の位置を含む第2のパケットを発生するように構成される。
パケットジェネレータ170は、符号化モード、パルス形状、1つまたは複数のLSPベクトル、および/または利得プロファイルなど、符号化フレームの他のパラメータ値を示す情報を含むようにパケットを発生するように構成できる。パケットジェネレータ170は、装置A400の他の要素から、および/または装置A400を含むデバイスの他の要素からそのような情報を受信するように構成できる。たとえば、装置A400は、(たとえば、音声信号フレームを発生するために)LPC分析を実行するか、または残差発生器RG10のインスタンスなどの別の要素からLPC分析パラメータ(たとえば、1つまたは複数のLSPベクトル)を受信するように構成できる。
図35Bに、コンパレータ180をも含む装置A400の実装A402のブロック図を示す。コンパレータ180は、(たとえば、タスクE350の様々な実装に関して上記で説明したように)第1の位置をしきい値と比較し、第1の位置がしきい値未満のときに第1の状態を有し、第1の位置がしきい値よりも大きいときに第2の状態を有する第1の出力を生成するように構成される。この場合、パケットジェネレータ170は、第1の状態を有する第1の出力に応答して第1のパケットを発生するように構成できる。
また、コンパレータ180は、(たとえば、タスクE360の様々な実装に関して上記で説明したように)第2の位置をしきい値と比較し、第2の位置がしきい値未満のときに第1の状態を有し、第2の位置がしきい値よりも大きいときに第2の状態を有する第2の出力を生成するように構成できる。この場合、パケットジェネレータ170は、第2の状態を有する第2の出力に応答して第2のパケットを発生するように構成できる。
図35Cは、(たとえば、タスクE370、E130、および/またはL200に関して上記で説明したように)第1の音声信号フレームのピッチ周期を推定するように構成されたピッチ周期推定器190を含む装置A400の実装A404のブロック図を示す。たとえば、ピッチ周期推定器190は、本明細書で説明するピッチ周期推定器130またはピッチラグ推定器A320のインスタンスとして実装できる。この場合、パケットジェネレータ170は、推定ピッチ周期を示すビットのセットがビットロケーションの第2のセットを占めるように、第1のパケットを発生するように構成される。図35Dに、ピッチ周期推定器190を含む装置A402の実装A406のブロック図を示す。
音声エンコーダAE10は、装置A400を含むように実装できる。たとえば、音声エンコーダAE20の第1のフレームエンコーダ104は、ピッチパルス位置計算器120が計算器160としても働く(場合によっては、ピッチ周期推定器130が推定器190としても働く)ように装置A400のインスタンスを含むように実装できる。
図36Aは、一般的構成による、符号化フレーム(たとえば、パケット)を復号する方法M550のフローチャートを示す。方法M550は、タスクD305、D310、D320、D330、D340、D350、およびD360を含む。タスクD305は、符号化フレームから値PおよびLを抽出する。符号化フレームが本明細書で説明するパケットテンプレートに準拠する場合、符号化フレームのビットロケーションの第1のセットからPを抽出し、符号化フレームのビットロケーションの第2のセットからLを抽出するようにタスクD305を構成することができる。タスクD310は、Pをピッチ位置モード値と比較する。Pがピッチ位置モード値に等しい場合、タスクD320は、復号フレームの第1および最後のサンプルのうちの一方に対するパルス位置をLから得る。タスクD320はまた、フレーム中のパルスの数Nに値1を割り当てる。Pがピッチ位置モード値に等しくない場合、タスクD330は、復号フレームの第1および最後のサンプルのうちの他方に対するパルス位置をPから得る。タスクD340は、Lをピッチ周期モード値と比較する。Lがピッチ周期モード値に等しい場合、タスクD350は、フレーム中のパルスの数Nに値1を割り当てる。他の場合は、タスクD360は、Lからピッチ周期値を得る。一例では、タスクD360は、最小ピッチ周期値をLに追加することによってピッチ周期値を計算するように構成される。本明細書で説明するフレームデコーダ300または手段FD100は、方法M550を実行するように構成できる。
図37に、タスクD410、D420、およびD430を含む、一般的構成によるパケットを復号する方法M560のフローチャートを示す。タスクD410は、(たとえば、方法M400の実装によって生成された)第1のパケットから第1の値を抽出する。第1のパケットが本明細書で説明するテンプレートに準拠する場合、パケットのビットロケーションの第1のセットから第1の値を抽出するように、タスクD410を構成することができる。タスクD420は、第1の値をピッチパルス位置モード値と比較する。第1の値がピッチパルス位置モード値に等しいときに第1の状態を有し、他の場合は第2の状態を有する結果を生成するようにタスクD420を構成することができる。タスクD430は、第1の値に従って第1の励振信号内のピッチパルスを構成する。タスクD430は、本明細書で説明するタスクD110のインスタンスとして実装でき、第2の状態を有するタスクD420の結果に応答して実行するように構成できる。第1および最後のサンプルのうちの一方に対するそのピークのロケーションが第1の値と一致するように、第1の励振信号内のピッチパルスを構成するように、タスクD430を構成することができる。
方法M560はまた、タスクD440、D450、D460、およびD470を含む。タスクD440は、第2のパケットから第2の値を抽出する。第2のパケットが本明細書で説明するテンプレートに準拠する場合、パケットのビットロケーションの第1のセットから第2の値を抽出するように、タスクD440を構成することができる。タスクD470は、第2のパケットから第3の値を抽出する。パケットが本明細書で説明するテンプレートに準拠する場合、パケットのビットロケーションの第2のセットから第3の値を抽出するように、タスクD470を構成することができる。タスクD450は、第2の値をピッチパルス位置モード値と比較する。第2の値がピッチパルス位置モード値に等しいときに第1の状態を有し、他の場合は第2の状態を有する結果を生成するようにタスクD450を構成することができる。タスクD460は、第3の値に従って第2の励振信号内のピッチパルスを構成する。タスクD460は、本明細書で説明するタスクD110の別のインスタンスとして実装でき、第1の状態を有するタスクD450の結果に応答して実行するように構成できる。
第1および最後のサンプルのうちの他方に対するそのピークのロケーションが第3の値と一致するように、第2の励振信号内のピッチパルスを構成するように、タスクD460を構成することができる。たとえば、タスクD430が、第1の励振信号の最後のサンプルに対するそのピークのロケーションが第1の値と一致するように、第1の励振信号内のピッチパルスを構成する場合、タスクD460は、第2の励振信号の第1のサンプルに対するそのピークのロケーションが第3の値と一致するように、第2の励振信号内のピッチパルスを構成するように構成でき、その逆も同様である。本明細書で説明するフレームデコーダ300または手段FD100は、方法M560を実行するように構成できる。
図38に、タスクD480およびD490を含む方法M560の実装M570のフローチャートを示す。タスクD480は、第1のパケットから第4の値を抽出する。第1のパケットが本明細書で説明するテンプレートに準拠する場合、パケットのビットロケーションの第2のセットから第4の値(たとえば、符号化ピッチ周期値)を抽出するように、タスクD480を構成することができる。第4の値に基づいて、タスクD490は、第1の励振信号内の別のピッチパルス(「第2のピッチパルス」)を構成する。第1の値に基づいて第1の励振信号内の第2のピッチパルスを構成するように、タスクD490を構成することもできる。たとえば、第1の構成されたピッチパルスに対する第1の励振信号内の第2のピッチパルスを構成するように、タスクD490を構成することができる。タスクD490は、本明細書で説明するタスクD120のインスタンスとして実装できる。
2つのピッチピーク間の距離が、第4の値に基づくピッチ周期値に等しくなるように第2のピッチピークを構成するように、タスクD490を構成することができる。そのような場合、ピッチ周期値を計算するようにタスクD480またはタスクD490を構成することができる。たとえば、最小ピッチ周期値を第4の値に加算することによってピッチ周期値を計算するように、タスクD480またはタスクD490を構成することができる。
図39に、パケットを復号するための装置MF560のブロック図を示す。装置MF560は、(たとえば、タスクD410の様々な実装に関して上記で説明したように)第1のパケットから第1の値を抽出するための手段FD410と、(たとえば、タスクD420の様々な実装に関して上記で説明したように)第1の値をピッチパルス位置モード値と比較するための手段FD420と、(たとえば、タスクD430の様々な実装に関して上記で説明したように)第1の値に従って第1の励振信号内のピッチパルスを構成するための手段FD430とを含む。手段FD430は、本明細書で説明する手段FD110のインスタンスとして実装できる。装置MF560はまた、(たとえば、タスクD440の様々な実装に関して上記で説明したように)第2のパケットから第2の値を抽出するための手段FD440と、(たとえば、タスクD470の様々な実装に関して上記で説明したように)第2のパケットから第3の値を抽出するための手段FD470と、(たとえば、タスクD450の様々な実装に関して上記で説明したように)第2の値をピッチパルス位置モード値と比較するための手段FD450と、(たとえば、タスクD460の様々な実装に関して上記で説明したように)第3の値に従って第2の励振信号内のピッチパルスを構成するための手段FD460とを含む。手段FD460は、手段FD110の別のインスタンスとして実装できる。
図40に、装置MF560の実装MF570のブロック図を示す。装置MF570は、(たとえば、タスクD480の様々な実装に関して上記で説明したように)第1のパケットから第4の値を抽出するための手段FD480と、(たとえば、タスクD490の様々な実装に関して上記で説明したように)第4の値に基づいて第1の励振信号内の別のピッチパルスを構成するための手段FD490とを含む。手段FD490は、本明細書で説明する手段FD120のインスタンスとして実装できる。
図36Bに、パケットを復号するための装置A560のブロック図を示す。装置A560は、(たとえば、タスクD410の様々な実装に関して上記で説明したように)第1のパケットから第1の値を抽出するように構成されたパケットパーサ510と、(たとえば、タスクD420の様々な実装に関して上記で説明したように)第1の値をピッチパルス位置モード値と比較するように構成されたコンパレータ520と、(たとえば、タスクD430の様々な実装に関して上記で説明したように)第1の値に従って第1の励振信号内のピッチパルスを構成するように構成された励振信号発生器530とを含む。パケットパーサ510はまた、(たとえば、タスクD440の様々な実装に関して上記で説明したように)第2のパケットから第2の値を抽出し、(たとえば、タスクD470の様々な実装に関して上記で説明したように)第2のパケットから第3の値を抽出するように構成される。コンパレータ520はまた、(たとえば、タスクD450の様々な実装に関して上記で説明したように)第2の値をピッチパルス位置モード値と比較するように構成される。励振信号発生器530はまた、(たとえば、タスクD460の様々な実装に関して上記で説明したように)第3の値に従って第2の励振信号内のピッチパルスを構成するように構成される。励振信号発生器530は、本明細書で説明する第1の励振信号発生器310のインスタンスとして実装できる。
装置A560の別の実装では、パケットパーサ510はまた、(たとえば、タスクD480の様々な実装に関して上記で説明したように)第1のパケットから第4の値を抽出するように構成され、励振信号発生器530はまた、(たとえば、タスクD490の様々な実装に関して上記で説明したように)第4の値に基づいて第1の励振信号内の別のピッチパルスを構成するように構成される。
音声エンコーダAD10は、装置A560を含むように実装できる。たとえば、音声デコーダAD20の第1のフレームデコーダ304は、第1の励振信号発生器310が励振信号発生器530としても働くように、装置A560のインスタンスを含むように実装できる。
1/4レートはフレーム当たり40ビットを可能にする。符号化タスクE100、エンコーダ100、または手段FE100の実装によって適用される遷移フレームコーディングフォーマットの一例(たとえば、パケットテンプレート)では、17ビットの領域を使用してLSP値と符号化モードとを示し、7ビットの領域を使用して端末ピッチパルスの位置を示し、7ビットの領域を使用してラグを示し、7ビットの領域を使用してパルス形状を示し、2ビットの領域を使用して利得プロファイルを示す。他の例では、LSP値のための領域がより小さく、利得プロファイルのための領域が相応してより大きいフォーマットを含む。
示されたパルス形状ベクトルを、端末ピッチパルスロケーションとラグ値とによって示されるロケーションの各々にコピーし、得られた信号を利得VQテーブル出力に従ってスケーリングすることによって、パルス形状VQテーブル出力から励振信号を構成するように、対応するデコーダ(たとえば、デコーダ300もしくは560の実装、または手段FD100もしくはMF560の実装、あるいは、復号方法M550もしくはM560または復号タスクD100の実装を実行しているデバイス)を構成することができる。示されたパルス形状ベクトルがラグ値よりも長い場合、隣接するパルス間の重複を、重複した値の各ペアを平均化することによって、各ペアのうちの一方の値(たとえば、最高値もしくは最低値、または左側のパルスもしくは右側のパルスに属する値)を選択することによって、あるいは単にラグ値を越えるサンプルを廃棄することによって処理することができる。同様に、(たとえば、ピッチパルスピークロケーションおよび/またはラグ推定値に従って)励振信号の第1または最後のピッチパルスを構成するとき、フレーム境界外に出る任意のサンプルを、隣接するフレームの対応するサンプルで平均化するか、または単に廃棄することができる。
励振信号のピッチパルスは単にインパルスまたはスパイクではない。そうではなく、ピッチパルスは、典型的に、話者依存である時間にわたる振幅プロファイルまたは形状を有し、この形状を保持することが話者認識にとって重要である。後続の有声フレームのための基準(たとえば、プロトタイプ)として役立つようにピッチパルス形状の良好な表現を符号化することが望ましい。
ピッチパルスの形状は、話者特定および認識にとって知覚的に重要な情報を与える。この情報をデコーダに与えるために、(たとえば、タスクE100、エンコーダ100、または手段FE100の実装によって実行される)遷移フレームコーディングモードを、ピッチパルス形状情報を符号化フレーム中に含めるように構成することができる。ピッチパルス形状を符号化することが、次元が可変であるベクトルを量子化するという問題を提示することがある。たとえば、残差中のピッチ周期の長さ、したがってピッチパルスの長さは、広範囲にわたって変化することがある。上記で説明した一例では、許容ピッチラグ値は20サンプルから146サンプルまで変動する。
ピッチパルスを周波数領域に変換することなしに、そのパルスの形状を符号化することが望ましい。図41に、第1のフレームエンコーダ100の実装によって、および/または手段FE100の実装によってタスクE100の実装内で実行できる、一般的構成によるフレームを符号化する方法M600のフローチャートを示す。方法M600は、タスクT610、T620、T630、T640、およびT650を含む。タスクT610は、フレームが単一のピッチパルスを有するか、または複数のピッチパルスを有するかに応じて、2つの処理経路のうちの一方を選択する。タスクT610を実行する前に、フレームが単一のピッチパルスを有するか、または複数のピッチパルスを有するかを判断するためにピッチパルスを検出するための方法(たとえば、方法M300)を少なくとも十分に実行することが望ましい。
単一パルスフレームの場合、タスクT620は、異なる単一パルスベクトル量子化(VQ)テーブルのセットのうちの1つを選択する。この例では、タスクT620は、(たとえば、タスクE120またはL100、手段FE120またはML100、ピッチパルス位置計算器120、あるいは端末ピークロケータA310によって計算される)フレーム内のピッチパルスの位置に従ってVQテーブルを選択するように構成される。次いで、タスクT630は、選択されたVQテーブルのベクトルを選択することによって(たとえば、選択されたVQテーブル内で最良の一致を発見し、対応するインデックスを出力することによって)パルス形状を量子化する。
一致すべきパルス形状にエネルギーが最も近接しているパルス形状ベクトルを選択するように、タスクT630を構成することができる。一致すべきパルス形状は、フレーム全体、またはピークを含むフレームの若干より小さい部分(たとえば、フレーム長の1/4など、ピークのある距離内の区間)とすることができる。一致演算を実行する前に、一致すべきパルス形状の振幅を正規化することが望ましい。
一例では、タスクT630は、一致すべきパルス形状と選択されたテーブルの各パルス形状ベクトルとの間の差を計算し、最小エネルギーをもつ差に対応するパルス形状ベクトルを選択するように構成される。別の例では、タスクT630は、エネルギーが一致すべきパルス形状のエネルギーに最も近接しているパルス形状ベクトルを選択するように構成される。そのような場合、(ピッチパルスまたは他のベクトルなどの)サンプルのシーケンスのエネルギーは、2乗サンプルの和として計算できる。タスクT630は、本明細書で説明するパルス形状選択タスクE110のインスタンスとして実装できる。
単一パルスVQテーブルのセット中の各テーブルは、フレームの長さ(たとえば、160サンプル)と同じ大きさとすることができるベクトル次元を有する。各テーブルが、そのテーブル中のベクトルに一致すべきパルス形状と同じベクトル次元を有することが望ましい。1つの特定の例では、単一パルスVQテーブルのセットは3つのテーブルを含み、パルス形状が7ビットインデックスとして符号化できるように、各テーブルが最高128個のエントリを有する。
(たとえば、本明細書で説明する抽出タスクD305またはD440、手段FD440、あるいはパケットパーサ510によって判断された)符号化フレームのパルス位置値がピッチパルス位置モード値(たとえば、(2r−1)または127)に等しい場合にフレームを単一パルスとして識別するように、対応するデコーダ(たとえば、デコーダ300、MF560、またはA560の実装、あるいは手段FD100、あるいは復号タスクD100または方法M560の実装を実行しているデバイス)を構成することができる。そのような決定は、本明細書で説明する比較タスクD310またはD450、手段FD450、あるいはコンパレータ520の出力に基づくことができる。代替または追加として、ラグ値がピッチ周期モード値(たとえば、(2r−1)または127)に等しい場合にフレームを単一パルスとして識別するように、そのようなデコーダを構成することができる。
タスクT640は、複数のパルスフレームから一致すべき少なくとも1つのピッチパルスを抽出する。たとえば、最大利得をもつピッチパルス(たとえば、最高のピークを含んでいるピッチパルス)を抽出するようにタスクT640を構成することができる。抽出されたピッチパルスの長さが(たとえば、タスクE370、E130、またはL200によって計算された)推定ピッチ周期に等しいことが望ましい。パルスを抽出したとき、ピークが、1つまたは複数の重要なサンプルの不連続および/または欠損をもたらすことがある、抽出されたパルスの第1のサンプルまたは最後のサンプルではないことを確認することが望ましい。場合によっては、ピーク後の情報はピーク前の情報よりも音声品質にとって重要であり、したがってピークが始端の近くになるようにパルスを抽出することが望ましい。一例では、タスクT640は、ピッチピークより2サンプル前に開始するピッチ周期から形状を抽出する。そのような手法により、ピーク後に発生し、重要な形状情報を含んでいる可能性があるサンプルをキャプチャすることが可能になる。別の例では、同じく重要な情報を含んでいる可能性がある、ピーク前のより多くのサンプルをキャプチャすることが望ましい。さらなる一例では、タスクT640は、ピークを中心とするピッチ周期を抽出するように構成される。タスクT640は、フレームから2つ以上のピッチパルスを抽出し(たとえば、最高のピークを有する2つのピッチパルスを抽出し)、抽出されたピッチパルスから一致すべき平均パルス形状を計算することが望ましい。タスクT640および/またはタスクT660は、パルス形状ベクトル選択を実行する前に、一致すべきパルス形状の振幅を正規化することが望ましい。
複数パルスフレームの場合、タスクT650は、ラグ値(または、抽出されたプロトタイプの長さ)に基づいてパルス形状VQテーブルを選択する。複数パルスフレームを符号化するために9個または10個のパルス形状VQテーブルのセットを与えることが望ましい。セット中のVQテーブルの各々は、異なるベクトル次元を有し、異なるラグ範囲または「ビン」に関連する。そのような場合、タスクT650は、どのビンが(たとえば、タスクE370、E130、またはL200によって計算された)現在の推定ピッチ周期を含んでいるかを判断し、そのビンに対応するVQテーブルを選択する。現在の推定ピッチ周期が105サンプルに等しい場合、たとえば、タスクT650は、101サンプルから110サンプルまでのラグ範囲を含むビンに対応するVQテーブルを選択することができる。一例では、パルス形状が7ビットインデックスとして符号化できるように、複数パルスパルス形状VQテーブルの各々は最高128個のエントリを有する。一般に、VQテーブル中のパルス形状ベクトルのすべては同じベクトル次元を有することになるが、VQテーブルの各々は、一般に(たとえば、対応するビンのラグ範囲中の最大値に等しい)異なるベクトル次元を有することになる。
タスクT660は、選択されたVQテーブルのベクトルを選択することによって(たとえば、選択されたVQテーブル内で最良の一致を発見し、対応するインデックスを出力することによって)パルス形状を量子化する。量子化すべきパルス形状の長さはテーブルエントリの長さに正確に一致しないので、テーブルから最良の一致を選択する前に、対応するテーブルベクトルサイズに一致するように、パルス形状を(たとえば、終端において)ゼロパディングするように、タスクT660を構成することができる。代替または追加として、テーブルから最良の一致を選択する前に、対応するテーブルベクトルサイズに一致するように、パルス形状の端を打ち切るように、タスクT660を構成することができる。
可能な(許容)ラグ値の範囲を均一な様式でまたは不均一な様式でビンに分割することができる。図42Aに示す均一な分割の一例では、20〜146サンプルのラグ範囲は、20〜33、34〜47、48〜61、62〜75、76〜89、90〜103、104〜117、118〜131、および132〜146サンプルの9つのビンに分割される。この例では、最後のビンを除くすべてのビンは14サンプルの幅を有し、最後のビンは15サンプルの幅を有する。
上記の均一な分割では、低いピッチ周波数における品質に比較して、高いピッチ周波数における品質が低くなることがある。上記の例では、タスクT660が、長さが20サンプルのピッチパルスを一致の前に65%だけ延長する(たとえば、ゼロパディングする)ように構成できるが、長さが132サンプルのピッチパルスは、わずか11%だけ延長され得る(たとえば、ゼロパディングされ得る)。不均一な分割を使用することの1つの潜在的な利点は、異なるラグビン間で最大相対延長を等化することである。図42Bに示す不均一な分割の一例では、20〜146サンプルのラグ範囲は、20〜23、24〜29、30〜37、38〜47、48〜60、61〜76、77〜96、97〜120、および121〜146サンプルの9つのビンに分割される。この場合、長さが20サンプルのピッチパルスを一致の前に15%だけ延長し(たとえば、ゼロパディングし)、長さが121サンプルのピッチパルスを21%だけ延長する(たとえば、ゼロパディングする)ように、タスクT660を構成することができる。この分割スキームでは、20〜146サンプルの範囲中のピッチパルスの最大延長は25%にすぎない。
符号化フレームからラグ値とパルス形状インデックス値とを得、ラグ値を使用して適切なパルス形状VQテーブルを選択し、パルス形状インデックス値を使用して選択されたパルス形状VQテーブルから所望のパルス形状を選択するように、対応するデコーダ(たとえば、デコーダ300、MF560、もしくはA560、または手段FD100の実装、あるいは復号タスクD100または方法M560の実装を実行するデバイス)を構成することができる。
図43Aに、タスクE410、E420およびE430を含む、一般的構成によるピッチパルスの形状を符号化する方法M650のフローチャートを示す。タスクE410は、音声信号フレーム(たとえば、LPC残差のフレーム)のピッチ周期を推定する。タスクE410は、本明細書で説明するピッチ周期推定タスクE130、L200、および/またはE370のインスタンスとして実装できる。推定ピッチ周期に基づいて、タスクE420は、パルス形状ベクトルの複数のテーブルのうちの1つを選択する。タスクE420は、本明細書で説明するタスクT650のインスタンスとして実装できる。音声信号フレームの少なくとも1つのピッチパルスからの情報に基づいて、タスクE430は、パルス形状ベクトルの選択されたテーブル中のパルス形状ベクトルを選択する。タスクE430は、本明細書で説明するタスクT660のインスタンスとして実装できる。
推定ピッチ周期に基づく値を複数の異なる値の各々と比較するように、テーブル選択タスクE420を構成することができる。本明細書で説明するラグ範囲ビンのセットのうちのどれが推定ピッチ周期を含むかを判断するために、たとえば、推定ピッチ周期を、ビンのセットのうちの2つ以上の各々のより高い範囲(または、より低い範囲)と比較するように、タスクE420を構成することができる。
パルス形状ベクトルの選択されたテーブル中で、一致すべきピッチパルスにエネルギーが最も近接しているパルス形状ベクトルを選択するように、ベクトル選択タスクE430を構成することができる。一例では、タスクE430は、一致すべきピッチパルスと選択されたテーブルの各パルス形状ベクトルとの間の差を計算し、最小エネルギーをもつ差に対応するパルス形状ベクトルを選択するように構成される。別の例では、タスクE430は、エネルギーが一致すべきピッチパルスのエネルギーに最も近接しているパルス形状ベクトルを選択するように構成される。そのような場合、(ピッチパルスまたは他のベクトルなどの)サンプルのシーケンスのエネルギーは、2乗サンプルの和として計算できる。
図43Bに、タスクE440を含む方法M650の実装M660のフローチャートを示す。タスクE440は、(A)推定ピッチ周期に基づく第1の値と、(B)選択されたテーブル中で選択されたパルス形状ベクトルを識別する第2の値(たとえば、テーブルインデックス)とを含むパケットを発生する。第1の値は、最小ピッチ周期値(たとえば、20)に対するオフセットとして、推定ピッチ周期を示すことができる。たとえば、推定ピッチ周期から最小ピッチ周期値を減算することによって第1の値を計算するように、方法M660(たとえば、タスクE410)を構成することができる。
第1および第2の値をビットロケーションのそれぞれの独立セット中に含むようにパケットを発生するように、タスクE440を構成することができる。たとえば、本明細書で説明する、ビット位置の第1のセットとビット位置の第2のセットとを有するテンプレートに従ってパケットを発生するように、タスクE440を構成することができ、第1および第2のセットは独立している。そのような場合、タスクE440は、本明細書で説明するパケット発生タスクE320のインスタンスとして実装できる。タスクE440のそのような実装は、ビットロケーションの第1のセット中のピッチパルス位置と、ビットロケーションの第2のセット中の第1の値と、第1および第2のセットとは独立しているビットロケーションの第3のセット中の第2の値とを含むようにパケットを発生するように構成できる。
図43Cに、タスクE450を含む方法M650の実装M670のフローチャートを示す。タスクE450は、音声信号フレームの複数のピッチパルスの中からピッチパルスを抽出する。タスクE450は、本明細書で説明するタスクT640のインスタンスとして実装できる。エネルギー測度に基づいてピッチパルスを選択するようにタスクE450を構成することができる。たとえば、ピークが最高のエネルギーを有するピッチパルス、または最高のエネルギーを有するピッチパルスを選択するように、タスクE450を構成することができる。方法M670では、抽出されたピッチパルスにとって(または、抽出されたピッチパルスと別の抽出されたピッチパルスとの平均など、抽出されたピッチパルスに基づくパルス形状にとって)最良の一致であるパルス形状ベクトルを選択するように、ベクトル選択タスクE430を構成することができる。
図46Aに、タスクE460、E470、およびE480を含む方法M650の実装M680のフローチャートを示す。タスクE460は、第2の音声信号フレーム(たとえば、LPC残差のフレーム)のピッチパルスの位置を計算する。第1および第2の音声信号フレームは、同じボイス通信セッションからのものか、または異なるボイス通信セッションからのものとすることができる。たとえば、第1および第2の音声信号フレームは、1人の人によって話された音声信号からのものか、または異なる人によってそれぞれ話された2つの異なる音声信号からのものとすることができる。音声信号フレームは、ピッチパルス位置が計算される前および/または後に、他の処理演算(たとえば、知覚的重み付け)を受けることができる。
計算されたピッチパルス位置に基づいて、タスクE470は、パルス形状ベクトルの複数のテーブルのうちの1つを選択する。タスクE470は、本明細書で説明するタスクT620のインスタンスとして実装できる。タスクE470は、第2の音声信号フレームが1つのピッチパルスのみを含んでいるという(たとえば、タスクE460による、または場合によっては方法M680による)判断に応答して実行できる。第2の音声信号フレームからの情報に基づいて、タスクE480は、パルス形状ベクトルの選択されたテーブル中のパルス形状ベクトルを選択する。タスクE480は、本明細書で説明するタスクT630のインスタンスとして実装できる。
図44Aに、ピッチパルスの形状を符号化するための装置MF650のブロック図を示す。装置MF650は、(たとえば、タスクE410、E130、L200、および/またはE370の様々な実装に関して上記で説明したように)音声信号フレームのピッチ周期を推定するための手段FE410と、(たとえば、タスクE420および/またはT650の様々な実装に関して上記で説明したように)パルス形状ベクトルのテーブルを選択するための手段FE420と、(たとえば、タスクE430および/またはT660の様々な実装に関して上記で説明したように)選択されたテーブル中のパルス形状ベクトルを選択するための手段FE430とを含む。
図44Bに、装置MF650の実装MF660のブロック図を示す。装置MF660は、(たとえば、タスクE440に関して上記で説明したように)(A)推定ピッチ周期に基づく第1の値と、(B)選択されたテーブル中で選択されたパルス形状ベクトルを識別する第2の値と含むパケットを発生するための手段FE440を含む。図44Cに、(たとえば、タスクE450に関して上記で説明したように)音声信号フレームの複数のピッチパルスの中からピッチパルスを抽出するための手段FE450を含む装置MF650の実装MF670のブロック図を示す。
図46Bに、装置MF650の実装MF680のブロック図を示す。装置MF680は、(たとえば、タスクE460に関して上記で説明したように)第2の音声信号フレームのピッチパルスの位置を計算するための手段FE460と、(たとえば、タスクE470に関して上記で説明したように)計算されたピッチパルス位置に基づいてパルス形状ベクトルの複数のテーブルのうちの1つを選択するための手段FE470と、(たとえば、タスクE480に関して上記で説明したように)第2の音声信号フレームからの情報に基づいてパルス形状ベクトルの選択されたテーブル中でパルス形状ベクトルを選択するための手段FE480とを含む。
図45Aに、ピッチパルスの形状を符号化するための装置A650のブロック図を示す。装置A650は、(たとえば、タスクE410、E130、L200、および/またはE370の様々な実装に関して上記で説明したように)音声信号フレームのピッチ周期を推定するように構成されたピッチ周期推定器540を含む。たとえば、ピッチ周期推定器540は、本明細書で説明するピッチ周期推定器130、190、またはA320のインスタンスとして実装できる。装置A650はまた、(たとえば、タスクE420および/またはT650の様々な実装に関して上記で説明したように)推定ピッチ周期に基づいて、パルス形状ベクトルのテーブルを選択するように構成されたベクトルテーブルセレクタ550を含む。装置A650はまた、(たとえば、タスクE430および/またはT660の様々な実装に関して上記で説明したように)音声信号フレームの少なくとも1つのピッチパルスからの情報に基づいて、選択されたテーブル中でパルス形状ベクトルを選択するように構成されたパルス形状ベクトルセレクタ560を含む。
図45Bに、(たとえば、タスクE440に関して上記で説明したように)(A)推定ピッチ周期に基づく第1の値と、(B)選択されたテーブル中で選択されたパルス形状ベクトルを識別する第2の値と含むパケットを発生するように構成されたパケットジェネレータ570を含む装置A650の実装A660のブロック図を示す。パケットジェネレータ570は、本明細書で説明するパケットジェネレータ170のインスタンスとして実装できる。図45Cに、(たとえば、タスクE450に関して上記で説明したように)音声信号フレームの複数のピッチパルスの中からピッチパルスを抽出するように構成されたピッチパルス抽出器580を含む装置A650の実装MF670のブロック図を示す。
図46Cに、装置A650の実装A680のブロック図を示す。装置A680は、(たとえば、タスクE460に関して上記で説明したように)第2の音声信号フレームのピッチパルスの位置を計算するように構成されたピッチパルス位置計算器590を含む。たとえば、ピッチパルス位置計算器590は、本明細書で説明するピッチパルス位置計算器120または160、あるいは端末ピークロケータA310のインスタンスとして実装できる。この場合、ベクトルテーブルセレクタ550はまた、(たとえば、タスクE470に関して上記で説明したように)計算されたピッチパルス位置に基づいてパルス形状ベクトルの複数のテーブルのうちの1つを選択するように構成され、パルス形状ベクトルセレクタ560はまた、(たとえば、タスクE480に関して上記で説明したように)第2の音声信号フレームからの情報に基づいてパルス形状ベクトルの選択されたテーブル中でパルス形状ベクトルを選択するように構成される。
音声エンコーダAE10は、装置A650を含むように実装できる。たとえば、音声エンコーダAE20の第1のフレームエンコーダ104は、ピッチ周期推定器130が推定器540としても働くように、装置A650のインスタンスを含むように実装できる。第1のフレームエンコーダ104のそのような実装はまた、装置A400のインスタンス(たとえば、パケットジェネレータ170がパケットジェネレータ570としても働くように、装置A402のインスタンス)を含むことができる。
図47Aに、一般的構成によるピッチパルスの形状を復号する方法M800のブロック図を示す。方法M800は、タスクD510、D520、D530、およびD540を含む。タスクD510は、(たとえば、方法M660の実装によって生成された)符号化音声信号のパケットから符号化ピッチ周期値を抽出する。タスクD510は、本明細書で説明するタスクD480のインスタンスとして実装できる。符号化ピッチ周期値に基づいて、タスクD520は、パルス形状ベクトルの複数のテーブルのうちの1つを選択する。タスクD530は、パケットからインデックスを抽出する。インデックスに基づいて、タスクD540は、選択されたテーブルからパルス形状ベクトルを得る。
図47Bに、タスクD550およびD560を含む方法M800の実装M810のブロック図を示す。タスクD550は、パケットからピッチパルス位置インジケータを抽出する。タスクD550は、本明細書で説明するタスクD410のインスタンスとして実装できる。ピッチパルス位置インジケータに基づいて、タスクD560は、励振信号内でパルス形状ベクトルに基づくピッチパルスを構成する。タスクD560は、本明細書で説明するタスクD430のインスタンスとして実装できる。
図48Aに、タスクD570、D575、D580、およびD585を含む方法M800の実装M820のブロック図を示す。タスクD570は、第2のパケットからピッチパルス位置インジケータを抽出する。第2のパケットは、第1のパケットと同じボイス通信セッションからのものか、または異なるボイス通信セッションからのものとすることができる。タスクD570は、本明細書で説明するタスクD410のインスタンスとして実装できる。第2のパケットからのピッチパルス位置インジケータに基づいて、タスクD575は、パルス形状ベクトルの第2の複数のテーブルのうちの1つを選択する。タスクD580は、第2のパケットからインデックスを抽出する。第2のパケットからのインデックスに基づいて、タスクD585は、第2の複数のテーブルのうちの選択されたテーブルからパルス形状ベクトルを得る。方法M820はまた、得られたパルス形状ベクトルに基づいて励振信号を発生するように構成できる。
図48Bに、ピッチパルスの形状を復号するための装置MF800のブロック図を示す。装置MF800は、(たとえば、タスクD510の様々な実装に関して本明細書で説明したように)パケットから符号化ピッチ周期値を抽出するための手段FD510と、(たとえば、タスクD520の様々な実装に関して本明細書で説明したように)パルス形状ベクトルの複数のテーブルのうちの1つを選択するための手段FD520と、(たとえば、タスクD530の様々な実装に関して本明細書で説明したように)パケットからインデックスを抽出するための手段FD530と、(たとえば、タスクD540の様々な実装に関して本明細書で説明したように)選択されたテーブルからパルス形状ベクトルを得るための手段FD540とを含む。
図49Aに、装置MF800の実装MF810のブロック図を示す。装置MF810は、(たとえば、タスクD550の様々な実装に関して本明細書で説明したように)パケットからピッチパルス位置インジケータを抽出するための手段FD550と、(たとえば、タスクD560の様々な実装に関して本明細書で説明したように)励振信号内でパルス形状ベクトルに基づくピッチパルスを構成するための手段FD560とを含む。
図49Bに、装置MF800の実装MF820のブロック図を示す。装置MF820は、(たとえば、タスクD570の様々な実装に関して本明細書で説明したように)第2のパケットからピッチパルス位置インジケータを抽出するための手段FD570と、(たとえば、タスクD575の様々な実装に関して本明細書で説明したように)第2のパケットからの位置インジケータに基づいてパルス形状ベクトルの第2の複数のテーブルのうちの1つを選択するための手段FD575とを含む。装置MF820はまた、(たとえば、タスクD580の様々な実装に関して本明細書で説明したように)第2のパケットからインデックスを抽出するための手段FD580と、(たとえば、タスクD585の様々な実装に関して本明細書で説明したように)第2のパケットからのインデックスに基づいて第2の複数のテーブルのうちの選択されたテーブルからパルス形状ベクトルを得るための手段FD585とを含む。
図50Aに、ピッチパルスの形状を復号するための装置A800のブロック図を示す。装置A800は、(たとえば、タスクD510の様々な実装に関して本明細書で説明したように)パケットから符号化ピッチ周期値を抽出し、(たとえば、タスクD530の様々な実装に関して本明細書で説明したように)パケットからインデックスを抽出するように構成されたパケットパーサ610を含む。パケットパーサ620は、本明細書で説明するパケットパーサ510のインスタンスとして実装できる。装置A800はまた、(たとえば、タスクD520の様々な実装に関して本明細書で説明したように)パルス形状ベクトルの複数のテーブルのうちの1つを選択するように構成されたベクトルテーブルセレクタ620と、(たとえば、タスクD540の様々な実装に関して本明細書で説明したように)選択されたテーブルからパルス形状ベクトルを得るように構成されたベクトルテーブルリーダ630とを含む。
パケットパーサ610はまた、(たとえば、タスクD570およびD580の様々な実装に関して本明細書で説明したように)第2のパケットからパルス位置インジケータとインデックスとを抽出するように構成できる。ベクトルテーブルセレクタ620はまた、(たとえば、タスクD575の様々な実装に関して本明細書で説明したように)第2のパケットからの位置インジケータに基づいてパルス形状ベクトルの複数のテーブルのうちの1つを選択するように構成できる。ベクトルテーブルリーダ630はまた、(たとえば、タスクD585の様々な実装に関して本明細書で説明したように)第2のパケットからのインデックスに基づいて第2の複数のテーブルのうちの選択されたテーブルからパルス形状ベクトルを得るように構成できる。図50Bに、(たとえば、タスクD560の様々な実装に関して本明細書で説明したように)励振信号内にパルス形状ベクトルに基づくピッチパルスを構成するように構成された励振信号発生器640を含む装置A800の実装A810のブロック図を示す。励振信号発生器640は、本明細書で説明する励振信号発生器310および/または530のインスタンスとして実装できる。
音声エンコーダAE10は、装置A800を含むように実装できる。たとえば、音声エンコーダAE20の第1のフレームエンコーダ104は、装置A800のインスタンスを含むように実装できる。第1のフレームエンコーダ104のそのような実装はまた、装置A560のインスタンスを含むことができ、その場合、パケットパーサ510はパケットパーサ620としても働くことができ、および/または、励振信号発生器530は励振信号発生器640としても働くことができる。
一構成による音声エンコーダは、(たとえば、音声エンコーダAE20の実装によれば)上述の1/4レートNELP(QNELP)コーディングスキーム、1/4レートPPP(QPPP)コーディングスキーム、および遷移フレームコーディングスキームの3つまたは4つのコーディングスキームを使用して、異なるクラスのフレームを符号化する。QNELPコーディングスキームは、無声フレームおよび立下り過渡フレームを符号化するために使用される。QNELPコーディングスキーム、または1/8レートNELPコーディングスキームは、無音フレーム(たとえば、背景雑音)を符号化するために使用される。QPPPコーディングスキームは、有声フレームを符号化するために使用される。遷移フレームコーディングスキームは、立上り過渡(すなわち、オンセット)フレームおよび過渡フレームを符号化するために使用される。図26のテーブルに、これらの4つのコーディングスキームの各々に対するビット割振りの例を示す。
現代のボコーダは、一般に音声フレームの分類を実行する。たとえば、そのようなボコーダは、無音、無声、有声、過渡、立下り過渡、および立上り過渡の、上述した6つの異なるクラスのうちの1つとしてフレームを分類するスキームに従って動作することができる。そのようなスキームの例が米国特許出願公開第2002/0111798号(Huang)に記載されている。また、そのような分類スキームの一例が、3GPP2(第3世代パートナーシッププロジェクト2(Third Generation Partnership Project 2))文書「Enhanced Variable Rate Codec,Speech Service Options 3,68,and 70 for Wideband Spectrum Digital systems」(3GPP2 C.S0014−C、2007年1月、www−dot−3gpp2−dot−orgでオンライン入手可能)のセクション4.8(pp.4−57〜4−71)に記載されている。このスキームは、図51のテーブル中に記載された特徴を使用してフレームを分類しており、このセクションは、本明細書で説明する「EVRC分類スキーム」の一例として参照により組み込まれる。
上式で、sL(n)およびsH(n)は、それぞれ入力音声信号の(12次極零型低域フィルタを使用して)低域フィルタ処理されたバージョンおよび入力音声信号の(12次極零型高域フィルタを使用して)高域フィルタ処理されたバージョンである。EVRC分類スキームにおいて使用できる他の特徴は、前のフレームモード決定(「prev_mode」)と、前のフレーム中の固定有声音声の存在(「prev_voiced」)と、現在のフレームのボイスアクティビティ検出結果(「curr_va」)とを含む。
分類スキームにおいて使用される重要な特徴は、ピッチベースの正規化自己相関関数(NACF)である。図52に、ピッチベースのNACFを計算するためのプロシージャのフローチャートを示す。最初に、現在のフレームと(ルックアヘッドフレームとも呼ばれる)次のフレームとのLPC残差を、約100Hzにおいて3dBカットオフ周波数を有する3次高域フィルタを通してフィルタ処理する。非量子化LPC係数値を使用して、この残差を計算することが望ましい。次いで、フィルタ処理された残差を、長さ13の有限インパルス応答(FIR)フィルタを用いて低域フィルタ処理し、ファクタ2でデシメートする。デシメートした信号をrd(n)によって示す。
のように、最大化をすべての整数iにわたって行う。上式で、lag(k)はピッチ推定ルーチン(たとえば、相関ベースの技法)によって推定されるサブフレームkに対するラグ値である。また、現在のフレームの第1および第2のサブフレームに対するこれらの値を、それぞれnacf_at_pitch[2](「nacf_ap[2]」とも書かれる)およびnacf_ap[3]として参照する。前のフレームの第1および第2のサブフレームに対して上式に従って計算したNACF値を、それぞれnacf_ap[0]およびnacf_ap[1]として参照する。
のように、最大化をすべての整数iにわたって行う。また、この値をnacf_ap[4]として参照する。
図53は、ハイレベルでのEVRC分類スキームを示すフローチャートである。モード決定は、前のモード決定とNACFなどの特徴とに基づく状態間の遷移として考えられ、状態は、異なるフレーム分類である。図54は、EVRC分類スキームでの状態間の可能な遷移を示す状態図であり、ラベルS、UN、UP、TR、V、およびDOWNは、それぞれ無音、無声、立上り過渡、過渡、有声、および立下り過渡のフレーム分類を示す。
(現在のフレームの第2のサブフレームのNACFで、「nacf_ap[2]」とも書かれる)nacf_at_pitch[2]と、しきい値VOICEDTHおよびUNVOICEDTHとの間の関係に応じて、3つの異なるプロシージャのうちの1つを選択することによってEVRC分類スキームを実装することができる。図55および図56にわたるコードリストに、nacf_ap[2]>VOICEDTHのときに使用することができるプロシージャを記載する。図57〜図59にわたるコードリストに、nacf_ap[2]<UNVOICEDTHのときに使用することができるプロシージャを記載する。図60〜図63にわたるコードリストに、nacf_ap[2]≧UNVOICEDTHおよびnacf_ap[2]≦VOICEDTHのときに使用することができるプロシージャを記載する。
特徴curr_ns_snrの値に従ってしきい値VOICEDTH、LOWVOICEDTHおよびUNVOICEDTHの値を変化させることが望ましい。たとえば、curr_ns_snrの値がSNRしきい値25dB以上である場合、明瞭な音声に対するしきい値VOICEDTH=0.75、LOWVOICEDTH=0.5、UNVOICEDTH=0.35を適用し、curr_ns_snrの値がSNRしきい値25dB未満である場合、雑音が多い音声に対するしきい値VOICEDTH=0.65、LOWVOICEDTH=0.5、UNVOICEDTH=0.35を適用することができる。
フレームの正確な分類は、低レートボコーダの良好な品質を保証するのに特に重要である。たとえば、オンセットフレームが少なくとも1つの別個のピークまたはパルスを有する場合のみ、本明細書で説明する遷移フレームコーディングモードを使用することが望ましい。そのような特徴は確実なパルス検出にとって重要であり、それがなければ、遷移フレームコーディングモードは歪められた結果を生成することがある。PPPまたは遷移フレームコーディングスキームではなくNELPコーディングスキームを使用して、少なくとも1つの別個のピークまたはパルスがないフレームを符号化することが望ましい。たとえば、そのような過渡フレームまたは立上り過渡フレームを無声フレームとして再分類することが望ましい。
そのような再分類は、1つまたは複数の正規化自己相関関数(NACF)値および/または他の特徴に基づくことができる。再分類はまた、フレームのピーク対RMSエネルギー値(「最大サンプル/RMSエネルギー」)および/またはフレーム中のピッチパルスの実際の数(「ピーク数」)など、EVRC分類スキームに使用されない特徴に基づくことができる。図64のテーブルに示す8個の条件のうちのいずれか1つまたは複数、および/または図65のテーブルに示す10個の条件のうちのいずれか1つまたは複数は、立上り過渡フレームを無声フレームとして再分類するために使用される。図66のテーブルに示す11個の条件のうちのいずれか1つまたは複数、および/または図67のテーブルに示す11個の条件のうちのいずれか1つまたは複数は、過渡フレームを無声フレームとして再分類するために使用される。図68のテーブルに示す4つの条件のうちのいずれか1つまたは複数は、有声フレームを無声フレームとして再分類するために使用される。また、そのような再分類を低帯域雑音が比較的ないフレームに限定することが望ましい。たとえば、図65、図67、または図68の条件のいずれかに従って、あるいは、curr_ns_snrの値が25dB以上である場合のみ、図66の7つの右端の条件のいずれかに従って、フレームを再分類することが望ましい。
逆に、少なくとも1つの別個のピークまたはパルスを含む無声フレームを立上り過渡フレームまたは過渡フレームとして再分類することが望ましい。そのような再分類は、1つまたは複数の正規化自己相関関数(NACF)値および/または他の特徴に基づくことができる。また、再分類は、フレームのピーク対RMSエネルギー値および/またはピーク数など、EVRC分類スキームにおいて使用されない特徴に基づくことができる。図69のテーブルに示す7つの条件のうちのいずれか1つまたは複数は、無声フレームを立上り過渡フレームとして再分類するために使用される。図70のテーブルに示す9つの条件のうちのいずれか1つまたは複数は、無声フレームを過渡フレームとして再分類するために使用される。図71Aのテーブルに示す条件は、立下り過渡フレームを有声フレームとして再分類するために使用される。図71Bのテーブルに示す条件は、立下り過渡フレームを過渡フレームとして再分類するために使用される。
フレーム再分類の代替として、EVRC分類スキームなどのフレーム分類の方法は、EVRC分類スキームと、上述したおよび/または図64〜図71Bに示す再分類条件のうちの1つまたは複数との組合せに等しい分類結果を生成するように変更できる。
図72に、音声エンコーダAE20の実装AE30のブロック図を示す。図55〜図63のコードリストで説明するEVRC分類スキームなどの分類スキームを適用するように、コーディングスキームセレクタC200を構成することができる。音声エンコーダAE30は、上述したおよび/または図64〜図71Bに示す条件のうちの1つまたは複数に従って、フレームを再分類するように構成されたフレーム再分類器RC10を含む。フレーム分類、および/またはコーディングスキームセレクタC200からの他のフレーム特徴の値を受信するように、フレーム再分類器RC10を構成することができる。また、追加のフレーム特徴(たとえば、ピーク対RMSエネルギー値、ピーク数)の値を計算するように、フレーム再分類器RC10を構成することができる。代替的に、EVRC分類スキームと、上述したおよび/または図64〜図71Bに示す再分類条件のうちの1つまたは複数との組合せに等しい分類結果を生成するコーディングスキームセレクタC200の実装を含むように、音声エンコーダAE30を実装することができる。
図73Aに、音声エンコーダAE10の実装AE40のブロック図を示す。音声エンコーダAE40は、周期フレームを符号化するように構成された周期フレームエンコーダE70と、非周期フレームを符号化するように構成された非周期フレームエンコーダE80とを含む。たとえば、音声エンコーダAE40は、有声、過渡、立上り過渡、または立下り過渡として分類されたフレームの場合は周期フレームエンコーダE70を選択し、無声または無音として分類されたフレームの場合は非周期フレームエンコーダE80を選択するように、セレクタ60a、60bに指示するように構成されたコーディングスキームセレクタC200の実装を含むことができる。
図73Bに、周期フレームエンコーダE70の実装E72のブロック図を示す。エンコーダE72は、本明細書で説明する第1のフレームエンコーダ100の実装と、第2のフレームエンコーダ200の実装とを含む。エンコーダE72はまた、コーディングスキームセレクタC200からの分類結果に従って現在のフレームに対して、エンコーダ100および200のうちの1つを選択するように構成されたセレクタ80a、80bを含む。第2のフレームエンコーダ200(たとえば、QPPPエンコーダ)を周期フレームに対するデフォルトのエンコーダとして選択するように、周期フレームエンコーダを構成することが望ましい。無声フレームエンコーダ(たとえば、QNELPエンコーダ)と無音フレームエンコーダ(たとえば、1/8レートNELPエンコーダ)とのうちの1つを選択するように、非周期フレームエンコーダE80を同様に実装することができる。代替的に、非周期フレームエンコーダE80を無声フレームエンコーダUE10のインスタンスとして実装することができる。
図74に、周期フレームエンコーダE72の実装E74のブロック図を示す。エンコーダE74は、上述したおよび/または図64〜図71Bに示す条件のうちの1つまたは複数に従ってフレームを再分類し、再分類の結果に従って現在のフレームに対してエンコーダ100および200のうちの1つを選択するようにセレクタ80a、80bを制御するように構成されたフレーム再分類器RC10のインスタンスを含む。さらなる一例では、フレーム再分類器RC10を含むか、あるいは、EVRC分類スキームと、上述したおよび/または図64〜図71Bに示す再分類条件のうちの1つまたは複数との組合せに等しい分類スキームを実行し、そのような分類または再分類によって示される第1のフレームエンコーダ100を選択するように、コーディングスキームセレクタC200を構成することができる。
上述の遷移フレームコーディングモードを使用して、過渡フレームおよび/または立上り過渡フレームを符号化することが望ましい。図75A〜図75Dに、本明細書で説明する遷移フレームコーディングモードの使用が望ましい、いくつかの典型的なフレームシーケンスを示す。これらの例では、遷移フレームコーディングモードの使用を、典型的に輪郭を太く描いたフレームとして示す。そのようなコーディングモードは典型的に、比較的一定のピッチ周期およびシャープなパルスを有する完全な有声フレーム、または、部分的な有声フレームに対して適切に機能する。ただし、フレームにシャープなパルスがないとき、またはフレームが発声の実際のオンセットに先行するとき、復号された音声の品質が低くなることがある。場合によっては、遷移フレームコーディングモードの使用をスキップまたはキャンセルするか、あるいは、さもなければこのコーディングモードの使用を後のフレーム(たとえば、後続のフレーム)まで遅延させることが望ましい。
パルス検出失敗が、ピッチ誤差、パルスの消失、および/または外来パルスの挿入を引き起こすことがある。そのような誤差が、復号された音声中にポップ、クリックおよび/または他の不連続などのひずみをもたらすことがある。したがって、フレームが遷移フレームコーディングに好適であることを検証することが望ましく、フレームが好適でないとき、遷移フレームコーディングモードの使用をキャンセルすることがそのような問題を低減するのに役立つ。
過渡フレームまたは立上り過渡フレームが遷移フレームコーディングモードに好適でないことが判断されることがある。たとえば、フレームに、別個のシャープなパルスがないことがある。そのような場合、遷移フレームコーディングモードを使用して、好適でないフレームの後に続く第1の好適な有声フレームを符号化することが望ましい。たとえば、オンセットフレームに別個のシャープなパルスがない場合、後に続く第1の好適な有声フレームに対して遷移フレームコーディングを実行することが望ましい。そのような技法は、後続の有声フレームに対する良好な基準を保証するのに役立つ。
場合によっては、遷移フレームコーディングモードの使用は、パルス利得不一致問題および/またはパルス形状不一致問題をもたらす。限られた数のビットしかこれらのパラメータを符号化するために利用可能ではなく、遷移フレームコーディングが別様に示されているが、現在のフレームが良好な基準を与えないことがある。遷移フレームコーディングモードの不要な使用をキャンセルすることが、そのような問題を低減するのに役立つ。したがって、遷移フレームコーディングモードが現在のフレームにとって別のコーディングモードよりも好適であることを検証することが望ましい。
遷移フレームコーディングの使用をスキップまたはキャンセルした場合、遷移フレームコーディングモードを使用して後に続く第1の好適なフレームを符号化する行為が、後続の有声フレームに良好な基準を与えるのに役立つので、そのような行為を行うことが望ましい。たとえば、まさにその次のフレームが少なくとも部分的に有声である場合、そのフレームに対して遷移フレームコーディングを強制することが望ましい。
遷移フレームコーディングのニーズ、および/または遷移フレームコーディングに対するフレームの適合性は、現在のフレーム分類、前のフレーム分類、(たとえば、相関ベースの技法などのピッチ推定ルーチンによって判断された)初期ラグ値、(たとえば、方法M200などのパルス検出動作によって判断された)変更されたラグ値、前のフレームのラグ値、および/またはNACF値などの基準に基づいて判断できる。
良好な基準なしにQPPPを使用した結果は予測不可能であるので、有声区間の始端の近くで遷移フレームコーディングモードを使用することが望ましい。ただし、場合によっては、QPPPは、遷移フレームコーディングモードよりも良好な結果を与えることが予想される。たとえば、場合によっては、遷移フレームコーディングモードの使用は、不良基準を生じるか、またはQPPPを使用することよりも好ましくない結果を引き起こすことさえ予想される。
遷移フレームコーディングが現在のフレームに不要である場合、遷移フレームコーディングをスキップすることが望ましい。そのような場合、(たとえば、QPPPの連続性を保持するために)QPPPなどの有声コーディングモードにデフォルト設定されることが望ましい。遷移フレームコーディングモードの不要な使用は、(たとえば、これらの特徴に対する限定されたビットバジェットにより)後のフレームにおけるパルス利得および/またはパルス形状の不一致の問題をもたらすことがある。QPPPなど、限定された時間同期性を有する有声コーディングモードは、特にそのような誤差に反応することができる。
遷移フレームコーディングスキームを使用してフレームを符号化した後、符号化結果を検査し、符号化結果が不良である場合、フレームに対する遷移フレームコーディングの使用を除去することが望ましい。大部分が無声であり、終端の近くでのみ有声になるフレームの場合、遷移コーディングモードを、パルスなしに無声部分を(たとえば、0または低い値として)符号化するように構成し、遷移コーディングモードを、無声部分の少なくとも一部をパルスで充填するように構成することができる。無声部分がパルスなしに符号化された場合、フレームは、復号された信号中に可聴クリックまたは不連続を生成することがある。そのような場合、NELPコーディングスキームをフレームに対して代わりに使用することが望ましい。ただし、ひずみを引き起こすことがある有声区間に対するNELPの使用を避けることが望ましい。遷移コーディングモードがフレームに対してキャンセルされた場合、たいていの場合、無声コーディングモード(たとえば、QNELP)ではなく有声コーディングモード(たとえば、QPPP)を使用してフレームを符号化することが望ましい。上述のように、遷移コーディングモードを使用するという選択を、遷移コーディングモードと有声コーディングモードとの間の選択として実装することができる。良好な基準なしにQPPPを使用した結果は予測不可能である(たとえば、フレームの位相は、先行する無声フレームから導出されることになる)が、復号された信号中にクリックまたは不連続を生成する可能性はない。そのような場合、遷移コーディングモードの使用は、次のフレームまで延期されることがある。
フレーム間のピッチ不連続が検出されたとき、フレームに対して遷移コーディングモードを使用するという決定をオーバーライドすることが望ましい。一例では、タスクT710は、前のフレームとのピッチ連続性について検査する(たとえば、ピッチ2倍誤差について検査する)。フレームが有声または過渡として分類され、パルス検出ルーチンによって現在のフレームに対して示されたラグ値が、パルス検出ルーチンによって前のフレームに対して示されたラグ値よりもはるかに小さい(たとえば、その約1/2、1/3、または1/4である)場合、タスクは、遷移コーディングモードを使用するという決定をキャンセルする。
別の例では、タスクT720は、前のフレームに比較してピッチオーバーフローについて検査する。音声が最大許容ラグよりも高いラグ値を生じる極めて低いピッチ周波数を有するとき、ピッチオーバーフローが発生する。前のフレームに対するラグ値が大きく(たとえば、100サンプルよりも多く)、ピッチ推定ルーチンとパルス検出ルーチンとによって現在のフレームに対して示されたラグ値が、両方とも前のピッチよりもはるかに小さい(たとえば、その50%よりも小さい)場合、遷移コーディングモードを使用するという決定をキャンセルするように、そのようなタスクを構成することができる。そのような場合、また、フレームの最も大きいピッチパルスのみを単一パルスとして保持することが望ましい。代替的に、前のラグ推定値と、有声および/または相対コーディングモード(たとえば、タスクE200、QPPP)とを使用してフレームを符号化することができる。
2つの異なるルーチンからの結果の間の不整合が検出されたとき、フレームに対して遷移コーディングモードを使用するという決定をオーバーライドすることが望ましい。一例では、タスクT730は、強いNACFの存在下でのピッチ推定ルーチンとパルス検出ルーチンとからのラグ値の整合性について検査する。第2のパルスのピッチにおける極めて高いNACFが良好なピッチ推定値を示すので、2つのラグ推定値間の不整合が予期しないものとなる。パルス検出ルーチンからのラグ推定値がピッチ推定ルーチンからのラグ推定値とは極めて異なる(たとえば、その1.6倍よりも大きい)場合、遷移コーディングモードを使用するという決定をキャンセルするように、そのようなタスクを構成することができる。
別の例では、タスクT740は、ラグ値と端末パルスの位置との間の一致について検査する。(ピーク間の距離の平均とすることができる)ラグ推定値を使用して符号化された、ピーク位置のうちの1つまたは複数が、対応する実際のピーク位置とはあまりに異なるとき、遷移フレームコーディングモードを使用するという決定をキャンセルすることが望ましい。端末パルスの位置とパルス検出ルーチンによって計算されたラグ値とを使用して、再構成されたピッチパルス位置を計算し、再構成された位置の各々をパルス検出アルゴリズムによって検出された実際のピッチピーク位置と比較し、差のいずれかが大きすぎる(たとえば、8サンプルよりも大きい)場合、遷移フレームコーディングを使用するという決定をキャンセルするように、タスクT740を構成することができる。
さらなる一例では、タスクT750は、ラグ値とパルス位置との間の一致について検査する。最終ピッチピークが最終フレーム境界から2つ以上のラグ周期だけ離れている場合、遷移フレームコーディングを使用するという決定をキャンセルするように、そのようなタスクを構成することができる。たとえば、最終ピッチパルスの位置とフレームの終端との間の距離が最終ラグ推定値(たとえば、ラグ推定タスクL200および/または方法M300によって計算されたラグ値)よりも大きい場合、遷移フレームコーディングを使用するという決定をキャンセルするように、そのようなタスクを構成することができる。そのような条件は、パルス検出失敗、またはまだ安定していないラグを示すことができる。
現在のフレームが2つのパルスを有し、過渡フレームとして分類された場合、および2つのパルスのピークの2乗絶対値の比が大きい場合、ラグ値全体にわたって2つのパルスを相関させ、相関結果が対応するしきい値よりも大きくなければ(代替的に、しきい値以上でなければ)より小さいピークを除去することが望ましい。また、より小さいピークが除去された場合、フレームに対して遷移フレームコーディングモードを使用するという決定をキャンセルすることが望ましい。
図76に、フレームに対して遷移フレームコーディングを使用するという決定をキャンセルするために使用できる2つのルーチンのコードリストを示す。このリストで、mod_lagは、パルス検出ルーチンからのラグ値を示し、orig_lagは、ピッチ推定ルーチンからのラグ値を示し、pdelay_transient_codingは、前のフレームに対するパルス検出ルーチンからのラグ値を示し、PREV_TRANSIENT_FRAME_Eは、遷移コーディングモードが前のフレームに対して使用されたかどうかを示し、loc[0]は、フレームの最終ピッチピークの位置を示す。
図77に、遷移フレームコーディングを使用するという決定をキャンセルするために使用できる4つの異なる条件を示す。このテーブルで、curr_modeは、現在のフレーム分類を示し、prev_modeは、前のフレームに対するフレーム分類を示し、number_of_pulsesは、現在のフレーム中のパルスの数を示し、prev_no_of_pulsesは、前のフレーム中のパルスの数を示し、pitch_doublingは、ピッチ2倍誤差が現在のフレーム中で検出されたかどうかを示し、delta_lag_intraは、ピッチ推定ルーチンとパルス検出ルーチンとからのラグ値間の差の(たとえば、整数の)絶対値(または、ピッチ2倍が検出された場合、ピッチ推定ルーチンからのラグ値の半分と、パルス検出ルーチンからのラグ値との間の差の絶対値)を示し、delta_lag_interは、前のフレームの最終ラグ値と、現在のフレームに対するピッチ推定ルーチンからのラグ値(またはピッチ2倍が検出された場合、そのラグ値の半分)との間の差の(たとえば、浮動小数点の)絶対値を示し、NEED_TRANSは、現在のフレームに対する遷移フレームコーディングモードの使用が前のフレームのコーディング中に示されたかどうかを示し、TRANS_USEDは、遷移コーディングモードが前のフレームを符号化するために使用されたかどうかを示し、fully_voicedは、端末ピッチパルスの位置と反対側のフレームの終端との間の距離を最終ラグ値によって除算した整数部分がnumber_of_pulses−1に等しいかどうかを示す。しきい値の例には、T1A=[0.1*(パルス検出ルーチンからのラグ値)+0.5]、T1B=[0.05*(パルス検出ルーチンからのラグ値)+0.5]、T2A=[0.2*(前のフレームに対する最終ラグ値)]、およびT2B=[0.15*(前のフレームに対する最終ラグ値)]がある。
タスクT710〜T750、図76のコードリスト、および図77に示す条件など、遷移コーディングモードを使用するという決定をキャンセルするための上述の設定のうちの1つまたは複数を含むように、フレーム再分類器RC10を実装することができる。たとえば、図78に示す方法M700を実行し、テストタスクT710〜T750のいずれかが不合格になった場合、遷移コーディングモードを使用するという決定をキャンセルするように、フレーム再分類器RC10を実装することができる。
本明細書で説明した方法の実装の典型的な適用例(たとえば、方法M100、M200、M300、M400、M500、M550、M560、M600、M650、M700、またはM800、あるいは別のルーチンまたはコードリスト)では、論理要素のアレイ(たとえば、論理ゲート)は、この方法の様々なタスクのうちの1つ、複数、さらにはすべてを実行するように構成される。タスクの1つまたは複数(場合によってはすべて)は、論理要素のアレイ(たとえば、プロセッサ、マイクロプロセッサ、マイクロコントローラ、または他の有限状態機械)を含む機械(たとえば、コンピュータ)によって読取り可能および/または実行可能であるコンピュータプログラム製品(たとえば、ディスク、フラッシュまたは他の不揮発性メモリカード、半導体メモリチップなどの1つまたは複数のデータ記憶媒体など)に埋め込まれたコード(たとえば、命令の1つまたは複数のセット)として実装することもできる。そのような方法の実装のタスクを、2つ以上のそのようなアレイまたは機械によって実行することもできる。これらのまたは他の実装では、タスクは、モバイルユーザ端末など、ワイヤレス通信用のデバイス、またはそのような通信機能をもつ他のデバイス内で実行することができる。そのようなデバイスは、(たとえば、VoIP(ボイスオーバーインターネットプロトコル)などの1つまたは複数のプロトコルを使用して)回線交換および/またはパケット交換ネットワークと通信するように構成できる。たとえば、そのようなデバイスは、符号化フレーム(たとえば、パケット)を含む信号を送信し、および/またはそのような信号を受信するように構成されたRF回路を含むことができる。また、そのようなデバイスは、RF送信の前に符号化フレームもしくはパケットに対して、インターリーブ、パンクチャリング、畳み込み符号化、誤り訂正符号化、および/またはネットワークプロトコルの1つまたは複数のレイヤを適用することなどの1つまたは複数の他の動作を実行する、ならびに/あるいはRF受信後にそのような動作の補完を実行するように構成できる。
本明細書で説明した装置(たとえば、装置A100、A200、A300、A400、A500、A560、A600、A650、A700、A800、音声エンコーダAE20、音声デコーダAD20、またはその要素)の実装の様々な要素は、たとえば、チップセット中の同じチップ上にまたは2つ以上のチップの間に常駐する電子および/または光デバイスとして実装できるが、そのような限定なしに他の構成も考えられる。そのような装置の1つまたは複数の要素は、マイクロプロセッサ、組み込みプロセッサ、IPコア、デジタル信号プロセッサ、FPGA(フィールドプログラマブルゲートアレイ)、ASSP(特定用途向け標準製品)、およびASIC(特定用途向け集積回路)などの、論理要素(たとえば、トランジスタ、ゲート)の1つまたは複数の固定またはプログラマブルなアレイ上で実行するように構成された命令の1つまたは複数のセットとして全体的にまたは部分的に実装できる。
そのような装置の実装の1つまたは複数の要素は、装置が組み込まれているデバイスまたはシステムの別の動作に関係するタスクなど、装置の動作に直接関係しないタスクまたは命令の他のセットを実行するために使用することが可能である。また、本明細書で説明した装置の実装の1つまたは複数の要素は、共通の構造(たとえば、異なる要素に対応するコードの部分を異なる時間に実行するために使用されるプロセッサ、異なる要素に対応するタスクを異なる時間に実施するために実行される命令のセット、あるいは、異なる要素向けの動作を異なる時間に実施する電子デバイスおよび/または光デバイスの構成)を有することが可能である。
説明した構成の前述の提示は、本明細書で開示する方法および他の構造を当業者が製造または使用できるように与えたものである。本明細書で図示および説明したフローチャートおよび他の構造は例にすぎず、これらの構造の他の変形態も開示の範囲内である。これらの構成に対する様々な変更が可能であり、本明細書で提示した一般的原理は他の構成にも同様に適用できる。
本明細書で説明した構成の各々は、部分的にまたは全体的に、ハードワイヤード回路として、特定用途向け集積回路中に作成された回路構成として、あるいは不揮発性記憶装置にロードされるファームウェアプログラム、またはマイクロプロセッサもしくは他のデジタル信号処理ユニットなどの論理要素のアレイによって実行可能な命令である機械可読コードとしてデータ記憶媒体から、もしくはデータ記憶媒体にロードされるソフトウェアプログラムとして実装できる。データ記憶媒体は、(限定はしないが、ダイナミックもしくはスタティックRAM(ランダムアクセスメモリ(random−access memory))、ROM(読取り専用メモリ(read−only memory))、および/またはフラッシュRAMを含む)半導体メモリ、または強誘電体メモリ、磁気抵抗メモリ、オボニックメモリ、ポリマーメモリ、もしくは位相変化メモリなどの記憶要素のアレイ、磁気ディスクまたは光ディスクなどのディスク媒体とすることができる。「ソフトウェア」という用語は、ソースコード、アセンブリ言語コード、機械コード、バイナリコード、ファームウェア、マクロコード、マイクロコード、論理要素のアレイによって実行可能な命令の1つまたは複数のセットまたはシーケンス、およびそのような例の任意の組合せを含むことを理解されたい。
また、本明細書で開示する方法の各々は、論理要素(たとえば、プロセッサ、マイクロプロセッサ、マイクロコントローラ、または他の有限状態機械)のアレイを含む機械によって読取り可能および/または実行可能な命令の1つまたは複数のセットとして(たとえば、上記に記載する1つまたは複数のデータ記憶媒体中で)有形に実施することができる。したがって、本開示は、上記に示した構成に限定されるものではなく、原開示の一部をなす、出願した添付の特許請求の範囲を含む、本明細書において任意の方法で開示した原理および新規の特徴に一致する最も広い範囲が与えられるべきである。
Claims (57)
- 音声信号フレームを処理する方法であって、
第1の音声信号フレーム内の第1の位置を計算することであって、前記第1の位置が、前記フレームの第1のサンプルと前記フレームの最後のサンプルとのうちの一方に関する前記フレームの端末ピッチパルスの位置である、計算することと、
前記第1の音声信号フレームを表し、前記第1の位置を含む第1のパケットを発生することと、
第2の音声信号フレーム内の第2の位置を計算することであって、前記第2の位置が、前記フレームの第1のサンプルと前記フレームの最後のサンプルとのうちの一方に関する前記フレームの端末ピッチパルスの位置である、計算することと、
前記第2の音声信号フレームを表し、前記第2の音声信号フレーム内の第3の位置を含む第2のパケットを発生することであって、前記第3の位置が、前記フレームの前記第1のサンプルと前記フレームの前記最後のサンプルとのうちの他方に関する前記フレームの前記端末ピッチパルスの位置である、発生することと
を備える方法。 - 前記第1の音声信号フレームの前記端末ピッチパルスが前記フレームの最終ピッチパルスであり、前記第1の位置が、前記フレームの前記最後のサンプルに関する前記パルスの位置であり、
前記第2の音声信号フレームの前記端末ピッチパルスが前記フレームの前記最終ピッチパルスであり、前記第2の位置が、前記フレームの前記最後のサンプルに関する前記パルスの位置であり、
前記第3の位置が、前記第2の音声信号フレームの前記第1のサンプルに関する前記フレームの前記最終ピッチパルスの位置である、請求項1に記載の方法。 - 前記第1のパケットが前記第2のパケットと同じ長さであり、
前記第1のパケットと前記第2のパケットの両方が、独立しているビットロケーションの第1のセットとビットロケーションの第2のセットとを有するテンプレートに準拠し、
前記第1のパケットでは、前記第1の位置がビットロケーションの前記第1のセットを占め、前記第2のパケットでは、前記第3の位置がビットロケーションの前記第2のセットを占める、請求項1に記載の方法。 - 前記第1の音声信号フレームのピッチ周期を推定することを備え、
前記第1のパケットでは、前記推定ピッチ周期を示すビットのセットがビットロケーションの前記第2のセットを占める、請求項3に記載の方法。 - 前記第1の位置をしきい値と比較することと、
前記第2の位置を前記しきい値と比較することと
を備え、
前記第1の位置をしきい値と前記比較することの結果は、前記第1の位置が前記しきい値未満のときに第1の状態を有し、前記第1の位置が前記しきい値よりも大きいときに第2の状態を有し、
前記第2の位置を前記しきい値と前記比較することの結果は、前記第2の位置が前記しきい値未満のときに第1の状態を有し、前記第2の位置が前記しきい値よりも大きいときに第2の状態を有し、
第1のパケットを前記発生することは、前記第1の位置を前記しきい値と前記比較することの前記結果が前記第1の状態を有することに応答して実行され、
第2のパケットを前記発生することは、前記第2の位置を前記しきい値と前記比較することの前記結果が前記第2の状態を有することに応答して実行される、請求項1に記載の方法。 - 前記第1の音声信号フレームおよび前記第2の音声信号フレームの各々の前記長さが、(2^r)ビットよりも大きく、2^(r+1)ビット未満であり、rが、6以上、9以下の整数であり、
前記第1の位置が前記第1のパケットのrビット以下を占め、
前記第3の位置が前記第2のパケットのrビット以下を占める、請求項1に記載の方法。 - rが7に等しい、請求項6に記載の方法。
- 前記第1の位置が、前記第1の音声信号フレームの前記端末ピッチパルスのピークの位置であり、
前記第3の位置が、前記第2の音声信号フレームの前記端末ピッチパルスのピークの位置である、請求項1に記載の方法。 - 音声信号フレームを処理するための装置であって、
第1の音声信号フレーム内の第1の位置を計算するための手段であって、前記第1の位置が、前記フレームの第1のサンプルと前記フレームの最後のサンプルとのうちの一方に関する前記フレームの端末ピッチパルスの位置である、計算するための手段と、
前記第1の音声信号フレームを表し、前記第1の位置を含む第1のパケットを発生するための手段と、
第2の音声信号フレーム内の第2の位置を計算するための手段であって、前記第2の位置が、前記フレームの第1のサンプルと前記フレームの最後のサンプルとのうちの一方に関する前記フレームの端末ピッチパルスの位置である、計算するための手段と、
前記第2の音声信号フレームを表し、前記第2の音声信号フレーム内の第3の位置を含む第2のパケットを発生するための手段であって、前記第3の位置が、前記フレームの前記第1のサンプルと前記フレームの前記最後のサンプルとのうちの他方に関する前記フレームの前記端末ピッチパルスの位置である、発生するための手段と
を備える装置。 - 前記第1の位置を計算するための前記手段が、前記フレームの前記最後のサンプルに関する前記フレームの最終ピッチパルスの位置として前記第1の位置を計算するように構成され、
前記第2の位置を計算するための前記手段が、前記フレームの前記最後のサンプルに関する前記フレームの前記最終ピッチパルスの位置として前記第2の位置を計算するように構成され、
前記第3の位置が、前記第2の音声信号フレームの前記第1のサンプルに関する前記フレームの前記最終ピッチパルスの位置である、請求項9に記載の装置。 - 前記第1のパケットが前記第2のパケットと同じ長さであり、
第1のパケットを発生するための前記手段は、前記第1の位置がビットロケーションの第1のセットを占めるように、独立しているビットロケーションの前記第1のセットとビットロケーションの第2のセットとを有するテンプレートに従って前記第1のパケットを発生するように構成され、
第2のパケットを発生するための前記手段は、前記第3の位置がビットロケーションの前記第2のセットを占めるように、前記テンプレートに従って前記第2のパケットを発生するように構成された、請求項9に記載の装置。 - 前記第1の音声信号フレームのピッチ周期を推定するための手段を備え、
第1のパケットを発生するための前記手段は、前記推定ピッチ周期を示すビットのセットがビットロケーションの前記第2のセットを占めるように、前記第1のパケットを発生するように構成された、請求項11に記載の装置。 - 前記第1の位置をしきい値と比較するための手段と、
前記第2の位置を前記しきい値と比較するための手段と
を備え、
前記第1の位置を比較するための前記手段の出力は、前記第1の位置が前記しきい値未満のときに第1の状態を有し、前記第1の位置が前記しきい値よりも大きいときに第2の状態を有し、
前記第2の位置を比較するための前記手段の出力は、前記第2の位置が前記しきい値未満のときに第1の状態を有し、前記第2の位置が前記しきい値よりも大きいときに第2の状態を有し、
第1のパケットを発生するための前記手段は、前記第1の位置を比較するための前記手段の前記出力が前記第1の状態を有することに応答して前記第1のパケットを発生するように構成され、
第2のパケットを発生するための前記手段は、前記第2の位置を比較するための前記手段の前記出力が前記第2の状態を有することに応答して前記第2のパケットを発生するように構成された、請求項9に記載の装置。 - 前記第1の音声信号フレームおよび前記第2の音声信号フレームの各々の前記長さが、(2^r)ビットよりも大きく、2^(r+1)ビット未満であり、rが、6以上、9以下の整数であり、
前記第1の位置が前記第1のパケットのrビット以下を占め、
前記第3の位置が前記第2のパケットのrビット以下を占める、請求項9に記載の装置。 - 音声信号フレームを処理するための装置であって、
第1の音声信号フレーム内の第1の位置を計算するように構成されたピッチパルス位置計算器であって、前記第1の位置が、前記フレームの第1のサンプルと前記フレームの最後のサンプルとのうちの一方に関する前記フレームの端末ピッチパルスの位置である、ピッチパルス位置計算器と、
前記第1の音声信号フレームを表し、前記第1の位置を含む第1のパケットを発生するように構成されたパケットジェネレータと
を備え、
前記ピッチパルス計算器が、第2の音声信号フレーム内の第2の位置を計算するように構成され、前記第2の位置が、前記フレームの第1のサンプルと前記フレームの最後のサンプルとのうちの一方に関する前記フレームの端末ピッチパルスの位置であり、
前記パケットジェネレータが、前記第2の音声信号フレームを表し、前記第2の音声信号フレーム内の第3の位置を含む第2のパケットを発生するように構成され、前記第3の位置が、前記フレームの前記第1のサンプルと前記フレームの前記最後のサンプルとのうちの他方に関する前記フレームの前記端末ピッチパルスの位置である、装置。 - 前記ピッチパルス位置計算器が、前記フレームの前記最後のサンプルに関する前記フレームの最終ピッチパルスの位置として前記第1の位置を計算するように構成され、
前記ピッチパルス位置計算器が、前記フレームの前記最後のサンプルに関する前記フレームの前記最終ピッチパルスの位置として前記第2の位置を計算するように構成され、
前記第3の位置が、前記第2の音声信号フレームの前記第1のサンプルに関する前記フレームの前記最終ピッチパルスの位置である、請求項15に記載の装置。 - 前記第1のパケットが前記第2のパケットと同じ長さであり、
前記パケットジェネレータは、前記第1の位置がビットロケーションの第1のセットを占めるように、独立しているビットロケーションの前記第1のセットとビットロケーションの第2のセットとを有するテンプレートに従って前記第1のパケットを発生するように構成され、
前記パケットジェネレータは、前記第3の位置がビットロケーションの前記第2のセットを占めるように、前記テンプレートに従って前記第2のパケットを発生するように構成された、請求項15に記載の装置。 - 前記第1の音声信号フレームのピッチ周期を推定するように構成されたピッチ周期推定器を備え、
前記パケットジェネレータは、前記推定ピッチ周期を示すビットのセットがビットロケーションの前記第2のセットを占めるように、前記第1のパケットを発生するように構成された、請求項17に記載の装置。 - 前記第1の位置をしきい値と比較し、前記第1の位置が前記しきい値未満のときに第1の状態を有し、前記第1の位置が前記しきい値よりも大きいときに第2の状態を有する第1の出力を生成するように構成されたコンパレータを備え、
前記パケットジェネレータが、前記第1の出力が前記第1の状態を有することに応答して前記第1のパケットを発生するように構成され、
前記コンパレータが、前記第2の位置を前記しきい値と比較し、前記第2の位置が前記しきい値未満のときに第1の状態を有し、前記第2の位置が前記しきい値よりも大きいときに第2の状態を有する第2の出力を生成するように構成され、
前記パケットジェネレータが、前記第2の出力が前記第2の状態を有することに応答して前記第2のパケットを発生するように構成された、請求項15に記載の装置。 - 前記第1の音声信号フレームおよび前記第2の音声信号フレームの各々の前記長さが、(2^r)ビットよりも大きく、2^(r+1)ビット未満であり、rが、6以上、9以下の整数であり、
前記第1の位置が前記第1のパケットのrビット以下を占め、
前記第3の位置が前記第2のパケットのrビット以下を占める、請求項15に記載の装置。 - 第1の音声信号フレーム内の第1の位置を計算することであって、前記第1の位置が、前記フレームの第1のサンプルと前記フレームの最後のサンプルとのうちの一方に関する前記フレームの端末ピッチパルスの位置である、計算することと、
前記第1の音声信号フレームを表し、前記第1の位置を含む第1のパケットを発生することと、
第2の音声信号フレーム内の第2の位置を計算することであって、前記第2の位置が、前記フレームの前記第1のサンプルと前記フレームの前記最後のサンプルとのうちの一方に関する前記フレームの端末ピッチパルスの位置である、計算することと、
前記第2の音声信号フレームを表し、前記第2の音声信号フレーム内の第3の位置を含む第2のパケットを発生することであって、前記第3の位置が、前記フレームの前記第1のサンプルと前記フレームの前記最後のサンプルとのうちの他方に関する前記フレームの前記端末ピッチパルスの位置である、発生することと
をプロセッサによって実行されたとき前記プロセッサに行わせる命令を備えるコンピュータ可読媒体。 - 第1の位置を計算することを前記プロセッサに行わせる前記命令が、前記フレームの前記最後のサンプルに関する前記フレームの最終ピッチパルスの位置として前記第1の位置を計算することを前記プロセッサに行わせる命令を含み、
第2の位置を計算することを前記プロセッサに行わせる前記命令が、前記フレームの前記最後のサンプルに関する前記フレームの前記最終ピッチパルスの位置として前記第2の位置を計算することを前記プロセッサに行わせる命令を含み、
前記第3の位置が、前記第2の音声信号フレームの前記第1のサンプルに関する前記フレームの前記最終ピッチパルスの位置である、請求項21に記載のコンピュータ可読媒体。 - 前記第1のパケットが前記第2のパケットと同じ長さであり、
第1のパケットを発生することを前記プロセッサに行わせる前記命令は、前記第1の位置がビットロケーションの第1のセットを占めるように、独立しているビットロケーションの前記第1のセットとビットロケーションの第2のセットとを有するテンプレートに従って前記第1のパケットを発生することを前記プロセッサに行わせる命令を含み、
第2のパケットを発生することを前記プロセッサに行わせる前記命令は、前記第3の位置がビットロケーションの前記第2のセットを占めるように、前記テンプレートに従って前記第2のパケットを発生することを前記プロセッサに行わせる命令を含む、請求項21に記載のコンピュータ可読媒体。 - 前記媒体が、プロセッサによって実行されたとき、前記第1の音声信号フレームのピッチ周期を推定することを前記プロセッサに行わせる命令を備え、
第1のパケットを発生することを前記プロセッサに行わせる前記命令は、前記推定ピッチ周期を示すビットのセットがビットロケーションの前記第2のセットを占めるように、前記第1のパケットを発生することを前記プロセッサに行わせる命令を含む、請求項23に記載のコンピュータ可読媒体。 - 前記第1の位置をしきい値と比較することと、
前記第2の位置を前記しきい値と比較することと
をプロセッサによって実行されたとき前記プロセッサに行わせる命令を備え、
前記第1の位置を比較することを前記プロセッサに行わせる前記命令の出力は、前記第1の位置が前記しきい値未満のときに第1の状態を有し、前記第1の位置が前記しきい値よりも大きいときに第2の状態を有し、
前記第2の位置を比較することを前記プロセッサに行わせる前記命令の出力は、前記第2の位置が前記しきい値未満のときに第1の状態を有し、前記第2の位置が前記しきい値よりも大きいときに第2の状態を有し、
第1のパケットを発生することを前記プロセッサに行わせる前記命令が、前記第1の位置を比較することを前記プロセッサに行わせる前記命令の前記出力が前記第1の状態を有することに応答して、前記第1のパケットを発生することを前記プロセッサに行わせる命令を含み、
第2のパケットを発生することを前記プロセッサに行わせる前記命令が、前記第2の位置を比較することを前記プロセッサに行わせる前記命令の前記出力が前記第2の状態を有することに応答して、前記第2のパケットを発生することを前記プロセッサに行わせる命令を含む、請求項21に記載のコンピュータ可読媒体。 - 前記第1の音声信号フレームおよび前記第2の音声信号フレームの各々の前記長さが、(2^r)ビットよりも大きく、2^(r+1)ビット未満であり、rが、6以上、9以下の整数であり、
前記第1の位置が前記第1のパケットのrビット以下を占め、
前記第3の位置が前記第2のパケットのrビット以下を占める、請求項21に記載のコンピュータ可読媒体。 - 符号化音声信号のパケットを復号する方法であって、
独立しているビット位置の第1のセットとビット位置の第2のセットとを有するテンプレートに準拠する第1のパケットから、ビット位置の前記第1のセットからの第1の値を抽出することと、
前記第1の値をモード値と比較することと、
前記第1の値を前記比較することの結果に応答して、前記第1の値に従って第1の励振信号内のピッチパルスを構成することと、
前記テンプレートに準拠する第2のパケットから、ビット位置の前記第1のセットからの第2の値を抽出することと、
前記第2の値を前記モード値と比較することと、
前記第2のパケットのビット位置の前記第2のセットから第3の値を抽出することと、
前記第2の値を前記比較することの結果に応答して、前記第3の値に従って第2の励振信号内のピッチパルスを構成することと
を備える、パケットを復号する方法。 - 前記第1の値が、第1の音声信号フレームの最後のサンプルに対するピッチパルスの位置を示し、
前記第3の値が、第2の音声信号フレームの第1のサンプルに対するピッチパルスの位置を示す、請求項27に記載のパケットを復号する方法。 - 前記第1の値を前記比較することの結果は、前記第1の値が前記モード値に等しいときに第1の状態を有し、他の場合は第2の状態を有し、
前記第2の値を前記比較することの結果は、前記第2の値が前記モード値に等しいときに第1の状態を有し、他の場合は第2の状態を有し、
前記第1の値に従ってピッチパルスを前記構成することは、前記第1の値を前記比較することの前記結果が前記第2の状態を有することに応答して実行され、
前記第3の値に従ってピッチパルスを前記構成することは、第2の値を前記比較することの前記結果が前記第1の状態を有することに応答して実行される、請求項27に記載のパケットを復号する方法。 - 前記第1のパケットのビット位置の前記第2のセットから第4の値を抽出することと、
前記第1の値と前記第4の値とに基づいて、前記第1の励振信号内の別のピッチパルスを構成することと
を備える、請求項27に記載のパケットを復号する方法。 - ピッチパルスの形状を符号化する方法であって、
音声信号フレームのピッチ周期を推定することと、
前記推定ピッチ周期に基づいて、パルス形状ベクトルの複数のテーブルのうちの1つを選択することと、
前記音声信号フレームの少なくとも1つのピッチパルスからの情報に基づいて、パルス形状ベクトルの前記選択されたテーブル中のパルス形状ベクトルを選択することと
を備え、
パルス形状ベクトルの前記選択されたテーブル中の各パルス形状ベクトルの長さが第1の値に等しく、
パルス形状ベクトルの前記複数のテーブルのうちの別のテーブル中の各パルス形状ベクトルの長さが、前記第1の値とは異なる第2の値に等しい、方法。 - (A)前記推定ピッチ周期を示す第1の値と、(B)前記選択されたテーブル中の前記選択されたパルス形状ベクトルを識別する第2の値とを含むパケットを発生することを備える、請求項31に記載の方法。
- 前記第1の値が、最小値に対するオフセットとして前記推定ピッチ周期を示す、請求項32に記載の方法。
- パルス形状ベクトルの前記複数のテーブルの各々が、ピッチ周期値の複数の異なる範囲のうちの対応する1つに関連し、
パルス形状ベクトルの複数のテーブルのうちの1つを前記選択することは、前記複数の異なる範囲のいずれが前記推定ピッチ周期を含むかを判断することを含む、請求項31に記載の方法。 - 前記複数の異なる範囲のうち、最も長いピッチ周期を含む前記範囲が、最も短いピッチ周期を含む前記範囲よりも広い、請求項34に記載の方法。
- 前記方法が、エネルギー測度に基づいて、前記音声信号フレームの複数のピッチパルスの中から1つのピッチパルスを選択することを備え、
少なくとも1つのピッチパルスからの情報に基づいてパルス形状ベクトルを前記選択することは、パルス形状ベクトルの前記選択されたテーブル中で、前記選択されたピッチパルスにエネルギーが最も近接しているパルス形状ベクトルを選択することを含む、請求項31に記載の方法。 - 第2の音声信号フレーム内のピッチパルスの位置を判断することと、
前記判断された位置に基づいて、パルス形状ベクトルの第2の複数のテーブルのうちの1つを選択することと
を備える、請求項31に記載の方法。 - 前記方法は、前記第2の音声信号フレームがただ1つのピッチパルスを含むことを判断することを備える、請求項37に記載の方法。
- ピッチパルスの形状を符号化するための装置であって、
音声信号フレームのピッチ周期を推定するための手段と、
前記推定ピッチ周期に基づいて、パルス形状ベクトルの複数のテーブルのうちの1つを選択するための手段と、
前記音声信号フレームの少なくとも1つのピッチパルスからの情報に基づいて、パルス形状ベクトルの前記選択されたテーブル中のパルス形状ベクトルを選択するための手段と
を備え、
パルス形状ベクトルの前記選択されたテーブル中の各パルス形状ベクトルの長さが第1の値に等しく、
パルス形状ベクトルの前記複数のテーブルのうちの別のテーブル中の各パルス形状ベクトルの長さが、第1の値とは異なる第2の値に等しい、装置。 - (A)前記推定ピッチ周期に基づく第1の値と、(B)前記選択されたテーブル中の前記選択されたパルス形状ベクトルを識別する第2の値とを含むパケットを発生するための手段を備える、請求項39に記載の装置。
- パルス形状ベクトルの前記複数のテーブルの各々が、ピッチ周期値の複数の異なる範囲のうちの対応する1つに関連し、
パルス形状ベクトルの複数のテーブルのうちの1つを選択するための前記手段は、前記複数の異なる範囲のいずれが前記推定ピッチ周期を含むかを判断するように構成された、請求項39に記載の装置。 - 前記装置が、エネルギー測度に基づいて、前記音声信号フレームの複数のピッチパルスの中から1つのピッチパルスを選択するための手段を備え、
少なくとも1つのピッチパルスからの情報に基づいてパルス形状ベクトルを選択するための前記手段が、パルス形状ベクトルの前記選択されたテーブル中で、前記選択されたピッチパルスにエネルギーが最も近接しているパルス形状ベクトルを選択するように構成された、請求項39に記載の装置。 - 第2の音声信号フレームがただ1つのピッチパルスを含むことを判断するための手段と、
前記第2の音声信号フレーム内の前記1つのピッチパルスの位置を判断するための手段と、
前記判断された位置に基づいて、パルス形状ベクトルの第2の複数のテーブルのうちの1つを選択するための手段と
を備える、請求項39に記載の装置。 - 音声信号フレームのピッチ周期を推定することと、
前記推定ピッチ周期に基づいて、パルス形状ベクトルの複数のテーブルのうちの1つを選択することと、
前記音声信号フレームの少なくとも1つのピッチパルスからの情報に基づいてパルス形状ベクトルの前記選択されたテーブル中のパルス形状ベクトルを選択することと
をプロセッサによって実行されたとき前記プロセッサに行わせる命令を備え、
パルス形状ベクトルの前記選択されたテーブル中の各パルス形状ベクトルの長さが第1の値に等しく、
パルス形状ベクトルの前記複数のテーブルのうちの別のテーブル中の各パルス形状ベクトルの長さが、前記第1の値とは異なる第2の値に等しい、コンピュータ可読媒体。 - 前記媒体が、(A)前記推定ピッチ周期に基づく第1の値と、(B)前記選択されたテーブル中の前記選択されたパルス形状ベクトルを識別する第2の値とを含むパケットを発生することを前記プロセッサに行わせる命令を備える、請求項44に記載のコンピュータ可読媒体。
- パルス形状ベクトルの前記複数のテーブルの各々が、ピッチ周期値の複数の異なる範囲のうちの対応する1つに関連し、
パルス形状ベクトルの複数のテーブルのうちの1つを選択することを前記プロセッサに行わせる前記命令は、前記複数の異なる範囲のいずれが前記推定ピッチ周期を含むかを判断することを前記プロセッサに行わせる命令を含む、請求項44に記載のコンピュータ可読媒体。 - 前記媒体が、エネルギー測度に基づいて、前記音声信号フレームの複数のピッチパルスの中から1つのピッチパルスを選択することを前記プロセッサに行わせる命令を備え、
少なくとも1つのピッチパルスからの情報に基づいてパルス形状ベクトルを選択することを前記プロセッサに行わせる前記命令は、パルス形状ベクトルの前記選択されたテーブル中で、前記選択されたピッチパルスにエネルギーが最も近接しているパルス形状ベクトルを選択することを前記プロセッサに行わせる命令を含む、請求項44に記載のコンピュータ可読媒体。 - 第2の音声信号フレームがただ1つのピッチパルスを含むことを判断することと、
前記第2の音声信号フレーム内の前記1つのピッチパルスの位置を判断することと、
前記判断された位置に基づいて、パルス形状ベクトルの第2の複数のテーブルのうちの1つを選択することと
をプロセッサによって実行されたとき前記プロセッサに行わせる命令を備える、請求項44に記載のコンピュータ可読媒体。 - ピッチパルスの形状を符号化するための装置であって、
音声信号フレームのピッチ周期を推定するように構成されたピッチ周期推定器と、
前記推定ピッチ周期に基づいて、パルス形状ベクトルの複数のテーブルのうちの1つを選択するように構成されたベクトルテーブルセレクタと、
前記音声信号フレームの少なくとも1つのピッチパルスからの情報に基づいてパルス形状ベクトルの前記選択されたテーブル中のパルス形状ベクトルを選択するように構成されたパルス形状ベクトルセレクタと
を備え、
パルス形状ベクトルの前記選択されたテーブル中の各パルス形状ベクトルの長さが第1の値に等しく、
パルス形状ベクトルの前記複数のテーブルのうちの別のテーブル中の各パルス形状ベクトルの長さが、前記第1の値とは異なる第2の値に等しい、装置。 - (A)前記推定ピッチ周期に基づく第1の値と、(B)前記選択されたテーブル中の前記選択されたパルス形状ベクトルを識別する第2の値とを含むパケットを発生するように構成されたパケットジェネレータを備える、請求項49に記載の装置。
- パルス形状ベクトルの前記複数のテーブルの各々が、ピッチ周期値の複数の異なる範囲のうちの対応する1つに関連し、
前記ベクトルテーブルセレクタは、前記複数の異なる範囲のいずれが前記推定ピッチ周期を含むかを判断するように構成された、請求項49に記載の装置。 - 前記装置が、エネルギー測度に基づいて、前記音声信号フレームの複数のピッチパルスの中から1つのピッチパルスを選択するように構成されたピッチパルスセレクタを備え、
前記パルス形状ベクトルセレクタが、パルス形状ベクトルの前記選択されたテーブル中で、前記選択されたピッチパルスにエネルギーが最も近接しているパルス形状ベクトルを選択するように構成された、請求項49に記載の装置。 - (A)第2の音声信号フレームがただ1つのピッチパルスを含むことを判断し、(B)前記第2の音声信号フレーム内の前記1つのピッチパルスの位置を判断するように構成されたピッチパルス位置計算器と、
前記判断された位置に基づいて、パルス形状ベクトルの第2の複数のテーブルのうちの1つを選択するように構成されたベクトルテーブルセレクタと
を備える、請求項49に記載の装置。 - ピッチパルスの形状を復号する方法であって、
符号化音声信号の第1のパケットから符号化ピッチ周期値を抽出することと、
前記符号化ピッチ周期値に基づいて、パルス形状ベクトルの複数のテーブルのうちの1つを選択することと、
前記第1のパケットから第1のインデックスを抽出することと、
前記第1のインデックスに基づいて、パルス形状ベクトルの前記選択されたテーブルからパルス形状ベクトルを得ることと
を備える、方法。 - 前記第1のパケットから第1のピッチパルス位置インジケータを抽出することと、
前記第1のピッチパルス位置インジケータに基づいて、前記パルス形状ベクトルに基づくピッチパルスを第1の励振信号内に構成することと
を備える、請求項54に記載の復号する方法。 - 前記符号化ピッチ周期値に基づいて、前記第1のピッチパルスに対する第2のピッチパルスを前記第1の励振信号内に構成することを備え、
前記第2のピッチパルスが前記パルス形状ベクトルに基づく、請求項55に記載の復号する方法。 - 前記音声信号の第2のパケットから第2のピッチパルス位置インジケータを抽出することと、
前記第2のピッチパルス位置インジケータに基づいて、パルス形状ベクトルの第2の複数のテーブルのうちの1つを選択することと、
前記第2のパケットから第2のインデックスを抽出することと、
前記第2のインデックスに基づいて、前記第2の複数のテーブルのうちの前記選択された1つから第2のパルス形状ベクトルを得ることと、
前記第2のピッチパルス位置インジケータに基づいて、前記第2のパルス形状ベクトルに基づくピッチパルスを第2の励振信号内に構成することと
を備える、請求項55に記載の復号する方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/261,518 | 2008-10-30 | ||
US12/261,518 US20090319263A1 (en) | 2008-06-20 | 2008-10-30 | Coding of transitional speech frames for low-bit-rate applications |
PCT/US2009/062379 WO2010056526A1 (en) | 2008-10-30 | 2009-10-28 | Coding of transitional speech frames for low-bit-rate applications |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012507751A true JP2012507751A (ja) | 2012-03-29 |
Family
ID=41466937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011534713A Pending JP2012507751A (ja) | 2008-10-30 | 2009-10-28 | 低ビットレート適用例のための遷移音声フレームのコーディング |
Country Status (6)
Country | Link |
---|---|
US (1) | US20090319263A1 (ja) |
EP (1) | EP2362964A1 (ja) |
JP (1) | JP2012507751A (ja) |
CN (1) | CN102197423A (ja) |
TW (1) | TW201034001A (ja) |
WO (1) | WO2010056526A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8259840B2 (en) * | 2005-10-24 | 2012-09-04 | General Motors Llc | Data communication via a voice channel of a wireless communication network using discontinuities |
US20090319261A1 (en) * | 2008-06-20 | 2009-12-24 | Qualcomm Incorporated | Coding of transitional speech frames for low-bit-rate applications |
US8768690B2 (en) * | 2008-06-20 | 2014-07-01 | Qualcomm Incorporated | Coding scheme selection for low-bit-rate applications |
KR101622950B1 (ko) * | 2009-01-28 | 2016-05-23 | 삼성전자주식회사 | 오디오 신호의 부호화 및 복호화 방법 및 그 장치 |
US8700410B2 (en) | 2009-06-18 | 2014-04-15 | Texas Instruments Incorporated | Method and system for lossless value-location encoding |
ES2935911T3 (es) * | 2010-04-09 | 2023-03-13 | Dolby Int Ab | Descodificación estéreo de predicción compleja basada en MDCT |
US8990094B2 (en) * | 2010-09-13 | 2015-03-24 | Qualcomm Incorporated | Coding and decoding a transient frame |
US8862465B2 (en) * | 2010-09-17 | 2014-10-14 | Qualcomm Incorporated | Determining pitch cycle energy and scaling an excitation signal |
CN104025191A (zh) * | 2011-10-18 | 2014-09-03 | 爱立信(中国)通信有限公司 | 用于自适应多速率编解码器的改进方法和设备 |
TWI451746B (zh) * | 2011-11-04 | 2014-09-01 | Quanta Comp Inc | 視訊會議系統及視訊會議方法 |
EP2798631B1 (en) * | 2011-12-21 | 2016-03-23 | Huawei Technologies Co., Ltd. | Adaptively encoding pitch lag for voiced speech |
US9043201B2 (en) * | 2012-01-03 | 2015-05-26 | Google Technology Holdings LLC | Method and apparatus for processing audio frames to transition between different codecs |
US9208798B2 (en) * | 2012-04-09 | 2015-12-08 | Board Of Regents, The University Of Texas System | Dynamic control of voice codec data rate |
CN103426441B (zh) * | 2012-05-18 | 2016-03-02 | 华为技术有限公司 | 检测基音周期的正确性的方法和装置 |
US9336789B2 (en) | 2013-02-21 | 2016-05-10 | Qualcomm Incorporated | Systems and methods for determining an interpolation factor set for synthesizing a speech signal |
EP2830060A1 (en) * | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Noise filling in multichannel audio coding |
EP2830065A1 (en) | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for decoding an encoded audio signal using a cross-over filter around a transition frequency |
CN104425037B (zh) * | 2013-08-19 | 2019-07-12 | 恩智浦美国有限公司 | 可重配置电路及其解码器 |
EP2980799A1 (en) * | 2014-07-28 | 2016-02-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for processing an audio signal using a harmonic post-filter |
EP2980798A1 (en) * | 2014-07-28 | 2016-02-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Harmonicity-dependent controlling of a harmonic filter tool |
US9870785B2 (en) * | 2015-02-06 | 2018-01-16 | Knuedge Incorporated | Determining features of harmonic signals |
EP3254282A1 (en) * | 2015-02-06 | 2017-12-13 | KnuEdge Incorporated | Determining features of harmonic signals |
JP6501259B2 (ja) * | 2015-08-04 | 2019-04-17 | 本田技研工業株式会社 | 音声処理装置及び音声処理方法 |
WO2021000724A1 (zh) * | 2019-06-29 | 2021-01-07 | 华为技术有限公司 | 一种立体声编码方法、立体声解码方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1097294A (ja) * | 1996-02-21 | 1998-04-14 | Matsushita Electric Ind Co Ltd | 音声符号化装置 |
JP2002505450A (ja) * | 1998-02-27 | 2002-02-19 | ルノー・アンド・オスピー・スピーチ・プロダクツ・ナームローゼ・ベンノートシャープ | ハイブリッド被刺激線形予測スピーチ符号化装置及び方法 |
JP2003015699A (ja) * | 2001-06-27 | 2003-01-17 | Matsushita Electric Ind Co Ltd | 固定音源符号帳並びにそれを用いた音声符号化装置及び音声復号化装置 |
JP2005534950A (ja) * | 2002-05-31 | 2005-11-17 | ヴォイスエイジ・コーポレーション | 線形予測に基づく音声コーデックにおける効率的なフレーム消失の隠蔽のための方法、及び装置 |
WO2008007699A1 (en) * | 2006-07-12 | 2008-01-17 | Panasonic Corporation | Audio decoding device and audio encoding device |
WO2008049221A1 (en) * | 2006-10-24 | 2008-05-02 | Voiceage Corporation | Method and device for coding transition frames in speech signals |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5127053A (en) * | 1990-12-24 | 1992-06-30 | General Electric Company | Low-complexity method for improving the performance of autocorrelation-based pitch detectors |
US5187745A (en) * | 1991-06-27 | 1993-02-16 | Motorola, Inc. | Efficient codebook search for CELP vocoders |
US5233660A (en) * | 1991-09-10 | 1993-08-03 | At&T Bell Laboratories | Method and apparatus for low-delay celp speech coding and decoding |
US5765127A (en) * | 1992-03-18 | 1998-06-09 | Sony Corp | High efficiency encoding method |
US5884253A (en) * | 1992-04-09 | 1999-03-16 | Lucent Technologies, Inc. | Prototype waveform speech coding with interpolation of pitch, pitch-period waveforms, and synthesis filter |
US5704003A (en) * | 1995-09-19 | 1997-12-30 | Lucent Technologies Inc. | RCELP coder |
JPH09185397A (ja) * | 1995-12-28 | 1997-07-15 | Olympus Optical Co Ltd | 音声情報記録装置 |
AU3708597A (en) * | 1996-08-02 | 1998-02-25 | Matsushita Electric Industrial Co., Ltd. | Voice encoder, voice decoder, recording medium on which program for realizing voice encoding/decoding is recorded and mobile communication apparatus |
US6073092A (en) * | 1997-06-26 | 2000-06-06 | Telogy Networks, Inc. | Method for speech coding based on a code excited linear prediction (CELP) model |
WO1999010719A1 (en) * | 1997-08-29 | 1999-03-04 | The Regents Of The University Of California | Method and apparatus for hybrid coding of speech at 4kbps |
EP1093230A4 (en) * | 1998-06-30 | 2005-07-13 | Nec Corp | speech |
US6240386B1 (en) * | 1998-08-24 | 2001-05-29 | Conexant Systems, Inc. | Speech codec employing noise classification for noise compensation |
US6480822B2 (en) * | 1998-08-24 | 2002-11-12 | Conexant Systems, Inc. | Low complexity random codebook structure |
US7272556B1 (en) * | 1998-09-23 | 2007-09-18 | Lucent Technologies Inc. | Scalable and embedded codec for speech and audio signals |
US6754630B2 (en) * | 1998-11-13 | 2004-06-22 | Qualcomm, Inc. | Synthesis of speech from pitch prototype waveforms by time-synchronous waveform interpolation |
US6691084B2 (en) * | 1998-12-21 | 2004-02-10 | Qualcomm Incorporated | Multiple mode variable rate speech coding |
US6311154B1 (en) * | 1998-12-30 | 2001-10-30 | Nokia Mobile Phones Limited | Adaptive windows for analysis-by-synthesis CELP-type speech coding |
US6324505B1 (en) * | 1999-07-19 | 2001-11-27 | Qualcomm Incorporated | Amplitude quantization scheme for low-bit-rate speech coders |
US6581032B1 (en) * | 1999-09-22 | 2003-06-17 | Conexant Systems, Inc. | Bitstream protocol for transmission of encoded voice signals |
US7039581B1 (en) * | 1999-09-22 | 2006-05-02 | Texas Instruments Incorporated | Hybrid speed coding and system |
WO2001052241A1 (en) * | 2000-01-11 | 2001-07-19 | Matsushita Electric Industrial Co., Ltd. | Multi-mode voice encoding device and decoding device |
ATE553472T1 (de) * | 2000-04-24 | 2012-04-15 | Qualcomm Inc | Prädikitve dequantisierung von stimmhaften sprachsignalen |
US6584438B1 (en) * | 2000-04-24 | 2003-06-24 | Qualcomm Incorporated | Frame erasure compensation method in a variable rate speech coder |
US6760698B2 (en) * | 2000-09-15 | 2004-07-06 | Mindspeed Technologies Inc. | System for coding speech information using an adaptive codebook with enhanced variable resolution scheme |
US7363219B2 (en) * | 2000-09-22 | 2008-04-22 | Texas Instruments Incorporated | Hybrid speech coding and system |
US7472059B2 (en) * | 2000-12-08 | 2008-12-30 | Qualcomm Incorporated | Method and apparatus for robust speech classification |
US6480821B2 (en) * | 2001-01-31 | 2002-11-12 | Motorola, Inc. | Methods and apparatus for reducing noise associated with an electrical speech signal |
CA2365203A1 (en) * | 2001-12-14 | 2003-06-14 | Voiceage Corporation | A signal modification method for efficient coding of speech signals |
US7236927B2 (en) * | 2002-02-06 | 2007-06-26 | Broadcom Corporation | Pitch extraction methods and systems for speech coding using interpolation techniques |
US20040002856A1 (en) * | 2002-03-08 | 2004-01-01 | Udaya Bhaskar | Multi-rate frequency domain interpolative speech CODEC system |
AU2002307884A1 (en) * | 2002-04-22 | 2003-11-03 | Nokia Corporation | Method and device for obtaining parameters for parametric speech coding of frames |
US7103538B1 (en) * | 2002-06-10 | 2006-09-05 | Mindspeed Technologies, Inc. | Fixed code book with embedded adaptive code book |
WO2004034379A2 (en) * | 2002-10-11 | 2004-04-22 | Nokia Corporation | Methods and devices for source controlled variable bit-rate wideband speech coding |
EP1604352A4 (en) * | 2003-03-15 | 2007-12-19 | Mindspeed Tech Inc | SINGLE NOISE DELETION MODEL |
US7433815B2 (en) * | 2003-09-10 | 2008-10-07 | Dilithium Networks Pty Ltd. | Method and apparatus for voice transcoding between variable rate coders |
US8355907B2 (en) * | 2005-03-11 | 2013-01-15 | Qualcomm Incorporated | Method and apparatus for phase matching frames in vocoders |
US8155965B2 (en) * | 2005-03-11 | 2012-04-10 | Qualcomm Incorporated | Time warping frames inside the vocoder by modifying the residual |
JP4599558B2 (ja) * | 2005-04-22 | 2010-12-15 | 国立大学法人九州工業大学 | ピッチ周期等化装置及びピッチ周期等化方法、並びに音声符号化装置、音声復号装置及び音声符号化方法 |
US7177804B2 (en) * | 2005-05-31 | 2007-02-13 | Microsoft Corporation | Sub-band voice codec with multi-stage codebooks and redundant coding |
US20070174047A1 (en) * | 2005-10-18 | 2007-07-26 | Anderson Kyle D | Method and apparatus for resynchronizing packetized audio streams |
US8135047B2 (en) * | 2006-07-31 | 2012-03-13 | Qualcomm Incorporated | Systems and methods for including an identifier with a packet associated with a speech signal |
US8260609B2 (en) * | 2006-07-31 | 2012-09-04 | Qualcomm Incorporated | Systems, methods, and apparatus for wideband encoding and decoding of inactive frames |
US20090319261A1 (en) * | 2008-06-20 | 2009-12-24 | Qualcomm Incorporated | Coding of transitional speech frames for low-bit-rate applications |
US8768690B2 (en) * | 2008-06-20 | 2014-07-01 | Qualcomm Incorporated | Coding scheme selection for low-bit-rate applications |
-
2008
- 2008-10-30 US US12/261,518 patent/US20090319263A1/en not_active Abandoned
-
2009
- 2009-10-28 EP EP09744879A patent/EP2362964A1/en not_active Withdrawn
- 2009-10-28 WO PCT/US2009/062379 patent/WO2010056526A1/en active Application Filing
- 2009-10-28 JP JP2011534713A patent/JP2012507751A/ja active Pending
- 2009-10-28 CN CN2009801431187A patent/CN102197423A/zh active Pending
- 2009-10-30 TW TW098137039A patent/TW201034001A/zh unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1097294A (ja) * | 1996-02-21 | 1998-04-14 | Matsushita Electric Ind Co Ltd | 音声符号化装置 |
JP2002505450A (ja) * | 1998-02-27 | 2002-02-19 | ルノー・アンド・オスピー・スピーチ・プロダクツ・ナームローゼ・ベンノートシャープ | ハイブリッド被刺激線形予測スピーチ符号化装置及び方法 |
JP2003015699A (ja) * | 2001-06-27 | 2003-01-17 | Matsushita Electric Ind Co Ltd | 固定音源符号帳並びにそれを用いた音声符号化装置及び音声復号化装置 |
JP2005534950A (ja) * | 2002-05-31 | 2005-11-17 | ヴォイスエイジ・コーポレーション | 線形予測に基づく音声コーデックにおける効率的なフレーム消失の隠蔽のための方法、及び装置 |
WO2008007699A1 (en) * | 2006-07-12 | 2008-01-17 | Panasonic Corporation | Audio decoding device and audio encoding device |
WO2008049221A1 (en) * | 2006-10-24 | 2008-05-02 | Voiceage Corporation | Method and device for coding transition frames in speech signals |
JP2010507818A (ja) * | 2006-10-24 | 2010-03-11 | ヴォイスエイジ・コーポレーション | 音声信号中の遷移フレームの符号化のための方法およびデバイス |
Also Published As
Publication number | Publication date |
---|---|
TW201034001A (en) | 2010-09-16 |
US20090319263A1 (en) | 2009-12-24 |
EP2362964A1 (en) | 2011-09-07 |
WO2010056526A1 (en) | 2010-05-20 |
CN102197423A (zh) | 2011-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5248681B2 (ja) | 低ビットレート適用例のためのコーディングスキーム選択 | |
JP2012507751A (ja) | 低ビットレート適用例のための遷移音声フレームのコーディング | |
JP2011525256A (ja) | 低ビットレート適用のための遷移音声フレームの符号化 | |
EP2176860B1 (en) | Processing of frames of an audio signal | |
US20110082693A1 (en) | Systems, methods, and apparatus for frame erasure recovery | |
JP5543405B2 (ja) | フレームエラーに対する感度を低減する符号化体系パターンを使用する予測音声コーダ | |
US8145477B2 (en) | Systems, methods, and apparatus for computationally efficient, iterative alignment of speech waveforms | |
US6260017B1 (en) | Multipulse interpolative coding of transition speech frames | |
JP2004502203A (ja) | 準周期信号の位相を追跡するための方法および装置 | |
Kroon et al. | A low-complexity toll-quality variable bit rate coder for CDMA cellular systems | |
LeBlanc et al. | Personal Systems Laboratory Texas Instruments Incorporated |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130409 |