Một bộ phân lớp tốt có thể thực hiện 1 cách không tối ưu nhất trong việc lựa chọn các đặc trưng mà vẫn đảm bảo được độ chính xác tốt.. Ngược lại, 1 tập các đặc trưng tốt có thể tạo ra 1
Trang 1Viện công nghệ thông tin và truyền thông
Bộ môn Kỹ thuật máy tính -
Báo cáo Thực tập tốt nghiệp
-Đề tài:
Nhận dạng cảm xúc dựa trên tiếng nói
Giảng viên hướng dẫn : Ths.Nguyễn Hồng Quang
Sinh viên : Đặng Đình Đức
Hà nội – 2012
Trang 3Mục Lục
Trang 4Nhận dạng cảm xúc tiếng nói có rất nhiều ứng dụng trong thực tế:
Trong tương tác người – máy, robot có thể được dạy để có thể tương tác được với con người và nhận diện được cảm xúc của con người một vật nuôi bằng robot có thể hiểu được không chỉ là những câu mệnh lệnh, mà còn cả những thông tin khác, như trạng thái tình cảm hay tình trạng sức khỏe chứa đựng trong câu mệnh lệnh đó
Trong những nghiên cứu về mô hình tiếng nói, tiện ích của nó cho phép 1 hệ thống không chỉ nhận dạng được nội dung đã mã hóa trong những phản hồi của người sử dụng, mà còn trích xuất thông tin về trạng thái cảm xúc của người sử dụng bằng cách phân tích cách thức mà những phản hồi được phát âm
Trang 5Nếu không có kiến thức, và hiểu biết về vấn đề thì sẽ không có bộ chia tốt nhất nói chung Trong việc nhận
dạng mẫu, có 1 lý thuyết tương ứng có tên là No free lunch theorem, cho mỗi tập dữ liệu chúng ta sẽ kiểm tra
trên 50 phân lớp, và sau đó chọn 1 tập có độ chính xác cao nhất thông qua chế độ kiểm tra chéo
Không có kiến thức và hiểu biết về vấn đề thì sẽ không có được tập đặc trưng tốt nhất, 1 lý thuyết tương
ứng được biết đến với tên The ugly ducking theorem
Một bộ phân lớp tốt có thể thực hiện 1 cách không tối ưu nhất trong việc lựa chọn các đặc trưng mà vẫn đảm bảo được độ chính xác tốt Ngược lại, 1 tập các đặc trưng tốt có thể tạo ra 1 tập dữ liệu đủ tốt để 1 bộ phân lớp không tối ưu mà vẫn cho kết quả có độ chính xác đủ lớn
Trong khi huấn luyện tránh trường hợp “đa hợp” – 1 tập dữ liệu có thể thuộc nhiều phân lớp khác nhau – vấn đề này có thể được giải quyết bằng cách sử dụng chế độ xác minh chéo trong khi kiểm tra và trong cách trường hợp ngoại lệ của chuỗi dữ liệu thì tìm kiếm những kết quả trung gian giữa độ chính xác và MDL
2 Qui trình xây dựng hệ thống nhận dạng cảm xúc
a Xây dựng khối xử lý tín hiệu
Mục đích của khối xử lý tín hiệu là phân tích, xử lý, tính toán dựa trên tín hiệu tiếng nói đã biết để trích rút
ra những đặc trưng của tín hiệu, để phục vụ cho việc lựa chọn những đặc trưng tiêu biểu của tín hiệu, để phân lớp và so sánh
Đặc trưng của tín hiệu bao gồm :
Những đặc trưng vecto tín hiệu, có thể là những tín hiệu ngắn hoặc dài, đặc trưng long-time được đánh giá dựa vào độ dài của tín hiệu tiếng nói Đặc trưng short-time được xác định trong cửa sổ thời gian nhỏ hơn
Trang 6(thường từ 20 đến 100 ms) Những nghiên cứu hiện đại đã chỉ ra rằng, 1 đặc trưng long-time để xác định cảm xúc thường tốt hơn 1 đặc trưng short-time Tranh luận cho việc sử dụng các đặc trưng short-time là: câu hỏi thường phát ra trong phạm vi rộng hơn câu khẳng định, vì vậy độ lệch tiêu chuẩn khi phát ra trong 1 cụm câu hỏi thường lớn hơn Nhưng vì độ lệch này chỉ là 1 sự phản xạ của cấu trúc câu và không có ảnh hưởng gì tới dạng cảm xúc, nó gây ảnh hưởng tới bộ nhận dạng cảm xúc sử dụng các đặc trưng long-time.
Đặc trưng về âm điệu thường bao gồm trong đặc trưng vecto Âm điệu thông thường gồm có phát âm, cường độ và khoảng thời gian phát âm Thi thoảng, nhưng không cần thiết, đặc trưng về chất lượng tiếng nói cũng thường được sử dụng Những đặc trưng quyết định đến chất lượng tiếng nói bao gồm : formant trung bình
và băng thông, các hài cho đến tỉ lệ tiếng nói, các hệ số MFCC và phổ tương ứng với mỗi đặc trưng (ví dụ, FFT, điểm phổ (spectral roll-of-point) và thông lượng ) Chúng ta thường sử dụng kết hợp giữa các đặc trưng về âm điệu và phân đoạn trong tập dữ liệu khởi tạo mà sau đó hướng tới tập các đặc trưng Sự phân đoạn các đặc trưng
sẽ dẫn đến độ chính xác tốt hơn vì một vài cảm xúc cũng được phân đoạn
b. Xây dựng khối trích chọn đặc trưng
Mục đích của việc xây dựng khối trích chọn đặc trưng là để lựa chọn những đặc trưng quyết định đến cảm xúc của tiếng nói từ tập đặc trưng tiếng nói đã phân tích được từ khối xử lý, sau đó so sánh với tập đặc trưng mẫu để đưa ra quyết định phân lớp đặc trưng
Trích chọn đặc trưng, nếu được thực hiện đúng, sẽ thu được nhiều cải thiện đồng thời cho việc nhận dạng cảm xúc : Loại bỏ những đặc trưng không cần thiết không ảnh hưởng tới việc nhận dạng, nó sẽ làm giảm khối lượng đầu vào, giảm thời gian tính toán và nhiều lợi ích khác nữa
Nhiều thí nghiệp nhận dạng thành công trước đây, không hề có 1 quá trình tự động nào trong các khâu trích chọn đặc trưng, Đôi khi, người ta trích rút đặc trưng mà được lựa chọn trong các nghiên cứu khác hoặc bộ phân lớp của họ rất hiệu quả với dữ liệu tiếng nói hoặc họ may mắn lựa chọn được 1 tập dữ liệu tốt
Nhiều người sử dụng PCA cho việc trích chọn đặc trưng, tuy nhiên nó khá tốn kém
Tác giả cuốn 12 xem xét 1 tập dữ liệu khởi tạo lớn với 381 đặc trưng, thực hiện trích chọn đặc trưng bằng SVM-SFFS (Sequential forward floating search – tìm kiếm nổi bọt ) và cuối cùng chọn ra được 38 đặc trưng Ý
tưởng của giải thuật plus l take away r được thực hiện như sau : cứ l lần thực hiện SFS sau mỗi r lần thực hiện SBS, trong phương pháp SFFS, đối lập với giải thuật plus l take away r, số bước tiến và lùi được điều khiển tự
động thay vì xác định trước 1 giá trị cố định SVM-SFFS cho kết quả tốt hơn và kinh tế hơn phương phấp PCA.Tác giả cuốn 12 đã trích xuất 51 đặc trưng và đã xếp hạng chúng bằng cách tính toán lượng thông tin mong đợi thu được mà biểu diễn thông tin về mỗi liên hệ giữa lớp Y và 1 thuộc tính X, và được tính toán bởi công thức:
H (Y,X) = H(Y) – H(Y|X)
Tại điểm của 10 đặc trưng tốt nhất, 2 bộ phân lớp được sử dụng (mạng nơ-ron và SVM) đạt đến điểm bão hòa
Các tác giả của 45 đã trích xuất 105 đặc trưng về âm thanh và 48 đặc trưng về hình ảnh, sử dụng phương pháp stepwise họ đã thu được 1 tập 10 đặc trưng Tiêu chí là khoảng cách Mahalanobis Phương pháp stepwise bắt đầu với 1 đặc trưng, sau đó, với mỗi bước, 1 đặc trưng mới được thêm vào hoặc loại bỏ khỏi tập con được chọn để tối đa hóa khoảng cách Mahalanobis giữa các lớp, theo họ, PCA không hiệu quả bằng phương pháp stepwise
Chúng ta sử dụng gói phần mềm Weka mà nó cung cấp 1 tập các đánh giá đặc trưng khác nhau và các hàm tìm kiếm Sự kết hợp giữa CfSunsetEval và BestFirst hoạt động rất hiệu quả Mặc dù có thể có trường hợp là 1 vài sự kết hợp giữa các bộ đánh giá đặc trưng và hàm tìm kiếm có thể cho ra kết quả chính xác hơn, nhưng chúng ta vẫn hoàn toàn hài lòng với độ chính xác của quá trình nhận dạng
CfSunsetEval đánh giá khả năng dự đoán của mỗi thuộc tính 1 cách độc lập và mức độ dư thừa của giữa chúng Đưa ra 1 tập các thuộc tính mà có độ tương quan cao nhất với lớp nhưng độ tự tương quan thấp Nó lặp lại việc thêm các thuộc tính có độ tương quan cao nhất với lớp, với điều kiện, tập thuộc tính đó không chứa nhứng thuộc tính có độ tương quan cao hơn với thuộc tính trong câu hỏi BestFirst thực hiện theo thuật toán tham lam với quay lui
Trang 7Đặc trưng đại diện cho những thống kê toàn diện mà nghĩa là những giá trị được ước tính trên toàn bộ tiếng nói Sự chọn lựa này đã được thực hiện, do thực tế, những thống kê toàn diện về ngữ văn được cho là phù hợp hơn với việc nhận dạng cảm xúc.
Trích xuất đặc trưng được thực hiện thông qua kịch bản Praat Ngoài ra Matlab cũng được sử dụng khá phổ biến Praat có giao diện kiểu click – chọn, ở mức cao, không yêu cầu kiến thức sâu về xử lý tín hiệu praat ít được sử dụng cho những nhiệm vụ quan trọng, nhưng với nhận dạng cảm xúc, praat là 1 công cụ rất mạnh mẽ, trung bình, mất khoảng 1.08 đến 12.7 giây để trích xuất 116 đặc trưng từ mẫu tín hiệu tiếng nói có độ dài 1.08 đến 12.7s (với thời gian thực hiện phụ thuộc tuyến tính với tổng thời gian của tín hiệu tiếng nói.) trên 1 máy tính 3Ghz, 512Mb Nếu như cần đáp ứng yêu cầu về thời gian thực, thì thời gian thực thi sẽ ít hơn rất nhiều do trên thực tế thì việc trích xuất đặc trưng có thể hoàn thành trước việc xử lý thời gian thực, và các đặc trưng được trích xuất chỉ là những cái được lựa chọn cho vecto đặc trưng
Kịch bản Praat trích xuất 116 đặc trưng Đặc trưng là các hàm thống kê từ các thông số của âm thanh, cac thông số bao gồm : cao độ, cường độ, formant và các hài Danh sách các đặc trưng được liệt kê trong phụ lục.Trước khi lựa chọn đặc trưng, có 116 đặc trưng trong vecto đặc trưng, con số này được xem là đủ lớn, nếu muốn, có thể dễ dàng thêm các đặc trưng mới vào kịch bản
Chúng ta sử dụng gói phần mềm Weka để
c. Xây dựng khối phân lớp dựa trên đặc trưng
Với việc lựa chọn phân lớp thì không có 1 qui chuẩn câu trả lời cho câu hỏi mà bộ phân lớp cho ra kết quả tốt nhất (lý thuyết no free lunch)
Các tiêu chí để lựa chọn bộ phân lớp có liên quan đến tác vụ, để xét đến qui tắc của vấn đề, hoặc của dạng hình học của không gian đặc trưng đầu vào 1 vài bộ phân lớp làm việc hiệu quả với dạng cụ thể của các phân phối lớp, và 1 vài hoạt động tốt với nhiều đặc trưng không liên quan hay với 1 tập các đăc trưng có cấu trúc 1 trong các cách để so sánh sự lựa chọn là kiểm tra bộ phân lớp trên cùng 1 cơ sở dữ liệu thay thế và rộng lớn Rất nhiều bộ phân lớp đã được thử nghiệm cho SER, và Weka đã xuất hiện như 1 bộ phân lớp đơn giản và dễ dàng
Trang 8nhất Thường được sử dụng thường xuyên nhất là Support Vector Machines và Mạng Nơ-ron 1 khu vực phát triển nhanh chóng trong những nghiên cứu về nhạn dạng mẫu là sự kết hợp những bộ phân lớp để tạo thành 1 cụm phân lớp Do nhiều lí do khác nhau (từ thống kê đến tính toán và khía cánh đại diện ) Cụm phân lớp có xu hướng tốt hơn là bộ phân lớp riêng lẻ Trong lĩnh vực xử lý tiếng nói, Cụm phân lớp được chứng minh là đủ để thực hiện việc nhận dạng cảm xúc
Weka bao gồm hơn 50 phân lớp, với mỗi tập dữ liệu nhận được, phân lớp có thể được lựa chọn thử nghiệm, nếu không có lý do nào khác (độ dài tối thiểu, tốc độ, …) được xét đến, thủ tục lựa chọn rất đơn giản : kiểm tra trên tất cả các lớp, và chọn 1 lớp có độ chính xác cao nhất, trước khi so sánh độ chính xác, biên chính xác nên được xem xét
Để xác nhận chéo, chúng được tính toán với jack-knife Nếu có nhiều lớp có cùng độ chính xác, với điều kiện biên, lựa chọn lớp có MDL nhỏ nhất Chúng ta sử dụng LMT (cây mô hình logic) cho việc nhận diện sự tức giận của đa ngôn ngữ, trên cơ sở dữ liệu EMO-DB và DES Cho mục đích so sánh, chúng ta sử dụng MLP cho việc nhận dạng giữa các trạng thái của cơ sở dữ liệu French Interface DB
d. Xây dựng hệ CSDL để Trainning và kiểm thử
Trong khi huấn luyện và kiểm thử nên tránh trường hợp đa hợp liên quan đến vấn đề này, có 2 cách chọn
bộ phân lớp cho phù hợp : chỉ chọn bộ phân lớp hoạt động tốt nhất trong chế độ kiểm tra xác nhận chéo (thường
sử dụng 10 xác nhận chéo) hoặc chọn bộ phân lớp có MDL thấp nhất (nó được thể hiện về mặt lý thuyết là bộ phân lớp được thiết kế theo nguyên tắc MDL được đảm bảo là luôn hội tụ về mô hình lý tưởng hoặc mô hình đúng trong giới hạn ngày càng nhiều dữ liệu ) Có 1 vài cách để tính MDL (MDL tương đương với tổng các độ phức tạp Kolmogorov của bộ phân loại và số bit cho việc biểu diễn dữ liệu và số bit cho việc mô tả các lỗi phân lớp) MDL luôn luôn là 1 sự xấp xỉ tuy nhiên, đôi khi nó cũng tạo ra 1 ý nghĩa để tính toán MDL, ví dụ, mặc dù
có 1 mô hình lý tưởng, dữ liệu là không đồng nhất, mà là 1 chuỗi, trực giác nói cho chúng ta biết rằng, trường hợp của việc nhận dạng cảm xúc trên ngôn ngữ không lời
Độ chính xác nhận dạng thu được với kiểm tra chéo 10 lần sử dụng các bộ phân lớp Multilayer perceptron,
Simple Logistic, SMO, LMT, Ramdon Forest, NB Tree.
Phát hiện sự giận dữ dựa vào cơ sở dữ liệu song ngữ Đan Mạch và Đức (EMO-DB và DES).
Động lực của việc phát hiện sự giận giữ này là dự án thương mại, hỗ trợ cho việc phát hiện sự tức giận, ko hài lòng của khách hàng thông qua dữ liệu có sẵn của tổng đài
Trong thí nghiệm này, sử dụng 1 phần cơ sở dữ liệu public của DES và EMO-DB : lời nói giận giữ và lời nói trung lập Trong EMO-DB, có 137 lời nói thể hiện sự giận giữ, 78 thể hiện sự trung lập của 10 người khác nhau Trong DES, có 49 lời nói thể hiện sự giận giữ và 49 thể hiện sự trung lập của 4 người nói khác nhau Trong quá trình tiền sử lý, các tín hiệu được giảm kích thước mẫu xuống còn 16Khz Để chọn được phân lớp phù hợp chúng ta sử dụng 51 bộ phân lớp từ gói phần mềm Weka 7 lựa chọn tốt nhất đã được lọc ra :
Multilayer Perceptron (quay trở về mạng truyền dẫn nơ-ron), Simple Logistic (Mô hình hồi qui logic tuyến
Trang 9tính với những thuộc tính đã lựa chọn sẵn), SMO (Thuật toán tối thiểu hóa chuối sử dụng hỗ trợ việc phân loại vecto), LMT (Cây mô hình logic), NBTree (Cây quyết định với bộ phân lớp Naive Bayes ở mức lá) and Random Forest (Rừng ngẫu nghiên) Độ chính xác nhận dạng được thể hiện ở hình trên.
Chúng ta thử nghiệm với xác nhận chéo 10 lần Kết quả của việc nhận dạng được biểu diễn ở hình sau :
Ma trận nhận dạng lỗi với song ngữ
So sánh với hình trên, thì bộ phân lớp tối ưu được lựa chọn là LMT (cây mô hình logic)
Các bảng
Ma trận nhận dạng lỗi với cơ sở dữ liệu EMO-DB (Đan Mạch)
Ma trận nhận dạng lỗi với cơ sở dữ liệu DES (Đức)
Chúng ta thực hiện nhận dạng cảm xúc song ngữ với cơ sở dữ liệu DES và EMO-DB, tỉ lệ thu được là 92.01%, 96.71% và 91.86% cho trường hợp song ngữ (cả tiếng Đức và tiếng Đan Mạch), tiếng Đức và tiếng Đan Mạch tương ứng
Thử nghiệm trên cơ sở dữ liệu Interface
Chúng ta thực hiện việc kiểm thử trên cơ sở dữ liệu Slovenia, tiếng Anh và tiếng Pháp trong cơ sở dữ liệu Interface Ma trận sai số được thể hiện như sau :
Ma trận sai số với tiếng Anh
Ma trận sai số với tiếng Đức
Trang 10Ma trận sai số với tiếng Slovenia
Độ chính xác chung trên các cảm xúc khác nhau cho 4 ngôn ngữ Anh, Slovenia, Tây Ban Nha và Pháp.
Chế độ thử nghiệm là xác nhận chéo 10 lần, chính xác là chúng ta không thử nghiệm trên toàn bộ tư liệu từ
dự án Interface chúng ta có (chúng ta không thực hiện bất cứ thử nghiệm nào trên dữ liệu tiếng Tây Ban Nha ) Việc lựa chọn đặc trưng được thực hiện riêng rẽ trên từng ngôn ngữ với sự kết hợp của 2 phương thức CfsSubsetEval và BestFirst trong gói Weka Với tiếng Pháp tập được lựa chọn là {10, 19, 32, 43, 62, 64, 74,
35, 41, 45, 48, 49, 61, 64, 71, 72, 78, 95, 96, 97, 98, 103, 105}
Tác giả cuốn 13 cũng kiểm thử hệ thống nhận dạng của họ trên cùng 1 dữ liệu và công việc của họ cũng cung cấp cho chúng ta 1 vài ý tưởng So sánh với kết quả độ chính xác thu được thì của chúng ta cao hơn, khác biệt lớn nhất giữa 2 phương pháp đó là cách xử lý với vecto đặc trưng Chúng ta có 1 trạng thái mà ở đó việc lựa chọn đặc trưng là tự động, đầu vào là 9 – 20 đặc trưng được lựa chọn ra từ 116 đặc trưng khác, trong khi đó, trong phương pháp của cuốn 13, vecto luôn luôn là 26 – 14 đặc trưng được định sẵn là cần thiết cho việc nhận dạng
Cách thức lựa chọn vecto với sự kết hợp 2 phương thức CfSunsetEval và BestFirst :
Tập đặc trưng cho tiếng Pháp là : Fr = {10, 19, 32, 43, 62, 64, 74, 101, 108}
Tập đặc trưng cho tiếng Anh là : En = {13, 17, 19, 34, 35, 41, 45, 48, 49, 61, 64, 71, 72, 78, 95, 96, 97,
98, 103, 105}
Tập đặc trưng cho tiếng Slovenia là : Sl = {17, 21, 32, 43, 45, 49, 78, 101, 108}
Nếu, trong việc tìm kiếm những đặc trưng chung, chúng ta chỉ cần tìm giao của các tập, và chúng ta sẽ không thu được 1 kết quả như ý Fr∩En = {19, 64} Fr∩Sl = {32, 43, 101, 108} En∩Sl = {17, 78} Fr∩En∩Sl = rỗng Những kết quả này không phản ánh điều gì cả Giờ chúng ta hãy ánh xạ những đặc trưng quan trọng và hàm praat
Trang 11e. Xây dựng khối tối ưu hóa độ chính xác kết quả
3 Qui trình thử nghiệm hệ thống nhận dạng cảm xúc
a Thu thập dữ liệu tiếng nói
Trước hết chúng ta phải thu thập các dữ liệu tiếng nói, làm đầu vào cho hệ thống nhận dạng, dữ liệu ở đây chính là tín hiệu tiếng nói, có thể là những đoạn giao tiếp thông thường, những lời phát biểu, những đoạn ghi
âm, thu âm … , dữ liệu có thể là các loại ngôn ngữ khác nhau như tiếng Việt, tiếng Anh, tiếng Pháp, v…v… , từ những người khác nhau, từ nam giới hoặc nữ giới
Tuy nhiên dữ liệu thu thập phải rõ ràng, không có quá nhiều tạp âm
b Xử lý thông qua các qui trình
Sau khi đã thu thập được dữ liệu tiếng nói, việc tiếp theo cần làm là xử lý tín hiệu tiếng nói thông qua các qui trình của hệ thống nhận dạng
Trước hết, tín hiệu sẽ được tiền xử lý, bằng cách lọc, giảm kích thước mẫu, …, sau đó được tính toán thông qua bộ xử lý tín hiệu, để tính toán các đặc trưng của tín hiệu, như : đặc trưng về cường độ, độ lớn, formant, … Sau đó những đặc trưng này sẽ là đầu vào của bộ trích chọn đặc trưng Các đặc trưng sẽ được lựa chọn sao cho đặc trưng ấy có ảnh hưởng quyết định tới kết luận về cảm xúc, thông qua các công cụ, cụ thể ở đây là công cụ Praat Các đặc trưng được lựa chọn sẽ dùng để phân lớp tín hiệu và các nhóm cảm xúc, công việc này được thực hiện thông qua bộ phân lớp với các phương pháp khác nhau tùy vào hệ thống nhận dạng cảm xúc đó sử dụng Trong gói phần mềm Weka đã có sẵn rất nhiều các bộ phân lớp, ví dụ như : Cây nhị phân, mạng nơ-ron, Simple Logistic, SMO, LMT, Ramdon Forest, NB Tree, …
Cuối cùng sau khi đã phân lớp sẽ thử nghiệm và đánh giá độ chính xác của phân lớp tín hiệu, lại trên cơ sở
dữ liệu và đưa ra quyết định về trạng thái cảm xúc của tiếng nói (lựa chọn phân lớp cảm xúc có độ chính xác cao nhất)
c Đánh giá kết quả
Công việc cuối cùng là đánh giá kết quả và độ chính xác của quá trình nhận dạng
4 Cấu trúc hệ thống nhận dạng cảm xúc