Đề tài Tách âm dùng phương pháp phân tích thành phần độc lập

TÓM TẮT: Tai ta thường đồng thời tiếp nh ận nhiều nguồn âm (tiếng nói, âm nhạc, nhiễu ) khác nhau nhưng ta vẫn có thể lắng nghe nguồn âm chủđịnh. Một hệ thống xử lý tiếng hay nhận dạng tiếng cần đạt đến khả năng thông minh như vậy. Bài toán là từ nhiều tín hiệu đã trộn lẫn ta muốn khôi phục các tín hiệu nguồn riêng rẽ. Trong hơn chục năm qua người ta đã phát triển một phương pháp mới giúp giải bài toán tách nguồn mù (Blind Source Separation – BSS) nêu trên rất hiệu quả, đó là phân tích thành phần độc lập (Independent Component Analysis – ICA). Bài báo trình bày t ổng quan tóm lược về ICA và ứng dụng của chúng tôi vào việc tách âm. Kết quả rất tốt. Từđây chúng tôi có thể tiếp t ục phân tích các bài toán tách âm phức tạp h ơn dùng ICA.

pdf12 trang | Chia sẻ: maiphuongtl | Ngày: 18/05/2013 | Lượt xem: 193 | Lượt tải: 0download
Tóm tắt tài liệu Đề tài Tách âm dùng phương pháp phân tích thành phần độc lập, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 9, SỐ 2 -2006 Trang 33 TÁCH ÂM DÙNG PHƯƠNG PHÁP PHÂN TÍCH THÀNH PHẦN ĐỘC LẬP Trương Tấn Quang, Nguyễn Hữu Phương Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM (Bài nhận ngày 01 tháng 12 năm 2005, hoàn chỉnh sửa chữa ngày 23 tháng 02 năm 2006) TÓM TẮT: Tai ta thường đồng thời tiếp nhận nhiều nguồn âm (tiếng nói, âm nhạc, nhiễu…) khác nhau nhưng ta vẫn có thể lắng nghe nguồn âm chủ định. Một hệ thống xử lý tiếng hay nhận dạng tiếng cần đạt đến khả năng thông minh như vậy. Bài toán là từ nhiều tín hiệu đã trộn lẫn ta muốn khôi phục các tín hiệu nguồn riêng rẽ. Trong hơn chục năm qua người ta đã phát triển một phương pháp mới giúp giải bài toán tách nguồn mù (Blind Source Separation – BSS) nêu trên rất hiệu quả, đó là phân tích thành phần độc lập (Independent Component Analysis – ICA). Bài báo trình bày tổng quan tóm lược về ICA và ứng dụng của chúng tôi vào việc tách âm. Kết quả rất tốt. Từ đây chúng tôi có thể tiếp tục phân tích các bài toán tách âm phức tạp hơn dùng ICA. 1.GIỚI THIỆU Khi có nhiều tín hiệu ở các khoảng tần số khác nhau được trộn (tổng hợp) lại, ta có thể lọc ra từng tín hiệu riêng biệt như lúc ban đầu. Còn nếu các tín hiệu nằm trong cùng khoảng tần số (ví dụ nhiều người cùng nói, tiếng hát trên nền nhạc, nhiều bản nhạc cùng chơi…), ta không thể dùng phương pháp lọc hay phân tích phổ thông thường. Lúc bấy giờ phải dựa vào các phương pháp thống kê trong đó có phương pháp phân tích thành phần độc lập (Independent Component Analysis - ICA) [1] . . . [5]. ICA có nhiều ứng dụng, bài báo này chỉ đề cập đến ứng dụng tách âm (tiếng nói và âm nhạc) [6] [7]. Do chưa thấy công trình trên các tập san, tạp chí trong nước liên quan đến ICA nên chúng tôi có phần tổng quan hơi là chi tiết (mục 1, 2, 3 và 4). Ở hình 1 tiếng nói của hai người được thu bởi hai micro: (1) trong đó aij , với i, j = 1,2 ,là các hệ số trộn phụ thuộc vào nhiều yếu tố như hướng đặt micro, khoảng cách, phản âm của phòng …. Trong mô hình ICA các tín hiệu xi(t) và các tín hiệu nguồn si(t) được xem như là các biến ngẫu nhiên, thay vì là các tín hiệu thời gian thực sự, nên trong cách viết chỉ số thời gian t được bỏ đi. Hình 1 Hai tín hiệu nguồn (không quan sát trực tiếp được tức các tín hiệu ẩn) là s1(t), s2(t); hai tín hiệu trộn (quan sát được) là x1(t), x2(t) Người Nói 1 Người nói 2 s1(t) s2(t) a11 a22 a21 a12 Micro 1 Micro 2 x1(t) x2(t) Science & Technology Development, Vol 9, No.2 - 2006 Trang 34 1.1 Mô hình ICA cơ bản Xem trường hợp có n tín hiệu trộn xi được tổng hợp từ n tín hiệu nguồn si thì niniii sasasax +++= ...2211 , i = 1, …, n (2) với aij, i, j = 1,2,…,n là các hệ số trộn được giả sử có trị số thực. Để ý là ta đã giả sử số lượng tín hiệu nguồn và tín hiệu trộn bằng nhau để được đơn giản. Bài toán ICA là ước lượng (phân ly, tách ra) các tín hiệu nguồn sj từ các tín hiệu trộn quan sát được xi trong lúc các hệ số aij không biết (nếu biết các hệ số trộn aij ta có thể giải hệ phương trình (2) để tìm các tín hiệu si ). Đây là bài toán “coctail party” (ý nói rằng tại buổi tiệc có nhiều người nói nhưng ta có thể tập trung nghe một hai người nào đó theo chủ định). Thường ký hiệu vectơ – ma trận được dùng. Gọi x là vectơ ngẫu nhiên biểu diễn các phần tử trộn xi : x = [ x1, x2 …, xn]T, s là vectơ ngẫu nhiên của các phần tử nguồn si : s = [s1, s2 …, sn]T, và A là ma trận trộn chứa các hệ số trộn aij : A = [aij]. Các vectơ x, s được hiểu là các vectơ cột. Để ý là khi số lượng tín hiệu trộn và tín hiệu nguồn bằng nhau như đã giả sử thì A là một ma trận vuông. Mô hình ICA trở thành: x = A s (3) Phương tình (3) là mô hình ICA tuyến cơ bản (còn gọi ICA chuẩn). Khi cần sử dụng biểu diễn dạng cột của ma trận A ta gọi các cột là ai và viết ∑ = = n i ii s 1 ax (4) Từ (3) có thể giải ra s = A-1x nếu biết được A và nếu A là nghịch đảo được, nhưng thực tế không biết A. Đây cũng là bài toán tách nguồn (hay tín hiệu) mù (Blind Source/ Signal Separation - BSS) [6]. Các tín hiệu nguồn là các thành phần độc lập (lý do sẽ thấy ở sau). 1.2 Các điểm không xác định trong ICA Mô hình ICA cơ bản (3) và (4) có một số bất định tóm lược như sau: 1. Không thể xác định các phương sai (năng lượng) của các thành phần độc lập. Người ta giả sử mỗi biến có phương sai đơn vị: E{ 2is } = 1. Tuy nhiên hãy còn bất định về dấu vì khi ta nhân một thành phần độc lập với -1 thì mô hình ICA không thay đổi. Trong hầu hết các ứng dụng yếu tố dấu không có ý nghĩa. 2. Không thể xác định thứ tự của các thành phần độc lập khi phân ly vì cả s và A đều không biết nên ta có thể thay đổi thứ tự các số hạng trong (4) nên bất cứ thành phần nào cũng có thể là thành phần đầu tiên. Nói rõ hơn thì xác định thứ tự là công việc khó khăn. 2. SỰ ĐỘC LẬP THỐNG KÊ 2.1 Bất tương quan Các phân bố xác suất đều giả sử có trị trung bình bằng không. Nếu không phải như vậy thì ta trừ phân bố với trị trung bình của nó, đây là sự qui tâm (centering). Để ý là hiệp phương sai (covariance) chính là tương quan (correlation) khi trị trung bình bằng không. Đối với một vectơ ngẫu nhiên x ma trận hiệp phương sai là Cxx = E ⎨(x – mx)E(x – mx)T⎬ (5) trong đó E ⎨.⎬ là toán tử lấy trung bình, mx là vectơ trung bình. Hiệp phương sai của hai vectơ ngẫu nhiên x1, x2 (có trị trung bình bằng không) là: Cx1x2 = E ⎨x1x2T⎬ (6) Khi Cx1x2 = 0 hai vectơ bất tương quan (uncorrelated). Đối với vectơ ngẫu nhiên x khi các thành phần xi của nó bất tương quan hỗ tương thì: Cxx = D (7) trong đó D là ma trận chéo n×n, với các phương sai của các thành phần nằm trên đường chéo. TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 9, SỐ 2 -2006 Trang 35 2.2 Độc lập thống kê Tính bất tương quan nêu trên chưa đủ để phân ly ICA. Ta cần một đặc tính mạnh hơn, đó là sự độc lập thống kê, nghĩa là khi biết một thành phần nào đó ta không thể suy ra các thành phần còn lại. Xem hai vectơ ngẫu nhiên x1 và x2 với hàm mật độ xác suất riêng biệt p(x1), p(x2) và hàm mật độ xác suất liên kết p(x1 x2) là độc lập thống kê nếu và chỉ nếu khi thỏa p(x1.x2) = p(x1) p(x2) (8) Khi có nhiều vectơ thì sự thừa số hóa cũng tương tự. Định nghĩa kỹ thuật ở trên dẫn đến một đặc tính sau của các biến ngẫu nhiên. Xem f(x1) và f(x2) là biến đổi phi tuyến nào đó trên hai vectơ ngẫu nhiên x1 và x2 có hàm phân bố đã nói ở trên, thì có thể chứng minh được [1]: E{f1(x1)f2(x2)} = E{f1(x1)}E{f2(x2)} (9) Như vậy sự độc lập là có thể thừa số hóa tương quan phi tuyến. Đây là đặc tính quan trọng vì nó giải thích và nhấn mạnh vai trò các phi tuyến trong ICA. Khi đặt f(x1) = x1 và f(x2) = x2 ta thấy là sự độc lập bao gồm luôn sự bất tương quan (nhưng bất tương quan không đương nhiên là độc lập). Cụ thể là ta giả sử s ở phương trình (3) là độc lập thống kê nên các tín hiệu nguồn si là các thành phần độc lập. Chính nhờ sự độc lập thống kê mà ta có thể phân ly ra s từ (3). 2.3 Phi Gauss là độc lập Mô hình ICA đặt ra một hạn chế là các thành phần độc lập phải có tính phi Gauss (non-gaussianity), tức không có phân bố (hàm mật độ xác suất) là Gauss. Lý do tính phi Gauss nằm ở chổ là các biến ngẫu nhiên Gauss được xác định hoàn toàn bởi các thống kê bậc một (trị trung bình) và bậc hai (phương sai), các thống kê bậc cao hơn bằng không. Trong lúc, như sẽ thấy ở sau, mô hình ICA cần các thống kê bậc cao hơn của các thành phần độc lập để thực hiện sự phân ly (ước lượng các thành phần độc lập). Như vậy, sự phi tuyến, tính phi Gauss dẫn đến sự độc lập thống kê. 2.4 Các giả sử trong mô hình ICA Mô hình ICA tuyến cơ bản đặt ra đòi hỏi các giả thiết sau cho việc phân ly (ước lượng) các thành phần độc lập: 1. Các nguồn s độc lập thống kê nhau, nghĩa là biết được một nguồn không thể suy ra các nguồn còn lại. 2. Các hàm phân bố xác suất của các nguồn có trị trung bình bằng không. 3. Không có nguồn (thành phần độc lập) nào có phân bố Gauss (thật ra mô hình cho phép có tối đa một thành phần có phân bố Gauss). 4. Ma trận trộn A là ma trận vuông tức số lượng nguồn và số lượng trộn bằng nhau. Nếu không phải vậy, bài toán sẽ khó hơn. 3. TIỀN XỬ LÝ Ở ICA Thường trước khi ước lượng ICA cho dữ liệu quan sát được người ta áp dụng một hai tiền xử lý để việc ước lượng ICA được thuận lợi hơn. Ở đây chỉ trình bày hai cách phổ biến áp dụng ở bài báo này. 3.1 Qui tâm Như đã nêu ở trước, các tín hiệu trộn quan sát được x phải có trị trung bình m = E[x] bằng không, điều này cũng có nghĩa là các tín hiệu nguồn s cũng có trị trung bình là không. Nếu các tín hiệu chưa có trị trung bình là không ta thực hiện phép qui tâm tức trừ phân bố của các biến ngẫu nhiên với các trị trung bình của chúng: x = x′ − E{x′} (10) Science & Technology Development, Vol 9, No.2 - 2006 Trang 36 trong đó x′ là vectơ ngẫu nhiên chưa có trung bình là không. Sau khi đã ước lượng ma trận A và các thành phần s ta có thể thêm trở lại các trị trung bình của chúng. Khi vectơ ngẫu nhiên x (hoặc s) có trị trung bình là không thì hiệp phương sai và tương quan của nó giống nhau. 3.2 Trắng hóa Sau khi đã qui tâm các biến ngẫu nhiên x, ta áp dụng một biến đổi tuyến tính trên x để được vectơ mới là trắng. Sự làm trắng hay trắng hóa (whitening), còn gọi cầu hóa (sphering), có mục đích làm cho dữ liệu bất tương quan. Giả sử ta có vectơ ngẫu nhiên x bất tương quan, tức các xuyên phương sai của các phần tử bằng không, dẫn đến ma trận hiệp phương sai là ma trận chéo có các số hạng chéo tương ứng với các phương sai của các phần tử của x. Nếu các phương sai này được cho bằng 1 (mục 1.2), nghĩa là ma trận hiệp phương sai được cho bằng với ma trận đồng nhất I thì vectơ ngẫu nhiên x là trắng: E[xxT] = I (x là trắng) (11) Việc làm trắng là một biến đổi tuyến tính z = Vx (12) trong đó x là dữ liệu cần làm trắng, V là ma trận làm trắng, z là dữ liệu đã trắng hóa. Cách thường dùng nhất để tìm ma trận làm trắng là thực hiện sự phân ly trị riêng (Eigenvalue Decomposition - EVD) trên ma trận hiệp phương sai: E[xxT] = EDET (13) trong đó E là ma trận trực giao của các vectơ riêng của E[xxT] và D là ma trận chéo của các trị riêng của chúng, D = chéo(d1, …, dn), n là số lượng nguồn quan sát được x. Ma trận làm trắng là: TEEDV 2/1−= (14) trong đó 2 1−D = chéo ⎟⎠ ⎞⎜⎝ ⎛ −− 2121 1 ,..., ndd . Ma trận làm trắng trên cũng có thể được biểu diễn như: V = E[xxT] -1/2 = 1/2xxC− (15) trong đó Cxx = E[xxT] là ma trận hiệp phương sai. Vậy z = Vx = VAs = A~ s (16) trong đó A~ = VA là ma trận trộn đã làm trắng. Mặt khác vì z là dữ liệu đã làm trắng nên E{zzT} = I, dẫn đến E{zzT} = E{ A~ s [ A~ s]T} = A~ E{ssT} A~ T = A~ A~ T = I (17) Nên nhớ là các thành phần độc lập si đều giả sử có phương sai đơn vị. Vậy ma trận đã làm trắng là trực giao (ở ma trận trực giao nghịch đảo của nó bằng chuyển vị của nó: A~ -1= A~ T). Ta biết ma trận n×n nếu không trực giao chứa n2 độ tự do, còn nếu trực giao chỉ chứa n(n-1)/2 độ tự do. Với dữ liệu 2 chiều điều này có nghĩa là độ tự do chỉ là 1 cho một biến đổi trực giao. Khi số chiều lớn, độ tự do của một ma trận trực giao chỉ là phân nửa độ tự do của ma trận không trực giao. Do đó người ta nói làm trắng là đã giải quyết phân nửa bài toán ICA. Bởi vì trắng hóa là một thủ tục đơn giản hơn bất cứ thuật toán ICA nào nên là một tiền xử lý thông dụng. Sau khi đã ước lượng ma trận trắng hóa A~ , thì từ (16) việc ước lượng các thành phần độc lập s trở thành: s = Wz (18) trong đó W là đảo nghịch của A~ : W = A~ -1 . Với các ma trận vuông việc lấy nghịch đảo rất thuận lợi. Sau khi có được W, việc ước lượng ma trận gốc A cho bởi A~ = VA = D -1/2ETA (19) Suy ra: A = ED 1/2 A~ = ED 1/2W-1 = ED 1/2WT (20) trong đó vì W là trực giao nên W-1= WT. Sau này ta vẫn dùng ký hiệu s, x, A dù có làm trắng hoặc không, trừ khi cần làm rõ ra. TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 9, SỐ 2 -2006 Trang 37 Như vậy còn lại là ước tính các hàng của W. Có nhiều phương pháp để thực hiện việc ước tính này nhưng ở đây chỉ đề cập phương pháp ICA bằng cách cực đại hóa tính phi Gauss (xem mục 4). 4. ƯỚC LƯỢNG ICA Ước tính ICA là một công việc khá chi li. Người ta đã phát triển nhiều cách để giải quyết bài toán, một số là [1] . . . [4] - Cực đại hóa tính phi Gauss (nongaussianity) - Ước lượng khả năng cực đại (maximum likelihood) - Cực tiểu hoá thông tin hỗ tương (mutual information) Trong các phương pháp trước tiên định ra một hàm đối tượng (objective function), còn gọi hàm trị giá (cost function), rồi dùng một thuật toán tối ưu hóa để cực đại hóa hoặc cực tiểu hóa (nói chung là cực đại hóa trị tuyệt đối) hàm đối tượng này để ước lượng các thành phần độc lập. Bài này chỉ trình bày tóm lược phương pháp cực đại hóa tính phi Gauss dẫn đến giải thuật tính toán nhanh và hiệu quả đã được phát triển FastICA. Theo định lý giới hạn trung tâm (central limit theorem), tổng của nhiều biến ngẫu nhiên có phân bố gần Gauss hơn bất cứ biến ngẫu nhiên gốc nào. Ở mô hình ICA (3) vectơ ngẫu nhiên x gồm các biến ngẫu nhiên là trộn tuyến của các vectơ biến ngẫu nhiên nguồn s. Các nguồn được giả sử độc lập nhau nhưng khi trộn lại (cộng nhau) thì các trộn trở nên gần Gauss hơn. Nếu việc trộn được đảo ngược lại theo cách nào đó thì các tín hiệu nhận được sẽ ít Gauss hơn. Do đó ước lượng ICA nhắm đến cực tiểu hóa tính Gauss tức cực đại hóa tính phi Gauss bởi vì điều này sẽ cho ta các thành phần độc lập. 4.1 Đo tính phi Gauss bằng kurtosis Đầu tiên là phép đo dựa trên kurtosis của một biến ngẫu nhiên y có trung bình bằng không là cumulant bậc bốn: kurt(y) = E{y4} – 3 (E{y2})2 (21) Thật ra vì ta giả sử y có phương sai đơn vị, nên kurtosis là kurt(y) = E{y4} – 3, tức kurtosis là phiên bản chuẩn hóa của momen thứ tư E{y4}. Khi y có phân bố Gauss momen thứ tư bằng 3(E{y2})2 nên kurtosis bằng không đối với các biến ngẫu nhiên Gauss. Hầu hết các biến ngẫu nhiên không phải Gauss kurtosis khác không. Nếu kurtosis là dương biến ngẫu nhiên có phân bố siêu Gauss (supergaussian), còn nếu kurotsis là âm thì biến ngẫu nhiên có phân bố dưới Gauss (subgaussian). Phân bố siêu Gauss không còn dạng hình chuông như Gauss mà tăng nhanh ở trung tâm tương tự như phân bố Laplace, còn phân bố dưới Gauss không nhô lên ở phần giữa như Gauss mà tiến đến phân bố đều với biên độ rất nhỏ ở xa trung tâm. Việc đo tính phi Gauss bằng kurtosis có vài bất lợi khi các giá trị của nó được tính từ các mẫu quan sát được, vì kurtosis rất bị ảnh hưởng bởi các trị biên (outlier) quan sát được ở hai đuôi của phân bố. 4.2 Đo tính phi Gauss bằng Negentropy Một số đo tính phi Gauss quan trọng hơn là negentropy. Negentropy là đại lượng dựa trên lý thuyết thông tin gọi entropy vi sai. Entropy của một biến ngẫu nhiên là số đo lượng thông tin trung bình của nó. Entropy (vi sai) H của vectơ ngẫu nhiên y có hàm phân bố f(y) định nghĩa như sau: ∫−= dyfH )(log)f()( yyy (22) Đặc tính quan trọng của entropy là biến ngẫu nhiên Gauss có entropy lớn nhất trong các biến ngẫu nhiên có cùng phương sai. Như vậy entropy, và negentropy định nghĩa theo entropy, có thể dùng để đo tính phi Gauss của một biến ngẫu nhiên. Để có được một số đo tính phi Gauss sao cho bằng không đối với biến Gauss và luôn không âm, người ta định nghĩa negentropy của vectơ ngẫu nhiên y: J(y) = H(yGauss) – H(y) (23) trong đó yGauss là một vectơ ngẫu nhiên Gauss cùng ma trận hiệp phương sai (hay ma trận tương quan vì các dữ liệu được giả sử có trung bình là không). Science & Technology Development, Vol 9, No.2 - 2006 Trang 38 Tuy nhiên tính toán negentropy lại khó khăn. Một số tính toán xấp xỉ đã được phát triển, mà một là: ( ) ( ){ } ( ){ }[ ] 2GaussyGEyGEyJ −≈ (24) Hàm phi tuyến G(.) có thể chọn theo một hai biểu thức sau: ( ) ( ) ( )2/yexpyG yacoshlog a yG 2 2 1 1 1 −−= 1= (25) với 1 ≤ a1≤ 2 và thường chọn bằng a1 = 1. Trong mô hình ICA, ta muốn tìm các hàng của ma trận W. Khi dùng negentropy người ta xây dựng được thuật toán điểm cố định (fixed-point algorithm) [4] sau: ww wwww ← −→ w )}z('g{E)}z(zg{E TT (26) Trong đó g(.) là đạo hàm của các hàm G1(.) và G2(.): )yexp(y)y(g )ya(anht)y(g 2/2 2 11 −= = (27) Tuy nhiên thường ta không có một thành phần độc lập đơn (chỉ một mà thôi), do đó phải tính nhiều hơn một hàng của W. Lúc bấy giờ các dòng w khác nhau của ma trận W có thể hội tụ đến cùng các cực đại của hàm đối tượng. Để khắc phục vấn đề này, các vectơ w1, w2, … wn phải được trực giao hóa sau mỗi lần lặp. Sự trực giao có thể thực hiện theo một số cách. Thuật toán điểm cố định ở trên dẫn đến thuật toán ước lượng fastICA có nhiều ưu điểm so với cách ước lượng dựa vào các thuật toán có cơ sở là gradient. Tài liệu [4] và một số tài liệu khác có ghi chi tiết các thuật toán fastICA. Matlab 7.0 cũng hỗ trợ fastICA. 5. ỨNG DỤNG ICA VÀO TÁCH ÂM Thực nghiệm tách âm với mô hình ICA, yêu cầu phải thu nhiều nguồn âm cùng lúc. Hình 2 minh họa mô hình trộn âm, trong đó s1,…,sn là các nguồn âm thực ngiệm được thu trước vào máy tính. Ma trận trộn A được giả lập trên máy tính để thực hiện trộn các nguồn âm, tạo ra các hỗn hợp x1, x2…xn. Để ý là số lượng tín hiệu nguồn và số lượng tín hiệu trộn bằng nhau để ma trận A là ma trận vuông. Giả sử này làm việc phân tích thuận lợi hơn. Hình 3 minh họa hệ thống tách âm [6] [7]. Tín hiệu âm gốc sau khi được trộn lẫn tạo ra các tín hiệu trộn sẽ đưa đến bộ ICA. Bộ phân tích này thực hiện tách âm bằng giải thuật ước lượng ma trận giải W thông qua cực đại tính phi Gauss với hàm đối tượng negentropy J. Kết quả ngõ ra bộ phân tích ICA là các âm độc lập ước lượng được của nguồn âm gốc. Nếu W là ma trận nghịch đảo của A (W = A-1) thì sự ước lượng là đúng. Chúng tôi thực nghiệm việc tách âm cụ thể như sau: - Thu sẵn số nguồn âm thực nghiệm vào máy tính ở tốc độ lấy mẫu 8KHz và 22.5KHz, và mã hoá PCM 16 bit. Chiều dài mỗi đoạn dữ liệu âm là 10s. - Thực hiện trộn âm từ các nguồn âm đó. Chọn mô hình trộn phù hợp với thực tế (của buổi tiệc, phòng họp,…). Để đơn giản, giả sử theo cách thức trình bày ở mục 1, tức bỏ đi các phản xạ và các trì hoãn của phòng [7]. - Dữ liệu trộn được cho qua bộ phân tích ICA với giải thuật tách âm fastICA (bao gồm quy tâm, trắng hóa và ước lượng). Kết quả là các nguồn âm được tách ra độc lập. TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 9, SỐ 2 -2006 Trang 39 Hình 2. Trộn âm Hình 3.Tách âm 6. KẾT QUẢ THỰC NGHIỆM: Chúng tôi thực hiện nhiều mô phỏng với nhiều loại nguồn âm khác nhau. Sau đây chỉ nêu một số tiêu biểu Thực nghiệm 1: (Hình 4) Phân tách tiếng nói người, ba nguồn phát s gồm một giọng nam và hai giọng nữ được trộn để tạo ba hỗn hợp x. Kết quả tách (ước lượng) y thu được (đánh giá trên các dạng sóng và nghe qua loa) rất tốt. Thực nghiệm 2: (Hình 5) Trên tập dữ liệu lai trộn từ hai nguồn phát là tiếng hát của hai ca sĩ , mỗi nguồn phát 17 giây. Kết quả tách âm rất tốt. Thực nghiệm 3: (Hình 6) Lặp lại thực nghiệm trên tuy nhiên với hai nhạc phẩm không lời, thời gian phát 10 giây, tần số lấy mẫu 22.5 KHz, mã hóa PCM 16 bit. Kết quả rất tốt. Thực nghiệm 4: Lai ghép từ tập nhiều loại tín hiệu : tiếng người, tiếng hát, nhạc, tiếng kèn, nhiễu Gauss …; tất cả 10 nguồn. Tín hiệu tách thu được từ hỗn hợp nghe trong và không cảm giác thấy lai trộn. Do chỉ có một nguồn Gauss, nên chấp nhận được trong ICA. Kết quả rất tốt. Vì lý do hạn chế không gian nên không kèm theo hình. W ICA A J Hàm đối tượng Trộn x Điều chỉnh hệ số Nguồn s Tín hiệu ước lượng y Ma trận trận trộn Nguồn Nguồn Nguồn Trộn x1 Trộn x2 Trộn xn Science & Technology Development, Vol 9, No.2 - 2006 Trang 40 Hình 4. Biểu diễn các tín hiệu trong thực nghiệm 1 10 -10 0 -10 10 10 0 -10 0 -0.5 0 0.5 -0.5 0 0.5 -0.5 0 0.5 -1 0 1 -1 0 1 -1 0 1 s1 s2 s3 x1 x2 x3 y1 y2 y3 1 2 3 4 5 6 7 x 104 1 2 3 4 5 6 7 x 104 TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 9, SỐ 2 -2006 Trang 41 Hình 5. Biểu diễn các tín hiệu trong thực nghiệm 2 6 4 2 0 -2 -4 -6 6 4 2 0 -2 -4 -6 x1 y2 0,2 0,15 0,1 0,05 0 -0,05 -0,1 -0,15 -0,2 0,2 0,15 0,1 0,05 0 -0,05 -0,1 -0,15 -0,2 x2 y1 0,5 0,4 0,3 0,2 0,1 0 -0,1 -0,2 -0,3 -0,4 -0,5 s2 s1 1 0,8 0,6 0,4 0,2 0 -0,2 -0,4 -0,6 -0,8 -1 1 2 3 4 5 6 7 x 104 1 2 3 4 5 6 7 x 104 Science & Technology Development, Vol 9, No.2 - 2006 Trang 42 Hình 6. Biểu diễn các tín hiệu trong thực nghiệm 3 7.KẾT LUẬN Mô hình ICA tuyến cơ bản (mô hình chuẩn) được biểu diễn bởi phương trình (3): x = As trong đó s là các tín hiệu nguồn (các thành phần độc lập), A là ma trận trộn, x là các tínhiệu trộn. Ta biết được (quan sát được) x và cần xác định s trong lúc A (và dĩ nhiên cả s) không biết! Thoạt nhìn thì đây là bài toán bất khả giải. Nhưng với một số giả thiết khá thực tế, 0 y1 4 2 -2 -4 -6 -8 5 4 3 2 1 0 -1 -2 -3 -4 -5 y2 0.08 0.06 0.04 0.02 0 -0.02 -0.04 -0.06 -0.08 x2 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 x1 0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 s1 -0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 s2 6 1 2 3 4 5 6 7 8 9 10 11 x 104 TẠP CHÍ PHÁT TRIỂN KH&CN, TẬP 9, SỐ 2 -2006 Trang 43 đặc biệt là các nguồn s độc lập thống kê hỗ tương. Sự độc lập thống kê đi liền với tính phi tuyến và tính phi Gauss. Tiền xử lý qui tâm và trắng hóa được thực hiện trên x trước khi ước lượng ICA dùng phương pháp cực đại hóa tính phi Gauss. Cơ sở toán học khá phức tạp nhưng đã có các thuật toán FastICA rất hiệu quả. Nhiều thực nghiệm trên nhiều hỗn hợp tín hiệu nguồn khác nhau cho thấy việc ước lượng ICA rất tốt. Chúng tôi đã thực hiện nhiều mô phỏng trên máy tính và đánh giá chất lượng tách âm bằng cách so sánh dạng sóng và nghe bằng tai. Thật ra còn một vài cách khác để xem xét như phân tích phổ Fourier, tính sai số xuyên âm . . . Các cách này làm phong phú thêm việc đánh giá và mang tính định lượng hơn nhưng không cho kết quả khác đi. Nội dung khảo sát của chúng tôi dựa trên giả thiết số nguồn bằng với số trộn (cảm biến) và mô hình ICA chuẩn nên chỉ là cơ sở bước đầu để chúng tôi đi vào các mô hình ICA thực tế và phức tạp hơn như số nguồn khác với số trộn , nguồn có nhiễu, sự lai trộn có trễ, lai trộn chập . . . mà đã có rất nhiều công trình nghiên cứu đã công bố, tuy nhiên vẫn có những nghiên cứu mới về lý luận, sự mô phỏng và ứng dụng. SOUND SEPARATION USING THE METHOD OF INDEPENDENT COMPONENT ANALYSIS Truong Tan Quang, Nguyen Huu Phuong University of National Sciences, VNU-HCM ABSTRACT: Our ears often simultaneously receive various sound sources (speech, music, noise . . .), but we can still listen to the intended sound. A system of speech processing or recognizing must achieve the same intelligent level. The problem is that we receive many mixed (combined) signals from many different source signals, and would like to recover the source signals separately. In the last decade or so a method has been developed to help solve the above problem of Blind Source Separation (BSS) effectively, that is the Independent Component Analysis (ICA). This paper gives an brief overview of ICA and our application to sound separation. The results are very good. Henceforth, we will be able to tackle more complex source separation problems using ICA. TÀI LIỆU THAM KHẢO [1]. A.Hyvarinen and E.Oja, Independent Component Analysis: Algorithms and Application, Neural Networks, 13(4-5): 411-430, 2000. [2]. A.Hyvarinen, Survey on independent component analysis, Neural Computing Surveys, (2): 94–128, 2000. [3]. Hyvarinen, A. Fast and robust fixed-point algorithm for Independent Component Analysis, IEEE Transactions on Neural Networks, 2001. [4]. A.Hyvarinen, J.Karhunen, and E.Oja, Independent Component Analysis, John Wiley & Sons, 2001. Science & Technology Development, Vol 9, No.2 - 2006 Trang 44 [5]. A.Jelmer and R.Mika, A Guide To Independent Component Analysis –Theory And Practice, Report A No 23, March 2004. [6]. Ricky Der., Blind Signal Separation, Department of Electrical and Computer Engineering McGill University, 2001. [7]. Alexander George Westner, Object –Based Audio Capture : Separating Acoustically- Mixed Sound. Rutgers University, 1996.

Các file đính kèm theo tài liệu này:

  • pdfsedev0206-04.pdf