nhận dạng giọng nói tiếng việt Để Điều khiển xe lăn thông minh
TRANSCRIPT
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
i
Lời cảm ơn
Để thực hiện đề tài: “Nhận dạng giọng nói Tiếng Việt để điều khiển xe lăn
thông minh”, bản thân tôi đã nhận đƣợc rất nhiều sự chỉ dẫn, giúp đỡ và động viên
quý báu từ gia đình, thầy cô và bạn bè.
Trƣớc hết, tôi xin bày tỏ lòng cảm ơn sâu sắc đối với Thầy Huỳnh Thái
Hoàng, giáo viên hƣớng dẫn đã động viên và tận tình hƣớng dẫn cho tôi về phƣơng
pháp nghiên cứu khoa học, đã cung cấp cho tôi rất nhiều kiến thức chuyên sâu để
thực hiện đề tài này.
Tôi cũng vô cùng cảm ơn các Thầy, Cô trong Khoa Điện – Điện tử, Trƣờng
Đại Học Bách Khoa Tp.HCM đã giảng dạy và hƣớng dẫn tôi trong suốt thời gian
học đại học. Nhờ các Thầy, Cô mà tôi có đủ kiến thức và tự tin để thực hiện đề tài
nghiên cứu này cũng nhƣ các đề tài nghiên cứu khác trong tƣơng lai.
Bên cạnh đó, sự hợp tác và giúp đỡ của bạn bè và các thế hệ đàn anh đi trƣớc
cũng giúp tôi rất nhiều trong việc thực hiện đề tài này.
Tôi cũng xin cảm ơn gia đình đã luôn chăm sóc, quan tâm và động viên trong
quá trình học tập.
Và cuối cùng, tôi xin gửi lời cảm ơn tới những ngƣời đã giúp đỡ tôi trong quá
trình thực hiện Đồ án II mà tôi thiếu sót chƣa nêu tên ở đây, sự giúp đỡ của họ dù ít
hay nhiều cũng đóng góp một phần vào kết quả thực hiện đề tài đồ án môn học này
để chuẩn bị thật tốt cho đề tài luận văn sắp tới.
Tp. Hồ Chí Minh, ngày 17 tháng 06 năm 2014
Nguyễn Vũ Nhật Hoàng
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
ii
Giới thiệu đề tài:
Tiếng nói là phƣơng tiện giao tiếp cơ bản nhất của con ngƣời, sử
dụng lời nói là một cách diễn đạt đơn giản và hiệu quả nhất. Đã từ lâu,
con ngƣời luôn mơ ƣớc đến các hệ thống máy điều khiển tự động có thể
giao tiếp bằng tiếng nói tự nhiên của con ngƣời. Ngày nay, cùng với sự
phát triển của khoa học kỹ thuật và công nghệ, đặc biệt trong lĩnh vực
tin học, các hệ thống máy tự động đã dần thay thế con ngƣời trong
nhiều công việc. Nhu cầu giao tiếp với thiết bị máy bằng tiếng nói là rất
cần thiết, đó là phƣơng thức giao tiếp văn minh và tự nhiên nhất.
Nhận dạng tiếng nói là một vấn đề không mới. Trên thế giới đã và
đang có có rất nhiều công trình nghiên cứu về vấn đề này với rất nhiều
phƣơng pháp nhận dạng tiếng nói khác nhau. Và những nghiên cứu đó
cũng có những thành công đáng kể. Nhƣng đối với nƣớc ta, nhận dạng
tiếng nói vẫn là một lĩnh vực khá mới mẻ. Chỉ có một số công trình của
các nhóm nhƣ: AILab, Vietvoice, Vspeech… nghiên cứu đến vấn đề
này. Đến nay tuy đã có nhiều nghiên cứu về nhận dạng tiếng nói tiếng
Việt và đã đạt đƣợc một số thành tựu, nhƣng nhìn chung vẫn chƣa đạt
đƣợc kết quả cần thiết để có thể tạo ra các sản phẩm mang tính ứng
dụng cao.
Với mong muốn có thể dùng tiếng nói Tiếng Việt để điều khiển xe
lăn thông minh, đồ án này nghiên cứu các phƣơng pháp nhận dạng tiếng
nói Tiếng Việt, từ đó xây dựng một chƣơng trình demo nhận dạng tiếng
nói tiếng Việt để phát triển lên luận văn “ Nhận dạng giọng nói Tiếng
Việt để điều khiển xe lăn thông minh”.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
iii
Đồ án gồm 05 chƣơng:
Chương 1: Tổng quan về tình hình trong và ngoài nƣớc liên
quan đến việc nhận dạng tiếng nói, mục tiêu đề tài và giới
hạn của đề tài.
Chương 2: Trình bày về hệ nhận dạng tiếng nói.
Chương 3: Các khái niệm liên quan đến hệ nhận dạng tiếng
nói và hỗ trợ cho công cụ SPHINX.
Chương 4: Giới thiệu về công cụ hỗ trợ nhận dạng tiếng nói
CMUSphinx
Chương 5: Kết quả chƣơng trình demo nhận dạng tiếng nói
Tiếng Việt dùng trong điều khiển xe lăn thông minh sử dụng
công cụ Sphinx và kết luận.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
iv
MỤC LỤC
Lời cảm ơn .............................................................................................................. i
Giới thiệu đề tài ...................................................................................................... ii
Mục lục................................................................................................................... iv
Chƣơng 1: Tổng quan ............................................................................................. 1
1.1. Tổng quan về tình hình trong và ngoài nƣớc ....................................... 2
1.2. Mục tiêu đạt đƣợc ................................................................................. 4
1.3. Giới hạn đề tài ...................................................................................... 5
Chƣơng 2: Trình bày về hệ nhận dạng tiếng nói .................................................... 6
2.1. Giới thiệu ............................................................................................. 7
2.2. Phân loại các hệ thống nhận dạng tiếng nói ........................................ 8
2.3. Một số phƣơng pháp nhận dạng tiếng nói ........................................... 8
Chƣơng 3: Các khái niệm liên quan đến hệ nhận dạng tiếng nói và hỗ trợ cho công
cụ Sphinx ................................................................................................................ 10
3.1. Rút trích đặc trƣng tín hiệu tiếng nói ................................................... 11
3.1.1. Khái niệm ..................................................................................... 11
3.1.2. Làm rõ tín hiệu ............................................................................. 12
3.1.3. Tách từ ......................................................................................... 12
3.1.4. Phân đoạn thành các khung ......................................................... 13
3.1.5. Lấy cửa sổ khung tín hiệu ............................................................ 14
3.2. Rút trích đặc trƣng bằng phƣơng pháp MFCC ....................................... 15
3.2.1. Biến đổi FFT ................................................................................ 17
3.2.2. Lọc qua bộ lọc Mel- Scale ........................................................... 18
3.2.3. Logarit giá trị năng lƣợng ............................................................ 21
3.2.4. Biến đổi cosin rời rạc ................................................................... 21
Chƣơng 4: Giới thiệu về công cụ hỗ trợ nhận dạng tiếng nói CMU SPHINX ...... 23
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
v
4.1. Giới thiệu CMU Sphinx ....................................................................... 24
4.2. Các đặc điểm của CMU Sphinx .......................................................... 24
4.3. Kiến trúc Sphinx 4 .............................................................................. 25
4.3.1. Bộ ngoại vi – FrontEnd ............................................................... 27
4.3.2. Bộ ngôn ngữ - Linguist ................................................................ 28
4.3.3. Bộ giải mã – Decoder .................................................................. 31
Chƣơng 5: Xây dựng chƣơng trình demo nhận dạng giọng nói tiếng Việt điều
khiển xe lăn ............................................................................................................ 33
5.1. Cài đặt Sphinx ..................................................................................... 34
5.1.1. Chuẩn bị hệ điều hành ................................................................. 34
5.1.2. Chuẩn bị các gói cài đặt Sphinx .................................................. 34
5.2. Cài đặt và huấn luyện .............................................................................. 35
5.2.1. Xây dựng mô hình ngôn ngữ ....................................................... 36
5.2.2. Xây dựng mô hình ngữ âm .......................................................... 37
5.2.3. Xây dựng từ điển ......................................................................... 37
5.3. Kết quả thử nghiệm ................................................................................. 38
Chƣơng 5: Kết luận ................................................................................................ 39
6.1. Kết quả đạt đƣợc ................................................................................. 40
6.2. Những hạn chế .................................................................................... 40
6.3. Hƣớng nghiên cứu và phát triển ......................................................... 41
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
1
1
TỔNG QUAN
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
2
1.1. Tổng quan về tình hình trong và ngoài nước:
Vấn đề nghiên cứu các phƣơng pháp nhận dạng tiếng nói đã và đang
thu hút rất nhiều sự đầu tƣ và nghiên cứu của các nhà khoa học trên khắp thế
giới. Ý tƣởng về xây dựng các hệ thống nhận dạng tiếng nói đã có từ những
năm 50 của thế kỷ 20 và đến nay đã đạt đƣợc nhiều kết quả đáng kể.
Trên thế giới đã có rất nhiều hệ thống nhận dạng tiếng nói tiếng Anh đã
và đang đƣợc ứng dụng rất hiệu quả nhƣ: Via Voice của IBM, Spoken
Toolkit của CSLU (Central of Spoken Laguage Under-standing), Speech
Recognition Engine của Microsoft, Hidden Markov Model toolkit của đại
học Cambridge, CMU Sphinx của đại học Carnegie Mellon,… ngoài ra, một
số hệ thống nhận dạng tiến nói tiếng Pháp, Đức, Trung Quốc,… cũng khá
phát triển.
Đối với nƣớc ta, nhận dạng tiếng nói vẫn là một lĩnh vực khá mới mẻ.
Đến nay tuy đã có nhiều nghiên cứu về nhận dạng tiếng nói tiếng Việt và đã
đạt đƣợc một số thành tựu, nhƣng nhìn chung vẫn chƣa đạt đƣợc kết quả cần
thiết để có thể tạo ra các sản phẩm mang tính ứng dụng cao. Có thể kể đến
các công trình sau:
AILab: Đây là công trình đƣợc phòng thí nghiệm Trí tuệ Nhân tạo -
AILab thuộc Đại học Khoa học Tự nhiên tạo ra dựa trên các công nghệ tiên
tiến nhất về nhận dạng và tổng hợp tiếng nói để đáp ứng nhu cầu của ngƣời
dùng. Dựa trên công nghệ xử lí tiếng nói tiếng Việt, AILab đã xây dựng phần
mềm iSago chuyên hỗ trợ tìm kiếm thông tin qua tiếng nói. Thông qua ứng
dụng phần mềm ngƣời sử dụng có khả năng hỗ trợ giao tiếp với điện thoại di
động trực tiếp bằng lời nói. Từ đó ngƣời sử dụng tìm kiếm thông tin nhà hàng,
quán Bar, Café trên địa bàn TP. HCM. Khi ngƣời dùng đặt câu hỏi bằng tiếng
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
3
nói, iSago sẽ truyền nội dung truy vấn này về server để xử lý và gửi lại kết
quả tìm kiếm, dạng một danh sách: tên nhà hàng, địa chỉ.
Vietvoice: Đây là phần mềm của một ngƣời dân Việt Nam ngụ tại
Canada. Phần mềm có khả năng nói tiếng Việt từ các tập tin. Để chạy đƣợc
chƣơng trình, cần cài đặt Microsoft Visual C++ 2005 Redistributable
Package (x86). Đối với ngƣời khiếm thị, phần mềm này cho phép sử dụng
cách gõ tắt (nhấn nút Ctrl và một chữ) để chọn lựa một trong các tính năng
hiển thị trên màn hình. Ngƣời dùng có thể cập nhật từ điển các chữ viết tắt
và các từ ngữ tiếng nƣớc ngoài.
Vspeech: Đây là một phần mềm điều khiển máy tính bằng giọng nói do
một nhóm sinh viên Đại học Bách Khoa TP. HCM viết. Phần mềm sử dụng
thƣ viện Microsoft Speech SDK để nhận dạng tiếng Anh nhƣng đƣợc chuyển
thành tiếng Việt. Nhóm đã khá thành công với ý tƣởng này, do sử dụng lại
thƣ viện nhận dạng engine nên thời gian thiết kế rút ngắn lại mà hiệu quả
nhận dạng khá tốt. Phần mềm Vspeech có các lệnh gọi hệ thống đơn giản
nhƣ gọi thƣ mục My Computer, nút Start,… Phiên bản mới nhất có tƣơng
tác với MS Word 2003, lƣớt web với trình duyệt Internet Explorer. Không
có các chức năng tùy chỉnh lệnh và gọi tắt các ứng dụng. Phần mềm chạy
trên nền Windows XP, microphone và card âm thanh sử dụng tiêu chuẩn
thông thƣờng.
Tuy nhiên việc ứng dụng nhận dạng giọng nói vào điều khiển máy tính
còn nhiều hạn chế. Ở Việt Nam thì hầu nhƣ chỉ mới có bộ phần mềm
Vspeech của nhóm sinh viên trƣờng Đại học Bách Khoa TP. HCM, các phần
mềm khác chỉ thử nghiệm trong phòng thí nghiệm, chƣa đƣợc sử dụng thực
tế vì chƣa đạt trên 100 từ. Phần mềm Vspeech đƣợc phát triển từ mã nguồn
mở Microsoft Speech SDK nhận dạng tiếng Anh, thông qua dữ liệu, phƣơng
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
4
thức trung gian, việc nhận dạng đƣợc chuyển trong Vspeech để nhận biết
tiếng Việt.
1.2. Mục tiêu đạt được:
Đồ án nghiên cứu những ý tƣởng cơ bản và các phƣơng pháp đƣợc sử
dụng trong nhận dạng tiếng nói. Đồng thời đồ án đã tìm hiểu về công cụ
nhận dạng tiếng nói SPHINX từ đó xây dựng một chƣơng trình demo nhận
dạng từ dùng để điều khiển.
Mục đích chi tiết:
Tìm hiểu các khái niệm có liên quan đến hệ nhận dạng tiếng nói để
làm rõ hơn một số yếu tố quan trọng trong việc sử dụng công cụ hỗ
trợ SPHINX nhƣ: rút trích đặc trƣng bằng MFCC (Mel – Scale
Frequency Capstral Coefficient), mô hình Markov ẩn, mô hình âm
học, vị học áp dụng cho tiếng Việt.
Tìm hiểu phƣơng pháp cài đặt công cụ hỗ trợ xây dựng hệ nhận dạng
tiếng nói trên hệ điều hành UBUNTU 12.04.
Tìm hiểu xây dựng mô hình âm học, mô hình ngôn ngữ thích hợp
cho tiếng Việt.
Xây dựng chƣơng trình demo mô phỏng, thực nghiệm giữa các mô
hình với nhau, nhận dạng khoảng 20 từ, 5 câu lệnh tiếng Việt để điều
khiển xe lăn thông minh.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
5
1.3. Giới hạn đề tài:
Đồ án chỉ giới hạn trong việc tìm hiểu về tiếng nói, các phƣơng pháp xử
lý tiếng nói, rút trích đặc trƣng tiếng nói; mô hình Markov ẩn, mô hình âm
học, âm vị áp dụng cho tiếng Việt; kiến trúc hệ thống nhận dạng tiếng nói
qua công cụ Sphinx. Vì thời gian hạn chế nên chƣơng trình demo chỉ dừng ở
mức nhận dạng đƣợc khoảng 10 câu lệnh cơ bản điều khiển xe lăn. Khi đọc
lệnh điều khiển, máy tính sẽ hiểu và xuất hiện dòng lệnh đó trên màn hình
của chƣơng trình.
Do thời gian có hạn nên demo chƣơng trình chỉ mới thực hiện nhận
dạng thành công với một, hai ngƣời dùng. Xác suất đúng thực tế xấp xỉ lớn
hơn 80%.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
6
2
TRÌNH BÀY VỀ HỆ NHẬN DẠNG
TIẾNG NÓI
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
7
2.1. Giới thiệu:
Nhận dạng tiếng nói là một hệ thống tạo khả năng để máy tính nhận
biết ngữ nghĩa của lời nói. Về bản chất, đây là quá trình biến đổi tín hiệu âm
thanh thu đƣợc của ngƣời nói qua Micro thành một chuỗi các từ. Kết quả của
quá trình nhận dạng có thể đƣợc ứng dụng trong điều khiển thiết bị, nhập dữ
liệu, soạn thảo văn bản bằng lời nói, quay số điện thoại tự động hoặc đƣa tới
một quá trình xử lý ngôn ngữ ở mức cao hơn.
Tín hiệu tiếng nói đầu tiên đƣợc tiền xử lý và rút trích đặc trƣng. Kết
quả thu đƣợc sau quá trình này là tập hợp các đặc trƣng âm học (aucostic
features), đƣợc tạo dựng thành một hay nhiều vecto gọi là vecto đặc trƣng.
Để có thể thực hiện việc so sánh, trƣớc hết hệ thống phải đƣợc huấn
luyện và xây dựng các đặc trƣng, sau đó mới có thể dùng để so sánh với các
tham số đầu vào để nhận dạng.
Trong quá trình huấn luyện, hệ thống dùng các vecto đặc trƣng đƣợc
đƣa vào để ƣớc lƣợng, tính toán các tham số cho các mẫu. Một mẫu tham
khảo là bản mẫu dùng để so sánh và nhận dạng, các mẫu tham khảo này mô
phỏng cho một từ, một âm tiết, hoặc thậm chí một âm vị.
Trong quá trình nhận dạng, dãy các vecto đặc trƣng đƣợc đem so sánh
với các mẫu tham khảo. Sau đó hệ thống tính toán độ tƣơng đồng của dãy
vecto đặc trƣng và mẫu tham khảo. Việc tính toán độ tƣơng đồng đƣợc thực
hiện bằng cách áp dụng các thuật toán đã đƣợc chứng minh hiệu quả nhƣ
thuật toán Vitertbi ( trong mô hình Hidden Markov Model – HMM). Mẫu có
độ tƣơng đồng cao nhất đƣợc cho là kết quả nhận dạng.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
8
2.2. Phân loại các hệ thống nhận dạng tiếng nói:
Một hệ thống nhận dạng tiếng nói có thể là một trong hai dạng: nhận
dạng liên tục và nhận dạng từng từ. Nhận dạng liên tục tức là nhận dạng
tiếng nói đƣợc phát liên tục trong một chuỗi tín hiệu, chẳng hạn nhƣ một câu
nói, một mệnh lệnh hoặc một đoạn văn đƣợc đọc lên bởi ngƣời dùng. Các hệ
thống loại này rất phức tạp, nó phức tạp ở chỗ các từ đƣợc phát hiện liên tục
khó xử lý kịp, hoặc khó tách ra nếu nhƣ ngƣời nói liên tục không có khoảng
nghỉ. Kết quả là tách từ ảnh hƣởng rất lớn đến các bƣớc sau, cần xử lý thật
tốt trong quá trình này. Trái lại, đối với mô hình nhận dạng từng từ, mỗi từ
cần nhận dạng đƣợc phát âm một cách rời rạc, có các khoảng nghỉ trƣớc và
sau khi phát âm một từ. Mô hình này dĩ nhiên đơn giản hơn mô hình nhận
dạng liên tục, đồng thời cũng có những ứng dụng thực tiễn nhƣ trong các hệ
thống điều khiển bằng lời nói với độ chính xác khá cao, tuy nhiên khó áp
dụng rộng rãi với mô hình nói trên.
2.3. Một số phương pháp nhận dạng tiếng nói:
Có 3 phƣơng pháp nhận dạng tiếng nói đƣợc sử dụng phổ biến:
Phƣơng pháp âm học- ngữ âm học
Phƣơng pháp nhận dạng mẫu
Phƣơng pháp ứng dụng trí tuệ nhân tạo
Đồ án này sử dụng công cụ SPHINX để nhận dạng tiếng nói nên
phƣơng pháp sử dụng ở đây là phƣơng pháp nhận dạng mẫu. Phƣơng pháp
này không cần xác định đặc tính âm học hay phân đoạn tiếng nói mà chỉ sử
dụng trực tiếp các mẫu tín hiệu tiếng nói trong quá trình nhận dạng. Các hệ
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
9
thống nhận dạng tiếng nói theo phƣơng pháp này đƣợc phát triển theo hai
bƣớc cụ thể:
Bƣớc 1: Sử dụng tập mẫu tiếng nói (cơ sở dữ liệu mẫu tiếng nói) để
đào tạo các mẫu tiếng nói) để đào tạo các mẫu tiếng nói đặc trƣng ( mẫu
tham chiếu) hoặc các tham số hệ thống.
Bƣớc 2: Đối sánh mẫu tiếng nói từ ngoài với các mẫu đặc trƣng để ra
quyết định. Trong phƣơng pháp này, nếu cơ sở dữ liệu tiếng nói cho đào
tạo có đủ các phiên bản mẫu cần nhận dạng thì quá trình đào tạo có thể
xác định chính xác các đặc tính âm học của mẫu ( các mẫu có thể là âm
vị, cụm từ …). Hiện nay, một số kỹ thuật nhận dạng mẫu đƣợc áp dụng
thành công trong nhận dạng tiếng nói là lƣợng tử hóa vector, so sánh
thời gian động(DTW), mô hình Markov ẩn (HMM) và mạng nơron
nhân tạo (ANN).
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
10
3
CÁC KHÁI NIỆM LIÊN QUAN ĐẾN
HỆ NHẬN DẠNG TIẾNG NÓI VÀ
HỖ TRỢ CHO CÔNG CỤ SPHINX
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
11
3.1. Rút trích đặc trưng tín hiệu tiếng nói:
3.1.1. Khái niệm:
Rút trích đặc trƣng của tiếng nói là một trong những khâu quan trọng
trong quá trình nhận dạng tiếng nói. Dữ liệu tiếng nói thông thƣờng dƣới dạng
sóng âm đã lƣu trữ trong máy tính là loại dữ liệu khó xử lý, học mẫu huấn
luyện và so sánh. Do đó việc trích rút đặc trƣng tiếng nói là cần thiết. Kết quả
của quá trình trích rút đặc trƣng là một hoặc nhiều vector đặc trƣng. Các
vector này chứa tham số mang giá trị quan trọng của tín hiệu tiếng nói, làm
giảm đi rất nhiều số lƣợng tính toán cần thiết, làm rõ ràng hơn sự khác biệt
giữa hai tín hiệu tiếng nói.
Hình sau minh họa cho quá trình rút trích đặc trƣng:
Hình 3.1. Qúa trình rút trích vector đặc trƣng
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
12
3.1.2. Làm rõ tín hiệu (pre – emphasis- tiền khuếch đại)
Theo các nghiên cứu về âm học thì giọng nói có sự suy giảm
20dB/decade khi lên tần số cao do đặc điểm sinh lý của hệ thống phát âm con
ngƣời. Để khắc phục sự suy giảm này, chúng ta phải tăng cƣờng độ tín hiệu
lên một giá trị gần 20dB/decade. Bên cạnh đó, hệ thống thính giác con ngƣời
có xu hƣớng nhạy cảm hơn với cùng tần số cao. Dựa vào những đặc điểm
trên, ta sẽ dùng bộ lọc thông cao để tiền xử lý các tín hiệu thu đƣợc nhằm làm
rõ vùng tín hiệu mà tai ngƣời có thể nghe đƣợc. Bộ lọc áp dụng công thức
sau:
1( ) 1pre preH z a z
Trong đó, apre là hệ số nhấn mạnh, thƣờng có giá trị 0.9700002861.
Bộ lọc này có chức năng tăng cƣờng tín hiệu tại tần số cao (trên 1 KHz).
Tín hiệu tiếng nói đã đƣợc số hóa là s(n), đƣợc đƣa qua một hệ số bậc
thấp, để làm phẳng tín hiệu về phổ và làm nó ít bị ảnh hƣởng bởi các hiệu ứng
có độ chính xác hữu hạn này trong quá trình xử lý tín hiệu. Hệ thống số đƣợc
dùng trong khối tiền khuếch đại vừa cố định, vừa thích nghi chậm.
Trong trƣờng hợp sử dụng bộ lọc áp theo công thức 2.1, đầu ra của dãy
tiền khuếch đại s’(n) liên quan đến đầu vào của dãy tín hiệu s(n) theo đẳng
thức sau:
s’(n) = s(n) – apres(n-1)
3.1.3. Tách từ
Tín hiệu tiếng nói s(n) sau khi đƣợc làm rõ tín hiệu sẽ đƣợc chuyển sang
để tách từ. Đây là công đoạn chia toàn bộ tín hiệu thu đƣợc thành những đoạn
tín hiệu trong đó chỉ chƣa nội dung của một từ.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
13
Có nhiều phƣơng pháp để tách điểm đầu và điểm cuối của một từ ra khỏi
toàn bộ tín hiệu tiếng nói, trong đó phƣơng pháp dùng hàm năng lƣợng thời
gian ngắn là phƣơng pháp phổ biến nhất. Với một cửa sổ kết thúc tại mẫu thứ
m, hàm năng lƣợng thời gian ngắn E(m) đƣợc xác định:
1
2[ ( )* ( )]m N
m
n m
E x n w n m
3.1.4. Phân đoạn thành các khung (Framing)
Tín hiệu tiếng nói là một đại lƣợng biến thiên theo thời gian và không ổn
định nên không thể xử lý trực tiếp trên đó đƣợc. Do đó, tín hiệu phải đƣợc
chia ra thành các khung với chiều dài tƣơng đối nhỏ để lấy đƣợc các đoạn tín
hiệu tƣơng đối ổn định và xử lý trong các bộ lọc tiếp theo. Theo các nghiên
cứu đã có thì trong khoảng thời gian 10-20 ms, tín hiệu tiếng nói tƣơng đối ổn
định. Nên ở bƣớc này ngƣời ta thƣờng phân tín hiệu thành các khung với kích
thƣớc 20-30 ms. Nhƣng để tránh mất mát và làm gián đoạn tín hiệu ban đầu,
khi phân khung, ngƣời ta chồng lấp các khung lên nhau trong khoảng 10-
15ms.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
14
Hình 3.1.4. Ví dụ phân đoạn khung tín hiệu
3.1.5. Lấy cửa sổ khung tín hiệu
Để làm rõ tín hiệu đồng thời tính gián đoạn tín hiệu ở đầu và cuối của
mỗi khung trong quá trình xử lý đặc trƣng, khi xử lý, các khung sẽ đƣợc nhân
với hàm cửa sổ, thƣờng là cửa sổ Hamming. Kết quả là việc này làm cho
khung tín hiệu mƣợt hơn, giúp cho các thành phần có tần số cao xuất hiện
trong phổ. Công thức hàm cửa sổ tổng quát:
2(1 ).cos ,
2( )
0,2
n NnNw n
Nn
(2.5)
Trong đó: w(n) gọi là hàm cửa sổ. Tùy vào giá trị của α mà có các cửa sổ
sau :
Với α=0.54, ta có cửa sổ Hamming (Hamming Windown) :
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
15
20.54 0.46.cos ,
2( )
0,2
n NnNw n
Nn
(2.6)
Với định nghĩa cửa sổ w(n) theo công thức trên, 0 1n N , thì kết quả
chia cửa sổ cho khung x(n):
1( ) ( )w( )tx n x n n 0 1n N (2.7)
Ý nghĩa của việc áp cửa sổ: là nhằm mục đích có đƣợc dữ liệu theo
miền tần số chuẩn đề đƣa vào phép biến đổi Fourier rời rạc.
3.2. Rút trích đặc trưng bằng phương pháp MFCC:
Trong lĩnh vực xử lý và nhận dạng tiếng nói, việc tiền xử lý các tín hiệu
thu đƣợc và rút trích đặc trƣng là một kỹ thuật thiết yếu mà bất cứ hệ thống
nhận dạng nào cũng bắt buộc phải có. Trích rút đặc trƣng có vai trò quan
trọng quyết định hiệu suất của quá trình nhận dạng mẫu (cả trong quá trình
nhận dạng và trong quá trình huấn luyện). Công việc của bƣớc này là phân
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
16
tích phổ spectral nhằm mục đích xác định các thông tin quan trọng, đặc trƣng
của tiếng nói, cắt giảm bớt các yếu tố không cần thiết trong quá trình nhận
dạng để làm giảm khối lƣợng dữ liệu cần xử lý.
Mel Scale Frequency Cepstral Coefficients (MFCC) là một phƣơng pháp
rút trích đặc trƣng sử dụng dãy bộ lọc Davis và Mermelstein đƣa ra vào năm
1980 khi họ kết hợp các bộ lọc cách khoảng trống không đều với phép biến
đổi Cosine rời rạc (Discrete Cosin Transform) thành một thuật toán hoàn
chỉnh ứng dụng trong lĩnh vực nhận dạng tiếng nói liên tục. Đồng thời định
nghĩa khái niệm hệ số Cepstral và thang đo tần số Mel (Mel Scale).
Hình 3.1.6 Tổng quát phƣơng pháp rút trích đặc trƣng MFCC
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
17
Tóm tắt quá trình rút trích đặc trƣng theo MFCC sẽ nhƣ sau: Ban đầu tín
hiệu sau khi qua tiền xử lý sẽ đƣợc chia thành các Frame có khoảng thời gian
ngắn. Từ mỗi frame đó sau khi áp dụng các bƣớc chuyển đổi và lọc sẽ ra đƣợc
một vecto tƣơng ứng. Và xong quá trình này, ta sẽ có đặc trƣng của dãy tín
hiệu input là một dãy vecto đặc trƣng output ra.
3.2.1 Biến đổi FFT (Fast Fourier Transform)
Biến đổi FFT thực chất là một biến đổi DFT (Discrete Fourier
Transform) nhƣng đƣợc tối ƣu bằng các thuật toán nhanh và gọn hơn đề dáp
ứng các yêu cầu xử lý theo thời gian thực trong các lĩnh vực nhƣ xử lý âm
thanh, hình ảnh,...
Fast Fourier là một phép biến đổi thuận nghịch có đặc điểm bảo toàn tính
tuyến tính bất biến, tuần hoàn và tính trễ. Dùng để biến đổi tín hiệu tƣơng tự
sang miền tần số, nó sẽ gồm các công thức sau:
Công thức phép biến đổi thuận (dùng để phân tích tín hiệu):
12 /
0
( ) ( )N
j kn N
n
X k x n e
k = 0, 1, 2,…., N-1 (2.8)
Công thức phép biến đổi nghịch (dùng để tổng hợp lại tín hiệu):
12 /
0
x(n) X(k)N
j kn N
k
e
n = 0, 1, 2,…, N-1 (2.9)
Trong đó: ( ) ( ) b(n) 1x n a n
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
18
Kết quả chúng ta có đƣợc khi thực hiện FFT là dãy tín hiệu Xt(k) để đƣa
và bộ lọc Mel – Scale.
3.2.2. Lọc qua bộ lọc Mel – Scale
Trong lĩnh vực nghiên cứu về nhận dạng tiếng nói, đòi hỏi chúng ta phải
hiểu và mô phỏng chính xác khả năng cảm thụ tần số âm thanh của tai ngƣời.
Chính vì thế các nhà nghiên cứu đã xây dựng một thang tần số - hay gọi là
thang tần số Mel (Mel Scale) dựa trên cơ sở thực nghiệm nhiều lần khả năng
cảm nhận âm thanh của con ngƣời. Thang tần số Mel đƣợc định nghĩa trên tần
số thực theo công thức:
102595log 1700
fm
(2.10)
Trong đó: m là tần số trong thang đo Mel, đơn vị là Mel
f là tần số thực, đơn vị là Hz.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
19
Hình 3.1.6.b. Biểu đồ thang tần số Mel theo tần số thực
Theo biểu đồ trên thì trong khoảng tần số thấp hơn 1kHz thì đồ thị trên
gần nhƣ là tuyến tính, nghĩa là trong khoảng tần số dƣới 1kHz, tần số Mel và
tần số thực. Trong khoảng tần số trên 1kHz thì mối quan hệ này là quan hệ
Logarit.
Dựa vào các thực nghiệm trên tai ngƣời, ngƣời ta đã xác định đƣợc các
tần số thực mà tai ngƣời có thể nghe đƣợc và chứa đựng nhiều thông tin. Sau
đó chuyển các tần số này sang tần số Mel và xây dựng thang đo nhƣ sau:
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
20
Hình 3.1.6.b1. Băng lọc tần số Mel
Ta dùng thang đo này để áp dụng vào dãy sóng tín hiệu thu đƣợc sau khi
thực hiện FFT
Hình 3.1.6.b2. Đƣa tín hiệu vào băng lọc tần số Mel
Kết quả của bƣớc này là chúng ta sẽ có đƣợc tập hợp các tần số Yt(m) là
giao điểm của sóng tần số với thang tần số Mel từ dãy tín hiệu Xt(k)
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
21
3.2.3. Logarit giá trị năng lượng (Logarit of filter
energies)
Mục đích của bƣớc này là nén các giá trị đã lọc đƣợc vào miền giá trị
nhỏ hơn để xử lý nhanh hơn. Nên các giá trị thu đƣợc ở mỗi kênh lọc sẽ đƣợc
lấy Logarit.
2
log ( )tY m
3.2.4. Biến đổi cosin rời rạc
Dựa vào phổ tín hiệu tiếng nói của con ngƣời trên miền tần số, ta có thể
thấy rằng phổ tín hiệu khá trơn, nên khi lấy các giá trị năng lƣợng ra từ các bộ
lọc, các giá trị này sẽ có sự tƣơng quan khá gần nhau, dẫn đến đặc trƣng ta rút
đƣợc sẽ không rõ ràng. Chính vì thế, ta thực hiện biến đổi DCT (Discrete
Cosin Transform) để làm rời rạc các giá trị này ra cho nó ít tƣơng quan với
nhau, làm tăng tính đặc trƣng của các tham số. Giá trịthu đƣợc sau bƣớc này
ta gọi là hệ số Cepstral.
1
cos 0.5N
i j
j
jc m j
N
(2.11)
Trong đó: N là số kênh lọc.
Mj là giá trị logarit năng lƣợng cho mạch lọc thứ j.
i là bậc của hệ số cepstral.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
22
Thông thƣờng ngƣời ta lấy i trong đoạn [1,12] là số lƣợng đặc trƣng
trong mỗi vecto đặc trƣng. Trong các hệ nhận dạng, số lƣợng đặc trƣng nằm
trong khoảng (10,15) là đủ để cho kết quả nhận dạng tƣơng đối mà dữ liệu xử
lý lại không quá lớn.
Sau khi thực hiện biến đổi DCT, theo công thức trên ta thấy các hệ số
thu đƣợc sẽ tăng tuyến tính theo số bậc của nó. Hệ số cepstral có số bậc cao sẽ
có giá trị rất cao, ngƣợc lại các hệ số bậc thấp sẽ có giá trị rất thấp. Sự chênh
lệch này sẽ gây khó khăn cho chúng ta trong qúa trình mô hình hóa dữ liệu và
xử lý sau này. Vì khi có sự chênh lệch cao, ta sẽ dùng miền giá trị lớn để biểu
diễn dữ liệu, và gặp khó khăn khi đƣa vào các mô hình xử lý xác suất,... nên
để có các hệ số tối ƣu cho các quá trình sau, ta sẽ thực hiện việc điều chỉnh
các hệ số sau này để giảm sự chênh lệch. Việc này thực hiện bằng công thức:
' exp * .n nc n k c (2.12)
Cuối cùng chúng ta sẽ thu đƣợc các giá hệ số Cepstral đã đƣợc tinh chế.
Các hệ số này là đặc trƣng MFCC mà chúng ta sẽ sử dụng để huấn luyện và
nhận dạng.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
23
4
GIỚI THIỆU VỀ CÔNG CỤ HỖ
TRỢ NHẬN DẠNG TIẾNG NÓI
CMUSPHINX
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
24
4.1. Giới thiệu CMU Sphinx
Sphinx là một hệ thống nhận dạng tiếng nói hoàn chỉnh đƣợc viết trên
ngôn ngữ JAVA. Sphinx đƣợc công bố và chia sẻ mã nguồn lần đầu tiên vào
năm 2010 do nhóm nghiên cứu Sphinx ở trƣờng đại học Carnegie Mellon
nghiên cứu và phát triển. Sau đó, với sự giúp đỡ của các tổ chức ( Sun
Microsytems Laboratories, Hewlett Packard, Mitsubishi Electric Research
Labs) và các trƣờng đại học (University of California at Santa Cruz,
Massachusetts Institute of Technology), Sphinx tiếp tục đƣợc nghiên cứu và
bổ sung các phiên bản mới nhƣ Sphinx 2, Sphinx 3 và mới nhất là Sphinx 4
với tên gọi Pocketsphinx, làm cho hệ thống nhận dạng ngày càng tối ƣu hơn.
Đồ án này sử dụng Sphinx 4 để thực hiện.
4.2. Các đặc điểm của CMU Sphinx
Sphinx tuy mới đƣợc công bố để đƣa vào các ứng dụng nhận dạng chƣa
lâu nhƣng Sphinx đang dần trở thành một framwork nhận dạng tiếng nói
mạnh mẽ và đƣợc sử dụng rất nhiều trong các ứng dụng trong cuộc sống, Đó
là nhờ các đăc điểm sau :
- Hỗ trợ nhận dạng tiếng nói ở chế độ trực tiếp hoặc chia lô, có khả
năng nhận dạng tiếng nói rời rạc và liên tục.
- Là một hệ thống nhận dạng đồ sộ nhƣng có khả năng tháo lắp rất linh
động. Hỗ trợ sẵn đầy đủ các tính năng đáp ứng nhu cầu nhận dạng nhƣ xây
các bộ lọc, các hàm cửa sổ, các phép biến đổi, các công cụ hỗ trợ rút trích đặc
trƣng theo nhiều phƣơng pháp khác nhau.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
25
- Hỗ trợ nhiều mô hình ngôn ngữ dạng ASCII và các phiên bản nhị
phân của unigram, bigram, trigram, Java Speech API Grammar Format
(JSGF) và ARPA – format FST grammars.
- Xây dựng sẵn các thuật toán tìm kiếm tối ƣu (breath first, word
pruning), dễ dàng tinh chỉnh cho phù hợp với nhu cầu nhận dạng.
4.3. Kiến trúc Sphinx 4
Sphinx 4 là một framework nhận dạng âm thanh đƣợc thiết kế khá đồ sộ
và phức tạp. Nó bao gồm các thành phần đƣợc ghép nối rất linh động với
nhau và đƣợc công cụ hóa thành các bộ phận có chức năng riêng. Các thành
phần này có thể đƣợc chỉnh sửa và kết nối với nhau theo nhu cầu của ứng
dụng mà không phá vỡ cấu trúc của hệ thống.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
26
Có ba thành phần cơ bản tạo nên Sphinx 4 : Bộ ngoại vi (FrontEnd), Bộ
giải mã (Decoder) và bộ ngôn ngữ (Linguist). Để dễ hình dung cách hoạt
động tổng quát của Sphinx ta sẽ tìm hiểu sơ lƣợc các chức năng của các bộ
phận trên. Bộ ngoại vi với các công cụ hỗ trợ cho việc thu nhận và tiền xửa lý
các tín hiệu sẽ nhận và thực hiện tham số hóa chúng thành tập hợp các vecto
đặc trƣng (Feature). Bộ ngôn ngữ sẽ có nhiệm vụ đọc vào các mô hình ngôn
ngữ với các thông tin cách phát âm trong từ điển và thông tin cấu trúc của các
mô hình âm học rồi mô hình hóa chúng vào một đồ thị tìm kiếm (Search
Graph). Bộ phận còn lại là bộ giải mã (Decoder) có nhiệm vụ quan trọng nhất
kết nối hai bộ phận còn lại. Cụ thể là thành phần quản lý tìm kiếm (Search
Manager) trong bộ giải mã sẽ lấy các thông tin đặc trƣng từ bộ ngoại vi rồi kết
hợp với đồ thị tìm kiếm đƣợc phát sinh từ bộ ngôn ngữ để giải mã và tính toán
ra kết quả nhận dạng.
Khi xây dựng Sphinx, các nhà phát triển đã nghiên cứu khá kỹ về lĩnh
vực âm học nên đã xây dựng một số lƣợng khá lớn các hiệu số cấu hình để
hiệu chỉnh chung cho phù hợp với nhu cầu của ngôn ngữ và âm thanh khác
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
27
nhau. Chúng ta có thể thay đổi, điều chỉnh chúng nhƣ thay đổi các cách rút
trích đặc trƣng, điều chỉnh các phƣơng pháp tìm kiếm,… trên file config của
hệ thống mà không cần phải can thiệp sâu vào bên trong. Bên cạnh đó nó còn
xây dựng các tool hỗ trợ cho qua trình nhận dạng nhƣ các tool huấn luyện, các
tool giám sát và báo cáo hệ thống.
4.3.1. Bộ ngoại vi – FrontEnd
Chức năng : Nhận vào các tín hiệu từ bên ngoài, thực hiện qua một số
bộ lọc và xử lý dữ liệu để cho kết quả là một tập các vecto đặc trƣng.
Cấu tạo : Bên trong của bộ ngoại vi này thực chất là một chuỗi các
modun con có khả năng xử lý tín hiệu giao tiếp đƣợc ghép nối với nhau. Các
chuỗi này có thể hoạt động song song cùng một lúc với nhau gọi là
Dataproccessor.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
28
Việc xử lý bằng các chuỗi Dataproccessor nối ghép với nhau sẽ giúp
chúng ta linh đông trong việc rút trích các thông tin đặc trƣng, với một tín
hiệu ta có thể rút trích đặc trƣng bằng các phƣơng pháp khác nhau để so sánh
tìm các đặc trừng tối ƣu hoặc áp dụng liên tiếp các phƣơng pháp với nhau để
tìm ra đặc trƣng tốt nhất. Đồng thời cho phép các chuỗi này thực hiện song
song với nhau làm cho hệ thống nhận diện nhanh chóng theo thời gian thực
với lƣợng tín hiệu lớn thu vào.
4.3.2. Bộ ngôn ngữ - Linguist
Chức năng : Bằng các công cụ và phƣơng pháp ngôn ngữ, bộ này sẽ đọc
vào các file cấu trúc của một ngôn ngữ rồi mô hình hóa chúng vào đồ thị tìm
kiếm để sử dụng trong việc tìm kiếm nhận dạng.
Cấu tạo : Ở bộ phận này cấu tạo khá phức tạp vì nó quy định hầu nhƣ
toàn bộ phạm vi ngôn ngữ mà chúng ta cần nhận dạng, nó gồm các thành
phần nhỏ sau :
a. Thành phần mô hình ngôn ngữ
Thành phần này sẽ có chức năng đọc vào file cấu trúc ngôn ngữ ở cấp độ
là các từ (word level). Thành phần này có vai trò quan trọng để xác định
những thứ mà hệ thống cần nhận dạng. Cấu trúc ngôn ngữ sẽ đƣợc mô hình
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
29
hóa ở thành phần này theo hai mô hình : graph – driven và Stochastic N –
Gram.
- Mô hình graph – driven grammar : biểu diễn một đồ thị từ có hƣớng
trong đó mỗi nút biểu diễn một từ đơn và mỗi cung biểu diễn xác suất dịch
chuyển sang một từ.
- Mô hình Stochastic N – Gram : mô hình này cung cấp các xác suất
cho các từ đƣợc cho dựa vào việc quan sát n-1 từ dứng trƣớc.
Sphinx hỗ trợ nhiều định dạng ngôn ngữ khác nhau nhƣ :
- SimpleWordListGrammar : Định nghĩa một từ dựa trên một danh sách
các từ. Một tham số từ chọn chỉ ra các ngữ pháp có lặp hay không. Nếu ngữ
pháp không lặp, ngữ pháp sẽ đƣợc dùng cho một nhận dạng từ tách biệt. Nếu
ngữ pháp lặp, nó sẽ đuọc dùng để hỗ trợ liên kết nhận dạng từ tầm thƣờng,
tƣơng đƣơng với một unigarm grammar với xác suất bằng nhau.
- JSGFGrammar : Hỗ trợ JavaTM Speech API Grammar Format
(JSGF), định nghĩa một biểu diễn theo BNF, độc lập nền tảng, Unicode và các
ngữ pháp.
- LMGrammar : Định nghĩa một ngữ pháp dựa trên một mô hình ngôn
ngữ thống kê. LMGrammar phát sinh một nút ngữ pháp mội từ và làm việc tốt
với với các unigram và bigram, xấp xỉ 1000 từ.
- FSTGrammar : Hỗ trợ một bộ chuyển đổi trạng thái giới hạn (finite –
state tranducer) trong một định dạng ARPA FST.
- SimpleNGramModel : Cung cấp hỗ trợ các mô hình ASCII N – Gram
trong định dạng ARPA. SimpleNGramModel không cố làm tối ƣu việc sử
dụng bộ nhớ, do đó bó làm việc tốt với các mô hình ngôn ngữ nhỏ.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
30
- LargeTriGramModel : cung cấp hỗ trợ các mô hình N – Gram đúng
đƣợc phát sinh bởi CMU – Cambridge Statictical Language Modeling
Toolkit. LargeTrigramModel tối ƣu việc lƣu trữ bộ nhớ, cho phép nó làm việc
với các tập tin rất lớn, trên 100MB.
b. Thành phần từ điển
Thành phần này cung cấp cách phát âm cho các từ ta đã xây dựng trong
mô hình ngôn ngữ và hỗ trợ phân lớp các từ thành các lớp khác nhau để hỗ trợ
cho việc tìm kiếm.
c. Thành phần mô hình âm học
Thành phần này mô hình âm học cung cấp một ánh xạ giữa một đơn vị
tiếng nói và một HMM (Hidden Markov Model) có thể đƣợc đánh giá dựa
vào các đặc trƣng đƣợc cung cấp bởi bộ ngoại vi. Các ánh xạ có thể đƣa thông
tin vị trí của từ và ngữ cảnh thành phần mô hình ngôn ngữ. Định nghĩa ngữ
cảnh này đƣợc xây dựng từ cấu trúc ngữ pháp của mô hình ngôn ngữ.
Khác với các hệ nhận dạng khác, mô hình HMM trong Sphinx có cấu
trúc cố định trong bộ nhớ và đơn thuần chỉ là một đồ thị có hƣớng của các đối
tƣợng. Trong đồ thị này, mỗi nút tƣơng ứng với một trạng thái HMM và mỗi
cung biểu diễn xác suất biến đổi từ trạng thái này sang trạng thái khác trong
HMM. Bằng cách biểu diễn HMM nhƣ là các đồ thị có hƣớng của các đối
tƣợng thay vì một cấu trúc cố định, một bổ sung của mô hình âm học có thể
dễ dàng cung cấp các HMM với các dạng hình học tôpô khác.
Mỗi trạng thái HMM có khả năng phát sinh một đánh giá từ một đặc
trƣng quan sát. Quy tắc để tính toán điểm số đƣợc thực hiện bới chính trạng
thái HMM, do đó che giấu các thực thi của nó đối với các phần còn lại của hệ
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
31
thống, thậm chí cho phép các hàm mật độ xác suất khác nhau đƣợc sử dụng
trên mỗi trạng thái HMM. Mô hình âm học cũng cho phép chia sẻ các thành
phần khác nhau trên tất cả các cấp độ. Nghĩa là các thành phần tạo nên một
trạng thái HMM nhƣ các hỗn hợp Gaussian (Gaussian mixture), các ma trận
biến đổi và các trọng số hỗn hợp (mixture weight) có thể đƣợc chia sẻ bởi bất
kì trạng thái HMM nào.
d. Đồ thị tìm kiếm – Search Graph
Đây là kết quả mà bộ ngôn ngữ phát sinh đƣợc cuối cùng để đƣa vào sử
dụng trong bộ giải mã. Đồ thị tìm kiếm này là một đồ thị có hƣớng, trong đó
mỗi nút đƣợc gọi là một trạng thái tìm kiếm (Search State): biểu diễn một
trong hai trạng thái: phát hoặc không phát (emitting state hay non-emitting
state). Và các đƣờng cung biểu diễn trạng thái biến đổi có thể, trên các cung
này có các giá trị xác suất đƣợc tính toán từ mô hình âm học: biểu diễn khả
năng chuyển từ trạng thái này đến trạng thái kia. Một trạng thái có thể có
nhiều cung hƣớng đến trạng thái khác.
4.3.3. Bộ giải mã – Decoder
Chức năng: Bộ giải mã có nhiệm vụ chính là sử dụng các đặc trƣng
(Features) từ bộ ngoại vi kết hợp với đồ thị tìm kiếm đƣợc phát sinh từ bộ
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
32
ngôn ngữ để tiến hành giải mã và áp dụng các thuật toán suy ra kết quả nhận
dạng.
Cấu tạo: Thành phần của bộ này tuy đơn giản nhƣng rất phức tạp về
thuật toán vì ảnh hƣởng tới tốc độ tìm kiếm, gồm một thành phần quản lý tìm
kiếm (Search Manager) có khả năng tháo lắp và các mã hỗ trợ khác để đơn
giản hóa quá trình giải mã cho một ứng dụng. Nên trong báo cáo chỉ tập trung
giới thiệu thành phần quản lý tìm kiếm.
Nhiệm vụ của thành phần quản lý tìm kiếm là nhận dạng các tập hợp các
vector đặc trƣng để tìm ra ánh xạ tƣơng ứng của nó trong đồ thị tìm kiếm. Để
đáp ứng tìm ra kết quả chính xác trong đồ thị tìm kiếm khi xử lý kết quả,
Sphinx cung cấp cho các tiện ích có khả năng phát sinh lƣới và các đánh giá
độ tin cậy kết quả. Và thêm đặc điểm nữa khác các hệ thống khác là không
gian tìm kiếm trong Sphinx có thể đƣợc tinh chỉnh thay đổi trong quá trình
tìm kiếm để tăng hiệu suất tìm kiếm.
Ngoài ra đề nâng cao hiệu suất của kết quả nhận dạng, Sphinx con bổ
sung thêm các công cụ hỗ trợ cho việc đánh giá kết quả nhận đƣợc, đó là
thành phần đánh giá (scorer) và thành phần cắt tỉa (pruner). Nói về thành phần
Scorer thì nó là một module dùng để ƣớc lƣợng xác suất của trạng thái khi
cung cấp các giá trị mật độ trạngthái xuất hiện. Khi thành phần quản lý tìm
kiếm yêu cầu đánh giá điểm số cho một trạng thái, nó sẽ gọi đến thành phần
Scorer, nó sẽ phân tích các thông tin đặc trƣng của trạng thái đó rồi áp dụng
các phép toán để tính điểm số.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
33
5
XÂY DỰNG CHƢƠNG TRÌNH
DEMO NHẬN DẠNG GIỌNG NÓI
TIẾNG VIỆT ĐIỀU KHIỂN XE LĂN
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
34
5.1. Cài đặt Sphinx:
5.1.1. Chuẩn bị hệ điều hành
Linux là mô trƣờng hệ điều hành thích hợp để cài đặt Sphinx và thực
hiện huấn luyện. Trong các hệ điều hành Linux thì Ubuntu đƣợc xem là hệ
điều hành phổ biến nhất. Sphinx dễ dàng đƣợc cài đặt trên Ubuntu. Sau khi
huấn luyên, các vecto đặc trƣng đƣợc đƣa vào bộ ngôn ngữ cùng với thông số
-hmm và bộ từ điển –dict có đƣợc trong quá trình huấn luyện. Sau đó, mô
hình này đƣợc đƣa vào hệ điều hành Window 7 để thực hiện nhận dạng tiếng
nói.
5.1.2. Chuẩn bị các gói cài đặt Sphinx:
Các gói bao gồm:
Pocketsphinx: một thƣ viện nhận dạng viết bằng C
Sphinxbase: một gói thƣ viện nền, hỗ trợ các thƣ viện cần thiết
cho các gói khác.
Sphinx4: gói hỗ trợ nhận dạng viết bằng Java
CMUclmtk: bộ công cụ xây dựng mô hình ngôn ngữ.
Sphinxtrain: Bộ công cụ huấn luyện mô hình ngữ âm.
Các gói cài đặt có thể download tại trang chủ của CMU Sphinx.
5.2. Cài đặt và huấn luyện:
Một hệ thống nhận dạng hoạt động cần tối thiểu 3 thông số là -hmm, -lm và –
dict, trong đó:
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
35
Thông số -hmm: là thông số có đƣợc bằng cách xây dựng mô hình ngữ
âm, thông số này chứa trong file có các tập tin huấn luyện
model_parameters\huanluyen.cd_cont_200.
Thông số -lm: có đƣợc bằng cách xây dựng mô hình ngôn ngữ.
Thông số -dict: thƣ viện chứa các từ cần huấn luyện
Qúa trình hoạt động của hệ nhận dạng trong Sphinx nhƣ sau:
Đầu tiên, tín hiệu tiếng nói qua micro sẽ đƣợc đƣa vào bộ ngoại vi, ở đây
tín hiệu đƣợc tham số hóa thành một dãy đặc trƣng và chuyển vào cho bộ giải
mã. Bộ ngôn ngữ chuyển đổi các mô hình ngôn ngữ, cách phát âm trong từ
điển và thông tin cấu trúc âm trong mô hình âm học vào một đồ thị tìm kiếm
trong bộ giải mã. Bộ giải mã sẽ xác định chuỗi đặc trƣng gần giống nhất trong
đồ thị tìm kiếm so với đặc trƣng tiếng nói đƣợc cung cấp bởi bộ ngoại vi và
phát sinh kết quả.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
36
5.2.1. Xây dựng mô hình ngôn ngữ:
Mô hình ngôn ngữ:
Từ file text đƣợc đƣa vào là tập hợp những từ cần huấ luyện, bộ từ vựng
đƣợc tạo ra bởi công cụ CMUcmlk bằng 2 lệnh: text2wfreq và wfreq2vocab.
Mô hình ngôn ngữ đƣợc tạo ra có dạng .arpa. Để tạo ra mô hình ngôn
ngữ cần 2 lệnh: text2idngram và idngram2lm.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
37
Xong bƣớc này ta có thông số cần thiết thứ nhất để đƣa vào bộ ngôn ngữ
là –lm.
5.2.2. Xây dựng mô hình ngữ âm:
Mô hình ngữ âm:
Xong bƣớc này ta sẽ thu đƣợc file –hmm chính là thông số cần thiết thứ
hai đƣa vào bộ ngôn ngữ.
5.2.3. Xây dựng từ diển:
Từ điển đƣợc chứa trong file huanluyen.dict. Nó chứa nội dung về cách
phát âm của một từ trong bộ huấn luyện.
Mỗi dòng trong tập tin này là cách định nghĩa cách đọc của một từ.
Trong tiếng Việt, cách đọc và cách viết một từ gần nhƣ là gắng liền với
nhau. Do đó ta xây dựng bộ từ điển theo nhƣ cách đánh Telex trong Unikey
thƣờng gặp.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
38
Ví dụ: từ “quay trái” trong bộ từ điển đƣợc định nghĩa cách đọc nhƣ sau:
<s> QUAY TRASI </s>
Xong bƣớc này ta đƣợc thông số cuối cùng là –dict để đƣa vào bộ ngôn
ngữ.
5.3. Kết quả thử nghiệm:
Vì lần đầu tiên làm quen với công cụ và chƣa có nhiều kinh nghiệm
trong việc thu âm và huấn luyện nên thời gian để xây dựng chƣơng trình
demo không nhiều lắm. Mặc dù vậy, chƣơng trình đã nhận dạng đƣợc một số
câu lệnh rất chính xác nhƣ:
QUAY TRÁI
QUAY PHẢI
TRỞ LẠI
QUAY TRÁI CHÍN MƢƠI ĐỘ
QUAY PHẢI CHÍN MƢƠI ĐỘ
TRỞ LẠI CHÍN MƢƠI ĐỘ
Số lƣợng câu đúng: đạt trên 80 %
Số lƣợng từ đúng: trên 95 %
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
39
6
KẾT LUẬN
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
40
6.1. Kết quả đạt được
Sau quá trình tìm hiểu và nghiên cứu phƣơng pháp nhận dạng giọng nói
Tiếng Việt, đồ án này đã đạt đƣợc những mục tiêu đề ra nhƣ sau:
a. Tìm hiểu các khái niệm có liên quan đến hệ nhận dạng tiếng nói, từ đó hiểu
và vận dụng đƣợc một số yếu tố quan trọng trong việc sử dụng công cụ hỗ
trợ.
b. Tìm hiểu phƣơng pháp cài đặt công cụ hỗ trợ nhận dạng giọng nói SPHINX.
Trong đó bao gồm việc chi tiết hóa từng bƣớc cài đặt và thực hiện. Các bƣớc
xây dựng mô hình huấn luyện.
c. Xây dựng mô hình mô phỏng nhận dạng giọng nói Tiếng Việt trên máy tính
sử dụng mô hình âm học đƣợc huấn luyện bằng công cụ Sphinx, chƣơng
trình nhận dạng các câu lệnh cơ bản trong điều khiển xe lăn thông minh.
6.2. Những hạn chế:
Do đây là một đề tài tƣơng đối khó, mặt khác những kiến thức về xử lý
tiếng nói, tín hiệu số và các mô hình toán học bản thân chƣa đƣợc trang bị từ
trƣớc mà phải tự tìm hiểu nên còn nhiều hạn chế và thiếu sót.
Thời gian làm quen với hệ điều hành UBUNTU 12.04 và xây dựng mô
hình huấn luyện mất khá nhiều thời gian nên dữ liệu huấn luyện còn tƣơng đối
hạn chế.
Bộ từ vựng còn quá ít so với tất cả các từ đơn của Tiếng Việt. Để có
đƣợc bộ từ vựng lớn hơn đòi hỏi mất rất nhiều công sức và thời gian trong
việc thu âm dữ liệu, xây dựng mô hình phiên âm chính xác.
Mô hình ngôn ngữ còn hạn chế, hệ thống nhận dạng đƣợc độ chính xác
khá cao đối với bản thân tôi. Tuy nhiên đối với ngƣời khác thì mô hình vẫn có
thể nhận dạng đƣợc nhƣng độ chính xác không cao.
Đồ án II: “ Nhận dạng giọng nói Tiếng Việt điều khiển xe lăn thông minh” GVHD: TS. Huỳnh Thái Hoàng
41
6.3. Hướng nghiên cứu và phát triển
Nhận thấy kết quả thu lại cũng khá khả quan nên với kết quả này, đồ án
này là bƣớc đệm khá tốt để hƣớng đến đề tài luận văn sắp tới:
Xây dựng bộ từ vựng, mô hình ngôn ngữ với độ chính xác cao hơn.
Mở rộng quy mô bộ từ vựng của mô hình ngữ âm, rộng rãi hơn, đa dạng
giọng nói hơn nhằm mục đích xây dựng một hệ nhận dạng tiếng nói có độ
chính xác cao với bất kì ngƣời nào.
Ứng dụng một số câu lệnh nhận dạng đƣợc để đƣa vào điều khiển xe lăn
thông minh