Đỗ Thị Loan và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
112(12)/2: 89 - 95<br />
<br />
NGHIÊN CỨU PHƯƠNG PHÁP NHẬN DẠNG PHÂN BIỆT<br />
TIẾNG NÓI VỚI ÂM NHẠC<br />
Đỗ Thị Loan, Lưu Thị Liễu, Nguyễn Thị Hiền<br />
Trường Đại học Công nghệ thông tin và Truyền thông – ĐH Thái Nguyên<br />
<br />
TÓM TẮT<br />
Tự động nhận dạng phân biệt tiếng nói với âm nhạc là công cụ quan trọng trong nhiều ứng dụng đa<br />
phương tiện. Để nhận dạng phân biệt tiếng nói với âm nhạc, chúng tôi đã sử dụng ba đặc trưng: tần<br />
suất vượt điểm không cao (HZCRR), tỷ lệ khung có năng lượng ngắn hạn thấp (LSTER), độ biến<br />
thiên phổ (SF) và thuật toán sử dụng để huấn luyện cũng như nhận dạng là K-NN (K Nearest<br />
Neighbor). Dữ liệu là các đoạn nhạc gồm nhiều thể loại từ nhạc không lời tới nhạc có lời (nhạc<br />
Việt Nam, nhạc Rock, nhạc Pop, Đồng quê), các đoạn tiếng nói của giọng nam và nữ bằng tiếng<br />
Việt. Trong bài báo này mục đích nghiên cứu ban đầu của chúng tôi chủ yếu là nhận dạng phân<br />
biệt hai loại âm thanh: tiếng nói và âm nhạc với kết quả thu được có độ chính xác khá cao, với<br />
tiếng nói có độ chính xác xấp xỉ 84%, âm nhạc là 92%. Trong tương lai chúng tôi mong muốn phát<br />
triển hệ thống có khả năng nhận dạng phân biệt nhiều lớp âm thanh hơn.<br />
Từ khóa: Phân biệt, tiếng nói, âm nhạc, nhạc Việt Nam, tiếng Việt.<br />
<br />
GIỚI THIỆU*<br />
Nhận dạng phân biệt tiếng nói với âm nhạc là<br />
một phần trong hệ thống phân loại âm thanh<br />
ASC (Audio Signal Classifier) [1] hay trong<br />
hệ thống nhận dạng các khung cảnh âm thanh<br />
CASR<br />
(Computeral<br />
Audio<br />
Scence<br />
Recognizer) [2], nhận dạng các chương trình<br />
trên ti vi [3], [4], hay hệ thống phiên dịch nốt<br />
nhạc AMTS [5]. Để xây dựng một hệ thống<br />
hoàn chỉnh thì rất khó khăn vì âm thanh rất<br />
phong phú, đa dạng và mỗi loại có những đặc<br />
trưng riêng, sự kết hợp giữa chúng tạo nên vô<br />
vàn các dạng âm thanh khác nhau, điều này<br />
ảnh hưởng lớn đến việc phân loại các khung<br />
cảnh âm thanh. Hầu hết các nghiên cứu nhận<br />
dạng phân biệt các lớp âm thanh đều căn cứ<br />
theo từng trường hợp mà bạn đưa về số lớp,<br />
và một vài điều kiện ràng buộc khác. Chẳng<br />
hạn phân loại âm thanh thành bốn lớp: âm<br />
nhạc, tiếng nói, nhiễu, khoảng lặng [4], [6]<br />
hoặc chỉ phân thành tiếng nói và âm nhạc<br />
không thôi [3], [7].<br />
SỰ KHÁC NHAU GIỮA TIẾNG NÓI VÀ<br />
ÂM NHẠC<br />
Các tín hiệu âm thanh là một tín hiệu có ý<br />
nghĩa trong khoảng thời gian ngắn. Khi kiểm<br />
*<br />
<br />
tra tín hiệu âm thanh trong khoảng thời gian<br />
đủ ngắn (giữa 5 và 100msec), ta có thể nhận<br />
thấy đặc điểm của nó là khá cụ thể. Tuy nhiên<br />
trong thời gian dài, các đặc tính của tín hiệu<br />
thay đổi để phản ánh đặc điểm của chuỗi tín<br />
hiệu như một bài phát biểu hay một đoạn<br />
nhạc. Trong phần này, chúng tôi đưa ra một<br />
số nhận định về sự khác biệt giữa tiếng nói và<br />
âm nhạc như sau:<br />
- Thanh điệu: Giai điệu có ý nghĩa sự biểu<br />
thị của dạng sóng âm thanh. Âm nhạc có xu<br />
hướng được tạo ra từ sự đa dạng của các tần<br />
số. Còn tiếng nói có giai điệu từ chính sắc<br />
điệu và giọng nói của người nói.<br />
- Chuỗi thay thế: Tiếng nói cho ta một chuỗi<br />
các tiếng ồn, khoảng lặng xem kẽ từng đoạn<br />
trong khi âm nhạc không có. Nói cách khác,<br />
lời nói có tín hiệu phân phối thông qua quang<br />
phổ ngẫu nhiên hơn so với âm nhạc.<br />
- Băng thông: Tiếng nói thường có 90%<br />
năng lượng tập trung ở tần số thấp hơn 4kHz<br />
(và hạn chế đến 8kHz), trong khi âm nhạc có<br />
thể mở rộng thông qua các giới hạn trên<br />
khoảng 20kHz.<br />
- Phân phối: Năng lượng của tiếng nói<br />
thường tập trung ở tần số thấp sau đó giảm rất<br />
nhanh trong các miền tần số cao hơn. Còn tín<br />
hiệu âm nhạc thì trải đều hơn.<br />
<br />
Tel: 0972998865; Email:dtloan@ictu.edu.vn<br />
<br />
89<br />
<br />
Đỗ Thị Loan và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
- Tần số cơ bản: với tiếng nói cụ thể, ta có<br />
thể xác định được tần số cơ bản nhưng với âm<br />
nhạc thì không.<br />
- Khoảng âm điệu: Thời hạn của nguyên âm<br />
trong tiếng nói là rất thường xuyên. Âm nhạc<br />
thể hiện một biến thể rộng lớn hơn chiều dài<br />
của giai điệu, không được hạn chế do quá<br />
trình phát âm nhạc.<br />
- Năng lượng ngắn hạn: Năng lượng của tín<br />
hiệu tiếng nói có sự biến thiên nhiều hơn so<br />
với tín hiệu âm nhạc.<br />
- Tỷ lệ vượt điểm không: Tùy thuộc vào tín<br />
hiệu âm nhạc và tiếng nói nhưng thông<br />
thường tỷ lệ vượt điểm không của tín hiệu<br />
tiếng nói sẽ lớn hơn tín hiệu âm nhạc.<br />
LỰA CHỌN ĐẶC TRƯNG VÀ PHƯƠNG<br />
PHÁP NHẬN DẠNG PHÂN BIỆT TIẾNG<br />
NÓI VỚI ÂM NHẠC<br />
Cho tới nay có khá nhiều đặc tính của tín hiệu<br />
âm thanh để nhận dạng, phân biệt tiếng nói và<br />
âm nhạc hay các hệ thống nhận dạng phân<br />
loại khác nhau. Mỗi nghiên cứu đều đưa ra<br />
một số lượng các đặc tính của tín hiệu âm<br />
thanh và phương thức sử dụng để phân loại.<br />
Các đặc tính của tín hiệu âm thanh thường<br />
được chia làm hai loại chính là: các đặc tính<br />
vật lý và các đặc tính cảm thụ âm thanh của<br />
con người.<br />
Đặc tính vật lý là các đặc tính đặc trưng trong<br />
miền tần số và đặc trưng trong miền thời gian<br />
như: biên độ, tần số vượt điểm không ZCR,<br />
năng lượng ngắn hạn, hệ số phổ MFCC, cặp<br />
phổ tuyến tính LSP (Linear Spectrum Pair)<br />
[6], độ biến thiên phổ SF.<br />
Đặc tính về cảm thụ âm thanh của con người<br />
là các đặc tính được con người cảm nhận như<br />
nhịp điệu, độ cao của âm (Pitch), độ ngân, âm<br />
sắc,…. Cũng như nhiều nghiên cứu trước đây,<br />
để nhận dạng phân biệt tiếng nói với âm nhạc<br />
nói riêng hay nhận dạng phân biệt các lớp âm<br />
thanh khác nói chung hầu như chỉ sử dụng các<br />
đặc trưng vật lý là đủ. Bởi vậy trong bài báo<br />
này, chúng tôi cũng chỉ dùng các đặc trưng<br />
liên quan tới miền tần số và miền thời gian<br />
(đặc trưng vật lý).<br />
Dựa trên các phân tích, đánh giá về đặc điểm<br />
của tín hiệu âm thanh, giữa âm nhạc và tiếng<br />
nói về đặc điểm âm học, dải tần, đặc điểm về<br />
90<br />
<br />
112(12)/2: 89 - 95<br />
<br />
phân bố năng lượng, chúng tôi đã lựa chọn ba<br />
đặc trưng: Tỷ lệ tần suất vượt qua điểm không<br />
cao HZCRR (Hight Zero Crossing Rate<br />
Ratio), tỷ lệ khung có năng lượng ngắn hạn<br />
thấp LSTER (Low Short Time Energy Ratio)<br />
và độ biến thiên phổ SF (Spectrum Flux). Còn<br />
phương pháp nhận dạng phân biệt chúng tôi<br />
sử dụng là thuật toán K láng giêng gần nhất<br />
K-NN (K Nearest Neighbor) [8].<br />
Lựa chọn đặc trưng<br />
Đặc trưng tần suất vượt qua điểm không cao<br />
- HZCRR<br />
<br />
Hình 1: Biểu đồ tần suất vượt điểm không<br />
của tín hiệu âm thanh<br />
<br />
Công thức của HZCRR như sau:<br />
HZCRR =<br />
<br />
N −1<br />
<br />
1<br />
2N<br />
<br />
∑ [ sign<br />
<br />
(ZCRn – THL) +1<br />
<br />
n=0<br />
<br />
Trong đó:<br />
- n là thứ tự của cửa sổ trích chọn đặc trưng<br />
- N là độ rộng của cửa sổ trích chọn đặc trưng<br />
- ZCR là tần suất vượt điểm không trong<br />
khoảng ngắn theo công thức :<br />
ZCRk =<br />
<br />
1<br />
2F<br />
<br />
k<br />
<br />
∑ [ sign ( x<br />
<br />
m = k − F +1<br />
<br />
m<br />
<br />
) − sign ( x m − 1 )]<br />
<br />
F: độ dài khoảng ngắn - thường là 1 frame<br />
- THL là tần suất vượt điểm không trung<br />
bình trong cửa sổ theo công thức:<br />
THL =<br />
<br />
1<br />
N<br />
<br />
N −1<br />
<br />
∑ [ ZCR<br />
n=0<br />
<br />
n<br />
<br />
]<br />
<br />
Đặc trưng năng lượng ngắn hạn của tín<br />
hiệu - LSTER<br />
Công thức tính LSTER như sau:<br />
LSTER =<br />
<br />
1<br />
2N<br />
<br />
N −1<br />
<br />
∑ [ sign ( THL<br />
n=0<br />
<br />
− STE n ) + 1]<br />
<br />
Đỗ Thị Loan và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
Trong đó:<br />
- STE là năng lượng trong khoảng ngắn<br />
(trong 1 frame) theo công thức:<br />
<br />
k<br />
( x 2 .w 2<br />
)<br />
∑<br />
k<br />
m k −m<br />
m = k − F +1<br />
W là cửa sổ (có thể là chữ nhật hoặc<br />
hamming)<br />
- THL là năng lượng trung bình theo công<br />
thức:<br />
STE<br />
<br />
=<br />
<br />
THL =<br />
<br />
1<br />
2N<br />
<br />
N −1<br />
<br />
∑ [ STE ]<br />
n =0<br />
<br />
n<br />
<br />
Đặc trưng độ biến thiên phổ - SF<br />
<br />
Trong đó:<br />
- K là bậc của phổ DFT.<br />
- δ là hằng số bé (=0.01) để loại trường hợp<br />
log(0).<br />
- A(n,m) là biến đổi Fourier rời rạc(DFT)<br />
theo công thức:<br />
2π<br />
|A<br />
<br />
(n, m )<br />
<br />
=<br />
<br />
j<br />
mi<br />
∞<br />
|<br />
∑ x ( i ) w ( nL − i ). e L<br />
i = −∞<br />
<br />
Hình 2. Biểu đồ histogram độ biến thiên phổ<br />
theo không gian 3 chiều (a): music (b):speech<br />
<br />
Thuật toán KNN<br />
Thuật toán K-NN [8] là phương pháp phân<br />
loại dựa trên chỉ tiêu không gian khoảng cách.<br />
Xác định một điểm thuộc miền nào bằng cách<br />
tính toán dựa trên khoảng cách không gian.<br />
Có nhiều phương pháp để tính khoảng cách<br />
giữa các vectơ như phương pháp đo khoảng<br />
cách Euclidean, phương pháp đo khoảng cách<br />
Hamming, phương pháp đo khoảng cách<br />
<br />
112(12)/2: 89 - 95<br />
<br />
Mahalanobis hay phương pháp đo khoảng<br />
cách City Block.<br />
Bài toán: Giả sử ta có một không gian đa<br />
chiều (Y1, Y2,…,Yn) và có một tập hợp các<br />
khu vực A, B trong đó:<br />
- Khu vực A ta biết được sự tồn tại của các<br />
đối tượng XA1, XA2, … XAn với XAi={ YAi1,<br />
YAi2,…, YAin}<br />
- Khu vực B ta chỉ biết sự tồn tại của các<br />
đối tượng XB1, XB2, … XBn với XBi={ YBi1,<br />
YBi2,…, YBin}<br />
Có một đối tượng Xi ( Yi1, Yi2,…, Yin) bất kì<br />
ta cần xác định đối tượng Xi này thuộc khu<br />
vực A hay B.<br />
<br />
Hình 3: Mô tả thuật toán K-NN<br />
<br />
Giải thuật: Trong tất cả các đối tượng đã xác<br />
định rõ khu vực A và B, ta tìm K đối tượng<br />
gần với Xi nhất, trong K đối tượng này sẽ xác<br />
định xem có bao nhiêu đối tượng thuộc khu<br />
vực A, bao nhiêu đối tượng thuộc khu vực B,<br />
khu vực nào nhiều đối tượng gần Xi hơn thì<br />
Xi có khả năng thuộc khu vực đó.<br />
Để tính khoảng cách giữa các vectơ dùng<br />
công thức:<br />
D(X,X’)=<br />
THỰC HIỆN HỆ THỐNG NHẬN DẠNG<br />
PHÂN BIỆT TIẾNG NÓI VỚI ÂM NHẠC<br />
Hệ thống có dạng tổng quát như hình 4.<br />
Hoạt động của hệ thống gồm hai quá trình<br />
riêng biệt: thứ nhất là quá trình học (huấn<br />
luyện) và thứ hai là quá trình nhận dạng phân<br />
biệt với tín hiệu đầu vào.<br />
Quá trình huấn luyện: Tín hiệu đầu vào<br />
được đưa vào phân tích đặc trưng. Tại đây<br />
chúng được xử lý, tính toán và lấy ra giá trị<br />
các đặc trưng cần trích chọn phục vụ cho việc<br />
xây dựng hệ thống. Sau đó tới khối huấn<br />
91<br />
<br />
Đỗ Thị Loan và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
luyện được xử lý và lưu vào cơ sở dữ liệu<br />
(CSDL) mẫu. Quá trình huấn luyện dùng<br />
phương pháp học có giám sát nghĩa là chúng<br />
ta đã biết rõ sự phân lớp trên tập dữ liệu mẫu<br />
dùng để học, ở đây chỉ có hai lớp: tiếng nói và<br />
âm nhạc. Các đặc trưng mẫu của từng lớp<br />
được trích chọn lưu riêng vào CSDL.<br />
<br />
112(12)/2: 89 - 95<br />
<br />
Tuy nhiên vấn đề khi phân khung của tín hiệu<br />
đó chính là sai số của cả phép biến đổi so với<br />
tín hiệu gốc, do đó nên sử dụng hàm cửa sổ<br />
để hạn chế các sai số do độ dài hữu hạn của<br />
các tín hiệu gây ra trong các phép biến đổi.<br />
Hàm cửa sổ thường được dùng là Hamming<br />
được cho bởi công thức sau:<br />
W n = 0 . 54 − 0 . 46 * cos(<br />
<br />
2Πn<br />
)<br />
N −1<br />
<br />
KẾT QUẢ<br />
Cài đặt hệ thống<br />
Chúng tôi thực hiện hệ thống nhận dạng phân<br />
biệt với tín hiệu đầu vào là các file âm thanh<br />
chuẩn dạng WAVE (*.wav), việc tính toán,<br />
xử lý, phân biệt đều thực hiện dựa trên file<br />
wave này. Như đã phân tích ở trên quá trình<br />
huấn luyện gồm các bước cơ bản sau:<br />
<br />
Hình 4: Mô hình tổng quát của hệ thống<br />
<br />
Quá trình nhận dạng phân biệt: Trình tự<br />
thực hiện cũng như trên nhưng chỉ khác là tín<br />
hiệu sau khi được trích chọn đặc trưng sẽ<br />
được đưa vào khối nhận dạng phân biệt. Tại<br />
khối này chúng ta phân tích đánh giá với<br />
CSDL mẫu đã được huấn luyện thông qua<br />
thuật toán K-NN. Kết quả này sau đó được<br />
chuyển tới bộ ra quyết định để xác định xem<br />
tín hiệu hiệu đó thuộc lớp tín hiệu nào. Vectơ<br />
đặc trưng là vectơ 3 chiều vì ta chỉ chọn 3 đặc<br />
trưng như đã trình bày ở trên.<br />
Phân khung tín hiệu: Do tín hiệu tiếng nói<br />
ổn định trong khoảng vài chục ms, nên khi<br />
tiến hành các phép phân tích, biến đổi người<br />
ta thường chia tín hiệu thành có đoạn nhỏ<br />
khoảng 10 đến 30ms, đó được gọi là phân<br />
khung, các khung tín hiệu liên tiếp có thể<br />
chồng nhau khoảng ½ độ dài.<br />
<br />
Hình 5: Phân khung tín hiệu<br />
<br />
92<br />
<br />
Hình 6: Mô hình quá trình huấn luyện<br />
<br />
Với mỗi dãy tín hiệu âm thanh đọc được, ta<br />
thực hiện xác định khung tín hiệu, tính các<br />
thông số cơ bản STE, ZCR, A của dãy tín hiệu.<br />
Giao diện cài đặt của quá trình huấn luyện:<br />
<br />
Hình 7: Giao diện huấn luyện, tạo dữ liệu mẫu<br />
<br />
Đỗ Thị Loan và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
- Bên phải là đồ thị của tín hiệu: tại khung cửa<br />
sổ thứ nhất là dạng tín hiệu âm thanh, tiếp theo<br />
là năng lượng trong khoảng ngắn hạn và tần<br />
suất vượt điểm không của tín hiệu âm thanh.<br />
- Bên trái là các điều khiển: mở file wave,<br />
nghe thử, xác định tiếng nói hay âm nhạc, lưu<br />
dữ liệu.<br />
Quá trình nhận dạng:<br />
<br />
112(12)/2: 89 - 95<br />
<br />
khung cửa sổ thứ 4 thể hiện đây là tiếng nói<br />
hay âm nhạc (tiếng nói có biên độ bằng 2/3<br />
khung còn âm nhạc có biên độ = 1/3 khung).<br />
- Bên trái cũng là khung điều khiển mở,<br />
chọn tín hiệu file wave. Ngoài ra còn có sự<br />
lựa chọn tham số K (K là số phần tử thuộc lớp<br />
đặc trưng mẫu gần với mẫu cần nhận dạng<br />
phân biệt nhất).<br />
Đánh giá<br />
Chương trình thực hiện phân biệt tiếng nói và<br />
âm nhạc dựa trên một tập các tín hiệu âm<br />
thanh mẫu mà tôi sưu tầm có được : tập hợp<br />
tiếng nói là tiếng Việt, tập hợp âm nhạc là các<br />
thể loại nhạc không lời của một số trường<br />
phái âm nhạc.<br />
<br />
Hình 8: Mô hình quá trình nhận dạng<br />
<br />
Quá trình nhận dạng có một số bước trùng<br />
với quá trình huấn luyện như việc đọc dữ<br />
liệu file wave, thông số cơ bản, tính các<br />
thông số đặc trưng.<br />
<br />
Tập hợp tiếng nói gồm có 1037 file là các file<br />
phát âm các từ của tiếng Việt, mỗi file có độ<br />
dài < 1s, có tần số lấy mẫu 16000Hz, bit rate<br />
là 16bit/mẫu.<br />
Tập hợp âm nhạc gồm có 77 file là các file<br />
nhạc không lời của các thể loại R&B, Rock,<br />
Country…. Mỗi file có độ dài < 30s và có<br />
cùng tần số lấy mẫu 16000Hz, bit rate<br />
16bit/mẫu.<br />
Các file dữ liệu mẫu trên đều là các file âm<br />
thanh mono (một kênh).<br />
Qua thử nghiệm, thống kê tôi thấy chương<br />
trình đã thực hiện việc phân biệt tiếng nói và<br />
âm nhạc với tỉ lệ chính xác tốt với các trường<br />
hợp tiếng nói và âm nhạc riêng biệt.<br />
Sau đây là kết quả thu được khi thử nghiệm:<br />
Bảng 1: Kết quả thống kê cơ sở dữ liệu<br />
<br />
Hình 9: Giao diện nhận dạng phân biệt<br />
<br />
Tương tự như giao diện huấn luyện, giao diện<br />
nhận dạng cũng có các phần:<br />
- Bên phải là đồ thì biểu diễn của tín hiệu: tại<br />
khung cửa sổ thứ nhất là dạng tín hiệu của âm<br />
thanh, tiếp theo là năng lượng trong khoảng<br />
ngắn hạn và tần suất vượt điểm không của tín<br />
hiệu âm thanh, tuy nhiên khác với giao diện<br />
huấn luyện, giao diện nhận dạng còn có thêm<br />
<br />
Âm<br />
nhạc<br />
<br />
Tiếng<br />
nói<br />
<br />
Giá trị trung bình của<br />
LSTER<br />
<br />
0.2048<br />
<br />
0.14599<br />
<br />
Giá trị trung bình của<br />
HZCRR<br />
<br />
0.3942<br />
<br />
0.2632<br />
<br />
Giá trị trung bình của SF<br />
<br />
0.3885<br />
<br />
0.22<br />
<br />
93<br />
<br />