---*---BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI NHẬN DẠNG TIẾNG NÓI RỜI RẠC DÙNG MÔ HÌNH MARKOV ẨN VÀ MẠNG NƠ-RON NHÂN TẠO... Tìm hiểu tổng quan về nhận dạng tiếng nói Tìm hiểu các phương pháp
Trang 1-* -BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI NHẬN DẠNG TIẾNG NÓI RỜI RẠC DÙNG MÔ HÌNH MARKOV ẨN VÀ MẠNG NƠ-RON NHÂN TẠO
Trang 21. Đặt vấn đề
2. Mục tiêu của đồ án
3. Tổng quan về nhận dạng tiếng nói
4. Các phương pháp phân tích đặc trưng của tín hiệu tiếng nói
5. Mô hình Markov ẩn trong nhận dạng tiếng nói
6. Mạng nơ-ron nhân tạo
7. Thực hiện nhận dạng tiếng nói rời rạc dùng mô hình Markov ẩn
8. Giới thiệu công cụ Kaldi
9. Kết luận và định hướng phát triển trong tương lai
Trang 3 Xu hướng tương tác giữa người và máy sử dụng ngôn ngữ tự nhiên ngày một phát triển
Nhu cầu về những thiết bị có thể nhận biết và hiểu được tiếng nói đã trở thành một ước muốn tột bậc của con người
3
Trang 4 Tìm hiểu tổng quan về nhận dạng tiếng nói
Tìm hiểu các phương pháp phân tích đặc trưng của tín hiệu tiếng nói
Tìm hiểu nhận dạng tiếng nói dùng mô hình Markov ẩn
Tìm hiểu nhận dạng tiếng nói dùng mạng nơ-ron nhân tạo
Thực hiện nhận dạng tiếng nói rời rạc dùng mô hình Markov ẩn
Tìm hiểu công cụ Kaldi để thực hiện nhận dạng tiếng nói
Trang 5 Nhận dạng tiếng nói:
o Là làm cho máy hiểu, nhận biết được ngữ nghĩa của lời nói
o Là quá trình biến đổi tín hiệu âm thanh thành một chuỗi các từ
5
Trang 6 Cấu trúc của một hệ thống nhận dạng tiếng nói:
Có 3 phương pháp:
o Phương pháp âm học – ngữ âm
o Phương pháp nhận dạng mẫu thống kê
Trang 7a) Mô hình LPC
) Cho ta một xấp xỉ khá tốt của phổ âm thanh
) Chính xác về mặt toán học và đơn giản trong việc cài đặt
) Hoạt động tốt trong các ứng dụng nhận dạng
) Các bước cơ bản của quá trình:
7
Trang 8a) Mô hình LPC
) Hiệu chỉnh tín hiệu:
) Phân khung tín hiệu:
Lấy cửa sổ tín hiệu
Trang 10a) Mô hình LPC
) Tính toán các hệ số Cepstral có trọng số
) Tính đạo hàm của các hệ số Cepstral
) Kết quả là vector đặc trưng 2Q thành phần
Trang 11b) Phương pháp MFCC
) Dựa trên việc chuyển đổi dữ liệu âm thanh đầu vào về thang đo tần số mel
) Quá trình trích rút đặc trưng:
11
Trang 12b) Phương pháp MFCC:
) Biến đổi Fourier nhanh:
) Chuyển đổi tấn số mel, tạo các bộ lọc tam giác
Trang 14a) Các thành phần của HMM
) Tập các trạng thái:
) Tập các quan sát:
) Chuỗi các trạng thái có thể xảy ra:
) Chuỗi các quan sát có thể quan sát được:
) Ma trận chuyển đổi:
) Ma trận xác suất quan sát:
) Ma trận xác suất khởi tạo:
) Một mô hình HMM được ký hiệu :
Trang 15b) Các vấn đề của HMM
) Vấn đề 1:
o Cho chuỗi quan sát và mô hình , tìm P(O|λ) ?
o Thủ tục forward: với biến forward
15
Trang 16b) Các vấn đề của HMM
) Vấn đề 1:
o Thủ tục backward: biến backward
Trang 17b) Các vấn đề của HMM
) Vấn đề 2:
o Cho chuỗi quan sát và mô hình , chọn chuỗi tối ưu theo nghĩa xác suất
o Thuật toán Viterbi: với
17
Trang 18b) Các vấn đề của HMM
) Vấn đề 3: Xác định các tham số λ = (A, B, π) để P(O|λ) đạt cực đại?
Trang 19 Mạng nơ-ron nhân tạo (Artificial neural network – ANN)
o Mô phỏng các hệ thống nơ-ron sinh học (trong bộ não con người)
o Được tạo nên bởi một số lượng các nơ-ron liên kết với nhau
Trang 20 Cấu trúc và hoạt động của một nơ-ron
Trang 21 Kiến trúc của một ANN:
o Số lượng các tín hiệu đầu vào và ra
o Số lượng các tầng
o Số lượng các nơ-ron trong mỗi tầng
o Số lượng các trọng số đối với mỗi nơ-ron
o Cách thức các nơ-ron liên kết với nhau
o Những nơ-ron nhận tín hiệu điều chỉnh lỗi
21
Trang 22 Hàm mục tiêu (hàm đánh giá lỗi):
Xét một ANN có n nơ-ron đầu ra:
Đối với một ví dụ học (x,d), giá trị lỗi học gây bởi vector trọng số w:
Lỗi học gây ra bởi vector trọng số w đối với toàn bộ tập học D:
Trang 23 Mạng nơ-ron nhiều tầng và giải thuật lan truyền ngược:
Có thể biểu diễn một hàm phân tách phi tuyến phức tạp
Giải thuật học lan truyền ngược được sử dụng để học trong một mạng:
o Cấu trúc mạng cố định
o Hàm tác động phải có đạo hàm liên tục
Giải thuật lan truyền ngược áp dụng chiến lược gradient descent
Giải thuật học lan truyền ngược tìm kiếm một vector các trọng số giúp cực tiểu lỗi tổng thể của hệ thống đối với tập học
23
Trang 24 Mạng nơ-ron nhiều tầng và giải thuật lan truyền ngược:
Mạng nơ-ron gồm Q tầng, q= 1,2,…,Q
Netiq và Outiq là đầu vào tổng thể và giá trị đầu ra của nơ-ron i ở tầng q
Mạng có m tín hiệu đầu vào và n nơ-ron đầu ra
wijq là trọng số của liên kết từ nơ-ron j ở tầng (q-1) đến nơ-ron i ở tầng q
Bước 0 (khởi tạo)
Chọn ngưỡng lỗi Ethreshold , Gán E=0
Khởi tạo giá trị ban đầu của các trọng số với giá trị nhỏ ngẫu nhiên
Bước 1
Áp dụng vector đầu vào của ví dụ học k đối với tầng vào (q=1)
Outiq = Outi1 = xi(k) , ∀i
Bước 2: Lan truyền tiến các tín hiệu, giá trị đầu ra của mạng OutiQ
Trang 25 Mạng nơ-ron nhiều tầng và giải thuật lan truyền ngược:
Bước 3: Tính toán lỗi đầu ra của mạng và tín hiệu lỗi δiQ của mỗi nơ-ron ở tầng ra:
Bước 4: Lan truyền ngược lỗi để cập nhật các trọng số và tính toán các tín hiệu lỗi δiq-1 cho các tầng phía trước:
25
Trang 26 Mạng nơ-ron nhiều tầng và giải thuật lan truyền ngược:
Bước 5: Kiểm tra nếu toàn bộ tập học đã được dùng thì chuyển đến bước 6, nếu không chuyển đến bước 1
Bước 6: Nếu lỗi tổng thể E < Ethreshold thì quá trình học kết thúc và trả về các trọng số học được
Ngược lại, gán E=0 và bắt đầu một kỳ học mới (quay lại bước 1)
Trang 27 Bộ dữ liệu học và kiểm tra:
o Bộ mẫu gồm 9 từ: “một”, “hai”, …,“chín”
o Thực hiện thu 100 mẫu
Thực hiện trích rút đặc trưng theo phương pháp MFCC
Xây dựng mô hình máy nhận dạng tiếng nói rời rạc:
o Xây dựng mô hình cho mỗi từ thông qua quá trình huấn luyện (vấn đề 3)
o Tiếng nói cần nhận dạng được tính xác suất trên mô hình HMM của mỗi từ
o Từ được nhận dạng là từ có xác suất cao nhất
27
Trang 28 Xây dựng mô hình máy nhận dạng tiếng nói rời rạc:
Trang 29 Kết quả nhận dạng:
o Kết quả nhận dạng khá tốt Độ chính xác là 96,22%
o Tuy nhiên chương trình vẫn chỉ đang thực hiện với bộ dữ liệu nhỏ
o Mô hình được huấn luyện với chỉ một người nói
29
Trang 30 Là bộ công cụ nhận dạng tiếng nói viết bằng C++
Năm 2009, trong hội thảo với chủ đề “Nhận dạng tiếng nói chất lượng cao, chi phí thấp cho ngôn ngữ và vùng miền mới” của Đại
học Johns Hopkins
Phát hành vào ngày 14/5/2011
Tải và cài đặt Kaldi:
git clone https://github.com/kaldi-asr/kaldi.git kaldi-trunk origin golden
cd kaldi-trunk
Môi trường máy tính tối thiểu để chạy Kaldi là môi trường Unix bất kỳ
Trang 31 Chạy thử kịch bản mẫu nhận dạng tiếng nói “yes/no” rời rạc:
Kết quả nhận dạng:
o Bộ dữ liệu test gồm 29 file tiếng nói, mỗi file gồm 8 lần phát âm yes hoặc no
tổng cộng có 138 lần nói yes và 94 lần nói no.
o Kết quả nhận dạng là 100% kết quả rất tốt
Kaldi là bộ công cụ sử dụng kỹ thuật nhận dạng mới: deep learning (học sâu),
31
Trang 32 Kết quả đã đạt được:
Tìm hiểu được các kiến thức về nhận dạng tiếng nói:
Thực hiện nhận dạng tiếng nói rời rạc trên mô hình Markov ẩn
Tìm hiểu công cụ Kaldi
Kết quả chưa đạt được:
Chưa xây dựng được ứng dụng có giao diện hoàn thiện
Quá trình nhận dạng mới chỉ làm việc trên bộ dữ liệu nhỏ, một người nói
Chưa tìm hiểu sâu về công cụ Kaldi
Định hướng trong tương lai:
Xây dựng một ứng dụng hoàn thiện phục vụ người dùng
Cải thiện tập huấn luyện về chất lượng và số lượng
Tìm hiểu về kỹ thuật nhận dạng mới – Deep Learning
Sử dụng công cụ Kaldi để nhận dạng tiếng nói