Documente Academic
Documente Profesional
Documente Cultură
Introducere
- > Recunoaşterea vorbirii: la intersecţia tehnic – uman
- > Demers necesar: analiza acustică a semnalului vocal
- > Etapele analizei acustice:
- achiziţia şi eşantionarea semnalului vocal
- preaccentuarea
- separarea în cadre
- ferestruirea
- parametrizarea
- > Parametri utili:
- energia şi pseudoenergia semnalului vocal
- numărul trecerilor prin zero
- coeficienţii de predicţie liniară (LPC)
- coeficienţii cepstrali
- coeficienţii cepstrali filtraţi mel (MFCC)
- > Implementare:
- simularea în mediul Matlab
- programarea procesorului Motorola Star Core 140 DSP
Recunoaşterea vorbirii: la
intersecţia tehnic - uman
- > Domeniu interdisciplinar:
- Tehnici de programare
- Arhitecturi de microprocesoare
- Prelucrare numerică a semnalelor
- Modelare statistică
- Fonetică
- Limbaje formale şi automate
- Inteligenţa artificială – reţele neurale
- > Deziderate:
- comanda vocală a automatelor
- dialogul om – calculator
- implementarea sistemelor de comandă în timp real
Demers necesar: analiza
acustică a semnalului vocal
- > Primul nivel funcţional în structura sistemelor de
recunoaştere a vorbirii
Ferestruirea semnalului vocal
- > semnalul vocal preaccentuat şi divizat în cadre
Delimitarea segmentelor de
semnal vocal
- > algoritm de decelare pe criterii energetice a limitelor
segmentelor de semnal vocal
- > Segmente egale ca lungime
Energia şi pseudoenergia
semnalului vocal
- > x(nsemnal
) vocal eşantionat, separat în cadre şi ferestruit
N −1
- > Energia: E= ∑ [
m =0
w( m ) ⋅ x ( n − m ) ] 2
N −1
- > Pseudoenergia: E= ∑ w(m) ⋅ x(n − m)
m =0
- > Utilizări:
- decizia sonor / nesonor
- determinarea limitelor cuvintelor / grupurilor fonemice
Numărul de treceri prin zero
N −1
- > definit prin: NTZ = ∑ [1 − sgn( x(n + 1)) ⋅ sgn( x(n))] / 2
n =0
- > trecere prin zero dacă: sgn( x(n + 1)) ≠ sgn( x(n))
- > Precauţii:
- precizia eşantionarii
- influenţa zgomotolui
- frecvenţa de eşantionare cît mai mare (11 kHz)
- filtrare (trece – sus) adecvată
- > Utilizări:
- decizia sonor / nesonor
- aprecierea proprietăţilor spectrale: domeniul frecvenţei
Determinarea vectorilor de
parametri
- > Analiza prin predicţie liniară => coeficienţii LPC
Analiza cepstrală
- > Separarea efectelor excitaţiei tractului vocal şi ale tractului
propriu-zis
Cepstrul de frecvenţe mel –
coeficienţii MFCC
- > modelare ce ţine seama de perceperea vorbirii
- > cepstrul de frecvenţe mel = cepstrul (real) al unui semnal
pe termen scurt, ferestruit, derivat din FFT a semnalului vocal
- > diferenţa faţă de cepstrul propriu-zis: neliniaritatea scării de
frecvenţe utilizate
f ~
- > Scara (logaritmică) este dată de: Mel ( f ) = 1125 ⋅ ln 1 + = f
700
~
f
−1~
- > inversa scării mel: Mel ( f ) = 700 ⋅ (e 1125 − 1)
Coeficienţii MFCC din
coeficienţii LPC
- > Clasic: există erori de trunchiere la obţinerea MFCC
- > Abordare diferită: calcul recursiv MFCC din LPC:
−1 ~ −1 z −1 − α
- se aplică transformarea: z z = −1
, α = 0.42
1 − αz
- se calculează filtrul LPC transformat:
~
A A
P
= ∞
1− ∑ α (k ) ⋅ z − k 1− ∑ α~ (k ) ⋅ ~z − k
k =1 k =1 ~ ∞
A
- coeficienţii MFCC din: ln ∞
= ∑ c~ (n) ⋅ ~
z −n
1− ∑ α~ (k ) ⋅ ~z − k n =0
k =1
Coeficienţii MFCC din
coeficienţii LPC
- > se evită astfel erorile de trunchiere
- > algoritm recursiv:
α (−i ) + α ⋅ α~ (i −1) (0), n = 0
α (n) i = − P ,0 = (1 − α 2 )α~ (i −1) (0) + α ⋅ α~ (i −1) (1), n = 1
~ (i )
n = 2, P
~ (i −1)
α ( n − 1) + α ⋅ α( )
~ (i −1) (n) − α~ (i ) (n − 1) ,
~
A = A / α~ (0) (0), α~ (n) = α~ (0) (n) / α~ (0) (0), n = 1, P
ln A~
, n=0
~
c ( n) = ~ n −1
k ~ ~ n = 1, P
− α ( n ) −
∑k =1
n
⋅ c (k ) ⋅ α (n − k ),
Coeficienţii MFCC prin
convoluţie cu banc de filtre mel
- > calcul bazat pe transformata Fourier rapidă (FFT)
- > considerăm X (k ) = FFT ( x(n)) < N >
Coeficienţii MFCC prin
convoluţie cu banc de filtre mel
- > calcul al spectrului “ mediu” în jurul frecvenţei centrale
- > ariile de “ sub” funcţiile de transfer sunt egale
- > frecvenţa minimă a bancului de filtre: f l = 133
Hz
- > frecvenţa maximă a bancului de filtre: fHz
h = 6855
=> frecvenţele centrale dispuse uniform în spaţiul mel:
−1 Mel ( f h ) − Mel ( f l )
f [ p ] = ( N / f s ) ⋅ Mel Mel ( f l ) + p
P +1
- > logaritmul energiei “ de” la ieşirea fiecărui filtru:
N −1
∑
2
EM [ p ] = ln X (k ) H p (k )
k = 0
- > cepstrul de frecvenţe mel: transformata cosinus discretă:
P −1
~ (n) = DCT ( EN (m)) = 1
c ∑
p =0
EN ( p) ⋅ cos πn p + / P , n = 0, P − 1
2
Implementare
- > Parametrizări perceptuale ale semnalului vocal: MFCC
- > Preaccentuare; s-a ales α = 0.95
- > Separare în cadre; s-a ales N = 300, M = 100
- > Ferestruire: s-a ales fereastra Hamming
- > Calculul coeficienţilor de autocorelaţie
- > Calculul LPC; algoritmul Levinson - Durbin
- > Calculul MFCC din LPC
- > Integrare FFT; bancul de filtre mel, cu P = 12 filtre
- > Calculul MFCC din bancul de filtre mel
- > Citirea fişierelor “ .wav” , convertirea lor la fişiere “ .dat”
- > Scrierea valorilor din vectorii de parametri in fişiere “ .dat”
- > Reprezentare pe acelaşi grafic a coeficienţilor MFCC obţinuţi
- > Testarea comparativă a implementărilor
- > Platforme / medii de programare:
- Matlab™ 6.0
- Code Warrior™ 2.5.2 for Motorola®
Star Core™ 140 DSP
Simularea în Matlab™
- > Implementare rutine (fişiere “ .m” ) pentru:
- divizare în cadre
- obţinerea scării de frecvenţe mel
- calculul transformatei cosinus discrete
- construirea bancului de filtre mel
- calculul coeficienţilor MFCC
- citire / scriere fişiere “ .wav”
- citire / scriere fişiere “ .dat”
- script testare fişiere coeficienţi
⇒
- reprezentări grafice ale coeficienţilor
Criterii de optimizare -
deziderate
- > Mărirea gradului de paralelism: (4xDALU + 2xAGU)/VLES
Bibliografie
[1] M. Drăgănescu, G. Stefan, c. Burileanu – Electronica Funcţională,
Editura Academiei Române, Bucureşti, 1991
[6] Motorola, Inc. – SC140 DSP Core Reference Manual, Rev.3, 2001
[7] Motorola, Inc. – SC100 C Compiler User’ s Manual, Rev.2.0, 2001