Professional Documents
Culture Documents
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 2
- Âm hữu thanh: Là âm khi phát ra thì có thanh, ví dụ như chúng ta nói “i”, “a”, hay “o”
chẳng hạn. Thực ra âm hữu thanh được tạo ra là do việc không khí qua thanh môn (thanh
môn tạo ra sự khép mở của dây thanh dưới sự điều khiển của hai sụn chóp) với một độ
căng của dây thanh sao cho chúng tạo nên dao động.
- Âm vô thanh: Là âm khi tạo ra tiếng thì dây thanh không rung hoặc rung đôi chút tạo ra
giọng như giọng thở, ví dụ “h”, “p” hay “th”
- Âm bật: Để phát ra âm bật, đầu tiên bộ máy phát âm phải đóng kín, tạo nên một áp suất,
sau đó không khí được giải phóng một cách đột ngột, ví dụ “ch”, “t”.
1.2. Cơ chế tạo ra tiếng nói và thu nhận tiếng nói
1.2.1. Cấu tạo của hệ thống cấu âm
Lời nói là kết quả của sự hoạt động với mối liên kết giữa các bộ phận hô hấp và nhai. Hành
động này diễn ra dưới sự kiểm soát của hệ thần kinh trung ương, bộ phận này thường xuyên
nhận được thông tin bằng những tác động ngược của các bộ phận thính giác và cảm giác bản
thể.
Bộ máy hô hấp cung cấp lực cần thiết khi khí được thở ra bằng khí quản.
Ở đỉnh khí quản là thanh quản nơi áp suất khí được điều biến trước khi đến tuyến âm kéo
dài từ hầu đến môi (hình 1.1)
Thanh quản là tập hợp các cơ và sụn động bao quanh một khoang nằm ở phần trên của khí
quản. Các dây thanh giống như là một đôi môi đối xứng nằm ngang thanh quản, hai môi này có
thể khép hoàn toàn thanh quản và khi mở ra chúng có thể tạo ra độ mở hình tam giác gọi là
thanh môn. Không khí qua thanh quản một cách tự do trong quá trình thở và cả trong quá trình
cấu âm của những âm điếc hay âm vô thanh. Các âm hữu thanh thì ngược lại, lại là kết quả của
sự rung động tuần hoàn của những dây thanh. Và như vậy những rung động liên tiếp sẽ đến
được tuyến âm.
Tuyến âm là tập hợp những khoang nằm giữa thanh môn và môi, trên hình ta có thể phân
biệt được khoang hầu (họng), khoang miệng và khoang mũi.
Khi nói, lồng ngực mở rộng và thu hẹp, không khí được đấy từ phổi vào khí quản, đi qua
thanh môn do các dây thanh tạo thành. Luồng khí này được gọi là tín hiệu kích cho tuyến âm vì
sau đó nó được đẩy qua tuyến âm và cuối cùng tán xạ ra ở môi. Tuyến âm có thể được coi như
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 3
một ống âm học (gồm các đoạn ống với độ dài bằng nhau và thiết diện các mặt cắt khác nhau
mắc nối tiếp) với đầu vào là các dây thanh (hay thanh môn) và đầu ra là môi. Như vậy tuyến
âm có dạng thay đổi như một hàm theo thời gian. Các mặt cắt của tuyến âm được xác định
bằng vị trí của lưỡi, môi, hàm, vòm miệng và thiết diện của những mặt cắt này thay đổi từ 0
cm2 (khi ngậm môi) đến khoảng 20 cm2 (khi hở môi). Tuyến mũi tạo thành tuyến âm học phụ
trợ cho truyền âm thanh, nó bắt đầu từ vòm miệng và kết thúc ở các lỗ mũi. Khi vòm miệng hạ
thấp, tuyến mũi được nối với tuyến âm về mặt âm học và tạo nên tiếng nói âm mũi.
Các âm của tiếng nói được tạo trong hệ thống này theo ba cách phụ thuộc vào tín hiệu kích.
âm hữu thanh như âm / i / được tạo nên khi kích tuyến âm bằng chuỗi xung (hay chu kỳ dao
động của đôi dây thanh) xác định chu kỳ pitch P và đại lượng nghịch đảo của nó là tần số cơ
bản F0. Đối với ngôn ngữ có thanh điệu thì kiểu thay đổi này còn phụ thuộc vào thanh điệu.
Âm vô thanh như âm / s / được tạo nên khi các dây thanh không dao động, xung kích được coi
như các tạp ngẫu nhiên, kích bởi các dòng khí xoáy qua các chỗ hẹp của tuyến âm (thường là
phía khoang miệng). Âm nổ như âm / p / được tạo ra bằng cách đóng hoàn toàn tuyến âm, gây
nên áp suất bên cạnh vị trí đóng, rồi nhanh chóng giải phóng âm này.
Vì tuyến âm và tuyến mũi bao gồm các ống âm học có mặt cắt khác nhau nên khi âm truyền
trong ống, phổ tần số thay đổi theo tính chọn lọc tần số của ống. Trong phạm vi tạo tiếng nói,
những tần số cộng hưởng của tuyến âm được gọi là tần số formant hay đơn giản là formant.
Những tần số này phụ thuộc vào dạng và kích thước của tuyến âm, do đó mỗi dạng tuyến âm
được đặc trưng bằng một tổ hợp tần số formant. Các âm khác nhau được tạo bởi sự thay đổi
dạng của tuyến âm. Như vậy tính chất phổ của tín hiệu tiếng nói thay đổi theo thời gian giống
với sự thay đổi dạng của tuyến âm.
Quá trình truyền âm qua tuyến âm làm mạnh lên ở một vùng tần số nào đó bằng cộng
hưởng và tạo cho mỗi âm những tính chất riêng biệt gọi là quá trình phát âm.
Âm được phát có nghĩa nó đã mang thông tin về âm vị được tán xạ ra ngoài từ môi. Trong
một vài trường hợp, đối với những âm mũi (như / m /, / n / trong tiếng Anh), tuyến mũi cũng
tham gia vào quá trình phát âm và âm được tán xạ ra từ mũi.
Tóm lại, sóng tín hiệu được chế tạo bằng ba động tác: tạo nguồn âm (hữu thanh và vô
thanh), phát âm khi truyền qua tuyến âm và tán xạ âm từ môi hoặc từ mũi, như hình 1.2 sau
đây:
Hình 1.2: Quá trình cơ bản tạo tín hiệu tiếng nói.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 4
Tai gồm có ba phần: tai ngoài, tai giữa và tai trong. Tai ngoài dẫn hướng những thay đổi áp
xuất tiếng nói vào trong màng nhĩ, ở đó tai giữa sẽ chuyển đổi áp xuất này thành chuyển động
cơ học. Tai trong chuyển đổi những rung động cơ học này thành những luồng điện trong nơron
thính giác dẫn đến não.
a) Tai ngoài: bao gồm LOA TAI (pina) hay TÂM NHĨ (aurical) và LỖ (meatus) thính
giác hay ống tai ngoài. Loa tai có tham gia rất ít hoặc hầu như không vào độ thính của tai,
nhưng có chức năng bảo vệ lối vào ống tai và dường như cũng tham gia vào khả năng khu biệt
các âm, đặc biệt là ở những tần số cao hơn. Loa tai nối với ống tai ngoài, một ống ngắn có hình
dáng thay đổi có chiều dài khoảng từ 25 đến 53 cm làm đường cho các tín hiệu âm học đến tai
giữa. Lỗ tai có hai chức năng chính. Chức năng thứ nhất là bảo vệ các cấu trúc phức tạp và
không có tính chất cơ học lắm của tai giữa. Chức năng thứ hai là đóng vai trò như một bộ máy
cộng hưởng hình ống vốn ưu tiên cho việc truyền các âm có tần số cao giữa 2000 Hz và 4000
Hz. Chức năng này là quan trọng đối với việc tiếp nhận lời nói và đặc biệt trợ giúp cho việc
tiếp nhận các âm xát, vì đặc điểm của chúng thường được lập mã trong nguồn năng lượng
không có chu kì trong khu vực ảnh phổ âm học này. Sự cộng hưởng trong lỗ thính giác cũng
tham gia vào độ thính chung của chúng ta giữa 500 Hz và 4000 Hz, vốn là một dải tần có chứa
nhiều dấu hiệu chính đối với cấu trúc âm vị học.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 5
500 Hz và 4000 Hz, làm tăng đến mức tối đa khả năng thính của tai ở vùng tần số này. Hệ cơ
gắn với các xương tai cũng hoạt động để bảo vệ tai chống lại những âm lớn do hoạt động cơ
chế phản xạ âm học. Cơ chế này đi vào hoạt động khi các âm có biên độ khoảng 90 dB và lớn
hơn truyền đến tai: hệ cơ kết hợp và sắp xếp lại các xương tai để làm giảm hiệu quả truyền âm
đến cửa hình bầu dục (Borden và Harris 1980, Moore 1989).
Tai giữa được nối với họng bằng một ống hẹp gọi là vòi ốc tai (eustachian tube). Điều này
hình thành một đường khí và con đường này sẽ mở ra khi cần cân bằng những thay đổi áp suất
khí nền giữa cấu trúc tai giữa và tai ngoài.
Tai trong là một cấu trúc phức tạp bọc trong hộp sọ, ốc tai (cochlea) có trách nhiệm biến
đổi sự chuyển dịch cơ khí thành các tín hiệu thần kinh: sự dịch chuyển cơ khí được truyền đến
cửa hình bầu dục bằng các ốc tai được chuyển thành các tín hiệu thần kinh và các tín hiệu thần
kinh này được truyền đến hệ thống thần kinh trung ương. Về cơ bản, ốc tai là một cấu trúc hình
xoắn tận hết bằng một cửa sổ có 1 màng linh hoạt ở mỗi đầu.
Ở bên trong, ốc tai chia thành hai màng, một trong số đó, màng nền (basilar membrane) là
cực kì quan trọng đối với hoạt động nghe. Khi những dịch chuyển (do các rung động âm gây
ra) diễn ra tại cửa sổ hình bầu dục, chúng được truyền qua chất dịch trong ốc tai và gây ra sự
dịch chuyển (displacement) của màng nền. Ở một đầu màng nền cứng hơn so với ở đầu kia, và
điều này có nghĩa là cách thức mà trong đó nó được dịch chuyển phụ thuộc vào tần số của âm
tác động vào. Các âm có tần số cao sẽ gây ra sự dịch chuyển lớn hơn ở đầu cứng; với tần số
giảm dần, sự dịch chuyển cực đại sẽ di chuyển liên tục về phía đầu ít cứng hơn.
Gắn dọc với màng nền là cơ quan vỏ não (organ of corti), một cấu trúc phức tạp chứa nhiều
tế bào tóc. Nó là sự dịch chuyển và sự kích thích của các tế bào tóc này vốn biến sự dịch
chuyển của màng nền thành các tín hiệu thần kinh. Vì màng nền được dịch chuyển ở nhiều vị
trí khác nhau phụ thuộc vào tần số, cho nên ốc tai và các cấu trúc bên trong của nó có thể biến
tần số và cường độ của âm thành các tín hiệu thần kinh. Nhưng cần phải nhấn mạnh rằng sự tái
hiện có tính thần kinh cuối cùng của thông tin tần số không phụ thuộc vào vị trí của chỉ riêng
sự dịch chuyển màng nền không, và hiểu biết của chúng ta về cách thức tần số được lập mã
thông qua hệ thống thính giác là chưa hoàn thiện.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 6
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 7
sắc khác nhau là do số lượng và tính chất của các hoạ âm, mà tính chất của các hoạ âm bị
tác động nhiều bởi hiện tượng cộng hưởng.
Trong bộ máy phát âm của con người, dây thanh ở khoang thanh hầu là vật thể phát ra âm
cơ bản với tần số thấp nhất. Khoang miệng, khoang mũi là những hộp cộng hưởng tạo ra các
hoạ âm. Các khoang này do hoạt động của lưỡi, môi, ... luôn có khả năng thay đổi hình dáng,
thể tích, lối thoát của không khí và do đó có khả năng cộng hưởng khác nhau, tạo ra các nhóm
hoạ âm được tăng cường khác nhau. Các nguyên âm khác nhau do có sự cộng hưởng khác nhau
tạo ra các nhóm hoạ âm tăng cường khác nhau. Dải tần số được tăng cường đặc trưng cho mỗi
nguyên âm như thế được gọi là formant.
u
u a
a q a
c
Trong sơ đồ trên là hai phát âm "cụ ạ" và "quạ". Trong phát âm thứ nhất có 2 âm tiết, âm
[u] nằm ở đỉnh âm tiết đầu. Trong phát âm thứ hai có một âm tiết và âm [u] nằm ở sườn của âm
tiết.
1.3.4. Đặc điểm âm tiết tiếng Việt
a) Tính độc lập cao :
- Tiếng Việt, âm tiết được thể hiện khá đầy đủ, rõ ràng, được tách và ngắt thành từng
khúc đoạn riêng biệt. Âm tiết nào của tiếng Việt cũng mang một thanh điệu và cấu trúc ổn
định. Điều này làm cho sự thể hiện của âm tiết tiếng Việt trong chuỗi lời nói nổi bật và tách
bạch hơn. Do đó nên việc vạch ra ranh giới giữa các âm tiết trong tiếng Việt dễ dàng hơn
nhiều việc phân chia ranh giới âm tiết trong các ngôn ngữ châu Âu [2] (trong ngôn ngữ châu
Âu, việc phân chia âm tiết có khi phải dùng phương pháp phân tích phổ). Việc tách bạch âm
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 8
tiết còn được thể hiện ở chữ viết, mỗi âm tiết được viết tách ra thành một từ riêng biệt. Có thể
nói so với các âm tiết châu Âu, tiếng Việt có tính độc lập cao hơn hẳn.
- Trong tiếng Việt không có hiện tượng nối âm (liaison).
Trong các ngôn ngữ châu Âu thường gặp các hiện tượng nối âm, ví dụ như :
Vous allez
Thanh điệu
Vần
Âm đầu
Âm đệm Âm chính Âm cuối
Âm đầu: thường là phụ âm, được gọi là phụ âm đầu, nó có chức năng tạo ra âm sắc cho âm
tiết lúc mở đầu. Âm đầu có thể khuyết trong một số trường hợp.
Âm đệm: có chức năng làm thay đổi âm sác của âm tiết lúc khởi đầu và làm khu biệt âm tiết
này với âm tiết khác. Ví dụ “tán” và “toán”. Âm đệm có thể khuyết trong một số trường hợp.
Âm chính: luôn luôn có mặt trong mọi âm tiết có chức năng qui định âm sắc chủ yếu của âm
tiết. Âm chính luôn là nguyên âm.
Âm cuối: Có thể là phụ âm hoặc là bán nguyên âm. Có chức năng là cơ sở để phân chia loại
hình âm tiết, để nhận ra sự phân bố, xuất hiện của thanh điệu. Âm cuối có thể khuyết trong
một số trường hợp
Thanh điệu: Luôn có mặt và là yếu tố siêu đoạn tính có chức năng khu biệt âm tiết về cao độ
Cấu trúc tổng quát của một âm tiết tiếng Việt là (C1)(w)V(C2).
Năm phần cấu tạo âm tiết tiếng Việt không phải bình đẳng như nhau về mức độ độc lập và về
khả năng kết hợp. Nhiều sự kiện ngôn ngữ chứng tỏ rằng thanh điệu và âm đầu kết hợp với
phần còn lại của âm tiết một cách lỏng lẻo. Các yếu tố phần vần bao gồm âm đệm + âm chính
+ âm cuối thì kết hợp với nhau khá chặt chẽ. [3]
Cấu trúc gồm 2 bậc: bậc một bao gồm các hành tố trực tiếp được phân định bằng những ranh
giới có ý nghĩa ngữ âm học. Phần thứ hai bao gồm các yếu tố của phần vần chỉ có chức năng
khu biệt thuần tuý. Quan hệ giữa các yếu tố ở bậc một là quan hệ lỏng lẻo, giữa các yếu tố của
bậc hai có quan hệ chặt chẽ. Các thực nghiệm đã chứng minh rằng: tính độc lập của thanh
điệu đối với các âm tố cụ thể lộ ra ở chỗ đường nét âm điệu và trường độ của nó không gắn
liền với thành phần âm thanh của âm tiết. Trong khuôn khổ mỗi loại hình thanh điệu các âm
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 9
tiết có một trường độ cố định. Âm đầu không tham gia bảo đảm trường độ cố định ấy mà
chính âm phần vần lại đảm đương với bất kể số lượng và phẩm chất của những yếu tố làm
thanh phần của nó. Trong phần vần, việc rút ngắn các nguyên âm ở những vị trí nhất định
được bù lại bằng sự kéo dài các âm cuối [1].
Số lượng âm tiết trên lý thuyết của tiếng Việt là 11900, còn số lượng âm tiết trên thực tế là
6700. So với các các ngôn ngữ thông thường trên thế giới có số lượng âm tiết vào khoảng
3000-5000, tiếng Trung Quốc số lượng âm tiết trên lý thuyết là 1620, trên thực tế là 1255 [2].
Điều này cho thấy tiếng Việt có số lượng âm tiết rất lớn, và chính vì thế ít có hiện tượng đồng
âm, ít gây trở ngại cho việc nhận diện âm tiết. Theo [1], trong tiếng Việt có 6 thanh điệu, 22
âm đầu và 155 phần vần và phần vần đóng vai trò khu biệt lớn hơn cả so với các yếu tố khác
trong bậc 1.
Âm tiết
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 10
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 11
Độ dài: phụ âm liên tục có thể kéo dài đến một giới hạn mà hơi thở cho phép (phụ âm mũi).
Ngược lại phụ âm không liên tục do luồng hơi bị chặt hoàn toàn chỉ có thể phát ra đột ngột (âm
tắc).
1.3.5.3.Bán nguyên âm
Trong tiếng Việt có hai bán nguyên âm /i,u/. Về mặt cấu âm, bán nguyên âm không khác
nguyên âm thường. Tuy nhiên trong cấu trúc âm tiết bán nguyên âm không chiếm vị trí đỉnh âm
tiết (phi âm tiết tính) mà đóng vai trò như phụ âm.
1.3.5.4.Các cấu âm phụ
Môi hoá: Hiện tượng thêm động tác tròn môi vào cấu âm cơ bản. Thường các phụ âm bị
môi hoá khi phân bố cạnh các âm tròn môi (ví dụ “tủ”) (trường hợp các phụ âm môi ít gặp
hơn)
Mạc hoá: Hiện tương mặt lưỡi nhích sâu về phia ngạc mềm vào vị trí như của /w/
Ngạc hoá: Hiện tượng nâng phần trước của lưỡi lên cao ở vào vị trí của /i/ trong khi đang
thực hiện các âm cơ bản. tức là hiện tượng gốc lưỡi phát âm với xu hướng nhích về phia trước,
trở thành mặt lưỡi ngạc. Ví dụ /k/->/c/ và /ứ/->/à/ trong các từ “bình minh”, “chênh chếch”.
1.3.6. Âm vị tiếng Việt
Âm vị là đơn vị đoạn tính nhỏ nhất có chức năng phân biệt nghĩa. Về mặt xã hội của ngữ
âm, trong số các âm tố trong lời nói của ngôn ngữ, ta có thẻ tập hợp một số lượng có hạn những
đơn vị mang những nét chung về cấu tạo âm thanh và về chức năng trong ngôn ngữ đó gọi là
âm vị.
Âm vị và âm tố là hai khai niệm khác nhau. Âm vị là đơn vị trừu tượng thuộc bình diện
ngôn ngữ, đã được khái quát hoá từ những âm tố cụ thể trong các lời nói hàng ngày của người
sử dụng ngôn ngữ. Âm tố là đơn vị cụ thể, thuộc bình diện lời nói tồn tại thực tế trong thế giới
khách quan. Âm vị được hiện thực hoá bởi âm tố, thông qua âm tố ta biết được âm vị. Âm vị
thường chỉ mang một số nét đặc trưng khu biệt trong tất cả các đặc trưng vốn có của một âm
thanh còn âm tố bao gồm cả hai yếu tố khu biệt và không khu biệt của âm thanh. Qui ước âm vị
được ghi ở giữa hai dấu / /, âm tố được ghi giữa hai dấu [ ].
Có một cản trở khi nghiên cứu âm vị tiếng Việt là chưa có một qui định chính thức về pháp
lý, hay một chuẩn chung của các nhà khoa học ngữ âm về một chuẩn tiếng Việt [1]. Có thể
quan niệm tạm thời coi "tiếng Việt chuẩn như một thứ tiếng chung được hình thành trên cơ sở
tiếng địa phương của miền Bắc với trung tâm là Hà nội mà cách phát âm của nó là cách phát
âm Hà nội với sự phân biệt /ÿ-c/,/ờ-s/,/ỹ-z/ và các vần ưu/iu, ươu/iêu.
1.3.7. Thanh điệu
Âm vị tiếng Việt có hai loại âm vị đoạn tính và âm vị siêu đoạn tính. Âm vị đoạn tính là các
đơn vị có thể chia cắt được trong chuỗi lời nói như nguyên âm, phụ âm. Âm vị siêu đoạn tính là
loại đơn vị không có âm đoạn tính, không độc lập tồn tại, nhưng cũng có chức năng phân biệt
nghĩa, nhận diện từ, đó là thanh điệu. Đây là đặc điểm riêng của tiếng Việt so với các ngôn ngữ
Châu Âu Một số ngôn ngữ khác như tiếng Hán, tiếng Thái cũng có đặc điểm này như tiếng
Việt.
Thanh điệu được hình thành bằng sự rung động của dây thanh, tuỳ theo sự rung đó nhanh
hay chậm, mạnh hay yếu, biến chuyển ra sao mà ta có các thanh điệu khác nhau. Thanh điệu
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 12
tiếng Việt thuộc loại thanh lướt, có nghĩa là các thanh điệu phân biệt với nhau bằng sự di
chuyển cao độ từ thấp lên cao hay từ cao xuống thấp.
Theo các nhà ngôn ngữ học thì thanh điệu có ảnh hưởng bao chùm lên toàn bộ âm tiết, mặc
dù gánh nặng chủ yếu tập trung ở phần vần.
Tiếng Việt có sáu thanh điệu. Nếu chia thang độ của giọng nói bình thường thành 5 bậc thì
ta có thanh điệu tiếng Việt được miêu tả như sau:
(1) 5
(5)
(3) 4
(4) 3
(6)
2
(2)
1
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 13
mờ nhạt, không có ảnh hưởng lớn đến âm di sau nó. Vì lý do trên trong hệ thông nhận dạng
tiếng Việt, âm tắc thanh hầu không nên đưa vào như một âm vị đóng vai trò âm đầu trong từ.
(TDC: khảo sát với 26 đặc điểm phân tích tín hiệu, thử các hệ thống nhận dạng nhỏ với âm tắc
thanh hầu để chứng minh).
Tiếng Việt có 22 âm đầu, 6 thanh điệu, 2 âm đệm, 16 âm chính và 8 âm cuối. Vậy so với
các yếu tố cấu tạo âm tiết thì âm đầu có chức năng khu biệt lớn hơn cả.
Hệ thống các âm đầu trong hệ thống nhận dạng tiếng Việt
1 b b buồn bã phụ âm tắc, hai môi, hữu thanh, không bật hơi, chỉ
xuất hiện trong âm tiết không có âm đệm
2 d đ đẫy đà phụ âm tắc, đầu lưỡi lợi, hữu thanh, không bật hơi,
xuất hiện trong mọi âm tiết.
3 t t tan tác phụ âm tắc, đầu lưỡi răng, vô thanh, không bật hơi,
xuất hiện trong mọi âm tiết.
4 t’ th thơm tho phụ âm tắc, vô thanh, bật hơi, đầu lưỡi răng, xuất hiện
trong mọi âm tiết
5 ÿ tr trục trặc phụ âm tắc, đầu lưỡi vòm miệng, vô thanh, không bật
hơi, xuất hiện trong mọi âm tiết.
6 c ch chuồn chuồn phụ âm tắc, vô thanh, mặt lưỡi, không bật hơi, xuất
hiện trong mọi âm tiết.
7 k k (đứng trước kiêu kỳ phụ âm tắc, vô thanh, gốc lưỡi, không bật hơi, xuất
/i/,/e/,/ô/) hiện trong mọi âm tiết.
8 m m mượt mà phụ âm vang mũi, hai môi, xuất hiện trong âm tiết
không có âm đệm
9 n n no nê phụ âm vang mũi, đầu lưỡi lợi, xuất hiện trong mọi
âm tiết
10 à nh nhanh nhẹn phụ âm vang mũi, mặt lưỡi, xuất hiện trong mọi âm
tiết
11 ứ ngh (đứng trước nghi, nghê phụ âm vang mũi, gốc lưỡi, xuất hiện trong mọi âm
/i/,/e/,/ô/) tiết
ng ngủ ngày
12 f ph phất phới phụ âm xát, vô thanh, môi răng, xuất hiện trong âm
tiết không có âm đệm
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 14
13 v v vội vã phụ âm xá, hữu thanh, môi răng, xuất hiện trong âm
tiết không có âm đệm
14 S x xa xôi phụ âm xát, vô thanh, đầu lưỡi lợi, xuất hiện trong
mọi âm tiết
15 z d dễ dãi phụ âm xát, hữu thanh, đầu lưỡi lợi, xuất hiện trong
mọi âm tiết
gi giỏi giang
g gì
16 l l long lanh phụ âm vang bên, đầu lưỡi răng, xuất hiện trong mọi
âm tiết
17 ờ s sớm sủa phụ âm xát, vô thanh, dầu lưỡi vòm miệng, uốn lưỡi,
xuất hiện trong mọi âm tiết
18 ỹ r ra ruộng phụ âm xát, hữu thanh, đầu lưỡi vòng miệng, uốn
lưỡi, xuất hiện trong mọi âm tiết
19 Å kh không khí phụ âm xát, vô thanh, gốc lưỡi, xuất hiện trong mọi
âm tiết
20 â gh (đứng trước ghế, ghi phụ âm xát cuối lưỡi, hữu thanh, xuất hiện trong mọi
/i/,/e/,/ô/) âm tiết
g gà
1.3.8.2.Âm đệm
Âm đệm có chức năng tu chỉnh âm sắc của âm tiết lúc khởi đầu, làm trầm hoá âm tiết và
khu biệt âm tiết này với âm tiết khác. Khác với âm chính luôn nằm ở đỉnh âm tiết, âm đệm nằm
ở đường cong đi lên của đỉnh âm tiết. Âm đệm không xuất hiện trước các nguyên âm tròn môi
/u,o,¿/, nó chỉ xuất hiện trước các nguyên âm hàng trước. Độ mở của âm đệm phụ thuộc vào độ
mở của các nguyên âm-âm chính đi sau.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 15
1.3.8.3.Âm chính
Âm chính là nguyên âm và có mặt trong mọi âm tiết qui định ăm sắc của âm tiết. Âm chính
tiếng Việt có tất cả 14 âm gồm 11 nguyên âm đon và 3 nguyên âm đôi. Âm chính âm tiết có thể
chia thành 4 nhóm:
- Nhóm nguyên âm đơn, hàng trước, không tròn môi. Âm sắc của nhóm này thường là
bổng. Có thể dài và thể ngắn. Thể ngắn có sự biến dạng ít nhiều về trường độ, âm sắc,
cường độ, phát âm căng và ngắn.
- Nhóm nguyên âm đơn, hàng sau tròn môi. Âm sắc trầm. Có thể dài và thể ngắn. Sự thể
hiện thể ngắn có cấu âm không giữ đều, rút ngắn phức hợp ???
- Nhóm nguyên âm đơn, hàng sau, không tròn môi. Âm sắc trầm vừa. Không có thể rút
ngắn phức hợp ???
- Nguyên âm đôi. phát âm yếu dần, yếu tố đầu phát âm mạnh hơn yếu tố sau, do đó âm
sắc của nguyên âm đôi là do yếu tố đầu quyết định. Nguyên âm chỉ có một thể dài và không bị
biến dạng về âm sắc và trường độ.
1 i y (đứng sau âm đệm suy, nguy nguyên âm đơn dài, hàng trước, hẹp,
uằ ) không tròn môi, có tính bổng, trước /k,
ứ/ bị rút ngắn.
i (trường hợp còn tinh tích
lại)
4 ôĂ a (đứng trước /k, ứ/) sách, xanh, nguyên âm đơn, ngắn. Gần như là thể
cảnh ngắn của /ô/
7 ¿ o cỏn con, trót nguyên âm đơn, dài, hàng sau, hơi rộng,
lọt tròn môi, có âm sác trầm. Thể dài khi
không đứng trước /k, ứ/.
8 ¿Ă o khi trước /k, ứ/ vòng, tóc nguyên âm đơn, ngắn. Gần như sự thể
hiện thể ngắn của /¿/
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 16
14 ihe ia (khi trước không kia, thìa, bia nguyên âm đôi yếu dàn, hàng trước,
có âm đệm và sau không tròn môi, yếu tố sau là nguyên âm
không có âm cuối) hàng trước, hơi hẹp, không tròn môi.
15 uho ua (khi sau nó mua, vua nguyên âm đôi yếu dần, hàng sau, tròn
không có âm cuối) chúa môi, yếu tố đầu là nguyên âm hàng sau,
hơi hẹp, không tròn môi.
uô (khi sau nó có muộn, tuồn,
âm cuối) tuột
16 }h{ ưa (khi không có âm mưa, vừa vừa nguyên âm đôi yếu dần, hàng sau, không
cuối) tròn môi, yếu tố đầu là nguyên âm hàng
sau, hẹp, không tròn môi. Yếu tố sau là
ươ (khi có âm cuối) ương bướng nguyên âm hàng sau, hơi hẹp, không
tròn môi.
1.3.8.4.Âm cuối
Các âm cuối tiếng Việt có đặc điểm giống nhau là không buông hay còn gọi là âm đóng (bộ
phần cấu âm tiến đến vị trí cấu âm rồi giữ nguyên vị trí đó chứ không về vị trí cũ). Do đó có sự
khác biệt lớn giữa âm [t] trong phát âm hai từ "at" và "ta". Trong khi phát âm từ "ta", lỗi thoát
của không khí được khai thông sau khi bị cản trở bằng một động tác mở ra tao thành một tiếng
động đặc thù. trong khi phát âm từ "at", bộ phận cấu âm ở nguyên vị trí cấu âm và không khí
không được thoát ra ngoài. [1].
Trong nhiều trường hợp phụ âm cuối hầu như chỉ là một khoảng im lặng. Ví dụ như âm vị
/k/ trong từ "tác". Trên dạng phổ âm vị /k/ chỉ thể hiển bởi sự biến đổi formant của âm vị /a/
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 17
theo một hướng nào đó (locus), trên đồ thị dạng sóng, âm vị /k/ chỉ thể hiện bằng một vài xung
nhỏ không rõ ràng. Do vậy âm vị /k/ được nhận diện chủ yếu làm biến đổi âm sắc của âm chính
đi ở giai đoạn cuối.
Bán nguyên âm cũng không thường xuyên được thể hiện rõ rệt mà chỉ được nhận diện bằng
việc biến đổi âm sắc của âm chính. Về mặt này thì bán nguyên âm còn có tác dụng mạnh hơn là
phụ âm cuối [1].
STT Âm vị Con chữ Ví dụ Miêu tả
(IPA)
5 k ch (đứng sau các âm vị thích, sạch phụ âm cuối ồn, mặt lưỡi
/i,e,ô/)
6 ứ nh (đứng sau các âm vị mình, bánh phụ âm cuối vang, mũi, mặt
/i,e,ô/) lưỡi
Ngoài ra còn phụ âm cuối /zerô/ làm thành phụ âm cuối thứ 9 của tiếng Việt.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 18
Trong lời nói, độ mở của âm đệm /uằ/ phụ thuộc vào độ mở của nguyên âm-âm chính đi sau
[2]. Ví dụ trước các nguyên âm rộng thì âm đệm được mở rộng : hoa, hoè, xoan. Trước các
nguyên âm hẹp thì âm đệm bị thu hẹp : thuỷ, tuân , huệ.
Âm đệm không xuất hiện sau các phụ âm môi /f,m,b,v/ trừ một số trường hợp phiên âm
như : phuy, khăn voan, xe buýt. Sau /n, â/ sự xuất hiện của /uằ/ cũng rất hạn chế chỉ trong các
từ sau: noãn, noa, goá. /ỹ/ cũng chỉ phân bố trước âm đệm trong một từ: roa
1.3.9.3.Âm chính
/uho/ không xuất hiện sau phụ âm đầu /f/
/ihe/ không xuất hiện sau phụ âm /â/, trừ trường hợp "iếc" hoá ???
Các nguyên âm bổng /i,e, ô, ihe/ khi kếp hợp với âm đệm /uằ/ thì không bao giờ đi với phụ
âm cuối /p,m/. Các nguyên âm /a,ă/ khi đi với âm đệm /uằ/ thì ít đi với phụ âm cuối /p,m/. Ví
dụ: quặp, quặm
Theo sau các phụ âm mũi, các nguyên âm- âm chính thường bị mũi hoá ít nhiều [2].
Sau âm đệm /uằ/, các nguyên âm bị môi hoá phần nào [2]. : ví dụ "hoa", "huệ"
Sau nguyên âm không có âm cuối thì nguyên âm bao giờ cũng ở thể dài có trường độ lớn
hơn so với nguyên âm trong âm tiết có âm cuối. Ví dụ trường độ của /a/ trong "ta" lớn hơn
trong "tan".
Sau các âm cuối /k, ứ/ thì nguyên âm bị biến dạng ở thể ngắn, trường độ, âm sắc chúng
được thể hiện ngắn đi. Ví dụ sinh, hùng, lanh, ...Có ngoài lệ là các nguyên âm /a, {/ chỉ có thể
dài và các nguyên âm /{,Ă aĂ/ chỉ có thể ngắn.
Phần lớn các nguyên âm đơn đều có hai thể: thể dài và thể ngắn. Trái lại nguyên âm đôi chỉ
có một thể dài, trước các phụ âm cuối /k, ứ/ chúng không bị biến dạng về trường độ, cường độ
và âm sắc. Âm sắc của nguyên âm đôi chủ yếu do yếu tố thứ nhất quyết định.
1.3.9.4.Âm cuối
Các âm cuối được phân bố sau các âm chính có âm sắc đổi lập. Chúng tuân theo nguyên tắc
dị hoá: xa nhau về mặt cấu âm. ví dụ như nguyên âm /uằ/ có âm sắc trầm thì chỉ phân bố sau
nguyên âm bổng và trung hoà (trừ trường hợp /{/). Bán nguyên âm /iằ/ có âm săc bổng thì được
phân bố sau nguyên âm trầm và trung hoà. [1]
Âm cuối /zêro/ không xuất hiện sau các nguyên âm ngắn: /{Ă,aĂ/.
Các âm cuối đều có hai thể, thể ngắn và thể dài. Thể ngắn xuất hiện sau các nguyên âm
luôn luôn dài /{,a,ô,¿, ihe, uho,}h{/ và thể dài xuất hiện sau các nguyên âm ngắn hoặc thể
ngắn của các nguyên âm. Sự đắp đổi giữa thể ngắn và thể dài giữa âm chính và âm cuối là để
đảm bảo tính cố định về trường độ của âm tiết. [1]
Các bán nguyên âm cuối ở thể ngắn không được phát âm với đặc điểm điển hình của nó mà
chỉ thể hiện hướng chuyến biến âm sắc ở giai đoạn kết thúc là hướng trầm. Các phụ âm ở thể
ngắn cũng bị biến dạng sau các âm chính nhưng không rõ ràng như ở thể dài.
Các phụ âm cuối /k, ứ/ ở thể dài khi kết hợp với các nguyên âm hàng trước tức là các
nguyên âm bổng /i,e, ô/thì bị ngạc hoá thành /k’, ứ '/ . Ví dụ : ích [i k’], ếch [e k’], inh [i, ứ '].
Các phụ âm cuối /k, ứ/ khi kết hợp với các nguyên âm hàng sau /u, o, ¿/ bị môi hoá rất
mạnh. Ví dụ như trong các từ : hùng hục, lông lốc, ròng rọc
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 19
1.3.9.5.Thanh điệu
Các âm tiết có âm cuối là /p,t,k/ chỉ có thanh nặng và thanh sắc.
Sau đây là bảng tổng kết sự phân bố giữa nguyên âm âm chính và các âm đệm và bán
nguyên âm cuối [2].
Âm Âm phụ Bán nguyên âm cuối
chính
/uằ/ Ví dụ /uằ/ /iằ/ Ví dụ
i + uy + - iu
e + uê + - êu
ô + oe + - eo
ihe + uyên + - yêu
u - ui - + ui
o - ôi - + ôi
¿ - oi - + oi
uho - uôi - + uôi
} - - + + ưu, ưi
{ + quơ - + -, ơi
{Ă + uân + + âu,ay
a + oa + + ao,ai
aĂ + ăn + + au,ay
}h{ - - + + ưưu,ươi
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 20
Chương II: Thu nhận và phân tích đặc trưng tiếng nói
2.1. Các phương pháp xử lý tín hiệu tiếng nói
Phần này sẽ giới thiệu hai phương pháp được sử dụng rộng rãi trong các hệ thống nhận
dạng hiện tại để tính toán các hệ số MFCC (Mel Scale Frequency Cepstral Coefficients) và hệ
số PLP (Perceptual Linear Prediction). Hai kỹ thuật xử lý tiếng nói RASTA (RelAtive
SpecTral) và CMS (Cepstral Mean Subtraction) cũng được giới thiệu. Đây là hai kỹ thuật loại
bỏ nhiễu hay được sử dụng đặc biệt là trong phát âm có nhiều nhiễu như các câu thu âm qua
điện thoại.
2.1.1. Phương pháp tính hệ số MFCC.
Tín hiệu tiếng nói
Tính giá trị delta Chỉnh giá trị DCT Logarit giá trị
MFCC cepstral năng lượng
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 21
3) Làm cửa sổ (frame windowing). Cửa sổ Hamming thường được áp dụng cho mỗi khung
tín hiệu để giảm sự tác động của việc chia khung tín hiệu:
2 ( n 1)
sn' {0.54 0.46cos( )}sn
N 1
Trong đó N là số mẫu dữ liệu (sample) của cửa sổ.
4) DFT (Discrete Fourier Transform). Tại bước này với mỗi khung tín hiệu, biến đổi
Fourier được áp dụng để chuyển tín hiệu về miền tần số. Công việc tính toán được thực hiện
bằng thuật toán FFT (Fast Fourier Transform).
5) Lọc theo thang tần số Mel (Mel-frequency bandpass filter). Các bộ lọc số được áp dụng
để lọc các tín hiệu theo các giải tần số khác nhau.
Phản ứng của tai người với các thành phần của tần số là không tuyến tính. Sự khác nhau về
tần số ở vùng tần số thấp (<1KHz) dễ được nhận biết bởi con người hơn là ở vùng tần số cao.
Lọc theo thang tần số Mel mô phỏng tính chất này bằng cách dùng các bộ lọc được phân bố
theo một hàm phi tuyến trong khoảng không gian tần số, thông thường là hàm Mel:
f
Mel ( f ) 2595log10 (1 )
700
6) Logarit giá trị năng lượng (logarit of filter energies). Các giá trị năng lượng thu được tại
mỗi kênh lọc được lấy logarit để “nén” các giá trị này vào một miền giá trị hẹp hơn.
7) DCT (Discrete Cosin Transform).
Do giọng nói phát âm bởi con người có phổ khá trơn (smooth) trên miền tần số, do vậy các
giá trị năng lượng của các bộ lọc gần nhau có sự tương quan (correlated) khá gần. Bước xử lý
này biến đổi các giá trị năng lượng thành các hệ số ít tương quan với nhau hơn, các hệ số này
được gọi là hệ số cepstral.
N
i
ci m j cos( ( j 0.5))
j 1 N
Trong đó N là số kênh lọc, mj là giá trị logarit năng lượng của mạch lọc thứ j, i là bậc của hệ
số cepstral.
8) Chỉnh các giá trị cepstral. Giá trị cepstral bậc cao thường có giá trị rất thấp, so với các
giá trị cepstral bậc thấp. Sự khác biệt này gây khó khăn cho việc mô hình hoá dữ liệu, ví dụ
như khi sử dụng các hàm mật độ xác suất Gauss. Do đó các hệ số cepstral được điều chỉnh lại
(re-scaled) theo công thức:
cn exp(n * k )cn
Sau bước hiệu chỉnh này ta thu được các giá trị MFCC.
9) Tính giá trị delta MFCC. Các giá trị delta của các hệ số MFCC được tính toán nhằm
phản ánh sự biến thiên tiếng nói theo thời gian. Các giá trị delta được tính toán dựa trên các
giá trị MFCC của các khung tín hiệu lân cận:
1
(ct ct )
dt 2
2 1
Trong đó là số khung tín hiệu lân cận được dùng (thông thường là 2).
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 22
Ngoài ra giá trị delta của delta (hay còn gọi là acceleration) cũng có thể được tính toán từ các
giá trị delta dùng cùng một công thức như trên.
2.1.2. Phương pháp tính hệ số PLP
Tiếng nói
Tính các giá trị delta Thuật toán Durbin Biến đổi Fourier ng-
ược (inverse DFT)
Hệ số PLP
Hình 2.2. Các bước xử lý của phương pháp tính toán hệ số PLP
Phương pháp PLP được phát triển dựa trên phương pháp mã dự báo tuyến tính LPC (Linear
Prediction Coding).
Phương pháp LPC hay còn gọi là mô hình hoá tự hồi qui (autoregression modeling) là ph-
ương pháp mô hình hoá tín hiệu bằng sự kết hợp tuyến tính các mẫu tín hiệu trước đó:
N
s( n ) a(i )s( n 1) e( n )
i 1
trong đó N là số hệ số hay là bậc của dự báo, các a(i) là các hệ số dự báo tuyến tính (linear
prediction coefficients), e(n) là hàm lỗi.
Các hệ số a(i) được chọn để làm cực tiểu hàm lỗi dự báo trung bình bình phương. Có một
vài phương pháp để tính các hệ số này: phương pháp dùng ma trận hiệp phương sai (covariance
matrix), phương pháp tự tương quan (auto-correlation method), phương pháp lưới hay còn gọi
là phương pháp điều hoà (lattice or harmonic). Phương pháp hay được áp dụng nhất trong nhận
dạng tiếng nói là phương pháp tự tương quan dùng thuật toán đệ qui Levinson-Durbin.
Thuật toán Levinson-Durbin như sau:
Tính p+1 các hệ số tự tương quan đầu tiên (p là bậc của dự báo tuyến tính) bằng công thức
sau:
N i
ri s js j i
j 1
Trong đó s(n) là tín hiệu trong cửa sổ, N là số lượng mẫu trong cửa sổ.
Các hệ số sau đó được tính toán đệ qui như sau:
E (0) r0
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 23
i 1
[ri a(ji 1) ri j ]
j
ki
E (i 1)
trong đó 1 i p
ai(i ) ki
aj aij 1 ki * aii 1j , với 1 j i 1
E (i ) (1 ki2 ) E ( i 1)
Các bước trên được tính toán lặp với i=1,2,...p. Cuối cùng ta thu được các hệ số:
aj a(j p ) với 1 j p
Phương pháp tính các hệ số PLP dựa vào phương pháp LPC. Hình 2.2 miêu tả các bước xử
lý tính toán hệ số PLP:
1) FFT. Tương tự như phương pháp MFCC, tín hiệu tiếng nói được chia thành các khung
tín hiệu và được biến đổi Fourier sang miền tần số bằng thuật toán FFT.
2) Lọc theo thang tần số Bark. Tương tự như phương pháp tính MFCC, tín hiệu tiếng nói
được lọc qua các bộ lọc phân bố theo thang tần số phi tuyến, trong trường hợp này là thang
tần số Bark:
f f 2
Bark( f ) 6 ln{ [( ) 1]0.5 }
1200 1200
3) Nhấn mạnh tín hiệu dùng hàm equal-loudness. Bước xử lý này tương tự như bư-
ớc nhấn mạnh pre-emphasis của phương pháp MFCC. Hàm này mô phỏng đường
cong cân bằng độ ồn (equal-loudness curve).
2
( 56,8 *106 ) 4
E( ) 2 6 2
( 6,3*10 )( 0,38 *109 )( 6 9,58 *10 26 )
4) Dùng luật cường độ nghe (power law of hearing). Bước xử lý này giống như
bước lấy giá trị logarit trong phương pháp MFCC. Hàm căn lập phương được sử dụng
để “nén” các giá trị năng lượng.
(f) ( f )0,33
5) Biến đổi Fourier ngược (inverse DFT). Các hệ số tự tương quan được biến đổi
Fourier ngược để sau đó dùng làm giá trị đầu vào cho phương pháp LPC.
6) Thuật toán Durbin được sử dụng để tính toán các hệ số dự báo tuyến tính giống
như trong phương pháp LPC.
7) Tính các giá trị delta. Phương pháp tính tương tự như phương pháp tính hệ số
MFCC.
2.2. Các đơn vị xử lý tiếng nói
2.2.1. Tần số lấy mẫu
Quá trình lấy mẫu tạo ra tín hiệu rời rạc hoặc tín hiệu số từ tín hiệu tín hiệu tương tự. Tần
số lấy mẫu là số lần lấy mẫu được tính trong một đơn vị thời gian, thông thường là giây. Tần số
lấy mẫu ký hiệu là Fs
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 24
Khoảng thời gian mà quá trình lấy mẫu được lặp lại gọi là chu kỳ lấy mẫu.
Ví dụ: Fs = 11025Hz nghĩa là 1s ta thu được 11025 mẫu và 1ms thu được 11025/1000 11
mẫu.
Số bit lưu một mẫu có thể là 8 hoặc 16 bit.
2.2.2. Nhiễu
Nhiễu đối với hệ thống là loại âm thanh không phải tiếng nói sinh ra trong môi trường xung
quanh ta. Ngay cả bộ phát âm của con người cũng sinh ra nhiễu, chẳng hạn như tiếng thở, tiếng
bật lưỡi, tiếng chép miệng cả khi môi chạm vào micro, … Không dễ gì có thể lọc được mọi thứ
nhiễu, ta chỉ tìm cách tối thiểu hoá chúng để có thể nâng cao chất lượng của hệ thống nhận
dạng.
s ~
s
Với tín hiệu tiếng nói là n , tín hiệu nhận được sau quá trình thu sẽ được ký hiệu là n .
~
sn s n chính là tín hiệu nền.
Như vậy:
Độ nhiễu của tín hiệu được xác định thông qua năng lượng đo được của tín hiệu:
N
sn2
n 0
E 10 log 10
N 2
~
sn sn
n 0 (Đơn vị năng lượng tính bằng dB)
~
s s
Như vậy nếu năng lượng E càng lớn thì n gần với n , tín hiệu nền có giá trị gần về 0. N
ếu E thì tín hiệu thu được là tín hiệu sạch, không có nhiễu.
2.2.3. Tần số cơ bản
Một âm thanh có thể là tổ hợp của nhiều tần số, tần số chính bao trùm trong âm được gọi là
tần số cơ bản. Trong tiếng nói tần số cơ bản là đáp ứng của sự rung động các dây thanh âm, tần
số cơ bản thường được ký hiệu là F0.
Tần số cơ bản có giá trị phụ thuộc vào tần số lấy mẫu và khoảng cách a, là khoảng cách
giữa hai đỉnh của các sóng âm tuần hoàn.
Đơn vị của tần số là Hertz, ký hiệu là Hz. Mỗi Hz bằng một dao động/một giây. Và 1 KHz
sẽ bằng 1000 Hz. (Xem biểu diễn đường F0 của một số thanh điệu ở phần phụ lục).
2.2.4. Formant
Formant là dải tần số được tăng cường do hiện tượng cộng hưởng trong ống dẫn thanh, đặc
trưng cho âm sắc của mỗi nguyên âm. Trong mỗi dải tần như thế có một tần số được tăng
cường hơn cả gọi là đỉnh formant.
Một nguyên âm do một người phát ra có nhiều formant:
- F1: ứng với cộng hưởng vùng yết hầu
- F2: ứng với cộng hưởng khoang miệng
Khi ta nói các âm mũi sẽ có sự xuất hiện của formant F3, các formant khác F4, F5,…liên
quan đến các đặc trưng giọng nói riêng của mỗi cá nhân. Mỗi lần môi, lưỡi, hàm ở những vị trí
khác nhau là một lần hộp cộng hưởng miệng và yết hầu thay đổi hình dáng, thể tích, lối thoát
của không khí làm biến đổi âm sắc của âm thanh đi qua chúng. Chính vì vậy hai khoang miệng
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 25
và yết hầu là hai hộp cộng hưởng quan trọng nhất, chúng tạo nên hai formant chính formant F1
và F2 đặc trưng của mỗi nguyên âm.
File bắt đầu với phần header RIFF, sau nó là hai khối con được định nghĩa FMT và DATA.
RIFF bao gồm ba phần tử: RIFF_ID, RIFF_SIZE và RIFF_FORMAT.
2.4. Thu tín hiệu âm thanh trong thời gian thực
Tín hiệu tiếng nói trước khi trở thành dữ liệu tiếng nói phải trải qua một quá trình xử lý, quá
trình này được gọi là tiền xử lý tín hiệu.
Hệ thống máy tính hiện tại chỉ hỗ trợ cho ta thu tĩnh. Mỗi lần chỉ thu được trong một
khoảng thời gian khá nhỏ (vì dãy tín hiệu số phát sinh quá lớn sẽ nhanh chóng lấp đầy phần
không gian lưu trữ). Nếu người sử dụng nói vào thời điểm hàm thu kết thúc thì dữ liệu sẽ bị
mất mát, do đặc trưng của tín hiệu tiếng nói các hệ thống thiết kế tốt cũng có thể không phát
hiện được, vẫn thực hiện và cho ra kết quả khi dữ liệu đầu vào đã sai.
Cách giải quyết chủ yếu dựa vào một số thủ thuật lập trình, cơ chế hoạt động của hệ điều
hành và cơ chế của hàm thu tín hiệu âm thanh. Tư tưởng chính là làm một hàng đợi vòng, xử lý
kịp thời để không bao giờ bị hết không gian lưu trữ, kết hợp với việc sử dụng cơ chế đa luồng
của hệ điều hành để vẫn có thể thực hiện được đồng thời các ứng dụng khác. Cách thực hiện cụ
thể như sau:
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 26
- Xin cấp phát M vùng đệm (buffer), mỗi vùng đệm có kích thước 3N và đưa vào hàng đợi
(N là kích thước của một frame). Tạo một luồng (thread) làm những việc chính sau:
- Kiểm tra cờ điều khiển (semaphore), nếu cờ tắt thì dừng (return).
- Gọi hàm thu và chờ thu hết vùng đệm (hiện hành) (Khi này vùng đệm bị loại ra khỏi hàng
đợi).
- Tính năng lượng của ba frame trên vùng đệm, nếu năng lượng frame đầu lớn hơn ngưỡng
dữ liệu thì quay lại bước một (trạng thái đang có âm thanh khi gọi hàm thu-không thu
được trọn vẹn dữ liệu).
- Đưa vùng đệm vào hàng đợi.
- Tăng chỉ số vùng đệm hiện hành lên một.
- Chờ thu hết vùng đệm.
- Với mỗi frame của vùng đệm tính tổng năng lượng của nó và hai frame kế trước (có thể là
của vùng đệm trước- để đảm bảo tính liên tục).
- Nếu tổng năng lượng vừa tính lớn hơn ngưỡng im lặng thì chép frame vào vùng đệm
chính, cập nhật lại kích thước vùng đệm chính và bật cờ có dữ liệu.Ngược lại, nếu cờ có
dữ liệu bật: cập nhật lại kích thước đoạn im lặng.
- Nếu kích thước đoạn im lặng nhỏ hơn thời gian ngừng tối đa giữa hai tiếng: Quay lại bước
5.
Ta có thể chọn kích thước frame là 220 ms, thời gian ngừng tối đa giữa hai tiếng là 750 ms.
2.5. Xác định giá trị hằng-ngưỡng theo môi trường tín hiệu
2.5.1. Thông số ngưỡng zero:
Bản chất âm thanh là sự dao động, khi số hoá các mẫu dữ liệu âm thanh về miền giá trị
0..N-1 thì mẫu âm thanh im lặng (không có âm thanh) sẽ có giá trị là N/2, giá trị này gọi là
ngưỡng zero. Ví dụ nếu kích thước mỗi mẫu tín hiệu số là 8 bit thì giá trị của ngưỡng zero là
128, các mẫu tín hiệu âm thanh số sẽ có giá trị dao động xung quanh ngưỡng này.
Trên thực tế các thiết bị số hoá âm thanh của máy tính (sound card) có thể bị sai ngưỡng
zero (sound card mà người viết đang dùng có ngưỡng zero là 112-mẫu 8 bit). Nếu hệ thống
chương trình sử dụng ngưỡng zero tương ứng của thiết bị thì dữ liệu nhận được vẫn là dữ liệu
tốt. Còn nếu vẫn dùng ngưỡng như trên thì kết quả nhận dạng có thể sai trầm trọng.
Thuật toán phương pháp xác định ngưỡng zero:
- Lấy thu của sound card.
- Đặt mức thu ở giá trị thấp nhất (tín hiệu thu được là nhỏ nhất).
- Thu một đoạn dữ liệu ngắn (khoảng 3 giây).
- Tính "histogram" H (H[k] là số mẫu có giá trị biên độ k).
- Tìm trong dãy H phần tử H[max] có giá trị lớn nhất. Ngưỡng zero chính là max.
- Phục hồi lại mức thu ban đầu.
2.5.2. Thông số độ ồn nhiễu:
Cách xác định: Thông báo yêu cầu người sử dụng đừng nói gì trong ba giây và thu tín hiệu
trong thời gian đó để lấy tiếng ồn nhiễu của môi trường xung quanh. Ngưỡng im lặng được xác
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 27
định là năng lượng cao nhất của các frame. Ngoài ra có thể dùng biến đổi Fourier để tính ra các
tần số nhiễu phục vụ cho việc lọc nhiễu.
2.6. Lọc nhiễu
Hiện tại việc lọc nhiễu của hệ thống được thực hiện theo phương pháp kinh điển là dùng
phép biến đổi Fourier với thuật toán FFT. Dùng biến đổi Fourier thuận xác định được các tần
số tham gia và loại đi tất cả tần số không thuộc phạm vi tiếng nói (nếu biết được phạm vi tần số
của đúng người sử dụng thì kết quả lọc sẽ càng cao hơn) bằng cách cho các hệ số tương ứng giá
trị zero sau đó biến đổi ngược lại.
2.7. Xác định dãy tín hiệu số có chứa dữ liệu tiếng nói và xác định các điểm
đầu-cuối của tiếng.
Dữ liệu thu được không phải lúc nào cũng là tiếng nói, nhất là khi thu động dữ liệu sẽ
thường xuyên là khoảng lặng và nhiễu. Vì hệ thống nhận dạng được thiết kế theo hình thức so
khớp tìm ra mẫu giống nhất nên dù dữ liệu thu được không phải là tiếng nói mà được đưa vào
thì hệ thống vẫn gán đó là một trong các tiếng đã học mẫu dẫn đến sai hoàn toàn.
Trong mọi đoạn tín hiệu, dù có tiếng nói hoặc không có tiếng nói, thì luôn luôn có âm nền.
Khác biệt chủ yếu khi có tiếng nói là âm thanh tiếng nói sẽ là âm thanh chính. Ta có thể đưa ra
phương pháp sau:
Chia đều dãy tín hiệu số thành các frame với kích thước từ 5-10 ms (có thể căn cứ vào tần
số cơ bản trung bình của người đang nói để chọn giá trị phù hợp nhất).
Phân chia tín hiệu thành các Frame
Sau đó kiểm tra tính chứa tiếng nói của các frame bằng cách đếm số điểm zero hoặc tính
năng lượng ngắn hạn của frame có vượt qua ngưỡng.
Nếu tổng kích thước các frame liên tiếp được xác định có tính chứa tiếng nói lớn hơn 150
ms thì có thể xem là có chứa tiếng nói.
Nếu người nói nói rời rạc từng tiếng một và môi trường không bị ồn thì ở bước xác định
dãy tín hiệu số có chứa dữ liệu tiếng nói hay không ta cũng đã xác định được các điểm biên của
tiếng vì tại đó sẽ có các khoảng lặng. Nhưng người ta có thể nói hơi chậm chứ không quen nói
nhát gừng từng tiếng một và môi trường xung quanh cũng hoàn toàn có thể có nhiễu. Khi đó
giữa hai tiếng có thể không có khoảng lặng - Tức chúng bị dính nhau (thường hiện tượng này
chỉ xảy ra giữa hai tiếng chứ ít có ba tiếng dính nhau). Lúc này bước trên sẽ cho kết quả chỉ là
một tiếng mà ta đưa luôn cho hệ thống nhận dạng thì trước mắt sẽ có một tiếng bị nhận sai
(không có kết quả), và tiếng còn lại cũng nhiều khả năng sai. Như vậy bước này cũng là cần
thiết nếu muốn hệ thống hoạt động cho chính xác.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 28
Cöa sæ i
Cöa sæ i+1
Dl chia sÎ Dl míi
Nếu các tiếng được nói rõ ràng thì chiều dài của mỗi tiếng không dao động nhiều. Do đó ta
có thể yêu cầu người nói rời rạc một số tiếng rồi đo chiều dài nhỏ nhất L1 và lớn nhất LS các
tiếng của người đó. Khi nhận được đoạn dữ liệu có chiều dài lớn hơn LS, tức đang có hai tiếng
dính nhau, ta sẽ tìm frame trong đoạn [L1..LS] có năng lượng nhỏ nhất và điểm biên giữa hai
tiếng được chọn là điểm giữa của frame.
2.8. Chuẩn hoá biên độ
Dữ liệu tiếng nói khi thu được có biên độ rất biến động. Ngay cả khi người sử dụng nói với
một âm lượng rất chuẩn không hề thay đổi thì biên độ của dữ liệu thu được cũng vẫn có thể
không ổn định. Điều này dễ dàng xảy ra khi người nói hơi xoay mặt đi, nhích micro đến gần
miệng hơn hoặc kéo ra xa hơn chỉ vài cm. Sự biến động này ảnh hưởng đến kết quả nhận dạng.
Việc chuẩn hoá là cần nhưng không nhất thiết phải thật tốt, chỉ cần biên độ đừng nhỏ quá
làm mất mát đặc trưng. Như vậy ta có thể thực hiện đơn giản bằng cách nhân mỗi điểm với một
hệ số k thích hợp.
Ví dụ:
32767 / 2 100
k
max s n
Nhận dạng tiếng nói là mô hình phức tạp theo nhiều mức khác nhau. Tín hiệu tiếng nói
được phân tách ra thành từ, các cụm từ hay câu. Tiếp theo chúng được phân tích dựa vào cú
pháp của ngôn ngữ cần nhận dạng, được biến đổi và nén lại để đơn giản cho việc xử lý tiếp
theo.
Khi xử lý tín hiệu tiếng nói ta phải rời rạc hoá nó theo thời gian, sử dụng biến đổi FFT để
ước lượng các thành phần tần số của tín hiệu rời rạc, tách lọc các thành phần cần thiết trước khi
nhận dạng.
2.8.1. Biến đổi FFT
Phép biến đổi nhanh FFT không phải là một phép biến đổi mới nó thực chất là DFT nhưng
được thực hiện với một thuật toán nhanh, gọn. Đây là thuật toán đóng vai trò hết sức quan trọng
trong việc phân tích, thiết kế và xử lý tín hiệu.
Thuật toán biến đổi nhanh FFT cho N mẫu {x(n)} là:
Phép biến đổi thuận:
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 29
N 1
j 2 kn / N
xk xne
k 0
Phép biến đổi ngược:
1
xn X k e j2 kn / N
N
Với n = 0, 1, …, N-1
Trong đó: xn an bn 1
Phép biến đổi FFT bảo toàn tính tuyến tính bất biến, tuần hoàn và tính trễ.
Sau khi qua quá trình biến đổi FFT chúng ta thu được phổ của các tín hiệu tiếng nói.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 30
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 31
sn Lµm râ ~
s n Ph©n ®o¹n x1 n LÊy cöa ~
x1 n Ph©n tÝch tù rm t
tÝn hiÖu frame sæ t-¬ng quan
cˆm t
Hình 2.3: Sơ đồ bộ xử lý LPC dùng cho trích đặc trưng tiếng nói
Dự báo tuyến tính:
Phân tích dự báo tuyến tính có nghĩa là một mẫu tiếng nói có thể được xấp xỉ như là tổ hợp tuyến
tính của các mẫu trước đó. Bằng việc tối thiểu hoá tổng của các bình phương sai số giữa các mẫu
hiện tại và các mẫu dự đoán tuyến tính ta có thể xác định được một tập duy nhất các hệ số dự
báo. Các hệ số dự báo này chính là các trọng số được sử dụng trong tổ hợp tuyến tính.
Chúng ta định nghĩa dãy tín hiệu tiếng nói bằng hàm s(n), giá trị dự báo:
P
~
s n ks n k
k 1
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 32
P 2
2
En en n sn m k sn m k
m m k 1 (*)
2
P P
sn2 m 2s n m k sn m k k sn m k
m m k 1 m k 1
P P 2
sn2 m 2 k sn m sn m k k sn m k
m m k 1 m k 1
Trong đó sn(m) là một đoạn tín hiệu tiếng nói được chọn ở lân cận của mẫu thứ n, nghĩa là:
sn m s ( n m)
Chúng ta có thể tìm được các giá trị k để tối thiểu hoá En trong phương trình bằng cách đặt
En i 0 , với i = 1, 2, …, P.
E P
0 2sn m sn m i 2 k sn m k sn m i
i m m k 1
Từ đó nhận được phương trình:
P
sn m i sn m k sn m i sn m k
m k 1 m 1 i P (**)
Nếu chúng ta đặt:
n i, k sn m i sn m k
m (***)
Thì phương trình (**) có thể được viết gọn hơn:
P
n i,0 k n i, k
k 1 i 1, 2, , P (****)
Giải hệ P phương trình này ta sẽ tìm được P ẩn k . Tập các hệ số k sẽ tối thiểu sai số
trung bình bình phương dự đoán cho đoạn tín hiệu Sn(m). Sử dụng phương trình (*) và (**) sai
số dự đoán trung bình bình phương tối thiểu sẽ là:
P
En sn2 m k sn m sn m k
m k 1 m
Sử dụng phương trình (****) ta có thể biểu diễn En như sau:
P
En n 0,0 k n 0, k
k 1 (*****)
Về nguyên tắc phân tích dự đoán tuyến tính rất dễ hiểu. Nhưng việc tính toán n và nghiệm
i, k
của hệ phương trình là khá rắc rối. Phương pháp thông dụng để áp dụng giải các phương trình là
phương pháp tự tương quan.
Chúng ta giả sử đoạn tín hiệu sn(m) = 0 ngoài khoảng 0 m N 1 . Điều này có thể được biểu
diễn như sau:
sn m sm nwm
Trong đó w(m) là cửa sổ có chiều dài hữu hạn (thường hay dùng cửa sổ Hamming. w(m) khác
không trong khoảng 0 m N 1 . Do đó sai số dự đoán en(m) cho bộ dự đoán bậc p sẽ khác
không trong khoảng 0 m N 1 p . Vì vậy En có dạng sau:
N p 1
En en2 m
m 0
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 33
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 34
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 35
Độ biến dạng d ký hiệu d x, xˆ giữa vector đầu vào x và vector x̂ . Cho một giá trị của độ
biến dạng, chúng ta có thể xác định chất lượng thực hiện của hệ thống bằng độ biến dạng trung
ˆ
bình Ed X , X giữa vector đầu vào và vector được phát: Một hệ thống được đánh giá tốt nếu
như giá trị trung bình độ biến dạng nhỏ. Trên thực tế, giá trị trung bình được quan tâm là giá trị
trung bình giới hạn độ dài mẫu hoặc trung bình thời gian thực hiện, dĩ nhiên điều này được
đánh giá bằng trực giác.
k 1
2 2
d x, x x x xi xˆi
i 0
(6.1)
k: Số chiều của VQ
Tính chất 1:
Với mục đích cực tiểu hoá trung bình độ biến dạng, cho một bộ giải mã , không có bộ mã
hoá lượng tử nào tốt hơn chọn các từ mã v trong M, nó sẽ cung cấp độ biến dạng nhỏ nhất có
thể ở đầu ra, giá trị cực tiểu trên kênh v là:
d x, y x min d x, v min d x, y
v M y C
(6.2)
Bộ giải mã cho quá trình lượng tử hoá vector tốt nhất khi bộ mã hoá có độ biến dạng nhỏ
nhất.
1
yx min d x, v
v M (6.3)
Ngược lại biết v chúng ta sẽ tìm ra được giá trị cực tiểu ở công thức (6.3).
3.1.3. Tính chất:
Tính chất 2:
Đối với bộ mã hoá y, không có bộ giải mã nào tốt hơn việc gán mỗi kênh v một ceintroid
chung của tất cả các vector nguồn mã hoá thành v, đó là:
1
v cent v min E d X , xˆ | y X v
x Aˆ (6.4)
1
cent v xi
iv xi | y xi
v
Thường là:
Ở đó: i(v) là số của chỉ số i sao cho y(xi) = v.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 36
nguồn thu được thông việc huấn luyện chuỗi. Chúng ta cũng giả thiết rằng các vector nguồn là
k chiều, ví dụ:
xm = (xm,1, xm,2, …, xm,k), m =1, 2, …, M
Cho N là số lượng codevector và biễu diễn codebook :
C = {c1, c2, …, cN},
Mỗi codebook có k chiều, ví du:
cn = (cn,1, cn,2, …, cn,k), n = 1, 2, …, N
Sn là miền mã hoá với codevector cn và chỉ rõ việc phân chia các khoảng trống.
P = { S1, S2,…, SN},
Nếu vector nguồn xm ở trong miền Sn, khi đó giá trị tương đương của nó (nghĩa là Q(xm)) sẽ là
cn .
Q(xm) = cn, if xm SN
Độ đo bình phương khoảng cách lỗi, độ lệch trung bình được tính bằng:
2
1 M
Dove xm Q xm
Mk m 1
Ở đó:.
2
e e12 e22 ... ek2
Như vậy vấn đề thiết kế thuật toán này có thể được nói ngắn gọn như sau: Cho T và N, tìm
C và P sao cho Dove là nhỏ nhất.
Tiêu chuẩn tối ưu hoá:
Nếu C và P là một giải pháp của vấn đề cực tiểu hoá, khi đó nó phải thoả mãn hai tiêu
chuẩn sau:
Điều kiện của thuật toán người láng giềng gần nhất:
2 2
Sn x : x cn x cn n 1,2,...,N
Điều kiện này yêu cầu miền mã hoá Sn phải bao gồm tất cả các vector, các vector gần với
Cn hơn bất kỳ một codevector nào khác. Những vector được cho dựa vào các đường biên
(đường màu xanh), thủ tục của điểm ngắt sẽ là
Điều kiện của trọng tâm:
xm Sn
Xm
cn
1
n = 1, 2, …, N
xm Sn
Điều kiện này cho rằng codevector Cn là trung bình của tất cả các vector huấn luyện, các
vector ở trong miền mã hoá Sn. Thêm vào đó có một điều chắc chắn là có ít nhất một vector
huấn luyện thuộc vào mỗi miền (mẫu số ở công thức trên phải khác 0)
Thiết kế thuật toán LBG
Thuật toán LBG là thuật toán đệ quy, việc giải quyết dựa vào sự lựa chọn hai tiêu chuẩn tối
ưu trên. Thuật toán yêu cầu một codebook ban đầu C(0). Đây là codebook khởi tạo, thu được
qua quá trình phân tách. Trong phương thức này, một codebook được đặt là giá trị trung bình
của toàn bộ dãy huấn luyện. Codevector này được phân tách thành hai. Thuật toán lặp được
chạy với hai vector được khởi tạo cho codebook. Hai codebook sau được phân thành bốn và
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 37
quá trình xử lý được lặp lại cho đến khi thu được số lượng codebook mong muốn. Thuật toán
này được tổng kết như sau:
Thiết kế thuật toán LBG:
1. Cho T. >0 là số lượng nhỏ nhất có giá trị cố định
2. Đặt N=1 và
1 M
c1* xm
M m 1
Tính
2
* 1 M
Dove xm c1*
Mk m 1
Phân tách: Cho i = 1, 2, …, N, khi đó:
ci 0 1 ci*
c N0 1 1 ci*
Đặt N = 2N
0 *
Lặp lại thuật toán: Đặt Dove Dove . Đặt chỉ số lặp i = 0.
Cho m = 1, 2, …, M, Tìm giá trị nhỏ nhất :
2
xm cni
với n = 1, 2, …, N. Với n* là chỉ số nhỏ nhất thu được. Khi đó:
i
Q xm c
n*
Cho n = 1, 2, …,N, Cập nhật lại codevector
Q xm c ni Xm
cni 1
Q xm c ni 1
Đặt i = i+1
Tính
i 1 M 2
Dove xm Q xm
Mk m 1
i 1 i i 1
Nếu Dove Dove Dove , Quay lại bước (i).
* i
Đặt Dove Dove . Cho n = 1, 2, …, N, đặt
cn* cni
Với các codevector cuối ta lặp lại bước 3 và 4 cho đến khi thu được số lượng codebook
mong muốn .
3.1.5. Ứng dụng VQ trong xử lý tín hiệu tiếng nói
Kết quả của việc trích trọn đặc trưng tiếng nói là một dãy các vector đặc trưng của chuỗi
các đặc trưng phổ của tín hiệu tiếng nói. Chúng ta có thể ánh xạ các vector này thành một tập
các vector rời rạc.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 38
Chỉ số
Các vector tín hiệu tiếng nói Bộ lượng tử hóa codebook
Hình3.3: Quá trình huấn luyện và phân lớp tín hiệu tiếng nói sử dụng VQ
Uư điểm của phương pháp:
- Giảm không gian lưu trữ các đặc trưng phổ.
- Giảm thời gian tính toán trong việc quyết định các sự giống nhau gữa các vector phổ.
- Biểu diễn tín hiệu âm thanh dưới dạng rời rạc.
Nhược điểm của phương pháp này:
- Bóp méo tín hiệu phổ trong quá trình phân tích các tín hiệu âm thanh thực.
- Phải tính đến không gian lưu trữ các codebook. Codebook càng lớn thì càng làm giảm các
lỗi lượng tử hóa nhưng không gian lưu trữ càng tăng lên. Phải cân bằng giữa 2 vấn đề về
không gian lưu trữ codebook và lỗi lượng tử hóa.
Hình 3.4:Đồ thị của chuỗi các vector phổ đã được mã hóa bằng VQ của phát âm từ 8 tiếng
anh.
3.2. Phương pháp căn chỉnh thời gian động
3.2.1. Khái quát về tiếp cận đối sánh mẫu và kỹ thuật căn chỉnh thời gian động
Đối sánh mẫu là một trong những cách tiếp cận cơ bản để giải quyết bài toán nhận dạng.
Trong lĩnh vực nhận dạng tiếng nói, cách tiếp cận này cũng được áp dụng và có hiệu quả. Một
sơ đồ khái quát của cách tiếp cận này được mô tả ở hình 1. Tại pha “Trích chọn đặc trưng”,
chúng ta thường sử dụng các kĩ thuật cơ bản như: mã hóa dự báo tuyến tính (Linear Predictive
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 39
Coding - LPC), các hệ số cepstral tần số Mel (Mel Frequency Cepstral Coefficients - MFCC),
... để trích các đặc trưng âm thanh thành bộ số liệu. Pha “Phát hiện tiếng nói” có nhiệm vụ tách
bỏ các thành phần âm thanh không cần thiết và phát hiện tiếng nói trong bộ số liệu đưa vào.
Một số kĩ thuật được dùng ở pha này có thể kể đến là: kĩ thuật phân tích phổ năng lượng, phân
tích phổ, ...
tín hiệu
Trích Phát hiện Đối sánh Luật
chọn đặc tiếng nói mẫu quyết
trưng định
Hình 3.5 : Sơ đồ cách tiếp cận đối sánh mẫu
Nhiệm vụ của pha “Đối sánh mẫu” là so khớp tín hiệu đưa vào nhận dạng với bộ tín hiệu đã
được lưu sẵn trong chương trình để tìm ra khoảng cách giữa các mẫu. Các kĩ thuật có thể dùng
là: căn chỉnh thời gian động (Dynamic Time Warping - DTW), mô hình Markov ẩn (Hidden
Markov Model - HMM), ... Cuối cùng “Luật quyết định” là pha trợ giúp máy tính đưa ra kết
quả nhận dạng mẫu tín hiệu nào gần giống nhất. Trong số các luật được đề nghị rất nhiều cho
các hệ nhận dạng, có hai luật được sử dụng rộng rãi là: luật lân cận gần nhất (Nearest
Neighbour Rule - NN) và luật k-lân cận gần nhất KNN.
Đối sánh mẫu đóng vai trò rất quan trọng trong các hệ nhận dạng tiếng nói. Đối sánh mẫu
tức là xác định sự tương đương giữa các mẫu khác nhau, hay nói cách khác là đo lường khoảng
cách giữa các mẫu. Tùy theo đặc tả của từng hệ thống mà chúng ta có những kỹ thuật so khớp
mẫu khác nhau.
DTW được áp dụng nhận dạng các từ đơn lẻ (IWR - Isolated Word Recognition). Điều này
có nghĩa là các từ được nói ra rời rạc từng từ một và với khoảng thời gian trễ vừa đủ. Với
những yêu cầu như vậy, có thể dễ dàng nhận biết được lúc nào bắt đầu một từ và lúc nào kết
thúc một từ. Điều này sẽ thực sự rất khó khăn đối với những hệ thống nhận dạng câu liên tục
(CSR - Continuous Speech Recognition) khi mà người nói phát âm một cách bình thường và
không có ranh giới rõ ràng giữa các từ. Khi các từ được nói bởi một người và mục tiêu của hệ
nhận dạng tiếng nói là nhận dạng các từ được phát âm bởi người đó thì hệ được gọi là hệ nhận
dạng phụ thuộc vào người nói (speaker-dependent recognition). Một hệ phức tạp hơn là hệ
nhận dạng độc lập với người nói (speaker-independent recognition).
Sau đây là ưu và nhược điểm của kĩ thuật DTW.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 40
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 41
Mỗi frame này qua phép phân tích LPC ở pha trích chọn đặc trưng sẽ được biểu diễn bằng
một véc tơ p chiều và ta gọi véc tơ này là véc tơ đặc trưng. Giá trị p là một giá trị không cố
định thường được lựa chọn theo kinh nghiệm. Điều đó có nghĩa là từ việc lưu giữ một frame
với tf mẫu ta chỉ cần lưu một véc tơ với p chiều. Như vậy một mẫu nhận dạng sẽ là một chuỗi
các véc tơ đặc trưng. Chuỗi véc tơ đặc trưng này sẽ được dùng để so khớp với chuỗi véc tơ đặc
trưng chuẩn đã được lưu trong chương trình để tìm khoảng cách, khoảng cách này là cơ sở để
chúng ta quyết định kết quả nhận dạng.
Gọi a = {a1 , a2 , ... , aI} và r = {r1 , r2 , ... , rJ} lần lượt là chuỗi véc tơ đặc trưng của tín
r
hiệu 1 và tín hiệu 2. Ở đây j và ai là các véc tơ đặc trưng (hay còn gọi là các frame) p chiều
với i=1,...,I, j=1,...,J. Nói chúng do bản chất biến thiên về thời gian của tiếng nói nên độ dài của
hai chuỗi véc tơ a và r khác nhau nên I≠J. Sự chuẩn hóa về thời gian giữa a và r là sự mở rộng
một cách tuyến tính mẫu tín hiệu ngắn hơn đạt tới độ dài của mẫu tín hiệu dài hơn. Nghĩa là ta
phải thực hiện việc so khớp hai véc tơ có chiều dài khác nhau. Ta có một kĩ thuật đơn giản để
giải quyết vấn đề trên là kĩ thuật căn chỉnh thời gian tuyến tính.
Giả sử J<I. Kí hiệu D(r,a) là khoảng cách giữa hai mẫu tín hiệu r và a và được tính như sau:
I
J
D(r , a) d f ( r j ' , ai ) j' *i
i 1 I (3.14)
d f (r j ' , ai ) rj'
với là khoảng cách giữa hai frame và ai.
Kết quả của sự căn chỉnh thời gian tuyến tính được thể hiện ở hình G.1.3d) tuy vậy việc căn
chỉnh như hình d) là chưa tối ưu về mặt khoảng cách. Một lược đồ chuẩn hóa tốt phải thay đổi
khoảng thời gian của một mẫu theo đặc tính của mẫu kia để đạt được sự so khớp hợp lý giữa
chúng, do vậy mà khoảng cách D(r,a) có thể được cực tiểu hóa. Hình G.1.3e) thể hiện sự căn
chỉnh thời gian động (hay còn gọi là căn chỉnh thời gian phi tuyến) nghĩa là căn chỉnh trên từng
đoạn con rồi khớp chúng lại. Chúng ta có thể thấy các phần của âm s, p và ch của tín hiệu 1
được mở rộng, còn âm iy thì được nén.
b) Quy hoạch động trong kĩ thuật căn chỉnh thời gian động
Sự so khớp phi tuyến giữa các mẫu a và r như đã nói ở phần trước được biểu diễn trên lưới
điểm hình G.1.4. Trên lưới này tín hiệu a nằm dọc theo trục i, tín hiệu r nằm dọc theo trục j.
Mỗi giao điểm trên lưới được định nghĩa như là một nút, nút (i,j) có nghĩa là so khớp frame i
của tín hiệu a với frame j của tín hiệu r. Nút (0,0) được gọi là nút gốc nơi mà tất cả các đường
đều xuất phát từ đây.
r
df(i,j) là khoảng cách giữa vec tơ đặc trưng ai với j , khoảng cách này còn được gọi là khoảng
cách cục bộ. Ta định nghĩa giá tại nút (0,0) là : df(0,0) = 0 (3.15)
Một đường đi ở đây được định nghĩa bởi các cặp nút (ik-1, jk-1) -> (ik, jk). Một đường đi
xuất phát từ nút (0,0) đến nút (ik, jk) có một giá toàn cục là giá tích lũy từ điểm bắt đầu của
đường đi cho đến khi gặp nút (ik, jk). Ta gọi giá này là D(ik, jk) và được định nghĩa :
D(ik , j k ) D(ik 1 , j k 1 ) d f (ik , j k )
(3.16)
Vì nút (0,0) là nút khởi đầu của tất cả các đường đi nên ta có:
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 42
D(0,0) 0 (3.17)
Ở biểu thức truy hồi (3.16) khi cho k chạy về tới k=1 ta có
k
D (ik , jk ) d f (im , jm )
m 0 (3.18)
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 43
thường sử dụng những trường hợp đặc biệt của metric Minkowski trong các tính toán kĩ thuật.
r
Metric Minkowski bậc s giữa ai và j là :
p s
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 44
Hình 3.9: Các ràng buộc điểm đầu cuối (Endpoint Constraints)
Theo điều kiện ràng buộc này ta có một đường đi so khớp thông thường có dạng như ở hình
G.1.5.
b) Các ràng buộc đều đặn và liên tục (Continuity and Monotonicity Constraints)
Ràng buộc đều đặn yêu cầu các véc tơ của một từ phải được duyệt theo thứ tự tăng dần,
nghĩa là : jk - jk-1 ≥ 0 (3.25)
Ràng buộc liên tục có nghĩa là không có điểm “gẫy” trên đường đi, nghĩa là:
ik - ik-1 = 1 (3.26)
Nói cách khác việc so khớp phải tiến hành dọc theo trục của mẫu kiểm tra lần lượt từng
frame một.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 45
Eh
P
S
S P Eh A K
Hình 3.11: Minh họa về so khớp không liên tục i
(I)
(II)
(III)
(IV)
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 46
i, j
i-2, j i-1,,j
i-1, j-1
i-1, j-2
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 47
Thuật toán được minh họa bằng ví dụ ở hình 11, ta sử dụng một ma trận thời gian-thời gian
để mô tả trực quan cách căn chỉnh. Theo quy ước thì trục tung sẽ biểu diễn mẫu chuẩn
“SPEECH”, trục hoành biểu diễn mẫu nhận dạng “SsPEEhH”. Trong ví dụ này mẫu nhận dạng
“SsPEEhH” là mẫu có nhiễu. ý tưởng ở đây là mẫu nhận dạng sẽ được so với tất cả các mẫu
chuẩn thuộc cùng một lớp. Mẫu nhận dạng phù hợp nhất là mẫu có khoảng cách đường căn
chỉnh với mẫu chuẩn ngắn nhất.
Hình 3.15 : Minh họa căn chỉnh thời gian động giữa mẫu
chuẩn “SPEECH” và mẫu nhận dạng có nhiễu “SsPEEhH”
Trong thuật toán này ta cần phải tuân thủ các ràng buộc sau:
- Các đường so khớp không thể quay ngược chiều thời gian (nghĩa là chỉ có tiến lên)
- Tất cả các frame phải được sử dụng trong đường so khớp.
- Khoảng cách toàn cục được tính bằng cách cộng dồn tất cả các khoảng cách cục bộ.
- Một ý quan trọng ở thuật toán này là ta chỉ có thể đi đến ô (i,j) từ các ô (i-1,j-1), (i-1,j),
(i,j-1) trong đó i là cột, j là hàng.
Biểu thức quy hoạch động của DTW đối xứng là :
D(i, j ) min D(i 1, j 1), D(i 1, j ), D(i, j 1) d (i, j ) (3.27)
với d(i,j) là khoảng cách cục bộ tại (i,j), D(i,j) là khoảng cách toàn cục tại (i,j).
Ta có thể nêu một cách cài đặt hiệu quả về bộ nhớ và khá nhanh trong tính toán của DTW
đối xứng. Cải tiến ở đây là ta dùng hai mảng để lưu các cột liên tiếp. Ta quy ước các hàng, cột
bắt đầu đánh số từ 0.
Hình 3.16: Các hướng
đi có thể của SDTW
Ô (i,j) và (i,0) có sự
khác nhau về các ô
xuất phát. Đường đến
ô (i,0) chỉ có thể từ
(i-1,0), còn đường đến
(i,j) có thể có 3 đường.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 48
- Đầu vào : Hai chuỗi véc tơ đặc trưng của mẫu chuẩn và mẫu nhận dạng
- Đầu ra: Giá toàn cục nhỏ nhất.
Thuật toán mô tả như sau:
- Tính ở cột 0, ô thấp nhất. Giá toàn cục ở ô này chính là giá cục bộ. Sau đó giá toàn cục của mỗi ô
tiếp theo là giá cục bộ của ô đó cộng với giá toàn cục của ô trước, cột này được gọi là predCol
(predecessor Column). Bước này được gọi là bước khởi tạo.
- Tính giá toàn cục ở ô đầu tiên của cột tiếp theo (ta gọi cột nàylà curCol - current Column). Giá trị
này bằng giá cục bộ của ô đó cộng với giá toàn cục của ô thấp nhất ở cột trước.
- Tính giá toàn cục của các ô còn lại của curCol. Ví dụ, tại ô (i,j) đó là khoảng cách cục bộ (hay giá
cục bộ) của (i,j) cộng với giá toàn cục nhỏ nhất tại một trong các ô (i-1,j-1), (i-1,j), hoặc (i,j-1).
- curCol được gán bằng predCol và lặp lại từ bước 2 cho đến khi tất cả các cột được tính.
Giá trị toàn cục nhỏ nhất cuối cùng là giá trị lưu giữ ở ô trên cùng của cột cuối cùng.
b) Thuật toán DTW phản đối xứng (Asymmetric DTW - ASDTW)
Thuật toán DTW phản đối xứng là một cải tiến của DTW đối xứng. Biểu thức qui hoạch
động như sau:
D(i, j )min D(i 1, j 1) 2d (i, j ), D(i 1, j ) d (i, j ) dh, D(i, j 1) d (i, j ) dv (3.28)
trong đó các giá trị dh và dv phù hợp có thể tìm được qua thực nghiệm. Ta có thể hiểu dh và dv
là những trọng số ưu tiên, dh là trọng số ưu tiên đường đi ngang (horizontal), dv là trọng số ưu
tiên đường đi dọc (vertical), các trọng số này có thể nhận giá trị 0.
Nếu chúng ta hạn chế các đường đi cho phép là:
- (i-1,j-2 ) tới (i,j) hướng đi chéo mở rộng (bỏ qua một frame mẫu chuẩn, độ nghiêng chéo
là 2)
- (i-1,j-1) tới (i,j) hướng đi chéo chuẩn
- (i-1,j) tới (i,j) hướng đi ngang (lặp lại một frame ở mẫu chuẩn, độ nghiêng 0)
thì chúng ta giả sử rằng mỗi frame của mẫu nhận dạng được sử dụng một và chỉ một lần. Điều
đó có nghĩa rằng chúng ta có thể bỏ qua không cần đến sự chuẩn hóa độ dài mẫu và nó không
đòi hỏi cộng hai lần khoảng cách cục bộ vào các hướng đi chéo chuẩn (độ nghiêng 1). Cách
tiếp cận này được gọi là Quy hoạch động phản đối xứng (asymmetric dynamic programming).
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 49
Mặc dù vậy chúng ta cần lưu ý là sẽ có những trường hợp đặc biệt xẩy ra. Hãy xem xét
đường đi xuất phát từ ô (0,0). Do đường đi sẽ phải tới cột 1 nên các hàng 1,2,... ở cột 0 sẽ trở
nên vô nghĩa bởi vì chúng chắc chắn sẽ không được đi qua. Hình dưới minh họa cho trường
hợp đặc biệt.
j
Hình 3.19: Đường đi qua vùng hợp lệ
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 50
S2
a23
a12
a11 S3
a31
a14 a33
S1
a15 a43
a53
S4
a54
S5 a44
a55
Hình 2.3. Xích Markov với năm trạng thái S1, S2, ..., S5 và
các xác suất chuyển trạng thái.
Hình 2.3 cho ta thấy một ví dụ về một mô hình xích Markov rời rạc và thuần nhất, trong đó
hệ có thể ở một trong năm trạng thái S1, S2, ..., SN (trong ví dụ trên N=5). Tại mỗi thời điểm
t=0,1,2,... hệ chuyển trạng thái theo xác suất chuyển trạng thái aij tương ứng với mỗi trạng thái.
aij P( qt 1 S j | qt Si )
N
j 1
aij 1; i 1, N
aij 0; i, j 1, N
Ngoài ra ta định nghĩa xác suất trạng thái khởi đầu (initial state distribution) = { 1, 2, ...,
N}, trong đó i là xác suất để trạng thái i được chọn tại thời điểm khởi đầu t=1:
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 51
i=P(q1 =Si).
N
i 1 i 1
i 0; i 1, N
Quá trình Markov miêu tả ở trên được gọi là một mô hình Markov quan sát được
(observable Markov model). Đầu ra của quá trình là một tập các trạng thái tại các thời điểm rời
rạc liên tiếp nhau, trong đó mỗi trạng thái tương ứng với một sự kiện vật lý có thể quan sát
được (observation event).
Ví dụ : Ta xét một mô hình Markov ba trạng thái miêu tả thời tiết: S1, S2, S3 . Trong một
ngày thời tiết có thể là một trong ba trạng thái :
S1: mưa
S2: mây
S3: nắng
ma trận xác suất chuyển là
0.4 0.3 0.3
A= {aij} = 0.2 0.6 0.2
0.1 0.1 0.8
Giả thiết là thời tiết tại ngày t=1 là nắng. Ta sẽ tìm xác suất để trong 5 ngày liên tiếp có thời
tiết như sau : nắng, nắng, mưa, mưa, mây. Tức là ta có một dãy các quan sát (observation) O=
S3, S3, S1, S1, S2, tương ứng với các thời điểm t=1,2,3,4,5
P(O|Mô hình) = P(S3, S3, S1, S1, S2 | Mô hình)
= P(S3).P(S3|S3).P(S1|S3).P(S1|S1). P(S2|S1)
= 3.a33.a33.a31.a11.a12
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 52
- A = {aij}, xác suất chuyển trạng thái (state transition probability distribution). Trong đó aij
là xác suất để trạng thái j xuất hiện tại thời điểm t+1 khi trạng thái i đã xuất hiện tại thời
điểm t .
aij = P(qt+1 = Sj | qt = Si )
N
j 1
aij 1; i 1, N
aij 0; i, j 1, N
- B={bj(k)} xác suất phát xạ quan sát trong mỗi trạng thái (observation symbol probability
distribution in state). bj(k) là xác suất của quan sát vk tại trạng thái j tại thời điểm t.
bj(k) = P(vk tại thời điểm t | qt = Sj), (2.1)
M
k 1
b j (k ) 1; j 1, N
b j (k ) 0; j 1, N ; k 1, M
- = { 1, 2, ..., N} xác suất trạng thái khởi đầu (initial state distribution). i là xác suất để
trạng thái i được chọn tại thời điểm khởi đầu t=1:
i=P(q1=Si)
N
i 1 i 1
i 0; i 1, N
Với các giá trị thích hợp A, B, , M, N, một mô hình Markov ẩn được dùng để sinh ra
một dãy các quan sát:
O= {O1, O2, O3, ...}
Trong đó Oi lấy một trong các giá trị trong V. Hoạt động của HMM được mô tả như sau:
o Chọn một trạng thái khởi đầu q1 tương ứng với xác suất trạng thái khởi đầu .
o Gán t=1.
o Chọn Oi = vk tương ứng với xác suất quan sát tại trạng thái Si: bi(k).
o Chuyển sang trạng thái mới qt+1 = Sj tương ứng với xác suất chuyển trạng thái aij.
o Gán t=t+1 và quay lại lại bước 3) nếu t<T, nếu không kết thúc.
Người ta thường dùng bộ ba =(A, B, ) được coi là bộ ký pháp gọn để biểu diễn một mô
hình Markov ẩn. A, B và được gọi là các tham số (parameters) của mô hình .
a22 a33 a44 a55
a24 a35
o1 o2 o3 o4 o5 o6
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 53
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 54
Mặt khác ta xác suất của dãy trạng thái q đối với mô hình là :
Xác suất của dãy quan sát O đối với mô hình sẽ là tổng của tất cả các xác suất dãy quan
sát O đối với mô hình với mọi dãy dãy trạng thái q có thể có :
P(O | ) P(O, q ) b (O1 )aq1q2 bq2 (O2 )...aqT 1qT bqT (OT )
q Q
q1 q1
(2.2)
Độ phức tạp tính toán của công thức (2.2) là 2T. NT , bởi vì tại mỗi thời điểm t, có N khả
năng chuyển trạng thái, trong mỗi trạng thái có (2T-1).NT phép tính nhân, NT -1 phép tính cộng.
Trong thực tế công thức này không thể thực hiện được do độ phức tạp quá lớn. Để khắc phục
vấn đề này thuật toán tiến-lùi (forward-backward algorithms) được dùng để tính xác suất dãy
quan sát O đối với mô hình .
Ta định nghĩa biến tiến t (i) forward là xác suất của dãy quan sát O tới thời điểm t: O= O1,
O2, ..., Ot tại trạng thái Si được sinh bởi mô hình .
t (i)=P(O1, O2, ..., Ot, qt =S i )
với giá trị khởi tạo 1(i)= i bi(O1), 1 i N
Các t (i) được tính bằng thuật toán đệ qui được miêu tả như sau:
1) Khởi tạo
1 (i)= i bi(O1) 1 i N
2) Tính các t+1 (j) bằng phương pháp đệ qui
N
t+1 (j) = t (i)aij b j (Ot 1 ) (2.3)
i 1
1 t T 1, 1 j N
3) Kết thúc
N
P(O )= T (i )
i 1
Bước 1) khởi tạo các 1 (i) tương ứng với các trạng thái i khác nhau. Tại bước 2 các t+1(j)
được tính theo phương pháp đệ quy dựa vào các t(j) được tính trước đó. Hình 2.5 miêu tả các
phép toán cần thiết để tính các t(j). Trạng thái của mô hình tại thời điểm t+1 là Sj và có tất cả
N khả năng để dẫn tới trạng thái Sj từ các trạng thái Si với xác suất là t (i). Xác suất này nhân
với xác suất chuyển trạng thái aij sẽ cho ta xác suất mô hình ở trạng thái Sj tại thời điểm t+1 với
điều kiện mô hình ở trạng thái Si tại thời điểm t. Tổng các xác suất này với các i từ 1 đến N cho
ta xác suất để mô hình ở trạng Sj tại thời điểm t+1, xác suất này nhân với xác suất bj(Ot+1) sẽ
cho ta xác suất dãy quan sát O tới thời điểm t +1 ở trạng thái Sj và đó chính là t+1(j).
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 55
Thuật toán quy nạp sẽ dừng ở bước 3) khi mà t =T. Khi đó tổng của các t(i) với i từ 1 đến
N sẽ cho ta xác suất của dãy quan sát O đối với mô hình : P(O ).
Độ phức tạp tính toán với cách tính theo các biến forward t(i) là N2T , thấp hơn so với độ
phức tạp 2T. NT của bước trước.
S1 a1j
S2 a2j
Sj
aNj
S3
t t +1
(i)
t t+1
(j)
Hình 2.5. Miêu tả các dãy phép toán được thực hiện để tính biến t (i).
Biến lùi (backward) t(j) được định nghĩa là xác suất của dãy O từ thời điểm t+1 đến T : O=
Ot+1, Ot+2, ..., OT, với điều kiện là mô hình ở trạng thái Si tại thời điểm t .
t(i) = P(Ot+1, Ot+2, ..., OT qt =Si, ), 1 t T
Thuật toán tính biến lùi t(i) cũng dựa trên phương pháp đệ qui giống như trường hợp của
biến tiến t (i):
1) Khởi tạo
T(i) = 1, 1 i N
2) Tính các t(j) bằng phương pháp đệ qui
N
t ( j) aij b j (Ot 1 ) t 1 ( j)
i 1
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 56
a i1
S1
a i2
S2
Si
a Nj
SN
t t+1
t(i) t+1(j)
Hình 2.6. Miêu tả các dãy phép toán được thực hiện để tính biến t(i)
Bằng thuật toán tiến-lùi ta có thể tính xác suất P(O ) như sau:
N N N
P(O )= T (i ) = i bi (O1 ) 1 (i ) t (i ) t (i )
i 1 i 1 i 1
b)Bài toán 2
Trong bài toán này, ta phải tìm dãy trạng thái q=(q1, q2, ..., qT) tối ưu tương ứng với một
dãy quan sát O=(O1, O2, ..., OT) và mô hình =(A, B, ) cho trước, để cho P(O, S ) là lớn
nhất.
Một phương pháp thông dụng hay được dùng để giải quyết bài toán này là dùng thuật toán
tìm kiếm Viterbi. Đây là thuật toán dựa trên phương pháp lập trình động (Dynamic Programing
Method) để tìm ra một dãy các trạng thái tối ưu duy nhất.
Thuật toán Viterbi:
Ta định nghĩa biến dt(i) = max P(q1, q2 ,..., qt i, O1, O2 ,..., Ot ) là biến có điểm cao nhất
q1 ,q2 ,... qt 1 ,
(best score) tại thời điểm t tương ứng với dãy trạng thái q1, q2, ..., qt-1, kết thúc tại trạng thái Si.
Các biến dt(i) được tính bằng phương pháp đệ qui dựa trên các tính toán trước đó
dt+1(i)= [max( t (i)aij ]b j (Ok )
1 i N
Để lưu vết các các trạng thái của dãy ta dùng mảng y t(i), khi thuật toán kết thúc các phần tử
trong mảng chính là các trạng thái của dãy q cần tìm. Sau đây chi tiết thuật toán Viterbi
1) Khởi tạo
dt(i) = ibi(O1), 1 i N
y1(i)=0
2) Tính toán đệ qui
(i) [max( t (i).aij ].b j (Ok )
t 1
1 i N , 2 t , 1 i N (2.4)
(i) arg max[ (i).aij ]
1
1 i N
t 1
2 t T, 1 i N
3) Kết thúc
P* max[ T (i)]
1 i N
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 57
và mô hình đã cho. Với định nghĩa trên, biến t(i) được biểu diễn thông qua hai biến tiến và
lùi như sau:
P(qt Si , O λ) αt (i)βt (i) αt (i)βt (i)
t(i)= (2.5)
P(O λ) P(O λ) N
αt (i)βt (i)
i 1
Trong công thức trên t (i) là xác suất của dãy qua sát O1, O2, ..., Ot và t(i) là xác suất của
dãy Ot+1, Ot+2, ..., OT với mô hình ở trạng thái Si vào thời điểm t.
Từ công thức (2.5) ta rút ra được
N
γ t (i ) 1
i 1
Với t(i) ta có thể tìm được tại thời điểm t xác suất lớn nhất của dãy O1, O2, ..., Ot là :
qt=argmax[ t(i)], 1 i N, 1 t T
Ta định nghĩa biến t(i, j) là xác suất mô hình ở trạng thái Si tại thời điểm t và ở trạng thái
Sj tại thời điểm t+1 với mô hình và dãy quan sát O cho trước.
t(i, j) = P(qt = Si, qt+1 = Sj O, )
Hình 2.7 miêu tả mối quan hệ chuyển dịch giữa các trạng thái Si và Sj. Từ định nghĩa các
biến tiến lùi t(i) và t(i) ta có
P(qt Si , qt 1 S j , O λ) t (i)aij b j (Ot 1 ) t 1 ( j)
t(i, j) = =
P(O λ) P(O )
t (i)aij b j (Ot 1 ) t 1 ( j)
t(i, j) = N N
t (i)aij b j (Ot 1 ) t 1 ( j)
i 1 j 1
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 58
N
t(i)= t (i, j )
j 1
Si Sj
(i)
t t+1(j)
Hình 2.7. Miêu tả các phép tính cần thiết để tính t(i, j).
Từ định nghĩa công thức trên ta có thể nhận thấy:
T 1
t 1
ξ t (i, j ) = là khả năng để mô hình chuyển trạng thái từ Si sang Sj
T 1
t 1
γ t (i ) = là khả năng để mô hình chuyển trạng thái từ Si
Từ các quan sát trên ta có tập các công thức dùng để điều chỉnh (re-estimation) các tham số
của mô hình Markov ẩn như sau :
πi khả năng mô hình ở trạng thái Si tại thời điểm (t=1) γ 1 (i ) (2.6)
a ij khả năng chuyển từ trạng thái Si sang trạng thái Sj / khả năng chuyển từ trạng thái Si
T 1
t 1 t
ξ (i, j )
T 1
(2.7)
t
γ (i)
1 t
b j (v k ) khả năng ở tại trạng thái Si với ký hiệu quan sát vk / khả năng ở tại trạng thái Si
T
t 1,Ot vk
γt ( j )
T
(2.8)
t
γ ( j)
1 t
Với một mô hình =(A, B, ) đầu tiên chúng ta dùng các công thức (2.6), (2.7), (2.8) để
tính toán bộ tham số mới λ ( A, B , π) . Người ta đã chứng minh được rằng:
Hoặc là mô hình khởi điểm được định nghĩa chính xác là mô hình hội tụ và do đó = λ .
Hoặc là mô hình mới có P(O λ ) > P(O )
Dựa vào chứng minh này chúng ta dùng λ thay thế cho là lặp lại các tính toán (2.6), (2.7)
, (2.8) ta sẽ cải thiện được xác suất P(O ) cho tới thời điểm thuật toán hội tụ.
Trong quá trình tính toán, sau mỗi lần lặp các biểu thức sau đây luôn được thoả mãn :
N
i 1
i 1
N
a ij 1 1 i N
j 1
N
b j (k ) 1 1 j N
k 1
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 59
Trong đó K là số thành phần trộn (mixture) tại trạng thái j, cjk là trọng số của thành phần thứ
k và N (.; ; ) là hàm mật độ xác suất Gauss. Trong quá trình huấn luyện việc hiệu chỉnh các
xác suất hàm b() được thay bằng hiệu chỉnh các tham số , . Nhược điểm của phương pháp
này là mỗi trạng thái đều có các tham số của riêng chúng, do đó số lượng các tham số là rất lớn
và do vậy không thể tránh khỏi các trường hợp không đủ dữ liệu huấn luyện cho các trạng thái.
Ngoài ra mô hình liên tục sẽ có thời gian tính toán khá lâu.
c) Mô hình HMM bán liên tục
Mô hình HMM bán liên tục (semi-continuous) là mô hình kết hợp giữa hai mô hình trên.
Giống như trong mô hình rời rạc, trong mô hình bán liên tục cũng có một sách mã miêu tả các
vùng được dùng chung cho tất cả các trạng thái. Tuy nhiên thay vì biểu diễn các vùng bằng một
trọng tâm (centroid), trong đó các vector lân cận sẽ được nhóm vào làm một, các vùng được
biểu diễn bởi các hàm mật độ xác suất liên tục Gauss trong vùng không gian lân cận để tránh
các lỗi của lượng tử hoá. Như vậy
L
bj ( y) c jk N ( y; jk ; jk )
k 1
Trong đó L là kích thước của sách mã. Trong quá trình huấn luyện giống như trong mô hình
liên tục các tham số Gauss được tính toán. Việc dùng mô hình này sẽ giúp cải thiện thời gian
tính toán của mô hình liên tục.
Trong khi cả ba mô hình đều được sử dụng rộng rãi trong các hệ thống nhận dạng, mô hình
liên tục cho thấy khả năng nhận dạng tốt nhất mặc dù tốc độ hoạt động của hệ thống này chậm
hơn các hệ thống khác [23].
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 60
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 61
...
trọng số
wij
...
Hàm (.) hay được sử dụng trong nhận dạng tiếng nói là hàm sigmoid và hàm softmax.
Gọi tập dữ liệu mẫu dùng để huấn luyện là (xk, yk ). Với tập dữ liệu mẫu, mạng ANN với
các trọng số, bài toán huấn luyện mạng được đặt ra như là điều chỉnh các trọng số sao cho với
mỗi vector giá trị vào xk , mạng cho một kết quả tương ứng yˆ k , gần nhất với kết quả mong
muốn y k theo một tiêu chuẩn nào đó. Lựa chọn thông dụng cho một hàm tiêu chuẩn là hàm
bình phương tối thiểu (least square criterion).
K no
1
E ( yi ,k yˆi ,k ) 2 (2.10)
2 k 1 i 1
Trong đó yˆi ,k là giá trị output của nút ra thứ i tương ứng với vector giá trị vào xk, yi ,k là giá
trị mong muốn tương ứng của tập dữ liệu huấn luyện. K là số lượng các mẫu trong tập huấn
luyện. Giá trị 1/2 trong công thức với mục đích thuận tiện cho tính toán, khi lấy đạo hàm vế
phải của (2.10). Quá trình huấn luyện được thực hiện với mục đích giảm giá trị hàm lỗi E. Một
phương pháp thông dụng để giảm giá trị hàm lỗi E được áp dụng trong hầu hết các mạng là
phương pháp giảm gradient.
Phương pháp giảm gradient là một kỹ thuật tối ưu hoá đảm bảo hội tụ về một giá trị cực
tiểu cục bộ. Phương pháp được tiến hành theo nhiều vòng lặp, mỗi vòng lặp các giá trị trọng số
được điều chỉnh theo hướng ngược với giá trị gradient. Gọi w là giá trị trọng số tại một bước
của thuật toán, giá trị trọng số mới được tính toán cho bước tiếp theo:
w w w
trong đó w biểu diễn sự thay đổi của trọng số, tỷ lệ với giá trị w C , là giá trị lỗi vector
gradient được tính toán theo trọng số w
w w C
Các giá trị trọng số được biểu diễn bằng công thức:
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 62
C
wij
wij
Trong đó được gọi là hệ số học (learning rate). Hệ số học quyết định tốc độ hội tụ của
mạng. Nếu hệ số học nhỏ tốc độ hội tụ sẽ chậm, ngược lại nếu hệ số học lớn thì tốc độ hội tụ sẽ
nhanh hơn. Tuy nhiên nếu hệ số học quá lớn sẽ làm thuật toán khó tiếp cận gần đến điểm cực
tiểu. Giá trị tốt nhất của hệ số học phải đảm bảo để mạng hội tụ nhanh, mặt khác đảm bảo để
giá trị hàm lỗi E là nhỏ nhất.
Trong quá trình huấn luyện, bước lặp đầu tiên sẽ bắt đầu với các trọng số được khởi tạo
trước. Sau đó qua các bước lặp mạng sẽ điều chỉnh các trọng số theo hướng giảm gradient để
cuối cùng hội tụ tại một điểm cực tiểu địa phương (local minimum). Về mặt lý thuyết, quá trình
học có thể bị kẹt (stuck) tại một giá trị cực tiểu địa phương mà không thể tới được giá trị cực
tiểu toàn cục (global). Để giải quyết vấn đề này, mạng có thể được huấn luyện vài lần với tập
các trọng số được khởi tạo khác nhau.
Quá trình huấn luyện thường được tiến hành với tất cả tập dữ liệu mẫu tại mỗi bước lặp
(được gọi là tính toán theo lô, batch mode), quá trình huấn luyện thường mất rất nhiều thời
gian. Trong thực tế thay cho tính toán giá trị gradient (2.10) của toàn bộ dữ liệu mẫu, giá trị
gradient được tính toán trực tiếp (online) với mỗi một cặp dữ liệu mẫu (xk, yk ).
no
1
E ( yi yˆ i ) 2 (2.11)
2 i 1
Các trọng số được cập nhật vẫn theo các công thức như đã trình bầy ở trên. Phương pháp
này được gọi là giảm gradient ngẫu nhiên (stochastic gradient descent) và đã được chứng minh
là hiệu quả hơn nếu số mẫu huấn luyện là lớn (khoảng vài trăm trở lên).
Từ phương trình (2.11) lấy đạo hàm riêng theo từng trọng số ta có:
C 1 no ( yk yˆ k )2
wij 2k1 wij
1 ( yi yˆi ) 2 yˆi
( yi yˆi ) (2.12)
2 wij wij
Từ phương trình (2.9) ta có
ni
wil xl
yˆi l 1
wij wij
xi (2.13)
Từ hai phương trình (2.12) và (2.13) ta có
wij ( yi yˆi ) x j (2.14)
Phương trình (2.14) cho thấy sự biến thiên của trọng số của mạng sau khi có một giá trị vào
mạng, giá trị này tỷ lệ với hiệu số giữa giá trị tại các nút output và giá trị ra mong muốn nhận
được.
Ta định nghĩa đại lượng
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 63
i yi yˆi
Khi đó phương trình (2.14) được viết lại là
wij xj (2.15)
Phương trình (2.15) được gọi là luật delta (delta rule).
3.4.3. Mạng Perceptron đa lớp MLP
Một trong những cấu trúc thông dụng nhất của mạng neuron là mạng Perceptron đa lớp
MLP (MultiLayer Perceptron). Mạng MLP gồm có một lớp vào (input), một lớp ra (output) và
một hoặc nhiều lớp ẩn (hidden). Mạng MLP cũng có thể được hiểu là mạng Perceptron một lớp
được bổ sung thêm một hoặc nhiều lớp ẩn. Một vector đầu vào sẽ được đưa vào lớp vào (input)
của mạng và sau đó các tính toán được thực hiện lan truyền thẳng (feed-forward) từ lớp vào
input sang các lớp ẩn và kết thúc ở lớp ra output. Hàm kích hoạt kết hợp với các nút ẩn hay các
nút output có thể là hàm tuyến tính hay phi tuyến và có thể khác nhau giữa các nút. Hình 2.9
miêu tả một ví dụ mạng Perceptron đa lớp.
Quá trình huấn luyện mạng MLP là quá trình học có giám sát, các trọng số giữa các nút của
hai lớp kế tiếp được điều chỉnh theo một hàm tiêu chuẩn nào đó (criterion function). Hàm tiểu
chuẩn thông dụng hay được dùng giống như mạng Perceptron đơn lớp là hàm tổng bình
phương hiệu số giữa các giá trị output và các giá trị mong muốn của các nút ra.
...
trọng số
wij
...
trọng số
vij
...
x1 x2 xni
Hình 2.9. Mạng neuron Perceptron đa lớp MLP
Giả thiết rằng mạng MLP gồm có ba lớp, trong đó có một lớp ẩn như miêu tả trong Hình
2.9. Gọi hàm kích hoạt đối với các nút ẩn là ( x) , hàm kích hoạt đối với nút ra là ( x) , ta có
trọng số wij giữa nút ẩn j và nút ra i được điều chỉnh theo hàm lỗi E như sau:
no
1
E ( yn yˆ n ) 2
2 n 1
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 64
E
wij
wij
Ta có thể tính
E 1 no ( yn yˆ n )2
wij 2n1 wij
1 ( yi yˆi ) 2
2 wij
yi
( yi yˆi ) (2.16)
wij
Trong đó ta có thể tính:
yi ( yi )
wij wij
( yi ) yi
yi wij
nh
wil yˆl
l 1
i ( yi )
wij
i ( yi ) yˆ j (2.17)
Từ hai phương trình (2.16) và (2.17) ta có
wij ( yi yˆi ) i ( yi ) yˆ j
Đặt:
i
o
( yi yˆi ) i ( yi )
(2.18)
Cuối cùng ta có công thức điều chỉnh trọng số tương tự như trường hợp của mạng Perceptron
đơn lớp như sau:
wij i
o
yˆ j (2.19)
Bây giờ ta xem xét trường hợp của trọng số v jk giữa nút vào k và nút ẩn j được điều chỉnh
theo hàm lỗi E:
no
1
E ( yn yˆ n ) 2
2 n 1
E
v jk (2.20)
v jk
Ta có thể tính
E 1 no ( yn yˆ n )2
v jk 2n1 v jk
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 65
no
yˆ n
( yn yˆ n ) (2.21)
n 1 v jk
Ta có thể thấy từ phương trình (2.21) là sự thay đổi của trọng số v jk liên quan đến toàn bộ các
nút ra output của mạng.
yˆ n ( yn )
v jk v jk
( yn ) yn
yn v jk
yn
( yn ) (2.22)
v jk
Trong đó:
nh
wnl hˆl
yn l 1
v jk v jk
nh
hˆl
wnl
l 1 v jk
hˆ j
wnj (2.23)
v jk
Trong đó hˆ j là giá trị đầu ra của nút ẩn thứ j. Ta tiếp tục tính:
hˆ j (h j )
v jk v jk
(h j ) h j
hj v jk
ni
v jm xm
m 1
j (yj )
v jk
j (hj ) xk (2.24)
Từ các phương trình (2.20), (2.21), (2.22) và (2.24) ta có
no
v jk ( yn yˆ n ) n ( yn ) wnj j (h j ) xk
n 1
no
wnj ( yn yˆ n ) n ( yn ) j (h j ) xk (2.25)
n 1
no
o
( wnj n ) j ( h j ) xk
n 1
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 66
Trong đó o
n được định nghĩa bởi (2.18)
no
Đặt h
j ( wnj o
n ) j ( h j ) ta sẽ có công thức cập nhật trọng số tương tự như công thức (2.19):
n 1
h
v jk j k x (2.26)
Các phương trình (2.19) và (2.26) tạo thành một tập phương trình được gọi là qui tắc delta
tổng quát (Generalized Delta Rule)
Từ công thức (2.25) cho ta thấy trong quá trình học, giá trị hàm lỗi là bình phương hiệu số
giữa giá trị output của mạng và giá trị mong muốn của tập mẫu được tính toán tạo thành giá trị
delta của lớp output, giá trị này được dùng để hiệu chỉnh các trọng số liên kết với lớp output.
Sau đó giá trị delta này lan truyền ngược về phía lớp ẩn cho phép tính toán các trọng số liên kết
với lớp ẩn theo phương trình (2.25). Chính vì vậy quá trình này được gọi là học lan truyền
ngược sai số (Error Back Propagation) .
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 67
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 68
thị một khoảng yên lặng, sp là đơn vị nhận dạng biểu thị một ngắt giọng (short pause). Cả hai
đơn vị đều biểu thị một khoảng yên lặng, sil được khai báo ở đầu và cuối mỗi phát âm, sp được
đặt ở giữa hai từ trong một câu. Mô hình Markov ẩn của sp được xây dựng dựa trên mô hình
Markov ẩn của sil. Khác nhau cơ bản của hai đơn vị nhận dạng là vai trò của nó trong xây dựng
ngữ cảnh cho các âm vị. Ví dụ về một tệp định nghĩa từ điển như sau:
soo s oo sp
soo s oo sil
ddieen dd ie n sp
ddieen dd ie n sil
thoai th w aw i sp
thoai th w aw i sil
quen k w e n sp
quen k w e n sil
....
c) Cơ sở dữ liệu
Cơ sở dữ liệu bao gồm các tệp âm thanh lưu ở dạng wav, và các tệp văn bản chứa phiên âm
chính tả của các tệp âm thanh. Mỗi tệp âm thanh có một tệp văn bản tương ứng chứa phiên âm
chính tả của phát âm. Các phiên âm ở mức âm vị được lưu trong các tệp có đuôi .phn. Các
phiên âm ở mức âm vị bao gồm nhiều dòng, mỗi dòng chứa tên âm vị cùng với nhãn thời gian
của âm vị đó trong tệp âm thanh.
d) Trích chọn các đặc điểm
Công việc tính toán trích chọn các đặc tính phổ của các tệp âm thanh được thực hiện bởi
công cụ Hcopy. HTK hỗ trợ tính toán nhiều loại tham số khác nhau, trong đó có các loại thông
dụng là MFCC và PLP. Các hệ số MFCC và PLP được tính toán và lưu vào một tệp tương ứng
với tệp âm thanh với phần đuôi là .mfc. Các giá trị delta của các hệ số trên được tính toán trong
quá trình huấn luyện và nhận dạng (on-the-fly). Hcopy sẽ đọc một tệp cấu hình, trong đó khai
báo các tham số dùng trong quá trình tính toán các giá trị đặc tính phổ của tệp âm thanh. Ví dụ
tệp cấu hình như sau:
SOURCEKIND = WAVEFORM
SOURCEFORMAT = WAV
TARKETRATE = 100000
ENORMALISE = T
NUMCEPS = 12
CELPLIFTER = 22
PREEMCOEF = 0.970000
USEPOWER = T
USEHAMMING = T
WINDOWSIZE = 250000.000000
SAVEWITHCRC = T
SAVECOMPRESSED = T
TARGETRATE = 100000.000000
TARGETKIND = PLP_E_D_A_Z
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 69
Trong khai báo trên phương pháp trích trọn đặc điểm PLP được áp dụng, kích thước cửa sổ
Hamming là 25sm, số mạch lọc là 22, hệ số dùng để nhấn mạnh (preemphasis) là 0.97, các
tham số được dùng bao gồm 12 hệ số PLP cộng với giá trị năng lượng. Giá trị delta và
delta+delta được sử dụng tạo thành vector 39 đặc tính. Phương pháp CMS được áp dụng để lọc
bỏ nhiễu.
e) Khai báo cấu trúc mô hình Markov
Mỗi mô hình Markov chứa nhiều trạng thái, trong đó có một trạng thái khởi đầu và một
trạng thái kết thúc là các trạng thái đặc biệt không phát sinh quan sát nonemitting), nghĩa là
không có xác suất phát xạ quan sát bj(ot) kết hợp với các trạng thái này.
Đối với các trạng thái không phải là trạng thái đầu và trạng thái cuối, xác suất phát xạ quan
sát là một hàm mật độ xác suất được xây dựng trên cơ sở các hàm mật độ xác suất Gaussian.
Hàm này bao gồm một hoặc nhiều các dòng (stream), mỗi dòng có thể có một hoặc nhiều thành
phần trộn bao gồm các hàm mật độ xác suất Gaussian. Cấu trúc nhiều dòng cho phép hệ thống
mô hình hoá nhiều dòng thông tin khác nhau. Thông thường số lượng dòng tối đa là 4 dòng.
Công thức tổng quát của hàm phát xạ quan sát ot tại trạng thái j được biểu diễn như sau:
Cấu trúc và các tham số của mô hình Markov ẩn được định nghĩa trong một tệp văn bản. Ví
dụ về một tệp định nghĩa một mô hình Markov ẩn có năm trạng thái, trong đó có một trạng thái
khởi đầu và một trạng thái kết thúc như sau:
1. ~o <VecSize> 39 <PLP_E_D_A_Z>
2. ~h "proto"
3. <BeginHMM>
4. <NumStates> 5
5. <State> 2
6. <Mean> 39
7. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
8. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
9. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
10. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
11. <Variance> 39
12. 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
13. 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
14. 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
15. 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
16. <State> 3
17. <Mean> 39
18. ...
19. <TransP> 5
20. 0.0 1.0 0.0 0.0 0.0
21. 0.0 0.6 0.4 0.0 0.0
22. 0.0 0.0 0.6 0.4 0.0
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 70
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 71
giống nhau likelihook của dữ liệu huấn luyện với mô hình sẽ được tính toán và quá trình sẽ tiếp
tục lặp lại cho đến khi việc tăng xác suất tới gần điểm hội tụ.
Tuy nhiên ở vòng lặp đầu tiên, thuật toán Viterbi không được dùng để phân đoạn bởi vì các
tham số của mô hình lúc này mới chỉ là các tham số được khai báo bằng tay chưa đủ chính xác
để tiến hành phân đoạn. Để giải quyết trường hợp này các dãy vector phát âm được chia thành
các đoạn thời gian bằng nhau và gán cho các đoạn này các trạng thái tương ứng với mô hình.
Cách làm này chỉ áp dụng được với mô hình Markov ẩn có cấu trúc trái-phải (left-right). Đối
với mô hình Markov ẩn có cấu trúc ergodic, Hinit không áp dụng được.
Nếu trạng thái của mô hình có nhiều thành phần trộn, vector huấn luyện sẽ được kết hợp
với thành phần có xác suất giống nhau likelihood lớn nhất. Số lượng vector kết hợp với mỗi
thành phần trộn sau này sẽ được dùng để tính toán giá trị trọng số của thành phần trộn. Trong
bước đầu khi phát âm được phân đoạn thành các đoạn thời gian bằng nhau, thuật toán K-mean
được áp dụng để chia các vector thành các nhóm tương ứng với mỗi thành phần trộn trong mỗi
trạng thái.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 72
Giai đoạn hai, mô hình của đơn vị nhận dạng sil được điều chỉnh bằng bổ sung them hai
cung chuyển trạng thái từ trạng thái 2 sang trạng thái 4 và ngược lại. Mục đích của việc làm
này là nhằm cho phép mô hình có thể chịu được các nhiễu của dữ liệu huấn luyện. Trong giai
đoạn này, mô hình sp mới được tạo gồm một trạng thái phát xạ quan sát và trạng thái này được
buộc (tied) với trạng thái giữa của mô hình sil. Cấu trúc của hai mô hình sil và sp được miêu tả
trong Hình 3.4.
Công việc tạo chuyển dịch trạng thái mới của mô hình sil, tạo mô hình sp được thực hiện
bởi công cụ Hhed. Các bước huấn luyện nhúng được thực hiện với công cụ Herest.
k) Huấn luyện nhúng bằng Herest.
Đây là công cụ huấn luyện chính thực hiện huấn luyện bằng phương thức nhúng (embedded
trainning), tính toán và cập nhật các tham số của nhiều mô hình cùng một lúc. Đây là công cụ
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 73
quan trọng nhất và được coi là trái tim của hệ thống huấn luyện.
Với mỗi một phát âm, Herest sẽ tìm tệp chứa phiên âm chính tả của phát âm đó, sau đó nó
sẽ tra cứu trong từ điển phát âm của mỗi từ để tìm ra được dãy các âm vị tương ứng với phát
âm. Một mô hình Markov ẩn lớn sẽ được xây dựng bằng cách nối các mô hình Markov ẩn của
các âm vị vào với nhau. Sau đó thuật toán huấn luyện forward-backward sẽ được áp dụng với
mô hình Markov ẩn này. Herest sẽ kết thúc khi tất cả các phát âm trong tập dữ liệu huấn luyện
được xử lý.
l) Gán nhãn cưỡng bức dữ liệu huấn luyện
Việc huấn luyện các mô hình Markov ẩn của các đơn vị nhận dạng độc lập ngữ cảnh kết
thúc bởi huấn luyện dữ liệu được gán nhãn cưỡng bức (forced-alignment). Trong từ điển, một
từ có thể được phiên âm thành các âm vị theo nhiều cách khác nhau. Trong các bước huấn
luyện trước, hệ thống lấy phiên âm đầu tiên gặp trong từ điển của một từ để phân tích một phát
âm thành dãy các âm vị. Tại bước này, sau khi các mô hình đã được huấn luyện, các tham số đã
được tính toán, chúng được sử dụng để gán nhãn cưỡng bức lại dữ liệu huấn luyện. Đây là quá
trình phân tích một phát âm là các từ thành dãy các âm vị phù hợp nhất, trong đó các phiên âm
khác nhau của một từ sẽ được chọn để tìm ra phiên âm thích hợp. Quá trình gán nhãn cưỡng
bức thực chất gần giống với quá trình nhận dạng, được thực hiện bởi thuật toán Viterbi.
Sau khi dữ liệu huấn luyện đã được gán nhãn cưỡng bức, thủ tục Herest lại được dùng để
huấn luyện lại các mô hình trên cơ sở các dãy phiên âm tìm được của quá trình gán nhãn cưỡng
bức.
m) Huấn luyện các âm ba
Sau khi quá trình huấn luyện các đơn vị nhận dạng độc lập ngữ cảnh kết thúc. Hệ thống đã
sẵn sàng để tiến hành nhận dạng. Tuy nhiên, một âm vị luôn chịu ảnh hưởng của ngữ cảnh
xung quanh và hệ thống nhận dạng chỉ làm việc tốt nếu như chúng được huấn luyện bởi các
đơn vị nhận dạng phụ thuộc ngữ cảnh. Trong HTK đơn vị phụ thuộc ngữ cảnh được gọi là các
âm ba (triphone) để phân biệt với các âm đơn, đơn vị độc lập ngữ cảnh.
Tạo các âm ba từ các âm đơn
Âm ba (triphone) là đơn vị nhận dạng âm vị phụ thuộc ngữ cảnh được ký hiệu là ab+
c, trong đó /b/ là âm đơn, /a/ là âm vị bên trái âm vị /b/ và /c/ là âm vị bên phải âm vị/b/.
Các âm ba được tạo bằng cách lấy các âm đơn tương ứng, bổ xung thêm ngữ cảnh trái và
ngữ cảnh phải. Các đơn vị nhận dạng sil và sp không được chuyển đổi sang âm ba vì chúng chỉ
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 74
là một khoảng yên lặng, không phụ thuộc ngữ cảnh xung quanh. Có hai cách sinh ra các âm ba:
âm ba với ngữ cảnh giới nội từ (word internal) và âm ba với ngữ cảnh liên từ (cross-word).
Trong trường hợp đầu các âm vị chịu ảnh hưởng của ngữ cảnh trong một từ, các từ được coi
là cách nhau một khoảng yên lặng và các âm vị của các từ khác không ảnh hưởng đến nhau.
Các âm vị đầu và cuối một từ trong thực tế là các âm hai (biphone) thay vì âm ba, chỉ có âm vị
ở giữa từ mới là âm ba. Ví dụ sau đây là một dãy các âm đơn của một phát âm và các âm ba
tương ứng:
Âm đơn: sil ea ngz sp n o i sp t ie ngz sil v ietc sp h a sp sil
Âm ba: sil ea+ngz ea-ngz sp n+o n-o+i o-i sp t+ie t-ie+ngz ie-ngz sp
v+ietc v-ietc sp h+a h-a sp sil
Trong trường hợp thứ hai, các âm vị không những chịu ảnh hưởng của các âm vị trong từ
đó mà còn của các âm vị của các từ xung quanh. Có sự khác nhau giữa vai trò của đơn vị nhận
dạng sp và sil. Nếu như sự có mặt của sp không ảnh hưởng đến sự ảnh hưởng của ngữ cảnh đến
các âm ba, ngược lại âm vị sil được coi như là khoảng lặng chia tách ngữ cảnh và các âm vị
đứng cạnh sil thì sẽ không bị ảnh hưởng bởi ngữ cảnh.
Ví dụ sau đây là một dãy các âm đơn của một phát âm và các âm ba tương ứng:
Âm đơn: sil ea ngz sp n o i sp t ie ngz sil v ietc sp h a sp sil
Âm ba: sil sil-ea+ngz ea-ngz+n sp ngz-n+o n-o+i o-i+t sp i-t+ie t-ie+ngz
ie-ngz+sil sil sil-v+ietc v-ietc+h sp ietc-h+a h-a+sil sp sil
Việc chuyển đổi từ các âm đơn sang các âm ba được thực hiện bởi công cụ Hhed, như được
miêu tả trong Hình 3.6. Các tham số của các âm ba được sao chép từ các âm đơn tương ứng
bao gồm: các xác suất chuyển trạng thái aij, các tham số của hàm Gaussian của xác suất phát xạ
quan sát bj(ok).
Sau đó tệp phiên âm các âm đơn cũng được chuyển đổi sang tệp phiên âm các âm ba tương
ứng bằng công cụ Hled. Các âm ba sau đó được huấn luyện bằng công cụ huấn luyện nhúng
Herest. Các tham số của các âm ba được sao chép từ các âm đơn tương ứng sẽ được điều chỉnh
lại theo phiên âm của các âm ba tạo bởi Hled. Với các âm ba có cùng một âm đơn tương ứng,
trước khi được huấn luyện bởi Herest, các xác suất chuyển trạng thái aij được buộc vào nhau
(tied).
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 75
Điều này được thực hiện do xác suất chuyển trạng thái của một đơn vị nhận dạng ít ảnh
hưởng của ngữ cảnh xung quanh so với xác suất phát xạ quan sát. Trong quá trình huấn luyện
bởi Herest các xác suất chuyển trạng thái bị buộc vào nhau sẽ có cùng giá trị và được tính toán
cùng với nhau.
n) Buộc các âm ba
Các tham số có thể được buộc vào nhau. Khi một nhóm các tham số được buộc vào nhau,
các giá trị của các tham số này được dùng chung bởi tất cả các thành viên và được biểu diễn
bởi chung một macro trong tệp định nghĩa cấu hình của mô hình Markov ẩn. Trong quá trình
huấn luyện dữ liệu tương ứng với mỗi thành viên của một nhóm sẽ được dùng chung để tính
toán các tham số cho cả nhóm. Chính vì vậy việc buộc các tham số sẽ có ích với các mô hình
của các âm vị mà số lần xuất hiện của chúng trong tập dữ liệu không đủ. Khi đó việc buộc các
mô hình này với nhau sẽ cung cấp đủ dữ liệu để huấn luyện và làm quá trình huấn luyện trở nên
hiệu quả hơn. Trong hầu hết các hệ thống nhận dạng số lượng từ vựng lớn, phương pháp buộc
tham số đều được áp dụng hiệu quả.
Như đã trình bày ở phần trên, các mô hình của các âm ba triphone được tạo bằng cách sao
phép từ các mô hình của các âm đơn tương ứng. Sau đó các âm ba được huấn luyện lại bằng
Herest. Số lượng các âm ba được sinh từ các âm đơn là rất lớn (từ vài chục đến vài trăm âm ba
ứng với mỗi âm đơn), và do đó dữ liệu dùng để huấn luyện các âm ba cũng bị nhanh chóng
giảm. Một số âm ba sẽ không còn đủ dữ liệu dùng để huấn luyện. Một phương pháp khắc phục
vấn đề này là dùng phương pháp buộc. Thông thường các trạng thái ở giữa của các mô hình sẽ
được buộc vào nhau do các trạng thái giữa là trạng thái ít bị ảnh hưởng nhất của ngữ cảnh xung
quanh. Ví dụ câu lệnh để buộc các trạng thái này là:
TI "ieS3" {*-ie+*.state[3]}
TI "aS3" {*-a+*.state[3]}
Câu lệnh đầu buộc tất cả các trạng thái giữa (trạng thái 3, trong mô hình có 5 trạng thái) của
các âm ba được sao chép từ âm đơn là nguyên âm đôi /ie/. Câu lệnh sau buộc tất cả các trạng
thái giữa của các âm ba tương ứng với âm vị /a/.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 76
Tuy nhiên việc định nghĩa rõ ràng các trạng thái buộc trên không thường xuyên hiệu quả và
các trạng thái bên trái và bên phải vẫn thiếu dữ liệu để huấn luyện. Một giải pháp tốt hơn hay
được sử dụng đó là dùng phương pháp nhóm vùng (clustering). Có hai cơ chế được sử dụng: lái
dữ liệu (data driven) và cây quyết định (decision tree-based).
o) Lái dữ liệu
Thuật toán lái dữ liệu (data driven) được khởi động bằng cho tất cả các trạng thái, mỗi trạng
thái vào một nhóm (cluster). Sau đó cặp nhóm mà khi chúng kết hợp lại với nhau sẽ tạo thành
nhóm mới có kích thước nhỏ nhất sẽ được ghép lại với nhau. Quá trình này tiếp tục cho đến khi
kích thước của nhóm lớn nhất vượt qua ngưỡng được định nghĩa bởi câu lệnh TC, hoặc là tổng
số các nhóm nhỏ hơn ngưỡng được định nghĩa bởi câu lệnh NC. Kích thước của một nhóm
được hiểu là khoảng cách lớn nhất của một cặp trạng thái bất kỳ trong nhóm. Đối với trường
hợp hàm phát xạ quan sát của trạng thái là hàm Gaussian thì khoảng cách là khoảng cách
Euclidean giữa các tham số của các hàm mật độ xác suất.
Hình 3.8 miêu tả hoạt động của một trường hợp dùng lái dữ liệu như sau:
TC 100.0 “oa” {*-a+*.state[2]}
p) Phân nhóm bằng cây
Một trong các nhược điểm của phương pháp lái dữ liệu là không thực hiện được với các âm
ba mà không có dữ liệu huấn luyện. Khi xây dựng hệ thống nhận dạng với các âm ba giới nội từ,
vấn đề này có thể tránh được bởi lựa chọn dữ liệu huấn luyện để cho tất cả các âm ba đều có dữ
liệu huấn luyện tương ứng. Tuy nhiên nếu các âm ba liên từ được sử dụng thì số lượng các âm
ba sẽ rất lớn, có thể lên đến hàng chục nghìn âm ba, sự tồn tại của các âm ba mà không có dữ
liệu huấn luyện là điều khó tránh khỏi. Phương pháp dùng cây (tree-based) là giải pháp thay thế
và hay được sử dụng trong các hệ thống nhận dạng để khắc phục vấn đề này. Để miêu tả hoạt
động của thuật toán, ta sẽ xét một ví dụ:
1. RO 100.0 stats
2. TR 0
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 77
3. QS "L_Class_stop" {b-*,t-*,ch-*,tr-*,th-*,k-*,dd-*}
4. QS "R_Class_stop" {*+b,*+t,*+ch,*+tr,*+th,*+k,*+dd}
5. QS "L_Class_nasal" {n-*,m-*,ng-*,nh-*}
6. QS "R_Class_nasal" {*+n,*+m,*+ng,*+nh}
7. QS "L_Class_fricate" {h-*,s-*,kh-*,ph-*,v-*,x-*,g-*,r-*,dz-*}
8. QS "R_Class_fricate" {*+h,*+s,*+kh,*+ph,*+v,*+x,*+g,*+r,*+dz}
9. TR 2
10.
11. TB 350.0 "ST_b_2" {(b,*-b,*-b+*,b+*).state[2]}
12. TB 350.0 "ST_b_3" {(b,*-b,*-b+*,b+*).state[3]}
13. TB 350.0 "ST_b_4" {(b,*-b,*-b+*,b+*).state[4]}
14. TB 350.0 "ST_a_2" {(a,*-a,*-a+*,a+*).state[2]}
15. ....
16.
17. TR 1
18.
19. AU "fulllist"
20. CO "tiedlist"
21.
22. ST "trees"
Dòng 3 đến dòng 8 cho định nghĩa các câu hỏi, thức chất là định nghĩa các nhóm âm vị có
tính chất gần giống nhau dùng để phân lớp các âm ba. Các ngữ cảnh được phân biệt là ngữ
cảnh trái và ngữ cảnh phải tuỳ theo ảnh hưởng của nó đến các âm vị xung quanh. Từ dòng 11
đến dòng 15 là định nghĩa các nhóm âm ba bằng câu lệnh TB.
Câu lệnh này hoạt động như sau: đầu tiên nhóm các âm ba được định nghĩa bằng lệnh TB
tập hợp lại thành một cluster. Sau đó mỗi câu hỏi được dùng để chia cluster này làm hai phần.
Do việc phân chia này mà xác suất likelihood của dữ liệu huấn luyện sẽ tăng lên và câu hỏi nào
làm cho xác suất này tăng nhiều nhất sẽ được chọn để tách nhánh đầu tiên trong cây. Quá trình
lặp lại cho đến khi giá trị tăng xác suất của các câu hỏi không vượt qua được ngưỡng được xác
định bởi câu lệnh TB (trong trường hợp này là 350.0). Giá trị ngưỡng đóng vai trò quan trọng
trong điều khiển phân chia cây, nếu giá trị này lớn cây sẽ ít bị phân nhánh và các âm ba được
buộc vào với nhau nhiều hơn.
Ngược lại nếu giá trị này nhỏ thì số lượng các trạng thái âm ba bị buộc sẽ ít đi. Chọn giá trị
ngưỡng phụ thuộc nhiều vào kinh nghiệm của người nghiên cứu và phụ thuộc vào dữ liệu dùng
để huấn luyện. Chọn giá trị ngưỡng chính xác là một yếu tố giúp tăng độ chính xác nhận dạng
của hệ thống.
Tập các âm ba được xem xét tới thời điểm này chỉ bao gồm các âm ba nằm trong tập dữ
liệu huấn luyện. Câu lệnh AU chứa sanh sách các âm ba mà bao gồm tất cả các âm ba nằm
trong cơ sở dữ liệu. Với các âm ba nằm trong cơ sở dữ liệu mà không có mặt trong tập dữ liệu
huấn luyện thì hệ thống sẽ tổng hợp mô hình của âm ba đó trên cơ sở các âm ba đã được huấn
luyện. Đây là một ưu điểm của phương pháp phân nhóm bằng cây. Tuy nhiên điều kiện tối
thiểu để cho âm ba này có thể được tổng hợp là phải tồn tại các âm ba đã được huấn luyện mà
có cùng nguồn gốc âm đơn với âm ba được tổng hợp.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 78
Đối với các hệ thống nhận dạng có số lượng từ vựng lớn và trung bình, định nghĩa ngữ
pháp của hệ thống thường chỉ đơn thuần là cấu trúc vòng từ (word–loop), có nghĩa là bất kỳ
một từ nào trong bộ từ điển của hệ thống đều có thể theo sau từ bất kỳ khác trong từ điển.
b) Mô hình ngôn ngữ bigram
Hiện nay HTK mới chỉ hỗ trợ mô hình ngôn ngữ tới mức 2-gram, tức là bigram. Mô hình
ngôn ngữ bigram được sinh ra trong HTK bởi công cụ HStats. Sau đây là một ví dụ về một tệp
chứa thông tin mô hình ngôn ngữ bigram.
\data\
ngram 1=530
ngram 2=2790
\1-grams:
-99.999 !ENTER -0.7008
-2.6186 aam -0.5829
-4.0658 an -0.3000
-2.3176 anh -0.8285
......
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 79
\2-grams:
-2.4372 !ENTER awn
-1.5921 !ENTER ba
-1.5195 !ENTER baay
...
-1.9912 hai cai
một
hai
sil
chín
sil
76
-1.7694 hai hai
-1.9912 hai khoong
\end\
Phần đầu 1-gram định nghĩa xác suất xuất hiện của từ trong bộ từ điển P(wi). Trong phần
thứ hai (P(wi/wj) định nghĩa xác suất của một cặp từ. Các thông tin của mô hình ngôn ngữ được
tích hợp vào mạng từ bằng công cụ HBuild. Ví dụ về một mạng từ của một hệ thống nhận dạng
sử dụng dạng phổ biến của mạng nhận dạng là cấu trúc vòng từ word-loop, trong đó các từ
được đặt song song với nhau và các đường đấu vòng loop-back để cho phép bất kỳ một từ nào
cũng có thể đứng sau từ kia. Cấu trúc này được dùng phổ biến trong nhiều hệ thống nhận dạng
như hệ thống nhận dạng đọc chính tả. Công cụ Hbuild được dùng để bổ sung các xác suất
bigram vào mỗi cung nối giữa hai từ. Trong Hình 3.10 là sơ đồ một mạng word-loop gồm bốn
từ, các xác suất bigram P(wi/wj) được gắn vào mỗi cung loop-back giữa các từ, nghĩa là giữa
một cặp từ bất kỳ đều cần có một xác suất bigram tương ứng.
c) Sử dụng mạng từ trong hệ thống nhận dạng
Khi mạng từ được nạp vào trong hệ thống nhận dạng, một từ điển phiên âm của hệ thống sẽ
được dùng để tạo ra một mạng tương đương bao gồm các đơn vị nhận dạng cơ bản của hệ
thống, các âm đơn hoặc các âm ba. Tuỳ thuộc vào cấu hình của hệ thống mà các âm ba có thể
là các âm ba giới nội từ hay âm ba liên từ. Một từ có thể có nhiều phiên âm, khi đó sẽ có nhiều
nhánh của mạng mỗi nhánh tương ứng với mỗi phiên âm của từ. Mạng này được gọi là mạng
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 80
HMM. Như vậy ta có thể thấy một cấu trúc ba mức của một mạng để dùng nhận dạng: mức từ,
mức mô hình và mức trạng thái. Hình 3.11 mô tả cấu trúc này của hệ thống nhận dạng. Trong
hình này các hình ovan biểu thì các từ, hình vuông biểu diễn một nhãn kết thúc một từ (word
end).
Mạng dùng để nhận dạng cuối cùng bao gồm các trạng thái và các cung nối chúng với nhau.
Các cung trong một mô hình HMM chính là xác suất chuyển trạng thái được xác định bởi các
tham số của HMM. Các cung giữa các mô hình có xác suất tương đương nhau, các cung giữa
các từ có xác suất được xác định bởi mô hình ngôn ngữ.
d) Giải mã
Nhiệm vụ của quá trình giải mã là tìm ra một đường đi trong mạng HMM có xác suất lớn
nhất. Để thực hiện công việc này một thuật toán tương tự thuật toán Viterbi được dùng, gọi là
thuật toán chuyển thẻ bài (Token Passing).
Một mạng lớn mà có nhiều nút thì công việc tìm kiếm sẽ rất lâu và tốn thời gian. Một giải
pháp nhằm giảm có hiệu quả việc tính toán đó là chỉ cho phép các thẻ bài mà có cơ hội là một
trong các thẻ bài tốt nhất mới được tồn tại. Cơ chế này gọi là cắt tỉa (pruning). Tại mỗi bước
các thẻ bài mà có giá trị xác suất nằm ngoài khoảng giá trị cho phép so với thẻ bài có xác suất
cao nhất sẽ bị xoá đi. Khoảng giá trị cho phép (beamwidth) được điều chỉnh bởi dung hoà giữa
yếu tố tốc độ và hiệu quả của thuật toán tìm kiếm.
Kết thúc quá trình tìm kiếm với mỗi phát âm ta nhận được một dãy các từ với xác suất cao
nhất là kết quả nhận dạng.
4.1.4. Áp dụng cho tiếng Việt
Dữ liệu sử dụng:
VOV là một cơ sở dữ liệu âm thanh được thu từ đài tiếng nói việt nam. Nó là các dữ liệu từ
các chương trình như “Đọc truyện đêm khuya”, “Hộp thư VOV”, các chương trình phóng sự,
gặp gỡ các nhân vật,…. VOV Data bao gồm chính xác là 29062 câu nói phần lớn là của 15 phát
thanh viên đài tiếng nói việt nam (cả nam và nữ) và rất nhiều người nói khác nhưng với số
lượng không nhiều. Số lượng các âm tiết có xuất hiện trong VOV data là 4379 (nếu không kể
đến thanh điệu thì con số này là 1646). Như vậy là VOV Data đã chiếm tất cả các âm tiết
thường gặp trong số hơn 6000 âm tiết của tiếng Viết. Toàn bộ dũ liệu VOV Data chiếm dung
lượng 2.5 Gigabyte.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 81
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 82
dạng của CSLU hỗ trợ việc nghiên cứu nhận dạng với nhiều giải pháp: dùng mạng neuron
ANN, dùng mô hình Markov ẩn và mạng lai ghép HMM/ANN.
4.2.2. Huấn luyện hệ thống nhận dạng dùng ANN
Trong từ điển phát âm, mỗi từ được phiên âm thành các âm vị và một từ có thể bao gồm
một vài định nghĩa khác nhau. Để xây dựng các đơn vị nhận dạng phụ thuộc ngữ cảnh, các âm
vị được chia thành một, hai hoặc ba phần, mỗi phần như vậy được gọi là category và là đơn vị
nhận dạng cơ bản của hệ thống nhận dạng. Mỗi category phụ thuộc vào ngữ cảnh ở bên trái
hoặc bên phải của nó. Ví dụ âm vị /kh/ được chia thành hai phần, phần bên trái phụ thuộc vào
các âm vị đứng bên trái âm vị /kh/ và phần bên phải phụ thuộc vào các âm vị đứng bên phải âm
vị /kh/. Do /kh/ là phụ âm đứng đầu câu và chỉ xuất hiện duy nhất trong từ “không“ nên phần
bên phải của /kh/ chỉ có thể là âm vị /oo/, từ đó ta có một category /kh>oo/. Phần bên trái của
/kh/ sẽ cho ta category /.pau>kh/ khi từ “không“ đứng đầu câu hoặc sau một khoảng nghỉ
pause. Khi “không“ đứng sau các từ khác ta có các category tương ứng /oong>kh/, /oot>kh/,
/ai>kh/, /a>kh/, /oon>kh/, ...
Nếu âm vị được chia làm ba phần, phần ở giữa sẽ không phụ thuộc vào ngữ cảnh hai bên,
chỉ có hai phần hai bên sẽ phụ thuộc vào các âm vị đứng cạnh nó. Mỗi âm vị sẽ được xác định
kiểu phụ thuộc ngữ cảnh thông qua định nghĩa số phần phân chia của âm vị đó.
Mạng neuron dùng được huấn luyện gồm nhiều lớp, thông thường là ba lớp. Số lượng nút
đầu vào phụ thuộc vào kích thước vector đặc tính phổ của mỗi khung tín hiệu. Ví dụ vector đặc
tính phổ gồm 12 hệ tố MFCC cùng với giá trị năng lượng và giá trị delta của các giá trị trên tạo
thành 26 giá trị đối với mỗi khung tín hiệu. Ngoài ra bốn khung tín hiệu lân cận khung tín hiệu
chính: -60, -30, +30, +60ms cũng được dùng tạo thành một vector 130 đặc tính phổ ứng với
mỗi khung tín hiệu. Nếu vậy mạng ANN sẽ có 130 nút đầu vào. Số lượng nút thuộc lớp ẩn
thường được chọn là 200 nút. Tuy nhiên chưa có tài liệu nào đề xuất phương pháp dùng để xác
định số lượng nút ẩn để mạng ANN hoạt động tốt nhất. Số lượng nút thuộc lớp ẩn càng lớn thì
quá trình học của mạng ANN càng lâu. Thông thường số lượng nút thuộc lớp ẩn được chọn gần
với số lượng nút đầu ra của mạng ANN. Số lượng nút ra của mạng ANN phụ thuộc vào số
lượng category của hệ thống.
Quá trình huấn luyện mạng neuron được thực hiện với từng phát âm dùng thủ tục truyền
ngược sai số. Với mỗi phát âm, thông tin nhãn thời gian trong cơ sở dữ liệu tiếng nói cho ta các
khoảng thời gian thuộc về âm vị cần huấn luyện. Như vậy với mỗi category các khoảng thời
gian dành cho chúng được xác định trong mỗi phát âm. Các thông tin này được dùng để huấn
luyện cho mạng ANN.
Quá trình huấn luyện mạng ANN được tiến hành trên nhiều vòng lặp. Phụ thuộc vào số
lượng category, số lượng các category được buộc, cấu trúc mạng neuron, kích thước dữ liệu
huấn luyện, hệ số học mà mạng neuron có thể hội tụ sau một số lần lặp.
Một tham số quan trọng trong quá trình huấn luyện mạng ANN là hệ số học (learning rate).
Tuy nhiên giá trị này có thể điều chỉnh tuỳ theo từng mạng ANN và tuỳ theo kích thước dữ liệu
huấn luyện. Nếu hệ số học lớn, hệ thống sẽ nhanh chóng tiến tới điểm cực trị, tuy nhiên ngược
lại mạng khó tiếp cận gần đến điểm cực trị. Nếu hệ số học nhỏ, hệ thống tiến tới được điểm cực
trị lâu hơn nhưng ngược lại hệ thống có thể tiến gần hơn tới điểm cực trị.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 83
b-oo+n m-oo+tc
C¸c nót Èn
cña ANN
...
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 84
output khác có giá trị 0. Từ các giá trị output này, mạng ANN được huấn luyện lại bằng thủ tục
truyền ngược sai số. Hình 2.11 miêu tả quá trình huấn luyện mạng HMM/ANN.
Xây dựng mô hình
HMM ẩn
1 i N, 1 t T
4.2.3. Áp dụng cho tiếng Việt
Dữ liệu sử dụng:
CSLU Data là cơ sở dữ liệu tiếng nói được sử dụng bao gồm 442 câu, 2345 từ, được trích ra
từ hai cơ sở dữ liệu tiếng nói điện thoại “22 Language v1.2”, và “Multi-Language Telephone
Speech v1.2” của trung tâm CSLU (Center for Speech Language Understanding), Viện Sau Đại
học Oregon, Hoa kỳ.
Các câu trong cơ sở dữ liệu tiếng nói được thu âm theo hình thức phỏng vấn qua điện thoại
từ 213 người nói (135 nam, 78 nữ). Người nói phát âm các câu bao gồm các chữ số như: số
điện thoại, địa chỉ, số bưu điện, tuổi, ... Câu dài nhất có 18 từ và câu ngắn nhất có 1 từ.
Các câu được thu âm từ nhiều máy điện thoại khác nhau. Kiểu của máy điện thoại và đặc
tính của kênh thoại không được xác định. Các câu thu được đa dạng và khác nhau về tốc độ
phát âm; về độ to nhỏ; có câu được người nói nói trong văn phòng yên tĩnh, có câu có lẫn nhiều
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 85
tạp âm như tiếng đài, ti vi xen vào khi người nói ngồi trong nhà, hay tiếng ô tô khi người nói
đứng tại trạm bưu điện công cộng,... Các câu được thu âm theo PCM 8kHz, 8bit mã hoá.
Tất cả các câu trong cơ sở dữ liệu tiếng đều được phiên âm chính tả và gán nhãn bằng tay
tại mức âm vị.
Bảng 4.1: Độ chính xác cho nhận dạng 10 chữ số tiếng Việt liên tục với các mô hình nhận dạng
trên dữ liệu CSLU Data.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 86
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 87
Kết luận:
Luận văn đã lần lượt đi qua các nội dung quan trọng, là các vấn đề gặp phải trong
quá trình nghiên cứu xây dựng hệ thống nhận dạng tiếng nói nói chung và tiếng Việt nói
riêng
Phần 1: Tìm hiểu các khái niệm cơ bản của ngữ âm học. Việc nghiên cứu tập trung
vào các khía cạnh là đặc điểm của âm tiết tiếng Việt
Phần 2: Đi sâu vào vấn đề thu nhận và xử lý các đặc trưng của tiếng nói nói chung,
và trình bày các phương thức xử lý liên quan, các khó khăn gây ra bởi chất lượng thu
âm đặc biệt là qua điện thoại.
Phần 3: Giới thiệu các phương pháp cơ bản nhất đã và đang được sử dụng trong
nhận dạng tiếng nói như VQ, DTW, HMM, ANN.
Phần 4: Đi sâu vào trình bày về các mô hình được coi là thành công nhất hiện nay
trong nhận dạng tiếng nói là HMM, ANN và ANN/HMM kết hợp.
Việc trình bầy cũng đã cố gắng bám sát theo các bước phải thực hiện khi tác giả xây
dựng hai hệ thống nhận dạng cho tiếng Việt với hai qui mô từ vựng khác nhau.
- Hệ thống nhận dạng với từ điển không hạn chế với cơ sở dữ liệu VOV data ứng
dựng mô hình HMM.
- Hệ thống nhận dạng 10 chữ số liên tục với cơ sở dữ liệu CSLU và áp dụng các mô
hình HMM, ANN, ANN/HMM
- Cuối cùng, ở phần kết luận cuối chương, tác giả đã đưa ra nhận xét về ưu cũng như
nhược của hai mô hình và khuyến nghị cách lựa chọn hợp lý khi đưa vào ứng dụng
trong các hệ thống với qui mô hệ thống khác nhau.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam
Tài liệu tham khảo môn học Xử lý tiếng nói Trang 88
chỉnh, nhất thiết phải tiến hành nghiên cứu nhận dạng thanh điệu tiếng Việt. Đây là một
bài toán khó và mới chỉ có một số ít bài báo về nhận dạng thanh điệu từ rời rạc được
thực hiện. Nhiều vấn đề nghiên cứu còn ở phía trước với nhận dạng thanh điệu.
Lê Bá Dũng – Khoa Công nghệ Thông tin - Trường Đại học Hàng Hải Việt Nam