Tải bản đầy đủ (.doc) (66 trang)

Xây dựng bộ điều khiển và nhận dạng tiếng nói phần 10

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (351.86 KB, 66 trang )

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


bình phương của các mẫu tín hiệu này trong từng khung. Việc chia tín hiệu ra
thành các khung có thể được thực hiện bằng cách nhân tín hiệu đó với một hàm
cửa sổ w(n) thích hợp với n=0,1,2…N-1. Hàm này sẽ có giá trò bằng 0 bên ngoài
khoảng (0, N-1), thông thường các cửa sổ này là các cửa sổ chữ nhật có bề rộng
từ 10 đến 20 ms. Với một cửa sổ kết thúc tại mẫu thứ m, hàm năng lượng thời
gian ngắn E(m) được xác đònh bởi:

[ ]


−∞=
−=
n
2
)nm(w)n(s)m(E
(9.2)
Đồ thò của hàm năng lượng thời gian ngắn của một đoạn tín hiệu được
thể hiện trên hình 9.1. Ta thấy năng lượng của tín hiệu lớn hơn rất nhiều so với
khoảng im lặng (có thể xem là nhiễu).
Hình 9.1
a) Tín hiệu b) Năng lượng thời gian ngắn
c) Tỷ lệ qua điểm zero (Zero-crossing rate):
Tỷ lệ này là một thông số cho biết số lần mà biên độ tín hiệu đi qua
điểm zero trong một khoảng thời gian cho trước được xác đònh bởi:
SVTH:Huỳnh Quốc Trâm 9-105
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
)nm(w
2
)}1n(ssgn{)}n(ssgn{
N

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

tiết dùng năng lượng frame
Một trong những vấn đề cơ bản nhất trong xử lý tiếng nói là việc xác đònh
điểm đầu và điểm cuối của chuỗi tiếng nói được phát ra. Đây là một khâu quan
trọng trong quá trình nhận dạng mẫu tiếng nói sử dụng kiểu nhận dạng từ đơn
(isolated-word) theo hướng phối hợp mẫu (Pattern Matching Approach) và được
gọi là end-point detection. Theo kiểu này, các âm tiết trong mẫu ghi âm sẽ được
tách riêng và trích đặc trưng của từng âm tiết. Việc phát hiện end-point rất khó
thực hiện trong thực tế trừ trường hợp tỷ số tín hiệu trên nhiễu rất lớn.
Tín hiệu tiếng nói thu được thông qua các thiết bò ngoại vi luôn nằm giữa
khoảng im lặng. Việc ghi âm trong môi trường nhiễu nên khoảng im lặng còn
gọi là nhiễu. Năng lượng thời gian ngắn của các cửa sổ chứa tín hiệu có ích luôn
lớn hơn nhiều so với đoạn chỉ có nhiễu. Do đó, nếu chúng ta đặt ra một mức
ngưỡng để phân biệt giữa frame chứa tín hiệu và frame chỉ gồm nhiễu thì đoạn
chứa âm tiết sẽ được tách ra. Vì thế, giải thuật phát hiện end-point dùng năng
lượng frame như hình 9.3
Trước tiên, các frame nhiễu nền sẽ được thu thập liên tục trước khi ghi
âm tín hiệu tiếng nói nhằm thiết lập ngưỡng nhiễu. Ngưỡng này có thể xác đònh
bằng bội số nào đó của năng lượng frame nhiễu lớn nhất. Sau đó, ghi âm tín
hiệu của một âm tiết trong khoảng thời gian đủ dài để âm tiết được thu trọn vẹn
và tính năng lượng frame cho tín hiệu vừa ghi âm. Dò từ đầu về cuối tín hiệu
nếu frame nào có năng lượng lớn hơn ngưỡng chính là frame bắt đầu của tín
hiệu và tiếp tục dò nếu frame có năng lượng nhỏ hơn ngưỡng (frame chứa
nhiễu) thì đây là frame kết thúc của tín hiệu. Cuối cùng xét tín hiệu vừa tách
được có phải là nhiễu hay không bằng cách so sánh chiều dài này với chiều dài
SVTH:Huỳnh Quốc Trâm 9-107
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
tối thiểu của một từ. Nếu thỏa điều kiện này thì đây thật sự là âm tiết, ngược lại
phải ghi âm lại.
SVTH:Huỳnh Quốc Trâm 9-108
Y

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 để

phát hiện điểm đầu và cuối của từng âm tiết trong câu lệnh sẽ thiếu chính xác.
Lưu ý :
Công việc truy tìm frame đầu của tín hiệu tiếng nói có thể được xuất
phát từ vò trí frame có năng lượng cực đại trên ngưỡng nhiễu (trong đoạn tín
hiệu thực sự). Thực hiện theo cách này sẽ tăng thời gian xử lý nhưng hệ thống
thiếu tính thực tế vì tín hiệu được thu xong mới tiến hành endpoint detection. Vì
vậy, mục đích của người thiết kế giải thuật là tạo cho giải thuật có tính thực tế
cao bởi vì bộ cảm biến (cụ thể ở trường hợp này là micro) của hệ thống điều
khiển chỉ cần thăm dò và kiểm tra một frame tín hiệu (khoảng 10-20ms) trên
ngưỡng nhiễu là biết có tín hiệu tiếng nói thu vào hay chưa. Từ đó có thể thực
hiện các công việc song song khác như vừa truy tìm tín hiệu vừa tính STFT để
thu được phổ cục bộ. Như vậy kết thúc endpoint detection cũng là kết thúc công
việc nhận dạng.
Một nổ lực khác để khắc phục nhược điểm trên khi tín hiệu tiếng nói được
thu trong môi trường nhiễu cao là kết hợp năng lượng frame và tỷ lệ qua điểm
zero với nhận xét: bản chất của “nhiễu” là tín hiệu ngẫu nhiên nên tỷ lệ qua
SVTH:Huỳnh Quốc Trâm 9-109
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
điểm zero sẽ lớn trong miền nhiễu và nhỏ trong miền tín hiệu. Trong khi năng
lượng frame lại lớn trong miền tín hiệu và nhỏ trong miền nhiễu. Nếu kết hợp cả
năng lượng frame và zero-crossing thì chúng ta tận dụng được cả tính chất của
tín hiệu và nhiễu.
Tuy nhiên nổ lực này vẫn không cải thiện hiệu quả cho lắm vì chúng ta
phải dùng đến hai mức ngưỡng cho năng lượng frame và zero-crossing.
Hình 9.4
(a,b) Tín hiệu và năng lượng của từ ‘LEFT’ trước khi tách khỏi khoảng nhiễu .
(c,d) Tín hiệu và năng lượng của từ ‘LEFT’ sau khi tách khỏi khoảng nhiễu .
3 . Trích formant dùng phép biến đổi STFT
Tiếng nói là tín hiệu không dừng (nonstationary signal) gồm nhiều thành
phần. Về mặt toán học, một đoạn tiếng nói được biểu diễn với độ chính xác cao

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

i
'
ii
d
)t(d
)t(
φ
=φ=ω
(9.6)
Thực hiện STFT đối với tín hiệu S(t) trong biểu thức (9.5), ta được:
dte)t(S)t(w),(STFT
tj* ω−

∞−
τ−=τω

(9.7)
p dụng đònh lý Parserval,

∫∫

∞−

∞−
ωωω
π
= d)(G)(F
2
1
dt)t(g)t(f

**
(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
*

tj
[ ]
ω

ω

ω−ω

π
=


∞−
τω−ω

d)(S.e)(W
2
1
)(j*
ω

ω

ω−ω

π
=
τω



∞−
ωτ−

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

ω
trong tín hiệu tiếng nói sẽ ảnh hưởng lên kết quả STFT
SVTH:Huỳnh Quốc Trâm 9-111
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
trong lân cận của các
i
ω
, tạo thành các ridge của STFT (hình 9.7). Điểm cực đại
của các ridge chính là tần số
i
ω
.
Hình 9.5 Biểu diễn phổ của tín hiệu và phổ của hàm cửa sổ tại t=
τ
STFT chuyển tín hiệu một chiều thành hàm hai biến
ω

τ
. Do đó, kết quả
của STFT là một ảnh biểu diễn các thành phần tần số của tín hiệu theo thời
gian. Hình ảnh này được gọi là spectralgram.
Từ kết quả phân tích trên, chúng ta thu được các ridges tương ứng với các
tần số tức thời trong tín hiệu mà có biên độ tương đối lớn. Nếu xem mỗi thành
phần tần số này là một formant thì đỉnh của các ridges chính là hình ảnh của các
formant trong tín hiệu tiếng nói.
Hình 9.7c cho phép chúng ta rút
ra kết luận là đỉnh của các ridges chính
là cực đại đòa phương của module
STFT
tính theo hướng tần số. Như vậy

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

đòa phương
theo hướng
tần số
Trích
formant
formants
S[n]
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
Hình 9.7 Spetralgram của tín hiệu
a)Tín hiệu gồm 3 thành phần tần số 200,500,700Hz liên tiếp nhau theo thời gian .
b)Biểu diễn STFT trong mặt phẳng thời gian tần số .
c)Biểu diễn STFT trong không gian 3 chiều .
Giải thuật trích cực đại hoá đòa phương :
Sau khi tính STFT của tín hiệu tiếng nói, ta thu được một ma trận M
PQ
có P
hàng ứng với P giá trò rời rạc tần số và Q cột tương ứng với Q giá trò rời rạc thời
gian (Q= số frame). Mỗi phần tử M(i,j) của ma trận M
PQ
là một hệ số tương
ứng tại điểm (i,j) của phép phân tích.
M
PQ
=













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

đủ cho hai mục đích: loại bỏ các điểm “nhiễu” và giữ lại tốt các điểm thể hiện
formant có giá trò tương đối nhỏ.
Vậy điểm (i,j ) là điểm cực đại đòa
phương nếu thoả:





>
+>
>
ngưỡng ) j(i, M
) j1,(i M ) j(i, M
) j1,-(i M ) j(i, M
(9.11)
Từ đònh nghóa này, giải thuật trích cực đại đòa phương khá đơn giản như
hình 9.8. Đầu tiên, tính ma trận M
PQ
bằng cách lấy module của kết quả phân tích
tín hiệu tiếng nói bằng STFT. Khởi động ma trận M
PQ
chứa dữ liệu local maxima
với các giá trò đều bằng 0. Sau đó, từng điểm trên mỗi cột của ma trận M
PQ
sẽ
được kiểm tra xem thoả mãn điều kiện (9.11) không. Nếu thoả thì đây chính là
điểm cực đại đòa phương. Giá trò của điểm này sẽ được gán cho các điểm tương
ứng của ma trận A
PQ

. 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.

SVTH:Huỳnh Quốc Trâm 9-116
Y
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
Hình 9.9 Kết quả trích cực đại đòa phương của từ ‘LEFT’
Giải thuật trích formant từ ma trận cực đại đòa phương.
Sau khi thu được hình ảnh “tương đối” của formant trong trích tín hiệu
tiếng nói từ giải thuật trích local maxima, chúng ta sẽ hoàn tất công việc trích
formant bằng cách lần theo vết đen của các đường local maxima. đây sử dụng
hình ảnh “tương đối” bởi vì ảnh local maxima thu được không phải đơn thuần là
các điểm thể hiện formant mà còn có cả nhiễu mặc dù đã đặt một mức ngưỡng
để loại bỏ các điểm “nhiễu” này. Đặc điểm của các điểm “nhiễu” là có giá trò
nhỏ và không tạo thành các đường nét liên tục. Do đó, các formant khởi đầu có
thể được xác đònh bằng cách tìm các đường liên tục trong một khoảng có độ
rộng nhất đònh ở giữa âm tiết (ở vò trí này, các formant thể hiện rõ nhất so với ở
đầu và cuối âm tiết vì đây là đỉnh âm tiết).
SVTH:Huỳnh Quốc Trâm 9-117
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
Mỗi điểm trên một formant
có 2 thông số quan trọng cần phải
lấy được: giá trò (tần số)formant
có thể xem như hàng xuất hiện
formant trên ma trận dữ liệu và
biên độ tức thời của formant tại
điểm đó, chính là giá trò của phần
tử tương ứng trên ma trận dữ liệu.
Giải thuật trích formant từ local
maxima cho phép thu được cả 2
thông số này.
Hình 9.10 Giải thuật tổng quát trích formant
Hình 9.10 trình bày giải thuật trích formant tổng quát. Đầu tiên cần xác

đò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

formant ở điểm giữa tốt nhất t
c
[t
1
,t
2
]
Trích từng formant từ từng cặp giá trò và
biên độ của mỗi formant ở điểm giữa tín
hiệu t
c
END
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
formant. Tuy nhiên nếu số lượng điểm “nhiễu” không nhiều và các formant
không bò đứt đoạn thì trong khối truy tìm sẽ có ít nhất một cột có số lượng điểm
khác 0 nhỏ nhất, đây chính là số lượng formant có thể có. Kí hiệu t
c
là vò trí cột
tìm được, t
c
được xác đònh là điểm tốt nhất để bắt đầu trích formant. Giá trò (tần
số) và biên độ của từng formant ở điểm t
c
được xác đònh. Từ cặp giá trò và biên
độ ban đầu này, việc trích mỗi formant được tiếp tục bằng giải thuật hình 9.12.
Đầu tiên một ma trận có kích thước (2
×
Q) được khởi động với các phần tử
đều bằng 0 để chuẩn bò chứa dữ liệu kết quả của một formant (hàng đầu chứa
giá trò và hàng thứ 2 chứa biên độ formant). Tại điểm t

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

PQ
, gọi là khối truy tìm
formant. Trong khối này, formant tại điểm đang tìm có thể xác đònh bằng điểm
SVTH:Huỳnh Quốc Trâm 9-119
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
có giá trò lớn nhất. Nếu tồn tại các điểm cực đại có giá trò lớn hơn 0 trong khối
truy tìm thì giá trò của điểm đó được xem là biên độ của formant và số thứ tự
của hàng xuất hiện điểm cực đại trong ma trận A
PQ
có thể xem là giá trò của
formant tại điểm truy tìm t. Ngược lại nếu khối truy tìm chỉ gồm các điểm có giá
trò 0, thì formant tại điểm t đã bò mất, tạo thành một khoảng đứt đoạn trên đường
nét formant. Nếu khoảng đứt đoạn là khá ngắn (nhỏ hơn một giá trò ngưỡng), thì
việc formant bò đứt có thể do giới hạn độ phân giải của phép phân tích và ta có
thể khắc phục bằng cách lấy giá trò và biên độ của formant ở điểm trước đó gán
cho điểm đang xét. Ngược lại, nếu khoảng bò đứt quá lớn, thì khoảng đó thực sự
không có formant và việc truy tìm có thể chấm dứt.
Theo nguyên tắc trên, formant tại điểm (t
c
+1) được xác đònh nhờ sử dụng
giá trò formant tại t
c
làm tâm của khối truy tìm. Tiếp 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). Cứ tiếp tục như thế, các điểm
formant theo chiều tăng của t lần lượt được xác đònh cho đến hết đường nét
formant.

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











21
21
22221
22221
11211
11211
2
1
Trong đó f
in
và A
in
lần lượt là giá trò và biên độ tại điểm n của
formant thứ i, với i =1, 2,…., k.
SVTH:Huỳnh Quốc Trâm 9-121
START
Đặt [f,a] = giá trò và biên độ
formant ở điểm ban đầu t
Khởi động ma trận chứa kết
quả : F = Ma trận zero(2xQ)
Điểm bắt đầu truy tìm t= t
Khởi động giá trò ban đầu :F(1,t) = f,F(2,t) = a
Đặ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:
- 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:

- 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
?tt
∆=
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
1
END
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
Hình 9.12 Lưu đồ trích một formant từ Local Maxima
Kết quả trích formant của từ ‘LEFT’ được trình bày ở hình 9.13. Tín hiệu
được lấy mẫu ở tần số 8kHz.
SVTH:Huỳnh Quốc Trâm 9-123
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói

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á

trò và biên độ của cùng một formant.



























=













=
kNknkk
kNknkk
Nn
Nn
Nn
Nn
K
AAAA
ffff
AAAA
ffff
AAAA
ffff
F
F
F
F










21
21
222221
222221
111211
111211
2
1
Trong đó f
in
và A
in
lần lượt là giá trò và biên độ của điểm n trên
formant thứ i với i=1,2,...,k và n=1,2,...,N. Ta cần so sánh ma trận dữ liệu F của
từ vừa đọc với ma trận dữ liệu chuẩn được lưu trong Fstore.
Fstore = [F
từ 1
,F
từ 2
,...,F
từ m
]

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

221212
1


{ } { }
{ }
∑ ∑
= =






=−=−
−−−−
=
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
221212
1
Trong đó :
SVTH:Huỳnh Quốc Trâm 9-125

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à

DSP56002
Y
Nhận dữ liệu và lưu vào RAM
Trích formant của tín hiệu vào
bằng STFT
Tính D của tín hiệu vào với tín
hiệu chuẩn
Từ cần nhận dạng
=có?
Y
N
Điều kiện kết thúc?
Y
END
N
N
Ứùng dụng điều khiển
Trích âm tiết khỏi khoảng im lặng
Điều kiện nhận
thỏa?
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
III . CHƯƠNG TRÌNH NHẬN DẠNG TIẾNG NÓI :
SVTH:Huỳnh Quốc Trâm 9-127
GVHD:Thầy Lê Tuấn Anh Nhận Dạng Tiếng Nói
CHƯƠNG TRÌNH NHẬN DẠNG TIẾNG NÓI
;********************************************
;CHƯƠNG TRÌNH CHÍNH (main.asm)
;********************************************
include 'init.asm'
include 'sincos'

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

;*********************************************************************
SVTH:Huỳnh Quốc Trâm 9-128

×