Do ñộ nhạy của các hệ số cepstral cấp thấp làm cho phổ bị ñổ dốc và do ñộ
nhạy của các hệ số cepstral cấp cao gây ra nhiễu nên ta thường sử dụng kỹ thuật ñặt trọng sốñể làm giảm thiểu các ñộ nhạy này: ĉ1(m) = c(m).w(m) với w(m) là hàm ñặt trọng số. Hàm ñặt trọng số thích hợp thường là bộ lọc thông dải: w(m) = Q m Q sin 2 1 , 1 m Q.
Lấy ñạo hàm cepstral theo thời gian
Đạo hàm theo thời gian của dãy các vector cepstral có trọng sốñược xấp xỉ
bởi một ña thức trực giao cấp một trên cửa số hũư hạn gồm (2K + 1) frame, chính giữa là vector hiện tại. Đạo hàm cepstral của frame l ñược tính như sau:
∆ĉ1(m) = K K i i l m c iˆ ( ) G, 1 m Q.
trong ñó G là ñộ lợi sao cho phương sai của ĉl(m) và phương sai của ∆ĉ1(m) gần giống nhau. Giá trị thông thường là 0.375.
Như vậy sau bước lấy ñạo hàm cepstral, mỗi frame sẽ ñược ñặc trưng bỡi 2Q hệ số, gồm có Q hệ số cepstral có trọng số kết hợp với Q hệ sốñạo hàm cepstral.
Tóm lại, trong mô hình phân tích LPCở hình 2.13, chúng ta cần phải ñặc tả
một số tham số, gồm có:
N: số mẫu trong mỗi frame phân tích.
M: số mẫu cách nhau giữa hai frame kề nhau. P: cấp phân tích LPC.
Q: số chiều của vector cepstral dẫn xuất từ các hệ số LPC.
K: số frame mà trên ñó ta tính các ñạo hàm cepstral.
Tham số Fs= 6.67 KHz Fs= 8 Khz Fs= 10 KHz N 300 (45 ms) 240 (30 ms) 300 (30 ms) M 100 (15 ms) 80 (10 ms) 100 (10 ms) P 8 10 10 Q 12 12 12 K 3 3 3
Các tham số trên thay ñổi tuỳ theo kinh nghiệm của người dùng. Sau ñây là bảng các giá trị thông dụng của các tham sốñó theo 3 tốc ñộ lấy mẫu Fskhác nhau:
Mô hình LPC là mô hìnhñặc biệt thích hợp cho tín hiệu tiếng nói. Với miền tiếng nói hữu thanh có trạng thái gần ổn ñịnh, mô hình tất cả các ñiểm cực ñại của LPC cho ta một xấp xỉ tốt ñối với ñường bao phổ cơ quan phát âm. Với miền tiếng nói vô thanh, mô hình LPC tỏ ra ít hữu hiệu hơn so với miền hữu thanh, nhưng nó vẫn là mô hình hữu ích cho các mục ñích nhận dạng tiếng nói. Mô hình LPC ñơn giản và dễ cài ñặt trên phần cứng lẫn phần mềm. Đặc biệt, kinh nghiệm ñã chứng tỏ
rằng phương pháp LPC thực hiện tốt hơn so với bộ trích ñặc trưng bằng dãy bộ lọc.
2.3. Phát hi#n chu kỳ ti'ng nói – ph*!ng pháp tìm t7n s2
c! b,n (Tham kh,o ph/ l/c 2).
Tần số cơ bản ñóng một vai trò quan trọng trong nhận dạng tiếng nói. Từ tần số cơ bản, ta có thể có những phân biệt các tiếng theo một sốñặc ñiểm ngữ âm. Tần số cơ bản còn thể hiện sắc thái, thanh ñiệu, giọng người nói… Do ñó, xác ñịnh tần
số cơ bản là một phần công việc không thể thiếu trong các hệ nhận dạng tiếng nói,
ñặc biệt là tiếng nói có thanh ñiệu như tiếng Việt.
Sự thể hiện của các thanh ñiệu liên quan ñến giá trị và sự biến ñổi của tần số
cơ bản. Trong xử lý tiếng nói, tín hiệu ñược chia thành các khung liên tiếp nhau, nên thanh ñiệu sẽ ñược thể hiện bằng tần số cơ bản trong từng khung tín hiệu cũng như sự vận ñộng của nó từ khung này sang khung khác.
Tín hiệu ñầu vào của các phương pháp trên là tín hiệu tiếng nói thô, hoặc tín hiệu ñã ñược xử lý bằng một phép toán phi tuyến (như cắt tâm) hay dùng lỗi dự báo (trong mô hình LPC).
Tần số cơ bản chỉ có trong các âm hữu thanh, nên việc rút trích tần số cơ bản cũng phải ñảm nhận luôn việc phân biệt giữa các âm vô thanh và hữu thanh.
Có nhiều phương pháp rút trích F0, nhưng về cơ bản, người ta chia chúng thành 2 dạng: theo miền thời gian và theo miền tần số. Ta cũng có thể kết hợp các kỹ thuật của cả 2 dạng trong xử lý.
2.3.1. Các kỹ thuật theo miền thời gian
Các kỹ thuật xử lý F0 theo miền thời gian quan tâm ñến các yếu tố về thời gian của tiếng nói như: khoảng thời gian một tiếng, thời ñiểm và thời lượng F0 xác
ñịnh trong tiếng, các thời ñiểm có những thay ñổi mang tính quyết ñịnh ñến F0… Các kỹ thuật xử lý theo miền thời gian còn xem xétñến việc tăng hiệu quả và
ñộ chính xác cho việc trích F0.
2.3.2. Các kỹ thuật phân tích phổ hữu hạn
Các kỹ thuật phân tích phổ hữu hạn, hay phân tích theo miền tần số sẽ ñề cập nhiều ñến tần số, năng lượng hơn. Đối với nhận dạng tiếng nói, các kỹ thuật xử lý theo miền tần số tỏ ra hiệu quả hơn. Và kết quả cho ra là các tần số, biên ñộ, năng lượng… cũng ñược ứng dụng nhiều trong công ñoạn rút trích ñặc trưng.
Một vấn ñề cũng khá quan trọng khi ta ñề cập ñến tính kinh tế, và cũng là mục ñích khi tiến hành việc rút trích ñặc trưng là giảm thiểu bộ nhớ lưu trữ. Việc rút gọn thông tin ảnh hưởng ñến sự chọn lựa các thông tin ñể xét. Do ñó ta phải cân nhắc kỹ giữa các thông tin rút trích, cách thức lưu trữ, và ñộ chính xác cần có.
2.3.3. Mô tả tín hiệu
2.3.3.1. Tiếng nói thô
Tiếng nói thô chứa tất cả các thông tin về tiếng nói ñược phát ra, bao gồm cả
những dao ñộng cộng hưởng của các khoang, hay nhiễu môi trường… Trong tín hiệu tiếng nói thô, có rất nhiều thông tin kém hiệu quả, hoặc thậm chí vô ích. Do ñó, nếu lấy tín hiệu tiếng nói thô dùng ñể trích F0 thì hiệu quả sẽ kém.
Để tăng hiệu quả, người ta tiến hành một số bước tiền xử lý cho tín hiệu tiếng nói thô, nhằm tăng ñộ chính xác, giảm khối lượng tính toán. Thông thường tín hiệu thô ñược xử lý qua 2 bước trước khi dùng ñể trích F0:
Lọc thông thấp: tín hiệu tiếng nói ñược cho qua bộ lọc thông thấp ñể
loại bỏ các thành phần có tần số cao hơn Fmax. (Tần số cơ bản lớn nhất có thể của tiếng nói). Thông thường Fmax= 900Hz.
Thực hiện việc lấy mẫu lại, giảm bớt kích thước sóng âm. Tần số lấy mẫu ñược giảm xuống còn 2 KHz (theo ñịnh luật Nyquist: tần số lấy mẫu phải lớn hơn hoặc bằng 2 lần tần số cơ bản lớn nhất). Lấy mẫu lại tần số giúp giảm ñáng kể khối lượng tính toán. Ở các phương pháp tìm F0 thông thường, khối lượng tính toán giảm khoảng Z2 lần. Với Z là tỉ lệ giảm tần số lấy mẫu.
2.3.3.2. Lỗi dự báo tuyến tính
Mô hình LPCñặc trưng bằng hàm truyền ñạt có dạng như sau:
trong miền thời gian là:
trong ñó, G*u(n) chính là nguồn kích thích, trong trường hợp âm hữu thanh, G*u(n) chính là miêu tả chính xác dạng dao ñộng của dây thanh hay F0.
Nếu mô hình LPC hoạt ñộng tốt, ta có ñẳng thức:
Như vậy mô hình LPC ñã làm cho tín hiệu lỗi dự báo e~(n) chỉ còn chứa thông tin về nguồn kích thích, và do ñó, việc xác ñịnh F0 trong trường hợp hữu thanh trở nên dễ dàng hơn.
2.3.4. Một số phương pháp cài ñặt các kỹ thuật trích F0:
2.3.4.1. Phương pháp dùng cepstral:
Phương pháp này có thể mô tả ñơn giản như sau:
Dùng phép phân tích Cepstral thực cho tín hiệu vào. Tín hiệu vào này có thể sử dụng trực tiếp tiếng nói thô.
Tìmñỉnh trong vùng thích hợp của tín hiệu cn. Nhận xét
Đỉnh ñược tìm khá chính xác, ít bị lấy nhầm hài âm. Dùng tốt trong trường hợp tiếng nói có cao ñộ thấp.
Việc xác ñịnh ngưỡng ñể quyết ñịnh có ñỉnh tại cn0 không tuỳ thuộc vào người nói khó phân biệt vô thanh/hữu thanh.
2.3.4.2. Phương pháp tự tương quan:
Thực hiện tính hàm tự tương quan trên khung tín hiệu tiếng nói ñộ dài N rN(p) = 1 0 ) ( ) ( p N i p i s i s
trong ñó, p ñược giới hạn trong vùng có âm cơ bản. Nếu tín hiệu s(n) là tuần hoàn thì sẽ có các ñỉnh tại i = 0, P, 2P,…(P là chu kỳ âm cơ bản). Ngưỡng quyết
vào tương quan năng lượng của khung tín hiệu và năng lượng trung bình của cả tín hiệu.
Nhận xét:
Thông thường, tín hiệu ñược nhân với một hàm cửa sổñể giảm sự tác
ñộng do sự thay ñổi âm ñiệu.
Nếu áp dụng phương pháp này cho tín hiệu tiếng nói thô thì tỏ ra không tốt, ñỉnh xuất hiện không rõ.
Cần một số bước tiền xử lý ñể loại bỏ thông tin của ñường phát âm (vocal tract).
Áp dụng phương pháp này cho e~(n) sẽ tốt hơn.
Có lấy vài ñỉnh trong một khung tín hiệu sau ñó dựa vào phương pháp Dynamic Programing ñể tìm ra chuỗi F0 trong một ñoạn các khung liên tiếp.
Một phương pháp dẫn xuất từ phương pháp này là dùng hiệp tương quan giữa hai tín hiệu x(n) và y(n), y(n) = x(n + P) (tín hiệu y(n) là do tín hiệu x(n) dịch
ñi P ñơn vị).
2.3.4.3. Phương pháp CLIP (center clipping pitch detector)
Phương pháp này tương tự phương pháp tự tương quanở trên, nhưng tín hiệu
ñược xử lý ñể loại bỏ thông tin về các phoocmăng (thông tin về ñường phát âm). Có một vài giải pháp cho việc này. Cụ thể là phương pháp cắt tâm (center clipping). Phương pháp này sẽ loại bỏ bớt các ñỉnh nhỏ trên sóng âm, làm cho sóng âm nhìn giống dạng xung hơn.
Phép toán cắt C ñược mô tả như sau:
C{s(n)} = L L L L L L C n s C n s C n s C C n s C n s ) ( ) ( ) ( 0 ) ( ) (
Trong ñó CL là ngưỡng cắt, thường ñược lấy bằng 30% giá trị lớn nhất của tín hiệu.
2.3.4.4. Phương pháp SIFT (Simplified Inverse Filter Tracking)
Phương pháp này thực chất là phương pháp tự tương quan với tín hiệu vào là
e
~(n) thu ñược trong mô hình phân tích LPC.
2.3.4.5. Hàm AMDF (Average Magnitude Difference Function)
Giống phương pháp tự tương quan ở trên, nhưng khối lượng tính toán sẽ
giảm xuống do không phải dùng phép nhân.
Chúng ta ñịnh nghĩa hàmtrung bình hiệu biên ñộnhư sau: D(p) = 1 0 | ) ( ) ( | 1 N p n p n s n s p N
Sau khi tính D(p) trong vùng có khả năng xuất hiện P0. Chọn ñiểm cực tiểu D(P0), P0 là chu kỳ tần số cơ bản.
2.3.4.6. Phương pháp so khớp biên ñộ
Chuỗi tín hiệu tiếng nói ñưa vào máy tính có dạng hình sin. Do ñó, ta sẽ tìm hai ñiểm dao ñộng cùng pha, khoảng thời gian giữa hai ñiểm ñó chính là chu kỳ T. Từ T, ta sẽ tìm ra tần số f.
Tuy nhiên cần chú ý rằng tín hiệu tiếng nói là sự tổng hợp của nhiều tần số
(xem hình vẽ), do ñó, hai ñiểm dao ñộng cùng pha ñược xét phải là 2 ñiểm cắt zero. Bên cạnh ñó, ta cũng phải xác ñịnh ñúng 2 ñiểm cắt zero ñể tạo thành chu kỳ của F0, vì các daoñộng cộng hưởng cũng có thể gây ra ñiểm cắt zero.
Hình 2.15: hình dạng tín hiệu tiếng nói
1. Dò tìm ñiểm cắt zero thứ nhất theo một chiều nào ñó (ví dụ ñi lên như
trong hình vẽ), ñặt tên làX1.
2. Dò tìm 2 ñiểm cắt zero cùng chiều tiếp theo, ñặt tên là X2, X3. Với khoảng thời gian giữa X1X2 và X2X3 là tương ñương nhau và nằm trong khoảng ngưỡng thời gian xác ñịnh chu kỳ.
3. Lần lượt so sánh biên ñộ các ñiểm tương ứng trong hai khoảng X1X2 và
X2X3. Gọi tổng bình phương các ñộ sai lệch biên ñộ làS.
4. Nếu S nhỏ hơn ngưỡng ñộ lệch (tức là hai khoảng X1X2 và X2X3 giống nhau) thì kết luận mỗi khoảng ñó là một chu kỳ. Nếu không, thay ñổi khoảng thời gian, nghĩa là dò tìm các ñiểm cắt zero khác.
Làm trơn kết quả F0 bằng bộ lọc median
Bộ lọc Median ñược dùng khá rộng rãi trong việc khử nhiễu. Nội dung kỹ
thuật ñược thể hiện như sau:
Để có một tín hiệu ra, một cửa sổ các tín hiệu vào liền nhau ñược chọn. Sắp xếp các dữ liệu trong cửa sổ tín hiệu kể trên.
Giá trị trung tâm của dãy ñã sắp xếp ñược chọn làm median của tập hợp các mẫu trong cửa sổ.
Nói cách khác, bộ lọc median sẽ tính lại giá trị một ñiểm mẫu bằng cách lấy trung bình cộng của một sốñiểm mẫu chung quanh.
Đối với lọc median, phần mất nhiều thời gian nhất là bước thứ 2. Nếu ñộ dài của cửa sổ kể trên là tương ñối lớn thì ta nên dùng thuật toán tìm median dựa trên tư
n f( n ) Hình 2.16a: Kết quả trích pitch n f( n ) = M e d ia n {f (n )}
Chương 3. Nhận dạng tiếng nói
3.1. T8ng quan m:t h# nh;n d<ng:
Nhận dạng ñối với con người là quá trình mô phỏng lại sự nhận biết các sự
vật hiện tượng xung quanh của não người. Một hệ nhận dạng trên máy tính cũng mô phỏng lại quá trìnhñó, và ñược xây dựng với các thành phần cơ bản sau:
Module thu nhận tín hiệu và trích ñặc trưng: thu nhận tín hiệu cần nhận dạng, tiền xử lý và rút ra các ñặc trưng bất biến của ñối tượng. Module học mẫu: cho máy biết ñối tượng sẽ nhận dạng và các ñặc trưng tươngứng.
Module tra cứu – so khớp: tìm mối liên hệ giữa các ñối tượng vừa mới nhận vào với các ñối tượng ñã lưu trước ñó bằng một phương pháp tra cứu – so khớp nào ñó và ñưa ra kết quả.
Sơñồ một hệ nhận dạng tổng quát thông thường như sau:
Hình 3.1: Sơñồ một hệ nhận dạng tổng quát
3.2. T8ng quan m:t h# nh;n d<ng ti'ng nói:
Một hệ nhận dạng tiếng nói sẽ làm việc với dữ liệu vào là tiếng nói ñược số
hoá. Hiện nay, hầu hết các hê nhận dạng tiếng nói ñều ñược xây dựng dựa trên hai giả thiết cơ bản sau:
Dạng mang thông tin trực tiếp của tín hiệu tiếng nói ñược thể hiện trong các biến ñổi thời gian của phổ biên ñộ tức thời. Ngoài ra một phần thông tin ñược truyền ở khoảng thời gian giữa các tiếng nói là các dấu hiệu khác như cao ñộ, cường ñộ âm thanh…
Dựa vào kết quả nghiên cứu của Miller, tiếng nói ñược tổ chức theo thứ bậc, sao cho các ñơn nguyên ñơn giản của một bậc theo một qui tắc nhất ñịnh sẽ liên kết thành các ñơn nguyên phức tạp hơn của bậc sau. Theo quan ñiểm của lý thuyết thông tin, các cấu trúc như vậy sẽ
làm cho mã ổn ñịnh so với lỗi gây ra bởi người nói và tạp âm xung quanh.
1. Nhận dạng từ liên tục và nhận dạng từ cách biệt
Tất cả các hệ nhận dạng tiếng nói ñược chia làm 2 loại: nhận dạng từ liên tục và nhận dạng từ cách biệt. Nhận dạng từ liên tục tức là nhận biết ñược các thông tin cần truyền ñạt trong một dãy các từ ñược phát âm liên tục, như một câu nói tự
nhiên, bình thường. Các hệ thống loại này rất phức tạp vì khó tách ñược biên giới giữa các từ, các hệ nhận dạng từ liên tục gặp phải vấn ñề ñầu tiên là tách từ, hướng tiếp cận việc xử lý tốt công ñoạn tách từ ảnh hưởng nhiều ñến kết quả nhận dạng. Trái lại, ñối với mô hình nhận dạng từ tách biệt, mỗi từ cần nhận dạng ñược phát âm một cách rời rạc, có các khoảng nghỉ trước và sau khi phát âm một từ. Mô hình loại này ñơn giản hơn mô hình nhận dạng từ liên tục, ñồng thời cũng có những ứng dụng thực tiễn như trong các hệ thống ñiều khiển bằng lời nói, nhận dạng các chữ số qua
ñiện thoại …, với ñộ chính xác khá cao, tuy nhiên khó áp dụng rộng rãiñối với mô hình trên.
Nhận dạng từ liên tục khó hơn rất nhiều so với nhận dạng từ tách biệt vì những lý do sau ñây:
Khi nói liên tục, thì các âm cuối của từ phía trước gây ảnh hưởng ñến