Method and apparatus for voice transcoding between variable rate coders

Information

  • Patent Application
  • 20050053130
  • Publication Number
    20050053130
  • Date Filed
    September 10, 2003
    20 years ago
  • Date Published
    March 10, 2005
    19 years ago
Abstract
A variable rate compressed voice signal domain transcoder that transcodes a bitstream representing frames of data encoded according to a first voice compression standard to a bitstream representing frames of data according to a second voice compression standard; the second voice compression standard defines a variable-rate voice codec. The method includes unquantizing a bitstream into a first set of parameters compatible with a first compression standard. The first set of parameters in addition to external control commands are then used to determine the frame class and rate for the second compression standard. Next, the first set of parameters are transformed into a second set of parameters compatible with a second compression standard according to the frame-classification and rate determination decision without converting the first set of parameters to an analog or digital voice waveform representation. The transformation approaches can be varied and further optimized based on the characteristics of the pair of first compression standard and the second compression standard. Lastly, the second set of parameters is packed into a bitstream compatible with the second compression standard.
Description
BACKGROUND OF THE INVENTION

The present invention relates generally to processing of telecommunication signals. More particularly, the present invention relates to a method and apparatus for transcoding a bitstream encoded by a first voice speech coding format into a bitstream encoded by a second variable-rate voice coding format. Merely by way of example, the invention has been applied to variable-rate voice transcoding, but it would be recognized that the invention may also be applicable to other applications.


Telecommunication techniques have progressed through the years. One of the major desires of speech coding development is high quality output speech at a low average data rate. One approach is to employ a variable bit-rate scheme, whereby the transmission rate is not only determined by the network traffic but also from the characteristics of the input speech signal. For example, when the signal is highly voiced, a high bit rate may be chosen; if the signal is weak, a low bit rate is chosen; and if the signal has mostly silence or background noise, a lower bit rate is chosen. This often provides efficient allocation of the available bandwidth, without sacrificing output voice quality. Such variable-rate coders include the TIA IS-127 Enhanced Variable Rate Codec (EVRC), and 3rd generation partnership project 2 (3GPP2) Selectable Mode Vocoder (SMV). These coders use Rate Set 1 of the Code Division Multiple Access (CDMA) communication standards IS-95 and cdma2000, which include rates of 8.55 kbit/s (Rate 1 or full Rate), 4.0 kbit/s (half-rate), 2.0 kbit/s (quarter-rate) and 0.8 kbit/s (eighth rate). SMV selects the bit rate based on the input speech characteristics and operates in one of six network controlled modes, which limit the bit rate during high traffic. Depending on the mode of operation, different thresholds may be set to determine the rate usage percentages.


To accurately decide the desired transmission rate, and obtain high quality output speech at that rate, input speech frames are categorized into various classes. For example, in SMV, these classes include silence, unvoiced, onset, plosive, non-stationary voiced and stationary voiced speech. It is known that certain coding techniques are better suited for certain classes of sounds. Also, some types of sounds, for example, voice onsets or unvoiced-to-voiced transition regions, have higher perceptual significance and thus generally require higher coding accuracy than other classes of sounds, such as unvoiced speech. Thus, the speech frame classification may be used, not only to decide the most efficient transmission rate, but also the best-suited coding algorithm.


Accurate classification of input speech frames is desired to fully exploit the signal redundancies and perceptual importance. Typical frame classification techniques include voice activity detection, measuring the amount of noise in the signal, measuring the level of voicing, detecting speech onsets, and measuring the energy in a number of frequency bands. These measures generally require the calculation of numerous parameters, such as maximum correlation values, line spectral frequencies, and frequency transformations.


While coders such as SMV achieve much better quality at lower average data rate than existing speech codecs at similar bit rates, the frame classification and rate determination algorithms are complex. In the case of a tandem connection of two speech vocoders, however, many of the measurements performed for frame classification have already been calculated in the source codec. This can be capitalized on in a transcoding framework. In transcoding from the bitstream format of one CELP codec to the bitstream format of another CELP codec, rather than fully decoding to PCM and re-encoding the speech signal, smart interpolation methods may be applied directly in the CELP parameter space. Hence the parameters, such as pitch lag, pitch gain, fixed codebook gain, line spectral frequencies and the source codec bit rate are available to the destination codec. This allows frame classification and rate determination of the destination voice codec to be performed in a fast manner.


The simplest method of transcoding is a brute-force approach called tandem transcoding, shown in FIG. 1. This method performs a full decode of the incoming compressed bits to produce synthesized speech. The synthesized speech is then encoded for the target standard. This method is undesirable because of the huge amount of computation performed in re-encoding the signal, as well as quality degradations introduced by pre- and post-filtering of the speech waveform, and the potential delays introduced by the look-ahead-requirements of the encoder.


Methods for “smart” transcoding similar to that illustrated in FIG. 2 have appeared in the literature. These methods essentially reconstruct the speech signal and then perform significant work to extract the various CELP parameters such as line spectral frequencies and pitch. That is, these methods still operate in the speech signal space. In particular, the excitation signal which has already been optimally matched to the original speech by the far-end source encoder (encoder that produced the compressed speech according to a compression format) is often only used for the generation of the synthesized speech. The synthesized speech is then used to compute a new optimal excitation. Due to the requirement of incorporating impulse response filtering operations in closed-loop searches of the excitation parameters, this becomes a very computationally intensive operation.


Further, these transcoding methods do not cover the transcoding between variable-rate voice coders which determine the bit rate based on the characteristics of the input speech and, in some cases, external commands. During the transcoding process, the frame classification and rate decision of the destination voice codec in transcoding are still computed through the speech signal domain. The transcoder thus includes the equivalent amount of computational resources as the destination codec to classify frame types and to determine the bit rates. The smart transcoding of previous methods may lose part of their computational advantage, as the classification algorithms require parameters from intermediate stages of functions that have been omitted. For example, recalculation of the line spectral frequencies is often not performed in transcoding, however, the LPC prediction gain, LPC prediction error, autocorrelation function and reflection coefficients are often required in the classification and rate determination process.


From the above, it is seen that improved telecommunication techniques are desired.


BRIEF SUMMARY OF THE INVENTION

According to the present invention, techniques for processing of telecommunication signals are provided. More particularly, the present invention relates to a method and apparatus for transcoding a bitstream encoded by a first voice speech coding format into a bitstream encoded by a second variable-rate voice coding format. Merely by way of example, the invention has been applied to variable-rate voice transcoding, but it would be recognized that the invention may also be applicable to other applications.


According to an aspect of the present invention, there is provided a voice transcoding apparatus comprising:

    • a first voice compression code parameter unpack module that extracts the input encoded bitstream according to the first voice codec standard into its speech parameters. In the case of CELP-based codecs, these parameters may be line spectral frequencies, pitch lag, adaptive codebook gains, fixed codebook gains, codevectors as well as other parameters;
    • a frame classification and rate determination module that takes the parameters from the input encoded bitstream and external control commands to generate the destination codec frame type and rate decision;
    • at least one parameter interpolator and mapping module that converts the input source parameters into destination encoded parameters, taking into account the subframe and/or frame size difference between the source and destination codec.
    • a destination parameter packer that converts the encoded parameters into output encoded packets;
    • a first stage switching module that connects the source parameter unpack module to a parameter interpolator and mapping module;
    • a second stage switching module that connects the destination parameter pack module to a parameter interpolator and mapping module;
    • a control engine that controls the selection of parameter tuning engine to adapt the available resource and signal processing requirement;
    • a status reporting module that provides the status of parameter-based transcoding.


Numerous benefits are achieved using the present invention over conventional techniques. These benefits have been listed below:


To perform smart voice transcoding between variable-rate voice codecs;


To classify the destination codec frame type directly from the parameters of input source codec frames;


To determine the rate of the destination codec directly from the parameters of input source codec frames;


To improve voice quality through mapping parameters in the parameter space;


To reduce the computational complexity of the transcoding process;


To reduce the delay through the transcoding process;


To reduce the amount of memory required by the transcoding; and


To provide a generic transcoding architecture that may be adapted to current and future variable-rate codecs.


Depending upon the embodiment, one or more of these benefits may be achieved. These and other benefits are described throughout the present specification and more particularly below.


Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawing, in which like reference characters designate the same or similar parts throughout the figures thereof.




BRIEF DESCRIPTION OF THE DRAWINGS

The objectives, features, and advantages of the present invention, which are believed to be novel, are set forth in detail in the appended claims. The present invention, both as to its organization and manner of operation, together with further objectives and advantages, may best be understood by reference to the following description, in connection with the accompanying drawings.



FIG. 1 is a simplified block diagram illustrating the general tandem coding connection to convert a bitstream from one codec format to another codec format;



FIG. 2 is a simplified block diagram illustrating a general transcoder connection to convert a bitstream from one codec format to another codec format without full decode and re-encode.



FIG. 3 is a simplified block diagram illustrating the encoding processes performed in a variable-rate voice encoder.



FIG. 4 is a simplified block diagram of the variable-rate voice codec transcoding according to an embodiment of the present invention based on a smart frame classification and rate determination method.



FIG. 5 is a simplified flowchart of the steps performed in the variable-rate voice codec transcoding according to an embodiment of the present invention based on a smart frame classification and rate determination method



FIG. 6 is a simplified diagram of a smart frame classification and rate determination classifier according to an embodiment of the present invention.



FIG. 7 is a simplified block diagram illustrating the frame classification and rate determination in a variable-rate encoder according to an embodiment of the present invention.



FIG. 8 illustrates the various stages of frame classification in a variable-rate voice encoder according to an embodiment of the present invention.



FIG. 9 is a simplified block diagram illustrating a first set of CELP parameters for an active frame being transformed to a second set of CELP parameters according to an embodiment of the present invention.



FIG. 10 is a simplified block diagram illustrating a first set of CELP parameters for a silence or noise-like frame being transformed to a second set of CELP parameters according to an embodiment of the present invention.



FIG. 11 is a simplified block diagram illustrating the decoding process performed in a RCELP-based voice decoder according to an embodiment of the present invention.



FIG. 12 illustrates the various stages of voice signal pre-processing in a variable rate voice encoder according to an embodiment of the present invention.



FIG. 13 is a simplified block diagram illustrating the subframe excitation encoding process performed in a RCELP-based voice encoder according to an embodiment of the present invention.



FIG. 14 is a simplified block diagram illustrating the subframe excitation encoding process performed in another RCELP-based voice encoder according to an embodiment of the present invention.



FIG. 15 is a simplified block diagram illustrating an embodiment of the subframe excitation transcoding process according to the present invention according to an embodiment of the present invention.



FIG. 16 is a simplified flowchart showing the steps of an embodiment of the subframe excitation transcoding process according to an embodiment of the present invention.



FIG. 17 is a simplified block diagram illustrating the voice transcoding procedure from EVRC to SMV according to an embodiment of the present invention.



FIG. 18 is a simplified block diagram illustrating the voice transcoding procedure from SMV to EVRC according to an embodiment of the present invention.



FIG. 19 is a simplified diagram illustrating the subframe size and frame size of different frame types and different rates in the SMV voice coder according to an embodiment of the present invention.



FIG. 20 is a simplified diagram illustrating the subframe size and frame size of different rates in the EVRC voice coder according to an embodiment of the present invention.




DETAILED DESCRIPTION OF THE INVENTION

According to the present invention, techniques for processing of telecommunication signals are provided. More particularly, the present invention relates to a method and apparatus for transcoding a bitstream encoded by a first voice speech coding format into a bitstream encoded by a second variable-rate voice coding format. Merely by way of example, the invention has been applied to variable-rate voice transcoding, but it would be recognized that the invention may also be applicable to other applications.


A method and apparatus of the invention are discussed in detail below. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. The case of SMV and EVRC are used for the purpose of illustration and for examples. The methods described here are generic and apply to the transcoding between any pair of linear prediction-based voice codecs. A person skilled in the relevant art will recognize that other steps, configurations and arrangements can be used without departing from the spirit and scope of the present invention.


A block diagram of a tandem connection between two voice codecs is shown in FIG. 1. Alternatively a transcoder may be used, as shown in FIG. 2, which converts the bitstream from a source codec to the bitstream of a destination codec without fully decoding the signal to PCM and then re-encoding the signal. The present invention is a transcoder between voice codecs, whereby the destination codec is a variable bit-rate voice codec that determines the bit-rate based on the input speech characteristics. A block diagram of the encoder of a variable bit-rate voice coder is shown in FIG. 3. The input speech signal passes through several processing stages including pre-processing, estimation of model parameters and computation of classification features. Then, a rate, and in some cases, a frame type, is determined based on the features detected. Depending on the rate decision, a different strategy may be used in the encoding process. Once coding is complete, the parameters are packed in the bitstream.


A diagram of the apparatus for transcoding between two variable bit-rate voce codecs of the present invention is shown in FIG. 4. The apparatus comprises a source codec unpacking module, an intermediate parameters interpolation module, a smart frame classification and rate determination module, several mapping strategy modules, a switching module to select the desired mapping strategy, a destination packet formation module, and a second switching module that links the mapping strategy to the destination packet formation module. The method for transcoding between two variable bit-rate voce codecs is shown in FIG. 5.


Firstly, the bitstream representing frames of data encoded according to the source voice codec is unpacked and unquantized by a bitstream unpacking module. The actual parameters extracted from the bitstream depend on the source codec and its bit rate, and may include line spectral frequencies, pitch delays, delta pitch delays, adaptive codebook gains, fixed codebook shapes, fixed codebook gains and frame energy. Particular voice codecs may also transmit information regarding spectral transition, interpolation factors, the switch predictor used as well as other minor parameters. The unquantised parameters are passed to the intermediate parameters interpolation module.


The intermediate parameters interpolation module interpolates between different frame sizes, subframe sizes and sampling rates. This is required if there are differences in the frame size or subframe size of the source and destination codecs, in which case the transmission frequency of parameters may not be matched. Also, a difference in the sampling rate between the source codec and destination codec requires modification of parameters. The output interpolated parameters are passed to the smart frame classification and rate determination module and one of the mapping modules.


The frame classification and rate determination module receives the unquantized interpolated parameters of the source codec and the external control commands of the destination codec, as shown in FIG. 6. The frame classification and rate determination module comprises a classifier input parameter selector, for selecting which inputs will be used in the classification task, M sub-classifiers, buffers to store past input parameters and past output values, and a final decision module. The classifier takes as input the selected classification input parameters, external commands, and past input and output values, and generates as output the frame class and rate decision for the destination codec. Once classification has been performed, the states of the data buffers storing past parameter values are updated. The output rate and frame type decision controls the first switching module that selects the parameter mapping module, and the second switching module that links the parameter mapping module to the bitstream packing module. frame classification is performed according to pre-defined coefficients or rules determined during a prior training or classifier construction process. Several types of classification techniques may be used, including but not exclusive to, decision trees, rule-based models, and artificial neural networks. The functions for computing classification features and the many steps of the classification procedure for a particular codec are shown in FIG. 7 and FIG. 8 respectively. In an embodiment of the present invention, the frame classification and rate determination module replaces the standard classifier of the destination codec, as well as the processing functions of the destination codec required to generate the classification parameters.


The intermediate parameters interpolation module and the frame classification and rate determination module are linked to one of many parameter mapping modules by a switching module. The destination codec frame type and bit rate determined by the frame classification and rate determination module control which mapping module is to be chosen. Mapping modules may exist for each combination of bit-rate and frame class of the source codec to each bit rate and frame class of the destination codec.


Each mapping module comprises a speech spectral parameter mapping unit, an excitation mapping unit, and a mapping strategy decision unit. The speech spectral parameter mapping unit maps the spectral parameters, usually line spectral pairs (LSPs) or line spectral frequencies (LSFs), of the source codec, directly to the spectral parameters of the destination codec. A calibration factor is calculated and used to calibrate the excitation to account for the differences in the quantised spectral parameters of the source and destination codec. The excitation mapping unit takes CELP excitation parameters including pitch lag, adaptive codebook gain, fixed codebook gain and fixed codebook codevectors from the interpolator and maps these to encoded CELP excitation parameters according to the destination codec. FIG. 9 shows a mapping module which may be selected for mapping parameters of an active speech frame, e.g., mapping from Rate ½ or Rate 1 of EVRC to Rate ½ or Rate 1 of SMV. In this case, the input parameters to the excitation coding mapping unit are the adaptive codebook lag, adaptive codebook gain, fixed codebook codevector and fixed codebook gain of the source codec. The output parameters to the excitation coding mapping unit are the adaptive codebook lag, adaptive codebook gain, fixed codebook codevector and fixed codebook gain in the format of the destination codec. FIG. 10 shows a mapping module which may be selected for mapping parameters of a silence or noise-like speech frame, e.g., mapping from Rate ⅛ of EVRC to Rate ¼ or Rate ⅛ of SMV. In this case, the input parameters to the excitation coding mapping unit are typically the frame energy or subframe energies, and excitation shape. Not all excitation parameters shown in the figures may be present for a given codec or bit rate.


Linked to the excitation coding mapping unit is a mapping strategy decision unit, which controls the type of excitation mapping to be used. Several mapping approaches may be used, including those using direct mapping from source codec to destination codec without any further analysis or iterations, analysis in the excitation domain, analysis in the filtered excitation domain or a combination of these strategies, such as searching the adaptive codebook in the excitation space and fixed codebook in the filtered excitation space. The mapping strategy decision module determines which mapping strategy is to be applied. The decision may be based on available computational resources or minimum quality requirements and can change in a dynamic fashion.


Except for the direct mapping strategy, in which parameters are directly mapped from source codec format to destination codec format without any analysis, the excitation signal is reconstructed. Reconstruction of the excitation during active speech requires the interpolated excitation parameters of pitch delays, adaptive codebook gains, fixed codebook shapes, and fixed codebook gains. During silence or noise, the parameters required are the signal energy, signal shape if available, and a random noise generator. FIG. 11 shows a block diagram the decoding process performed in a RCELP-based voice decoder. In this figure, the linear prediction (LP) excitation is formed by combining the gain-scaled contributions of the adaptive and fixed codebooks, and then filtered by the speech synthesis filter and post-filter. In the transcoder architecture of the present invention, to reduce complexity and quality degradations, the final source codec decoder operations of filtering the LP excitation signal by the synthesis filter to convert to the speech domain and then post-filtering to mask quantization noise are not used. Similarly, the pre-processing operations in the encoder of the destination codec are not used. An example of a speech pre-processor is shown in FIG. 12. High-pass filtering is a common pre-processing step in existing CELP-based voice codecs, with the advanced steps of silence enhancement, noise suppression and adaptive tilt filtering being applied in more recent voice codecs. In the case where the source codec does not use noise suppression and the destination codec does use noise suppression, the transcoder architecture should provide noise suppression functionality.


Current variable-rate voice codecs applicable to the present invention include EVRC and SMV which are based on the Relaxed CELP (RCELP) principle. Typical excitation quantization in RCELP codecs is performed by the technique shown in FIG. 13 and FIG. 14. In this case, the target signal is modified weighted speech. The modification is performed to create a signal with a smooth interpolated pitch delay contour by time-warping or time-shifting pitch pulses. This allows for coarse pitch quantization. The adaptive codebook is mapped to the delay contour and then searched by gain-adjusting and filtering each candidate vector by the weighted synthesis filter and comparing the result to the target signal. Once the best adaptive codebook vector is found, its contribution is subtracted from the target, and the fixed codebook is searched in a similar manner. In the case where both source and destination codecs are based on the RCELP principle, the computationally expensive operation of detecting and shifting each pitch pulse in the encoder processing of the destination codec is not required. This is due to the fact that the reconstructed source excitation already follows the interpolated pitch track of the source codec. Hence, the target signal in the transcoder is not modified weighted speech, but simply the weighted speech, speech, weighted excitation, excitation, or calibrated excitation signal.



FIG. 15 shows a block diagram of an example of one mapping strategy of the transcoder between variable-rate voice codecs of the present invention. The procedure is outlined in FIG. 16. In this case, the mapping strategy chosen is a combination between analysis in the excitation domain and analysis in the filtered excitation domain. The target signal for the adaptive codebook search is the calibrated excitation signal. The search of the adaptive codebook is performed in the excitation domain. This reduces complexity as each candidate codevector does not need to be filtered with the weighted synthesis filter before it can be compared to a speech domain target signal. The initial estimate of the pitch lag is the pitch lag obtained from the interpolation module that has been interpolated to match the subframe size of the destination codec. The pitch is searched within a small interval of the initial pitch estimate, at the accuracy (integer or fractional pitch) required by the destination codec. The adaptive codebook gain is then determined for the best codevector and the adaptive codevector contribution is removed from the calibrated excitation. The result is filtered using a special weighting filter to produce the target signal for the fixed codebook search. The fixed codebook is then searched, either by a fast technique or by gain-adjusting and filtering candidate codevectors by the special weighting filter and comparing the result with the target. Fast search methods may be applied for both the adaptive and fixed codebook searches.


Another mapping strategy is to perform both the adaptive codebook and fixed codebook searches in the excitation domain. A further mapping strategy is to perform both the adaptive codebook and fixed codebook searches in the filtered excitation domain. Alternatively, parameters may be directly mapped from source to destination codec format without any searching. It is noted that any combinations of the above strategies may also be used. The best strategy in terms of both high quality and low complexity will depend on the source and destination codecs and bit rates.


A second-stage switching module links the interpolation and mapping module to the destination bitstream packing module. The destination bitstream packing module packs the destination CELP parameters in accordance with the destination codec standard. The parameters to be packed depend on the destination codec, the bit rate and frame type.


EVRCSMV TRANSCODING EXAMPLE

As an example, it is assumed that the source codec is the Enhanced Variable Rate Codec (EVRC) and the destination codec is the Selectable Mode Vocoder (SMV).


EVRC and SMV are both variable-rate codecs that determine the bit rate based on the characteristics of the input speech. These coders use Rate Set 1 of the Code Division Multiple Access communication standards IS-95 and cdma2000, which consists of the rates 8.55 kbit/s (Rate 1 or full Rate), 4.0 kbit/s (Rate ½ or half-rate), 2.0 kbit/s (Rate ¼ or quarter-rate) and 0.8 kbit/s (Rate ⅛ or eighth rate). EVRC uses Rate 1, Rate ½, and Rate ⅛; it does not use quarter-rate. SMV uses all four rates and also operates in one of six network controlled modes, Modes 0 to 6, which limits the bit rate during high traffic. Modes 4 and 5 are half-rate maximum modes. Depending on the mode of operation, different thresholds may be set to determine the rate usage percentages.


A diagram of the apparatus for transcoding from EVRC to SMV is shown in FIG. 17. The apparatus comprises an EVRC unpacking module, an intermediate parameters interpolation module, a smart SMV frame classification and rate determination module, several mapping modules to map parameters from all allowed rate and type transcoder transitions, and a SMV packet formation module. The inputs to the apparatus are the EVRC frame packets and SMV external commands (e.g. network-controlled mode, half-rate max flag), and the outputs are the SMV frame packets. Similarly, the apparatus for transcoding from SMV to EVRC is shown in FIG. 18. The apparatus comprises a SMV unpacking module, an intermediate parameters interpolation module, an EVRC rate determination module, several mapping modules to map parameters from all allowed rate and type transcoder transitions, and an EVRC packet formation module. The inputs to the apparatus are the SMV frame packets and EVRC external commands (e.g. half-rate max flag), and the outputs are the EVRC frame packets.


In transcoding from EVRC to SMV, the bitstream representing frames of data encoded according to EVRC is unpacked by a bitstream unpacking module. The actual parameters from the bitstream depend on the EVRC bit rate and include line spectral frequencies, spectral transition indicator, pitch delay, delta pitch delay, adaptive codebook gain, fixed codebook shapes, fixed codebook gains and frame energy. The unquantised parameters are passed to the intermediate parameters interpolation module.


The intermediate parameter interpolation module interpolates between the different subframe sizes of EVRC and SMV. EVRC has 3 subframes per frame, whereas SMV has 1, 2, 3, 4, or 10 subframes per frame depending on the bit rate and frame type. Depending on the parameter and coding strategy, subframe interpolation may or may not be required. FIG. 19 and FIG. 20 illustrate the frame and subframe sizes for the different rates and frame types of SMV and EVRC respectively. Since the frame size of both codecs is 20 ms and the sampling rate of both codecs is 8 kHz, no frame size or sampling rate interpolation is required. The output interpolated parameters, or if no interpolation was carried out, the EVRC CELP parameters, are passed to the smart frame classification and rate determination module and the selected of the mapping module.


The frame classification and rate determination module receives the EVRC CELP parameters, the EVRC bit rate, the SMV network-controlled mode and any other SMV external commands. The frame classification and rate determination module produces a frame class and rate decision for SMV based on these inputs. The frame classification and rate determination module comprises a classifier input parameter selector, for selecting which of the EVRC parameters will be used as inputs to the classification task, M sub-classifiers, buffers to store past input parameters and past output values and a final decision module. The sub-classifiers take as input the selected classification input parameters, the SMV network-controlled mode command, and past input and output values, and generate the frame class and rate decision. One sub-classifier may be used to determine the bit rate, and a second sub-classifier may be used to determine the frame class. The SMV frame class is either silence, noise-like, unvoiced, onset, non-stationary voiced or stationary voiced, and the SMV rate may be Rate 1, Rate ½, Rate ¼, or Rate ⅛. The SMV frame classification, using EVRC parameters, is performed according to a pre-defined configuration and classifier algorithm. The coefficients or rules of the classifier are determined during a prior EVRC-to-SMV classifier training or construction process. The frame classification and rate determination module includes a final decision module, that enforces all SMV rate transition rules to ensure illegal rate transitions are not allowed. For example, in SMV, a Rate 1 Type 1 cannot follow a Rate ⅛ frame. This frame classification and rate determination module replaces the SMV standard classifier, which requires a large amount of processing to derive the parameters and features required for classification. The SMV frame-processing functions are shown in FIG. 7, and the many steps of the SMV classification procedure are shown in FIG. 8. These functions are not necessary in the present invention as the already available EVRC CELP parameters are used as inputs to classifier module.


The intermediate parameters interpolation module and the SMV smart frame classification and rate determination module are linked to one of many interpolation and mapping modules by a switching module. EVRC has a single processing algorithm for each rate, whereas SMV has two possible processing algorithms for each of Rate 1 and Rate ½, and a single processing algorithm for each of Rate ¼ and Rate ⅛. The SMV frame type and bit rate determined by the frame classification and rate determination module control which interpolation and mapping module is to be chosen. For Rates 1 and ½ of SMV, the stationary voiced frame class uses subframe processing Type 1 and all other frame classes use subframe processing Type 0. As shown in FIG. 17, there are interpolation and mapping modules for each allowed EVRC rate and SMV type and rate combination. For example, interpolation and mapping modules include:

    • EVRC Rate 1 to SMV Rate 1 Type 0
    • EVRC Rate 1 to SMV Rate 1 Type 1
    • EVRC Rate ½ to SMV Rate 1 Type 0
    • EVRC Rate ½ to SMV Rate 1 Type 1
    • EVRC Rate ½ to SMV Rate ½ Type 0
    • EVRC Rate ½ to SMV Rate ½ Type 1


      and so on.


For the EVRC-to-SMV transcoder, interpolation and mapping modules include:

    • SMV Rate 1 Type 0 to EVRC Rate 1
    • SMV Rate 1 Type 1 to EVRC Rate 1
    • SMV Rate 1 Type 0 to EVRC Rate ½
    • SMV Rate 1 Type 1 to EVRC Rate ½
    • SMV Rate ½ Type 0 to EVRC Rate ½
    • SMV Rate ½ Type 1 to EVRC Rate ½


      and so on.


Each mapping module comprises a speech spectral parameter mapping unit, an excitation mapping unit, and a mapping strategy decision unit. The speech spectral parameter mapping unit maps the EVRC line spectral frequencies directly to SMV line spectral frequencies. This occurs for all source EVRC bit rates. The parameters passed to the excitation mapping unit depend on the source EVRC bit rate. For EVRC Rates 1 and ½, the input CELP excitation parameters are the pitch lag, delta pitch lag (Rate 1 only), adaptive codebook gain, fixed codevectors, and fixed codebook gain. For EVRC Rate ⅛, typically inactive frames, the input excitation parameter is the frame energy. The excitation parameters are mapped to SMV excitation parameters, depending on the selected mapping module and mapping strategy. The mapping strategy decision module controls the mapping strategy to be used. In this example, the mapping strategy for active speech is to perform analysis in the excitation domain.


Using the EVRC excitation parameters of pitch delay, delta pitch delay, adaptive codebook gain, fixed codevectors, fixed codebook gains and frame energy, the excitation signal is reconstructed. To reduce complexity and quality degradations, the EVRC decoder operations of filtering the excitation signal by the synthesis filter to convert to the speech domain and post-filtering are not used. Similarly, the pre-processing operations of SMV are not used. These include silence enhancement, high-pass filtering, noise suppression and adaptive tilt filtering. Since the EVRC encoder contains noise-suppression operations, the transcoder does not include further noise-suppression functions.


In RCELP-based coders like EVRC and SMV, a fundamental part of the signal processing is in the modification of the speech to match an interpolated pitch track. This saves quantisation bits required for pitch representation, but involves a large amount of computation as pitch pulses must be detected and individually shifted or time-warped. For the EVRC-to-SMV transcoding example, the signal modification functions within the SMV encoder may be bypassed. This is due to the fact that similar signal modification has already been performed in the EVRC encoder. Hence the reconstructed excitation signal already possesses a smooth pitch characteristic and is already in a form amenable to efficient quantization. The target signal for the adaptive codebook search is thus the excitation signal, without pitch modifications, that has been calibrated to account for differences between the quantized EVRC LSFs and the quantized SMV LSFs.


Mapping of excitation parameters is performed as described in the previous section. Simplifications can be made to the fixed codebook search, as SMV contains multiple sub-codebooks for each rate and frame type. Since the EVRC bit rate, fixed codevector and fixed codebook structure are known, it may not be necessary to search all sub-codebooks to best match target excitation. Instead, each mapping module may contain a single fixed sub-codebook or a subset of the fixed sub-codebooks to reduce computational complexity.


A second-stage switching module links the interpolation and mapping module to the SMV bitstream packing module. The bitstream is packed according to the SMV frame type and bit rate. One SMV output frame is produced for each EVRC input frame.


OTHER CELP TRANSCODERS

The invention of method and apparatus for voice transcoding between variable rate coders described in this document is generic to all linear prediction-based voice codecs, and applies to any voice transcoders between the existing codecs G.723.1, GSM-AMR, EVRC, G.728, G.729, G.729A, QCELP, MPEG-4 CELP, SMV, AMR-WB, VMR and all other future voice codecs. The invention applies especially to those transcoders, in which the destination coder makes use of rate determination and/or frame classification information.


The previous description of the preferred embodiment is provided to enable any person skilled in the art to make or use the present invention. The various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without the use of the inventive faculty. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims
  • 1. An apparatus for converting a bitstream representing frames of data encoded according to a first voice compression standard to a bitstream representing frames of data according to a second voice compression standard and/or within a single standard but to a different mode, comprising: a bitstream unpacking module for extracting one or more CELP parameters from a first voice codec bitstream frame; a parameter interpolator module coupled to the bitstream unpacking module, the parameter interpolator module interpolates between different frame sizes, subframe sizes, and/or sampling rates of a first voice codec and a second voice codec; a frame classification and rate determination module coupled to the parameter interpolator module, the frame classification and rate determination module produces a frame class and rate decision based one or more inputs from CELP parameters of the first voice codec, a type of bitstream frames of the first voice codec, and one or more external control commands of the second voice codec; a first-stage switching module coupled to the parameter interpolator module and the frame classification and rate determination module, the first-stage switching module being functioned to link the parameter interpolator module to a mapping module and being controlled by one or more outputs of the frame classification and rate determination module; a mapping module coupled to the parameter interpolator module through a switching module, the mapping module being adapted to map the one or more CELP parameters from the first voice codec to one or more CELP parameters of the second voice codec; a second-stage switching module coupled to the mapping module, the second-stage switching module being functioned to link the mapping module and a destination bitstream packing module and being controlled by one or more outputs of the frame classification and rate determination module; a destination bitstream packing module coupled to a mapping module through the second-stage switching module, the destination bitstream packing module being adapted to construct at least one destination output CELP frame based upon at least one CELP parameter from the second voice codec; and a controller coupled to the destination bitstream packing module, the interpolator module, the mapping module, the frame classification and rate determination module and the bitstream unpacking module, whereupon the controller is adapted to oversee the operation of one or more of the modules, to receive instructions from one or more external applications, and to provide status information to one or more external applications.
  • 2. The apparatus of claim 1 wherein the controller is a single controller or multiple controllers.
  • 3. The apparatus of claim 1 wherein the interpolator module, the mapping module, the first stage switching module, the second switching module, and the destination bitstream packing module are combined into a single module.
  • 4. The apparatus of claim 1 wherein the mapping module is a single module or multiple modules.
  • 5. The apparatus of claim 1 wherein the frame classification and rate determination module is a single module or multiple modules.
  • 6. The apparatus of claim 1, wherein the bitstream unpacking module comprises: a bitstream processor, the bitstream processor extracts information in a first format from one or more compressed voice parameters in a first voice codec input frame; an LSP decoding module coupled to the bitstream processor, the LSP decoding module outputs one or more LSP coefficients using at least the information from the compressed input frame of the first voice codec; a decoding module coupled to the bitstream processor, the decoding module decodes the pitch information to output a pitch lag parameter and a pitch gain parameter from the compressed input frame of the first voice codec; a fixed codebook decoding module coupled to the bitstream processor, the fixed codebook decoding module decodes the fixed codebook gain and fixed codevector indices to output a gain-adjusted fixed codebook vector; an adaptive codeword decoding module coupled to the bitstream processor, the adaptive codeword decoding module decodes the pitch lag and pitch gain information to output an gain-adjusted adaptive codebook contribution vector; an energy decoding module coupled to the bitstream processor, the frame energy decoding module decodes the frame energy or subframe energies; and a shape decoding module coupled to the bitstream processor, the shape decoding module decodes the excitation shape.
  • 7. The apparatus of claim 1, wherein the interpolator module comprises an LSP process, the LSP process converts one or more LSP coefficients of a source codec into one or more LSP coefficients of a destination codec when the source codec and destination codec have a different subframe size and/or frame size; an adaptive codebook process, the adaptive codebook process converts a pitch lag and a pitch gain from the source codec into a preliminary estimate of the pitch lag and pitch gain of the destination codec when said source codec and destination codec have a different subframe size and/or frame size; a fixed codebook process, the fixed codebook process converts a fixed codebook gain or frame energy or subframe energy from the source codec into a preliminary estimate of the fixed codebook gain or frame energy or subframe energy of the destination codec when said source codec and destination codec have a different subframe size and/or frame size; and a CELP parameter buffer, the CELP parameter buffer stores one or more CELP parameters that are not interpolated until a next first voice compression codec and a next second voice compression codec have a different subframe size and/or frame size.
  • 8. The apparatus of claim 1, wherein the frame classification and rate determination module comprises: A classifier input parameter selector, for selecting which inputs will be used in the classification task; M sub-classifier modules which take as input the selected classification input parameters and output the frame class and rate decision; buffers to store past input parameters and past output values; and a final decision module that takes inputs from external commands and the output of the M sub-classifier module, and generates the frame class and rate decision.
  • 9. The apparatus of claim 1, wherein the mapping module comprises: a mapping and tuning module, the mapping and tuning module outputs the one or more destination voice compression parameters; and a decision module, the decision module selects a voice compression parameter mapping strategy based upon a plurality of strategies.
  • 10. The apparatus of claim 9 wherein the plurality of strategies comprises: CELP parameter direct space mapping; analysis in excitation space analysis in filtered excitation space; and a combination of analysis in excitation space and filtered excitation space.
  • 11. The apparatus of claim 9, wherein the mapping and tuning module comprises: an spectral parameter mapping module that converts the source spectral parameters to encoded destination spectral parameters; a excitation mapping unit that takes source CELP excitation parameters including pitch lag, gain, and excitation vectors from the interpolation module to get encoded destination CELP excitation parameters.
  • 12. The apparatus of claim 11, wherein the excitation mapping unit comprises: a module of CELP parameters direct space mapping that produces encoded destination CELP parameters using analytical formula without any analysis or iterations; an excitation generator, the excitation generator outputs an excitation vector using at least the fixed codebook vector and the adaptive codebook vector, or at least the frame or subframe energy and a random noise generator, or at least the frame or subframe energy, shaping filter(s) and a random noise generator; a module of excitation domain mapping that produces encoded destination CELP parameters by searching in the excitation space; a module of filtered excitation domain mapping that produces encoded destination CELP parameters by searching adaptive closed-loop in filtered excitation space and fixed-codebook in filtered excitation space; a module of combined excitation domain mapping and filtered excitation domain mapping that produces encoded destination CELP parameters by searching some parameters in excitation space and some parameters in filtered excitation space.
  • 13. The apparatus of claim 11 wherein the excitation mapping unit may or may not include the process of modifying the signal to match an interpolated pitch delay contour.
  • 14. The apparatus of claim 1, wherein the destination codec bitstream packing module comprises a plurality of frame packing facilities, each of the facilities being capable of adapting to a preselected application from a plurality of applications for a selected destination CELP coder, the selected destination CELP coder being one of a plurality of CELP coders.
  • 15. The apparatus of claim 1, wherein the controller comprises: a control unit which receives external instructions and controls each of the signal processing modules; a status unit which sends transcoding information such as frame counts, error logs and other information to external modules upon request.
  • 16. The apparatus of claim 7, wherein the interpolation module can select either linear interpolation or non-linear interpolation.
  • 17. The apparatus of claim 7, wherein the CELP parameter buffer comprises: an excitation vector buffer, the excitation vector buffer stores the reconstructed excitation vector that is to be mapped in the next subframe or frame; an LSP coefficient buffer that stores the LSP coefficients before or after interpolation that are to be mapped in the next subframe or frame; a buffer for other CELP parameters that stores the pitch lag, pitch gain, codebook gain and index before or after interpolation that are to be mapped in the next subframe or frame.
  • 18. A method for transcoding a compressed voice bitstream from source codec to variable-rate destination codec, comprising: processing a source codec input bitstream to unpack at least one or more voice parameters from an input bitstream in the case of CELP-based codecs the voice parameters include at least LSPs, pitch lag, adaptive codebook gain, fixed codebook gain, and fixed codevectors; classifying a frame type of a destination codec from the one or more input parameters of the source codec; determining the rate of the destination codec output from one or more input parameters of the source codec and external control commands; interpolating one or more of a plurality of unpacked voice parameters from a source codec format to a destination codec format if a difference exists between the frame size, subframe size, or sampling rate of the destination codec and the frame size, subframe size, or sampling rate of the source codec; mapping the source CELP parameters to destination CELP parameters using a selected mapping strategy; encoding the one or more CELP parameters for the destination codec; and processing a destination bitstream by packing the one or more voice parameters for the destination codec.
  • 19. The method of claim 18, wherein the processing of the source codec input packet comprises: converting an input bitstream frame into information associated with one or more CELP parameters; decoding the information into one or more CELP parameters; outputting the unquantized parameters to the interpolator.
  • 20. The method of claim 18, wherein classifying the frame type of the destination codec comprises the steps of: selecting classifier input parameters from one or more source codec CELP parameters and the source bit rate through a selection module; using one or more external commands; using previously stored state information; performing frame classification according to pre-defined coefficients or rules; and updating and storing the states for use in classifying future frames.
  • 21. The method of claim 18, wherein determining the rate of a destination codec comprises the steps of: selecting classifier input parameters from one or more source codec CELP parameters and the source bit rate through a selection module; using one or more external commands; using previously stored state information; performing rate determination according to pre-defined coefficients or rules; and updating the stored states for use in determining the rate of future frames.
  • 22. The method of claim 20 wherein the pre-defined coefficients for frame classification are predetermined during a setup training process or construction process.
  • 23. The method of claim 21 wherein the pre-defined coefficients for rate determination are predetermined during a setup training process or construction process.
  • 24. The method of claim 18, wherein interpolating parameters comprises the steps of: interpolating one or more of the LSP coefficients from the source codec to one or more LSP coefficients for the destination codec; and interpolating CELP parameters other than the LSP coefficients from the source codec to CELP parameters for the destination codec.
  • 25. The method of claim 24, further comprising: converting the one or more LSP coefficients using a linear transform process.
  • 26. The method of claim 18, wherein mapping the parameters further comprises the steps of: mapping the source interpolated LSP coefficients to destination LSP coefficients and quantizing the destination LSP coefficients; mapping the source interpolated excitation parameters to destination excitation parameters and quantizing the destination excitation parameters; and selecting one of a plurality of CELP mapping strategies according to the control signal from the decision module.
  • 27. The method of claim 26, wherein mapping the source interpolated excitation parameters further comprises the steps of: reconstructing the source excitation signal if required by the mapping strategy; filtering the reconstructed source excitation signal with a filter that accounts for the differences between the quantized destination LP coefficients and quantised source LP coefficients to form the calibrated excitation vector; transferring the calibrated excitation vector to another process; and transferring the source excitation vector to the encoding process if the excitation vector does not require a calibration.
  • 28. The method of claim 26 wherein the plurality of CELP mapping strategies includes: direct space mapping of the CELP parameters; analysis in the excitation space; analysis in the filtered excitation space; and analysis in the combined excitation space and filtered excitation space.
  • 29. A method of claim 27 where the reconstructed excitation signal may or may not be modified to match an interpolated delay contour.
  • 30. The method of claim 28, wherein the step of direct space mapping of CELP parameters comprises the steps of: encoding the pitch lag from the interpolated pitch lag parameter; encoding the pitch gain from the interpolated pitch gain parameter; encoding the index of the fixed codebook from analytical forms; and encoding the gain from the fixed codebook gain parameter.
  • 31. The method of claim 28, wherein the step of analysis in the excitation domain comprises the steps of: selecting the pitch lag from interpolated pitch lag parameter as an initial value; searching the pitch lag in the excitation space; searching the pitch gain in the excitation space; constructing the target signal for the fixed codebook search; searching the fixed codebook index in the excitation space; searching the fixed codebook gain in the excitation space; and updating the previous excitation vector.
  • 32. The method of claim 28, wherein the step of analysis in the filtered excitation space comprises the steps of: selecting the pitch lag from the interpolated pitch lag parameter as an initial value; searching the pitch lag in the filtered excitation space; searching the pitch gain in the filtered excitation space; constructing the target signal for fixed codebook search; searching the fixed codebook index in the filtered excitation space; searching the fixed codebook gain in the filtered excitation space; and updating the previous excitation vector.
  • 33. The method of claim 28, wherein the step of analysis in the combined excitation space and filtered excitation space comprises the steps of: selecting the pitch lag from the interpolated pitch lag parameter as an initial value; searching the pitch lag in the excitation space; searching the pitch gain in the excitation space; constructing the target signal for fixed codebook search; searching the fixed codebook index in the filtered excitation space; searching the fixed codebook gain in the filtered excitation space; and updating the previous excitation vector.
  • 34. The method of claim 28, wherein the excitation mapping strategy is not only restricted to the above four strategies, but a combination of these strategies can be selected as a new mapping strategy.
  • 35. The excitation mapping is performed without going back to the speech signal domain.
  • 36. As in claim 1, with the addition of a silence frame transcoding unit which can perform rapid conversion of silence frames from one speech coding standard to another. This involves mapping the comfort noise parameters.
  • 37. As in claim 1, but where the quick mapping and tuning engine consists of a voice activity detector for generating silence frames. The voice activity detector makes its speech/silence decision based on the parameters in the CELP space.
  • 38. As in claim 1, but with the addition of a mechanism for dynamically changing the excitation mapping strategy used, thereby providing a mechanism to adapt to available computational resources and allow for graceful quality degradation under load.
  • 39. A method for processing CELP-based compressed voice bitstreams from source codec to destination codec formats, the method comprising: transferring a control signal from a plurality of control signals from an application process; selecting one CELP mapping strategy from a plurality of different CELP mapping strategies based upon at least the control signal from the application; and performing a mapping process using the selected CELP mapping strategies to map one or more CELP parameters from a source codec format to one or more CELP parameters of a destination codec format.
  • 40. The method of claim 39 wherein the plurality of CELP mapping strategies includes: CELP parameters direct space mapping; or analysis in the excitation domain; or analysis in the filtered excitation domain.
  • 41. The method of claim 39 wherein the selection of the CELP mapping strategy for an application is predetermined during a setup process or construction process.
  • 42. The method of claim 39 further comprising receiving the control signal at a switching module, the switching module being coupled to each of the plurality of mapping strategies.
  • 43. The method of claim 39 wherein the control signal is provided based upon the computational resource characteristics of the selected CELP mapping strategy.
  • 44. The method of claim 39 wherein one or more of the plurality of mapping strategies is provided in a library in memory.
  • 45. The method of claim 39 further comprising: encoding one or more CELP parameters for the destination codec; and processing a destination CELP bitstream by packing one or more CELP parameters for the destination codec.
  • 46. The method of claim 39 further comprising transferring the packed destination CELP bitstream to the destination codec.
  • 47. A system for processing CELP-based compressed voice bitstreams from source codec to destination codec formats, the system comprising: one or more codes for receiving a control signal from a plurality of control signals from an application process; one or more codes for selecting one CELP mapping strategy from a plurality of different CELP mapping strategies based upon at least the control signal from the application; and one or more codes for performing a mapping process using the selected CELP mapping strategies to map one or more CELP parameters from a source codec format to one or more CELP parameters of a destination codec format.
  • 48. The system of claim 47 wherein the plurality of CELP mapping strategies includes: one or more codes directed to CELP parameters direct space mapping; or one or more codes directed to analysis in excitation space; or one or more codes directed to analysis in filtered excitation space.
  • 49. The system of claim 47 wherein the selected CELP mapping strategy is for a predetermined application.
  • 50. The system of claim 47 further comprising one or more codes directed to receiving the control signal which is provided to a decision module, the decision module being coupled to each of a plurality of mapping strategies.
  • 51. The system of claim 47 wherein the control signal is provided based upon the computational resource characteristics of the selected CELP mapping strategy.
  • 52. The system of claim 47 wherein one or more codes directed to the plurality of mapping strategies are provided in a library in memory.
  • 53. The system of claim 47 further comprising one or more codes directed to encoding one or more CELP parameters for the destination codec; and one or more codes directed to processing a destination bitstream by packing the one or more CELP parameters for the destination codec.
  • 54. The system of claim 45 further comprising one or more codes directed to transferring the destination CELP bitstream to the destination codec.
  • 55. The system of claim 45 further comprising one or more codes directed to transferring the destination CELP bitstream to a storage location.