Voce pentru proiecte embedded

20 MAI 2008

Adăugarea de voce unui proiect embedded poate îmbunătăţi experienţa utilizatorului cu privire la produs. Comenzile pot fi confirmate, starea poate fi anunţată, iar temperatura poate fi auzită. În orice caz, adăugarea de voce a fost percepută ca o sarcină dificilă şi scumpă. Acest articol demonstrează că utilizarea unui microcontroler PIC® pe 8 biţi cu periferic PWM poate oferi o cale simplă şi ieftină de adăugare de voce în proiecte embedded.
O metodă de codificare de voce este numită ADPCM (Adaptive Differential Pulse Code Modulation), o tehnică de digitizare a semnalelor analogice. ADPCM dispune de avantajele unei înalte corelări între eşantioane consecutive de vorbire şi codifică diferenţa dintre un eşantion prezis şi un eşantion de vorbire.
Când se produce redarea sau decodarea, eşantioanele viitoare sunt prevăzute. ADPCM oferă o compresie eficientă cu calitate de redare a vorbirii.
Există tipuri variate de algoritmi ADPCM. Algoritmul IMA (Interactive Multimedia Association’s) reduce semnificativ complexitatea matematică, simplificând numeroase operaţii şi utilizând atunci când este posibil tabele de căutare. De aceea el este o bună alegere pentru microcontrolerele pe 8 biţi. Deoarece redarea este obiectivul primar, pentru codare va fi utilizat un program PC, în timp ce operaţia de decodare va fi realizată de microcontroler.
Pentru a face redarea interactivă, fragmentele de voce sunt separate în fişiere individuale adresabile. De exemplu, pentru a spune o valoare numerică de temperatură, numerele de la 1 la 9, 10 la 19, 20, 30, 40, 50, 70, 80 şi 90 sunt înregistrate în fişiere separate. Astfel, atunci când temperatura este de 21 de grade, vocea va utiliza două fişiere, unul după celălalt. Un sistem de fişiere simplu este utilizat pentru a stoca şi reda fişiere voce individuale.
Cantitatea de memorie necesară pentru stocarea fişierelor voce depinde de numărul de biţi, de viteza de eşantionare şi de ce se doreşte a fi înregistrat. Pentru un sunet cu calitate pentru păpuşi, numărul de biţi este 16 la o viteză de 8000 de eşantioane pe secundă, ceea ce echivalează cu o lăţime de bandă de 4000 Hz. De aceea dimensiunea unei secunde de voce este de 16000 byte.
Odată ce fişierul voce este codat cu algoritmul IMA ADPCM, fişierul se comprimă la 1/4 din dimensiunea originală. În funcţie de cantitatea de voce necesară pentru proiect, ea poate fi stocată în memoria program a microcontrolerului sau pe o memorie externă Flash. Un megabit de memorie Flash serială poate păstra aproximativ 32 de secunde de voce. Schema logică prezentată în figura 1 sintetizează paşii de lucru. La început, vocea este înregistrată pe un PC ca fişier WAV. Apoi, utilizând un program de editare de sunete, fişierul de voce original poate fi curăţat şi re-eşantionat la 8000 Hz, ca fişier mono pe 16-biţi. În a treia etapă, se codifică fişierul cu algoritmul IMA ADPCM şi apoi este salvat ca fişier binar. Al patrulea pas strânge fişierele împreună într-un sistem de fişiere. În final, se stochează fişierele într-un microcontroler sau într-o memorie externă.
Hardware-ul necesar pentru acest sistem este prezentat în figura 2. Microcontrolerul accesează fişierele voce pentru redare din memorie, decodându-le prin utilizarea modulului PWM. Ieşirea modulului PWM este filtrată trece-jos la 4000 Hz. Semnalul analogic rezultat poate fi amplificat şi redat printr-un difuzor.
Cu un mic efort în înregistrarea de voce, în codarea în format ADPCM şi apoi în stocarea în memorie, proiectul embedded poate avea într-adevăr o voce naturală. Dar lucrul acesta nu se opreşte aici. Deoarece fişierele sunt numai înregistrări, pot fi introduse armonii, tonuri şi sunete de fond. Singura limitare în îmbunătăţirea acestei experienţe este numai imaginaţia inginerului proiectant.
Notă: Numele Microchip şi logo-ul PIC şi MPLAB sunt mărci înregistrate ale Microchip Technology Inc. în USA şi alte state. Toate celelalte mărci menţionate aici sunt ale companiilor proprietare.
www.microchip.com

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *

  • Folosim datele dumneavoastră cu caracter personal NUMAI pentru a răspunde comentariilor/solicitărilor dumneavoastră.
  • Pentru a primi raspunsuri adecvate solicitărilor dumneavoastră, este posibil să transferăm adresa de email și numele dumneavoastră către autorul articolului.
  • Pentru mai multe informații privind politica noastră de confidențialitate și de prelucrare a datelor cu caracter personal, accesați link-ul Politica de prelucrare a datelor (GDPR) si Cookie-uri.
  • Dacă aveți întrebări sau nelămuriri cu privire la modul în care noi prelucrăm datele dumneavoastră cu caracter personal, puteți contacta responsabilul nostru cu protecția datelor la adresa de email: gdpr@esp2000.ro
  • Abonați-vă la newsletter-ul revistei noastre