GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
XỬ LÝ TÍN HIỆU TIẾNG
NÓI
Chương trình này giới thiệu cụ thể về phép phân tích thời gian ngắn
(Short-time Analysis). Tín hiệu được tách thành các frame dài N mẫu và mọi
phép toán đều thực hiện trên frame đó mà thôi. Đây là phương pháp phân tích
cổ điển đối với các tín hiệu không dừng (non-stationary) như tín hiệu tiếng nói.
Khi đã chia thành các frame thì tín hiệu trên từng frame có thể được xem như là
một tín hiệu dừng và mọi phép xử lý trên frame được áp dụng như là xử lý trên
một tín hiệu dừng. Sau khi thực hiện STFT trích được đặc trưng của tín hiệu
tiếng nói sẽ dùng phương pháp kết hợp mẫu để nhận dạng tiếng nói.
I .TRÍCH ĐẶC TRƯNG TIẾNG NÓI DÙNG PHÉP
PHÂN TÍCH STFT
Sau khi đã số hoá tín hiệu, chúng ta bắt đầu trích đặc trưng tiếng nói của
một tiết như chu kỳ cao độ, formant nhưng trước hết là phải tách tín hiệu tiếng
nói khỏi nhiễu nền (khoảng im lặng) vì tín hiệu thu trong môi trường nhiễu nên
khoảng im lặng chính là nhiễu. Tất cả công việc trên đều có thể xử lý bằng
phép phân tích thời gian ngắn (Short-time Analysis).
SVTH:Huỳnh Quốc Trâm 9-104
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
1 . Các khái niệm
a) Frame : một frame tiếng nói f
s
(n,m) là tích của một cửa sổ được dòch
w(m-n) với chuỗi tiếng nói s(n).
f
s
(n,m)=s(n).w(m-n) (9.1)
b) Năng lượng thời gian ngắn : hàm năng lượng thời gian ngắn (short-
time energy function) của tín hiệu tiếng nói có thể được tính bằng cách chia tín
hiệu tiếng nói ra thành các khung, tức là các đoạn N mẫu liên tiếp và tính tổng
1
)m(Z
m
1Nmn
s
−
−−
=
∑
+−=
(9.3)
Trong đó, N là chiều dài của cửa sổ w(m-n).
d) Hàm tự tương quan thời gian ngắn :
Hình 9.2 Hàm tự tương quan của frame tương ứng khoảng cực đại của tín hiệu
Hàm tự tương quan (autocorrelation function) cho ta thông số về sự tương
quan của tín hiệu với một phiên bản trễ của chính nó. Hàm tự tương quan thời
gian ngắn của frame kết thúc tại m:
∑
+−=
η+−η−−=η
m
1Nmn
)}nm(w)n(s)}{nm(w)n(s{)m,(r
(9.4)
Hình 9.2 là đồ thò hàm tự tương quan thời gian ngắn tương ứng khoảng
cực đại của tín hiệu hình 9.1 a) sử dụng cửa sổ hình chữ nhật N=250. Nếu tín
hiệu tuần hoàn thì hàm này cực đại khi khoảng trễ là bội số của chu kỳ cơ bản.
SVTH:Huỳnh Quốc Trâm 9-106
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
2 . Phát hiện điểm đầu và cuối của một âm
N
BEGIN
Tính năng lượng frame của phần nhiễu N[k]
Ngưỡng nhiễu ThrNoise = a*max(N[k])
Ghi một âm tiết
Tính năng lượng các frame tín hiệu tiếng nói E[k]
k = 1
N
k = k+1
Y
Frame đầu từ k
Y
Frame cuối từ k-1
END
E[k]<ThrNoise?
E[k]>ThrNoise?
N
k = k+1
Chiều dài >ngưỡng?
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
Hình 9.3 Giải thuật phát hiện điểm đầu và điểm cuối dùng năng lượng frame
Giá trò a từ 2-5%
Nhận xét :
Giải thuật này tuy đơn giản nhưng lại có nhiều nhược điểm. Chúng ta
không thể xác đònh được điểm đầu và điểm cuối của một âm tiết vì nếu frame
đầu được xác đònh chính xác thì điểm bắt đầu âm tiết có thể nằm ở vò trí nào đó
trong frame này, dẫn đến độ sai lệch điểm đầu có thể bằng chiều dài frame N
và tương tự cho điểm cuối. Đó là trường hợp lý tưởng, còn nếu frame đầu xác
đònh sai ( trong môi trường nhiễu dao động nên đònh mức ngưỡng nhiễu không
chính xác), thì độ sai lệch sẽ là bội số của N. vậy dùng năng lượng frame để
trong không gian Hilbert là tổng của các hàm mũ:
SVTH:Huỳnh Quốc Trâm 9-110
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
∑∑
==
φ
η==
N
i
i
N
i
)t(
i
j
i
)t(e)t(A)t(S
11
(9.5)
Trong đó, {A
i
(t)} và {
φ
i
(t)} lần lượt là tập biên độ và pha tức thời của
N thành phần tần số của tín hiệu. Tần số góc tức thời của
η
i
(t) là
t
**
(9.8)
và tính chất dòch theo thời gian, đònh lý điều chế của biến đổi Fourier vào (9.7)
ta thu được :
dt)t(S)e)t(w(),(STFT
*tjω
∞
∞−
τ−=τω
∫
( )
[ ]
ω
τ−
π
=
ω
∞
∞−
∫
d)t(SFe)t(wF
2
1
*
∞−
ωτ−
∫
de)(S)(W
2
e
j*
(9.9)
Trong đó, W(
ω
′
) và S (
ω
′
) lần lượt là biến đổi Fourier của cửa sổ w (t) và
tín hiệu S(t),
ω
là tần số đang phân tích.
Hàm W (
ω−ω
′
) có tác dụng như một bộ lọc thông dãy, làm giới hạn phổ
tín hiệu S(
ω
′
) xung quanh tần số trung tâm
ω
(hình 9.5). Do đó theo (9.9), các
thành phần tần số
i
nếu tính được cực đại đòa phương
module của phép biển đổi STFT theo
hướng tần số thì có thể thu được hình
ảnh biểu diễn các formant có trong tín
hiệu tiếng nói.
Như vậy, đặc trưng formant trong tín hiệu tiếng nói được trích ra từ dữ liệu
STFT theo giải thuật tổng quát hình 9.6. Đầu tiên, tín hiệu tiếng nói của một âm
tiết sau khi qua endpoint detection được phân tích thời gian-tần số bằng STFT
để thu được các ridges tương ứng với các formant. Sau đó, kết quả STFT được
lấy cực đại đòa phương module (local maxima modulus) theo hướng tần số để
đònh vò chính xác vò trí của các formant. Bước cuối cùng trong công việc trích
các formant là lần theo vết của các cực đại đòa phương để thu được giá trò của
SVTH:Huỳnh Quốc Trâm 9-112
1
ω
2
ω
ω
W()
i
S
ω
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
mỗi formant theo thời gian. Để phục vụ cho mục đích nhận dạng, chỉ cần trích
3-5 formant là đủ để phân biệt các âm tiết với nhau.
Hình 9.6 Giải thuật tổng quát trích đặc trưng formant dùng STFT
SVTH:Huỳnh Quốc Trâm 9-113
Tính
STFT
Trích cực đại
PQP2P1
2Q2221
1Q1211
M ... M M
M ... M M
M ... M M
Đònh nghóa: cực đại đòa phương của STFT theo hướng tần số chính là các cực
đại đòa phương trên mỗi cột của ma trận M
PQ
. Một điểm (i,j) gọi là điểm cực đại
SVTH:Huỳnh Quốc Trâm 9-114
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
đòa phương nếu giá trò của nó lớn hơn giá trò của 2 điểm lân cận trên và dưới của
cùng cột đó, nghóa là :
M (i,j ) > M (i-1,j ) và M (i,j ) > M (i+1,j ) (9.10)
Tuy nhiên, đây chỉ là đònh nghóa mang tính lý thuyết. Khi vận dụng vào bài
toán cụ thể, chúng ta phải có một số hiệu chỉnh cho phù hợp. Dựa vào hình ảnh
spectralgram (hình 9.7c), ngoài các ridges thể hiện các formant thực sự, phần
còn lại không bằng phẳng mà có những “gợn” nhấp nhô với biên độ nhỏ. Nếu
theo đònh nghóa trên thì kết quả thu được là tổ hợp của một số điểm khác 0 có
giá trò khá lớn thể hiện đường nét formant và các điểm khác 0 khác tương ứng
với đỉnh của các “gợn”nhấp nhô đó, gây “nhiễu” cho kết quả phân tích. Vì các
điểm “nhiễu” này có giá trò khá nhỏ so với các điểm thể hiện đường nét formant
nên cần đặt một mức ngưỡng để loại bỏ chúng. Giá trò của mức ngưỡng phải vừa
. Như vậy, các điểm còn lại của A
PQ
không phải là điểm cực
đại đòa phương đều có giá trò bằng 0.
SVTH:Huỳnh Quốc Trâm 9-115
START
M=
Ma trận zero A
j=1
j = Q+1?
Vectơ cột M(i,j)
i =2
i = P?
M(i-1,j)<M(i,j)>M(i+1,j)
M(i,j)>ngưỡng?
A(i,j)=M(i,j)
i = i+1
j = j+1
Y
N
N
Y
END
Hình 9.8 Giải thuật trích cực đại đòa phương
N
Y
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
Kết quả trích local maxima của từ “báo” được vẽ trên hình 9.9. Tín hiệu
được lấy mẫu ở tần số Fs=8KHz và chiều dài của tín hiệu được giới hạn còn
1600 mẫu để tiện cho việc phối hợp mẫu khi nhận dạng.
đònh một khoảng truy tìm formant [t
1
,t
2
] ở giữa tín hiệu (t được tính bằng số
frame). Khởi đầu việc truy tìm các formant được thực hiện bằng trong một khối
gồm các cột từ t
1
đến t
2
trong ma trận dữ liệu local maxima A
PQ
. Cơ sở của việc
tìm formant trong khối này là các điểm có giá trò khác 0 trên các cột. Do có các
điểm “nhiễu” nên số lượng điểm khác 0 trên một cột có thể nhiều hơn số lượng
SVTH:Huỳnh Quốc Trâm 9-118
START
Đònh khoảng truy tìm các
formant [t
1
,t
2
]ở giữa tín hiệu
Tìm các formant có thể có
trong khoảng [t
1
,t
2
]
Xác đònh giá trò và biên độ của từng
c
, giá trò và biên độ ban
đầu được thiết lập theo giá trò đã xác đònh ở phần trước. Từ điểm giữa t
c
, việc
truy tìm formant được thực hiện theo 2 hướng: lần theo vết formant cho đến cuối
tín hiệu (theo chiều tăng của t), và truy ngược về đầu tín hiệu (theo chiều giảm
của t). trong cả 2 hướng truy tìm, giá trò formant tại điểm t
c
được dùng như một
giá trò khởi đầu.
Hình 9.11 Minh họa khoảng truy tìm các formant [t1 t2] ở giữa tín hiệu .
Formant tại điểm t được xác đònh nhờ giá trò ƒ của formant tại thời điểm
vừa tìm được trước đó (t-1 khi tìm theo chiều tăng hoặc t+1 khi tìm theo chiều
giảm của t). Do đặc trưng của tiếng nói có các formant thay đổi chậm theo thời
gian, nên giá trò formant tại điểm t chỉ có thể thay đổi một khoảng
∆
ƒ khá nhỏ
xung quanh giá trò ƒ ở các điểm lân cận của t (t
±
∆
t). Do đó ta có thể giới hạn
việc truy tìm formant (ở điểm t) trong một khối xác đònh bởi các lân cận của
f (f
±
∆
t) và t (t
±
∆
t) trên ma trận dữ liệu local maxima A
Việc truy tìm formant theo hướng ngược
lại cũng tương tự : formant tại điểm (t
c
-1) được
xác đònh nhờ giá trò tại t
c
, formant tại điểm
(t
c
-2) được xác đònh nhờ giá trò vừa tính được
tại (t
c
-1),…. cho đến đầu formant.
Sau khi trích một formant bằng giải thuật trên, ta được kết quả là một ma
trận gồm 2 hàng và Q cột với hàng đầu chứa giá trò và hàng thứ 2 chứa biên độ
của Q điểm formant. các vò trí không có formant, giá trò và biên độ các điểm
đều được gán bằng 0.
Với k formant có thể có trên local maxima, giải thuật trên phải được thực
hiện k lần, mỗi lần trích một formant. Kết quả ta được k ma trận (2
×
Q) tương
ứng chứa kết quả của k formant. Ta có thể ghép các ma trận này lại thành một
cấu trúc dữ liệu chứa kết quả của tất cả các formant như sau:
SVTH:Huỳnh Quốc Trâm 9-120
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
=
kQkk
kQkk
Q
Q
Q
Q
k
AAA
fff
AAA
fff
AAA
fff
F
F
F
F
Truy tìm formant ở điểm t:
- Tìm điểm cực đại trong khối L()
- Đặt :a = biên độ điểm cực đại
fs = hàng xuất hiện điểm cực đại
t = t+1
Y
a>0
Có formant ở điểm t : gán kết quả
F(1,t)=fs :giá trò formant
F(2,t)= a :biên độ formant
Y
?tQt
∆−=
1
N
Formant bò đứt đoạn ở điểm t:
Xác đònh độ rộng của điểm bò đứt
Y
b
Lấy kết quả formant ở điểm (t-1)
F(1,t) = F(1,t-1)
F(2,t) = F(2,t-1)
N
N
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
SVTH:Huỳnh Quốc Trâm 9-122
Điểm bắt đầu truy tìm t = t
Đặt f=F(1,t+1) :giá trò formant ở điểm (t+1)
Xác đònh khối truy tìm formant L()
Truy tìm formant ở điểm t:
Hình 9.13 Kết quả trích formant của từ ‘LEFT’ dùng STFT
II . NHẬN DẠNG TIẾNG NÓI :
Trong hệ thống điều khiển bằng tiếng nói, phần quan trọng nhất và phức
tạp nhất là chương trình nhận dạng tiếng nói. Bằng các công cụ phân tích tín
hiệu hiện có, hệ thống nhận dạng tiếng nói được thiết lập theo hướng phối hợp
mẫu, trong đó mẫu được sử dụng để phối hợp là các đặc trưng tiếng nói của từng
từ như dạng sóng một chu kỳ cao độ nguyên âm, formant.
1 . Giải thuật nhận dạng tiếng nói :
Từ âm tiết tách được ,bằng phương pháp STFT ta sẽ trích được formant
của tín hiệu và thu được ma trận dữ liệu F (formant). Kết quả này sẽ được đối
chiếu với dữ liệu của bộ từ vựng trong Fstore để tìm ra các từ có đặc trưng gần
giống nhất với từ cần nhận dạng. Phương pháp đối chiếu giữa dữ liệu thu được
và dữ liệu mẫu dựa trên cơ sở phối hợp mẫu. Cơ sở phối hợp mẫu(Luật quyết
đònh) được sử dụng rộng rãi nhất là luật lân cận gần nhất. Nội dung của luật này
như sau: tính khoảng cách D
i
giữa mẫu nhập vào với các mẫu lưu trữ. Mẫu cần
nhận dạng là mẫu có D
i
nhỏ nhất. Tuy nhiên, việc tính khoảng cách chỉ là bước
kế tiếp của bước canh lề theo trục thời gian giữa mẫu nhập với các mẫu tham
khảo vì cùng một từ được phát âm qua các lần khác nhau sẽ có chiều dài khác
SVTH:Huỳnh Quốc Trâm 9-124
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
nhau do đó các từ khác nhau thì xác suất khác nhau về độ dài của chúng càng
lớn. Cách đơn giản nhất để khắc phục là cố đònh chiều dài của tất cả các mẫu
được chọn.
Cơ sở phối hợp formant:
Như đã biết formant có 2 thông số quan trọng là: giá trò(tần số) và biên
độ. k formant tạo thành ma trận 2k hàng, trong đó hai hàng liên tiếp chính là giá
=
kNknkk
kNknkk
Nn
Nn
Nn
Nn
K
AAAA
ffff
AAAA
ffff
AAAA
ffff
F
F
F
F
Cơ sở thực hiện phối hợp là hàm khoảng cách D. Tuy nhiên ở đây có 2
yếu tố cần phối hợp: giá trò và biên độ của các formant tại các điểm tương ứng
giữa 2 từ cần phối hợp; do đó, khoảng cách được tính cho cả giá trò và biên độ
tại các điểm. Kết quả thu được có thể lấy tổng (D1) hoặc tích giữa khoảng cách
giá trò với khoảng cách biên độ rồi mới lấy tổng (D2). Công thức tính khoảng
cách D1 và D2 giữa từ cần nhận dạng với từ thứ i của bộ từ vựng được cho bởi
công thức sau:
{ } { }
{ }
∑ ∑
= =
=−=−
−+−−−
=
k
f
N
n
)~)n,f(iFstore*)~)n,f(F(
*))n,f(iFstore)n,f(F)n,f(iFstore)n,f(F(
D
1 1
012012
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
F(2f-1,n), F(2f,n): lần lượt là giá trò và biên độ tại điểm n của
formant thứ f của từ cần nhận dạng .
Fstore
{ }
i
(2f-1,n), Fstore
{ }
i
(2f,n): lần lượt làø giá trò và biên độ tại
điểm n của formant thứ f của từ thứ i trong bộ từ vựng và Fstore
{ }
i
= F
từ i
.
Do các formant dùng để phối hợp mẫu không phải lúc nào cũng liên tục
qua hai lần trích nên hai công thức trên được nhân thêm giá trò logic (1:có
formant ,0 không có formant)nhằm mục đích chỉ so sánh sự giống nhau của phần
tồn tại formant của hai từ.
Nếu 2 từ có các formant càng giống nhau thì các giá trò D (D1 hoặc D2)
tính được càng nhỏ.Do đó quyết đònh nhận dạng sẽ dựa vào cực tiểu của các giá
trò D của từ cần nhận dạng với các từ trong bộ từ vựng.
Trong luận văn này em sử dụng công thức tính D1 để làm cơ sở phối
hợp mẫu.
2. Lưu đồ giải thuật nhận dạng tiếng nói dùng DSP56002:
SVTH:Huỳnh Quốc Trâm 9-126
BẮT ĐẦU
Khai báo hằng và biến
Đònh dạng CS4215 và
include 'bitrev'
include 'fft'
include 'hanning'
include 'dlieu'
include ‘nhan’
include ‘formant’
include ‘dieukhien’
HIENTHI EQU $1000
NHANDANG EQU $0FA0
HOANTAT EQU $1000
DULIEU1 EQU $0300
HMING EQU $0700
DATAT EQU $2000
FORMANT EQU $2D00
DATA1 EQU $11FF
POINTS EQU 512
DATA EQU $0C00
COEF EQU $0900
OLDDATA EQU $3000
DATATHUC EQU $3200
LOCAL EQU $1200
LOCAL1 EQU $1000
POINTS1 EQU $3000
DULIEU EQU $1000
HESO EQU 0.1
KQ EQU $0A00
nhan
formant
dieukhien
jmp START