FR3133265A1 - Codage et décodage optimisé d’un signal audio utilisant un auto-encodeur à base de réseau de neurones - Google Patents
Codage et décodage optimisé d’un signal audio utilisant un auto-encodeur à base de réseau de neurones Download PDFInfo
- Publication number
- FR3133265A1 FR3133265A1 FR2201831A FR2201831A FR3133265A1 FR 3133265 A1 FR3133265 A1 FR 3133265A1 FR 2201831 A FR2201831 A FR 2201831A FR 2201831 A FR2201831 A FR 2201831A FR 3133265 A1 FR3133265 A1 FR 3133265A1
- Authority
- FR
- France
- Prior art keywords
- audio signal
- coding
- sign
- decoding
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005236 sound signal Effects 0.000 title claims abstract description 56
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 9
- 230000006835 compression Effects 0.000 claims description 20
- 238000007906 compression Methods 0.000 claims description 20
- 230000009466 transformation Effects 0.000 claims description 15
- 230000015572 biosynthetic process Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 12
- 238000003786 synthesis reaction Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 230000004913 activation Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000010606 normalization Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 8
- 238000011002 quantification Methods 0.000 description 8
- 238000001228 spectrum Methods 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 8
- 230000003595 spectral effect Effects 0.000 description 7
- 238000012549 training Methods 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000013139 quantization Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- OVOUKWFJRHALDD-UHFFFAOYSA-N 2-[2-(2-acetyloxyethoxy)ethoxy]ethyl acetate Chemical compound CC(=O)OCCOCCOCCOC(C)=O OVOUKWFJRHALDD-UHFFFAOYSA-N 0.000 description 1
- 101100189060 Arabidopsis thaliana PROC1 gene Proteins 0.000 description 1
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 102100028043 Fibroblast growth factor 3 Human genes 0.000 description 1
- 241000545744 Hirudinea Species 0.000 description 1
- 102100024061 Integrator complex subunit 1 Human genes 0.000 description 1
- 101710092857 Integrator complex subunit 1 Proteins 0.000 description 1
- 108050002021 Integrator complex subunit 2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000004870 electrical engineering Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/0204—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using subband decomposition
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
Abstract
Codage et décodage optimisé d’un signal audio utilisant un auto-encodeur à base de réseau de neurones L’invention se rapporte à un procédé de codage d’un signal audio comportant les étapes suivantes :- décomposition (102) du signal audio en au moins des composantes d’amplitudes et des composantes de signes ou de phase ;- analyse (104) des composantes d’amplitudes par un auto-encodeur à base de réseau de neurones pour obtenir un espace latent représentatif des composantes d’amplitude du signal audio ;- codage (105) de l’espace latent obtenu ;- codage (106) d’au moins une partie des composantes de signes ou de phase. L’invention se rapporte également à un procédé de décodage correspondant ainsi qu’à des dispositifs de codage et de décodage mettant en œuvre les procédés de codage et de décodage respectifs. Figure de l’abrégé : Figure 1a
Description
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 à l’utilisation optimisée d’un auto-encodeur à base de réseau de neurones pour le codage et décodage d’un signal audio.
Dans les systèmes de codage et décodage classiques de signal audio, le signal audio d'entrée est en général converti dans un domaine fréquentiel soit par l’utilisation d’un banc de filtres soit par l’application d’une transformée court-terme, pour obtenir un gain de codage intéressant et exploiter les propriétés psychoacoustiques de la perception auditive humaine. En effet, l’exploitation de ces propriétés psychoacoustiques se fait par exemple en répartissant le budget de bits de façon non uniforme et/ou adaptive en fonction des bandes de fréquences. La conversion temps-fréquence peut alors être vue comme une transformation vers une représentation plus adaptée pour effectuer un codage à un débit donné. Le décodeur, de son côté, doit inverser cette transformation.
Pour 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é. Dans le domaine de l’audio, des considérations perceptuelles dues aux imperfections de l’oreille humaine (ex : phénomène de masquage, …) peuvent être exploitées pour obtenir un compromis débit/distorsion (perceptuelle) encore meilleur qu’avec un codage classique non perceptuel.
Des exemples de codecs audio classiques sont donnés par les standards MPEG-Audio (ex: MP3, AAC, …) ou autres standards (ex : UIT-T G.722.1, G.719). En général ces codecs ont des architectures comprenant différents modules de traitement du signal ou de quantification/codage qui sont optimisés séparément.
Récemment, de nouvelles approches de compression des signaux sont apparues par l’utilisation des réseaux de neurones réalisant un apprentissage dit de bout en bout. Avec la généralisation des architectures de type GPUs (pour « Graphical Processing Units » en anglais) ou d’autres processeurs spécialisés pour les réseaux de neurones, ce type d’approche de codage par réseaux de neurones est prometteuse et pourrait à terme remplacer les codecs audios traditionnels.
Un exemple d‘architecture de réseau de neurones appliqués au domaine de la compression d’images et de vidéo est décrit dans les articles :
“Johannes Ballé, Valero Laparra, Eero P. Simoncelli, End-to-end Optimized Image Compression, Int. Conf. on Learning Representations (ICLR), 2017” et “Johannes Ballé, David Minnen, Saurabh Singh, Sung Jin Hwang, Nick Johnston, Variational image compression with a scale hyperprior, Int. Conf. on Learning Representations (ICLR), 2018 ».
Ces méthodes s’appuient sur le principe des auto-encodeurs (classiques) et des auto-encodeurs dits variationnels (VAE).
Les auto-encodeurs sont des algorithmes d’apprentissage à base de réseaux de neurones artificiels, qui permettent de construire une nouvelle représentation plus compacte (compressée) d’un jeu de données. L’architecture d’un auto-encodeur est constituée de deux parties ou opérateurs : l’encodeur (partie analyse) f(x) qui transforme les données d’entrée x en une représentation z et le décodeur (partie synthèse) g(z) qui resynthétise le signal à partir de z. L’encodeur est constitué d’un ensemble de couches de neurones, qui traitent les données d’entrée x afin de construire une nouvelle représentation dite “espace latent” (ou variables cachées) z de faible dimension. Cet espace latent représente sous forme compacte les caractéristiques importantes du signal d’entrée. Les couches de neurones du décodeur, reçoivent l’espace latent en entrée et les traitent afin d’essayer de reconstruire les données de départ. Les différences entre les données reconstruites et les données initiales permettent de mesurer l’erreur commise par l’auto-encodeur. L’entraînement consiste à modifier les paramètres de l’auto-encodeur afin de réduire l’erreur de reconstruction mesurée sur les différents échantillons du jeu de données. Différents critères d’erreur sont possibles, comme, par exemple, l’erreur quadratique moyenne (MSE en anglais).
A la différence d’un auto-encodeur classique, un auto-encodeur variationnel (VAE) rajoute une représentation de l’espace latent par un modèle gaussien multivarié (moyennes et variances) de l’espace latent. Un VAE est également constitué d’un encodeur (ou modèle d’inférence ou de reconnaissance) et un décodeur (ou modèle génératif). Un VAE essaie de reconstruire les données d’entrée comme un auto-encodeur, cependant, l’espace latent d’un VAE est continu.
Les méthodes de Ballé et al. Utilisent des architectures de réseaux à base de réseaux convolutionnels 2D (avec par exemple dans une réalisation un filtre de taille 5x5 et une décimation ou un suréchantillonnage – respectivement - par 2 dans chaque couche d’encodage ou de décodage) ; une normalisation adaptive dite GDN (Generalized Divisive Network) est appliquée entre chaque couche, ce qui améliore les performances par rapport à une normalisation « batch normalization ».
On notera que les méthodes de Ballé et al. utilisent une approximation du codage de l’espace par un modèle simplifié de quantification (ajout de bruit) avec un modèle gaussien pour l’apprentissage, cependant l’espace latent est en fait codée directement, ce qui revient à des méthodes d’auto-encodeur classique (ou déterministe).
L’application directe des méthodes précitées de Ballé et al., issues de la compression d’images et vidéo, pour la compression de signaux audio n’est pas satisfaisante. En effet, une image ou une séquence vidéo est constituée de pixels qui peuvent être vues comme des variables aléatoires à valeurs entières sur un intervalle prédéfini, par exemple [0, 255] pour des images ou vidéo ayant une résolution de 8 bits par pixel. Ces pixels n’ont que des valeurs positives.
Les signaux audios sont en revanche en général à valeurs signées. De plus, les signaux audios, après une transformation temps/fréquences, peuvent être réels ou complexes. En outre, la dynamique spectrale dans le domaine audio est plus importante que dans le domaine de l’image ou de la vidéo, elle est de l’ordre de 16 bits par échantillon (voire plus pour l’audio dit « haute résolution »). La transposition directe d’une architecture d’auto-encodeur similaire à Ballé et al. à l’audio donne des résultats relativement mauvais, notamment en termes de qualité de reconstruction.
Il existe donc un besoin d’optimisation des techniques de codage de type auto-encodeur pour le domaine du codage/décodage audio.
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 les étapes suivantes :
- décomposition du signal audio en au moins des composantes d’amplitudes et des composantes de signes ou de phase ;
- analyse des composantes d’amplitudes par un auto-encodeur à base de réseau de neurones pour obtenir un espace latent représentatif des composantes d’amplitude du signal audio ;
- codage de l’espace latent obtenu ;
- codage d’au moins une partie des composantes de signes ou de phase.
- décomposition du signal audio en au moins des composantes d’amplitudes et des composantes de signes ou de phase ;
- analyse des composantes d’amplitudes par un auto-encodeur à base de réseau de neurones pour obtenir un espace latent représentatif des composantes d’amplitude du signal audio ;
- codage de l’espace latent obtenu ;
- codage d’au moins une partie des composantes de signes ou de phase.
L’invention permet d’appliquer de façon optimisée des auto-encodeurs utilisant des réseaux de neurones pour le codage/décodage des signaux audios. Le codage différencié de la composante de signe ou de la composante de phase, selon la méthode de décomposition du signal, permet de garantir une bonne qualité audio. Selon l’invention, cette qualité peut atteindre des performances allant jusqu’à la transparence à débit suffisant, c'est-à-dire que la qualité du signal décodé est très proche de celle du signal d’origine.
La méthode utilisée est une méthode de bout en bout qui ne nécessite pas d’optimisation indépendantes des différents modules de codage. La méthode d’autre part n’a pas besoin de prendre en compte des considérations perceptuelles comme les méthodes de codage audio traditionnelles.
Dans un mode de réalisation particulier, le procédé comporte en outre une étape de compression des composantes d’amplitude avant leur analyse par l’auto-encodeur.
Ainsi, les données en entrée de l’auto-encodeur sont restreintes, de façon à optimiser l’analyse et l’obtention de l’espace latent résultant.
Dans un exemple de réalisation, la compression des composantes d’amplitude s’effectue par une fonction logarithmique.
Ce type de compression de complexité moindre apporte une performance de compression avantageuse pour réduire la dynamique des données à l’entrée de l’auto-encodeur.
Dans un mode de réalisation, le signal audio avant l’étape de décomposition est obtenu par une transformée de type MDCT appliqué à un signal audio d’entrée.
Dans un mode de réalisation, le signal audio est un signal multicanal.
Dans un autre mode de réalisation de l’invention, le signal audio est un signal complexe comportant une partie réelle et imaginaire issue d’une transformation d’un signal audio d’entrée, les composantes d’amplitude issue de l’étape de décomposition correspondant aux amplitudes des parties réelles et imaginaires combinées et les composantes de signe ou de phase correspondant aux signes ou phases des parties réelles et imaginaires combinées.
Ce type de représentation fréquentielle par MDCT ou par une autre transformée du signal audio offre un avantage à l’utilisation du procédé de codage selon l’invention, car elle met le signal dans une représentation temps/fréquence similaire à un spectrogramme, ce qui permet plus naturellement d’appliquer des méthodes de compression d’images ou vidéo sur les amplitudes ; les signes ou phases sont codés à part pour une meilleure efficacité.
Dans un mode de réalisation, toutes les composantes de signes ou de phase du signal audio sont codées.
Cette solution a l’avantage d’être simple mais demande d’avoir un débit suffisant.
Dans un mode particulier de réalisation, seules les composantes de signes ou de phase correspondant aux basses fréquences du signal audio sont codées.
Ainsi, il est possible d’optimiser le débit de codage en ne codant qu’une partie des signes ou des phases, ce qui réduit le débit supplémentaire nécessaire au codage des signes ou phases, sans pour autant impacter de façon significative la qualité du signal reconstruit au décodage.
Dans une variante de réalisation, les composantes de signes ou de phase correspondant aux basses fréquences du signal audio sont codées et un codage sélectif est effectuée pour les composantes de signes ou de phase correspondant aux hautes fréquences du signal audio.
Cela permet d’obtenir certaines composantes de signes ou de phases des hautes fréquences de façon optimisée tout en réduisant le débit de codage.
Dans un mode de réalisation, les positions des composantes de signes ou de phase sélectionnées pour le codage sélectif sont également codées, pour ainsi retrouver la sélection qui a été opérée au codage.
Cette solution demande cependant un débit de codage supplémentaire pour le codage de ces positions.
Dans un autre mode de réalisation, les positions des composantes de signes ou de phase sélectionnées ainsi que les valeurs associées sont codées conjointement, ce qui permet d’optimiser le débit de codage pour coder ces informations et les retrouver au décodage.
L’invention se rapporte également à un procédé de décodage d’un signal audio comportant les étapes suivantes :
- décodage de composantes de signes ou de phase du signal audio ;
- décodage d’un espace latent représentatif de composantes d’amplitude du signal audio ;
- synthèse des composantes d’amplitude du signal audio par un auto-encodeur à base de réseau de neurones, à partir de l’espace latent décodé ;
- combinaison des composantes d’amplitude décodées et des composantes de signes ou de phase décodées pour obtenir un signal audio décodé.
- décodage de composantes de signes ou de phase du signal audio ;
- décodage d’un espace latent représentatif de composantes d’amplitude du signal audio ;
- synthèse des composantes d’amplitude du signal audio par un auto-encodeur à base de réseau de neurones, à partir de l’espace latent décodé ;
- combinaison des composantes d’amplitude décodées et des composantes de signes ou de phase décodées pour obtenir un signal audio décodé.
Le procédé de décodage apporte les mêmes avantages que le procédé de codage décrit précédemment.
Dans un mode particulier de réalisation, dans le cas où les composantes de phase décodées correspondent à une partie des composantes de phase du signal audio, l’autre partie est reconstruite avant l’étape de combinaison.
Ainsi, il est possible d’optimiser le débit de codage des informations de signes ou de phases en n’en codant et décodant qu’une partie et de reconstruire l’autre partie afin de retrouver toutes les composantes de signe ou de phase au dé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 :
La décrit un premier mode de réalisation d’un codeur et d’un décodeur selon l’invention ainsi que les étapes d’un procédé de codage et d’un procédé de décodage selon un premier mode de réalisation de l’invention.
Le codec représenté en comporte un codeur (100) et un décodeur (110).
Le codeur 100 reçoit en entrée un signal audio d’entrée x, échantillonné à une fréquence fs (par exemple 48 kHz) et découpé en trames temporelles successives d’indice t et de longueur L≥1 échantillon(s), par exemple L=240 (5 ms) ; ce signal x peut être un signal mono (unidimensionnel) noté x(t,n) où n est l’indice temporel, ou un signal multicanal noté x(i,t,n) où i=0,…,C-1 est l’indice du canal et C>1 est le nombre de canaux. Dans un exemple de réalisation, on pourra prendre pour un signal stéréo ou pour un signal ambisonique d’ordre 1.
Le codage s’effectue sur un nombre de trames 1, où , où est un indice de trame identifiant la première trame analysée dans le groupe de trames analysées. Typiquement peut commencer à par convention, puis est incrémenté de échantillons à chaque groupe de trames analysées.
Une transformation temps/fréquence est appliquée en 101 au signal d’entrée x. D’une manière générale cette transformation peut être réalisée par une transformée fréquentielle décrite ci-après (MDCT, STFT . . .) ou par un banc de filtres (PQMF, CLDFB…) pour obtenir le signal transformé X.
Dans une trame donnée et pour le cas mono avec un codage par transformée, on note ce signal transformé (réel ou complexe) X(t,k) où k est un indice fréquentiel. On notera que les bancs de filtres peuvent opérer par sous-trames et générer un ensemble d’échantillons (réels ou complexes) par sous-trame ; dans ce cas le signal transformé sera noté X(t’,k) où t’ est un indice temporel (de sous-trames) et k est un indice fréquentiel.
Dans le cas multicanal, on généralise ces notations en : X(i,t,k) où une transformée est déterminée séparément à chaque canal, ou X(i,t’,k) pour le cas des bancs de filtres.
Dans un premier mode de réalisation, on considère le cas d’une transformée en cosinus discrète modifiée MDCT (pour « Modified Discrete Cosine Transform » en anglais) pour un signal mono. Dans ce cas, le signal x(t,n), n=0,…,L-1 dans la trame courante d’indice est analysé avec un segment additionnel de L échantillons futurs qui correspondent à la trame future x(t,n), n=L,…,2L-1, avec la convention que x(t,n)= x(t+1,n-L) pour n=L,…,2L-1.
La transformée MDCT est définie par :
Avec k, l’indice fréquentiel et L le nombre d’indices fréquentiels.
Dans un exemple de réalisation où fs=48000 Hz, on pourra par exemple prendre échantillons ; dans ce cas on obtient également 240 indices fréquentiels. D’autres valeurs de sont possibles selon l’invention.
Dans un mode de réalisation privilégié, on pourra tronquer la transformée MDCT lorsque la bande haute n’est pas pertinente. Par exemple, à 48 kHz, la bande 20-24 kHz n’est pas audible. Pour , les coefficients peuvent être ignorés, dans ce cas on ne garde que les premiers coefficients .
Par la suite, on notera donc le nombre de coefficients spectraux réellement utilisés.
La transformée MDCT peut être décomposée en une opération de fenêtrage, de repliement temporel et d'addition-recouvrement, suivie d'une transformation discrète en cosinus (DCT-IV). En omettant l’indice pour alléger les notations du signal intermédiaire ( ), les opérations de fenêtrage, repliement et addition sont données par:
et
avec par exemple un fenêtrage sinusoïdal donné par:
La transformation discrète en cosinus de type DCT-IV est donnée par :
Dans des variantes, d’autres fenêtres sont possibles tant qu’elles vérifient les conditions de reconstruction (quasi-)parfaite. De même, d’autres définitions de la transformée MDCT peuvent être utilisées comme la transformée MLT (pour « Modulated Lapped Transform » en anglais) et le banc de filtres TDAC (pour « Time-Domain Aliasing Cancellation » en anglais). D’autres algorithmes d’implémentation rapide et d’autres transformations intermédiaires que la DCT-IV (par exemple la transformée FFT (pour « Fast Fourier Transform » en anglais) pourront être employées. L’intérêt de la transformée MDCT est d’être à décimation critique avec coefficients transformés pour chaque trame de échantillons d’indice . Cette transformation donne un signal transformé dans le cas d’un signal d’entrée à un seul canal.
Ainsi, lorsque plusieurs trames successives sont analysées et que le signal transformé est concaténé, le signal transformé , où est un indice de trame identifiant la première trame analysée dans le groupe de trames analysées, peut être vu comme une matrice bidimensionnelle de taille avec une dimension temporelle (sur l’indice ) et une dimension fréquentielle (sur l’indice ).
Dans des variantes où le signal d’entrée est multicanal, une transformée est déterminée séparément pour chaque canal, pour obtenir un signal transformée noté où est l’indice de canal.
Dans des variantes, on pourra utiliser une commutation de fenêtres d’analyse, par exemple en fonction d’une détection de transitoires. Dans ce cas, on utilise typiquement plusieurs transformées plus courtes donnant le même nombre de coefficients au total, mais divisés en sous-trames et avec une résolution fréquentielle réduite. Dans le cas mono, pour un banc de filtres à décimation critique, cela donne un signal transformé de la forme
où est l’indice de sous-trames de longueur . On ne présente pas ici la généralisation au cas multicanal pour ne pas alourdir les notations.
Dans ce cas, pour un support temporel couvrant trames, le signal transformé est encore une matrice bidimensionnelle, mais de taille , avec une dimension temporelle (sur l’indice ) et une dimension fréquentielle (sur l’indice ). On peut pour simplifier noter et , avec une matrice de taille .
Dans un second mode de réalisation, la transformation est à coefficients complexes et elle pourra être par exemple une transformation de Fourier discrète à court-terme.
Dans ce mode de réalisation, l'utilisation de la transformée MDCT dans le bloc 101 de la peut être remplacée par une transformée de Fourier à court-terme STFT (pour « Short-Time Fourier Transform » en anglais).
La STFT est définie comme suit :
où est par exemple un fenêtrage sinusoïdal sur échantillons comme défini dans le cas MDCT. Dans des variantes d’autres fenêtrages sont possibles.
De même, dans des variantes, d’autres transformations complexes seront utilisées, par exemple une MCLT (pour « Modulated Complex Lapped Transform » en anglais) qui combine une MDCT, pour la partie réelle et une MDST (pour « Modified Discrete Sine Transform » en anglais), pour la partie imaginaire.
Le bloc 101 donne dans ce cas des coefficients complexes. Dans cette variante de réalisation, les coefficients complexes de la transformée (STFT, MCLT..) sont décomposés par le bloc 102, en partie réelle et imaginaire avec :
et
Où Re(.) la partie réelle et Im(.) représente la partie imaginaire.
Le procédé de codage selon l’invention est appliqué avec différentes variantes possibles :
- Soit les parties réelles et imaginaires sont vues comme 2 canaux, avec un signal X(i,t,k) qui peut être vu comme un signal stéréo, où :
Dans ce cas, le signal transformé est une matrice tridimensionnelle avec une dimension canal, une dimension temporelle (sur l’indice ) et une dimension fréquentielle (sur l’indice ).
- Soit les parties réelle et imaginaire sont combinées dans une séquence dont le support est doublé par entrelacement :
ou par concaténation
Dans ce cas, le signal transformé est encore une matrice bidimensionnelle avec une dimension temporelle (sur l’indice ), dont la durée est doublée par rapport au cas réel, et une dimension fréquentielle (sur l’indice ).
La généralisation du cas complexe au multicanal n’est pas développée ici car elle suit les mêmes principes.
Le bloc 102 décompose le signal transformé supposé mono et réel (sans perte de généralité) X(t,k) en deux parties : amplitudes |X(t,k)|, k=0,…, -1 et signes notés ici s(t,k),k=0,…, -1 définis par exemple comme suit :
Cette opération se généralise pour le cas où le signal transformé est multidimensionnel, dans ce cas l’extraction des amplitudes et des signes se fait séparément pour chaque coefficient.
Dans le cas de coefficients complexes, le bloc 102 fournit donc des composantes d’amplitudes à la fois de la partie réelle et de la partie imaginaire du signal X(t,k) :
Et
et des composantes de signe correspondant aux signes des parties réelles et imaginaires du signal X(t,k).
Ainsi, l’amplitude en sortie du bloc 102 correspond aux amplitudes des parties réelles et imaginaires combinées, les signes en sortie du bloc 102 correspondent aux signes des parties réelles et imaginaires combinés.
Le bloc 103 met en œuvre une normalisation et/ou une compression des amplitudes |X(t,k)|. Le but est de réduire la dynamique spectrale et faciliter le traitement par un auto-encodeur. On décrit ci-dessous différents exemples de réalisation pour le cas mono avec une transformée MDCT.
Dans un mode de réalisation particulier, la compression effectuée par ce bloc 103 pourra être réalisée par une fonction logarithmique telle que la loi μ définie sans perte de généralité sur un intervalle [0, 1] comme suit :
où la valeur de μ est par exemple fixée à μ=255 et le facteur de est une valeur maximale. La valeur de sortie est ici normalisée à [0, 1].
Dans un exemple de réalisation on prend en supposant que les signaux d’entrée sont au format PCM sur 16 bits, et que la transformée conserve le niveau maximal d’entrée. Dans des variantes, d’autres valeurs fixes (constantes) de sont possibles, en particulier avec une mise à l’échelle en fonction de la transformée utilisée.
Dans un autre exemple de réalisation est donné par :
Dans une variante, peut-être calculé sur la base de tous les éléments des données d’entrée comme suit :
où Ds représente l’ensemble des données à l’entrainement du réseau 120. Dans ce cas cette valeur prédéterminée lors de l’apprentissage n’a pas à être transmise, mais elle dépend de la base d’apprentissage et peut occasionner des saturations si sur un signal de test particulier.
Dans certains cas la normalisation implique de coder le niveau maximal (le lien avec le multiplexeur 107) n’est pas montré pour ne pas alourdir la .
Dans d’autres variantes de réalisation, d'autres fonctions de compression que la loi μ peuvent être utilisées, par exemple une loi A ou une fonction sigmoïde.
Dans encore une autre variante possible, aucune compression ni aucune normalisation n’est utilisée. Dans ce cas, le module 103 n’existe pas et on suppose que le bloc d’analyse 104 de l’auto-encodeur 120 utilise une normalisation intégrée de type « batch normalization » ou des couches de type GSD selon les méthodes de Ballé et al..
Dans des variantes, seule la compression d’amplitude est appliquée de sorte que l’amplitude maximale reste préservée, en normalisant le signal en fonction de la valeur maximale :
en appliquant la compression, puis en remultipliant le signal par pour conserver la valeur maximale égale à dans la ou les trame(s) courante(s) d’indice .
Ce principe de normalisation et/ou compression d’amplitude se généralise directement au cas multidimensionnel, la valeur maximale étant calculée sur l’ensemble des coefficients en prenant en compte toutes les dimensions, soit séparément (avec une valeur maximale par canal), soit en simultané (avec une valeur maximale globale).
Le bloc 104 représente la partie analyse d’un exemple d’auto-encodeur. Un exemple de réalisation du bloc 104 est donné en rapport à la figure 2a décrite plus loin. Ici l’entrée du réseau correspond aux amplitudes du signal transformé et compressé ; ce signal – ici dans le cas mono – correspond à un spectrogramme et peut être vu comme une image bidimensionnelle (de taille dans le mode de réalisation privilégié) lorsque plusieurs trames ou sous-trames successives sont regroupées comme décrit précédemment.
Dans un exemple de réalisation, on considère le cas d’un groupe de 200 trames de 240 échantillons (soit une seconde de signal à 48 kHz), ce qui donne 200 x 200 coefficients si coefficients MDCT sont conservés sur la bande 0-20 kHz. Dans des variantes on pourra analyser le signal sur une durée plus courte ou plus longue, le cas extrême étant donné par une seule trame 1 de 20 ms pour obtenir 800 coefficients MDCT sur la bande 0-20 kHz à 48 kHz (on ne garde que les 800 premiers sur 960 coefficients par trame).
Dans des variantes, on prendra un banc de filtres. Par exemple, en prenant le cas d’une fréquence d’échantillonnage différente, on pourra prendre 20 sous-trames dans une trame 20 ms à 32 kHz, ce qui donne 20 x 40 coefficients MDCT sur la bande 0-16 kHz à 32 kHz pour le bloc 104.
La sortie de la partie encodeur 104 est la représentation du signal dans un espace latent noté Z( ), où est un indice de carte d’activation, et sont les indices de ligne (temporel) et colonne (fréquentiel) dans chaque carte d’activation.
Le bloc 104 est chargé de trouver une représentation du signal dans un espace latent noté Z( ), tel que :
où est la fonction appliquée par la partie analyse du réseau et correspond aux paramètres du réseau de neurones. Ces paramètres seront appris pendant l’entrainement du modèle.
Dans un mode de réalisation particulier où l’auto-encodeur suit le principe d’un auto-encodeur variationnel lors de la phase d’apprentissage, chaque carte latente est supposée suivre une distribution gaussienne telle que: selon Ballé et al. (2017).
La répartition des valeurs est supposée homogène, la variance est estimée pour chaque carte d’activation (ou « feature map » en anglais). Dans des variantes, une version hyperlatente selon Ballé et al (2018) est utilisée, où , ce qui revient à appliquer un modèle gaussien à chaque « pixel » d’indice dans chaque carte d’indice .
La représentation latente encore appelée espace latent correspond au goulot d’étranglement (« bottleneck » en anglais) de l’auto-encodeur.
Dans les exemples donnés précédemment, on aura par exemple un espace latent de taille 128 x 25 x 25 pour le cas de données d’entrée réelles de taille 200 x 200 pour l’exemple de réseau donné à la .
Si on suppose un codage (bloc 105) par quantification scalaire et codage entropique, lors de l’entrainement de l’auto-encodeur, les paramètres (codage) et (décodage) sont optimisés selon une fonction de coût suivante :
où D est une mesure de la distorsion définie par exemple par :
où est la distribution de probabilité de Y(t,k).
R est l’estimation du débit nécessaire pour transmettre l’espace latent définie comme suit :
avec la distribution de probabilité de Z(m,p,q) (phase d’apprentissage du réseau). En pratique, pour la phase d’apprentissage, le débit R est évalué par une sommation sur de l’entropie estimée selon le modèle de probabilité gaussien et la distorsion est évaluée par une sommation de l’erreur quadratique sur les différentes données d’entrée/sortie.
Pour la phase d’utilisation du réseau, le débit R est remplacé par le débit réel d’un codage entropique (par exemple codage arithmétique).
Le compromis entre fidélité de la reconstruction et débit est paramétrable par la valeur λ. Un λ petit favorisera la qualité de reconstruction au détriment du débit, un λ grand favorisera le débit, mais la qualité du signal audio en sortie sera dégradée.
Dans le cas d’une quantification vectorielle, le réseau de neurones est entraîné pour minimiser la distorsion à un débit donné.
Cet espace latent qui est représentatif des composantes d’amplitude du signal audio est codée dans le bloc 105 par exemple par quantification scalaire et codage entropique (ex : codage arithmétique) comme dans les articles de Ballé et al. précités. On notera que lors de l’apprentissage le codage entropique est typiquement remplacé par un modèle théorique de quantification et une estimation de l’entropie de Shannon, comme dans les articles de Ballé et al..
Dans des variantes, le codage de l’espace latent (bloc 105) se fait par quantification vectorielle à un débit donné. Un exemple de réalisation consiste à appliquer une quantification vectorielle de type gain-forme en fonction d’un budget de bits global alloué à la quantification de l’espace latent, où un gain global (scalaire) et une forme codée par bloc de 8 coefficients par quantification vectorielle algébrique selon l’article de S. Ragot et al., "Low-Complexity Multi-Rate Lattice Vector Quantization with Application to Wideband TCX Speech Coding at 32 kbit/s," Proc. ICASSP, Montreal, Canada, May 2004. Cette méthode est par exemple mise en œuvre dans les codecs 3GPP AMR-WB+ et EVS.
Selon l’invention les signes, notés s(t,k) pour le cas d’une transformée réelle d’un signal mono, sont codés à part, par le bloc 106 selon des modes de réalisation décrits plus loin.
La représentation latente codée en 105 ainsi que les signes codés en 106 sont multiplexés dans le flux binaire dans le bloc 107.
On décrit maintenant différents modes de réalisation du codage des signes (bloc 106) selon l’invention. Selon l’invention, trois variantes principales sont développées pour la ou les trame(s) courante(s) :
- Codage de tous les signes
- Codage de tous les signes dans les basses fréquences et codage sélectif des signes dans les hautes fréquences (avec signes non codés aléatoires et/ou estimés par reconstruction/prédiction de phase) – des phases peuvent être estimées en effectuant une transformation de type MDST (Modified Discrete Sine Transform) du signal reconstruit dans les trames précédentes, les signes non codés se déduisent alors des phases prédites comme détaillé plus loin.
- Codage de tous les signes dans les basses fréquences et reconstruction/prédiction de phase pour l’estimation des signes dans les hautes fréquences
Pour des amplitudes codées à un débit donné, ces trois variantes de codage des signes permettent d’atteindre des compromis débit/qualité différentes : la variante A donne la meilleure qualité mais à débit élevé, la variante B donne une qualité intermédiaire à débit plus faible, et enfin la variante C donne une qualité plus limitée mais à débit réduit. La fréquence limite délimitant les basses et hautes fréquences est un paramètre permettant de contrôler plus finement ce compromis, cette fréquence notée ci-dessous pourra être fixe ou adaptative.
Dans des variantes, il sera possible de combiner les variantes B et C en définissant plusieurs sous-bandes fréquentielles : une bande basse (où tous les bits sont codés), une bande intermédiaire (où une sélection de bits sont codés), une bande haute (où aucun bit n’est transmis, et les bits de signes sont estimés au décodeur).
On notera que les signes correspondent de façon équivalente à une matrice binaire
de taille , ce qui correspond par exemple à 40 000 bits sur une seconde (donc un débit de 40 kbit/s) pour l’exemple 200, = 200 d’un signal échantillonné à 48 kHz et codé par blocs de 200 trames couvrant 1 seconde. Dans des variantes la convention complémentaire (qui inverse la définition des bits 0 et 1) pourra être utilisée.
Lafigure 1billustre un mode de réalisation direct (variante A), où ces bits de signe sont simplement multiplexés selon un ordre prédéterminé dans le train binaire, par exemple en écrivant les signes trame par trame, allant de à et dans une trame donnée selon un ordre prédéterminé, par exemple de à . Dans des variantes, on pourra écrire les signes dans n’importe quel ordre donné qui correspond à une permutation bidimensionnelle de la matrice de taille .
On notera que ce codage se généralise facilement au cas multicanal, puis qu’il suffit de définir les bits de signe correspondants à et de multiplexer tous les bits sur l’ensemble des 3 dimensions ( ).
Lafigure 1cillustre un autre mode de réalisation (variante B) où on ne code pas la totalité des signes afin de réduire le débit requis pour le codage des signes. Dans cet exemple de réalisation, on code tous les signes des basses fréquences et un sous-ensemble de signes des hautes fréquences , où peut être fixé à une valeur fixe (par exemple pour = 200 dans l’exemple précédent) ou adaptative (en fonction du signal), et est aussi fixe à une valeur prédéterminé ( à la figure 1c). Selon les modes de réalisation, la variante B peut coder, en plus des signes en basses fréquences et des bits sélectionnés en hautes fréquences, des métadonnées sur un budget de bits.
Dans des variantes, on pourra utiliser une découpe avec plus que 2 sous-bandes fréquentielles (en plus des bandes basse et haute) de manière à allouer plus finement le nombre de bits de signe codés par sous-bande. De façon préférentielle, les signes de la première bande fréquentielle seront tous codés car il est important de préserver l’information de signe pour les basses fréquences.
On notera que ce codage se généralise facilement au cas multicanal, puis qu’il suffit de définir les bits de signe correspondants à et de répéter le codage et multiplexage des signes pour chaque canal d’indice .
Différentes méthodes de sélection et/ou de codage (indexation) du sous-ensemble de signes sont possibles en considérant d’abord le cas simple de 2 sous-bandes et d’une seule sous-bande en hautes fréquences :
- Variante B1 :
- Dans une variante (variante B1a), Une recherche des
- Dans une variante (variante B1a), Une recherche des
Les positions des signes parmi coefficients hautes-fréquences est codée par des techniques de codage combinatoire. Par exemple, lorsque 2 et 200-80=120, on aura 7140 combinaisons possible, soit = 13 bits par trame (soit 2.6 kbit/s pour 200 trames par seconde). Le débit de codage des signes est alors : (80+2+13)x200 = 19 kbit/s. Dans des variantes, on pourra découper la bande haute en sous-bandes séparés et appliquer la méthode par sous-bande, ou en séries de positions entrelacées (« tracks ») et appliquer la méthode par « track » (les tracks sont ici définies au sens d’une décomposition des positions sous forme polyphase similaire au codage de pulses dans la méthode ACELP de la norme UIT-T G.729).
- Dans une autre variante (variante B1b), un code correcteur d’erreurs en bloc est utilisé pour coder conjointement la position et les valeurs des
Dans un exemple de réalisation, on pourra prendre un code de Hamming étendu de type [2m, 2m-m- 1, 4] dont les valeurs sont +/-1 et non 0/1, ce qui signifie que les signes (et leurs positions) de 2mraies sont représentés sur 2m-m– 1 bits. Par exemple, en prenant un code de Hamming étendu [8, 4, 4], on découpe les 200-80=120 bits de signes en hautes fréquences en 15 blocs de 8 bits, et on obtient par décodage (en prenant le spectre signé comme valeur de « soft bit ») un total de 15 blocs de 4 bits de contrôle, soit 60 bits par trame (ou 12 kbit/s pour 200 trames par seconde) pour coder les signes (et leur positions).
Le débit de codage des bits de signes est donc (80+60)x200 = 28 kbit/s. Dans des variantes d’autres codes correcteurs en bloc seront utilisés. Dans des variantes, on pourra entrelacer les codes correcteurs pour permettre de répartir plus facilement les bits de signes codés.
- Dans d’autres sous-variantes (variante B1c), on pourra aussi classifier les sous-bandes en bande tonale ou bande de bruit selon par exemple un critère de « spectral flatness » connu de l’état de l’art, puis on ne codera des signes que dans les bandes tonales. Ce critère de « spectral flatness » est estimé sur les amplitudes originales, et une indication de tonalité doit être transmise pour chaque sous-bande en plus des positions.
- Variante B2 : la recherche des
Dans d’autres sous-variantes, on pourra aussi classifier les sous-bandes en bande tonale ou bande de bruit selon par exemple un critère de « spectral flatness » connu de l’état de l’art, puis on ne codera des signes que dans les bandes tonales. Ce critère de « spectral flatness » est estimé sur les amplitudes décodées en local (donc non transmis).
Dans des variantes, la sélection de la position des signes pourra s’appuyer sur une estimation de courbe de masquage fréquentiel pour détecter les pics les plus importants perceptuellement, par exemple en fonction d’un rapport signal à masque selon les méthodes connues dans l’état de l’art.
La illustre un autre mode de réalisation (variante C) où tous les signes dans les basses fréquences sont codés (multiplexés) dans le bloc 120 et les bits des hautes fréquences ne sont pas transmis au codeur. Ces données manquantes sont estimées au décodeur par reconstruction/prédiction de phase pour l’estimation des signes dans les hautes fréquences.
Ainsi dans cette variante, on code tous les signes des basses fréquences et aucun signe des hautes fréquences , où peut être fixé à une valeur fixe ou adaptative.
Pour l’exemple précédent, où 200, = 200 d’un signal échantillonné à 48 kHz et codé par blocs de 200 trames couvrant 1 seconde, le débit requis pour les signes est par exemple de 16 000 bits sur une seconde (soit 16 kbit/s) quand (soit une fréquence de coupure à 8 kHz).
Les méthodes ci-dessus se généralise au cas de plusieurs sous-bandes, et aussi aux cas d’un banc de filtre, d’une transformée complexe séparée en parties réelles ou imaginaires, ou au cas multicanal.
Dans d’autres variantes, les différentes réalisations du codage des signes pourront être adaptées dans le cas où les coefficients sont divisés en sous-bandes fréquentielles et le codage des signes est effectué séparément pour chaque sous-bande.
La représente également le décodeur 110 maintenant décrit.
Le bloc 111 démultiplexe le flux binaire pour trouver d’une part les représentations codées de l’espace latent Z(m) et d’autre part, les signes s(k).
L’espace latent est décodé en 112. La partie synthèse (bloc 113) de l’auto-encodeur 120 reconstruit le spectre à partir de l'espace latent décodé sous la forme :
Le bloc 114 permet de décompresser l’amplitude et de dénormaliser l’amplitude (si le bloc 103 a été mis en œuvre). Dans ce cas on utilise par exemple une fonction logarithmique inverse comme la loi μ inverse définie par :
Lorsqu’une variante du bloc 103 est mise en œuvre, le bloc 114 est adapté en conséquence. Dans certains cas la normalisation implique de décoder un niveau maximal (le lien avec le démultiplexeur 111) n’est pas montré pour ne pas alourdir la .
Les signes du signal sont décodés dans le bloc 115 comme suit :
Dans le cas où tous les bits de signes ont été multiplexés un par un dans le train binaire, on démultiplexe les bits reçus selon l’ordre d’écriture du bloc 106. Quand le train binaire n’a subi aucune erreur binaire, on aura .
Comme au codage, on distingue 3 variantes de décodage des informations de signe (Variantes A, B, C).
Dans la variante A, le décodage des signes se résume à démultiplexer les bits de signe selon l’ordre utilisé au codage et à convertir la valeur du bit de signe avec par exemple :
Dans la variante B, le décodage des signes est effectué comme dans la variante A pour les bits de signe des basses fréquences. Une partie des signes en hautes fréquences est codée, on démultiplexe les bits par trame et on décode les positions pour retrouver les positions correspondantes. Le décodage des positions est effectué selon la méthode de codage utilisée, soit par des méthodes de décodage combinatoire, soit par des codes correcteur d’erreur.
Dans des variantes (B1a), les positions sont déterminés à partir des amplitudes décodées , avec éventuellement l’estimation d’une courbe de masquage.
On a donc :
pour .
Pour le reste des signes des hautes fréquences, dans une variante, on donne à tous les signes une valeur aléatoire, dans une autre variante on donne la même valeur à tous les signes, soit
pour , où random() est un tirage aléatoire binaire selon l’état de l’art.
Dans d’autres variantes (B1b), les signes et leurs positions sont conjointement décodés pour obtenir directement , . Par exemple, en prenant un code de Hamming étendu [8, 4, 4], on découpe les 200-80=120 bits de signes en hautes fréquences en 15 blocs de 8 bits. On démultiplexe 8 fois un indice sur 4 bits et on obtient par « codage correcteur » le mot de code (parmi 16 possibilités) à valeurs +/-1 donnant directement la séquence sur 8 raies fréquentielles (consécutives ou entrelacées).
Dans la variante C, illustrée à la , le décodage des signes est effectué comme dans la variante A pour les bits de signe des basses fréquences (bloc 130). Les signes des hautes fréquences sont des informations manquantes, et elles sont estimées par exemple par des méthodes décrites dans la norme 3GPP TS 26.447, clause 5.4.2.4.3 (tonal prediction). On notera ici que contrairement à une correction de pertes de trames, l’information d’amplitude est ici disponible pour les hautes fréquences. Seule l’information de signe est manquante et est donc estimée. Un exemple de réalisation consiste à adapter les méthodes de correction de perte de trames MDCT décrites dans la clause 5.4.2.4.3 de la norme 3GPP TS 26.447. Les phases peuvent être estimées en effectuant une transformation de type MDST (Modified Discrete Sine Transform) du signal reconstruit dans les trames précédentes, les signes non codés se déduisent alors des phases prédites. En particulier les signes peuvent être déterminés au décodeur en retenant le signe du résultat de l’équation 146 de la norme 3GPP TS 26.447.
Le bloc 116 permet la combinaison des signes décodés et des amplitudes pour la reconstruction des trames initiales selon la formule suivante :
Le bloc 117 applique la MDCT inverse pour obtenir le signal décodé . Lorsque le nombre de coefficients MDCT utilisés est tel que , le bloc 117 rajoutera coefficients à zéro à la fin du spectre de chaque trame, afin de retrouver un spectre de de coefficients.
Chaque opération de la MDCT inverse opère sur L coefficients pour produire L échantillons audios dans le domaine temporel. La MDCT inverse peut-être décomposée en une DCT-IV suivie d'opérations de fenêtrage, de dépliement et addition. La DCT-IV est donnée par :
Les opérations de fenêtrage, dépliement et d’addition utilisent la moitié des échantillons de la sortie DCT-IV de la trame actuelle avec la moitié de ceux de la sortie DCT-IV de la trame précédente selon :
où
La moitié inutilisée de u( ) est mémorisée en tant que uold( ) pour être utilisée dans la trame suivante:
La illustre les éléments de l’auto-encodeur 120, notamment les éléments de la partie analyse 104 et de synthèse 113.
La partie analyse du bloc 104 est composée dans cet exemple de quatre couches convolutionnelles (blocs 200, 202, 204 et 206). Chaque couche consiste en une convolution 2D avec des filtres de dimension K x K (par exemple 5x5), suivie d'une décimation par 2 de la taille des cartes d'activation. La taille des cartes d'activation devient de plus en plus petite au fur et à mesure que l'on progresse dans la partie analyse. Cependant, les dimensions à l'entrée et à la sortie des couches est en général différent.
La , montre un exemple d'application des couches des blocs 200, 202, 204, et 206 de la partie analyse. La première couche représentée par le bloc 200 reçoit un signal mono (1,200,200). En sortie de cette couche, on reçoit une carte d'activation de taille (128, 200, 200), où N=128 est le nombre de cartes d'activation considérées dans cette couche. Le bloc suivant 202 reçoit un signal multicanal de taille (128, 200, 200), et avec la décimation par 2 de la taille de la carte d'activation, on obtient en sortie une carte d'activation de taille (128, 100, 100). Le même processus est appliqué par la couche 204 où nous avons en sortie une couche d'activation de taille (128,50,50). Enfin, le dernier bloc 206 donne un signal de taille (128, 25, 25).
À la suite de chacune des 3 premières couches de convolution 2D, une fonction d’activation « Leaky ReLU » est utilisée bloc 201, 203 et 205. La fonction « Leaky ReLU » est définie comme suit :
avec une constante de pente négative ayant par exemple comme valeur 0,01.
Pour la dernière couche, il n’y a pas de fonction d’activation pour ne pas limiter les valeurs que peut prendre y à la sortie de la couche.
Dans des variantes la fonction ReLU pourra être remplacée par d’autres fonctions connues dans l’état de l’art, par exemple une fonction ELU (Exponential Linear Unit).
Pour la partie synthèse (bloc 113), cette dernière a une architecture construite en miroir par rapport à la partie analyse. Il y a 4 couches successives de convolution transposée 2D (blocs 216, 214, 212 et 210). L'ajout de la convolution transposée permet une interpolation non linéaire plus riche qu'une simple pondération linéaire des valeurs. Dans la partie synthèse, c'est la dernière couche, le bloc 216, qui a N entrées et le nombre des canaux du signal en sortie, les autres couches ont N entrées et sorties. Comme pour la partie analyse, après chacune des 3 premières couches, une fonction d'activation « Leaky ReLU » est utilisée dans les blocs 215, 213 et 211.
La , montre un exemple d'application des couches des blocs 210, 212, 214, et 216 de la partie synthèse. Le bloc 210 reçoit un signal multicanal de taille (128, 25, 25) et donne une carte d'activation de taille (128, 50, 50). De la même manière, les blocs 212 et 214 donnent des couches de taille (128, 100, 100) et (128,200,200) respectivement. Enfin la couche 216 reçoit un signal de taille (128,200,200) et donne un signal de même taille que le signal mono original (1, 200,200).
Le nombre de cartes d’activation N permet de donner plus ou moins de degrés de liberté au modèle pour représenter les signaux d’entrée. Pour un entrainement fait uniquement avec une contrainte de distorsion sans contrainte de débit (λ = 0), plus la valeur de N sera élevée plus la qualité de reconstruction du modèle sera importante. Pour un N donné, un entrainement fait uniquement avec une contrainte de distorsion (λ = 0) permet d’avoir une estimation de la qualité de reconstruction maximale que peut attendre le modèle avec N carte d’activation. Avec l’introduction de la contrainte de débit (λ > 0), la qualité de reconstruction sera forcément moins importante que cette qualité maximale.
La illustre à présent un second mode de réalisation d’un codeur 300 et d’un décodeur 310 selon l’invention ainsi que les étapes d’un procédé de codage et d’un procédé de décodage selon un deuxième mode de réalisation de l’invention. Alors que le premier mode de réalisation décompose le signal audio en amplitudes et signes, le second mode de réalisation décompose le signal audio en amplitudes et phases. Les principes de codage des signes décrits pour le premier mode de réalisation sont étendus au cas des phases, la différence principale tient dans le fait qu’au lieu d’avoir 1 bit pour représenter un signe (ou un bit de signe) on aura en général plusieurs bits par phase (par exemple 7 bits en basses fréquence et 5 bits en haute fréquence). Quand la phase est codée sur 1 bit, on retombera sur un cas similaire au premier mode de réalisation où le signe est codé.
Dans cette figure, le bloc de transformée 101 reste le même que celui décrit en référence à la , mais avec une transformée complexe (STFT ou MCLT par exemple).
Le bloc 302 diffère du bloc 102 de la figure 1a. Ce bloc 302 décompose le signal transformé X(t,k) en deux parties : amplitudes |X(t,k)|, k=0,…, -1 et phases notés ici = arg X(t,k) , ,k=0,…, -1 où arg(.) est l’argument complexe.
Pour le codage des amplitudes, les blocs 103 à 105 décrits en référence à la restent inchangés.
Dans ce mode de réalisation, le bloc 306 code séparément les phases ainsi obtenues du signal d’entrée. Ces phases codées sont ensuite multiplexées dans le flux binaire en 307, avec la représentation latente codée en 105. La principale différence par rapport au mode de réalisation de la figure 1a tient dans le fait que l’information de phase n’est pas codée sur 1 bit mais sur un budget plus important, par exemple 7 bits par phase, pour un dictionnaire de quantification scalaire uniforme sur [0, ], avec un pas de . Dans des variantes, le budget pour coder une phase pourra dépendre de la bande de fréquence, avec par exemple 7 bits par phase en basses fréquences et 5 bits par phase en hautes fréquences.
On peut définir comme dans le premier mode de réalisation 3 variantes :
- Codage de toutes les phases
- Codage de toutes les phases dans les basses fréquences et codage sélectif des phases dans les hautes fréquences (avec phases non codés aléatoires et/ou estimés par reconstruction/prédiction de phase). Dans ce cas, on pourra comme pour le codage de signes dans le premier mode de réalisation, sélectionner des positions des
- Codage de toutes les phases dans les basses fréquences et reconstruction/prédiction de phase pour l’estimation des phases dans les hautes fréquences. Dans ce cas, on ne code les phases que pour les basses fréquences, pour
Au décodage, le bloc 311 démultiplexe le flux binaire pour trouver d’une part les représentations codées de l’espace latent Z(m,p,q) représentant la partie amplitudes |X(t,k)|et d’autre part, la version codée des phases .
Les blocs 112 à 114 restent inchangées par rapport à ceux décrits en référence à la .
Le bloc 315 décode les phases en fonction des variantes A, B utilisées au codage, afin de les combiner en 316 avec les amplitudes décodées. La variante C est considérée à la .
Le bloc de transformée inverse 117 reste inchangée par rapport au bloc 117 de la .
La illustre à présent un autre mode de réalisation d’un codeur 400 et d’un décodeur 410 selon l’invention ainsi que les étapes d’un procédé de codage et d’un procédé de décodage selon un mode de réalisation de l’invention.
Dans ce mode de réalisation, le bloc 401 utilise une transformée de Fourier à court-terme STFT. Le bloc 402 réalise une décomposition du signal transformé X(t,k) en deux parties : amplitudes |X(t,k)|, k=0,…, -1 et phases notées ici Φ(t,k),k=0,…, -1.
Dans ce mode de réalisation, seule une partie des phases, par exemple, seule la partie correspondant aux basses fréquences du signal transformé ( ), est codée par le bloc 406.
Dans une variante, une partie des composantes de phase des hautes fréquences peut également être codée.
Dans un exemple de réalisation, avec une STFT où L= 240 échantillons, on entend par basse fréquence les raies fréquentielles d’indice 0 à 79 ce qui correspond à environ une bande fréquentielle de 8 kHz.
Pour le codage des amplitudes, les blocs 103 à 105 décrits en référence à la restent inchangés.
La représentation latente codée en 105 est ensuite multiplexée dans le flux binaire en 407 avec la partie codée en 406 des phases du signal transformé.
Au décodage, le bloc 411 démultiplexe le flux binaire pour trouver les représentations codées de l’espace latent Z(m,p,q) et une partie des phases du signal.
Cette partie de phase pour les basses fréquences est décodée en 415 ( ).
Les blocs 112 à 114 restent inchangées par rapport à ceux décrits en référence à la .
L’autre partie des phases ( pour les hautes fréquences est reconstruite par le bloc 418. Pour cela, après la compression inverse du bloc 114, un algorithme de reconstruction des phases non codées de la STFT est utilisé dans ce bloc 418. Cet algorithme permet l’inversion du spectrogramme d’amplitude à l'aide d’un algorithme comme décrit dans le document D. W. Griffin and J. S. Lim, “Signal estimation from modified short-time Fourier transform,” IEEE Trans. ASSP, vol.32, no.2, pp.236–243, Apr. 1984. Étant donné une matrice d'amplitude pour une transformée de Fourier à court terme , l'algorithme initialise de manière aléatoire les phases ( correspondant à , puis alterne les opérations de STFT directe et inverse. De façon préférentielle, cette estimation des phases en hautes fréquences pourra être mise en œuvre par un traitement à une fréquence d’échantillonnage plus faible que la fréquence d’échantillonnage fs du signal d’entrée/sortie.
Le bloc 416 combine les amplitudes décodées et les phases décodées ( ) et reconstruites ( , puis une application de la STFT inverse est effectuée dans le bloc 417 pour la reconstruction du signal original.
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) ;
- une interface INT1 de réception d’un signal audio d’origine mono ou multicanal 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 d’un auto-encodeur à base de réseau de neurones ; et
- une interface de communication COM 1 pour transmettre les signaux codés via le réseau.
- 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) ;
- une interface INT1 de réception d’un signal audio d’origine mono ou multicanal 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 d’un auto-encodeur à base de réseau de neurones ; 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) ;
- 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 synthèse d’un auto-encodeur à base de réseau de neurones ; et
- une interface de sortie INT2 pour délivrer le signal audio décodé .
- 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) ;
- 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 synthèse d’un auto-encodeur à 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 1 à 3 commentées ci-dessus décrivent en détails des réalisations fonctionnelles de ces codecs.
Claims (16)
- Procédé de codage d’un signal audio comportant les étapes suivantes :
- décomposition (102) du signal audio en au moins des composantes d’amplitudes et des composantes de signes ou de phase ;
- analyse (104) des composantes d’amplitudes par un auto-encodeur à base de réseau de neurones pour obtenir un espace latent représentatif des composantes d’amplitude du signal audio ;
- codage (105) de l’espace latent obtenu ;
- codage (106) d’au moins une partie des composantes de signes ou de phase. - Procédé selon la revendication 1, comportant en outre une étape de compression des composantes d’amplitude avant leur analyse par l’auto-encodeur.
- Procédé selon la revendication 2, dans lequel la compression des composantes d’amplitude s’effectue par une fonction logarithmique.
- Procédé selon la revendication 1, dans lequel le signal audio avant l’étape de décomposition est obtenu par une transformée de type MDCT appliquée à un signal audio d’entrée.
- Procédé selon l’une des revendications précédentes, dans lequel le signal audio est un signal multicanal.
- Procédé selon la revendication 1, dans lequel le signal audio est un signal complexe comportant une partie réelle et imaginaire issue d’une transformation d’un signal audio d’entrée, les composantes d’amplitude issue de l’étape de décomposition correspondant aux amplitudes des parties réelles et imaginaires combinées et les composantes de signe ou de phase correspondant aux signes ou phases des parties réelles et imaginaires combinées.
- Procédé selon la revendication 1, dans lequel toutes les composantes de signes ou de phase du signal audio sont codées.
- Procédé selon la revendication 1, dans lequel seules les composantes de signes ou de phase correspondant aux basses fréquences du signal audio sont codées.
- Procédé selon la revendication 1, dans lequel les composantes de signes ou de phase correspondant aux basses fréquences du signal audio sont codées et un codage sélectif est effectuée pour les composantes de signes ou de phase correspondant aux hautes fréquences du signal audio.
- Procédé selon la revendication 9, dans lequel les positions des composantes de signes ou de phase sélectionnées pour le codage sélectif sont également codées.
- Procédé selon la revendication 9, dans lequel les positions des composantes de signes ou de phase sélectionnées ainsi que les valeurs associées sont codées conjointement.
- Procédé de décodage d’un signal audio comportant les étapes suivantes :
- décodage (112) de composantes de signes ou de phase du signal audio ;
- décodage (115) d’un espace latent représentatif de composantes d’amplitude du signal audio ;
- synthèse (113) des composantes d’amplitude du signal audio par un auto-encodeur à base de réseau de neurones, à partir de l’espace latent décodé ;
- combinaison (116) des composantes d’amplitude décodées et des composantes de signes ou de phase décodées pour obtenir un signal audio décodé. - Procédé de décodage selon la revendication 8, dans lequel, dans le cas où les composantes de phase décodées correspondent à une partie des composantes de phase du signal audio, l’autre partie est reconstruite avant l’étape de combinaison.
- Dispositif de codage comportant un circuit de traitement pour la mise en œuvre des étapes du procédé de codage selon l’une des revendications 1 à 11.
- Dispositif de décodage comportant un circuit de traitement pour la mise en œuvre des étapes du procédé de décodage selon l’une des revendications 12 à 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 à 11 ou du procédé de décodage selon l’une des revendications 12 à 13.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2201831A FR3133265A1 (fr) | 2022-03-02 | 2022-03-02 | Codage et décodage optimisé d’un signal audio utilisant un auto-encodeur à base de réseau de neurones |
PCT/EP2023/054894 WO2023165946A1 (fr) | 2022-03-02 | 2023-02-28 | Codage et décodage optimisé d'un signal audio utilisant un auto-encodeur à base de réseau de neurones |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2201831 | 2022-03-02 | ||
FR2201831A FR3133265A1 (fr) | 2022-03-02 | 2022-03-02 | Codage et décodage optimisé d’un signal audio utilisant un auto-encodeur à base de réseau de neurones |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3133265A1 true FR3133265A1 (fr) | 2023-09-08 |
Family
ID=81346300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2201831A Pending FR3133265A1 (fr) | 2022-03-02 | 2022-03-02 | Codage et décodage optimisé d’un signal audio utilisant un auto-encodeur à base de réseau de neurones |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3133265A1 (fr) |
WO (1) | WO2023165946A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115460182A (zh) * | 2021-05-21 | 2022-12-09 | 华为技术有限公司 | 编解码方法、装置、设备、存储介质及计算机程序 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200111501A1 (en) * | 2018-10-05 | 2020-04-09 | Electronics And Telecommunications Research Institute | Audio signal encoding method and device, and audio signal decoding method and device |
KR20210133551A (ko) * | 2020-04-29 | 2021-11-08 | 한국전자통신연구원 | 적응형 주파수 복원 기법 기반 오디오 부호화 방법 |
-
2022
- 2022-03-02 FR FR2201831A patent/FR3133265A1/fr active Pending
-
2023
- 2023-02-28 WO PCT/EP2023/054894 patent/WO2023165946A1/fr unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200111501A1 (en) * | 2018-10-05 | 2020-04-09 | Electronics And Telecommunications Research Institute | Audio signal encoding method and device, and audio signal decoding method and device |
KR20210133551A (ko) * | 2020-04-29 | 2021-11-08 | 한국전자통신연구원 | 적응형 주파수 복원 기법 기반 오디오 부호화 방법 |
Non-Patent Citations (6)
Title |
---|
3GPP TS 26.447 |
ADITYA ARIE NUGRAHA ET AL: "A Deep Generative Model of Speech Complex Spectrograms", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 8 March 2019 (2019-03-08), XP091271570, DOI: 10.1109/ICASSP.2019.8682797 * |
D. W. GRIFFINJ. S. LIM: "Signal estimation from modified short-time Fourier transform", IEEE TRANS. ASSP, vol. 32, no. 2, April 1984 (1984-04-01), pages 236 - 243 |
JOHANNES BALLÉDAVID MINNENSAURABH SINGHSUNG JIN HWANGNICK JOHNSTON: "Variational image compression with a scale hyperprior", INT. CONF. ON LEARNING REPRÉSENTATIONS (ICLR, 2018 |
JOHANNES BALLÉVALERO LAPARRAEERO P. SIMONCELLI, END-TO-END OPTIMIZED IMAGE COMPRESSION, INT. CONF. ON LEAMING REPRÉSENTATIONS (ICLR, 2017 |
S. RAGOT ET AL.: "Low-Complexity Multi-Rate Lattice Vector Quantization with Application to Wideband TCX Speech Coding at 32 kbit/s", PROC. ICASSP, MONTREAL, CANADA, May 2004 (2004-05-01) |
Also Published As
Publication number | Publication date |
---|---|
WO2023165946A1 (fr) | 2023-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2374123B1 (fr) | Codage perfectionne de signaux audionumeriques multicanaux | |
EP1692689B1 (fr) | Procede de codage multiple optimise | |
EP2489039B1 (fr) | Codage/décodage paramétrique bas débit optimisé | |
EP0608174B1 (fr) | Systeme de codage-décodage prédictif d'un signal numérique de parole par transformée adaptative à codes imbriqués | |
EP2115741B1 (fr) | Codage/decodage perfectionnes de signaux audionumeriques | |
EP2277172B1 (fr) | Dissimulation d'erreur de transmission dans un signal audionumerique dans une structure de decodage hierarchique | |
EP2104936B1 (fr) | Codage par transformee, utilisant des fenetres de ponderation et a faible retard | |
EP2452336B1 (fr) | Codage/décodage perfectionne de signaux audionumériques | |
FR2947945A1 (fr) | Allocation de bits dans un codage/decodage d'amelioration d'un codage/decodage hierarchique de signaux audionumeriques | |
EP0428445B1 (fr) | Procédé et dispositif de codage de filtres prédicteurs de vocodeurs très bas débit | |
FR3045915A1 (fr) | Traitement de reduction de canaux adaptatif pour le codage d'un signal audio multicanal | |
EP1836699B1 (fr) | Procédé et dispositif de codage audio optimisé entre deux modèles de prediction à long terme | |
WO2023165946A1 (fr) | Codage et décodage optimisé d'un signal audio utilisant un auto-encodeur à base de réseau de neurones | |
EP2347411B1 (fr) | Attenuation de pre-echos dans un signal audionumerique | |
WO2011144863A1 (fr) | Codage avec mise en forme du bruit dans un codeur hierarchique | |
EP1192619B1 (fr) | Codage et decodage audio par interpolation | |
Deshpande et al. | Audio Spectral Enhancement: Leveraging Autoencoders for Low Latency Reconstruction of Long, Lossy Audio Sequences | |
EP1192618B1 (fr) | Codage audio avec liftrage adaptif | |
EP1194923B1 (fr) | Procedes et dispositifs d'analyse et de synthese audio | |
EP1192621B1 (fr) | Codage audio avec composants harmoniques | |
FR2980620A1 (fr) | Traitement d'amelioration de la qualite des signaux audiofrequences decodes | |
WO2001003121A1 (fr) | Codage et decodage audio avec composants harmoniques et phase minimale | |
FR2773653A1 (fr) | Dispositifs de codage/decodage de donnees, et supports d'enregistrement memorisant un programme de codage/decodage de donnees au moyen d'un filtre de ponderation frequentielle | |
WO2001003119A1 (fr) | Codage et decodage audio incluant des composantes non harmoniques du signal | |
FR2737360A1 (fr) | Procedes de codage et de decodage de signaux audiofrequence, codeur et decodeur pour la mise en oeuvre de tels procedes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20230908 |