Le codage prédictif linéaire ( LPC ) est une méthode utilisée principalement dans le traitement du signal audio et le traitement de la parole pour représenter l' enveloppe spectrale d'un signal numérique de parole sous forme compressée , en utilisant les informations d'un modèle prédictif linéaire .
Le LPC est la méthode la plus utilisée dans le codage et la synthèse de la parole . Il s'agit d'une technique d'analyse de la parole puissante et d'une méthode utile pour encoder une parole de bonne qualité à un faible débit binaire .
Aperçu
Le LPC part du principe qu'un signal vocal est produit par un buzzer placé à l'extrémité d'un tube (pour les sons voisés ), avec parfois des sifflements et des claquements ajoutés (pour les sons sans voisés tels que les sifflantes et les occlusives ). Bien qu'apparemment grossier, ce modèle source-filtre est en fait une approximation proche de la réalité de la production vocale. La glotte (l'espace entre les cordes vocales) produit le bourdonnement, caractérisé par son intensité ( volume ) et sa fréquence (hauteur). Le conduit vocal (la gorge et la bouche) forme le tube, caractérisé par ses résonances ; ces résonances donnent naissance à des formants , ou bandes de fréquences renforcées dans le son produit. Les sifflements et les claquements sont générés par l'action de la langue, des lèvres et de la gorge pendant les sifflantes et les occlusives.
Le LPC analyse le signal vocal en estimant les formants, en supprimant leurs effets du signal vocal et en estimant l'intensité et la fréquence du bourdonnement restant. Le processus de suppression des formants est appelé filtrage inverse, et le signal restant après la soustraction du signal modélisé filtré est appelé résidu.
Les nombres qui décrivent l'intensité et la fréquence du bourdonnement, les formants et le signal résiduel peuvent être stockés ou transmis ailleurs. LPC synthétise le signal vocal en inversant le processus : utiliser les paramètres du bourdonnement et le résidu pour créer un signal source, utiliser les formants pour créer un filtre (qui représente le tube) et faire passer la source à travers le filtre, ce qui produit la parole.
Étant donné que les signaux vocaux varient dans le temps, ce processus est effectué sur de courts fragments du signal vocal, appelés trames ; en général, 30 à 50 trames par seconde donnent un discours intelligible avec une bonne compression.
Histoire ancienne
La prédiction linéaire (estimation du signal) remonte au moins aux années 1940, lorsque Norbert Wiener a développé une théorie mathématique pour calculer les meilleurs filtres et prédicteurs pour détecter les signaux cachés dans le bruit. Peu de temps après que Claude Shannon ait établi une théorie générale du codage , des travaux sur le codage prédictif ont été réalisés par C. Chapin Cutler , Bernard M. Oliver et Henry C. Harrison. Peter Elias a publié en 1955 deux articles sur le codage prédictif des signaux.
Les prédicteurs linéaires ont été appliqués à l'analyse de la parole de manière indépendante par Fumitada Itakura de l'Université de Nagoya et Shuzo Saito de Nippon Telegraph and Telephone en 1966 et en 1967 par Bishnu S. Atal , Manfred R. Schroeder et John Burg. Itakura et Saito ont décrit une approche statistique basée sur l'estimation de vraisemblance maximale ; Atal et Schroeder ont décrit une approche de prédicteur linéaire adaptatif ; Burg a présenté une approche basée sur le principe d'entropie maximale .
En 1969, Itakura et Saito ont introduit une méthode basée sur la corrélation partielle (PARCOR), Glen Culler a proposé le codage de la parole en temps réel et Bishnu S. Atal a présenté un codeur vocal LPC lors de la réunion annuelle de l' Acoustical Society of America . En 1971, le LPC en temps réel utilisant du matériel LPC 16 bits a été démontré par Philco-Ford ; quatre unités ont été vendues. La technologie LPC a été avancée par Bishnu Atal et Manfred Schroeder au cours des années 1970-1980. En 1978, Atal et Vishwanath et al. de BBN ont développé le premier algorithme LPC à débit variable . La même année, Atal et Manfred R. Schroeder des Bell Labs ont proposé un codec vocal LPC appelé codage prédictif adaptatif , qui utilisait un algorithme de codage psychoacoustique exploitant les propriétés de masquage de l'oreille humaine. Ceci est devenu plus tard la base de la technique de codage perceptif utilisée par le format de compression audio MP3 , introduit en 1993. La prédiction linéaire excitée par code (CELP) a été développée par Schroeder et Atal en 1985.
Le LPC est la base de la technologie de la voix sur IP (VoIP). En 1972, Bob Kahn de l'ARPA avec Jim Forgie du Lincoln Laboratory (LL) et Dave Walden de BBN Technologies ont commencé les premiers développements de la parole en paquets, qui conduiraient finalement à la technologie de la voix sur IP. En 1973, selon l'histoire informelle du Lincoln Laboratory, le premier LPC 2400 bit / s en temps réel a été mis en œuvre par Ed Hofstetter. En 1974, la première communication vocale par paquets LPC bidirectionnelle en temps réel a été réalisée sur l' ARPANET à 3500 bit/s entre Culler-Harrison et le Lincoln Laboratory. En 1976, la première conférence LPC a eu lieu sur l'ARPANET en utilisant le protocole Network Voice Protocol , entre Culler-Harrison, ISI, SRI et LL à 3500 bit/s.
Représentations des coefficients LPC
La LPC est fréquemment utilisée pour transmettre des informations sur l'enveloppe spectrale et doit donc être tolérante aux erreurs de transmission. La transmission directe des coefficients du filtre (voir la prédiction linéaire pour une définition des coefficients) n'est pas souhaitable, car ils sont très sensibles aux erreurs. En d'autres termes, une très petite erreur peut déformer l'ensemble du spectre ou, pire, une petite erreur peut rendre le filtre de prédiction instable.
Il existe des représentations plus avancées telles que les rapports de surface logarithmique (LAR), la décomposition en paires spectrales de lignes (LSP) et les coefficients de réflexion . Parmi celles-ci, la décomposition LSP a gagné en popularité car elle garantit la stabilité du prédicteur et les erreurs spectrales sont locales pour les petits écarts de coefficient.
Applications
Le LPC est la méthode la plus utilisée dans le codage et la synthèse de la parole . Il est généralement utilisé pour l'analyse et la resynthèse de la parole. Il est utilisé comme forme de compression de la voix par les compagnies de téléphone, comme dans la norme GSM , par exemple. Il est également utilisé pour les communications sans fil sécurisées , où la voix doit être numérisée , cryptée et envoyée sur un canal vocal étroit ; un exemple précoce de cela est le Navajo I du gouvernement américain .
La synthèse LPC peut être utilisée pour construire des vocodeurs dans lesquels les instruments de musique sont utilisés comme signal d'excitation pour le filtre variant dans le temps estimé à partir du discours d'un chanteur. Cette méthode est assez répandue dans la musique électronique . Paul Lansky a réalisé le célèbre morceau de musique assistée par ordinateur notjustmoreidlechatter en utilisant le codage prédictif linéaire. Un LPC d'ordre 10 a été utilisé dans le jouet éducatif populaire des années 1980 Speak & Spell .
Les prédicteurs LPC sont utilisés dans Shorten , MPEG-4 ALS , FLAC , le codec audio SILK et d'autres codecs audio sans perte .
Le LPC a reçu une certaine attention en tant qu’outil destiné à être utilisé dans l’analyse tonale des violons et d’autres instruments de musique à cordes.