ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
HÀ THỊ THU GIANG
NGHIÊN CỨU VỀ NHẬN DẠNG TIẾNG NÓI
ỨNG DỤNG VÀO ĐIỀU KHIỂN XE LĂN
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN - 2017
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
HÀ THỊ THU GIANG
NGHIÊN CỨU VỀ NHẬN DẠNG TIẾNG NÓI
ỨNG DỤNG VÀO ĐIỀU KHIỂN XE LĂN
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS. Vũ Việt Vũ
THÁI NGUYÊN - 2017
i
Hà Thị Thu Giang
iii
MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN ............................................................................................................ ii
MỤC LỤC ................................................................................................................. iii
DANH MỤC TỪ VIẾT TẮT ......................................................................................v
DANH MỤC CÁC BẢNG........................................................................................ vi
DANH MỤC CÁC HÌNH ........................................................................................ vii
MỞ ĐẦU .....................................................................................................................1
Chương 1 .....................................................................................................................3
TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI ........................................................3
1.1 Tổng quan về lĩnh vực xử lý tiếng nói ...............................................................3
1.1.1. Tiếng nói là gì? ...........................................................................................3
1.1.2. Biểu diễn tín hiệu tiếng nói ........................................................................3
1.1.3. Các bài toán trong lĩnh vực xử lý tiếng nói ................................................6
1.2. Nhận dạng tiếng nói ..........................................................................................7
1.2.1. Khái niệm nhận dạng tiếng nói ..................................................................7
1.2.2 Tổng quan về bài toán nhận dạng................................................................9
1.2.3. Các bước xử lý trong bài toán nhận dạng tiếng nói .................................11
1.3. Các khó khăn gặp phải trong nghiên cứu về nhận dạng tiếng nói ..................14
1.4. Nghiên cứu về nhận dạng tiếng nói ở Việt Nam ............................................15
1.5. Ứng dụng ........................................................................................................16
1.6. Kết luận ...........................................................................................................16
Chương 2 ...................................................................................................................17
NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP NHẬN DẠNG TIẾNG NÓI ..............17
3.4.1. Phần mềm, thư viện và CSDL nhận dạng. ...............................................40
3.4.2. Các bước của giải thuật điều khiển xe lăn................................................41
3.4.3. Thiết kế phần mềm ...................................................................................43
3.5. Chạy thử ..........................................................................................................51
KẾT LUẬN ...............................................................................................................52
Những kết quả đã đạt được .............................................................................52
Hướng phát triển tiếp theo của đề tài ..............................................................52
TÀI LIỆU THAM KHẢO .........................................................................................54
v
DANH MỤC TỪ VIẾT TẮT
FFT
-
Fast Fourier Transform
DFT
-
Digital Fourier Transform
ADC
-
Neural Networks
BP
-
Back Propagation
ICA
-
Independent Component Analysis
DC motor
-
Dirrect Current
DCT
-
Discrete Cosine Transform
vi
Logistic( z )
1
. ........................................................................... 29
1 ez
Hình 2.11. Ví dụ về mạng Nơ ron hồi quy...................................................... 30
Hình 2.12. Mạng perceptron với hai đầu vào và hai đầu ra ............................ 31
viii
Hình 2.13. Mạng Nơ ron với hai đầu vào, một lớp ẩn và hai đầu ra. ............. 31
Hình 2.14. Thuật toán Back-Propagation........................................................ 33
Hình 3.1. Xe lăn thông minh tại phòng thí nghiệm của Đại học Texas
(Mỹ) ................................................................................................ 37
Hình 3.2. Xe lăn điều khiển bằng giọng nói đạt giải nhất cho sinh viên tại
Việt nam năm 2015 ......................................................................... 38
Hình 3.3. Xe lăn điều khiển bằng giọng nói của tác giả và nhóm nghiên
cứu tại phòng thí nghiệm ................................................................ 38
Hình 3.4. Mô hình kế nối hệ thống chi tiết giữa module điều khiển của
xe lăn và điều khiển từ xa của điện thoại thông minh .................... 39
Hình 3.5. Lưu đồ thuật toán của hệ thống nhận dạng ..................................... 42
Hình 3.6. Sơ đồ khối của quá trình nhận dạng tiếng nói trong Sphinx-4 ....... 43
1
MỞ ĐẦU
Nghiên cứu về lĩnh vực xử lý tiếng nói đã thu hút nhiều nghiên cứu
trên thế giới trong những năm qua. Các bài toán của lĩnh vực xử lý tiếng
nói có thể kể đến như nghiên cứu về sự biểu diễn, lưu trữ và truyền tín
3
Chương 1
TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI
1.1 Tổng quan về lĩnh vực xử lý tiếng nói
1.1.1. Tiếng nói là gì?
Tiếng nói là một trong những phương tiện trao đổi thông tin cơ bản của
con người. Tiếng nói được tạo ra từ tư duy của con người, trung khu thần kinh
điều khiển hệ thống phát âm làm việc tạo ra âm thanh. Tiếng nói được phân
biệt với các âm thanh khác bởi các đặc tính âm học có nguồn gốc từ cơ chế
tạo tiếng nói. Về bản chất, tiếng nói là sự dao động của không khí có mang
theo thông tin. Các dao động này tạo thành những áp lực đến tai và được tai
phát hiện, phân tích và chuyển kết quả đến trung khu thần kinh. Lúc này tại
trung khu thần kinh, thông tin được tái tạo lại dưới dạng tư duy logic mà con
người có thể hiểu được.
Tín hiệu tiếng nói được tạo thành bởi các chuỗi các âm vị liên tiếp. Sự
sắp xếp của các âm vị được chi phối bởi các quy tắc của ngôn ngữ. Việc
nghiên cứu một cách chi tiết về những quy tắc này cũng như những khía cạnh
khác bên trong tiếng nói thuộc về chuyên ngành ngôn ngữ. Việc phân loại các
âm vị của tiếng nói thuộc về chuyên ngành ngữ âm học. Khi nghiên cứu các
mô hình toán học của cơ chế tạo tiếng nói, việc nghiên cứu về các âm vị là rất
cần thiết. Tóm lại khi nghiên cứu các vấn đề về xử lý tiếng nói chúng ta cần
phải nghiên những vấn đề về ngữ âm, ngôn ngữ học, xử lý tín hiệu,…
1.1.2. Biểu diễn tín hiệu tiếng nói
Tín hiệu tiếng nói là tín hiệu tương tự. Do đó khi biểu diễn tín hiệu
tiếng nói trong môi trường tính toán của tín hiệu số, việc biểu diễn và lưu trữ
sao cho không bị mất mát thông tin là vấn đề hết sức quan trọng trong các hệ
thống thông tin có sử dụng tín hiệu tiếng nói. Việc xem xét các vấn đề xử lý
tín hiệu tiếng nói trong các hệ thống này dựa trên ba vấn đề chính:
phương pháp này lại thường là biểu diễn tín hiệu theo dạng sóng. Điều này có
nghĩa là tín hiệu tiếng nói được lấy mẫu và lượng tử hoá giống như phương
pháp biểu diễn tín hiệu tiếng nói dạng sóng, sau đó tiến hành xử lý để thu
được các tham số của tín hiệu tiếng nói của mô hình tạo tiếng nói nêu trên.
6
Các tham số của mô hình tạo tiếng nói này thường được phân loại thành các
tham số tín hiệu nguồn (có quan hệ mật thiết với nguồn của tiếng nói) và các
tham số của bộ máy phát âm tương ứng (có quan hệ mật thiết với giọng nói
của từng người).
Vì tiếng nói là tín hiệu liên tục nên để áp dụng các phương pháp xử lý
tín hiệu thì tiếng nói phải được biểu diễn dưới dạng rời rạc. Quá trình rời rạc
hoá tín hiệu tiếng nói bao gồm các bước sau:
- Lấy mẫu tín hiệu tiếng nói.
- Lượng tử hoá các mẫu với các bước lượng tử cụ thể.
- Mã hoá và nén tín hiệu.
1.1.3. Các bài toán trong lĩnh vực xử lý tiếng nói
Dựa trên cơ sở lựa chọn các cách biểu diễn tín hiệu và phương pháp xử
lý, đã có rất nhiều các ứng dụng quan trọng đã được triển khai. Hình 1.4 dưới
đây sẽ liệt kê các bài toán quan trọng của lĩnh vực xử lý tiếng nói:
Hình 1.4. Các bài toán ứng dụng trong lĩnh vực xử lý tiếng nói
Bản chất của xử lý tiếng nói chính là xử lý thông tin chứa trong tín hiệu
tiếng nói nhằm truyền, lưu trữ tín hiệu này hoặc tổng hợp, nhận dạng tiếng
nói. Các nghiên cứu được tiến hành để xử lý tiếng nói yêu cầu những hiểu biết
trên nhiều lĩnh vực ngày càng đa dạng: từ ngữ âm và ngôn ngữ học cho đến
7
Nhận dạng tiếng nói là một quá trình nhận dạng mẫu, với mục đích là
phân lớp (classify) thông tin đầu vào là tín hiệu tiếng nói thành một dãy tuần
tự các mẫu đã được học trước đó và lưu trữ trong bộ nhớ. Các mẫu ở đây là
các đơn vị nhận dạng, chúng có thể là các từ, hoặc các âm vị. Nếu các mẫu
này là bất biến và không thay đổi thì công việc nhận dạng tiếng nói trở nên
đơn giản bằng cách so sánh dữ liệu tiếng nói cần nhận dạng với các mẫu đã
được học và lưu trữ trong bộ nhớ. Khó khăn cơ bản của nhận dạng tiếng nói
đó là tiếng nói luôn biến thiên theo thời gian và có sự khác biệt lớn giữa tiếng
nói của những người nói khác nhau, tốc độ nói, ngữ cảnh và môi trờng âm
học khác nhau.
Một số loại bài toán nhận dạng tiếng nói trên thực tế có thể kể đễn
như sau:
- Nhận dạng với số lượng từ vựng ít chẳng hạn yes, no, hay các số từ 0
đên 9 là nhiệm vụ dễ hơn cả, tuy nhiên nếu nhận dạng số lượng từ vựng lớn
chẳng hạn các từ trong các cuộc đàm thoại thì vấn đề sẽ khó khăn hơn rất
nhiều bởi số từ có thể lên đến hàng chục nghìn.
9
- Nhận dạng các từ độc lập (mỗi từ đều có khoảng lặng bao quanh) sẽ
dễ dàng hơn các từ liên tục chẳng hạn một bài phát biểu liên tục, một cuộc
hội thoại,…
- Vấn đề nhận dạng trong môi trường nhiễu: chẳng hạn nhận dạng trong
các nơi công cộng như nhà ga, bến xe, trên đường phố,…
- Vấn đề cuối cùng là giọng nói: ví dụ nhận dạng người nước ngoài nói
tiếng Việt, người nói giọng địa phương,…
Bảng 1.1 trình bày kết quả của một số hệ thống nhận dạng tiếng nói.
Chúng ta có thể thấy rằng với hệ thống nhận dạng gồm các con số đơn giản
thì tỷ lệ đạt được là 99.5%, tuy nhiên với các hệ thống nhận dạng các từ nói
liên tục, hàng ngày, bất kỳ thì tỷ nhận dạng đúng chỉ có thể đạt được là 80%.
80
Nhận dạng các bài đọc trên báo
Wall Street
Nhận dạng các bài đọc trên báo
Wall Street
1.2.2 Tổng quan về bài toán nhận dạng
Nhận dạng đối tượng là lớp bài toán được quan tâm nghiên cứu rất
nhiều trong thực tế. Các ứng dụng của nó có thể kể như nhận dạng mặt người,
nhận dạng chữ, nhận diện đồ vật, nhận dạng tiếng nói. Các bài toán nhận dạng
xuất hiện ở khắp nơi từ khi có sự ra đời của máy tính kèm theo các kỹ thuật
để giải quyết các bài toán như vậy. Để giải quyết lớp các bài toán nhận dạng
trên thực tế chúng ta sử dụng phương pháp học có giám sát.
10
Học có giám sát (supervised learning) là một trong những chủ đề quan
trọng trong lĩnh vực trí tuệ nhân tạo; đi kèm với học có giám sát chúng ta còn
có học không giám sát và học nửa giám sát. Bài toán học có giám sát được
phát biểu như sau:
Cho tập X = {xi}, i = 1, 2,… , N với xi diễn tả một đối tượng trong
không gian d chiều. Với mỗi xi tương ứng có nhãn là yi với yi {C1, C2, …,
CM} hoặc yi R. Mục tiêu của bài toán học có giám sát là đi xây dựng hàm
f(.) dựa trên các bộ (xi, yi) sao cho hàm f có khả năng xác định nhãn cho một
đối đượng xnew nào đó.
Mô hình tổng quát của bài toán học có giám sát được minh họa bởi
hình 2.1. Từ các dữ liệu thu thập được chúng ta qua các khâu như tiền xử lý
dữ liệu (làm sạch, lọc), tiếp đến là trích chọn đặc trưng rồi đưa vào cho thuật
cạnh nào đó và trong một lĩnh vực cụ thể nào đó. Học máy đôi khi chúng ta
còn gọi là học thống kê vì lý do chúng ta sử dụng các bộ dữ liệu thu thập
được qua việc áp dụng các phương pháp thống kê.
Các thuật toán học có giám sát tiêu biểu trong thực tế hiện nay có thể
kể đến như: phương pháp mô hình Markov ẩn (HMM), phương pháp dựa trên
lý thuyết xác suất Bayes, phương pháp Support Vector Machine (SVM),
phương pháp mạng Nơ ron, phương pháp cây quyết định, phương pháp
Principle Component Analysis (PCA),… Mỗi phương pháp có những ưu và
nhược điểm riêng cũng như phù hợp cho các ứng dụng theo lĩnh vực.
Trong phần tiếp theo của chương này, tôi lựa chọn hai phương pháp là
HMM và phương pháp mạng Nơ ron cho việc nghiên cứu và tìm hiều cũng
như phân tích ưu nhược điểm của nó.
1.2.3. Các bước xử lý trong bài toán nhận dạng tiếng nói
Để nhận dạng tiếng nói chúng ta phải dùng công cụ của học máy, cụ
thể là phương pháp học có giám sát. Các công đoạn cơ bản gồm tiền xử lý
dữ liệu, trích chọn đặc trưng, huấn luyện hệ thống nhận dạng và kiểm thử
hệ thống.
Dưới đây là chi tiết các bước của một hệ thống nhận dạng bất kỳ.
Bước 1: Tiền xử lý dữ liệu
- Bước 1: Tiền xử lý (Pre - processing): Tín hiệu lời nói tương tự được
lấy mẫu và lượng tử bằng cách sử dụng ADC ở dạng số. Tỷ lệ lấy mẫu và bit
lượng tử là các tham số chính được đặt tối ưu để tránh méo gập do lấy mẫu và
để có được giá trị chính xác của các mẫu được số hóa. Giảm âm nhiễu và
khoảng lặng (Silence and noise removal): Thu âm thanh bằng micro, đưa vào
máy tính.Trong các tín hiệu ghi lại, một số phần không chứa bất kỳ thông tin
nào, đó là những khoảng lặng. Do đó cần loại bỏ những phần khoảng lặng để
12
qua sơ đồ trong hình 1.7.
Hình 1.7. Các bước trong quá trình trích chọn đặc trưng theo phương pháp
MFCC trong đó FFT là biến đổi Fourrier nhanh, Power Spectrum là phổ
công suất của tín hiệu và DCT là biến đổi cosin rời rạc.
Hiện nay một số nghiên cứu nhằm tăng chất lượng nhận dạng tiếng nói
bằng cách bổ sung thêm các đặc trưng khác chẳng hạn như có khả năng chịu
nhiễu, giải quyết một số nhược điểm của biến đổi Fourrier, giảm phụ thuộc
vào ngữ âm và ngôn ngữ,...
Bước 3: Xây dựng hệ thống nhận dạng tiếng nói
14
Một hệ thống nhận dạng tiếng nói nhằm nhận ra các từ từ tín hiệu tiếng
nói. Sau khi đã có dữ liệu đầu vào chúng ta phải dựa trên tập dữ liệu huấn
luyện, mô hình ngữ âm, mô hình từ vựng và mô hình ngôn ngữ để tìm kiếm
kết quả. Hạt nhân quan trọng chúng ta phải dùng ở đây là một phương pháp
học máy có giám sát thường là mô hình Markov ẩn, mô hình mạng Nơ ron,...
Bước 4: Kiểm thử hệ thống nhận dạng
Bước kiểm thử nhận dạng nhằm kiểm tra xem hệ thống nhận dạng cho
kết quả chính xác như thế nào. Nội dung kiểm tra sẽ từ đơn giản đến phức tạp,
chảng hạn kiểm tra các từ đơn, các chuỗi từ có giọng đọc giống như các dữ
liệu huấn luyện, các giọng đọc địa phương, người nước ngoài,...
1.3. Các khó khăn gặp phải trong nghiên cứu về nhận dạng tiếng nói
Nghiên cứu về nhận dạng tiếng nói đến thời điểm này vẫn luôn chứa
đựng những vấn đề khó khăn phải vượt qua. Cụ thể các khó khăn có thể kể
đến như sau:
- Sự biến động của người nói trong việc phát âm:
Tiếng nói thay đổi theo thời gian, theo độ tuổi,