P12AB10 SPEEX encoderplayer sur RDK RX62N » Historique » Version 11
Anonyme, 09/04/2021 14:14
1 | 2 | Anonyme | p=. !https://forge.clermont-universite.fr/attachments/download/16614/P12AB10_logo_polytech_20120509024723_20120509032931.png! |
---|---|---|---|
2 | 1 | Anonyme | |
3 | 2 | Anonyme | h1=. *%{color:#00008B}P12AB10 SPEEX encoderplayer sur RDK RX62N%* |
4 | 1 | Anonyme | |
5 | 3 | Anonyme | p=. !https://forge.clermont-universite.fr/attachments/download/16615/P12AB10_affiche_20130120235227_20130120235953.png! |
6 | 2 | Anonyme | |
7 | *Projet GE4 - GE5 2012 : Sujet N° P12AB10* |
||
8 | |||
9 | *Entreprise / Client : RENESAS ELECTRONICS CORPORATION / M. Martins TOLENTINO* |
||
10 | |||
11 | *Tuteur industriel : M. Gérard CHAZELLE (Michelin)* |
||
12 | |||
13 | *Tuteur technique : M. Michel JAMES (Polytech)* |
||
14 | |||
15 | *Responsable Projet : M. Jacques LAFFONT (Polytech)* |
||
16 | |||
17 | 1 | Anonyme | *Groupe de travail : M. Mohamad ZARZOUR et César MAKAMONA MBUMBA SHÉALTIEL* |
18 | 3 | Anonyme | |
19 | [[1. Résumé]] |
||
20 | [[2. Abstract]] |
||
21 | [[3. Introduction]] |
||
22 | [[4. Présentation du Sujet]] |
||
23 | |||
24 | p(((. [[1. Renesas]] |
||
25 | [[2. Speex]] |
||
26 | [[3. RX210]] |
||
27 | |||
28 | [[5. Cahier des Charges]] |
||
29 | |||
30 | [[6. Étude de faisabilité]] |
||
31 | |||
32 | p(((. [[1. Problématiques]] |
||
33 | [[2. Faisabilité]] |
||
34 | [[3. Solutions]] |
||
35 | |||
36 | [[7. Gestion de Projet]] |
||
37 | |||
38 | p(((. [[1. W.B.S.]] |
||
39 | [[2. Gantt]] |
||
40 | |||
41 | [[8. Réalisation]] |
||
42 | |||
43 | p(((. [[1. Méthodologie]] |
||
44 | [[2. Tâches]] |
||
45 | [[3. Sous-traitance]] |
||
46 | |||
47 | [[9. Bilan]] |
||
48 | |||
49 | p(((. [[1. État d'avancement]] |
||
50 | [[2. Analyse Critique]] |
||
51 | [[3. Perspectives]] |
||
52 | |||
53 | [[10. Notes d'Application]] |
||
54 | |||
55 | p(((. [[1. Sujet 1]] |
||
56 | [[2. Sujet 2]] |
||
57 | |||
58 | [[11. Bibliographie]] |
||
59 | |||
60 | p=. *%{color:red}1) Résumé%* |
||
61 | |||
62 | Le projet SPEEX ENCODER/PLAYER SUR RBP RX210 est proposé par RENESAS ELECTRONICS CORPORATION, qui est une entreprise |
||
63 | de renommée internationale basant ses opérations sur la conception, le développement, la fabrication, la vente et le service après-vente |
||
64 | des composants électroniques des systèmes embarqués et de puissance. |
||
65 | |||
66 | Dans le but de démontrer la puissance et l’efficacité de ses produits, en développant des applications avec des outils libres et gratuits, |
||
67 | RENESAS veut faire la transmission audio (vocale) d’un point à un autre. L’application ainsi souhaitée devra utiliser le codec libre et gratuit SPEEX sur le microcontrôleur Renesas RX210, avec le compilateur KPIT GNURX et le noyau temps réel FreeRTOS, ces derniers étant aussi libres et gratuits. |
||
68 | |||
69 | Le travail consiste à porter le code source du codec SPEEX sur le RX210 afin de réaliser, d’une part, un encodeur qui fait l’acquisition |
||
70 | d’un flux audio analogique, le transforme en flux Speex numérique et de l’autre, un décodeur qui restitue un flux audio à partir d’un flux Speex reçu en entrée. Les deux modules, l’Encodeur et le Décodeur, sont reliés par une liaison série asynchrone (UART). |
||
71 | |||
72 | Mots clés : |
||
73 | |||
74 | p(((. - Transmission audio/vocale |
||
75 | - "RX / RX200 / RX210 / RPB RX210":https://www.renesas.com/eu/en/products/mpumcu/rx/rx200/rx210/index.jsp |
||
76 | - "FreeRTOS":https://www.freertos.org/ / "KPIT GNURX":https://kpitgnutools.com// USB |
||
77 | - Encodage / Décodage |
||
78 | - Codec Speex |
||
79 | |||
80 | --- |
||
81 | |||
82 | p=. *%{color:red}2) Abstract%* |
||
83 | |||
84 | RENESAS ELECTRONICS CORPORATION is an international renown company which based its operations on the design, development, manufacturing, sales and after-sales service of embedded systems’s and power systems’s electronic components. |
||
85 | |||
86 | Proposed by RENESAS, the SPEEX ENCODER / PLAYER ON RBPRX210 project aim to demonstrate the power and effectiveness of its products, developing applications with free and open source tools. RENESAS wants to transmit audio (voice) from one point to another. As desired, |
||
87 | the application will use SPEEX codec on Renesas RX210 microcontroller, with KPIT GNURX compiler and FreeRTOS real time kernel. |
||
88 | |||
89 | The work is to port SPEEX source code on the RPB RX210 board, to achieve, on the one hand, an Encoder, which acquires |
||
90 | an analog audio stream, converts it into Speex digital streams and on the another hand, a Decoder which restores an audio stream from |
||
91 | a Speex stream inputted. Both modules, Encoder and Decoder, are connected by asynchronous serial communication interface (UART). |
||
92 | |||
93 | Keywords: |
||
94 | |||
95 | p(((. - Audio/Voice transmission |
||
96 | - "RX / RX200 / RX210 / RPB RX210":https://www.renesas.com/eu/en/products/mpumcu/rx/rx200/rx210/index.jsp |
||
97 | - "FreeRTOS":https://www.freertos.org/ / "KPIT GNURX":https://kpitgnutools.com// USB |
||
98 | - Encoding / Decoding |
||
99 | - Speex codec |
||
100 | |||
101 | --- |
||
102 | |||
103 | p=. *%{color:red}3) Introduction%* |
||
104 | |||
105 | De la téléphonie mobile à l’Internet, la transmission des données à distance, en utilisant n’importe lequel de support, a changé notre quotidien, pour ne pas dire, l’a révolutionné. Ce type de transmission nécessite des techniques particulières, en l’occurrence, celles d’encodage et de décodage. |
||
106 | |||
107 | Ce dans ce cadre que la réalisation, assistés par les enseignants et professionnels, du projet SPEEX ENCODER / PLAYER prépare le sentier |
||
108 | à notre futur métier d’Ingénieur. Ce projet, prévu dans la "formation à Polytech’Clermont-Ferrand en vue de l’obtention du diplôme d’Ingénieur en Génie Électrique":http://polytech.univ-bpclermont.fr/ingenieur-en-genie-electrique.html, se déroule en deux phases. L’une de 50 heures, sur l’identification des besoins réels du Client et l’étude de faisabilité, en GE4 et l’autre de 250 heures, sur la réalisation, en GE5. |
||
109 | |||
110 | Le Client, RENESAS ELECTRONICS CORPORATION, représenté par M. Martins TOLENTINO, est connu pour la production des systèmes de semi-conducteurs dans l’électronique embarquée et l’électronique de puissance. Il est le premier fabricant des microcontrôleurs et le second fabricant des processeurs d’applications, dans le monde. |
||
111 | |||
112 | Dans les soucis de fidéliser ses clients et d’en gagner d’autres et avec la course du libre et gratuit, RENESAS fait la promotion de ses produits en prouvant leur efficacité avec des applications utilisant des outils libres et gratuits. C’est dans ce contexte que s’inscrit le projet SPEEX ENCODER / PLAYER, qui fait la transmission audio d’un point à un autre, utilisant le codec SPEEX, le compilateur KPIT GNURX et le noyau temps réel "FreeRTOS":http://dirac.epucfe.eu/projets/wakka.php?wiki=FreeRTOS, tous libres et gratuits. |
||
113 | |||
114 | Le but est de réaliser un encodeur et un décodeur en portant le code du codec SPEEX, spécialisé et optimisé pour la voix humaine, sur le microcontrôleur RPB RX210. Ainsi, créer une chaîne de traitement audio qui fait l’acquisition d’un flux audio analogique, le transforme en flux Speex numérique et le restituer en fin de chaîne sous forme de flux audio analogique. |
||
115 | |||
116 | |||
117 | Nous parlerons, dans la suite, du Client et du contexte du projet, des éléments de base, c’est-à-dire, le codec SPEEX et la carte RPB RX210. |
||
118 | Nous décrirons le cahier des charges tel qu’énoncé par le Client, duquel découlera le cahier des charges fonctionnel, qui nous conduiront |
||
119 | à la description de la ou des problématiques. Nous proposerons une ou des solutions avec des options, partant des problématiques et |
||
120 | de la faisabilité et détaillerons les différentes étapes pour mener à bien le projet. Le projet est développé sous deux environnements, |
||
121 | CODEBLOCKS et HEW. |
||
122 | |||
123 | --- |
||
124 | |||
125 | p=. *%{color:red}4) Présentation du Sujet%* |
||
126 | |||
127 | h2. 4.1) RENESAS ELECTRONICS CORPORATION |
||
128 | |||
129 | 4 | Anonyme | p=. !https://forge.clermont-universite.fr/attachments/download/16618/P12AB10_logo_ren_20130120235227_20130121065931.jpg! |
130 | |||
131 | "Renesas Electronics Corporation":https://www.renesas.com/eu/en (ルネサス エレクトロニクス, Renesasu eretoronikusu) est une entreprise japonaise basée à Tokyo et cotée à la bourse de ce dernier (TSE : 6723). Il est né de la fusion d’HITACHI Ltd et de MITSUBISHI ELECTRIC CORPORATION en 2002 sous la nomination de RENESAS TECHNOLOGY. Il est devenu RENESAS ELECTRONICS CORPORATION suite à sa fusion avec NEC ELECTRONICS CORPORATION en 2010. RENESAS est le premier fabricant mondial des microcontrôleurs et le second dans la fabrication des processeurs d’applications. Il assure également la conception, fabrication, vente et services après ventes des systèmes de semi-conducteurs pour la téléphonie mobile, l’automobile, l’électronique de puissance, les mémoires, les LCD, les circuits intégrés RF et système sur puce. |
||
132 | |||
133 | Dans le but de démontrer la puissance et l’efficacité de ses produits, en développant des applications avec des outils libres et gratuits, |
||
134 | RENESAS veut faire la transmission audio (vocale) d’un point à un autre. L’application ainsi souhaitée devra utiliser le codec libre et gratuit SPEEX sur le microcontrôleur Renesas RX210. |
||
135 | |||
136 | h2. 4.2) SPEEX |
||
137 | |||
138 | 5 | Anonyme | p=. !https://forge.clermont-universite.fr/attachments/download/16619/P12AB10_logo_spx_20120509041413_20120509041534.png! |
139 | |||
140 | Un codec (Compression-Décompression ou Codage-Décodage) est un procédé matériel ou logiciel permettant de compresser/encoder un signal pour une transmission ou un stockage, d’un côté, et de décompresser/décoder pour une édition ou une restitution, de l’autre. |
||
141 | |||
142 | Le "SPEEX":https://www.speex.org/ est un codec, logiciel, audio, libre et gratuit, spécialisé et optimisé pour la voix humaine. Il a été conçu, en 2002 par "Jean-Marc VALIN":https://jmvalin.ca/, pour la transmission vocale sur réseau IP (Voice Over Internet Protocol), c’est-à-dire, transmission sous forme des paquets de données numérique (PDU : Protocol Data Unit) par le protocole TCP/IP ou UDP/IP entre entités ou systèmes connectés au réseau. D’où une grande variété de débits, allant de 2 à 44 Kbits/s. C’est un codec robuste qui compresse avec perte de données, disposant de plusieurs fréquences d’échantillonnage et supporte un changement dynamique du débit d’encodage/décodage. L’algorithme de calcul utilisé est le CELP (Code Excited Linear Prediction), un algorithme de codage à prédilection linéaire, basé lui-même sur l’algorithme LPC (Linear Prediction Code). La dernière version est la 1.2rc1. |
||
143 | |||
144 | 6 | Anonyme | p=. !https://forge.clermont-universite.fr/attachments/download/16620/P12AB10_voix2_20130120235227_20130121071704.png! |
145 | 5 | Anonyme | |
146 | 1 | Anonyme | h3=. Fig. 1 : Appareil phonatoire humain |
147 | 6 | Anonyme | |
148 | p=. (www.ph-ludwigsburg.de/html/2b-frnz-s-01/overmann/baf3/phon/3k.htm) |
||
149 | |||
150 | La voix humaine est un phénomène physique dû à la vibration de l’air, provenant des poumons vers le nez ou la bouche lors d’une expiration, soit par les cordes vocales soit par les différentes cavités ou/et organes de l’appareil phonatoire humain (Fig. 1). Le langage parlé est basé sur la succession de sons élémentaires appelés phonèmes, groupés en deux familles : |
||
151 | |||
152 | - les phonèmes voisés : générés par la vibration de l’air par les cordes vocales et ont un caractère quasi-périodique (sinusoïde). |
||
153 | - les phonèmes non voisés : correspondent à la vibration de l'air par les autres cavités et organes de l'appareil phonatoire et ont un caractère aléatoire (bruit). |
||
154 | |||
155 | 7 | Anonyme | p=. !https://forge.clermont-universite.fr/attachments/download/16621/P12AB10_lpc_20130121111713_20130121111912.png! |
156 | 6 | Anonyme | |
157 | 1 | Anonyme | h3=. Fig. 2 : Synthétiseur ou Codeur LPC |
158 | 7 | Anonyme | |
159 | Pour synthétiser la voix humaine, il est nécessaire de reproduire une chaîne de traitement correspondant à l'appareil phonatoire humain. |
||
160 | Pour ce faire, le codage à prédiction linéaire (LPC), tel que l'illustre la figure 2, utilise trois composantes : |
||
161 | |||
162 | - *La source d'excitation* : composée d’un générateur d’impulsions périodiques, qui synthétise les phonèmes voisés, et d’un générateur |
||
163 | du bruit blanc, qui synthétise les phonèmes non voisés. Dans la synthèse des phonèmes voisés, c'est la fréquence fondamentale du signal ou pitch |
||
164 | qui est extraite, et c'est la variance du bruit qui est prise en compte pour les phonèmes non voisés. Un signal voisé correspond à une lettre |
||
165 | comme ‘’a’’ ou ‘’u’’ et un son comme ‘’ne’’, tandis qu’un non voisé correspond à une lettre comme ‘’r’’ ou ‘’s’’ et un son comme ‘’c’est’’ (Fig. 3). |
||
166 | |||
167 | - *Le gain* : il ajuste l'amplitude du signal synthétique par rapport à celle de l’original. |
||
168 | |||
169 | - *Le Filtre de synthèse*: c'est un filtre passe-bas numérique utilisant la méthode dite prédictive, c’est-à-dire, la valeur du signal à l'instant N est estimée grâce aux valeurs N-1 du signal. Le but est de déterminer les écarts entre les différents échantillons, plutôt que de les calculer directement. La minimisation de l'erreur, dite erreur de prédiction, entre le signal original et le signal synthétique conduit à la détermination des coefficients de la fonction de transfert (le filtre). |
||
170 | |||
171 | 8 | Anonyme | p=. !https://forge.clermont-universite.fr/attachments/download/16622/P12AB10_fft_20130120235227_20130121071741.png! |
172 | 7 | Anonyme | |
173 | 1 | Anonyme | h3=. Fig. 3 : FFT et Autocorrélation des signaux, voisé (gauche) et non voisé (droite) |
174 | 8 | Anonyme | |
175 | Synthétiser la voix humaine revient donc, à calculer le pitch d’un signal, s’il est voisé, ou la variance, s’il est non voisé. Le processus de synthèse a donc deux phases : l'identification de la fonction (source) d'excitation, sinusoïde ou bruit blanc, et l'identification de la fonction de transfert du modèle vocal. |
||
176 | |||
177 | Pour identifier la source d’excitation, le signal à analyser est segmenté en fenêtres de 20ms, c'est-à-dire, 160 échantillons pour une fréquence d'échantillonnage de 8 KHz. Le codeur génère en sortie une fréquence d'excitation (codée sur 16 bits), un ensemble de 10 coefficients (codés sur 10 x 8 bits), et un gain (codé sur 8 bits). Le débit du codeur est donc de 104 bits toutes le 20 ms, soit 5,2 kb/s. |
||
178 | |||
179 | S’ensuit un filtrage basse fréquence avec une fréquence de coupure de 4khz, qui ne garde que le spectre utilisé par la voix humaine, un échantillonnage à 8khz pour éviter tout phénomène de repliement (théorème de Shannon) et une Autocorrélation. Le graphe du résultat obtenu (Fig. 3), après les différentes opérations, peut faire apparaître plusieurs pics, un à l'origine puisqu'il s'agit d'une Autocorrélation, et un deuxième si le signal est voisé. Cependant pour considérer le second pic, son amplitude doit être au moins de 40% de celle à l'origine. Si c'est le cas, la fréquence d'excitation retenue est la fréquence ainsi obtenue, sinon le signal est non voisé et l'excitation est un bruit blanc. |
||
180 | |||
181 | Après identification de la source d’excitation, les coefficients de la prédiction linéaire ou coefficients de réflexion du filtre sont à calculer en utilisant "l'algorithme de Durbin":http://externe.emt.inrs.ca/users/benesty/lectures/lecture04.pdf. Ils doivent minimiser l'erreur quadratique moyenne définit par : |
||
182 | |||
183 | 9 | Anonyme | p=. !https://forge.clermont-universite.fr/attachments/download/16624/P12AB10_form1_20130120235227_20130121000659.png! |
184 | |||
185 | ai : coefficients de la fonction de transfert (filtre) |
||
186 | x(n) : signal à déterminer à l’instant n |
||
187 | e(n) : erreur de prédiction linéaire à l’instant n |
||
188 | |||
189 | L'algorithme de Durbin génère 10 coefficients de réflexion compris entre -1 et +1. L’expérience conduit à observer que les coefficients proches de ces bornes sont les plus importants. Cette observation a conduit, à son tour, à adopter l'échelle LAR (Log Area Ratio), illustrée par la figure 4, définie par : |
||
190 | |||
191 | 10 | Anonyme | p=. !https://forge.clermont-universite.fr/attachments/download/16625/P12AB10_lar1_20121226012713_20121226013300.png! |
192 | |||
193 | 11 | Anonyme | p=. !https://forge.clermont-universite.fr/attachments/download/16626/P12AB10_lar3.jpg_20121226012713_20121226013353.gif! |
194 | 10 | Anonyme | |
195 | 1 | Anonyme | h3=. Fig. 4 : Fig. 4 : Représentation de l'échelle LAR et son approximation linéaire |
196 | 11 | Anonyme | |
197 | p=. (http://www-sop.inria.fr/rodeo/avega/phd/phd-html/node16.html) |
||
198 | |||
199 | La synthèse devient complète après détermination du gain, par simple calcul d’énergie. |
||
200 | |||
201 | p=. !! |
||
202 | |||
203 | h3=. Fig. 5 : Synthétiseur ou Codeur CELP |