EP4695797A1 - Quantification optimisée d'un espace latent en codage audio neuronal - Google Patents

Quantification optimisée d'un espace latent en codage audio neuronal

Info

Publication number
EP4695797A1
EP4695797A1 EP24718187.8A EP24718187A EP4695797A1 EP 4695797 A1 EP4695797 A1 EP 4695797A1 EP 24718187 A EP24718187 A EP 24718187A EP 4695797 A1 EP4695797 A1 EP 4695797A1
Authority
EP
European Patent Office
Prior art keywords
vector
latent
quantization
latent vector
coding
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
Application number
EP24718187.8A
Other languages
German (de)
English (en)
Inventor
Thomas Muller
Stéphane RAGOT
Pierrick Philippe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Publication of EP4695797A1 publication Critical patent/EP4695797A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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
    • G10L2019/0001Codebooks

Definitions

  • the present invention relates to the general field of coding and decoding of audio signals.
  • the invention relates in particular to the optimized quantization of a latent space (or signal transformed by a neural network) for the coding and decoding of an audio signal.
  • the general objective is to seek a representation of the signal that is as suitable as possible for coding at the lowest possible bitrate for a given quality or conversely with the best possible quality at a given bitrate, taking into account constraints such as complexity, amount of storage or algorithmic delay.
  • Speech signal coding dominated by a temporal approach based on linear prediction (short-term and long-term), in order to model the speech signal – the unmodeled part (innovation or prediction residue) is coded in addition to the model parameters. Auditory perception is generally taken into account by the use of perceptual weighting.
  • the CELP model (for “Code Excited linear Prediction”) remains the reference paradigm for good quality “conventional” speech coding at low bitrate.
  • Speech coding and audio coding then converged with “universal” coding models, in particular by approaches combining time (CELP) and frequency (MDCT).
  • CELP time
  • MDCT frequency
  • a peculiarity of neural methods applied to speech and audio is that they usually operate directly in the time domain (on the waveform). However, models are also found in the frequency domain.
  • Neural audio coding has reached a sufficient level of maturity for neural codecs to be deployed in conversational applications.
  • the coding (block 100) of a signal frame of 320 samples of the input signal x sampled at a frequency of 24 kHz is broken down into two blocks:
  • the decoding (block 110) which reconstructs the audio signal is broken down into two blocks:
  • synthesis part by a synthesis neural network (block 112).
  • the architecture of this part is symmetrical (in reverse order) to the analysis part, with transposed convolutions instead of convolutions; this architecture is described later with reference to figures 9 and 10.
  • the synthesis generates an approximate value of the signal x called .
  • Encodec (blocks 100 and 110) is given in: https:/github.com/facebookresearch/encodec
  • the quantization used in EnCodec is a multi-stage vector quantization, called “Residual VQ” or RVQ (for "Residual Vector Quantization” in English).
  • the RVQ quantization dictionaries are learned and stored; the selected codeword is updated with a moving average (with a forgetting factor) and unused entries are replaced by candidates from the current batch of the training base.
  • Quantization is bypassed in the gradient backpropagation phase for the analysis/synthesis networks.
  • a variable number of stages (called “residual stages”) are selected during training to train a single model representing multiple bit rates.
  • the codec also includes additional metric calculation blocks (block 121) and a complementary neural network called “discriminator" (block 120) according to the principle of Generative Adversarial Networks (GANs), to obtain different cost functions for training.
  • GANs Generative Adversarial Networks
  • the indices i k of each stage are multiplexed to form the bit stream I of the current frame (block 200).
  • the number of stages K is determined as a function of the rate R.
  • the bitstream I is demultiplexed and these indices are separated (block 300), and each stage (blocks 301, 302, ... 30K) provides the code word stored and decoded by reading in the associated dictionary C k (blocks 001 to 00K), and all the code words thus decoded are successively added (blocks 352, ..., 35K) to obtain the decoded signal of the latent space in the current frame.
  • the RVQ-type latent space quantization method has some advantages: the implicit structures of the latent space are learned implicitly (without being explicitly extracted) by vector quantization, the multi-stage approach allows hierarchical (scalable) coding with improvement stages whose number depends on the target throughput.
  • the complexity of the nearest neighbor search (which must be performed exhaustively by minimizing the squared error between the input e j and all the code words c k (i)) is significant for the 10-bit rate, and it increases linearly with the number of stages and the rate.
  • the invention improves the state of the art.
  • the invention relates to a method for coding an audio signal comprising an analysis of the audio signal by an analysis neural network to obtain a latent representation of the audio signal and in which the coding of the latent representation is carried out according to the following steps: - application to a latent vector representative of the latent representation of the audio signal or to a preprocessed latent vector, of a linear transform, to obtain a transformed latent vector; - quantification of the transformed latent vector obtained.
  • the preprocessed latent vector is obtained by subtracting from the latent vector a correction vector representing an average value of the latent vector or a latent vector resulting from at least a first direct quantization.
  • the correction vector allows the latent vector to be adapted to the implemented transform, by removing average values which could interfere with the transformed vector obtained and make the transformation less optimal.
  • the preprocessed latent vector is further obtained after scaling the components of the preprocessed latent vector.
  • This scaling allows for further adaptation of the latent vector before the transform step.
  • the transform further comprises a reduction of the components to be quantified by removing a portion of the components of the latent vector.
  • an order of importance of the parameters of the transform makes it possible to truncate part of the components of the latent vector to be transformed and thus reduce the number of components to be quantified, without degrading the quantification quality.
  • a quantization index corresponding to the bit budget used in the at least one first direct quantization, is encoded.
  • This index allows you to adapt the remaining coding rate.
  • the quantization of the transformed latent vector is performed by a gain-shape type vector quantization.
  • the quantization of the transformed latent vector is performed by at least one vector quantization step using a transformed quantization dictionary.
  • This quantization mode makes it possible to make the coder and decoder according to the invention compatible with the state-of-the-art EnCodec type coder or decoder.
  • the invention also relates to a method for decoding an audio signal comprising a synthesis, by a synthesis neural network, of a decoded latent vector, to obtain a decoded audio signal and in which the decoding of the latent vector is carried out according to the following steps: - reception of a binary train comprising at least quantization indices of a transformed latent vector; - decoding of the transformed latent vector from the received quantization indices; - application to the decoded transformed latent vector of a linear transform to obtain a decoded latent vector.
  • the decoded latent vector is an intermediate latent vector to which is added a correction vector representing an average value of the latent vector or a decoded latent vector resulting from at least a first direct inverse quantization, to obtain the decoded latent vector.
  • the decoding method further comprises a step of adding additional components to the decoded latent vector. This fills in the elements that were truncated during coding.
  • the invention relates to a coding device comprising a processing circuit for implementing the steps of the coding method as described above.
  • the invention also relates to a decoding device comprising a processing circuit for implementing the steps of the decoding method as described above.
  • the invention relates to a computer program comprising instructions for implementing the coding or decoding methods as described above, when they are executed by a processor.
  • the invention relates to a storage medium, readable by a processor, storing a computer program comprising instructions for executing the coding method or the decoding method described above.
  • FIG. 1 illustrates a coding device and a coding method according to a first embodiment of the invention.
  • FIG. 1 illustrates a decoding device and a decoding method according to a first embodiment of the invention.
  • FIG. 1 illustrates a coding device and a coding method according to a second embodiment of the invention.
  • FIG. 1 illustrates a decoding device as well as a decoding method according to a second embodiment of the invention.
  • FIG. 1 illustrates exemplary structural embodiments of an encoding device and a decoding device according to one embodiment of the invention.
  • a first step E401 the audio signal x is analyzed by an analysis neural network as described with reference to the (block 101) to obtain a latent representation z of this audio signal.
  • the architecture of this neural network analysis step may be like that described with reference to the and detailed in Figures 9 and 10.
  • the example implementation of block 101 from EnCodec may be replaced by other neural network architectures (for example, analysis part of the SoundStream codec, an auto-encoder, etc.).
  • the resulting latent space is represented here, in the described embodiment, in vector form and represented by a latent vector z.
  • This latent space can also be represented by a set of latent vectors, in the case of a matrix representation for example.
  • a latent vector for example the processing can be done on the set of latent vectors, for example by successive processing of the vectors or by transforming the matrix into the form of a one-dimensional vector by concatenation of rows or columns.
  • a pre-processing of the latent vector can be implemented in step E403.
  • a correction vector is obtained in E402 and is subtracted from the latent vector z in E403 to obtain a preprocessed latent vector z'.
  • This correction vector can be fixed or adaptive. It represents an average value of the latent vector (obtained from values previously stored in memory (Inf)) or a latent vector resulting from at least a first direct quantization.
  • This correction of the latent vector is implemented to adapt the latent vector to the transform implemented in step E404. In certain cases, this step may not be implemented and the transform is then applied to the unmodified latent vector.
  • step E404 a linear transform is applied either to the non-preprocessed latent vector z or to the latent vector preprocessed and thus modified according to step E403.
  • a transformed latent vector y is obtained.
  • step E405 a quantification of this transformed latent vector is implemented.
  • a binary train I comprising quantization indices ((i 1 , i 2 ,...) or (m,b)) of the transformed latent vector are obtained, depending on the quantization method implemented.
  • a step E411 of decoding a transformed latent vector ( ) is implemented from quantization indices ((i 1 , i 2 ,...) or (m,b)) of the transformed latent vector received from a binary train I. Exemplary embodiments will be described with reference to figures 6 and 8.
  • step E412 a linear transform is applied to the decoded transformed latent vector to obtain a decoded latent vector .
  • a step of modification of the decoded latent vector is carried out in E414 by combining the decoded latent vector , then intermediate and a correction vector obtained in step E413 to form a decoded latent vector .
  • step E415 a neural network synthesis as described with reference to FIG. 1 (block 112) is performed on the decoded latent vector to obtain the decoded audio signal.
  • block 112 from EnCodec may be replaced by other neural network architectures (for example synthesis part of the SoundStream codec, an auto-encoder, etc.).
  • a coding device shows in particular a coding module (500) of a latent representation (or latent space) included in an audio signal coder as described with reference to the (block 100).
  • methods other than the EnCodec analysis neural network may be used to obtain the latent space.
  • the values of L and D may be different and vary from one frame to another.
  • the latent space quantization/coding block (block 102) of the is replaced by the latent space coding module (block 500) now described.
  • This block 500 therefore receives as input a latent representation z from the neural network analysis module (block 101 of the ).
  • latent space or “latent representation” will designate the same representation in the form of a set of vectors z, or to simplify a latent vector z, that is to say a representation of the audio signal comprising a plurality of variable data (also called latent variables), discrete or not.
  • the dimensions of the input of this coding module are here denoted [D,T] where D is the dimension of the latent space in each frame and T is the number of frames.
  • the latent representation is in vector form and represented by a latent vector z of dimension [D,1].
  • the latent space is not in vector form it can, for example, be in matrix form, then a conversion into vector form can be provided.
  • the coding method according to the invention consists of transforming the latent space so that the different components of the latent space are as uncorrelated as possible.
  • a modified latent vector is obtained by subtracting from the latent vector z, in block 512, a correction vector from block 510 which uses data stored in block 540; it is a vector of dimension [D,1] of the latent variables.
  • the vector corresponds to the (stationary) value of z when the encoder input x is a silent signal (with zero values or a low random noise such as background noise from the sound capture chain or "idle noise" in English).
  • block 540 directly stores this predetermined vector and block 510 only reads this vector.
  • the vector can be taken as the mean (or centroid) of a quantization dictionary previously learned and stored as the C1 dictionary (block 001) for the codec described with reference to figures 2 and 3.
  • This quantization dictionary C1 is stored in memory in block 540 or more advantageously only the centroid is stored from this dictionary.
  • determining the vector is done as follows:
  • the dictionaries of the following stages can be included, for example in the case of the first 2 dictionaries C 1 and C 2 (blocks 001 and 002):
  • the quantization dictionaries C1 and C2 are stored in memory in block 540 or, more advantageously, only the centroid is stored. from these 2 dictionaries.
  • blocks 510 and 512 The purpose of blocks 510 and 512 is to adapt the latent vector z before applying the transform T of block 513. To do this, we seek to remove a component based on an average of the latent space. Without this removal, the existence of this average value could make the transformation to follow in 513 less optimal and could interfere with the transformed vector obtained.
  • This vector is here defined as fixed and no additional information needs to be transmitted.
  • Block 513 then performs a linear transform, for example of the PCA/KLT type, “PCA” (for “Principal Component Analysis”) designating a principal component analysis and “KLT” (for “Karhunen Loeve Transform”) designating a Karhunen Loeve transform.
  • PCA Principal Component Analysis
  • KLT for “Karhunen Loeve Transform”
  • KLT Karhunen Loeve transformation
  • the matrix contains the eigenvectors (columns) of , such as
  • the KLT can be seen as a change of basis, because the product expresses the vector in the basis given by the eigenvectors.
  • the KLT allows to decorrelate the components of ; the variances of the transformed vector are the eigenvalues of .
  • PCA Principal component analysis
  • Principal component analysis is a dimensionality reduction technique that produces orthogonal variables and maximizes the variance of the variables after projection (or equivalently minimizes the reconstruction error).
  • the eigenvalue decomposition of in the form allows to calculate the principal components: .
  • PCA is a matrix transformation which projects the data into a new base to maximize the variance of the variables after projection.
  • PCA can also be obtained from a singular value decomposition (SVD) of the signal put in the form of a matrix of size D x K.
  • SVD singular value decomposition
  • block 513 implements a linear transformation step of the modified latent vector z' by applying a rotation matrix U of size DxD defined below (precalculated and stored in memory in 533) and a truncation operation, to obtain a transformed latent vector y such that:
  • trunc(.) denotes the truncation operation which retains only the first D T components.
  • the transformation step (block 513) does not require any bit budget.
  • the covariance matrix can be replaced by a correlation matrix by including a pre-normalization of the D different components by the standard deviation which gives a correlation matrix.
  • the rotation matrix U is pre-computed and obtained from at least one of the quantization dictionaries RVQ (block 001).
  • the covariance matrix R of the first dictionary C 1 (centered) is obtained, for example as follows:
  • an audio database defining a set of input frames of the signal x may be used and the sequence of values of the signal z' will be recorded to determine R as the covariance (or correlation) matrix of this signal z'.
  • This matrix R does not need to be stored, it only serves as intermediate information to determine the linear transform to be applied subsequently to the inference step according to the invention.
  • the eigenvalues are ordered in descending order with .
  • this property by using for example a singular value decomposition (SVD) on the matrix R or by sorting the obtained eigenvalues and reordering the matrix U .
  • SVD singular value decomposition
  • the RVQ quantization is modified by exploiting the decorrelation of the transformed latent space from z to y .
  • the predefined dictionaries C 1 , C 2 , ..., C K of different stages can be replaced by transformed dictionaries C' 1 , C' 2 , ..., C' K on which a truncation of the latent space can be performed.
  • the transform U having been performed according to an order of importance of the eigenvalues of the transform matrix, the resulting components are also ordered by order of importance, which makes it possible to truncate a part of them and to represent only the remaining part without significantly degrading the quantization quality.
  • the new quantification dictionaries are defined as follows:
  • trunc(.) denotes the truncation operation which retains only the first D T components.
  • the transformed latent space is quantified by a stage-wise RVQ quantization, by the modules 501, 502, .., 50k and the modules 551, 552, ..., corresponding to the quantization modules 201, 202, ..., 20k and 251, 252, .., described with reference to the using the transformed quantization dictionaries C' 1, C' 2 , ..., C' K , stored in memory in blocks 1001, 1002, ..., 100K.
  • the different binary information of the RVQ quantization (i 1 , i 2 , ...,i k ), obtained at the end of the different RVQ quantization stages as described above, are multiplexed in the block 530. It will be noted that the invention does not change the order of the code words, thus the indices i 1 , i 2 , ...,i k according to the coding in 500 are decodable by the existing RVQ decoder such as EnCodec in 111.
  • the advantage of the first embodiment of the invention is that the complexity of searching in successive dictionaries and storage can be reduced approximately by a factor of D T /D, i.e. 80/128 in the example given here.
  • the performance of RVQ quantization remains identical to that of the state of the art.
  • the C' k dictionaries will be defined based on the predefined C k dictionaries.
  • This figure shows in particular a decoding module (600) of a latent representation (or latent space) included in an audio signal decoder as described with reference to the (block 110).
  • the latent space decoding block (block 111) of the is replaced by the latent space decoding module (block 600) now described.
  • the bit stream I received for the current frame is demultiplexed (block 630).
  • the indices actually correspond to the RVQ quantization indices, however the original RVQ quantization dictionaries C 1 , C 2 , ..., C K are replaced by dictionaries C' 1 , C' 2 , ..., C' K of lower dimension D T , as in the coder described in .
  • a decoded transformed latent representation is thus obtained at the end of the various inverse quantization stages 1 to K comprising blocks 601 to 60K and 652 to 65K corresponding to blocks 301 to 30K and 352 to 35K of the .
  • a linear transformation for example the inverse KLT/PCA transformation, is applied to the decoded transformed latent vector.
  • ext(.) represents the operation of extending the dimension D T to the dimension D by adding (DD T ) zeros to the end of the vector.
  • FIG. 700 shows in particular a coding module (700) of a latent representation (or latent space) included in an audio signal coder as described with reference to the (block 100).
  • the latent space quantization/coding block (block 102) of the is replaced by the latent space coding module (block 700) now described.
  • This block 700 therefore receives as input a latent representation z from the neural network analysis module (block 101 of the ).
  • the dimensions of the input of this coding module are here denoted [D,T] where D is the dimension of the latent space in each frame and T is the number of frames.
  • the coding method according to the invention consists in transforming the latent space so that the different components are as uncorrelated as possible.
  • a modified latent vector u is obtained by subtracting from the latent vector z, in block 702, a correction vector from block 701.
  • the module 701 reads from memory (block 710) a determined mean vector.
  • the block 710 determines the centroid of the dictionary C1 in the following manner:
  • This quantization dictionary C1 is stored in memory in block 710 or more advantageously block 710 can directly store the predetermined value of .
  • block 710 can directly store the predetermined value of .
  • block 701 corresponds respectively to one or more vector quantization stages described for the EnCodec method and represented in (blocks 201, 202, ).
  • block 710 stores the corresponding RVQ dictionary(ies).
  • this component is removed adaptively, and a quantization index m of 10 bits (case b) or 20 bits (example of case c) is given at the output of block 701 to the multiplexing in block 710.
  • Block 703 optionally performs a scaling of each of the components of the signal u representing the modified latent vector following the subtraction of performed in 702.
  • each component of u is normalized by its standard deviation; in variants other normalizations are possible.
  • the standard deviation ( ) (or alternatively another normalization value) is previously calculated and stored in memory at 711. This gives a modified and scaled, i.e. preprocessed, latent vector z'.
  • values other than the standard deviation of each component of u may be used.
  • block 704 performs a linear transform, for example of the PCA/KLT type, the preprocessed latent vector z' is transformed by the application of a rotation matrix U of size DxD defined below, to obtain a transformed latent vector y such that:
  • trunc(.) denotes the truncation operation which retains only the first D T components.
  • block 704 does not require any bit budget.
  • the U matrix is stored in block 712.
  • the rotation matrix U can be determined as in the first embodiment.
  • AVQ gain-shape type algebraic vector quantization
  • the transformed signal y (or transformed latent vector) is divided into N v successive sub-vectors of dimension 8.
  • N v 10 sub-vectors to code.
  • the signal is scaled by the inverse (1/g) of a global gain denoted g which can be pre-estimated or determined by dichotomy by maximizing the number of bits used B while respecting the budget constraint B ⁇ (RR M ).
  • the latent signal transformed and scaled by the factor 1/g, or (1/g)* y is therefore coded by subvector.
  • An example of a complete implementation of this AVQ quantization is given in the 3GPP AMR-WB+ standard (see 3GPP TS 26.273 for the fixed-point version or TS 26.304 for the floating-point version); we will therefore not detail here the implementation of this implementation of block 705.
  • All the binary data resulting from the quantization is multiplexed in block 705 to form a binary train b.
  • the various binary information (m, b), as defined above, is multiplexed in block 720.
  • an entropic coding of the indices m and b may also be implemented.
  • PVQ pyramidal quantization
  • examples of PVQ implementations are given for example in the Opus codecs or in the EVS codec.
  • the implementation of PVQ is similar to what is described previously for AVQ quantization.
  • the signal is typically divided into subvectors and normalized by an overall gain.
  • a fixed (predetermined) or variable (as in the AVQ case) bit allocation may be taken to quantize each subvector by a PVQ quantizer.
  • the signal y is determined as described above but quantified by RVQ according to the principle of coding y in the block 500 with dictionaries C' k in truncated dimension D T .
  • the dictionaries can be determined by learning according to the principles of RVQ quantization.
  • the bitstream b is made up of the sub-indices associated with each RVQ dictionary.
  • An advantage of the invention here is that the arithmetic coding can exploit the eigenvalue decomposition associated with the determination of the transformation (block 704). Only the first D T values are retained since y is here defined after truncation. Thus the probability model for entropic coding is easily derived by assuming a distribution for example Gaussian or Laplacian of y with variances given per component respectively by .
  • This figure shows in particular a decoding module (800) of a latent representation (or latent space) included in an audio signal decoder as described with reference to the (block 110).
  • the latent space decoding block (block 111) of the is replaced by the latent space decoding module (block 800) now described.
  • the bit stream I received for the current frame is demultiplexed (block 801).
  • the correction vector is obtained in the same way as to the encoder in block 701.
  • This correction vector from block 802 can be:
  • block 802 then corresponds respectively to one or more decoding stages D1, D2,..., described for the EnCodec method and represented in (blocks 301, 302, ). These inverse quantization blocks are not shown here on the .
  • Block 803 of Figure 8 decodes the transformed latent vector from bitstream b.
  • This decoding step is not described in further detail; it corresponds to decoding according to the implementation of block 705, with examples of variants: AVQ, PVQ, RVQ, or scalar quantization with entropy coding.
  • 0s can be added to the transformation step T of block 805.
  • an injection of noise for example of the noise substitution type known to those skilled in the art, of block 804, may be provided.
  • a linear transformation for example the inverse KLT/PCA transformation, is applied to the decoded transformed latent vector.
  • EnCodec contains an LSTM layer that SoundStream does not have.
  • ELU Exponential Linear Unit
  • the input and output tensor dimensions of each block are detailed in for the analysis part.
  • Block 900 uses 32 channels, which gives an output of dimension [1, 32, 320]. Then the successive blocks modify the dimensions of the tensors, with a doubling of the number of channels each time (from 32 to 64, then 128, 256 and 512) and a reduction of the last dimension by a factor given by the stride parameter which is respectively 2, 4, 5, 8.
  • Blocks 914 and 915 do not change the dimensions of the tensors.
  • the DCOD encoding device comprises a processing circuit typically including: - a memory MEM1 for storing instruction data of a computer program within the meaning of the invention (these instructions can be distributed between the coder DCOD and the decoder DDEC) as well as data calculated during a learning phase; - an INT1 interface for receiving an original audio signal x; - a processor PROC1 for receiving this signal and processing it by executing the computer program instructions stored in the memory MEM1, with a view to encoding it; in particular, the processor being capable of controlling a neural network-based analysis module and a quantification module of a latent representation as described with reference to FIGS. 5 and 7; and - a COM 1 communication interface for transmitting coded signals via the network.
  • a processing circuit typically including: - a memory MEM1 for storing instruction data of a computer program within the meaning of the invention (these instructions can be distributed between the coder DCOD and the decoder DDEC) as well as data calculated during a learning phase; -
  • the DDEC decoding device has its own processing circuit, typically including: - a memory MEM2 for storing instruction data of a computer program within the meaning of the invention (these instructions can be distributed between the coder DCOD and the decoder DDEC as indicated previously) as well as data calculated during a learning phase; - a COM2 interface for receiving the coded signals from the RES network with a view to their decoding in compression within the meaning of the invention; - a processor PROC2 for processing these signals by executing the computer program instructions stored in the memory MEM2, with a view to decoding them; in particular, the processor being capable of controlling a decoding module of a latent space as described with reference to FIGS. 6 and 8 and a synthesis module based on a neural network; and - an INT2 output interface to deliver the decoded audio signal .
  • a memory MEM2 for storing instruction data of a computer program within the meaning of the invention (these instructions can be distributed between the coder DCOD and the decoder DDEC

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)
  • Error Detection And Correction (AREA)

Abstract

L'invention se rapporte à un procédé de codage d'un signal audio comportant une analyse (E401) du signal audio par un réseau de neurones d'analyse pour obtenir une représentation latente du signal audio et dans lequel le codage de la représentation latente s'effectue selon les étapes suivantes : application (E404) à un vecteur latent (z) représentatif de la représentation latente du signal audio ou à un vecteur latent prétraité (z'), d'une transformée linéaire orthogonale (T), pour obtenir un vecteur latent transformé (y); quantification (E405) du vecteur latent transformé (y) obtenu. L'invention se rapporte également à un procédé de décodage d'un signal audio, un dispositif de codage et un dispositif de décodage correspondants.

Description

    Quantification optimisée d’un espace latent en codage audio neuronal
  • La présente invention se rapporte au domaine général du codage et du décodage de signaux audio. L’invention se rapporte en particulier à la quantification optimisée d’un espace latent (ou signal transformé par un réseau de neurones) pour le codage et décodage d’un signal audio.
  • On s’intéresse ici au codage (ou compression) de signaux de parole et audio avec perte.
  • Dans un système de compression avec perte, l'objectif général est de chercher une représentation du signal qui soit la plus adaptée possible à un codage au débit le plus faible possible à qualité donnée ou inversement avec la meilleure qualité possible à un débit donné, en prenant en compte des contraintes comme la complexité, la quantité de stockage ou le retard algorithmique.
  • Historiquement ce domaine s’est développé selon deux approches :
  • • Le codage de signaux de parole dominé par une approche temporelle basée sur la prédiction linéaire (court-terme et long-terme), afin de modéliser le signal de parole – la partie non modélisée (innovation ou résidu de prédiction) est codée en plus des paramètres du modèle. La perception auditive est en général prise en compte par l’usage d’une pondération perceptuelle. Le modèle CELP (pour « Code Excited linear Prediction » en anglais) reste le paradigme de référence pour le codage de parole « conventionnel » de bonne qualité à bas débit.
  • • Le codage de signaux audio qui s’appuie majoritairement sur une approche fréquentielle par sous-bandes ou transformée afin d’obtenir un gain de codage et de tirer parti de caractéristiques psychoacoustiques et des limites de la perception auditive. Le codage par transformée MDCT (pour « Modified Discrete Cosine transform » en anglais »), à décimation critique, reste la technique de référence pour le codage audio à bas débit « conventionnel ».
  • Le codage de parole et le codage audio ont ensuite convergé avec des modèles de codage « universel », en particulier par des approches combinant temps (CELP) et fréquence (MDCT).
  • L’état de l’art en codage de parole et audio « conventionnel » est très riche, et de très nombreux codecs normalisés ou propriétaires ont été développés, en incorporant les différentes avancées techniques et répondant à diverses applications et contraintes. Les standards les plus récents comme USAC, MPEG-H 3D Audio, EVS ou Opus donnent un bon aperçu des dernières avancées et représentent actuellement l’état de l’art du codage « conventionnel ».
  • Les approches basées sur l’intelligence artificielle et notamment par l’utilisation de réseaux de neurones telles que WaveNet et VQ-VAE (pour « Vector quantized- variational auto-encoder » en anglais) ont stimulé l’émergence des méthodes de codage de parole et audio basées sur les réseaux de neurones. L’apprentissage profond (dit « deep learning » en anglais) a montré un grand potentiel dans d’autres domaines connexes au codage audio, tels que la synthèse de parole (« text to speech » en anglais) ou le codage d’images et vidéo et l’analyse et le traitement de signal audio en général.
  • Une particularité des méthodes neuronales appliquées à la parole et l’audio est qu’elles fonctionnent en général directement dans le domaine temporel (sur la forme d’onde). Cependant, on trouve également des modèles dans le domaine fréquentiel.
  • On peut distinguer deux approches de codage de parole et audio neuronal :
    • Codage de caractéristiques (« features » en anglais) venant alimenter un décodage par synthèse avec modèle génératif : des paramètres, comme par exemple le spectrogramme selon l’échelle Mel, sont estimés et codés et un décodeur par réseau de neurones (ex : WaveNet) reconstruit la forme d’onde à partir de cette représentation codée.
    • Codage de bout en bout, inspiré de l’approche VQ-VAE, où le codec est décomposé en une partie analyse, un quantificateur, et une partie synthèse qui sont appris de bout en bout. Le principe est de représenter la distribution de l’entrée (de dimension élevée) par des codes latents discrétisés.
  • Le codage audio neuronal est arrivé à un niveau de maturité suffisant pour que des codecs neuronaux soient déployés dans des applications conversationnelles.
  • On prend ici comme méthodes représentatives du codage audio neuronal les codecs appelés « SoundStream » et « EnCodec » qui sont décrits respectivement dans :
  • N. Zeghidour, A. Luebs, A. Omran, J. Skoglund et M. Tagliasacchi, «Soundstream: An end-to-end neural audio codec,» IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2021, et
  • A. Défossez et e. al.,«High fidelity neural audio compression,» arXiv preprint arXiv:2210.13438, 2022.
  • Leurs performances à bas débit (de l’ordre de 3 à 6 kbit/s) rivalisent avec les approches de codage de parole et audio « conventionnelles » comme EVS ou Opus qui fonctionnent à plus haut débit.
  • Ces deux codecs, SoundStream et Encodec, sont très similaires, on ne décrit ici que le principe de la méthode « EnCodec » (dans le cas d’un signal mono, i.e. unidimensionnel).
  • La illustre le principe de codage selon la méthode EnCodec (dans le cas d’un signal mono, i.e. unidimensionnel). On peut distinguer deux étapes de la conception de ce codec par réseaux de neurones : l’apprentissage et l’inférence. Dans la phase d’apprentissage, les paramètres du modèle sont entrainés à partir de données d’apprentissage. La phase d’inférence (ou l’inférence) fait référence au déploiement du modèle et sa mise en application en situation réelle.
  • A la phase d’inférence, c’est-à-dire lors de l’utilisation du codec déjà « entrainé », le codage (bloc 100) d’une trame de signal de 320 échantillons du signal d’entrée x échantillonné à une fréquence de 24 kHz se décompose en deux blocs :
  • - une partie analyse (bloc 101) par un réseau de neurones qui convertit le signal d’entrée x dans une représentation latente z appelé également « espace latent ». Cet espace latent représente sous forme compacte les caractéristiques importantes du signal d’entrée.
  • Dans l’exemple d’EnCodec, l’architecture de la partie analyse est décrite plus loin en référence aux figures 9 et 10.
  • - une partie quantification/codage (bloc 102) de la représentation latente z avec éventuellement un codage entropique (appelé modèle de langage ou « language model » en anglais) dans le cas d’EnCodec, générant un train binaire I constitué d’indices de quantification multiplexés.
  • De même, à la phase d’inférence, le décodage (bloc 110) qui reconstruit le signal audio se décompose en deux blocs :
  • - une quantification inverse/décodage de l’espace latent (bloc 111) à partir du train binaire I;
  • - une partie synthèse par un réseau de neurones de synthèse (bloc 112). L’architecture de cette partie est symétrique (en ordre inverse) de la partie analyse, avec des convolutions transposées au lieu de convolutions ; cette architecture est décrite plus loin en référence aux figures 9 et 10. La synthèse génère une valeur approchée du signal x appelée .
  • On notera qu’une implémentation complète d’Encodec (blocs 100 et 110) est donnée dans : https:/github.com/facebookresearch/encodec
  • La quantification utilisée dans EnCodec est une quantification vectorielle multi-étages, appelée « Residual VQ » ou encore RVQ (pour « Residual Vector Quantization » en anglais).
  • Lors de la phase d’apprentissage, les dictionnaires de quantification RVQ sont appris et stockés ; le mot de code sélectionné est mis à jour avec une moyenne mobile (avec un facteur d’oubli) et les entrées non utilisées sont remplacées par des candidats tirés du lot courant de la base d’apprentissage. La quantification est court-circuitée dans la phase de rétropropagation des gradients pour les réseaux d’analyse/synthèse. Un nombre variable d’étages (appelés « étages résiduels ») est sélectionné à l’apprentissage pour entrainer un seul modèle représentant plusieurs débits. Par ailleurs, lors de l’apprentissage, le codec comprend également des blocs supplémentaires de calcul de métriques (bloc 121) et un réseau de neurones complémentaire appelé « discriminateur » (bloc 120) selon le principe des réseaux de neurones génératifs antagonistes (GAN pour « Generative Adversarial Network » en anglais), pour obtenir différentes fonctions de coût pour l’apprentissage. Les détails concernant l’apprentissage ne sont pas détaillés ici car cela dépasse le cadre de la présente invention qui se focalise sur l’amélioration d’un codec par réseaux de neurones à un signal audio, une fois les réseaux d’analyse et de synthèse déjà entrainés (partie grisée de la ).
  • La illustre le fonctionnement de la quantification à plusieurs étages (bloc 102 sans codage entropique) et la décrit le décodage associé (bloc 111 sans décodage entropique).
  • En fonction du nombre de bits R par trame, celle-ci fonctionne avec une série de K quantificateurs (blocs 201, 202, … 20K) en cascade, où le signal z de l’espace latent est codé par un premier étage puis l’erreur de quantification de l’étage précédent ek est calculée (bloc 251, 252, …) pour obtenir l’entrée de l’étage courant.
  • Dans l’EnCodec décrit dans l’article précité, le débit d’un étage est de 10 bits pour un signal d’entrée en dimension D=128. Pour une entrée mono à 24 kHz, EnCodec définit des étages de N=1024 entrées (10 bits par trame de 320 échantillons à 24 kHz, soit 0.75 kbit/s), et peut en combiner jusqu’à 32 (pour le débit de 24 kbit/s). La quantification RVQ implique de stocker K=32 dictionnaires (blocs 001 à 00K), avec un dictionnaire par étage ; chaque dictionnaire Ck est de dimension D=128 et de taille N=1024. La quantification dans le k-ième étage s’effectue par simple recherche du plus proche voisin entre ek et tous les mots de code du dictionnaire Ck , en minimisant l’erreur quadratique (la distance euclidienne).
  • Par défaut, le nombre d’étages successifs combinés est prédéfini : K=2, 4, 8, 16 ou 32 étages, pour un débit de 1.5, 3, 6, 12 ou 24 kbit/s (ou R = 20, 40, 80, 160, 320 bits par trame). Les indices ik de chaque étage sont multiplexés pour former le train binaire I de la trame courante (bloc 200).
  • Au décodage, représenté en figure 3, le nombre d’étages K est déterminé en fonction du débit R. Le train binaire I est démultiplexé et ces indices sont séparés (bloc 300), et chaque étage (blocs 301, 302, … 30K) fournit le mot de code stocké et décodé par lecture dans le dictionnaire Ck associé (blocs 001 à 00K), et tous les mots de code ainsi décodés sont successivement ajoutés (blocs 352, …, 35K) pour obtenir le signal décodé de l’espace latent dans la trame courante.
  • La méthode de quantification de l’espace latent de type RVQ présente quelques avantages : les structures implicites de l’espace latent sont apprises implicitement (sans être explicitement extraites) par la quantification vectorielle, l’approche multi-étages permet un codage hiérarchique (scalable) avec des étages d’améliorations dont le nombre dépend du débit visé.
  • Cette méthode pose cependant plusieurs problèmes. Il est connu de l’homme de l’art que la quantification à plusieurs étages (non structurée) est sous-optimale notamment en termes de rapport signal à bruit de la quantification et ce problème est d’autant plus flagrant que le nombre d’étages augmente. De plus, la quantification à plusieurs étages requiert un stockage non négligeable, chaque étage (de 10 bits) requiert N x D valeurs stockées où N=1024 est la taille du dictionnaire (en nombre de mots de code) et D est la dimension de l’espace latent (D=128 dans EnCodec).
  • Enfin, la complexité de la recherche du plus proche voisin (qui doit s’effectuer de façon exhaustive par minimisation de l’erreur quadratique entre l’entrée ej et tous les mots de code ck(i)) est significative pour le débit de 10 bits, et elle augmente linéairement avec le nombre d’étages et le débit.
  • Il existe donc un besoin d’optimisation des techniques de codage de l’espace latent pour le domaine du codage/décodage audio de type neuronal.
  • L’invention vient améliorer l’état de la technique.
  • A cet effet, l’invention vise un procédé de codage d’un signal audio comportant une analyse du signal audio par un réseau de neurones d’analyse pour obtenir une représentation latente du signal audio et dans lequel le codage de la représentation latente s’effectue selon les étapes suivantes :
    - application à un vecteur latent représentatif de la représentation latente du signal audio ou à un vecteur latent prétraité, d’une transformée linéaire, pour obtenir un vecteur latent transformé ;
    - quantification du vecteur latent transformé obtenu.
  • L’application d’une transformée au vecteur latent permet d’obtenir un vecteur transformé dont les composantes sont décorrélées et pour lequel la quantification ne nécessite pas une complexité de recherche du plus proche voisin ni un stockage aussi important que les méthodes de l’état de l’art. Dans un mode de réalisation où l’approche de quantification à plusieurs étages est remplacée par une quantification directe, cette méthode permet aussi d’obtenir une meilleure qualité de codage à haut débit par rapport à la méthode par quantification vectorielle à plusieurs d’étages de quantification.
  • Dans un mode de réalisation, le vecteur latent prétraité est obtenu par soustraction au vecteur latent d’un vecteur de correction représentant une valeur moyenne du vecteur latent ou un vecteur latent issu d’au moins une première quantification directe.
  • Le vecteur de correction permet d’adapter le vecteur latent à la transformée mise en œuvre, en enlevant des valeurs moyennes qui pourraient parasiter le vecteur transformé obtenu et rendre la transformation moins optimale.
  • Dans un mode de réalisation particulier, le vecteur latent prétraité est obtenu en outre après une mise à l’échelle des composantes du vecteur latent prétraité.
  • Cette mise à l’échelle permet une autre adaptation du vecteur latent avant l’étape de transformée.
  • Dans un mode particulier de réalisation, la transformée comprend en outre une réduction des composantes à quantifier par suppression d’une partie des composantes du vecteur latent.
  • Dans ce mode de réalisation, un ordre d’importance des paramètres de la transformée permet de tronquer une partie des composantes du vecteur latent à transformer et ainsi réduire le nombre de composantes à quantifier, sans pour autant dégrader la qualité de quantification.
  • Dans un mode possible de réalisation, un indice de quantification, correspondant au budget de bits utilisé dans l’au moins une première quantification directe, est codé.
  • Cet indice permet d’adapter le débit de codage restant.
  • Dans un mode de réalisation, la quantification du vecteur latent transformé s’effectue par une quantification vectorielle de type gain-forme.
  • Cette méthode de quantification est simple et ne nécessite que peu de stockage.
  • Dans un autre mode de réalisation, la quantification du vecteur latent transformé s’effectue par au moins une étape de quantification vectorielle utilisant un dictionnaire de quantification transformé.
  • Ce mode de quantification permet de rendre compatible le codeur et le décodeur selon l’invention avec le codeur ou le décodeur de type EnCodec de l’état de l’art.
  • L’invention se rapporte également à un procédé de décodage d’un signal audio comportant une synthèse, par un réseau de neurones de synthèse, d’un vecteur latent décodé, pour obtenir un signal audio décodé et dans lequel le décodage du vecteur latent, s’effectue selon les étapes suivantes :
    - réception d’un train binaire comportant au moins des indices de quantification d’un vecteur latent transformé ;
    - décodage du vecteur latent transformé à partir des indices de quantification reçus ;
    - application au vecteur latent transformé décodé d’une transformée linéaire pour obtenir un vecteur latent décodé.
  • Dans un mode de réalisation, le vecteur latent décodé est un vecteur latent intermédiaire auquel on ajoute un vecteur de correction représentant une valeur moyenne du vecteur latent ou un vecteur latent décodé issu d’au moins une première quantification inverse directe, pour obtenir le vecteur latent décodé.
  • Les avantages du procédé de décodage sont les mêmes que ceux du procédé de codage décrit ci-avant.
  • Pour obtenir une taille prédéfinie de vecteur, le procédé de décodage comprend en outre une étape d’ajout de composantes supplémentaires au vecteur latent décodé. Cela vient combler les éléments qui ont été tronqués au codage.
  • L’invention vise un dispositif de codage comportant un circuit de traitement pour la mise en œuvre des étapes du procédé de codage tel que décrit précédemment.
  • L’invention vise aussi un dispositif de décodage comportant un circuit de traitement pour la mise en œuvre des étapes du procédé de décodage tel que décrit précédemment.
  • L’invention se rapporte à un programme informatique comportant des instructions pour la mise en œuvre des procédés de codage ou de décodage tels que décrits précédemment, lorsqu’ils sont exécutés par un processeur.
  • Enfin l’invention se rapport à un support de stockage, lisible par un processeur, mémorisant un programme informatique comportant des instructions pour l’exécution du procédé de codage ou du procédé de décodage décrits précédemment.
  • D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante de modes de réalisation particuliers, donnés à titre de simples exemples illustratifs et non limitatifs, et des dessins annexés, parmi lesquels :
  • illustre un exemple de codeur et de décodeur par réseaux de neurones avec une quantification de l’espace latent ;
  • illustre un exemple de codage par quantification vectorielle (non structurée) à multi-étages de l’espace latent selon l’état de l’art ;
  • illustre un exemple de décodage par quantification vectorielle (non structurée) à multi-étages de l’espace latent selon l’état de l’art ;
  • illustre sous forme d’organigramme, les étapes d’un procédé de codage selon un mode principal de réalisation de l’invention ;
  • illustre sous forme d’organigramme, les étapes d’un procédé de décodage selon un mode principal de réalisation de l’invention ;
  • illustre un dispositif de codage ainsi qu’un procédé de codage selon un premier mode de réalisation de l’invention.
  • illustre un dispositif de décodage ainsi qu’un procédé de décodage selon un premier mode de réalisation de l’invention.
  • illustre un dispositif de codage ainsi qu’un procédé de codage selon un deuxième mode de réalisation de l’invention.
  • illustre un dispositif de de décodage ainsi qu’un procédé de décodage selon un deuxième mode de réalisation de l’invention.
  • illustre un exemple de réalisation des parties analyse et synthèse d’un exemple de codec audio neuronal utilisé selon l’invention ;
  • illustre un exemple de format d’entrée/sortie pour la partie analyse d’un exemple de codec audio neuronal utilisé selon l’invention ;
  • illustre un exemple de format d’entrée/sortie pour la partie analyse d’un exemple de codec audio neuronal utilisé selon l’invention ;
  • illustre des exemples de réalisation structurelle d’un dispositif de codage et un dispositif de décodage selon un mode de réalisation de l’invention.
  • La illustre sous forme d’organigramme les étapes principales d’un procédé de codage d’un signal audio selon l’invention.
  • Dans une première étape E401, le signal audio x est analysé par un réseau de neurones d’analyse tel que décrit en référence à la (bloc 101) pour obtenir une représentation latente z de ce signal audio. L’architecture de cette étape d’analyse par réseau de neurones peut-être comme celle décrite en référence à la et détaillée aux figures 9 et 10. Dans des variantes, l’exemple de mise en œuvre du bloc 101 issu d’EnCodec pourra être remplacé par d’autres architectures de réseau de neurones (par exemple partie analyse du codec SoundStream, d’un auto-encodeur, etc.).
  • L’espace latent obtenu est représenté ici, dans le mode de réalisation décrit, sous forme vectorielle et représenté par un vecteur latent z.
  • Cet espace latent peut également être représenté par un ensemble de vecteurs latent, dans le cas d’une représentation matricielle par exemple. Dans la suite de la description, on parlera du traitement d’un vecteur latent. Il est entendu que pour une représentation matricielle le traitement pourra se faire sur l’ensemble de vecteurs latents, par exemple par un traitement successif des vecteurs ou en transformant la matrice sous la forme d’un vecteur unidimensionnel par concaténation de lignes ou colonnes.
  • Un pré-traitement du vecteur latent peut être mis en œuvre à l’étape E403.
  • Pour cela, un vecteur de correction est obtenu en E402 et est soustrait au vecteur latent z en E403 pour obtenir un vecteur latent prétraité z’.
  • Ce vecteur de correction peut être fixe ou adaptatif. Il représente une valeur moyenne du vecteur latent (obtenue à partir de valeurs préalablement stockées en mémoire (Inf)) ou un vecteur latent issu d’au moins une première quantification directe.
  • Les différents modes d’obtention de ce vecteur de correction sont décrits ultérieurement en référence aux figures 5 et 7.
  • Cette correction du vecteur latent est mise en œuvre pour adapter le vecteur latent à la transformée mise en œuvre à l’étape E404. Dans certains cas de figure, cette étape peut ne pas être mise en œuvre et la transformée est alors appliquée au vecteur latent non modifié.
  • A l’étape E404 une transformée linéaire est appliquée, soit au vecteur latent z non prétraité, soit au vecteur latent prétraité et ainsi modifié selon l’étape E403. On obtient ainsi, à l’issue de l’étape E404, un vecteur latent transformé y.
  • L’application de cette transformée est décrite ultérieurement en référence aux figures 5 et 7.
  • A l’étape E405, une quantification de ce vecteur latent transformé est mise en œuvre.
  • Pour cela plusieurs modes de réalisation sont possibles et sont décrits en référence aux figures 5 et 7.
  • A l’issue de cette étape de quantification, un train binaire I comportant des indices de quantification ((i1, i2,…) ou (m,b)) du vecteur latent transformé sont obtenus, selon la méthode de quantification mise en œuvre.
  • La illustre les étapes principales d’un procédé de décodage d’un signal audio.
  • Une étape E411 de décodage d’un vecteur latent transformé ( ) est mise en œuvre à partir d’indices de quantification ((i1, i2,…) ou (m,b)) du vecteur latent transformé reçus d’un train binaire I. Des exemples de réalisation seront décrits en référence aux figures 6 et 8.
  • A l’étape E412, une transformée linéaire est appliquée au vecteur latent transformé décodé pour obtenir un vecteur latent décodé . Dans le cas où un prétraitement du vecteur latent a été effectué au codage, une étape de modification du vecteur latent décodé est effectuée en E414 par combinaison du vecteur latent décodé , alors intermédiaire et d’un vecteur de correction obtenu à l’étape E413 pour former un vecteur latent décodé .
  • A l’étape E415, une synthèse par réseau de neurones tel que décrit en référence à la figure 1 (bloc 112) est effectuée sur le vecteur latent décodé pour obtenir le signal audio décodé . Dans des variantes, l’exemple de mise en œuvre du bloc 112 issu d’EnCodec pourra être remplacé par d’autres architectures de réseau de neurones (par exemple partie synthèse du codec SoundStream, d’un auto-encodeur, etc.).
  • La décrit un premier mode de réalisation d’un dispositif de codage ainsi qu’un premier mode de réalisation d’un procédé de codage d’un signal audio. Cette figure montre en particulier un module de codage (500) d’une représentation latente (ou espace latent) compris dans un codeur de signal audio tel que décrit en référence à la (bloc 100). Dans des variantes, d’autres méthodes que le réseau de neurones d’analyse d’EnCodec pourront être utilisées pour obtenir l’espace latent. Sans perte de généralité, on considère que le signal audio d’entrée est découpé en trames temporelles successives (ou vecteurs unidimensionnels) de longueur L (qui donne la dimension des vecteurs d’entrée). L’espace latent est ici vu comme un vecteur de dimension D dans la trame courante. Ainsi, à titre d’exemple de réalisation, on considère ici que L = 320 échantillons et D = 128. Dans des variantes les valeurs de L et D pourront être différentes et variants d’une trame à l’autre.
  • Ainsi, le bloc de quantification/codage de l’espace latent (bloc 102) de la est remplacé par le module de codage de l’espace latent (bloc 500) décrit à présent.
  • Ce bloc 500 reçoit donc en entrée une représentation latente z issue du module d’analyse par réseau de neurones (bloc 101 de la ).
  • Par la suite, les termes « espace latent » ou représentation latente » désigneront la même représentation sous la forme d’un ensemble de vecteurs z, ou pour simplifier d’un vecteur latent z, c'est-à-dire une représentation du signal audio comportant une pluralité de données variables (dites aussi variables latentes), discrètes ou non.
  • Les dimensions de l’entrée de ce module de codage (bloc 500) sont ici notées [D,T] où D est la dimension de l’espace latent dans chaque trame et T est le nombre de trames.
  • Par ailleurs, pour simplifier les notations on considère le cas du codage d’une trame donnée, avec T=1 trame. Le cas T>1 est pertinent pour des extensions de réalisation de l’invention où un codage conjoint de plusieurs trames serait réalisé. Par la suite on considèrera que l’entrée du bloc 500 est de dimension [D,1].
  • On suppose ici que la représentation latente est sous forme vectorielle et représentée par un vecteur latent z de dimension [D,1]. Dans le cas où l’espace latent n’est pas sous forme vectorielle il peut, par exemple, être sous forme matricielle, alors une conversion dans la forme vectorielle peut être prévue.
  • Comme on le verra par la suite, le procédé de codage selon l’invention consiste à transformer l’espace latent de sorte que les différentes composantes de l’espace latent soient le plus décorrélées possible.
  • Selon une première étape, un vecteur latent modifié est obtenu en retranchant du vecteur latent z, dans le bloc 512, un vecteur de correction issu du bloc 510 qui utilise des données stockées dans le bloc 540 ; il s’agit d’un vecteur de dimension [D,1] des variables latentes.
  • Dans le mode de réalisation privilégié, le vecteur correspond à la valeur (stationnaire) de z quand l’entrée x du codeur est un signal de silence (à valeurs nulles ou bien un bruit faible aléatoire de type bruit de fond de la chaîne de captation sonore ou « idle noise » en anglais). Dans ce cas, le bloc 540 stocke directement ce vecteur prédéterminé et le bloc 510 ne fait que lire ce vecteur.
  • Dans des variantes, le vecteur peut être pris comme la moyenne (ou centroïde) d’un dictionnaire de quantification préalablement appris et stocké comme le dictionnaire C1 (bloc 001) pour le codec décrit en référence aux figures 2 et 3. Ce dictionnaire de quantification C1 est stocké en mémoire dans le bloc 540 ou de façon plus avantageuse on ne stocke que le centroïde issu de ce dictionnaire.
  • Ainsi, dans un mode de réalisation, la détermination du vecteur s’effectue de la façon suivante :
  • qui correspond au centroïde du premier dictionnaire C1 correspondant au bloc 001 tels que décrits en figure 2 et 3.
  • Dans des variantes on pourra inclure les dictionnaires des étages suivants, par exemple dans le cas des 2 premiers dictionnaires C1 et C2(blocs 001 et 002) :
  • Dans ce cas, les dictionnaires de quantification C1 et C2 sont stockés en mémoire dans le bloc 540 ou de façon plus avantageuse on ne stocke que le centroïde issu de ces 2 dictionnaires.
  • L’intérêt des blocs 510 et 512 est d’adapter le vecteur latent z avant l’application de la transformée T du bloc 513. Pour cela, on cherche à supprimer une composante basée sur une moyenne de l’espace latent. Sans cette suppression, l’existence de cette valeur moyenne pourrait rendre la transformation à suivre en 513, moins optimale et pourrait parasiter le vecteur transformé obtenu.
  • Ce vecteur est ici défini comme étant fixe et aucune information supplémentaire ne doit être transmise.
  • Le bloc 513 effectue ensuite une transformée linéaire, par exemple de type PCA/KLT, « PCA » (pour « Principal Component Analysis » en anglais) désignant une analyse en composante principale et « KLT » (pour « Karhunen Loeve Transform » en anglais) désignant une transformée de Karhunen Loeve.
  • Un rappel des deux techniques est repris ci-dessous.
  • Transformée de Karhunen Loeve (ou « KLT » pour « Karhunen Loeve Transform »)
  • La transformation de Karhunen Loeve (KLT) d’un vecteur aléatoire z centré en 0 et de matrice de covariance est définie par :
  • est la matrice de vecteurs propres (avec la convention que les vecteurs propres sont des vecteurs colonne) obtenue par décomposition en valeurs propres de
  • est une matrice diagonale dont les coefficients sont les valeurs propres. La matrice contient les vecteurs propres (colonnes) de , tels que
  • On peut voir la KLT comme un changement de base, car le produit exprime le vecteur dans la base donnée par les vecteurs propres.
  • La transformation inverse est donnée par :
  • La KLT permet de décorréler les composantes de  ; les variances du vecteur transformé sont les valeurs propres de .
  • Analyse en composantes principales (ou « PCA » pour « principal component analysis »)
  • L’analyse en composante principale (PCA) est une technique de réduction de dimensionnalité qui produit des variables orthogonales et maximise la variance des variables après projection (ou de façon équivalente minimise l’erreur de reconstruction).
  • La PCA présentée ci-après, bien que s’appuyant aussi sur une décomposition en valeurs propres comme la KLT, est telle que la matrice de covariance estimée est calculée à partir de vecteurs observés de dimension :
  • en supposant que ces vecteurs sont centrés :
  • La décomposition en valeurs propres de sous la forme permet de calculer les composantes principales : .
  • La PCA est une transformation par la matrice qui projette les données dans une nouvelle base pour maximiser la variance des variables après projection.
  • On notera que la PCA peut également s’obtenir à partir d’une décomposition en valeurs singulières (SVD) du signal mis sous la forme d’une matrice de taille D x K. Dans ce cas, on peut écrire :
  • où les matrices , , désignent les vecteurs singuliers à gauche, les valeurs singulières et les vecteurs singuliers à droite.
  • On vérifie que qui correspond à une diagonalisation de . Ainsi les vecteurs de projection de la PCA correspondent aux vecteurs colonne de et la projection donne comme résultat .
  • Sans perte de généralité, on considère ici que la KLT et la PCA représentent les mêmes méthodes d’analyse et de transformation. On parlera par la suite de transformée linéaire.
  • Ainsi, le bloc 513 met en œuvre une étape de transformation linéaire du vecteur latent modifié z’ par l’application d’une matrice de rotation U de taille DxD définie ci-dessous (précalculée et stockée en mémoire en 533) et une opération de troncature, pour obtenir un vecteur latent transformé y tel que :
  • y= trunc( . z’ )
  • où trunc(.) désigne l’opération de troncature qui ne retient que les DT premières composantes. Dans le mode de réalisation privilégié on prend comme exemple DT=80 (à comparer avec D=128).
  • L’étape de transformation (bloc 513) ne requiert aucun budget de bits.
  • Dans des variantes, la matrice de covariance pourra être remplacée par une matrice de corrélation en incluant une pré-normalisation des D différentes composantes par l’écart-type ce qui donne une matrice de corrélation.
  • Dans des variantes, il sera possible de combiner la multiplication matricielle par et la troncature de D à DT dimensions en effectuant une multiplication matricielle que par la matrice .
  • Dans le premier mode de réalisation décrit ici, la matrice de rotation U est précalculée et obtenue à partir d’au moins un des dictionnaires de quantification RVQ (bloc 001).
  • La matrice de covariance R du premier dictionnaire C1 (centré) est obtenue, par exemple comme suit :
  • Dans des variantes, on pourra aussi utiliser les étages suivants, par exemple prendre :
  • Dans d’autres variantes, on pourra utiliser une base de données audio définissant un ensemble de trames d’entrée du signal x et on enregistrera la séquence des valeurs du signal z’ pour déterminer R comme la matrice de covariance (ou de corrélation) de ce signal z’. Cette matrice R n’a pas besoin d’être stockée, elle sert uniquement d’information intermédiaires pour déterminer la transformée linéaire à appliquer ensuite à l’étape d’inférence selon l’invention.
  • On applique à R une analyse en composantes principales PCA ou de façon équivalente une transformée de Karhunen Loeve (KLT), avec estimation de matrice de covariance et décomposition en valeurs propres notée EVD pour « Eigen Value Decomposition » en anglais, pour obtenir des valeurs propres et une matrice de vecteurs propres U à partir de la matrice de covariance R de sorte que
  • Dans un mode particulier de réalisation, les valeurs propres sont ordonnées en ordre décroissant avec . En pratique, on peut obtenir cette propriété en utilisant par exemple une décomposition en valeurs singulières (SVD) sur la matrice R ou en triant les valeurs propres obtenues et en réordonnant la matrice U.
  • Selon l’invention, dans ce premier mode de réalisation, la quantification RVQ est modifiée en exploitant la décorrélation de l’espace latent transformé de z à y. Ainsi on peut remplacer les dictionnaires C1, C2, …, CK prédéfinis de différents étages par des dictionnaires transformés C’1, C’2, …, C'K sur lesquels on peut effectuer une troncature de l’espace latent. En effet, la transformée U ayant été effectuée selon un ordre d’importance des valeurs propres de la matrice de transformée, les composantes résultantes sont également ordonnées par ordre d’importance ce qui permet d’en tronquer une partie et de ne représenter que la partie restante sans dégrader de façon significative la qualité de quantification.
  • Dans un exemple de réalisation, on passe d’une dimension D=128 à une dimension tronquée DT=80.
  • Ainsi selon l’invention on définit les nouveaux dictionnaires de quantification comme suit :
  • C’1 =
  • C’2 =
  • C'K=
  • où trunc(.) désigne l’opération de troncature qui ne retient que les DT premières composantes.
  • Ainsi, l’espace latent transformé y est quantifié par une quantification RVQ en étage, par les modules 501, 502, .., 50k et les modules 551, 552, …, correspondants aux modules de quantification 201, 202, …, 20k et 251, 252, .., décrits en référence à la à l’aide des dictionnaires de quantification transformés C’1, C’2, …, C'K, stockés en mémoire dans les blocs 1001, 1002, …, 100K.
  • Les différentes informations binaires de la quantification RVQ (i1, i2, ...,ik), obtenues à l’issue des différents étages de quantification RVQ telles que décrits ci-dessus, sont multiplexées dans le bloc 530. On notera que l’invention ne change pas l’ordre des mots de code, ainsi les indices i1, i2, ...,ik selon le codage en 500 sont décodables par le décodeur RVQ existant tel que EnCodec en 111.
  • L’avantage du premier mode de réalisation de l’invention est que la complexité de la recherche dans les dictionnaires successifs et le stockage peuvent être réduits approximativement d’un facteur de DT/D, soit 80/128 dans l’exemple donné ici. Les performances de la quantification RVQ restent cependant identiques à celles de l’état de l’art.
  • Dans des variantes où la quantification de l’espace latent utilise la quantification RVQ avec d’autres dictionnaires que ceux d’EnCodec (par exemple SoundStream avec D=256 et d’autres dictionnaires), les dictionnaires C’kseront définis en fonction des dictionnaires Ckprédéfinis.
  • Dans une variante, il sera aussi possible de définir directement des dictionnaires de quantification C’k par apprentissage direct issu d’une séquence de signal y, sans passer par une étape préliminaire de définition de dictionnaires Ck existants. Cette variante revient en fait à appliquer le second mode de réalisation de l’invention détaillé plus loin, avec une quantification RVQ de l’espace latent transformé y.
  • La décrit un premier mode de réalisation d’un dispositif de décodage selon l’invention ainsi qu’un premier mode de réalisation d’un procédé de décodage selon l’invention.
  • Cette figure montre en particulier un module de décodage (600) d’une représentation latente (ou espace latent) compris dans un décodeur de signal audio tel que décrit en référence à la (bloc 110). Ainsi, le bloc de décodage de l’espace latent (bloc 111) de la est remplacée par le module de décodage de l’espace latent (bloc 600) décrit à présent.
  • Le train binaire I reçu pour la trame courante est démultiplexé (bloc 630). Dans ce premier mode de réalisation, les indices correspondent en fait aux indices de quantification RVQ, cependant les dictionnaires de quantification RVQ originaux C1, C2, …, CK sont remplacés par des dictionnaires C’1, C’2, …, C'K de dimension plus faible DT, comme au codeur décrit à la . Typiquement on prend DT =80 au lieu de D=128 dans la quantification RVQ originale.
  • Une représentation latente transformée décodée est ainsi obtenue à l’issue des différents étages de quantification inverses 1 à K comprenant les blocs 601 à 60K et 652 à 65K correspondants aux blocs 301 à 30K et 352 à 35K de la .
  • On applique ensuite, dans le bloc 613, une transformation linéaire, par exemple la transformation KLT/PCA inverse, au vecteur latent transformé décodé.
  • La matrice de rotation U stockée en 533 et obtenue par apprentissage permet d’appliquer la transformée inverse selon l’équation :
  • représentant un vecteur latent décodé intermédiaire et ext(.) représente l’opération d’extension de la dimension DT à la dimension D par ajout de (D-DT) zéros à la fin du vecteur.
  • Dans le bloc 610, on obtient le vecteur de correction de la même façon qu’au codeur dans le bloc 510, en utilisant les informations stockées en 510, telles que décrites en référence à la .
  • Puis les vecteurs et sont combinés en 612 pour former le vecteur décodé de l’espace latent .
  • Celui-ci est ensuite fourni en entrée du module de synthèse par réseau de neurones (Syn.) 112 tel que décrit en référence à la figure 1, afin d’obtenir le signal audio décodé .
  • Dans une variante, il sera aussi possible de définir directement des dictionnaires de quantification C’k par apprentissage direct issu d’une séquence de signal y, sans passer par une étape préliminaire de définition de dictionnaires Ckexistants. Cette variante revient en fait appliquer le second mode de réalisation de l’invention détaillé plus loin, avec une quantification RVQ de l’espace latent transformé y.
  • La décrit un second mode de réalisation d’un dispositif de codage ainsi qu’un second mode de réalisation d’un procédé de codage d’un signal audio selon l’invention. Cette figure montre en particulier un module de codage (700) d’une représentation latente (ou espace latent) compris dans un codeur de signal audio tel que décrit en référence à la (bloc 100).
  • Ainsi, le bloc de quantification/codage de l’espace latent (bloc 102) de la est remplacé par le module de codage de l’espace latent (bloc 700) décrit à présent.
  • Ce bloc 700 reçoit donc en entrée une représentation latente z issue du module d’analyse par réseau de neurones (bloc 101 de la ).
  • Les dimensions de l’entrée de ce module de codage (bloc 700) sont ici notées [D,T] où D est la dimension de l’espace latent dans chaque trame et T est le nombre de trames.
  • On reprend là encore l’exemple du codeur audio de la correspondant à EnCodec, où D=128, dans des variantes cette dimension pourra avoir une valeur différente. Par ailleurs, pour simplifier les notations on considère le cas du codage d’une trame donnée, avec T=1 trame. Le cas T>1 est pertinent pour des extensions de réalisation de l’invention où un codage conjoint de plusieurs trames serait réalisé. Par la suite on considèrera que l’entrée du bloc 700 est de dimension [D,1].
  • Comme dans le premier mode de réalisation, le procédé de codage selon l’invention consiste à transformer l’espace latent de sorte que les différentes composantes soient le plus décorrélées possible.
  • Selon une première étape, un vecteur latent modifié u est obtenu en retranchant du vecteur latent z, dans le bloc 702, un vecteur de correction issu du bloc 701.
  • Le vecteur peut être :
    1. Comme dans le cas du premier mode de réalisation (bloc 510), une moyenne prédéterminée (donc un vecteur de dimension [D,1]) des variables latentes de l’espace latent. De façon préférentielle, on prend une entrée x du codeur à valeurs nulles (silence) ou à valeurs de bruit faible et on récupère la valeur de z après un certain nombre de trames ; dans l’exemple d’EnCodec qui comprend des couches LSTM (pour « Long Short Term Memory » en anglais) , il est important d’attendre que le codec ait stabilisé son analyse à cause du côté récursif des couches LTSM. Dans des variantes, on peut prendre le centroïde d’un ou de plusieurs dictionnaires RVQ.
    2. le vecteur latent décodé à l’issue d’un premier étage de quantification vectorielle résiduelle RVQ tel que le bloc 201 décrit à la pour un codage avec K=1, ou
    3. de façon plus générale, le vecteur latent décodé, par exemple , à l’issue d’un nombre prédéterminé plus grand que 1, par exemple K = 2, d’étages RVQ, par exemple les blocs 201 et 202 décrits à la .
  • Ainsi, dans le mode de réalisation correspondant au mode a) décrit ci-dessus, le module 701 lit en mémoire (bloc 710) un vecteur moyen déterminé. Dans des variantes le bloc 710 détermine le centroïde du dictionnaire C1 de la façon suivante :
  • qui correspond au centroïde du premier dictionnaire de quantification (C1) des blocs 201 et 301 de RVQ tels que décrits en figure 2 et 3. Ce dictionnaire de quantification C1 est stocké en mémoire dans le bloc 710 ou de façon plus avantageuse le bloc 710 peut directement stocker la valeur prédéterminée de . Comme dans le premier mode de réalisation, on peut généraliser la définition du vecteur au cas où plusieurs dictionnaires RVQ sont utilisés pour en déterminer le centroïde.
  • Dans les modes de réalisations correspondant aux modes b) ou c) ci-dessus, le bloc 701 correspond respectivement à un ou plusieurs étages de quantification vectorielle décrits pour la méthode EnCodec et représentés à la (blocs 201, 202, …). Dans ce cas le bloc 710 stocke le ou les dictionnaires RVQ correspondants.
  • Ces blocs de quantification ne sont pas illustrés ici à la mais ils sont mis en œuvre dans le bloc 701.
  • L’intérêt des blocs 701 et 702 est d’adapter le vecteur latent z avant l’application de la transformée T du bloc 704. Pour cela, on cherche à supprimer une composante basée sur une moyenne de l’espace latent. Dans le cas a) cette composante est approximée comme étant fixe et aucune information supplémentaire comme un indice (m) ne doit être transmis. Le budget de bit utilisé par le bloc 701 est alors RM=0 bit.
  • Dans les cas b) et c), cette composante est enlevée de façon adaptative, et un indice m de quantification de 10 bits (cas b) ou 20 bits (exemple du cas c) est donné en sortie du bloc 701 vers le multiplexage dans le bloc 710. Dans cet exemple, le budget de bit utilisé par le bloc 701 est alors RM =10 ou RM=20, cela correspondant au budget de bits utilisé dans le ou les étages de quantification Q1 ou Q1/Q2.
  • Le bloc 703 effectue de façon optionnelle une mise à l’échelle de chacune des composantes du signal u représentant le vecteur latent modifié à l’issue de la soustraction de effectuée en 702. De façon préférentielle, on normalise chaque composante de u par son écart-type ; dans des variantes d’autres normalisations sont possibles. L’écart-type ( ) (ou en variante une autre valeur de normalisation) est préalablement calculé et stocké en mémoire en 711. On obtient ainsi un vecteur latent modifié et mis à l’échelle, c'est-à-dire prétraité z’. Dans des variantes, on pourra utiliser d’autres valeurs que l’écart-type de chaque composante de u.
  • Ensuite le bloc 704 effectue une transformée linéaire, par exemple de type PCA/KLT, le vecteur latent prétraité z’ est transformé par l’application d’une matrice de rotation U de taille DxD définie ci-dessous, pour obtenir un vecteur latent transformé y tel que :
  • y= trunc(U T .z’)
  • où trunc(.) désigne l’opération de troncature qui ne retient que les DT premières composantes. Dans le mode de réalisation privilégié on prend comme exemple DT=80 (à comparer avec D=128).
  • En général le bloc 704 ne requiert aucun budget de bits.
  • La matrice U est stockée dans le bloc 712.
  • Dans le mode de réalisation décrit ici, la matrice de rotation U peut être déterminée comme dans le premier mode de réalisation.
  • Dans un mode de réalisation, le codage dans le bloc 705 réalise une quantification du vecteur latent transformé y de dimension DTfixée par exemple à DT = 80.
  • Dans un exemple de réalisation, on pourra utiliser la quantification vectorielle algébrique (AVQ) de type gain-forme selon la méthode décrite dans :
  • S. Ragot, B. Bessette, and R. Lefebvre, "Low-Complexity Multi-Rate Lattice Vector Quantization with Application to Wideband TCX Speech Coding at 32 kbit/s," Proc. ICASSP, Montreal, Canada, Mai 2004.
  • Dans ce cas, le signal transformé y (ou vecteur latent transformé) est divisé en Nv sous-vecteurs successifs de dimension 8. Dans l’exemple avec une troncature en dimension DT= 80, on a Nv = 10 sous-vecteurs à coder.
  • Comme décrit dans l’article Ragot et al. précité, le signal y est mis à l’échelle par l’inverse (1/g) d’un gain global noté g qui peut être pré-estimé ou déterminé par dichotomie en maximisant le nombre de bits utilisé B tout en respectant la contrainte de budget B≤ (R-RM).
  • Le signal latent transformé et mis à l’échelle par le facteur 1/g, soit (1/g)*y, est codé donc par sous-vecteur. On obtient donc une série d’indices de quantification d’un nombre de bits variable (multiple de 4), et un code unaire représentant l’indice du quantificateur. Un exemple de mise en œuvre complète de cette quantification AVQ est donné dans le standard 3GPP AMR-WB+ (voir 3GPP TS 26.273 pour la version à virgule fixe ou TS 26.304 pour la version à virgule flottante) ; on ne détaille donc pas plus ici la réalisation de cette réalisation du bloc 705.
  • L’ensemble des données binaires issues de la quantification est multiplexé dans le bloc 705 pour former un train binaire b.
  • Les différentes informations binaires (m, b), telles que définies ci-dessus, sont multiplexées dans le bloc 720.
  • Dans des variantes, un codage entropique des indices m et b pourra être également mis en œuvre.
  • Dans des variantes, d’autres méthodes de quantification de l’espace latent transformé y sont possibles dans le bloc 705. On pourra par exemple utiliser une quantification pyramidale (PVQ) par sous-vecteur avec une allocation binaire fixe ou adaptative ; des exemples de mise en œuvre de PVQ sont donnés par exemple dans les codecs Opus ou dans le codec EVS. La mise en œuvre de la PVQ est similaire à ce qui est décrit précédemment pour la quantification AVQ. Le signal y est typiquement divisé en sous-vecteurs et normalisé par un gain global. On pourra prendre une allocation binaire fixe (prédéterminée) ou variable (comme dans le cas AVQ) pour quantifier chaque sous-vecteur par un quantificateur PVQ.
  • Dans un autre mode de réalisation, le signal y est déterminé comme décrit précédemment mais quantifié par RVQ selon le principe de codage de y dans le bloc 500 avec des dictionnaires C’k en dimension tronquée DT. Dans ce cas, une fois les blocs 701, 702, 703, 710, 711, 712 prédéterminés, les dictionnaires peuvent être déterminés par un apprentissage selon les principes de la quantification RVQ. Dans ce cas le train binaire b est constitué des sous-indices associés à chaque dictionnaire RVQ.
  • Dans des variantes, on pourra également prendre comme bloc 705 une quantification scalaire uniforme suivie d’un codage entropique.
  • Un exemple de mise en œuvre est donné par exemple dans l’article de Johannes Ballé, Valero Laparra, Eero P. Simoncelli, End-to-end Optimized Image Compression, Proc. ICLR 2017. Au lieu de quantifier l’espace latent d’un autoencodeur (ici d’un signal d’image), on prend ici le codage de l’espace latent transformé y. On applique à y quantification scalaire uniforme d’un pas prédéterminé puis on code les indices entiers de quantification par codage arithmétique.
  • Un avantage de l’invention est ici que le codage arithmétique peut exploiter la décomposition en valeurs propres associé à la détermination de la transformation (bloc 704). On ne retient que les DT premières valeurs puisque y est ici défini après troncature. Ainsi le modèle de probabilité pour le codage entropique se dérive facilement en supposant une distribution par exemple gaussienne ou laplacienne de y avec des variances données par composante respectivement par .
  • La décrit un deuxième mode de réalisation d’un dispositif de décodage selon l’invention ainsi qu’un deuxième mode de réalisation d’un procédé de décodage selon l’invention.
  • Cette figure montre en particulier un module de décodage (800) d’une représentation latente (ou espace latent) compris dans un décodeur de signal audio tel que décrit en référence à la (bloc 110). Ainsi, le bloc de décodage de l’espace latent (bloc 111) de la est remplacé par le module de décodage de l’espace latent (bloc 800) décrit à présent.
  • Le train binaire I reçu pour la trame courante est démultiplexé (bloc 801).
  • Dans le bloc 802, on obtient le vecteur de correction de la même façon qu’au codeur dans le bloc 701. Ce vecteur de correction issu du bloc 802 peut être :
  • a) une moyenne prédéterminée des variables latentes de l’espace latent ;
    b) le vecteur latent décodé à l’issue d’un premier étage de quantification vectorielle inverse RVQ selon le bloc de décodage 301 de la pour un décodage avec K=1, ou
    c) de façon plus générale, le vecteur latent décodé à l’issue d’un nombre prédéterminé d’étages RVQ de quantification vectorielle inverse d’un nombre prédéterminé plus grand que 1, par exemple K=2, selon par exemple le décodage des blocs 301 et 302 de la .
  • Dans les cas b) et c), le bloc 802 correspond alors respectivement à un ou plusieurs étages de décodage D1, D2,… , décrits pour la méthode EnCodec et représentés à la (blocs 301, 302, …). Ces blocs de quantification inverses ne sont pas représentés ici sur la .
  • Ces étages de décodage utilisent le budget de bits indiqué par l’indice de quantification m sur RM bits transmis dans le bitstream et décodé en 802.
  • Le bloc 803 de la figure 8 décode le vecteur latent transformé à partir du train binaire b. On ne décrit pas plus en détails cette étape de décodage, elle correspond au décodage en fonction de la mise en œuvre du bloc 705, avec comme exemple de variantes : AVQ, PVQ, RVQ, ou quantification scalaire avec codage entropique.
  • Pour remplacer les éléments tronqués et compléter les trames de l’espace latent transformé obtenu, des 0 peuvent être ajoutés à l’étape de transformation T du bloc 805. Dans une variante de réalisation, une injection de bruit, par exemple de type noise substitution connue de l’homme de métier, du bloc 804, pourra être prévu.
  • On applique ensuite, dans le bloc 805, une transformation linéaire, par exemple la transformation KLT/PCA inverse au vecteur latent transformé décodé.
  • La matrice de rotation U stockée en 712 et obtenue par apprentissage permet d’appliquer la transformée inverse selon l’équation :
  • représentant un vecteur latent décodé intermédiaire et ext(.) représentant l’opération d’extension de la dimension DT à la dimension D par ajout de (D-DT) zéros à la fin du vecteur. Ce vecteur est ensuite mis à l’échelle par composante (bloc 806), de la même façon que dans le bloc 703 de la figure 7, pour obtenir le vecteur .
  • Puis les vecteurs et sont combinés en 807 pour former le vecteur décodé de l’espace latent .
  • Celui-ci est ensuite fourni en entrée du module de synthèse par réseau de neurones (Syn.) 112 tel que décrit en référence à la figure 1, afin d’obtenir le signal audio décodé .
  • La illustre un exemple de mise en œuvre de réseaux de neurones utilisé dans l’invention, notamment les éléments de la partie analyse 101 et de synthèse 112. On illustre ici le cas d’EnCodec à titre d’exemple. L’architecture utilisée est très similaire et dérivée de celle du codec SoundStream – la différence principale entre les architectures d’EnCodec et de SoundStream tient au fait que les blocks « ResNetBlock » sont plus complexes dans SoundStream et que SoundStream contient en plus un couche spéciale appelée FiLM. Par contre, EnCodec contient une couche LSTM que SoundStream n’a pas.
  • La partie analyse du bloc 101 est composée de plusieurs couches successives :
    • Convolution 1D (avec un filtre ou « kernel » de longueur 7) avec 32 canaux dans le bloc 901
    • 4 blocs de convolution (902-904, 905-907, 908-910, 911-913) comprenant un bloc d’unités résiduelles (deux convolutions et une connexion « skip ») et une convolution avec décimation (« stride ») de 2, 4, 5 ou 8 et un filtre de longueur double du « stride »
    • Couche LSTM divisée en 2 sous-couches dans les blocs 914-915
    • Couche finale de convolution 1D dans le bloc 916
  • Les fonctions d’activation sont de type ELU (Exponential Linear Unit) qui est définie comme : f ( x ) = x si x ≥ 0 et a*(exp( x ) - 1) si x < 0, a est une valeur positive.
  • Les dimensions de tenseurs en entrée et sortie de chaque bloc sont détaillées à la pour la partie analyse. L’entrée du réseau de neurones d’analyse est un vecteur colonne de dimension L=320 (échantillons) ; cette dimension est écrite ici sous la forme [1, 1, 320]. Le bloc 900 utilise 32 canaux, ce qui donne une sortie de dimension [1, 32, 320]. Ensuite les blocs successifs viennent modifier les dimensions des tenseurs, avec un doublement du nombre de canaux à chaque fois (de 32 à 64, puis 128, 256 et 512) et une réduction de la dernière dimension par un facteur donné par le paramètre de pas (« stride ») qui est respectivement 2, 4, 5, 8. Les blocs 914 et 915 ne changent pas les dimensions des tenseurs. Le dernier bloc 916 réduit la dimension de [1, 512, 1] à uniquement [1, 128, 1], soit un vecteur latent de dimension D=128.
  • La partie synthèse du bloc 112 a une architecture « inversée » avec le même nombre de blocs :
    • Couche initiale de convolution 1D dans le bloc 921
    • Couche LSTM divisée en 2 sous-couches dans les blocs 922-923
    • 4 blocs de convolution transposée (924-926, 927-929, 930-932, 933-935) comprenant une convolution transposée, un bloc d’unités résiduelles et une activation ELU
    • Convolution 1D dans le bloc 936
  • Les dimensions de tenseurs en entrée et sortie de chaque bloc sont détaillées à la pour la partie synthèse. En partant d’un vecteur latent de dimension D=128 notée sous la forme tensorielle [1, 128, 1], on retrouve finalement un vecteur audio de dimension L=320 notée sous la forme tensorielle [1, 1, 320].
  • On a illustré sur la , un dispositif de codage DCOD et un dispositif de décodage DDEC, au sens de l’invention, ces dispositifs étant duals l’un de l’autre (dans le sens de « réversibles ») et reliés l’un à l’autre par un réseau de communication RES.
  • Le dispositif de codage DCOD comporte un circuit de traitement incluant typiquement :
    - une mémoire MEM1 pour stocker des données d’instructions d’un programme informatique au sens de l’invention (ces instructions pouvant être réparties entre le codeur DCOD et le décodeur DDEC) ainsi que des données calculées lors d’une phase d’apprentissage ;
    - une interface INT1 de réception d’un signal audio d’origine x ;
    - un processeur PROC1 pour recevoir ce signal et le traiter en exécutant les instructions de programme informatique que stocke la mémoire MEM1, en vue de son codage ; en particulier, le processeur étant apte à piloter un module d’analyse à base de réseau de neurones et un module de quantification d’une représentation latente tel que décrit en référence aux figures 5 et 7; et
    - une interface de communication COM 1 pour transmettre les signaux codés via le réseau.
  • Le dispositif de décodage DDEC comporte un circuit de traitement propre, incluant typiquement :
    - une mémoire MEM2 pour stocker des données d’instructions d’un programme informatique au sens de l’invention (ces instructions pouvant être réparties entre le codeur DCOD et le décodeur DDEC comme indiqué précédemment) ainsi que des données calculées lors d’une phase d’apprentissage ;
    - une interface COM2 pour recevoir du réseau RES les signaux codés en vue de leur décodage en compression au sens de l’invention ;
    - un processeur PROC2 pour traiter ces signaux en exécutant les instructions de programme informatique que stocke la mémoire MEM2, en vue de leur décodage ; en particulier, le processeur étant apte à piloter un module de décodage d’un espace latent tel que décrit en référence aux figures 6 et 8 et un module de synthèse à base de réseau de neurones ; et
    - une interface de sortie INT2 pour délivrer le signal audio décodé .
  • Bien entendu, cette illustre un exemple d’une réalisation structurelle d’un codec (codeur ou décodeur) au sens de l’invention. Les figures 4 à 10 commentées ci-dessus décrivent en détails des réalisations fonctionnelles de ces codecs.

Claims (13)

  1. Procédé de codage d’un signal audio comportant une analyse (E401) du signal audio par un réseau de neurones d’analyse pour obtenir une représentation latente du signal audio et dans lequel le codage de la représentation latente s’effectue selon les étapes suivantes :
    - application (E404) à un vecteur latent (z) représentatif de la représentation latente du signal audio ou à un vecteur latent prétraité (z’), d’une transformée linéaire (T), pour obtenir un vecteur latent transformé (y) ;
    - quantification (E405) du vecteur latent transformé (y) obtenu.
  2. Procédé selon la revendication 1, dans lequel le vecteur latent prétraité (z’) est obtenu par soustraction au vecteur latent (z) d’un vecteur de correction ( ) représentant une valeur moyenne du vecteur latent ou un vecteur latent issu d’au moins une première quantification directe.
  3. Procédé selon la revendication 2, dans lequel le vecteur latent prétraité est obtenu en outre après une mise à l’échelle des composantes du vecteur latent prétraité.
  4. Procédé selon l’une des revendications 1 à 3, dans lequel la transformée comprend en outre une réduction des composantes à quantifier par suppression d’une partie des composantes du vecteur latent.
  5. Procédé selon la revendication 2, dans lequel un indice de quantification, correspondant au budget de bits utilisé dans l’au moins une première quantification directe, est codé.
  6. Procédé selon l’une des revendications 1 à 5, dans lequel la quantification du vecteur latent transformé s’effectue par une quantification vectorielle de type gain-forme.
  7. Procédé selon l’une des revendications 1 à 5, dans lequel la quantification du vecteur latent transformé s’effectue par au moins une étape de quantification vectorielle utilisant un dictionnaire de quantification transformé.
  8. Procédé de décodage d’un signal audio comportant une synthèse (E415), par un réseau de neurones de synthèse, d’un vecteur latent décodé, pour obtenir un signal audio décodé et dans lequel le décodage du vecteur latent, s’effectue selon les étapes suivantes :
    - réception d’un train binaire comportant au moins des indices de quantification d’un vecteur latent transformé ;
    - décodage (E411) du vecteur latent transformé ( ) à partir des indices de quantification reçus ;
    - application (E412) au vecteur latent transformé décodé ( ) d’une transformée linéaire pour obtenir un vecteur latent décodé ( ).
  9. Procédé selon la revendication 8, dans lequel le vecteur latent décodé est un vecteur latent intermédiaire auquel on ajoute un vecteur de correction ( ) représentant une valeur moyenne du vecteur latent ou un vecteur latent décodé issu d’au moins une première quantification inverse directe, pour obtenir le vecteur latent décodé.
  10. Procédé selon l’une des revendications 8 à 9 comprenant en outre une étape d’ajout de composantes supplémentaires au vecteur latent décodé pour obtenir une taille prédéfinie de vecteur.
  11. Dispositif de codage comportant un circuit de traitement pour la mise en œuvre des étapes de codage selon l’une des revendications 1 à 7.
  12. Dispositif de décodage comportant un circuit de traitement pour la mise en œuvre des étapes de décodage selon l’une des revendications 8 à 10.
  13. Support de stockage, lisible par un processeur, mémorisant un programme informatique comportant des instructions pour l’exécution du procédé de codage selon l’une des revendications 1 à 7 et/ou un procédé de décodage selon l’une des revendications 8 à 10.
EP24718187.8A 2023-04-11 2024-04-10 Quantification optimisée d'un espace latent en codage audio neuronal Pending EP4695797A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2303578A FR3147899A1 (fr) 2023-04-11 2023-04-11 Quantification optimisée d’un espace latent en codage audio neuronal
PCT/EP2024/059643 WO2024213553A1 (fr) 2023-04-11 2024-04-10 Quantification optimisée d'un espace latent en codage audio neuronal

Publications (1)

Publication Number Publication Date
EP4695797A1 true EP4695797A1 (fr) 2026-02-18

Family

ID=87554823

Family Applications (1)

Application Number Title Priority Date Filing Date
EP24718187.8A Pending EP4695797A1 (fr) 2023-04-11 2024-04-10 Quantification optimisée d'un espace latent en codage audio neuronal

Country Status (4)

Country Link
EP (1) EP4695797A1 (fr)
CN (1) CN120898243A (fr)
FR (1) FR3147899A1 (fr)
WO (1) WO2024213553A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN121683550A (zh) * 2026-02-10 2026-03-17 上海交通大学 基于预训练本构网络模型的合金热变形预测系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210070767A (ko) * 2019-12-05 2021-06-15 한국전자통신연구원 오디오 부호화를 위한 잠재 벡터의 양자화 방법 및 양자화 방법을 수행하는 컴퓨팅 장치

Also Published As

Publication number Publication date
CN120898243A (zh) 2025-11-04
WO2024213553A1 (fr) 2024-10-17
FR3147899A1 (fr) 2024-10-18

Similar Documents

Publication Publication Date Title
US8515767B2 (en) Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
EP0782128B1 (fr) Procédé d&#39;analyse par prédiction linéaire d&#39;un signal audiofréquence, et procédés de codage et de décodage d&#39;un signal audiofréquence en comportant application
EP1692689B1 (fr) Procede de codage multiple optimise
EP2366177B1 (fr) Codage de signal audionumerique avec mise en forme du bruit dans un codeur hierarchique
US20250014584A1 (en) Vocoder techniques
FR2700632A1 (fr) Système de codage-décodage prédictif d&#39;un signal numérique de parole par transformée adaptative à codes imbriqués.
CN118136030A (zh) 音频处理方法、装置、存储介质和电子设备
WO2024213553A1 (fr) Quantification optimisée d&#39;un espace latent en codage audio neuronal
EP2289171B1 (fr) Procède de traitement de donnees numeriques
EP4487323B1 (fr) Codage et décodage optimisé d&#39;un signal audio utilisant un auto-encodeur à base de réseau de neurones
EP1197952B1 (fr) Procédé de codage de la prosodie pour un codeur de parole à très bas débit
WO2007107659A2 (fr) Quantification vectorielle contrainte
EP1756806B1 (fr) Procede de quantification d&#39;un codeur de parole a tres bas debit
FR2880724A1 (fr) Procede et dispositif de codage optimise entre deux modeles de prediction a long terme
US20250131940A1 (en) Multi-time-scale neural audio codec streams
WO2011144863A1 (fr) Codage avec mise en forme du bruit dans un codeur hierarchique
Kálazi Lossless Neural Coding for Multi-Channel Audio
Deshpande et al. Audio Spectral Enhancement: Leveraging Autoencoders for Low Latency Reconstruction of Long, Lossy Audio Sequences
FR3164561A1 (fr) Post-traitement d’un signal audio selon un modèle de post-traitement issu d’un entrainement optimisé
Sach et al. A Maximum Entropy Information Bottleneck (MEIB) Regularization for Generative Speech Enhancement with HiFi-GAN
WO2025109018A1 (fr) Procédé de synthèse de voix et dispositifs associés
FR3155618A1 (fr) Procédé de synthèse de voix et dispositifs de synthèse, produit programme d’ordinateur et support lisible d’information associés
Srinivasamurthy Compression algorithms for distributed classification with applications to distributed speech recognition
WO2001003119A1 (fr) Codage et decodage audio incluant des composantes non harmoniques du signal
WO2001003117A1 (fr) Codage audio avec liftrage adaptif

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20251105

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR