a. Cơ sở dữ liệu
Chương trình sử dụng bộ dữ liệu INTERSPEECH 2009. Các bản ghi âm có tần số lấy mẫu 16 kHz.
b. Phương pháp thực hiện
Các đặc trưng được lựa chọn: ngữ điệu (F0), pitch, phổ (Mel Frequency Cepstral Coefficients - MFCC, Line Spectral Frequency – LSF).
Sử dụng mô hình GMM để huấn luyện và nhận dạng cảm xúc. Các cảm xúc được phân lớp để nhận dạng:
- Phân loại cảm xúc thành 5 lớp gồm: Tức giận (subsuming angry, tự ái, và khiển trách), nhấn mạnh, bình thường, tích cực (subsming motherese và vui vẻ) và các cảm xúc còn lại.
- Phân loại cảm xúc thành 2 lớp: tiêu cực (subsuming angry, tự ái, quở trách, và nhấn mạnh) và IDLE (tất cả các cảm xúc còn lại).
Các thử nghiệm được thực hiện lần lượt trên phân loại 2 lớp cảm xúc và 5 lớp cảm xúc với các đặc trưng và kết hợp các đặc trưng đã được lựa chọn để nhận dạng cảm xúc.
c. Kết quả
- Kết quả nhận dạng khi phân loại 2 lớp cảm xúc sử dụng đặc trưng MFCC là 66,36%, đặc trưng LSF là 63,36%.
- Kết quả nhận dạng khi phân loại 5 lớp cảm xúc: sử dụng đặc trưng MFCC là 39,94%, đặc trưng LSF là 33,68%.
Dựa trên phân tích tất cả các kết quả nhận dạng thì đặc trưng MFCC là đặc trưng tốt hơn cho nhận dạng cảm xúc.
1.5. Tìm hiểu về các kết quả nhận dạng cảm xúc tại Việt Nam
Hiện nay, đã có một số các công trình, ứng dụng nhận dạng cảm xúc đã được công bố và đang thử nghiệm tại Việt Nam. Tuy nhiên, đến thời điểm hiện tại chưa có nhiều công trình nghiên cứu về nhận dạng cảm xúc của người nói tiếng Việt được công bố. Do đó, luận văn sẽ tìm hiểu về các kết quả nhận dạng cảm xúc sử dụng phương pháp phân tích cử động trên khuôn mặt và điện não đã được công bố tại Việt Nam.
1.5.1. Robot biết an ủi con ngƣời [16]
Cấu tạo của robot: Robot này được cấu tạo gồm 3 phần:
- Phần đầu: điều khiển 2 camera và 1 động cơ điều khiển góc quay cho trục camera.
- Phần thân: gồm 3 tầng đặt máy và mạch điều khiển. - Phần chân: gồm 3 động cơ, hộp số giảm xóc.
Hoạt động của robot: robot này sẽ nhận diện khuôn mặt người để di chuyển theo cảm xúc: khi bạn buồn robot sẽ tiến đến an ủi; khi bạn vui robot sẽ lùi xa… Việc nhận dạng sẽ được thực hiện do máy tính nhúng gắn trên robot thực hiện và truyền kết quả đến các vi xử lý điều khiển chuyển động camera và robot.
Các cảm xúc được nhận dạng: buồn, vui, giận. Kết quả: tỷ lệ nhận dạng đạt 90 %.
1.5.2. Nhận dạng cảm xúc qua điện não (EEG) theo thời gian thực sử dụng mô hình máy vector hỗ trợ (SVM- Support Vector Machine) [9] hình máy vector hỗ trợ (SVM- Support Vector Machine) [9]
a. Cơ sở dữ liệu
Nhận dạng cảm xúc sử dụng thông tin từ điện não. b. Phương pháp thực hiện
Mô hình nhận dạng dựa trên mô hình Circumplex của Russell, thuật toán Higuchi Fractal Dimension (HFD) và mô hình máy vevtor hỗ trợ (SVM).
Mô hình gồm 2 phương pháp chính trong bước học máy:
- Phương pháp 1: hệ thống sẽ học tất cả các tín hiệu điện não của các đối tượng khác nhau.
- Phương pháp 2: hệ thống sẽ học tín hiệu điện não của đối tượng cụ thể. c. Kết quả
Với phương pháp 1 sẽ không thể áp dụng trong các ứng dụng thực tế vì tín hiệu điện não của từng đối tượng có đặc điểm cá nhân.
Với phương pháp 2 đã nhận dạng được 5 cảm xúc cơ bản của con người theo thời gian thực với tỷ lệ nhận dạng đạt 70,5%.
1.6. Mục tiêu cần phải thực hiện của đề tài
Trên cơ sở nghiên cứu lý thuyết về hệ thống nhận dạng cảm xúc của người nói mục tiêu mà học viên đề ra trong khi thực hiện luận văn này là:
- Tìm hiểu và đề ra phương pháp để xây dựng được module huấn luyện phục vụ cho nhận dạng giới tính, nhận dạng cảm xúc của người nói.
- Nghiên cứu, thử nghiệm các phương án lựa chọn số thành phần Gaussian trong mô hình GMM để hệ thống nhận dạng đạt kết quả tốt.
- Xây dựng mô hình nhận dạng giới tính, nhận dạng cảm xúc của người nói dựa trên 2 tiêu chí: người nói đã được huấn luyện trong hệ thống và người nói chưa được huấn luyện trong hệ thống.
Các chương tiếp theo của luận văn sẽ đề cập đến các bước cần phải thực hiện và công cụ sử dụng để đạt được mục tiêu trên.
CHƢƠNG 2: PHƢƠNG PHÁP THỰC HIỆN VÀ CÔNG CỤ SỬ DỤNG
2.1. Phƣơng pháp thực hiện đề tài
Trên cơ sở nghiên cứu lý thuyết, tìm hiểu về nhận dạng giới tính, cảm xúc người nói, phương pháp thực hiện đề tài được lựa chọn cụ thể như sau:
- Đặc trưng được sử dụng để nhận dạng giới tính, cảm xúc là đặc trưng MFCC. - Mô hình sử dụng huấn luyện giới tính, cảm xúc là mô hình GMM.
- Công cụ sử dụng: máy ảo Vmware, môi trường Linux, hệ điều hành CentOS, ALIZE, gói thư viện LIA-RAL, công cụ Spro, ngôn ngữ lập trình Python.
- Dữ liệu thử nghiệm: Cơ sở dữ liệu cảm xúc tiếng Đức (EMO-DB), cơ sở dữ liệu cảm xúc tiếng Việt (VEMO-DB).
- Các cảm xúc được nhận dạng
+ Cơ sở dữ liệu cảm xúc tiếng Đức gồm 7 cảm xúc: Tức giận (Anger -W), vui (Happiness/joy - F), buồn (sadness -T), Trung lập (Neutral- N), chán nản (Boredom- L), ghê tởm (Disgust-E) và sợ hãi (Anxiety/fear -A).
+ Cơ sở dữ liệu cảm xúc tiếng Việt gồm 4 cảm xúc: Tức giận (Anger -W), vui (Happiness/joy - F), buồn (Sadness -T), Trung lập (Neutral- N).
- Các thử nghiệm được thực hiện: thử nghiệm nhận dạng giới tính, thử nghiệm nhận dạng cảm xúc trên tập dữ liệu cảm xúc của nam, thử nghiệm nhận dạng cảm xúc trên tập dữ liệu cảm xúc của nữ, thử nghiệm nhận dạng cảm xúc trên tập dữ liệu của nam và nữ. So sánh kết quả và đưa ra kết luận.
Trên cơ sở lựa chọn phương pháp thực hiện đề tài, các phần tiếp theo của luận văn sẽ trình bày tóm tắt về phương pháp trích chọn đặc trưng MFCC, mô hình GMM, cách cài đặt cũng như chức năng của công cụ sử dụng trong luận văn.
Nội dung của chương này sẽ trình bày các vấn đề sau: - Phương pháp thực hiện đề tài
2.2. Trích chọn đặc trƣng MFCC
Trích chọn đặc trưng MFCC là phần quan trọng nhất trong bước xử lý tín hiệu, đồng thời cũng là một trong những khâu có vai trò quyết định tới độ chính xác đạt được của hệ thống. Đầu vào của quá trình trích chọn đặc trưng là một đoạn tín hiệu tiếng nói và đầu ra là một tập gồm 39 giá trị đặc trưng cho mỗi một frame tiếng nói. Trích chọn đặc trưng MFCC gồm các bước được mô tả trong hình 2.1
Hình 2.1: Các bước trích chọn đặc trưng MFCC Để trích chọn đặc trưng MFCC các bước thực hiện cụ thể như sau:
- Bộ lọc hiệu chỉnh (Pre-emphasis): là bộ lọc số bậc thấp để cho phổ đồng đều hơn, như vậy sẽ làm giảm ảnh hưởng gây ra bởi độ chính xác hữu hạn của các phép xử lý tín hiệu sau này.
+ Đầu vào của bộ lọc hiệu chỉnh: tín hiệu tiếng nói, ký hiệu s(n)
+ Đầu ra của bộ lọc hiệu chỉnh: tín hiệu tiếng nói với phổ đồng đều hơn, ký hiệu s2(n)
Tín hiệu ra có quan hệ với tín hiệu vào theo phương trình sai phân sau: s2 (n) = s(n) – a. s(n-1) Trong đó: a là hằng số và 0.9 <a<1.0 Bộ lọc hiệu chỉnh Phân khung Lấy cửa sổ FFT Gắn trọng số DCT Các băng lọc tam giác Tín hiệu tiếng nói Đạo hàm theo thời gian 12 MFCC 1 erergy 12MFCC 12MFCC 1 energy 1 energy
Tín hiệu tiếng nói đầu vào s(n)
Tín hiệu tiếng nói sau khi lọc hiệu chỉnh với a = 0.95
Hình 2.2: Minh họa một đoạn tín hiệu tiếng nói trước và sau khi lọc hiệu chỉnh - Phân khung (Frame Blocking): chia tín hiệu tiếng nói thành các đoạn nhỏ cỡ 10-30ms. Tín hiệu tiếng nói đã được hiệu chỉnh được phân thành các khung mỗi khung có N mẫu, hai khung kề nhau lệch nhau M mẫu. Khung đầu tiên chứa N mẫu, khung thứ hai bắt đầu chậm hơn khung thứ nhất M mẫu và chờm lên khung thứ nhất N-M mẫu
- Lấy cửa sổ: là lấy cửa sổ (windowing) cho mỗi khung hình riêng rẽ, để giảm thiểu tính gián đoạn tại điểm đầu và điểm cuối của mỗi khung.
- Biến đổi Fourier rời rạc: là chuyển đổi tín hiệu tiếng nói trong từng frame sang miền tần số thông qua phép biến đổi Fourier rời rạc, phép biến đổi Fourier nhanh (FFT) thường được sử dụng để đảm bảo tốc độ. Sau khi tính FFT ta sẽ thu được phổ năng lượng.
- Các băng lọc tam giác: sử dụng để biến đổi phổ tín hiệu thu được sau khi tính FFT sang thang Mel trên miền tần số. Cho phổ năng lượng đi qua một dãy băng lọc
ta sẽ thu được một dãy phổ năng lượng, tính tổng của các phổ năng lượng trong từng băng lọc ta thu được dãy các hệ số mk.
- Biến đổi Cosine rời rạc (DCT): sẽ chuyển log các giá trị mk về miền thời gian và kết quả của phép biến đổi này ta thu được các hệ số MFCC. Trong các ứng dụng nhận dạng tiếng nói người ta thường lấy 12 hệ số MFCC và thêm 1 hệ số năng lượng của khung sau khi đã được chuẩn hóa.
- Gắn trọng số: Đối với các tham số đặc trưng tiếng nói được tính từ miền tần số như các hệ số MFCC, do độ nhạy của các hệ số Cepstral bậc thấp làm cho phổ toàn bộ đị đổ dốc và độ nhạy của các hệ số Cepstral bậc cao gây ra nhiễu, nên người ta thường sử dụng cửa sổ Cepstral để cực tiểu hóa các độ nhạy này.
- Đạo hàm theo thời gian: đạo hàm theo thời gian của các hệ số MFCC vào trong vector tham số tiếng nói để nâng cao chất lượng nhận dạng.
Kết thúc bước trích chọn đặc trưng MFCC với mỗi frame ta thu được một vector có 39 giá trị biểu diễn tham số đặc trưng của tiếng nói.
2.3. Mô hình GMM sử dụng trong nhận dạng giới tính, cảm xúc của ngƣời nói
Mô hình hợp Gauss (Gaussian Mixture Model - GMM) là một dạng mô hình thống kê được xây dựng từ việc huấn luyện các tham số thông qua dữ liệu học. Về cơ bản, mô hình GMM xấp xỉ một hàm mật độ xác suất bằng hợp các hàm mật độ Gauss.
Hình 2.3 minh họa hai hàm mật độ Gauss với các tham số khác nhau.
Hàm mật độ xác suất của phân phối Gauss fN(x, μ, σ2) được cho bởi công thức: 2 2 1 ( ) ( ) exp 2 2 x p x (1.1)
Trong đó: μ là giá trị trung bình, σ là độ lệch chuẩn.
Trong trường hợp x là vector gồm D thành phần, hàm mật độ xác suất của phân phối Gauss fN(x, μ, Σ) được cho bởi công thức:
' 1 / 2 1/ 2 1 1 ( ) exp ( ) ( ) (2 )D | | 2 p x x x (1.2)
Trong đó: μ là vector trung bình, Σ là ma trận hiệp phương sai.
Nếu chọn μ=0 và σ=1, công thức (1.1) sẽ trở thành hàm mật độ chuẩn Gauss: 2 1 ( ) exp 2 (2 ) x p x (1.3)
Cho trước M phân phối Gauss p1, p2, …, pM, hàm mật độ xác suất của mô hình GMM được minh họa trong hình 3.4
Hình 2.4: Mô hình GMM
Hàm mật độ xác suất của mô hình GMM trong hình 2.4 chính là tổng trọng số của M phân phối Gauss theo công thức:
1 ( ) ( ) M GMM i i i P x w p x (1.4)
Trong đó:
- wi là trọng số của phân phối Gauss thứ i, thỏa ràng buộc 0≤ wi ≤1 và
∑ wi
Các trọng số này thể hiện mức độ ảnh hưởng của mỗi phân phối Gauss đối với mô hình GMM. Như vậy, phân phối Gauss có phương sai và trọng số lớn bao nhiêu thì có mức độ ảnh hưởng lớn bấy nhiêu đối với kết xuất của mô hình.
Trong hướng tiếp cận mô hình GMM để giải quyết bài toán nhận dạng giới tính của người nói mỗi giới tính sẽ được mô hình hóa bằng một mô hình GMM và bộ tham số λ = { wi, μi, Σi }, i ∈ [1, M] sẽ được xác định thông qua việc huấn luyện trên tập mẫu học.
Đối với hướng tiếp cận mô hình GMM để giải quyết bài toán nhận dạng cảm xúc của người nói mỗi cảm xúc sẽ được mô hình hóa bằng một mô hình GMM và bộ tham số λ = { wi, μi, Σi }, i ∈ [1, M] sẽ được xác định thông qua việc huấn luyện trên tập mẫu học.
2.4. Bộ công cụ ALIZE và LIA-RAL
ALIZE là một thư viện hỗ trợ trong lĩnh vực nhận dạng tự động người qua giọng nói sử dụng mô hình GMM. ALIZE được phát triển từ một hệ thống có sẵn tại KTH (Kungliga Tekniska högskolan - Royal Institute of Technology), gọi là GIVES (General Identity Verification System).
Gói LIA-RAL được xây dựng trên thư viện ALIZE nên không thể sử dụng chỉ LIA-RAL mà phải sử dụng các gói cùng nhau.
Ngôn ngữ được dùng để phát triển ALIZE là C++ theo hướng đối tượng UML. ALIZE là phần mềm mã nguồn mở miễn phí, có thể dowload tại địa chỉ:
http://mistral.univ-avignon.fr/download_en.html. Với 2 gói: gói ALIZE 2.0 có kích thước : 1.028MB và gói LIA – RAL2.0 có kích thước: 9.761MB
Yêu cầu về phần mềm khi sử dụng ALIZE và LIA-RAL:
- Môi trường Linux, nếu muốn sử dụng trên Window thì cần cài đặt môi trường chạy lệnh UNIX sử dụng công cụ công cụ CYGWIN. CYGWIN là công cụ miễn phí có thể tải trên mạng ở địa chỉ http://www.cygwin.com/ .
- Đối với các bước biên dịch thì cần sử dụng g++.
Luận văn sử dụng bộ công cụ ALIZE và LIA-RAL trên môi trường Linux, cài máy ảo phiên bản VMware Workstation v9.0.1 (710MB) và hệ điều hành sử dụng là CentOS6.4 (4.58GB).
Khi sử dụng ALIZE và LIA-RAL trong bài toán nhận dạng cần phải cài đặt thêm bộ công cụ SPro để sử dụng trong khâu trích chọn đặc trưng.
2.5. Bộ công cụ SPro
SPro là một bộ công cụ cung cấp các lệnh thực thi các thuật toán trích chọn đặc trưng tiếng nói trong các ứng dụng nhận dạng tiếng nói.
SPro có các lệnh chính sau đây: - Năng lượng filter – bank
- Hệ số cepstral (filter-bank và dự đoán tuyến tính)
Các thư viện được viết trong ANSI C, cung cấp các chức năng sau: - Tín hiệu đầu vào dạng sóng
- Xử lý tín hiệu ở mức thấp (FFT, phân tích LPC,..)
Spro được sử dụng trên nền Linux, SPARC/SunOS và HP-UX. Có thể dowload Spro phiên bản SPro4.0.1, dung lượng 1.3M tại địa chỉ:
http://www.irisa.fr/metiss/guig/spro/spro-4.0.1/.
2.6. Ngôn ngữ lập trình Python
Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm 1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ động; do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python được phát triển trong một dự án mã mở của tổ chức phi lợi nhuận Python Software Foundation.
Python là một ngôn ngữ lập trình hướng đối tượng rất thông dụng dùng để viết các tiện ích hệ thống và các đoạn mã trên Internet. Nó cũng được sử dụng như ngôn ngữ kết dính đóng vai trò tích hợp C và C++.
Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu.
Python được sử dụng hệ điều hành từ DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix. Có thể download Python 3.0 tại địa chỉ: http://www.python.org.
Đặc điểm của Python: là một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu, thể hiện qua các điểm sau:
- Từ khóa: tăng cường sử dụng từ khóa tiếng anh, hạn chế các kí hiệu và cấu trúc cú pháp so với các ngôn ngữ khác. Python là một ngôn ngữ phân biệt kiểu chữ hoa, chữ thường, các từ khóa đều ở dạng chữ thường.
- Khối lệnh: Python có một cách rất đặc biệt để tạo khối lệnh, đó là thụt các