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.
60 trang |
Chia sẻ: oanh_nt | Lượt xem: 989 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Luận văn Xây dựng bộ điều khiển và nhận dạng tiếng nói bằng xử lý tín hiệu số DSP56002, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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).
1 . Các khái niệm
a) Frame : một frame tiếng nói fs(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).
fs(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:
(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
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:
(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:
(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.
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 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.
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?
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 đ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ũ:
(9.5)
Trong đó, {Ai(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à
(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:
(9.7)
Aùp dụng định lý Parserval,
(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 :
(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ố trong tín hiệu tiếng nói sẽ ảnh hưởng lên kết quả STFT trong lân cận của các , 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ố .
W()
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 và. 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 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 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.
Tính
STFT
Trích cực đại
địa phương
theo hướng
tần số
Trích
formant
formants
S[n]
Hình 9.6 Giải thuật tổng quát trích đặc trưng formant dùng STFT
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 MPQ 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 là một hệ số tương ứng tại điểm (i,j) của phép phân tích.
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 MPQ. Một điểm (i,j) gọi là điểm cực đạ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ả:
(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 MPQ 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 MPQ 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 MPQ 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 APQ. Như vậy, các điểm còn lại của APQ không phải là điểm cực đại địa phương đều có giá trị bằng 0.
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+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
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.
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).
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.
START
Định khoảng truy tìm các formant [t1,t2]ở giữa tín hiệu
Tìm các formant có thể có trong khoảng [t1,t2]
Xác định giá trị và biên độ của từng formant ở điểm giữa tốt nhất tc[t1,t2]
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 tc
END
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 [t1,t2] ở 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ừ t1 đến t2 trong ma trận dữ liệu local maxima APQ. 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 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 tc là vị trí cột tìm được, tc đượ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 tc đượ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 (2Q) đượ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 tc, 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 tc, 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 tc đượ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 (tt). 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 (tt) trên ma trận dữ liệu local maxima APQ, 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 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 APQ 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 (tc+1) được xác định nhờ sử dụng giá trị formant tại tc làm tâm của khối truy tìm. Tiếp tục, formant tại điểm (tc+2) được xác định nhờ giá trị vừa tính được tại (tc+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 (tc-1) được xác định nhờ giá trị tại tc, formant tại điểm (tc-2) được xác định nhờ giá trị vừa tính được tại (tc-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 (2Q) 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:
Trong đó fin và Ain 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.
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
1
N
Formant bị đứt đoạn ở điểm t:
Xác định độ rộng của điểm bị đứt
Y
b nhỏ?
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
Đ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
N
Formant bị đứt đoạn ở điểm t:
Xác định độ rộng của điểm bị đứt
Y
b nhỏ?
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
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.
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 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 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 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.
Trong đó f và A 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 = [Ftừ 1,Ftừ 2,...,Ftừ m]
Cơ sở thực hiện phối hợp là hàm khoảng cách D. Tuy nhiên ở đây c