15.06.2013 Views

Teza doctorat (pdf) - Universitatea Tehnică

Teza doctorat (pdf) - Universitatea Tehnică

Teza doctorat (pdf) - Universitatea Tehnică

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6.4.4.2. Analizorul lexical utilizat în determinarea silabelor<br />

207<br />

Cap. 6. Metode de sinteză de voce<br />

Analizorul lexical este apelat de către analizorul sintactic pentru regăsirea unităţilor<br />

fonetice de bază, şi anume: silabele, caracterele despărţitoare şi numerele. Analizorul sintactic va<br />

grupa aceste unităţi lexicale de bază în cuvinte şi propoziţii. Analizorul sintactic este<br />

implementat prin program, pe când analizorul lexical este rezultat în urma generării automate<br />

prin intermediul unui generator de parsere de text, numit LEX [Fre05].<br />

Generatorul automat LEX construieşte un analizor lexical pornind de la o gramatică ce<br />

descrie regulile de producţie ale analizorului. Gramatica se scrie în limbaj standard BNF<br />

(Backus-Naur Form) şi specifică secvenţele de caractere care trebuie recunoscute din textul de la<br />

intrare, precum şi acţiunile de efectuat corespunzătoare acestor secvenţe. Secvenţele de caractere<br />

de recunoscut ţin cont de contextul stânga şi dreapta în care ele apar.<br />

Analizorul generat preia aşadar de la intrare un text pe care îl va parcurge secvenţial în<br />

scopul regăsirii secvenţelor specificate în gramatica BNF. În cazul nostru secvenţele se referă la<br />

regăsirea numerelor, caracterelor speciale şi a silabelor. Procesul realizat de către analizorul<br />

lexical este ilustrat în figura 6.19.<br />

Text<br />

C C C C C C C C C C C C C<br />

Cifră Separator Alfanumeric<br />

Reguli de<br />

producţie<br />

Întreg Real Sep. 1 … Sep. n Silabă<br />

Tratare_număr Tratare_separator Tratare_silabă<br />

Figura 6.19. Analizorul lexical pentru regăsirea silabelor<br />

Aşa cum se vede din figura 6.19, textul de la intrare este interpretat ca un şir de caractere.<br />

La început, caracterul curent este clasificat într-una din categoriile: cifră, caracter special sau<br />

separator, respectiv caracter alfanumeric. Luând în considerare şi contextul anterior precum şi<br />

contextul următor în care poate să apară, caracterul curent împreună cu caracterele anterior<br />

parcurse se grupează pentru a alcătui o unitate lexicală: un număr, un separator sau o silabă.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!