Abderrezak HALILALI
Transcription
Abderrezak HALILALI
2èmes Journées du Laboratoire Communication Parlée et Traitement du Signal ( JLCPTS ) 14-15 Janvier 2015 Contribution à l’implantation d’algorithmes de traitement de la parole sur circuit FPGA Abderrezak HALILALI * Imene TABATOUCHE** Amrane HOUACINE *** USTHB Faculté d’Electronique et d’Informatique ( FEI) Laboratoire de Communication Parlée et Traitement du Signal ( LCPTS) * [email protected] ** [email protected] *** [email protected] Résumé—Certaines applications de traitement du signal de parole, telles que la transformation, la reconnaissance ou la synthèse, peuvent nécessiter un traitement temps réel. L’utilisation de circuits spécifiques peut être la solution à ce genre de problèmes. Le travail présenté propose une méthodologie basée sur l’utilisation d’un circuit FPGA pour l’implantation d’une application de transformation de la parole. Mots clés—Parole vhdl fpga audio codec. I. INTRODUCTION La plupart des systèmes de transformation de la parole sont basés sur des traitements software. Ceci peut représenter un inconvénient dans la plupart des situations. Une solution hardware sera incontestablement plus rapide, plus compacte et consommera moins d’énergie. Elle est particulièrement indiquée pour les systèmes embarqués qui doivent répondre à des contraintes de temps réel pour des raisons de fiabilité et de rentabilité. Ou bien, lorsqu’on cherche à réduire les couts de fabrication lorsque les contraintes sont réduites du point de vue performance. courte durée où les segments sont obtenus pitch synchrone. Ces segments sont concaténés de manière appropriée pour obtenir les modifications souhaitées. La méthode permet de modifier la fréquence fondamentale et la durée d'un segment de parole. Ces modifications sont nécessaires pour produire un signal de parole compatible avec les consignes prosodiques souhaitées (valeurs de pitch et durées différentes des valeurs de pitch et de durée des diphones de la base), elles sont effectuées en découpant le signal en signaux élémentaires à l'aide d'une fenêtre, à chaque période de voisement de longueur supérieure à la période fondamentale (pour la parole voisée), ou toutes les 10 ms pour la parole non voisée. Le signal original est alors fragmenté en une série de signaux de courte durée. Un nouveau signal est reconstitué en recollant les fragments avec plus ou moins de recouvrement temporel (d'où le nom de la méthode). Pour abaisser la fréquence fondamentale on va écarter les périodes de voisement, et les resserrer pour augmenter la fréquence fondamentale. Pour modifier la durée, on dupliquera ou on supprimera certaines périodes. L’objectif de notre travail consiste en l’implantation de l’algorithme PSOLA de transformation de la parole sur un circuit FPGA Virtex-5. Nous présenterons dans les paragraphes suivants les différentes étapes de la méthodologie adoptée pour cette implantation. II. L’ALGORITHME PSOLA A. Motivation L’algorithme de modification du signal de parole TDPSOLA a été choisi du fait de sa simplicité comme exemple d’implantation pour évaluer la méthodologie adoptée et les possibilités d’exploitation des ressources matériels de la carte de développement ML-505 ciblée pour notre travail. La méthode TD PSOLA :[1] TD-PSOLA (Time-Domain Pitch Synchronous Overlapp-Add) est une méthode simple et efficace pour effectuer des modifications prosodiques sur des signaux de parole. Elle est bien adaptée pour les applications en temps réel. L'idée est de traiter le signal de parole sur une base de Fig 1. Exemple de modification du pitch et de modification de la durée par la méthode PSOLA.[7] L’étape d’analyse a pour but la détermination du pitch pour chaque bloc d’échantillons de parole, le signal étant divisé en petits blocs pour lesquels le pitch est considéré comme constant ; ainsi que l’extraction de segments de parole centrés sur chaque marque de pitch ( pitch synchrones) par un fenêtrage approprié. L’étape de synthèse consiste en une superposition et addition de blocs toujours pitch synchrone consistant en la suppression ou la répétition de segments, tout en préservant la période fondamentale selon qu’une compression ou une dilation temporelle soit recherchée. Page 1 2èmes Journées du Laboratoire Communication Parlée et Traitement du Signal ( JLCPTS ) 14-15 Janvier 2015 Constituée de 5 fils. Toute communication de signaux audio ou signaux de contrôle et signaux d’état s’effectue à travers cette interconnexion série qui consiste en : un signal d’horloge (BIT_CLK), une rame de synchronisation (SYNC), des données d’entrée (SDATA_IN), une sortie série (SDATA_OUT et une remise à zéro (RESET#). Fig 2. Synthèse par superposition et addition. III. IMPLEMENTATION HARDWARE La configuration la plus simple et la plus utilisée et une configuration point à point de l’interface AC Link entre le contrôleur et le CODEC comme illustré sur la figure 5. . A. La carte de developpement La carte de développement Xilinx ML-505 ciblée par notre expérimentation est à base du circuit FPGA Virtex™-5 Fig 5. Connections du controleur au CODEC AC97 Le flux de données bidirectionnel est divisé en trames. Chacune de ses trames est subdivisée en 13 slots de données par une division par multiplexage temporel. Fig 3. La carte de developpement ML505 Le slot 0 est connu en tant que slot de phase et il est le seul composé de 16 bits. les Slots 1 à 12 sont connus comme slots de données et ils sont composés de 20 bits chacun totalisant 256 bits par trame, Cette carte est dotée du CODEC audio stéréo AC97 avec des ports ‘line In’, ‘line out’, ‘50mW headphone’, ‘microphone’, ‘SPDIF digital audio jack’. Le diagramme de la figure 4 montre les caractéristiques essentielles d’un design typique basé sur le codec AC97 . [ 4] Fig 6. Trames bidirectionneles de l’interface AC-Link La figure 6 montre l’assignement des slots de l’interface ACLink. Une attention particulière doit être apportée la configuration des différents registres constituant l’AC97. Une description détaillée des différents slots ainsi que leur configuration est disponible sur la référence [4]. Fig 4. Desing typique du CODEC AC97 Le CODEC AC97 intègre la conversion AD et DA le mixage des entrées-sorties le analogiques pour l’audio et fonctionne toujours comme esclave mixage et E / S analogiques pour l'audio (ou modem) , et fonctionne toujours comme esclave à un contrôleur numérique AC '97 , qui est généralement un contrôleur intégré dans les chipsets logiques de base . Le CODEC AC97 communique avec son le contrôleur numérique via l'interface série numérique AC-Link. B. Les outils de developpement L’interface software choisi pour la programmation du FPGA est l'environnement MATLAB Simulink et Xilinx System Generator. Simulink est une plateforme de simulation temps réel qui procure un jeu de « blocs » élémentaires permettant de modéliser le système à synthétiser. Page 2 2èmes Journées du Laboratoire Communication Parlée et Traitement du Signal ( JLCPTS ) 14-15 Janvier 2015 Chaque bloc contient un certain nombre d’éléments représentant des filtres, convertisseurs sources, scopes et autres composants pouvant être interconnectés. La figure 9 indique les fonctionnalités de l’implantation effectuée. System Generator, est un utilitaire de design haut niveau commercialisé par Xilinx pour les systèmes de traitement du signal de haute performance incluant des « blockset » spécifiques pour les FPGA de Xilinx. Ces « blocksets » peuvent être utilisés pour générer automatiquement les « netlist HDL » qui peuvent être chargées sur le FPGA. Ce système de développement simplifie énormément le processus de design et réduit de façon considérable la durée de conception en comparaison avec le codage HDL conventionnel. Un autre avantage de System Generator est sa capacité d’effectuer la co-simulation matérielle. III. EXPERIMENTATION La première phase de cette expérimentation consiste en l’élaboration des modèles Simulink utilisant des blocs System Generator permettant la génération des netlist HDL lors de l’implantation sur le FPGA. Fig 9 Schéma bloc de l’implémentation de TD-PSOLA sur FPGA. Notons la présence de la mémoire FIFO comme interface de stockage pour les données (parole ) provenant du CODEC et destinées à un traitement par TD-PSOLA. La mémoire a été configurée et testée à part, les résultats d’écriture et de lecture ont été concluants comme l’indique le « testbench » de la figure 10. Il est donné pour exemple sur la figure 7 le modèle proposé dans [6] et utilisé pour une dilation du signal dans un rapport 1.25 ; les signaux obtenus ainsi que les tests d’écoute sur des phrases préenregistrées nous ont permis de valider les modèles proposés pour une implantation hardware sur la carte de développement Xilinx ML-505. Fig 10. TestBench de la mémoire FIFO. Les différents tests de fonctionnement de notre implantation ont abouti à une acquisition et restitution temps réel ( loopback) à travers le CODEC effectuées avec succès et une bonne qualité d’écoute. Fig. 7 Modele System Generator pour une dilatation TD-PSOLA L’implantation du bloc de traitement par PSOLA, bien qu’ayant donné un résultat acceptable suite aux tests d’écoute sous MATLAB, a abouti à une restitution après traitement entachée de distorsions rendant la qualité d’écoute médiocre. Le paramétrage des registres du CODEC ne peut être mis en cause du fait que l’enregistrement et l’écoute en loopback ont été concluants . IV. Fig 8. Synthese TD-PSOLA La deuxième étape de notre travail avait pour but l’implantation sur FPGA et l’utilisation du CODEC a nécessité un paramétrage minutieux de tous les registres de l’AC’97. CONCLUSION Le présent travail avait pour but l’implantation sur FPGA d’un algorithme de traitement de la parole et l’utilisation des ressources matériels disponibles sur la carte de développement ML-505 à base de Virtex-5 de Xilinx. Page 3 2èmes Journées du Laboratoire Communication Parlée et Traitement du Signal ( JLCPTS ) 14-15 Janvier 2015 La méthodologie adoptée a eu des résultats considérés comme concluants. La plateforme utilisée après sa mise au point pourrait constituer un outil de test temps-réel appréciable. Références [1] E.Moulines, F. Charpentier “Pitch-synchronous waveform processing techniques for text-to-speech synthesis using diphones. ” Speech Communication, Volume 9, Issues 5–6, December 1990, Pages 453-467 [2] Roger Wood ... [et al.]. FPGA-based implementation of complex signal processing systems . 2008 John Wiley & Sons, Ltd. [3] Xilinx. “ML505/ML506/ML507 Evaluation Platform: User Guide: UG347.” Revision v3.1.2. Last modified May 16, 2011. http://www.xilinx.com/support/documentation/ug347.pdf. [4] Analog Devices. “AD1981B: AC ’97 SoundMAX Codec.” Last modified 2005. http://www.analog.com/static/importedfiles/data_sheets/AD1981B.pdf. [5] System Generator for DSP User Guide Release 10.1.1 April, 2008. http://www.xilinx.com. [6] H.Estephan…[et al ] Real-time speech pitch shifting on an FPGA. Available from http:// ww56.homepage.villanova.edu [7] M.Allam. Voice conversion using pitch shifting algorithm by time stretching with PSOLA and re-sampling » .Journal of Electrical Engineering ,Vol. 61, No. 1, 2010, pp 57–61 Page 4