[0001] La présente invention se rapporte de façon générale au domaine du codage de la parole,
et en particulier à un procédé d'insertion d'un flux d'information à l'intérieur d'un
flux de données de parole, le flux d'information inséré pouvant être un flux de données
de parole à plus faible débit ou un flux de données transparentes.
[0002] L'invention trouve des applications, en particulier, dans les systèmes de radiocommunication
mobile publics ou professionnels (systèmes PMR, de l'anglais "Professional Mobile
Radiocommunication").
[0003] On appelle signal de parole un signal acoustique émis par un appareil vocal humain.
[0004] On appelle codec une unité matérielle et/ou logicielle de codage et de décodage d'un
flux numérique. Sa fonction de codage permet de transcoder un flux numérique d'échantillons
quantifiés dans le domaine temporel d'un signal source (par exemple un signal de parole)
en un flux numérique comprimé. Sa fonction de décodage permet d'effectuer une opération
pseudo-inverse dans l'objectif de restituer des attributs représentatifs du signal
source, par exemple des attributs perceptibles dans un récepteur tel que l'oreille
humaine.
[0005] Un flux de données de parole est un flux de données généré par un codec de parole,
à partir du codage d'un signal de parole. Un flux de données transparentes est une
suite numérique binaire dont le type de contenu est non spécifié, qu'il soit effectivement
un flux de données informatiques ou un flux de données de parole. Les données sont
dites transparentes en ce sens que, d'un point de vue externe, tous les bits ont une
égale importance vis-à-vis, par exemple de la correction des erreurs de transmission
en sorte qu'un codage correcteur d'erreurs doit donc être uniforme sur l'ensemble
des bits. A l'inverse, si le flux est un flux de données de parole, certains bits
sont plus importants à protéger que d'autres.
[0006] Un codec de parole, aussi appelé vocodeur (en anglais "Vocoder" "Speech Codec" ou
"Voice Codec") est un codec spécialisé qui est adapté au codage d'un signal de parole
quantifié et au décodage d'un flux de trames de paroles. En particulier, il présente
pour sa fonction codage une sensibilité qui dépend des caractéristiques de la parole
du locuteur et un bas débit binaire associé à une bande de fréquences plus limitée
que la bande de fréquences audio générale (20 Hz-20 kHz).
[0007] Il existe plusieurs familles de techniques de codage de la parole, notamment des
techniques de codage de la forme d'onde du signal de parole (par exemple le codage
ITU-T G.711 MIC loi A/mu), des techniques de codage à modèle de source (le plus connu
étant le codage CELP, de l'anglais "Code-Excited Linear Prediction"), des codages
perceptuels, et des techniques hybrides fondées sur la combinaison de techniques appartenant
à au moins deux des familles ci-dessus.
[0008] L'invention vise l'application à des techniques de codage "à modèle de source". Ces
techniques sont aussi appelées techniques de codage paramétrique, car elles sont basées
sur la représentation de paramètres d'excitation de la source de parole et/ou de paramètres
décrivant l'enveloppe spectrale du signal émis par le locuteur (par exemple selon
un modèle de codage par prédiction linéaire exploitant la corrélation entre les valeurs
consécutives des paramètres associés à un filtre de synthèse, ou encore selon un modèle
cepstral) et/ou de paramètres acoustiques dépendant de la source, par exemple l'amplitude
et la fréquence centrale fondamentale perçue ("Pitch" en anglais), la période ("Pitch
period" en anglais) et l'amplitude des pics d'énergie des premières harmoniques d'une
fréquence de pitch à différents intervalles, son degré de voisement ("voicing rate"
en anglais), sa mélodie et ses enchaînements.
[0009] On appelle vocodeur paramétrique un vocodeur mettant en oeuvre un codage numérique
de la parole utilisant un modèle paramétrique de la source de parole. En pratique,
un tel vocodeur associe plusieurs paramètres à chaque trame du flux de parole. Premièrement
des paramètres spectraux de prédiction linéaire aussi appelés, par exemple, coefficients
LP (de l'anglais "Linear Prediction") ou coefficients LPC (de l'anglais "Linear Prediction
Coding"), qui définissent le filtre de prédiction linéaire du vocodeur (filtre à court
terme). Deuxièmement des paramètres d'excitation adaptative associés à un (ou plusieurs)
vecteur(s) d'excitation adaptative, aussi appelés paramètres LTP (de l'anglais "Long
Term Predictor") ou encore coefficients de prédiction adaptative, qui définissent
un filtre à long terme sous la forme d'un premier vecteur d'excitation et d'un gain
associé à appliquer en entrée du filtre de synthèse.. Et, troisièmement, des paramètres
d'excitation fixe associés à (ou plusieurs) vecteur(s) d'excitation fixe, aussi appelés
paramètres algébriques ou paramètres stochastiques qui définissent un second vecteur
d'excitation et un gain associé à appliquer en entrée du filtre de synthèse.
[0010] Du document
EP-A-1 020 848, on connaît un procédé pour transmettre de l'information auxiliaire dans un flux
d'information principale correspondant à un signal de parole, ladite information auxiliaire
étant insérée au niveau du vocodeur CELP qui code le signal de parole, en remplacement
de l'index du vecteur d'excitation adaptative et/ou de l'index du vecteur d'excitation
fixe. Plus spécifiquement, les bits d'information auxiliaire sont insérés dans le
vocodeur de l'émetteur en lieu et place des bits codant normalement l'index correspondant,
et la valeur du gain est mise à zéro afin d'en informer le vocodeur du récepteur.
[0011] Selon un inconvénient, l'insertion d'un flux d'information auxiliaire dans le flux
n'est pas discrète, en ce sens qu'il suffit de constater la valeur nulle du gain pour
savoir que les bits normalement alloués au codage de l'index associé contiennent en
fait l'information auxiliaire. Ceci est considéré comme un inconvénient pour la mise
en oeuvre de la méthode dans un système dans lequel la confidentialité des transmissions
est importante.
[0012] Le document
US 2001/038643 divulgue un procédé d'insertion d'un flux d'information secondaire dans un flux d'information
principal, dans lequel on détermine des sous-bandes d'un signal audio correspondant
au flux principal qui peuvent contenir des données du flux secondaire. Cette sélection
de sous-bandes est effectuée en fonction de caractéristique du signal audio en question,
telles que le rapport signal-sur-bruit dans les sous-bandes considérées. Ensuite,
pour une sous-bande sélectionnée, on détermine le nombre de bits de codage disponibles
pour l'insertion de données du flux secondaire. A nouveau, cette détermination fait
appel à des caractéristiques du signal audio telles que la différence entre le facteur
d'échelle et le niveau plancher du bruit dans la sous-bande. Au final, des valeurs
associées à des sous-bandes sont masquées avec des données du flux d'information secondaire
à transmettre.
[0013] L'invention a pour principal objet de permettre l'insertion discrète d'un flux secondaire
dans un flux principal correspondant à un flux de parole. D'autres objets de l'invention
visent à maximiser le débit du flux secondaire pouvant être inséré, tout en préservant
au mieux la performance du codage du flux principal vis à vis d'attributs de la source
(i.e. en préservant la qualité perçue à l'audition lors de la synthèse du flux de
parole). Un autre l'objet de l'invention est aussi de préserver simultanément la performance
du codage du flux secondaire vis à vis d'attributs de la source du flux secondaire,
notamment lorsqu'il s'agit également d'un flux de parole.
[0014] Certains ou la totalité de ces objets sont atteints, selon un premier aspect de l'invention
grâce à un procédé de transmission d'un flux d'information secondaire entre un émetteur
et un récepteur selon la revendication 1.
[0015] L'émetteur et le récepteur, de même que la transmission, doivent être interprétés
dans leur acception la plus large. Dans un exemple d'application à un système de radiocommunication,
l'émetteur et le récepteur sont des équipements terminaux du système, et la transmission
est une transmission radio.
[0016] L'insertion est réalisée au niveau d'un vocodeur paramétrique de l'émetteur qui produit
ledit flux d'information principal, sans modification du débit binaire de ce dernier
par rapport à ce qu'il serait sans insertion. Dit autrement, le flux d'information
secondaire est interprété comme une suite de contraintes sur la suite de valeurs de
certains paramètres du modèle de codage paramétrique du flux d'information principal.
Par rapport au procédé d'insertion connu dans l'art antérieur, le procédé selon l'invention
présente l'avantage que rien dans le flux d'information principal qui est transmis
ne trahit la présence du flux d'information secondaire inséré. De plus, en limitant
l'insertion à certaines trames et/ou à certaines bits dans une trame seulement, on
préserve l'intelligibilité du signal de parole codé dans le flux d'information principal,
ce qui n'est nullement le cas avec le procédé d'insertion connu précité.
[0017] Afin de renforcer la discrétion de l'insertion, et donc la robustesse vis-à-vis des
tentatives de piratage de la transmission, le masque de trames peut être variable.
Il est alors généré selon un algorithme commun parallèlement dans l'émetteur et dans
le récepteur, afin d'assurer la synchronisation du codage et du décodage du flux d'information
principal, respectivement dans l'émetteur et dans le récepteur.
[0018] Le masque de trames peut avantageusement définir une sous-suite de groupes de trames
consécutives dans chacune desquelles des bits du flux d'information secondaire sont
insérés, afin de profiter de l'effet de glissement du codage qui résulte de la mémorisation
des trames dans le vocodeur paramétrique. Ceci contribue à préserver la fidélité du
flux d'information principal au signal de parole.
[0019] De préférence, la longueur en nombre de trames d'un groupe de trames consécutives
est alors sensiblement égale à la profondeur de mémorisation des trames dans le vocodeur
paramétrique.
[0020] Lorsque le modèle de source du vocodeur paramétrique prévoit, pour certaines au moins
des trames du flux d'information principal, différentes classes de bits en fonction
de leur sensibilité vis-à-vis de la qualité du codage du signal de parole, le masque
de bits peut être tel que des bits du flux d'information secondaire sont insérés dans
ces trames en imposant une contrainte en priorité aux bits appartenant à la classe
de bits la moins sensible. Ceci contribue aussi à préserver la fidélité du flux d'information
principal au signal de parole.
[0021] Le flux d'information secondaire peut-être un flux de données de parole ayant un
débit plus faible que le débit d'information principal. Ceci est le cas lorsque le
flux d'information secondaire sort d'un autre vocodeur ayant un débit plus faible
que le débit du vocodeur paramétrique.
[0022] Bien entendu, le flux d'information secondaire peut aussi être un flux de données
transparentes.
[0023] Lorsque le débit du flux d'information secondaire à insérer est trop élevé par rapport
au débit du vocodeur paramétrique, on peut être amené à supprimer des bits du flux
d'information secondaire, si cela est compatible avec l'application. Inversement,
en cas de débit trop faible du flux d'information secondaire, on peut répéter certains
bits ou introduire des bits de bourrage.
[0024] Le flux d'information secondaire est soumis à un codage correcteur d'erreurs avant
insertion dans le flux d'information principal. Ceci permet de pallier le fait que,
dans le contexte des vocodeurs paramétriques, certains bits des trames du flux d'information
principal sont faiblement voire non soumis à un codage correcteur d'erreurs (formant
codage de canal) avant la transmission.
[0025] Dans un mode de mise en oeuvre possible, des bits du flux d'information secondaire
sont insérés en imposant des valeurs à des bits qui appartiennent à des paramètres
d'excitation d'un filtre du modèle de source du vocodeur paramétrique, par exemple
des paramètres d'excitation adaptative et/ou des paramètres d'excitation fixe du filtre
de prédiction linéaire d'un vocodeur CELP. Le fait de ne pas imposer de contrainte
sur les bits des paramètres de prédiction linéaire préserve l'intelligibilité du flux
d'information principal. A cet effet également, on préfère imposer des contraintes
aux bits formant les paramètres d'excitation adaptative plutôt que sur ceux formant
les paramètres d'excitation fixe.
[0026] Dans un mode de mise en oeuvre, des bits du flux d'information secondaire peuvent
également être insérés dans des trames de silence du flux d'information principal,
à la place ou en plus de l'insertion dans des trames de parole.
[0027] Dans un autre mode de mise en oeuvre, des bits du flux d'information secondaire peuvent
être insérés en imposant des contraintes à des bits non chiffrés au titre d'un chiffrement
de bout en bout du flux d'information principal. Cela permet à un équipement récepteur
de pouvoir, après extraction, décoder le flux d'information secondaire bien que n'ayant
pas la capacité de déchiffrement à ce titre. Bien entendu, les bits concernés peuvent
néanmoins subir une ou plusieurs opérations de chiffrement/déchiffrement à un autre
titre, par exemple des chiffrements de lien ou d'interface radio.
[0028] Par exemple, la contrainte d'insertion peut être une contrainte d'égalité des bits
de la trame du flux d'information principal avec les bits du flux d'information secondaire
insérés.
[0029] Un deuxième aspect de l'invention se rapporte à un vocodeur paramétrique selon la
revendication 13, adapté pour la mise en oeuvre du procédé selon le premier aspect.
En ce qui concerne sa fonction de codage, un tel vocodeur paramétrique comprend des
moyens d'insertion pour l'insertion d'un flux d'information secondaire dans un flux
d'information principal qui est généré par le vocodeur paramétrique à partir d'un
signal de parole.
[0030] Pour sa fonction décodage, le vocodeur comprend des moyens d'extraction du flux d'information
secondaire à partir du flux d'information principal.
[0031] Un troisième aspect de l'invention se rapporte encore à un équipement terminal d'un
système de radiocommunications comprenant un vocodeur paramétrique selon le deuxième
aspect.
[0032] D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture
de la description qui va suivre. Celle-ci est purement illustrative et doit être lue
en regard des dessins annexés sur lesquels :
- la figure 1 est un diagramme illustrant un exemple de flux de données de paroles codées
(flux de parole) organisé en trames et sous-trames ;
- la figure 2 est un schéma synoptique partiel d'un exemple d'équipement émetteur selon
l'invention ;
- la figure 3 est un schéma synoptique partiel d'un exemple d'un vocodeur selon l'invention
; et
- la figure 4 est un schéma synoptique partiel d'un exemple de vocodeur utilisé dans
équipement récepteur selon l'invention.
[0033] La figure 1 est un schéma illustrant le principe général de l'insertion d'un flux
de données secondaire DS2 dans un flux de données principal DS1 codant un signal de
parole VS1. Cette insertion est réalisée au niveau d'un émetteur qui, après multiplexage
et codage de canal, émet le flux DS1, et donc le flux DS2 qu'il contient, vers un
récepteur distant. Un tel émetteur et un tel récepteur sont par exemple des terminaux
mobiles d'un système de radiocommunications public tel que le GSM ou l'UMTS, ou un
système de radiocommunications professionnel tel que TETRA ou TETRAPOL.
[0034] Le flux DS1 est généré par un vocodeur 10 à partir du signal de parole VS1, lequel
est produit par une source de parole 1 telle que l'appareil vocal d'un individu. A
cet effet, le signal de parole VS1 est numérisé selon un codage MIC (codage par modulation
d'impulsion) linéaire, et segmenté en trames appelées trames de parole. De plus, chaque
trame est en général segmentée au niveau du vocodeur 10 en un nombre M fixé de segments
appelés sous-trames dans le domaine temporel (modèle CELP) ou dans le domaine fréquentiel
(modèle MBE, de l'anglais "Multi-Band Excitation"). Typiquement M est compris entre
2 et 6, selon les vocodeurs). Chaque trame comprend un nombre déterminé N de bits.
[0035] La figure 2 illustre un signal de parole numérisé et segmenté en trames F[i] successives,
pour i compris entre 0 et l'infini. De plus, au moins pour certains paramètres, chaque
trame F[i] peut être segmentée en M sous-trames notées SF[m], pour m compris entre
1 et M. A la figure, on note D la durée d'une trame.
[0036] De retour à la figure 1, le vocodeur 10 peut être un vocodeur EFR (de l'anglais "Enhanced
Full Rate") du système GSM (voir spécification EN 300 726 GSM 06.60 de l'ETSI), un
vocodeur AMR (de l'anglais "Adaptative Multi-Rate") du système UMTS (voir la spécification
3GPP TS26.101 de l'ETSI) pour lequel D=20 ms et M=4, un vocodeur d'un terminal de
radiocommunication TETRA conforme à la spécification EN 300 395-2 de l'ETSI, ou encore
un vocodeur TETRAPOL à 6 kbits/s (référencé dans le rapport ITU-R M.2014) pour lequel
le nombre D=20 ms, M=3 et N=120.
[0037] Le flux de données secondaire DS2 est par exemple généré par un codec 20, lequel
reçoit un flux de données à coder d'une source 2. Dans un exemple d'application de
l'invention, la source 2 émet aussi un signal de parole, le codec 20 étant alors un
vocodeur de débit inférieur à celui du cocodeur 10. Dans ce cas, le flux DS2 est aussi
un flux de trames de parole. Dans cette application, l'invention permet l'insertion
discrète d'une communication secondaire dans une communication principale. Le codec
20, plus spécifiquement le vocodeur 20, peut être un vocodeur de type MF-MELP (de
l'anglais "Multi-Frame - Mixed Excitation Linear Prediction") à 1200/2400 bits/s décrit
dans NATO STANAG 4591.
[0038] Eventuellement, le flux DS2 peut être soumis à un codage correcteur d'erreurs, par
exemple un codage CRC (de l'anglais "Cyclic Redundancy Code") ou un codage convolutif,
qui forme un codage de canal en vue de sa transmission à travers le canal de transmission.
En effet, on sait que certains bits des trames du flux de parole DS1 sont peu voire
pas protégés par un codage de canal, en sorte qu'une protection spécifique des bits
du flux d'information DS2 peut être requise, selon les applications.
[0039] Le vocodeur 10 comprend un codeur 100 qui met en oeuvre un algorithme de codage à
modèle de source (ou modèle paramétrique), par exemple de type CELP ou de type MELP.
Dans un tel cas, les paramètres correspondant au codage d'une trame de parole côté
émetteur incluent, entre autres, des vecteurs d'excitation qui sont soumis, côté récepteur,
à un filtre dont la réponse modélise la parole.
[0040] Les algorithmes de codage paramétriques utilisent des paramètres calculés soit directement
en fonction du flux de trames de paroles entrant et d'un état interne du vocodeur,
soit calculés par itérations (sur des trames et/ou des sous-trames successives) en
optimisant un critère donné. Typiquement, les premiers paramètres comprennent les
paramètres de prédiction linéaire (LP) définissant un filtre court terme, et les seconds
paramètres comprennent les paramètres d'excitation adaptative (LTP) définissant un
filtre long terme et les paramètres d'excitation fixe. Chaque itération correspond
au codage d'une sous-trame dans une trame du flux d'entrée.
[0041] Ainsi, par exemple, les paramètres d'excitation adaptative et les paramètres d'excitation
fixe sont sélectionnés par itérations successives afin de minimiser l'erreur quadratique
entre le signal de parole synthétisé et le signal de parole VS1 original. Dans la
littérature anglo-saxonne, cette sélection itérative est parfois appelée "Codebook
search" ou "Analysis by Synthesis Search", ou "Error Minimization Loop" ou encore
"Closed Loop Pitch Analysis".
[0042] En général, les paramètres d'excitation adaptative et/ou les paramètres d'excitation
fixe peuvent comprendre chacun, d'une part un indice correspondant à une valeur d'un
vecteur dans le dictionnaire adaptatif (dépendant de la sous-trame) ou dans un dictionnaire
fixe, respectivement, et d'autre part une valeur de gain associée audit vecteur. Néanmoins,
dans certains vocodeurs tels que le vocodeur TETRAPOL, les paramètres de l'une au
moins des excitations adaptative et fixe définissent directement le vecteur d'excitation
à appliquer, c'est-à-dire sans adressage d'un dictionnaire par un indice. Dans ce
qui suit, il n'est pas fait de distinction entre le mode de définition des vecteurs
d'excitation. Les contraintes imposées par les bits du flux DS2 s'appliquant soit
à l'indice se rapportant à la valeur du vecteur d'excitation dans le dictionnaire,
soit à la valeur de l'excitation elle-même.
[0043] En plus du flux de données principal (flux de trames de parole) VS1 et du flux de
données secondaire DS2, le vocodeur 10 reçoit, selon l'invention un flux TS de masques
de trames, et/ou un flux BS de masques de bits.
[0044] Le flux FS est généré par un générateur de masques de trames 3, à partir d'un flux
binaire reçu d'un générateur pseudo-aléatoire 5, lequel fonctionne à partir d'une
clé secrète Kf connue de l'émetteur et du récepteur. Un masque de trames a pour fonction
de sélectionner, parmi un nombre déterminé de trames du flux de trames de parole DS1,
celles dans lesquelles, seulement, les bits du flux de données secondaires DS2 sont
insérés.
[0045] A cet effet, le générateur 3 exécute le processus suivant. Soit la suite des trames
F[i] du flux principal DS1, soit h une fonction numérique à valeurs entières, et soit
k un nombre entier déterminé, qui est de préférence sensiblement égal à la profondeur
de mémorisation de trames successives dans le vocodeur 10 (voir plus loin, nombre
P, en référence au schéma de la figure 3), alors les trames F[h(i)], F[h(i)+1], ...,
F[h(i)+k] définissent ce qui est appelé ici une sous-suite de groupes de trames de
la suite des trames F[i].
[0046] Selon une modalité préférée de l'invention, les trames subissant la contrainte d'insertion
sont des trames appartenant à une sous-suite de groupes de trames consécutives du
flux principal DS1. Ceci permet de profiter de l'effet glissant du codage de parole
résultant de la mémorisation de trames prévue dans le vocodeur 10, afin de préserver
la qualité du codage du signal de parole VS1 dans le flux principal DS1. C'est pour
cela que le nombre k, qui correspond à la longueur en trames d'un groupe de trames,
est de préférence égal à, ou du moins proche de la profondeur de mémorisation R du
vocodeur 10, ainsi qu'il a été dit plus haut.
[0047] Par exemple, en choisissant h(i) = 10 x i et k = 5 , alors les trames F[0] à F[5]
subissent la contrainte d'insertion, les trames F[6] à F[9] ne subissent pas la contrainte
d'insertion, les trames F[10] à F[15] subissent la contrainte d'insertion, les trames
F[16] à F[19] ne subissent pas la contrainte d'insertion, etc. Dit autrement, dans
cet exemple, 6 trames consécutives sur 10 subissent la contrainte d'insertion.
[0048] Le flux BS est quant à lui généré par un générateur de masques de bits 4, à partir
d'un flux binaire reçu d'un générateur pseudo-aléatoire 6, lequel fonctionne à partir
d'une clé secrète Kb, également connue de l'émetteur et du récepteur. Un masque de
bits a pour fonction de sélectionner, parmi les N bits d'une trame du flux de trames
de parole DS1 sélectionnée en vertu du masque de trames associée à la trame F[i] courante,
ceux qui, seulement, sont contraints par des bits du flux de données secondaire DS2.
[0049] A cet effet, le générateur 4 exécute le processus suivant. Il produit un flux d'un
nombre fixé Smax bits, où Smax désigne le nombre maximum de bits d'une trame courante
Fi du flux principal DS1 qui peuvent être contraints par des bits du flux secondaire
DS2. Un nombre déterminé S de bits parmi ces Smax bits, où S est inférieur ou égal
à Smax (S≤Smax), ont la valeur logique 1, les autres ayant la valeur logique 0. Ces
Smax bits sont insérés dans une chaîne de N bits, à des positions prédéfinies et fixes
qui sont prévues dans le logiciel du vocodeur 10, en sorte de former un masque binaire
sur la trame. Ce masque, appelé masque de bits, comprend donc S bits égaux à 1. Dans
un exemple, lorsqu'un bit du masque de bits est égal à 1, il indique une position
d'insertion d'un bit du flux secondaire DS2 dans la trame courante Fi du flux principal
DS1.
[0050] Le nombre Smax est fixé en réalisant un compromis entre le nombre de bits maximum
du flux secondaire DS2 qu'on peut insérer dans une trame du flux principal DS1, d'une
part, et le souci de préserver la qualité du codage du signal de parole VS1 dans le
flux principal DS1, d'autre part. Le nombre Smax étant fixé, le nombre S dépend du
débit du flux secondaire DS2. Le rapport S/N définit ce qu'on peut appeler le taux
d'insertion du flux secondaire DS2 dans le flux principal DS1 pour la trame courante
F[i], le rapport Smax/N définissant le taux d'insertion maximum.
[0051] Dans un exemple où on utilise un vocodeur TETRAPOL (pour lequel N = 120) avec h(i)
= 10 x i, k = 5 et S = 50, on obtient pour l'insertion du flux secondaire un canal
de débit moyen de 1215 bit/s. Un tel débit permet l'insertion d'un flux de données
secondaire généré par un codec de type MF-MELP à 1200 bit/s (nécessitant 81 bits dans
67,5 ms) décrit dans NATO STANAG 4591. Dit autrement, le taux d'insertion obtenu est
suffisant pour transmettre discrètement un flux secondaire qui est aussi un flux de
parole généré par un vocodeur secondaire 20 de débit inférieur à celui du vocodeur
principal 10.
[0052] Un exemple de contrainte d'insertion consiste à remplacer (i.e., écraser) les bits
du flux principal DS1 normalement généré suivant l'algorithme de codage standard mis
en oeuvre par le vocodeur 10 à partir du signal de parole VS1, par des bits du flux
secondaire DS2. Dit autrement, les contraintes appliqués aux paramètres de codage
de la parole du flux principal sont des contraintes d'égalité avec les bits du second
flux, combinées à des contraintes de sélection par opération ET logique appliquant
un masque binaire sur les bits formant le flux principal.
[0053] Cet exemple est le plus simple, mais il n'est pas le seul. En effet, des algorithmes
sur le flux principal et sur le flux secondaire utilisant toute grammaire contextuelle
ou algèbre linéaire ou non-linéaire, y compris l'algèbre de Boole et l'algèbre temporelle
de Allen (voir l'article "
Maintaining Knowledge about Temporal Intervals", Communications of the ACM, 26/11/1983,
pp. 832-84), d'éventuelles mémoires auxiliaires et dépendant de la valeur de paramètres tiers,
permettent à l'Homme du métier de définir des contraintes complexes, qui respectent
par exemple des propriétés statistiques imposées par le modèle de parole du flux principal.
[0054] Notons en particulier que l'ensemble des indices des excitations dans un dictionnaire
a généralement une distribution des bits à 0 et à 1 totalement neutre vis à vis d'une
analyse statistique d'occurrences. Il est généralement possible de chiffrer le flux
secondaire DS2 sous une forme pseudo-aléatoire avant insertion, sans modifier la distribution
statistique des 0 et 1 dans les bits modifiés du flux principal. Dans l'hypothèse
d'un modèle de codage de parole conduisant à un flux codé dont certaines sous-trames
auraient une corrélation vers 0 ou vers 1, le générateur pseudo-aléatoire susmentionné
ou un algorithme de chiffrement du flux secondaire devront aussi avoir ce biais.
[0055] Ainsi qu'on l'aura compris, le nombre de bit contraints lors du codage varie d'une
trame à l'autre selon une loi d'évolution connue de l'émetteur et du récepteur, qui
sont supposés être synchronisés.
[0056] La synchronisation de l'émetteur et du récepteur en ce qui concerne l'application
des masques de trame et/ou des masques de bits résulte de la synchronisation générale
entre ces deux équipements. Typiquement, cette synchronisation est assurée par l'étiquetage
des trames à l'aide de valeurs générées par un compteur de trames. De façon connue,
la synchronisation générale entre l'émetteur et le récepteur peut aussi provenir,
en totalité ou en complément, d'éléments de synchronisation (motifs de bits particuliers)
insérés dans le flux principal DS1.
[0057] Le codeur 100 de l'émetteur et le décodeur du récepteur partagent une même information
initiale permettant de déterminer la sous-suite des groupes trames et des sous-trames
où l'insertion du flux secondaire a lieu. Cette information peut comprendre un vecteur
d'initialisation des générateurs pseudo-aléatoires 5 et 6. Elle peut être fixe. Elle
peut aussi dépendre, par exemple, du débit moyen imposé par le flux secondaire, ou
encore dépendre de paramètres non contraints du codec principal 10 calculés lors du
codage du flux principal.
[0058] Ainsi qu'il est représenté à la figure 3, le codeur 100 comprend un module 11 qui
est un module matériel et/ou logiciel de synthèse des paramètres de prédiction linéaire,
recevant en entrée le signal de parole VS1 et délivrant en sortie une information
LP correspondant aux paramètres de prédiction linéaire (coefficients du filtre de
prédiction linéaire court terme). L'information LP est passée en entrée d'une unité
logique 12, par exemple un multiplexeur, qui est commandée par le flux de masques
de trames FS et le flux de masques de bits BS. L'unité 12 génère en sortie une information
LP' correspondant à l'information LP dont certains bits au moins pour certaines trames
au moins, ont été altérés par application des contraintes résultant du flux secondaires
DS2 via le masque de trame et le masque de bits associés à la trame courante. Une
mémorisation de l'information LP', avec une profondeur de mémorisation correspondant
à un nombre déterminé P de trames successives, peut-être prévue pour le module 11.
[0059] Le codeur 100 comprend aussi un module 21 qui est un module matériel et/ou logiciel
de synthèse des paramètres d'excitation adaptative, recevant en entrée l'information
LP' et délivrant en sortie une information LTP correspondant aux paramètres d'excitation
adaptative (définissant un premier vecteur de quantification et un gain un associé
pour le filtre de synthèse court terme). L'information LTP est passée en entrée d'une
unité logique 22, par exemple un multiplexeur, qui est commandée par le flux de masques
de trames FS et le flux de masques de bits BS. L'unité 22 génère en sortie une information
LTP' correspondant à l'information LTP dont certains bits au moins pour certaines
trames et/ou pour certaines sous-trames au moins, ont été altérés par application
des contraintes résultant du flux secondaires DS2 via le masque de trame et le masque
de bits associés à la trame courante. Une mémorisation de l'information LTP', avec
une profondeur de mémorisation correspondant à un nombre déterminé Q de sous-trames
successives de la trame courante (Q≤M-1), peut-être prévue pour le module 21.
[0060] Le codeur 100 comprend enfin un module 31 qui est un module matériel et/ou logiciel
de synthèse des paramètres d'excitation fixe, recevant en entrée l'information LTP'
et délivrant en sortie une information FIX correspondant aux paramètres d'excitation
fixe (définissant un second vecteur de quantification et un gain un associé pour le
filtre de synthèse court terme). L'information FIX est passée en entrée d'une unité
logique 32, par exemple un multiplexeur, qui est commandée par le flux de masques
de trames FS et le flux de masques de bits BS. L'unité 32 génère en sortie une information
FIX' correspondant à l'information FIX dont certains bits au moins pour certaines
trames et/ou pour certaines sous-trames au moins, ont été altérés par application
des contraintes résultant du flux secondaires DS2 via le masque de trame et le masque
de bits associés à la trame courante. Une mémorisation de l'information FIX', avec
une profondeur de mémorisation correspondant à un nombre déterminé R de sous-trames
successives de la trame courante (R≤M-1), est prévue pour le module 21. De plus, une
mémorisation de l'information FIX', avec une profondeur de mémorisation correspondant
par exemple à un nombre déterminé W de sous-trames successives de la trame courante
(W≤M-1), peut-être prévue pour le module 21.
[0061] Pour chaque trame courante, l'information LP'(F[i]) correspondant aux paramètres
de prédiction linéaire de la trame, les informations LTP'(SF[1]),..., LTP'(SF[M] correspondant
aux paramètres d'excitation adaptative respectivement pour chacune des sous-trames
SF[1] à SF[M] de la trame, et les informations FIX'(SF[1]),..., FIX'(SF[M] correspondant
aux paramètres d'excitation fixe respectivement pour chacune des sous-trames SF[1]
à SF[M] de la trame, sont transmises en entrée d'un multiplexeur 41 qui les concatène
pour former une trame du flux principal DS1.
[0062] Les mémorisations dont il est question ci-dessus permettent ici d'atténuer l'effet
des contraintes appliquées aux bits des paramètres de prédiction linéaire, des paramètres
d'excitation adaptative et/ou des paramètres d'excitation fixe, vis-à-vis de la fidélité
du flux principal DS1 au signal de parole source VS1. En effet, ces mémorisations
permettent un effet de glissement dans le calcul des paramètres, en sorte que, pour
une trame déterminée, les contraintes appliquées à des premiers paramètres sont au
moins partiellement compensées, du point de vue perceptuel, par le calcul de paramètres
calculés ensuite à partir d'une synthèse de parole basée sur lesdits premiers paramètres.
[0063] Plus spécifiquement, on peut écrire les relations suivantes, où f désigne une fonction
traduisant l'analyse par synthèse :
1°) LP'(F[i])=f(LP'(F[i-1]), LP'(F[i-2]),..., LP'(F[i-P]) ;
2°) LTP'(SF[i])=f(LTP'(SF[i-1]),..., LTP'(SF[i-R]), FIX'(SF[i-1]),..., FIX'(SF[i-W])
;
3°) FIX'(SF[i])=f(FIX'(SF[i-1]),..., FIX'(SF[i-W]).
[0064] Ces compensations, et aussi le fait que l'insertion des bits du flux secondaire n'est
pas aléatoire, permettent d'atteindre en pratique, pour certains vocodeurs, des taux
d'insertion de l'ordre de 10 % sans générer de dégradation (du point de vue perceptuel)
du signal de parole VS1 supérieure à ce que génère un taux d'erreur bit résiduel (après
codage canal) de l'ordre de quelques %.
[0065] On va maintenant décrire les implications du procédé côté récepteur.
[0066] Notons tout d'abord que, pour un équipement récepteur ne traitant pas le flux secondaire
DS2, le décodage des trames du flux DS1 reçues, est seul effectué selon l'algorithme
de synthèse standard du vocodeur 10 de l'équipement émetteur.
[0067] Pour un équipement récepteur traitant le flux secondaire DS2, la récupération de
l'information codée par les bits de ce flux secondaire nécessite une synchronisation
de l'équipement avec l'équipement émetteur, des moyens d'extraction du flux secondaire
DS2 à partir du flux principal DS1. identique au codec 20 de l'équipement émetteur.
[0068] On se réfère au schéma de la figure 4, qui montre de manière schématique les moyens
d'un vocodeur 10a d'équipement récepteur destiné au traitement du flux secondaire
transmis grâce au procédé selon l'invention.
[0069] Le vocodeur 10a, le cas échéant après démultiplexage et décodage canal, reçoit le
flux principal DS1 en entrée, et délivre un signal de parole VS1' en sortie.
[0070] Le signal VS1' est moins fidèle au signal de parole source VS1 (figure 3) qu'il ne
le serait en absence de mise en oeuvre du procédé d'insertion selon l'invention. Ceci
traduit la perte de qualité du codage effectué côté émetteur, en raison des contraintes
extérieures appliquées au vocodeur 1 de l'équipement émetteur.
[0071] L'équipement récepteur peut aussi comprendre un moyen de restitution du signal de
parole VS1', par exemple un haut-parleur ou similaire.
[0072] Ainsi qu'il a déjà été dit plus haut, les protocoles de transmission connus prévoient
une synchronisation générale de l'équipement récepteur avec l'équipement émetteur.
La mise en oeuvre de l'invention ne requiert donc pas de moyens particuliers à cet
égard.
[0073] Pour l'extraction du flux secondaire, le vocodeur 10a comprend un générateur de masques
de trames 3a et un générateur de masques de bits 4a, respectivement associés à un
générateur pseudo-aléatoire 5a et à un générateur pseudo-aléatoire 6a, qui sont identiques
et agencés de la même façon que les moyens respectivement 3, 4, 5 et 6 du vocodeur
10 de l'équipement émetteur (figure 3). On notera que les générateurs 5a et 6a du
récepteur reçoivent la même clé secrète, respectivement Kf et Kb, que les générateurs
5 et 6 du vocodeur 10 de l'équipement émetteur. Ces clés sont stockées dans une mémoire
ad hoc des équipements. Les générateurs 3a et 4a génèrent respectivement un flux de
masques de trames FSa et un flux de masques de bits BSa, qui sont fournis en entrée
du d'un décodeur 100a du vocodeur 10a.
[0074] L'extraction des bits du flux secondaire DS2 se fait par application synchrone (par
exemple via des opération ET logique) des masques de trames et des masques de bits
en entrée du décodeur 100a (par exemple via des opération ET logique), sans que cela
affecte le décodage du flux principal DS1 par ce dernier. A cet effet, le flux DS1
est fourni en entrée du décodeur 100a via une unité logique 7a, qui extrait le flux
d'information secondaire DS2 du flux d'information principal DS1 sous la commande
du flux de masques de trames FSa et du flux de masques de bits BSa.
[0075] L'équipement récepteur peut aussi comprendre un codec secondaire, identique au codec
20 de l'équipement émetteur pour le décodage du flux secondaire DS2. Lorsque ce flux
est un flux de parole, le codec secondaire génère un signal de parole qui peut être
restitué via un haut parleur ou similaire.
[0076] On notera que la fluctuation du taux de transmission des bits du flux secondaire
DS2 ne pose pas de problème particulier côté récepteur, dès lors que le flux secondaire
DS2 est fourni en entrée d'un codec secondaire à débit variable comme c'est le cas
de tous les vocodeurs du marché. En effet, un tel codec comprend une mémoire tampon
d'entrée ("Input Buffer" en anglais) dans laquelle les données du flux DS2 sont stockées
en vue de leur décodage. Il faut juste s'assurer que la mémoire tampon d'entrée n'est
jamais vide. A cet effet, on détermine le taux d'insertion qui convient, en tenant
compte en particulier du débit binaire du codeur 100 et du vocodeur secondaire 20
et des objectifs de préservation de la fidélité du flux principal VS1 au signal de
parole VS1. Compte tenu des taux d'insertion élevés obtenus en pratique (de l'ordre
de 10 %), cette question de l'alimentation du vocodeur secondaire de l'équipement
récepteur ne devrait pas poser de problème, avec un vocodeur principal 10 de type
AMR dans son mode de codage à 12,2 kbits/s et un vocodeur secondaire 20 de débit environ
dix fois moindre.
[0077] Par ailleurs, dans le cas où le flux secondaire est un flux de parole et afin de
fournir au second décodeur un flux régulier de trames, on peut optionnellement mémoriser
les séquences et de ne pas commencer immédiatement le décodage.
[0078] Dans le cas où le flux secondaire est un flux de données transparentes, il est proposé
de les concaténer et de les traiter comme si elles avaient été transmises au moyen
d'une messagerie courte de longueur maximale (service SMS en GSM, par exemple), et
d'y adjoindre un code convolutif correcteur d'erreurs. Alternativement, le flux de
données transparentes peut être envoyé à un module de chiffrement ou à un module de
transcodage et de synthèse de type "Text-to-Speech ».
[0079] Revenons maintenant à la description générale des modalités de mise en oeuvre du
procédé de transmission selon l'invention.
[0080] Le choix des bits d'une trame déterminée du flux principal qui subissent l'application
de la contrainte du flux secondaire est déterminé selon les particularités de chaque
application. On donne ci-après plusieurs modes de mise en oeuvre possibles à cet égard,
ainsi que d'autres particularités et avantages de l'invention.
[0081] Dans un mode de mise en oeuvre possible, des contraintes sont imposées lors du codage
sur la valeur de zéro, plusieurs ou tous les bits de la trame qui sont associés à
un vecteur d'excitation de type déterminé, adaptative ou fixe, avant d'effectuer les
itérations permettant de calculer les paramètres qui dépendent dudit vecteur d'excitation
en vertu des mémorisations réalisées dans le vocodeur. Ces bits de valeur contrainte
sont alors les informations du flux secondaire transportées par la trame et constituent
le canal du flux d'information secondaire DS2. Autrement dit, le flux secondaire est
inséré en imposant des valeurs à des bits formant les paramètres des vecteurs d'excitation
adaptative ou fixe. Ceci peut éventuellement être étendu en appliquant des contraintes
simultanément aux vecteurs d'excitation de l'autre type, respectivement fixe ou adaptative.
[0082] Lorsque la transmission entre l'émetteur et le récepteur prévoit un chiffrement partiel
des trames du flux principal (c'est-à-dire un chiffrement de certains bits seulement
dans chaque trame), le masque de bits peut avantageusement coïncider avec un ensemble
de bits non chiffrés d'une trame. Ceci permet à l'équipement récepteur jouant le rôle
de passerelle d'effectuer l'extraction du flux secondaire inséré dans le flux principal
sans disposer des moyens de déchiffrer le flux principal.
[0083] Ceci est particulièrement utile tout en préservant la confidentialité du flux principal,
sous l'hypothèse approximative de linéarité du modèle de parole du vocodeur, c'est-à-dire
en considérant que les paramètres résiduels ou d'excitation des cordes vocales sont
non corrélés aux coefficients décrivant l'enveloppe spectrale de réponse du conduit
vocal.
[0084] Autrement dit, ce mode de mise en oeuvre du procédé est
caractérisé en ce que le flux d'information secondaire est inséré en imposant des contraintes à des bits
non chiffrés de paramètres du modèle de parole du flux principal.
[0085] Ce mode de mise en oeuvre est illustré par un exemple concernant un vocodeur EFR
(voir plus haut) utilisé comme codec principal. On choisit d'utiliser des bits parmi
les bits non protégés de chaque trame comme canal pour le flux secondaire, en écrasant
leur valeur calculée par l'algorithme de codage source du flux principal par application
d'un masque binaire sur les 78 bits non protégés de chaque trame. Ces 78 bits non
protégés sont identifiés dans le tableau 6 (intitulé "Ordering of Enhanced Full Rate
Speech Parameters for the Channel Encoder" dans la spécification ETSI EN 300 909 V8.5.1
GSM 05.03 "Channel coding") et concernent un sous-ensemble des bits décrivant les
vecteurs d'excitation fixes. Avec ces 78 bits de classe 2 par trame de 20 ms, on obtient
un canal secondaire de débit nominal 3900 bit/s. On peut utiliser de préférence les
bits les moins sensibles du mode de codage 12,2 kbit/s du codec AMR (voir plus haut)
identifiés par ordre de sensibilité dans le tableau B.8 (intitulé "Ordering of the
Speech Encoder Bits from the 12,2 kbit/s Mode" dans la spécification 3GPP TS26.101
"Adaptative Multi-Rate (AMR) Speech Codec Frame Structure").
[0086] Il est donc également possible d'introduire, dans le mode de codage à 12,2 kbits/s
du codec AMR, le flux d'un codec secondaire, par exemple le codeur MELP 1200/2400
bit/s décrit dans NATO STANAG 4591, nécessitant 81 bits par 67,5 ms à 1200 bits/s
(respectivement 54 bits par 22,5 ms 2400 bits/s), enrobé dans son propre codage correcteur
d'erreur (taux 2/3 FEC), par exemple, qui protège 100% des bits à 1200 bit/s (respectivement
50% des bits à 2400 bit/s), et/ou enrobé dans des trames de négociation d'interopérabilité
de sécurité de type FNBDT ("Future Narrow Band Digital Terminal") définies par l'OTAN,
ou d'un type de protocole de sécurité plus léger.
[0087] Dans un autre mode de mise en oeuvre, applicable aux vocodeurs utilisant un algorithme
basé sur la sélection d'excitations quantifiées dans un dictionnaire, la contrainte
consiste à imposer une valeur d'excitation déterminée, tirée du dictionnaire. En variante,
le dictionnaire est partitionné en plusieurs sous-dictionnaires, et la contrainte
consiste à imposer l'un des sous-dictionnaires. Une autre variante comprend la combinaison
des deux types de contrainte ci-dessus. Lors du décodage du flux principal côté récepteur,
la connaissance de l'excitation reçue permet d'identifier le sous-dictionnaire et/ou
l'excitation concernés, et d'en déduire la contrainte qui détermine les bits du flux
secondaire. Notons qu'à une permutation près des excitations, la contrainte d'imposition
du sous-dictionnaire peut être équivalente à l'application des contraintes sur les
bits de poids faible des indices d'excitation dans le dictionnaire.
[0088] Dans un autre mode de mise en oeuvre, le flux secondaire définit un codage différentiel
des indices de vecteurs d'excitation, par exemple de vecteurs d'excitation fixes,
dans la sous-suite de trames successives du flux principal.
[0089] Dans un autre mode de mise en oeuvre, les bits contraints peuvent être les bits de
poids faibles des excitations fixes (c'est-à-dire des excitations non adaptatives)
pour chaque trame de parole et éventuellement pour chaque sous-trame définie dans
la trame de parole au sens de l'algorithme de codage du vocodeur 10.
[0090] Dans un autre mode de mise en oeuvre, le nombre et la position des bits contraints
sont identifiés pour chaque trame successive en fonction d'un algorithme de calcul
d'un masque et d'un élément secret connu de l'émetteur et du récepteur, afin d'accroître
les chances de non-détection de l'existence du flux secondaire par un tiers.
[0091] Un autre mode de mise en oeuvre, applicable à un algorithme de codage nécessitant
plusieurs vecteurs d'excitation fixe par trame ou sous-trame, tel que le codec CELP
pour la parole d'un flux MPEG-4 (défini dans la spécification ISO/IEC 14496-3 Sub-part
3) pour lequel certaines excitations fixes d'une trame sont choisies à partir de calculs
précédents et où d'autres excitations fixes de la même trame sont calculés par analyse
par synthèse sur un dictionnaire (voir la spécification ISO/IEC 14496-3 §7.9.3.4 "Multi-Pulse
Excitation for the bandwidth extension tool"), consiste à imposer la contrainte sur
le choix par dictionnaire de la première excitation fixe et à utiliser ensuite les
itérations d'analyse par synthèse sur la seconde excitation fixe pour rattraper l'erreur
imposée par la contrainte sur la première excitation fixe.
[0092] Dans un autre mode de mise en oeuvre, la sous-suite des trames du flux principal
qui sont concernées par l'insertion du flux secondaire ne comprend que les trames
qui présentent suffisamment d'énergie et de parole au sens du vocodeur. Dans une variante
applicable par exemple aux vocodeurs MELP (qui définissent plusieurs niveaux de voisement)
ou aux vocodeurs HVXC (de l'anglais "Harmonie Vector excitation Codec", qui sont des
vocodeurs paramétriques d'un flux de parole MPEG-4 définis dans la spécification ISO/IEC
14496-3 Sub-part 2) la sous-suite ne concerne que les segments peu voisés ou totalement
non voisés des trames.
[0093] Lorsque la contrainte est appliquée sur les paramètres d'excitation, par exemple
sur les indices d'excitation fixes, les paramètres d'une sous-trame du flux principal
DS1 restent tout à fait conformes au modèle de codage de parole du vocodeur 10. Néanmoins,
la séquence des excitations fixes modifiées est peut-être statistiquement atypique
pour une parole humaine ou éventuellement atypique pour le procédé de reconnaissance
du locuteur, selon les contraintes appliquées et l'objectif de fidélité souhaité.
Pour éviter que la présence du flux secondaire dans ces excitations ne puisse être
détectée dans un équipement récepteur, un traitement des paramètres comprenant un
lissage des gains des excitations fixes associé à un traitement des impulsions isolées
des vecteurs d'excitation suivi d'un post-filtrage après la synthèse de parole, peuvent
être appliqués au décodage. Ces traitements permettent d'exclure des séquences acoustiques
apparaissant après transmission dans un canal bruité, qui seraient impossible à prononcer
par un appareil vocal humain dans l'ambiance d'un microphone. Il s'agit par exemple
de certaines séquences de cliquetis, chuintement, crissements, sifflements ou autres,
dans le bruit de fond que le vocodeur standard n'aurait pas suffisamment filtrées
lors de la synthèse de parole du fait des contraintes imposées. C'est ainsi que peuvent
être rendus imperceptibles des sons non voisés indésirables, qui seraient corrélés
aux séquences d'excitation fixe contraintes selon le procédé de l'invention.
[0094] Néanmoins, lorsque l'application de contraintes risque de conduire à la perception
de sons non-voisés indésirables corrélés à une séquence d'excitation fixe atypique
d'une parole humaine et non filtrée par le filtrage du décodeur standard du vocodeur,
la sous-suite des trames sur lesquelles sont appliquées les contraintes peut être
définie en fonction d'analyses statistiques préalables sur les valeurs des paramètres
consécutifs du modèle de parole du vocodeurs, par exemple en tirant parti de la texture
des paramètres de la parole, définie par une inertie, une entropie ou une énergie
dérivée de la probabilité des séquences de valeurs des paramètres, par exemple dans
huit trames consécutives représentatives de la durée d'un phonème.
[0095] Pour chaque mode de mise en oeuvre, la performance de la synthèse du flux principal
DS1, c'est-à-dire la fidélité au signal VS1, est inversement proportionnelle au débit
relatif du flux secondaire DS2. La performance de fidélité subjective à la source
1 du signal de parole VS1 peut toutefois être atteinte lorsque le procédé proposé
garde invariants certains attributs subjectifs (par exemple certains critères psycho-acoustiques)
de la source 1. Elle peut être mesurée par des mesures statistiques ("Mean Opinion
Score", ou MOS) selon une échelle standardisée (voir la recommandation ITU-T P.862
"Perceptual evaluation of speech quality -PESQ").
[0096] Dans certains modes de réalisation, la dégradation de la qualité subjective du flux
de parole DS1 issu du vocodeur 10, qui est due à l'insertion du flux secondaire DS2,
est supposée acceptable pour justifier l'application du procédé proposé. C'est en
particulier le cas lorsque le flux secondaire est également un flux de parole et que
le contenu auditif du flux principal est bien moins important que le contenu du flux
secondaire pour l'auditeur légitime. En effet, la perception psycho-acoustique de
la présence éventuelle du flux secondaire lors de l'écoute du flux principal décodé
et restitué ne permet pas d'aider à localiser le flux secondaire dans le flux principal
et donc d'apporter une preuve formelle de son existence. Ceci est en particulier le
cas pour un vocodeur 10 à bas débit utilisé dans un environnement bruité, car le décodage
et la restitution du flux principal DS1 fournissent des séquences de parole conformes
au modèle du vocodeur 10. C'est aussi le cas, dans certaines limites psycho-acoustiques,
lorsque le débit minimal du flux secondaire doit être assuré au détriment de la qualité
de restitution du flux principal.
[0097] Afin de préserver au mieux l'intelligibilité de la synthèse du flux principal DS1,
on préfère ne pas appliquer de contraintes sur les paramètres spectraux de prédiction
linéaire (LP) définissant le filtre court terme, et ne pas trop perturber les paramètres
à long terme (LTP) adaptés à chaque sous-trame, afin de conserver des caractéristiques
subjectives jugées essentielles dans le signal de parole VS1. En particulier, un mode
de mise en oeuvre consiste à appliquer de préférence les contraintes sur des sous-trames
différentes des sous-trames sur lesquelles les fenêtres d'analyse à long terme de
la trame sont concentrées, à savoir, par exemple, la seconde et la quatrième sous-trame
pour le mode de codage 12,2 kbit/s du vocodeur AMR évoqué supra (voir la spécification
3GPP TS 26.090 V5.0.0, §5.2.1 "Windowing and auto-correlation computation"). En particulier,
on évitera de perturber beaucoup de segments voisés, généralement porteurs de la majorité
des caractéristiques d'identification du locuteur.
[0098] A titre d'exemple élaboré, dans le mode de codage 12,2 kbit/s du vocodeur AMR, il
est possible d'imposer une contrainte sur le choix de l'excitation adaptative en imposant
des valeurs initiales aux échantillons u(n) n=0,...,39, dans l'équation récursive
(38) de calcul du vecteur adaptatif décrit au paragraphe 5.6.1 (intitulé "Adaptative
Codebook Search") de la spécification 3GPP TS 26.090 évoquée supra, en substituant
aux valeurs du résidu LP, calculé dans l'équation (36), 40 valeurs extraites du flux
secondaire. L'erreur entre le signal du flux principal et le signal synthétisé par
le filtre court terme avec la contribution du vecteur adaptatif contraint est compensée
par le choix du vecteur d'excitation fixe qui tente de rattraper l'erreur résiduelle
(par exemple l'erreur résiduelle quadratique) de la prédiction long terme sur la même
sous-trame, ainsi que les vecteurs d'excitation des sous-trames successives. Ainsi
les vecteurs d'excitation contraints codent le flux secondaire comme résidu adaptatif
au dessus de la réponse du filtre de synthèse court terme du flux principal corrigé
par le résidu fixe.
[0099] Dans une autre exemple, pour un modèle de parole du vocodeur paramétrique de type
STC (de l'anglais "Sinusoidal Transform Coding") ou de type MBE ("Multi Band Excitation")
par exemple selon le standard spécifications ANSI/TIA/EIA 102.BABA ("APCO Project
25 Vocoder Description"), un mode de mis en oeuvre conduit à s'intéresser aux bits
de poids faible des paramètres d'amplitude des harmoniques des segments des trames
ou aux paramètres d'amplitudes d'échantillons de l'enveloppe spectrale. Dans un codec
MBE, les paramètres d'excitation sont la fréquence fondamentale ainsi que la décision
voisé/non-voisé pour chaque bande de fréquences.
[0100] Dans ce qui précède, on a décrit des modes de mise en oeuvre prévoyant l'insertion
des bits du flux secondaire dans des trames de parole du flux principal. Néanmoins,
on sait que le flux principal DS1 contient aussi des trames de silence, qui sont des
trames codées par le vocodeur 10 avec un moindre débit binaire et émises avec une
périodicité moindre que les trames de parole, pour synthétiser les périodes de silences
contenues dans le signal de parole VS1. Ces trames de silence synthétisent ce qu'on
appelle un bruit de confort.
[0101] Or, un mode de mise en oeuvre du procédé peut prévoir, en variante ou en complément,
l'insertion du flux secondaire via des contraintes numériques sur les valeurs des
paramètres descripteurs du bruit de confort à générer au titre du flux principal.
[0102] Ce mode de mise en oeuvre est illustré par un exemple concernant un codec EFR ou
AMR (voir plus haut) utilisé comme codec principal. Dans les système GSM et UMTS,
les trames transportant du bruit de confort (trames de silence) sont nommées trames
SID (voir par exemple la spécification 3GPP TS 26.092 "Mandatory Speech Codec Speech
Processing Functions ; AMR Speech Codec ; Confort Noise Aspects" de l'ETSI). Plus
précisément les trames considérées ici sont les trames SID-UPDATE qui contiennent
35 bits de paramètres de bruit de confort et un code correcteur d'erreur sur 7 bits.
[0103] Dans un système GSM ou UMTS, c'est la source qui contrôle l'émission des trames de
silence, c'est-à-dire le codec de l'émetteur (sous réserve des interactions avec le
processus de détection d'activité vocale et de transmission discontinue, en particulier
sur la voie descendante du relais vers le terminal mobile). Il est donc possible de
procéder par insertion du second flux selon un procédé similaire à celui applicable
à une trame contenant suffisamment d'énergie de parole (trame de parole).
[0104] De manière alternative, il est possible de commander l'émission d'une trame de silence
particulière à partir de l'entrée analogique numérisée du codec en générant le bruit
analogique de confort représentatif des 35 bits du flux secondaire. Dans les systèmes
GSM et UMTS, la fréquence des trames de silence est contrôlée par la source ou par
le relais et correspond soit à une trame de silence toutes les 20 ms soit à une trame
de silence toutes les 160 ms, soit encore à une trame de silence toutes les 480 ms
pour le codéc EFR du système GSM. Ceci détermine le débit maximal pour le flux secondaire
dans cette variante du procédé.
[0105] Dans une modalité particulière, il est possible d'utiliser le canal de transmission
duplex pour envoyer des trames de silence lorsque le locuteur est un second participant
à la communication ou dans les silences dans une première conversation, c'est-à-dire
entre les groupes de phonèmes émis selon le flux principal.
[0106] On notera que la spécification 3GPP TS 26.090 précise que la taille du champ de codage
du bruit de confort du codec EFR, à savoir 35 bits par trame de silence, est identique
à la taille du paramètre d'excitation fixe pour ce même codec. Cela signifie qu'on
peut appliquer les mêmes contraintes et obtenir un débit d'insertion minimal permanent
en utilisant toutes les trames indépendamment de la nature, parole ou silence, du
flux principal.
1. Procédé de transmission d'un flux d'information secondaire (DS2) entre un émetteur
et un récepteur, comprenant l'insertion dudit flux d'information secondaire au niveau
d'un vocodeur paramétrique (100) de l'émetteur générant un flux d'information principal
(DS1) qui est un flux de données de parole codant un signal de parole (VS1) et qui
est transmis de l'émetteur vers le récepteur,
suivant lequel des bits du flux d'information secondaire sont insérés :
- dans certaines seulement des trames (F[i]) du flux d'information principal, sélectionnées
par un masque de trames connu de l'émetteur et du récepteur ; et,
- à l'intérieur d'une trame sélectionnée du flux d'information principal, à des positions
prédéfinies en imposant une contrainte à certains seulement des bits de la trame,
sélectionnés par un masque de bits connu de l'émetteur et du récepteur;
suivant lequel le masque de trames définit une sous-suite (SF[m]) de groupes de trames
consécutives dans chacune desquelles des bits du flux d'information secondaire sont
insérés; et,
la longueur en nombre de trames (M) d'un groupe de trames consécutives est sensiblement
égale à la profondeur de mémorisation des trames dans le vocodeur paramétrique.
2. Procédé selon la revendication 1, suivant lequel le masque de trames est variable
et est généré selon un algorithme commun parallèlement dans l'émetteur et dans le
récepteur.
3. Procédé selon l'une quelconque des revendications précédentes, suivant lequel, le
modèle de source du vocodeur paramétrique prévoyant, pour certaines au moins des trames
du flux d'information principal différentes classes de bits en fonction de leur sensibilité
vis à vis de la qualité du codage du signal de parole, le masque de bits est tel que
des bits du flux d'information secondaire sont insérés dans ces trames en imposant
une contrainte en priorité aux bits appartenant à la classe de bits la moins sensible.
4. Procédé selon l'une quelconque des revendications 1 à 3, suivant lequel le flux d'information
secondaire est un flux de données de parole sortant d'un autre vocodeur (20) ayant
un débit plus faible que le débit du vocodeur paramétrique.
5. Procédé selon l'une quelconque des revendications 1 à 3, suivant lequel le flux d'information
secondaire est un flux de données transparentes.
6. Procédé selon l'une quelconque des revendications précédentes, suivant lequel le flux
d'information secondaire est soumis à un codage correcteur d'erreurs avant insertion
dans le flux d'information principal.
7. Procédé selon l'une quelconque des revendications précédentes, suivant lequel des
bits du flux d'information secondaire sont insérés en imposant des valeurs à des bits
qui appartiennent à des paramètres d'excitation d'un filtre du modèle de source du
vocodeur paramétrique.
8. Procédé selon l'une quelconque des revendications précédentes, suivant lequel des
bits du flux d'information secondaire sont insérés dans des trames de silence du flux
d'information principal.
9. Procédé selon l'une quelconque des revendications précédentes, suivant lequel des
bits du flux d'information secondaire sont insérés en imposant des contraintes à des
bits non chiffrés au titre d'un chiffrement de bout en bout du flux d'information
principal.
10. Procédé selon l'une quelconque des revendications précédentes, suivant lequel la contrainte
est une contrainte d'égalité des bits de la trame du flux d'information principal
avec les bits du flux d'information secondaire insérés.
11. Vocodeur paramétrique (100) comprenant, pour l'insertion d'un flux d'information secondaire
(DS2) dans un flux d'information principal (DS1) qui est généré par le vocodeur paramétrique
à partir d'un signal de parole (VS1), des moyens d'insertion adaptés pour insérer
des bits du flux d'information secondaire :
- dans certaines seulement des trames (F[i]) du flux d'information principal, sélectionnées
par un masque de trames déterminé connu de l'émetteur et du récepteur ; et,
- à l'intérieur d'une trame sélectionnée du flux d'information principal, à des positions
prédéfinies en imposant une contrainte à certains seulement des bits de la trame,
sélectionnés par un masque de bits déterminé connu de l'émetteur et du récepteur;
dans lequel le masque de trames définit une sous-suite de trames consécutives (SF[m])
dans chacune desquelles des bits du flux d'information secondaire sont insérés; et,
dans lequel la longueur en nombre de trames de la sous-suite de trames consécutives
est sensiblement égale à la profondeur de mémorisation des trames dans le codec de
parole paramétrique.
12. Vocodeur paramétrique selon la revendication 11, dans lequel le masque de trames est
variable et est généré selon un algorithme à base d'une clé secrète.
13. Vocodeur paramétrique selon l'une quelconque des revendications 11 et 12, dans lequel,
le modèle de source du vocodeur paramétrique prévoyant dans certaines au moins des
trames du flux d'information principal différentes classes de bits en fonction de
leur sensibilité vis à vis de la qualité du codage du signal de parole, le masque
de bits est tel que des bits du flux d'information secondaire sont insérés dans ces
trames en imposant une contrainte en priorité aux bits appartenant à la classe de
bits la moins sensible.
14. Vocodeur paramétrique selon l'une quelconque des revendications 11 à 13, comprenant
en outre des moyens pour soumettre le flux d'information secondaire à un codage correcteur
d'erreurs avant insertion dans le flux d'information principal.
15. Vocodeur paramétrique selon l'une quelconque des revendications 11 à 14, dans lequel
les moyens d'insertion sont adaptés pour insérer des bits du flux d'information secondaire
en imposant des valeurs à des bits qui appartiennent à des paramètres d'excitation
d'un filtre du modèle de source du vocodeur paramétrique.
16. Vocodeur paramétrique selon l'une quelconque des revendications 11 à 15, dans lequel
les moyens d'insertion sont adaptés pour insérer des bits du flux d'information secondaire
dans des trames de silence du flux d'information principal.
17. Vocodeur paramétrique selon l'une quelconque des revendications 11 à 16, dans lequel
les moyens d'insertion sont adaptés pour insérer des bits du flux d'information secondaire
en imposant des contraintes à des bits non chiffrés au titre d'un chiffrement de bout
en bout du flux d'information principal.
18. Equipement terminal d'un système de radiocommunications comprenant un vocodeur paramétrique
selon l'une quelconque des revendications 11 à 17.
1. Method of transmitting a secondary information stream (DS2) between a sender and a
receiver, the method including inserting said secondary information stream in a parametric
vocoder (100) of the sender generating a main information stream (DS1) that is a voice
data stream coding a voice signal and is transmitted from the sender to the receiver,
in which method bits of the secondary information stream are inserted:
• into only some of the frames (F[i]) of the main information stream selected by a
frame mask known to the sender and to the receiver, and
• into a selected frame of the main information stream, at predefined positions by
imposing a constraint on only some of the bits of the frame selected by a bit mask
known to the sender and to the receiver;
wherein the frame mask defines a subseries (SF[m]) of groups of consecutive frames
in each of which bits of the secondary information stream are inserted; and,
the length in frames of a group (M) of consecutive frames is substantially equal to
the depth of storage of the frames in the parametric vocoder.
2. Method according to claim 1, wherein the frame mask is variable and is generated in
parallel in the sender and in the receiver using a common algorithm.
3. Method according to any preceding claim, wherein, the source model of the parametric
vocoder providing, for at least some of the frames of the main information stream,
different classes of bits as a function of their sensitivity to the quality of voice
signal coding, the bit mask is such that bits of the secondary information stream
are inserted into these frames, by imposing a constraint as a matter of priority on
the bits belonging to the least sensitive bit class.
4. Method according to any one of claims 1 to 3, wherein the secondary information stream
is a voice data stream from another vocoder (20) having a lower bit rate than the
parametric vocoder.
5. Method according to any one of claims 1 to 3, wherein the secondary information stream
is a transparent data stream.
6. Method according to anyone of the preceding claims, wherein the secondary information
stream is subjected to error corrector coding before inserting it into the main information
stream.
7. Method according to anyone of the preceding claims, wherein bits of the secondary
information stream are inserted by imposing values on bits that belong to excitation
parameters of a filter of the source model of the parametric vocoder.
8. Method according to anyone of the preceding claims, wherein bits of the secondary
information stream are inserted into silence frames of the main information stream.
9. Method according to anyone of the preceding claims, wherein bits of the secondary
information stream are inserted by imposing constraints on unencrypted bits in relation
to end-to-end encryption of the main information stream.
10. Method according to any preceding claim, wherein the constraint is a constraint of
equality of the bits of the frame of the main information stream and the inserted
bits of the secondary information stream.
11. Parametric vocoder (100) including, for inserting a secondary information stream (DS2)
into a main information stream (DS1) that is generated by the parametric vocoder from
a voice signal, insertion means adapted to insert bits of the secondary information
stream:
• into only some of the frames (F[i]) of the main information stream selected by a
particular frame mask known to the sender and to the receiver, and/or
• into a selected frame of the main information stream, at predefined positions by
imposing a constraint on only some of the bits of the frame selected by a particular
bit mask known to the sender and to the receiver ;
wherein the frame mask defines a subseries of consecutive (SF[m]) frames into each
of which bits of the secondary information stream are inserted; and,
wherein the length in frames of the subseries of consecutive frames is substantially
equal to the depth of storage of the frames in the parametric voice codec.
12. Parametric vocoder according to claim 13, wherein the frame mask is variable and is
generated by an algorithm based on a secret key.
13. Parametric vocoder according to any one of claims 11 and 12, wherein, the source model
of the parametric vocoder providing, in at least some of the frames of the main information
stream, different classes of bits as a function of their sensitivity to the quality
of voice signal coding, the bit mask is such that bits of the secondary information
stream are inserted into these frames, by imposing a constraint as a matter of priority
on the bits belonging to the least sensitive bit class.
14. Parametric vocoder according to any one of claims 11 to 13, further including means
for subjecting the secondary information stream to error corrector coding before inserting
it into the main information stream.
15. Parametric vocoder according to any one of claims 11 to 14, wherein the insertion
means are adapted to insert bits of the secondary information stream by imposing values
on bits that belong to excitation parameters of a filter of the source model of the
parametric vocoder.
16. Parametric vocoder according to any one of claims 11 to 15, wherein the insertion
means are adapted to insert bits of the secondary information stream into silence
frames of the main information stream.
17. Parametric vocoder according to any one of claims 11 to 16, wherein the insertion
means are adapted to insert bits of the secondary information stream by imposing constraints
on unencrypted bits in relation to end-to-end encryption of the main information stream.
18. Terminal equipment of a radio system including a parametric vocoder according to any
one of claims 11 to 17.
1. Verfahren zur Übertragung eines Sekundärinformationsstroms (DS2) zwischen einem Sender
und einem Empfänger, umfassend das Einfügen des Sekundärinformationsstroms auf der
Ebene eines parametrischen Vocoders (100) des Senders, der einen Hauptinformationsstrom
(DS1) erzeugt, der ein Strom aus Sprachdaten ist, welcher ein Sprachsignal (VS1) kodiert,
und der von dem Sender an den Empfänger übertragen wird, wobei Bits des Sekundärinformationsstroms
eingefügt werden:
- nur in einige der Blöcke (F[i]) des Hauptinformationsstroms, die durch eine dem
Sender und dem Empfänger bekannte Block-Maske ausgewählt werden; und
- im Inneren eines ausgewählten Blocks des Hauptinformationsstroms, an vordefinierten
Positionen, indem nur einigen Bits des Blocks, die durch eine dem Sender und dem Empfänger
bekannte Bit-Maske ausgewählt werden, eine Bedingung auferlegt wird,
wobei die Block-Maske eine Unterfolge (SF[m]) von Gruppen aufeinander folgender Blöcke
definiert, in jeden von denen Bits des Sekundärinformationsstroms eingefügt werden,
und
der Zahlenwert der Länge von Blöcken (M) einer Gruppe von aufeinander folgenden Blöcken
im Wesentlichen gleich der Speichertiefe der Blöcke in dem parametrischen Vocoder
ist.
2. Verfahren nach Anspruch 1,
wobei die Blockmaske variabel ist und gemäß einem gemeinsamen Algorithmus parallel
im Sender und im Empfänger berechnet wird.
3. Verfahren nach einem der vorhergehenden Ansprüche,
wobei das Quellenmodell des parametrischen Vocoders für wenigstens einige der Blöcke
des Hauptinformationsstroms unterschiedliche Bit-Klassen in Funktion ihrer Empfindlichkeit
gegenüber der Qualität der Kodierung des Sprachsignals vorsieht, wobei die Bitmaske
derart ist, dass Bits des Sekundärinformationsstroms in diese Blöcke eingefügt werden,
indem eine Bedingung vorrangig den Bits auferlegt wird, die zur am wenigsten empfindlichen
Bit-Klasse gehören.
4. Verfahren nach einem der Ansprüche 1 bis 3,
wobei der Sekundärinformationsstrom ein Strom aus Sprachdaten ist, der von einem anderen
Vocoder (20) kommt, der eine geringere Rate hat als die Rate des parametrischen Vocoders.
5. Verfahren nach einem der Ansprüche 1 bis 3,
wobei der Sekundärinformationsstrom ein Strom von transparenten Daten ist.
6. Verfahren nach einem der vorhergehenden Ansprüche,
wobei der Sekundärinformationsstrom vor dem Einfügen in den Hauptinformationsstrom
einer Fehlerkorrekturkodierung unterzogen wird.
7. Verfahren nach einem der vorhergehenden Ansprüche,
wobei Bits des Sekundärinformationsstroms eingefügt werden, indem Werte Bits auferlegt
werden, die zu Anregungsparametern eines Filters des Quellenmodells des parametrischen
Vocoders gehören.
8. Verfahren nach einem der vorhergehenden Ansprüche,
wobei Bits aus dem Sekundärinformationsstrom in stille Blöcke des Hauptinformationsstroms
eingefügt werden.
9. Verfahren nach einem der vorhergehenden Ansprüche,
wobei Bits aus dem Sekundärinformationsstrom eingefügt werden, indem nicht chiffrierten
Bits Bedingungen auferlegt werden gemäß einer Chiffrierung des ganzen Hauptinformationsstroms.
10. Verfahren nach einem der vorhergehenden Ansprüche,
wobei die Bedingung eine Bedingung der Gleichheit der Bits des Blocks des Hauptinformationsstroms
mit den eingefügten Bits des Sekundärinformationsstroms ist.
11. Parametrischer Vocoder (100), umfassend, zum Einfügen eines Sekundärinformationsstroms
(DS2) in einen Hauptinformationsstrom (DS1), der von dem parametrischen Vocoder ausgehend
von einem Sprachsignal (VS1) erzeugt wird, Einfügungsmittel, die dazu angepasst sind,
um Bits aus dem Sekundärinformationsstrom einzufügen:
- nur in einige der Blöcke (F[i]) des Hauptinformationsstroms, die durch eine bestimmte,
dem Sender und dem Empfänger bekannte Block-Maske ausgewählt sind; und
- im Inneren eines ausgewählten Blocks des Hauptinformationsstroms, an vordefinierten
Positionen, indem nur einigen der Bits des Blocks eine Bedingung auferlegt wird, die
durch eine bestimmte, dem Sender und dem Empfänger bekannte Bit-Maske ausgewählt sind;
wobei die Block-Maske eine Unter-Folge von aufeinander folgenden Blöcken (SF[m]) definiert,
in jeden von denen Bits aus dem Sekundärinformationsstrom eingefügt werden;
und wobei der Zahlenwert der Länge von Blöcken der Unterfolge von aufeinander folgenden
Blöcken im Wesentlichen gleich der Speichertiefe der Blöcke in dem parametrischen
Sprach-Codec ist.
12. Parametrischer Vocoder nach Anspruch 11,
wobei die Blockmaske variabel ist und gemäß einem Algorithmus auf Grundlage eines
geheimen Schlüssels erzeugt ist.
13. Parametrischer Vocoder nach einem der Ansprüche 11 und 12, wobei das Quellenmodell
des parametrischen Vocoders wenigstens in einigen der Blöcke des Hauptinformationsstroms
unterschiedliche Bit-Klassen in Funktion ihrer Empfindlichkeit gegenüber der Qualität
der Kodierung des Sprachsignals vorsieht, wobei die Bitmaske derart ist, dass Bits
aus dem Sekundärinformationsstrom in diese Blöcke eingefügt werden, indem eine Bedingung
vorrangig den Bits auferlegt wird, die zu der am wenigsten empfindlichen Bit-Klasse
gehören.
14. Parametrischer Vocoder nach einem der Ansprüche 11 bis 13, weiterhin umfassend Mittel,
um den Sekundärinformationsstrom vor dem Einfügen in den Hauptinformationsstrom einer
Fehlerkorrekturkodierung zu unterziehen.
15. Parametrischer Vocoder nach einem der Ansprüche 11 bis 14, wobei die Einfügungsmittel
dazu angepasst sind, um Bits aus dem Sekundärinformationsstrom einzufügen, indem Werte
Bits auferlegt werden, die zu Anregungsparametern eines Filters des Quellenmodells
des parametrischen Vocoders gehören.
16. Parametrischer Vocoder nach einem der Ansprüche 11 bis 15, wobei die Einfügungsmittel
dazu angepasst sind, um Bits aus dem Sekundärinformationsstrom in stille Blöcke des
Hauptinformationsstroms einzufügen.
17. Parametrischer Vocoder nach einem der Ansprüche 11 bis 16, wobei die Einfügungsmittel
dazu angepasst sind, um Bits aus dem Sekundärinformationsstrom einzufügen, wobei nicht
chiffrierten Bits Bedingungen auferlegt werden gemäß einer Chiffrierung des ganzen
Hauptinformationsstroms.
18. Terminal-Ausrüstung eines Radiokommunikationssystems, umfassend einen parametrische
Vocoder nach einem der Ansprüche 11 bis 17.