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 PDF

Info

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
Application number
FR2201831A
Other languages
English (en)
Inventor
Stéphane Ragot
Mohamed YAOUMI
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
Priority to FR2201831A priority Critical patent/FR3133265A1/fr
Priority to PCT/EP2023/054894 priority patent/WO2023165946A1/fr
Publication of FR3133265A1 publication Critical patent/FR3133265A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L19/02Speech 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/0204Speech 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L19/008Multichannel 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

Codage et décodage optimisé d’un signal audio utilisant un auto-encodeur à base de réseau de neurones
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.
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é.
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 :
illustre un codeur et un décodeur mettant en œuvre respectivement un procédé de codage et de décodage selon un premier mode de réalisation de l’invention ;
illustre un exemple de codage et de multiplexage de bits de signe selon l’invention ;
illustre un exemple de codage et de multiplexage de bits de signe avec une sélection de bits en hautes fréquences selon l’invention ;
illustre un codeur et un décodeur mettant en œuvre respectivement un procédé de codage et de décodage selon une variante de réalisation de l’invention ;
illustre un exemple de réalisation des parties analyse et synthèse d’un auto-encodeur utilisé selon l’invention ;
illustre un exemple de format d’entrée/sortie pour la partie analyse d’un auto-encodeur utilisé selon l’invention ;
illustre un exemple de format d’entrée/sortie pour la partie synthèse d’un auto-encodeur utilisé selon l’invention ;
illustre un codeur et un décodeur mettant en œuvre respectivement un procédé de codage et de décodage selon un deuxième mode de réalisation de l’invention ;
illustre un codeur et un décodeur mettant en œuvre respectivement un procédé de codage et de décodage selon un troisième mode de réalisation de l’invention ; et
illustre des exemples de réalisation structurelle d’un dispositif de codage et d’un dispositif de décodage selon un mode de réalisation de l’invention.
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é 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
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 :
=
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 :
(.) représentant ici la valeur maximale sur toutes les trames (ou sous-trames) sur une séquence du signal à coder (ce qui occasionne un retard de codage si ). Ce mode de réalisation a le désavantage d’avoir un retard additionnel et de nécessiter la transmission du facteur (ou son inverse). Dans un exemple de réalisation, la valeur (positive) de est codé sur 7 bits selon une échelle logarithmique – le codage peut être selon la norme UIT-T G.711 ou simplement selon un dictionnaire de la forme .
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 :
( ; )
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 :
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) :
  1. Codage de tous les signes
  2. 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.
  3. 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 pics les plus importants parmi coefficients hautes-fréquences ( ) est effectuée sur le spectre d’amplitude original. La recherche pics les plus importants peut s’effectuer simplement en 2 étapes, d’abord en recherchant les raies d’indice qui vérifient pics sur les raies qui vérifient et , puis à ordonner les indices k obtenus pour retenir les positions correspondant aux valeurs les plus grandes. Dans des variantes, d’autres méthodes de détection de pics d’amplitude pourront être utilisées, par exemple la méthode décrite dans la clause 5.4.2.4.2 de la norme 3GPP TS 26.447.
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 signes. Dans ce cas, on utilise le spectre signé et le code correcteur binaire [Nc, Kc, Dc], où Nc est la longueur (en bits), Kc le nombre de bits de contrôle, et Dc la distance de Hamming, est converti en des valeurs +1 et -1 au lieu de 1 et 0 (respectivement). La position des signes et les valeurs de signes associés sont codés conjointement. Pour une trame d’indice t donnée, le codage dans le bloc 106 s’effectue alors pour sous- bloc de raies fréquentielles (successives ou entrelacées) de longueur Kc, par produit scalaire entre et les différents mots de codes (à valeurs +1 / -1), et en retenant le mot de code maximisant le produit scalaire. Le principe de ce codage par code correcteur est par exemple détaillé dans le document S. Ragot, L'hexacode, le code de Golay code et le réseau de Leech: définition, construction, application en quantification, Mémoire de mastère, Département de génie électrique et informatique, Université de Sherbrooke, Qc, Canada, Déc. 1999
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 pics les plus importants est effectuée sur le spectre d’amplitude codé, si bien que la position des pics n’a pas à être transmise, car la même information (spectre d’amplitude codé) peut être disponible au décodeur. Cependant, cela suppose que le bloc 106 ait accès à la sortie (espace latent codé) du bloc 105 et que la partie synthèse de l’auto-encodeur (bloc 113) soit appliquée pour effectuer un décodage local.
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 :
pour
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 :
  1. Codage de toutes les phases
  2. 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 « pics » les importants et coder/multiplexer les phases à ces positions ; les positions des pics sont codées comme dans le premier mode de réalisation (variantes B1a ou B1c).
  3. 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.
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é .
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)

  1. 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.
  2. Procédé selon la revendication 1, comportant en outre une étape de compression des composantes d’amplitude avant leur analyse par l’auto-encodeur.
  3. Procédé selon la revendication 2, dans lequel la compression des composantes d’amplitude s’effectue par une fonction logarithmique.
  4. 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.
  5. Procédé selon l’une des revendications précédentes, dans lequel le signal audio est un signal multicanal.
  6. 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.
  7. Procédé selon la revendication 1, dans lequel toutes les composantes de signes ou de phase du signal audio sont codées.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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é.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
FR2201831A 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 Pending FR3133265A1 (fr)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115460182A (zh) * 2021-05-21 2022-12-09 华为技术有限公司 编解码方法、装置、设备、存储介质及计算机程序

Citations (2)

* Cited by examiner, † Cited by third party
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 한국전자통신연구원 적응형 주파수 복원 기법 기반 오디오 부호화 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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