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