Download as pdf or txt
Download as pdf or txt
You are on page 1of 51

PHÂN LOẠI NHẠC THEO

THỂ LOẠI

Nhóm thực hiện:


Trần Bính Đường tranduong121188@yahoo.com.vn
Lê Văn Chánh vanchanh123@yahoo.com
Lê Nguyễn Khánh Duy khanhduy301@gmail.com
Lê Nguyên Dũng dungcoivb@gmail.com

TP. Hồ Chí Minh - 2011


LỜI NÓI ĐẦU
Trong những năm gần đây, cùng với sự bùng nổ công nghệ thông tin và các định
dạng nhạc nén ra đời, đều này làm cho việc sở hữu những bài nhạc trở nên dễ dàng
hơn bao giờ hết. Kéo theo đó sự gia tăng nhu cầu nhu cầu sưu tập nhạc số ở mỗi
cá nhân hay tổ chức.
Với số lượng lớn các bài nhạc được sưu tầm được thì việc phân nhóm các bài
nhạc để dễ dàng quản lý là một nhu cầu tất yếu. Tuy nhiên do việc sưu tầm nhạc
có thể tiến hành từ nhiều nguồn, với nhiều nguồn chất lượng âm thanh khác nhau,
cũng như thông tin về từng bài nhạc tải về cũng có mức độ chính xác khác nhau,
nên việc phân loại các bài nhạc chỉ dựa trên các thông tin ghi trên tập tin lưu trữ
còn gặp nhiều hạn chế. Thay vì chỉ dựa vào các thông tin có sẵn, người sưu tầm có
thể tự nghe lại từng bài nhạc rồi tự phân loại chúng, tuy nhiên với một số lượng
đồ sộ các bài nhạc thì việc này là không khả thi. Điều này đã là nảy sinh nhu cầu
tự động phân loại nhạc trong các hệ thống lưu trữ âm nhạc.
Các hệ thống phân loại nhạc tự động là rất cần thiết, nó hổ trợ hoặc thay thế
con người trong việc sưu tập nhạc, truy tìm thông tin nhạc trên Internet,... Bên
cạnh đó, việc phân loại nhạc tự động cung cấp cơ sở khoa học cho việc phân tích
các tín hiệu âm nhạc dựa vào nội dung.
Trong khuôn khổ của bài báo cáo này, chúng tôi chỉ đi sâu vào việc phân loại
nhạc theo thể loại.

Dù đã có nhiều cố gắng, nhưng đề tài không khỏi tránh được sai xót, nhóm
chúng tôi mong nhận được sự phê bình và góp ý của thầy cô và các bạn.
Mục lục

1 Lịch sử về hệ thống xử lý âm thanh 5

I Cơ sở lý thuyết 7

2 Âm thanh và số hóa âm thanh 8


2.1 Âm thanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Nguồn gốc của âm và cảm giác về âm . . . . . . . . . . . . . 8
2.1.2 Những đặc tính của sóng âm . . . . . . . . . . . . . . . . . . 9
2.2 Số hóa âm thanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Tổng quan về âm nhạc 15


3.1 Nốt nhạc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Bát độ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4 Biến đổi Fourier 19


4.1 Biến đổi Fourier rời rạc . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.1 Định nghĩa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.2 Biến đổi Fourier ngược . . . . . . . . . . . . . . . . . . . . . . 20
4.1.3 Các tính chất . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.1.4 Fast Fourier Transform . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Biến đổi STFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.3 Những hạn chế của FT và STFT . . . . . . . . . . . . . . . . . . . . 25
4.3.1 Hạn chế của FT . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3.2 Hạn chế của STFT . . . . . . . . . . . . . . . . . . . . . . . . 25

5 Phân lớp K - Nearest Neighbor 26


5.1 Khai khoáng dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2 Phân lớp là gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3 Phân lớp k - Nearest Neighbor . . . . . . . . . . . . . . . . . . . . . 27
5.3.1 Phân lớp 1 - Nearest Neighbor . . . . . . . . . . . . . . . . . 27

2
5.3.2 Phân lớp k - Nearest Neighbor . . . . . . . . . . . . . . . . . 27
5.3.3 Ưu điểm, khuyết điểm . . . . . . . . . . . . . . . . . . . . . . 29

II Bài toán phân loại nhạc theo thể loại 31


6 Giới thiệu bài toán 32
6.1 Nhu cầu thực tế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.2 Giới thiệu bài toán phân loại nhạc theo thể loại . . . . . . . . . . . 32
6.3 Mô hình tổng quát hệ thống phân nhạc theo thể loại . . . . . . . . . 34

7 Thuật giải 35
7.1 Rút trích đặc trưng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.2 Các đặc trưng liên quan đến bố cục âm sắc (Timbral Texture Features) 36
7.3 Cải tiến . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.4 Khoảng cách giữa hai mẫu . . . . . . . . . . . . . . . . . . . . . . . . 39
7.5 Huấn luyện và nhận dạng . . . . . . . . . . . . . . . . . . . . . . . . 40

8 Thực nghiệm, kết quả và nhận xét 41


8.1 Kho mẫu thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . 41
8.2 prjMusicalClassification . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8.2.1 Thử nghiệm với 10 thể loại . . . . . . . . . . . . . . . . . . . 42
8.2.2 Thử nghiệm với 4 thể loại như trong luận văn ban đầu . . . 42
8.2.3 Thử nghiệm với 4 thể loại tốt nhất . . . . . . . . . . . . . . . 43
8.3 Hình ảnh chương trình thực nghiệm . . . . . . . . . . . . . . . . . . 45
8.4 Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8.5 Hạn chế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8.6 Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3
Danh sách hình vẽ
2.1 Đồ thị dao động của các âm phát ra từ âm thoa, ghita . . . . . . . 9
2.2 Đồ thị dao động của các âm phát ra khi gõ tấm kim loại . . . . . . 10
2.3 Sóng âm thanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Giai đoạn lấy mẫu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Độ phân giải. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1 Chu trình các lớp nốt . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Mô hình biểu diễn vùng bát độ . . . . . . . . . . . . . . . . . . . . . 17
3.3 Mô hình biểu diễn các mức bán âm trong 1 bát độ . . . . . . . . . . 17
3.4 Khoảng cách giữa các pitch class tương ứng với tỷ lệ tần số . . . . . 18
5.1 Phương pháp phân loại 1 - Nearest Neighbor . . . . . . . . . . . . . 28
5.2 Phương pháp phân loại k - Nearest Neighbor . . . . . . . . . . . . . 29
6.1 Sơ đồ xác định thể loại nhạc từ tín hiệu audio. . . . . . . . . . . . . 33
6.2 Mô hình phân loại nhạc tổng quát. . . . . . . . . . . . . . . . . . . . 34
7.1 Sơ đồ một vector đặc trưng từ một tín hiệu nhạc. . . . . . . . . . . 35
7.2 Sơ đồ xác định các đặc trưng liên quan bố cục âm sắc. . . . . . . . 36
8.1 Biểu đồ tương quan độ chính xác phân loại 10 thể loại . . . . . . . . 43
8.2 Biểu đồ tương quan độ chính xác phân loại 4 thể loại . . . . . . . . 44
8.3 Biểu đồ tương quan độ chính xác phân loại 4 thể loại . . . . . . . . 45
8.4 Trích xuất giá trị các đặc trưng . . . . . . . . . . . . . . . . . . . . . 45
8.5 Phân loại với 4 thể loại . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.6 Phân loại với 10 thể loại (1) . . . . . . . . . . . . . . . . . . . . . . . 47
8.7 Phân loại với 10 thể loại (2) . . . . . . . . . . . . . . . . . . . . . . . 48

4
Chương 1

Lịch sử về hệ thống xử lý
âm thanh
Xử lý âm thanh được định nghĩa nguồn gốc được sử dụng trong giới học
thuật để chỉ đến các vấn đề liên quan đến kỹ thuật tính toán dựa vào cấu tạo của
âm nhạc. Nó bao hàm những lý thuyết và ứng dụng mới hay kỹ thuật đã tồn tại
trong âm nhạc như tổng hợp âm thanh, xử lý tính hiệu số, thiết kế âm thanh,
truyền âm tính, độ vang... Phạm vi của tính toán âm nhạc có thể tính là nguồn
gốc của nhạc điện tử (Nhạc số), những thử nghiệm ban đầu và sáng tạo với nhạc
dụng cụ điện tử trong thế kỉ 20. Gần đây, với sự phát triển của máy tính cá nhân
và sự phát triển của các phòng thu tại nhà, tính toán âm nhạc đôi lúc còn được sử
dụng để chỉ đến mọi thứ âm nhạc đã được tạo sử dụng kỹ thuật tính toán.
Rất nhiều việc trong xử lý âm thanh kéo mối quan hệ giữa âm nhạc và toán
học lại gần nhau. Máy tính đầu tiên trên thế giới chơi nhạc là CSIRAC, nó được
thiết kế và xây dựng bởi Trevor Pearcey và Maston Beard. Nhà toán học Geoff
Hill đã lập trình CSIRAC để có thể chơi được các giai điệu thông dụng của đầu
thập kỷ những năm 1950. Trong lần công bố nó vào năm 1951 nó đã chơi bản nhạc
Colonel Bogey March, đáng tiếc là hiện không có bản thu nào được biết đến. Tuy
nhiên, CSIRAC chỉ chơi theo những chuẩn từ trước và nó không thể được sử dụng
để mở rộng để có thể hiểu về âm nhạc hay cấu tạo của nhạc bài nhạc mà nó được
học.
Một bản thu cũ hơn được biết đến của máy tính chơi nhạc được chơi bởi máy tính
mang tên Ferranti Mark 1, đây là một phiên bản thương mại của Baby Machine
từ Đại học Manchester trong mùa thu năm 1951. Chương trình nhạc được viết
bởi Christopher Strachey. Trong một phiên thu âm của BBC, cổ máy được điều
khiển để có thể chơi được các giai điệu : "Baa Baa Black Sheep", "Baa Baa Black
Sheep", "God Save the King" và một phần của "In the Mood".
Sự trưởng thành hơn nữa vào những năm 1950 đã phát triển được nguồn gốc
của âm thanh kỹ thuật số bởi máy tính, với những giải thuật chương trình vượt xa

5
việc chỉ là học vẹt rồi phát lại. Max Mathews của Bell Laboratories đã phát triển
chương trình MUSIC I có ảnh hưởng lớn đến sau này, hơn nữa sự thông dụng của
nhạc máy tính xuyên suốt các tài liệu khoa học vào năm 1962. Trong những con
người đầu tiên trong đó, một nhạc sĩ tên là Lejaren Hiller và Leonard Isaacson đã
làm việc và xây dựng một loạt các giải thuật xử lý âm nhạc từ năm 1956-1959,
xuất hiện lần đầu vào năm 1957 với tên Illiac Suite (Tạm dịch là Hệ Illiac) cho
chuỗi bộ tứ.
Âm nhạc máy tính sơ khai đặc trưng không thể chạy thời gian thực. Chương
trình cần chạy vài giờ, vài ngày với những máy tính hàng triệu đôla để có thể tạo
ra vài phút nhạc, rất xa xỉ. Việc John Chowning đã làm nên sóng FM từ những
năm 1960 đến những năm 1970 và sự ra đời của những con chip điện tử, những
con chip nhỏ giá rẻ, đã mở ra cách cửa xử lý thời gian thực cho nhạc máy tính.
Đầu những năm 1990, hiệu suất của những bộ vi xử lý tiến tới mức tạo ra âm nhạc
máy tính thời gian thực bằng việc sử dụng chương trình với các thuật toán là khả
thi.

Truy vấn thông tin nhạc (Music Information Retrieval - MIR) là một nhánh
nhỏ của xử lý âm thanh, MIR liên quan đến việc quản lý thư viện nhạc số. nó bao
gồm nhiều vấn đề nhỏ mà vấn các vấn đề nghiên cứu như sau :

• Phân loại, mô hình hóa âm nhạc.

• Phương pháp hình thức và lưu trữ âm nhạc.

• Phần mềm truy vấn thông tin âm nhạc.

• Giao diện tương tác giữa con người với máy tính.

• Cho máy tính có thể "cảm thụ" được âm nhạc.

• Phân tích và tái hiện lại tri thức.

• Lưu trữ âm nhạc, thư viện nhạc kỹ thuật số.

• Nhận ra sở hữu đúng của nhạc.

• Các vấn đề đến xã hội và kinh tế với âm nhạc.

Ý tưởng ban đầu về kỹ thuật truy vấn thông tin âm nhạc xuất hiện vào những
năm 1966. Tuy nhiên vấn đề chỉ thật sự được tìm hiểu tỉ mỉ gần đây khi khi bùng
nổ sở thích sưu tầm nhạc qua mạng với hình thức nhạc điện tử, mọi thứ còn phát
triển nhanh hơn nữa khi các định dạng nhạc nén ra đời như mp3, các dịch vụ chia
sẻ âm nhạc như Napster ra đời, cao hơn nữa góc nhìn về nhận dạng âm nhạc, việc
này sẽ giúp giảm thiểu chi phí về lưu trữ âm nhạc cũng như băng thông

6
Phần I

Cơ sở lý thuyết

7
Chương 2

Âm thanh và số hóa âm
thanh
2.1 Âm thanh
2.1.1 Nguồn gốc của âm và cảm giác về âm
Như chúng ta đã biết, các vật phát ra âm đều dao đọng và ta gọi là các vật đó
là nguồn âm. Ví dụ như dây đàn bị bật, mặt trống bị gõ,. . . đều dao đọng và phát
ra âm.
Vật dao động làm cho lớp không khí ở bên cạnh lần lượt bị nén rồi bị dãn.
Không khí bị nén hay bị dãn thì làm xuất hiện lực đàn hồi khiến cho dao đọng đó
được truyền cho các phần tử không khí ở xa hơn. Dao động được truyền đi trong
không khí, tạo thành sóng gọi là sóng âm có cùng tần số với nguồn âm. Sóng âm
là sóng dọc.
Sóng âm truyền qua không khí lọt vào tai ta gặp màng nhĩ, tác dụng lên màng
nhĩ một áp suất biến thiên, làm cho màng nhĩ dao động. Dao động của màng nhĩ
lại được truyền đến đầu các dây thần kinh thính giác làm cho ta có cảm giác về
âm thanh (gọi tắt là âm). Như vậy cảm giác về âm phụ thuộc vào nguồn âm và
tai người nghe. Tai con người chỉ có thể cảm nhận được những sóng âm có tần số
trong khoảng 16 Hz đến 20 000 Hz. Những âm có tần số cao hơn 20 000 Hz gọi là
siêu âm và những âm có tần số nhỏ hơn 16 Hz gọi là hạ âm.
Sóng âm có thể truyền đi trong tất cả các môi trường đàn hồi (chất khí, chất
rắn, chất lỏng) và không truyền được qua chân không. Vận tốc truyền âm phụ
thuộc vào tính đàn hồi và mật độ của môi trường. Nói chung, vận tốc truyền âm
trong chất rắn lớn hơn trong chất lỏng, và trong chất lỏng lớn hơn trong chất khí.
Trong chất chí và chất lỏng, sóng âm là sóng dọc vì trong các chất này lực đàn
hòi chỉ xuất hiện khi có biến dạng nén, dãn. Trong chất rắn, sóng âm có thể là
sóng ngang hoặc sóng dọc vì lực đàn hồi xuất hiện cả thi có biến dạng lệch và biến

8
dạng nén, dãn.

2.1.2 Những đặc tính của sóng âm


Nhạc âm và tạp âm

Hình 2.1: Đồ thị dao động của các âm phát ra từ âm thoa, ghita

Hình 2.1 cho ta đồ thị của dao động pháy ra từ các nhạc cụ mà ta quan sát
được trên màn hình của dao động ký tự điện tử. Hình 2.2 là đồ thị hình của dao
động của một tiếng gõ mạnh trên tấm kim loại. Ta nhận thấy âm do các nhạc cụ
phát ra thì nghe êm ái, dễ chịu và đồ thị dao động của chúng có đặc điểm chung
là những đường cong tuần hoàn có tần số xác định. Chúng được gọi là nhạc âm.
Còn tiếng gõ tấm kim loại nghe chối tai, gây cảm giác khó chịu, đồ thị của chúng
là những đường cong không tuần hoàn, không có tần số xác định. Chúng được gọi
là tạp âm.

Độ cao của âm
Ta đã biết trong âm nhạc, các nốt nhạc đồ, rê, mi, pha, son, la, si ứng với các
âm có độ cao tăng dần. Ví dụ, âm ứng với nốt son thấp hơn âm ứng với nốt la,
hoặc âm ứng với nốt la cao hơn âm ứng với nốt son.
Nếu đưa các tín hiệu âm này vào dao động kí điện tử thì ta thấy âm cao (còn
gọi là âm bổng) có tần số lớn hơn âm thấp (còn gọi là âm trầm).
Biểu thức dùng để tính độ cao là
f
p = 69 + 13log2
440
với f là tần số của âm thanh.

9
Hình 2.2: Đồ thị dao động của các âm phát ra khi gõ tấm kim loại

Âm sắc
Khi ta nghe hòa nhạc, ba nhạc cụ cùng tấu lên một đoạn nhạc ở cùng tọa độ
cao nhưng ta vẫn phân biệt được tiếng của từng nhạc cụ. Nếu đưa các tín hiệu
âm này vào dao động kí điện tử ta sẽ được trên màn hình những đường cong có
cùng tần số nhưng có dạng rất khác nhau (Hình 2.1). Dạng đương cong khác nhau
chứng tỏ li độ của dao động âm biến đổi khác nhau. Vì thế, sóng âm tác dụng vào
màng nhĩ của tai, làm cho màng nhĩ dao động theo những kiểu khác nhau. Do đó,
ta nghe thấy các âm dó có sắc thái khác nhau. Đặc tính đó của âm gọi là âm sắc.

Cường độ âm, mức cường độ âm


Cường độ âm cho ta cảm giác nghe thấy âm to hay nhỏ, mạnh hay yếu.
Cường độ âm được định nghĩa là năng lượng được sóng âm truyền qua một
đơn vị diện tích đặc vuông góc với phương truyền sóng trong một đơn vj thời gian.
W
Đơn vị cường đọ âm là .
m2
Để so sánh cường độ của một âm với cường độ âm tiêu chuẩn, người ta dùng
đại lượng mức cường độ âm đo bằng đơn vị đê-xi-ben (dB). Mức cường độ am
được định nghĩa bằng công thức
I
L(dB ) = 10lg
I0

Gọi âm có cường độ bằng cường


 độ bằng cường
 độ âm tiêu chuẩn làcó mức cường

I I
độ âm bằng không đê-xi-ben = 1 = 100 thì âm mạnh nhất = 103 có
I0 I0

10
cường độ âm bằng 10 × 13 = 130dB .
Mức cường độ âm của một số âm thường gặp có trị số trong khoảng từ 20 dB
đến 100 dB. Chẳng hạn tiếng nói chuyện bình thường có mức cường độ âm bằng
40 dB.

Độ to của âm
Do đặc điểm sinh lí của tai, nên để âm thanh gây được cảm giác âm, thì cường
độ âm phải lớn hơn một giá trị cực tiểu nào đó gọi là ngưỡng nghe. Ngưỡng nghe
lại thay đổi theo tần số của âm. Ví dụ với các âm có tần số từ 1 000 đến 1 500 thì
ngưỡng nghe vào 10− 2 W/m2 , còn với tần số 50 Hz, ngưỡng nghe lớn gấp 105 lần.
Cảm giác nghe âm “to” hay “nhỏ” không những phụ thuộc vào cường độ âm mà
còn phụ thuộc vào tần số của âm. Với cùng một cường độ âm, tai nghe được âm
có tần số cao “to” hơn âm có tần số thấp. Do đó, phát thanh viên nữ nói nghe rõ
hơn phát thanh viên nam.
Khi cường độ âm lên tới 10 W/m2 ứng với mức cường độ âm 130 dB thì sóng
âm với mọi tần số gây cho tai ta cảm giác nhức nhối, đau đớn. Giá trị cực đại của
cường độ âm mà tại ta có thể chịu đựng được gọi là ngưỡng đau. Ngưỡng đau ứng
với mức cường độ âm là 130 dB.

2.2 Số hóa âm thanh


Đây là quá trình chuyển đổi sóng âm, tức là sóng cơ học, thành dữ liệu số được
lưu trữ trong máy tính. Quá trình này được chia thành hai giai đoạn: chuyển đổi
sóng âm thành tín hiệu điện và chuyển tín hiệu điện thành tín hiệu số.
Quá trình chuyển sóng âm thành tín hiệu điện được thu nhận thông qua các
thiết bị thu nhận âm thanh. Dòng điện có hiệu điện thế dao động điều hòa cũng
giống như sóng âm, chính vì vậy mà ta có thể biểu diễn sóng âm bằng tín hiệu
điện.
Tín hiệu sóng âm thanh trong thế giới thực có dạng tương tự (analog). Do đó,
để có thể lưu trữ và biểu diễn trên các thiết bị máy tính sử dụng hệ tín hiệu nhị
phân, chúng ta cần phải chuyển đổi tín hiệu analog sang tín hiệu dạng số (digital).
Tín hiệu nhị phân không những được biểu diễn và sử dụng trên máy tính mà nó
còn được ứng dụng trong rất nhiều các vật dụng khác mà chúng ta dùng hàng ngày
như: điện thoại, máy nghe CD, máy nghe MP3, . . .
Các bước chuyển sang tín hiệu được thực hiện như sau
Lấy mẫu (sampling)
Xét 1 tín hiệu âm thanh (hình 2.3) Trong đó:
• Trục X biểu diễn cho miền thời gian tính theo đơn gị giây (s).

• Trục Y biễu diễn cho cường độ tín hiệu tính theo đơn vị Voltage (V).

11
Hình 2.3: Sóng âm thanh

12
Lấy mẫu (sampling)

• Chúng ta tiến hành lấy mẫu từ tín hiệu analog theo thời gian.

• Mỗi lần lấy mẫu, giá trị về độ lớn Voltage của tín hiệu sẽ được biểu diễn
bằng 1 con số.

• Số lần lấy mẫu của chúng ta trong 1s được gọi là tần số lấy mẫu hay còn
được gọi là tỷ lệ lấy mẫu (sampling rate).

• Các loại tần số lấy mẫu phổ biến trong máy tính: 8.000Hz, 11.025Hz, 22.050Hz,
32000Hz, 44.056Hz, 44.100Hz, 47.250Hz, 48.000Hz, 50.000Hz, 50.400Hz, 88.200Hz,
96.000Hz.

Hình 2.4: Giai đoạn lấy mẫu.

Nhìn hình 2.4, trong đồ thị, xét giao điểm của đồ thị màu đỏ với đồ thị màu xanh
ta có:

13
• Hoành độ chính là thời gian t1 , t2 , . . .

• Tung độ chính là con số chúng ta cần lưu trữ.

Độ phân giải (resolution)

• Như đã nói ở phần trên, mỗi lần lấy mẫu, chúng ta sẽ biểu diễn cường độ
của tín hiệu bằng 1 con số.

• Như vậy, nếu số bit ta dùng cho việc lấy mẫu càng cao thì độ thực cũng như
khả năng tái tạo lại tín hiệu như ban đầu càng tốt.

Hình 2.5: Độ phân giải.

14
Chương 3

Tổng quan về âm nhạc


Âm nhạc là một bộ môn nghệ thuật dùng âm thanh (Chất giọng) để diễn đạt
tình cảm, xúc cảm của con người. Nó được chia ra hai thể loại chính : Thanh nhạc
và khí nhạc. Thanh nhạc là âm nhạc dựa trên lời hát thể hiện rõ ý tưởng và tình
cảm. Còn khí nhạc là âm nhạc dựa trên âm thanh thuần tuý của các nhạc cụ, nên
trừu tượng, gây cảm giác và sự liên tưởng.
Âm nhạc là một môn nghệ thuật phối hợp âm thanh theo những quy luật nhất
định. Âm nhạc bắt nguồn từ những âm thanh trong cuộc sống. Thế nhưng không
phải âm thanh nào cũng là âm nhạc. Mà chỉ những âm thanh có tính nhạc. Chúng
phải có đủ 4 tính chất cơ bản sau :

• Cao độ : Mức độ trầm bổng của âm thanh

• Trường độ : Mức độ ngắn dài của âm thanh

• Cường độ : Mức độ mạnh nhẹ của âm thanh

• Âm sắc : Mặc dù âm thanh có giống nhau về cao độ, về trường độ, về cường
độ, nhưng vẫn có những tính chất riêng biệt. Tính chất riêng của âm thanh
được gọi là âm sắc .

Từ những âm thanh có tính nhạc đó, lâu dần con người biết phối hợp việc lên
xuống trầm bổng để tạo âm vực rộng và phong phú. Và cũng từ đó mà âm nhạc
được hình thành và phát triển.

3.1 Nốt nhạc


Để cụ thể hóa đơn vị cao độ trong âm nhạc, người ta định nghĩa mỗi nốt nhạc
là một giá trị đại diện cho một cao độ nhất định. Nốt thấp nhất tương ứng với tần

15
số thấp nhất khi nghe tiếng nhạc, khoảng từ 20-30Hz. Nốt cao nhất tương ứng với
tần số cao nhất, khoảng từ 15-20KHz.
Lớp nốt là tên của 1 tiếng nhạc. Có 12 lớp nốt được đặt tên là : C, C], D, D],
E, F, F], G, G], A, A] và B. Các lớp nốt này tạo thành 1 chu trình. Một đường đi
vòng quanh từ C-C]-D-D]-...và trở về C tạo thành chu trình gọi là 1 bát độ/quãng
tám (Octave), nửa đường đi vòng quanh chu trình từ C đến F] gọi là quãng năm.

Hình 3.1: Chu trình các lớp nốt

3.2 Bát độ
Khoảng cách từ nốt nhạc đầu tiên đến nốt nhạc thứ 8. Chẳng hạn, ta có khoảng
cách từ nốt nhạc: Đô-Rê-Mi-Fa-Sol-La-Si-Đô là 1 bát độ. Mặt khác, nó biểu diễn
mối quan hệ giữa 2 nốt mà trong đó 1 pitch có tần số gấp đôi tần số nốt còn lại.
Chẳng hạn, khoảng cách từ 100Hz đến 200Hz gọi là 1 bát độ.

Từ hình Chu trình các lớp nốt, nếu nốt C4 có tần số là 261,6 Hz thì nốt C5 có
tần số gấp đôi tần số của nốt C4 là 523,2Hz. Cả C4 và C5 có cùng lớp nốt C.
Để dễ hình dung, ta có thể xem các mức bán âm trong 1 bát độ tương ứng với
các vị trí trên đồng hồ được biểu diễn trong hình Chu trình các lớp nốt : Lớp nốt

16
Hình 3.2: Mô hình biểu diễn vùng bát độ

Hình 3.3: Mô hình biểu diễn các mức bán âm trong 1 bát độ

17
C ở vị trí 12 giờ, C] ở vị trí 1 giờ trên đồng hồ,. . . .chúng tạo thành 1 chu trình.
Sau đây là một số thông tin về tên các khoảng cách giữa các lớp nốt tương ứng với
số bán âm và tỷ lệ giữa các tần số :

Tên khoảng cách Tỷ lệ tần số Số bán âm


Đồng âm (Unison) 1/1 0
Bán âm (Semitone) 16/15 1
Quãng hai (Second) 9/8 2
Quãng ba - nhỏ (Third - minor) 6/5 3
Quãng ba - lớn (Third - major) 5/4 4
Quãng bốn (Fourth) 4/3 5
Quãng năm (Fifth) 3/2 7
Quãng sáu - nhỏ (Sixth - minor) 8/5 8
Quãng sáu - lớn (Sixth - major) 5/3 9
Quãng bảy - nhỏ (Seventh minor) 9/5 10
Quãng bảy - lớn (Seventh major) 15/8 11
Quãng tám/ Bát độ (Octave) 2/1 12

Hình 3.4: Khoảng cách giữa các pitch class tương ứng với tỷ lệ tần số

Khi một trong số các tiếng nhạc được chơi, chẳng hạn cặp C-F], C]-G,. . . người
nghe sẽ có cảm nhận tiếng nhạc có khuynh hướng giảm dần. Tuy nhiên, khi các
tiếng nhạc khác được chơi, chẳng hạn F]-C, G-C], G]-D sẽ nghe tiếng nhạc theo
hướng tăng dần.

18
Chương 4

Biến đổi Fourier


4.1 Biến đổi Fourier rời rạc
Đối với mỗi tín hiệu, chúng ta có 2 cách để biểu diễn dưới dạng miền không
gian hoặc miền tần số. Với biến đổi Fourier, cho ta việc biểu diễn tín hiệu trên
miền tần số.

4.1.1 Định nghĩa


Gọi g là hàm xác định trên D = {0, 1, ..., M − 1}. Xét hàm:

G:D→C
−1
1 MP −2π.i.u.x
u 7→ G (u) = g (x) e M
M x=0

Dưới quan điểm toán thì phép biến đổi này là một cách "biểu diễn lại" tín hiệu
theo một cơ sở nào đó. Với phép biến đổi Fourier rời rạc, biến một dãy này thành
một dãy khác có cùng kích thước.

19
Trên thực tế, tín hiệu liên tục g (t) thông qua các bộ lọc ta lấy mẫu g [n] =
g (tn ), n = 0, ..M − 1

4.1.2 Biến đổi Fourier ngược


Và phép biến đổi ngược
M −1
1 X 2π.iu.x
g (x) = G (u) e M , x = 0, .., M − 1
M
u=0

Đối với một tín hiệu, chúng ta có thể quan sát dưới 2 dạng: Miền không gian
và miền tần số.
Thông qua phép biến đổi Fourier và Fourier ngược, chúng ta thấy rằng mọi tín
hiệu có thể biễu diễn được bằng cả 2 dạng trên. Tuy nhiên, đối với một ứng dụng
cụ thể sẽ có những điểm thuận lợi và khó khăn riêng. Do đó, sẽ có sự chọn lựa tùy
thuộc vào việc chúng ta sẽ làm những gì trên dữ liệu ấy.
n
Ví dụ: Xét tín hiệu x(t) = 5 cos(π.t), 0 ≤ t ≤ 1, lấy mẫu xn = x(tn ), tn =
10

Tín hiệu được biểu diễn trên miền tần số:

20
4.1.3 Các tính chất
1. Thuần nhất

• Với ∀ ∈ R, ta có :
F (a.x) = aF (x) (4.1)
• Với ∀a ∈ R, ta có :
F −1 (a.z ) = aF −1 (z ) (4.2)

2. Tuyến tính

• Với ∀a, b ∈ R, ta có :

F (a.x + b.y ) = aF (x) + b.F (y ) (4.3)

• Với ∀a, b ∈ R, ta có :

F −1 (a.z1 + b.z2 ) = aF −1 (z1 ) + b.F −1 (z2 ) (4.4)

4.1.4 Fast Fourier Transform


1. Thuật toán Biến đổi Fourier
Tính trực tiếp

» Input: M,mảng g gồm M phần tử


»Output: Mảng hệ số G;

21
Thuật toán :
» Khai báo mảng G gồm M phần tử
for m = 0 → M − 1
G[m]:=0;
for n = 0 → M − 1
1 −2πi.n.m
G[m] := G[m] + .g [i].e M
M
end m;
end n;
»return G;

Độ phức tạp
• Giả sử mỗi bước thực hiện tốn chi phí cố định a thì độ phức tạp
của thật toán là a.M 2

Tiếp theo, chúng ta sẽ tìm hiểu một số phương pháp nhằm giảm chi phí tính
toán hệ số của phép biến đổi Fourier.
Tối ưu để giảm thời gian thực hiện là một vấn đề mà các lập trình viên quan
tâm. Đối với bài toán này cũng vậy, vì đối với việc tính toán các hệ số cho
DFT cho "mẫu" thì chúng ta cũng không tối ưu làm gì nhưng đối với bài
toán nhận dạng chúng ta đòi hỏi thực hiện trên hàng ngàn mẫu dữ liệu. Do
đó, nhu cầu trên trở nên cần thiết.
Trong ứng dụng mà chúng tôi cần đến thì dùng đến M với cỡ mẫu khá lớn
(65536 = 216 ) và áp dụng nhiều lần. Do đó, việc tối ưu chi phí.

2. Thuật toán Fast Fourier Transform


1 PN mn
F (f )[m] = n=0 f (n)WN , trong đó:
N
N
• N = 2n , n ∈ N, M :=
2
−2π.i
• WN := e N

Ta có :
" M −1 M −1
#
1 1 X 1 X (2n+1)m
F (f )[m] = f (2n)W22M
mn
+ f (2n + 1)WM
2 M M
n=0 n=0

Mặt khác :

• W22M
mn = W mn
M

22
1 PM −1 mn
• Đặt F (fe )(n) = n=0 f (2n)WM
M
1 PM −1 nm
F (fo )(n) = n=0 f (2n + 1)WM
M
Khi đó , ta có :
1
F (x)[m] = [F (fe )(m) + F (fo )(n)W2mM ] (4.5)
2

Ta thấy F (fe )(m), F (fo )(n)W2mM là hai phép biến đổi Fourier với kích thước
N
mẫu là . Khi đó, chúng ta thu được thuật toán có độ phức tạp O(M log2 M )
2
Thuật toán FFT1 (cải tiến 1) sử dụng công thức (4.5)
»function y[k=0...M-1]=splitf f tM (xn ) :
u[k + 2 = 0... M2 -1]=splitf f t M (x2n2 ) :
2
z[k4 = 0... M4 − 1]=splitf f t M (x4n4 + 1) :
4
0 M
z [k4 =0... − 1]=splitf f t M (4xn4 −1 ) :
4 4
M
for k = 0 to − 1 do
4
k z + W −k z 0 )
y [k ] = u k + ( W M k M k
y [k + M ] = u − ( W k z + W −k z 0 )
2 k N k M k
y [k + M ] = u M − i.(W
k z − W −k z 0 )
4 k+ 4 M k M k
3M k −k 0
y [k + 4 ] = uk+ M + i.(WM zk − WM zk )
4
»return y;
Ngoài ra, chúng ta có thể tìm thấy các thuật toán FFT với tốc độ được cải
tiến đáng kể khác [4] khi kích thước N là lũy thừa của 2.

• FFT được đề xuất đầu tiên 1 bởi Cooley và Tukey (1965) .


• Khi kích thước M không là lũy thừa của 2 thì để cải thiện tốc độ, chúng
ta sẽ thực thi trên tập những điểm tương ứng là ước nguyên tố của M .
Với ý tưởng này cũng đem đến hiệu quả trong việc cải tiến tốc độ cho
thuật toán, theo thuật toán Winograd được đề cập trong [5] . Tuy nhiên,
chúng ta phải phân tích N thành thừa số nguyên tố, đây là một bài toán
đơn giản về hình thức nhưng lại có độ phức tạp cao (Thuật
√ toán phân
n log2 log2 log2 n
tích có tốc độ nhanh nhất hiện nay có độ phức tạp O(e )).

Để loại bỏ chi phí tính toán, do kích thước M ta hoàn toàn có thể quản
lý, vì vậy ta hoàn toàn có thể lấy mẫu theo kiểu chia đôi nhị phân để
có kích thước mẫu luôn đảm bảo là lũy thừa của 2.
1
Trước đó,năm 1805, Gauss đã từng mô tả ý tưởng này

23
Một số đánh giá về DFT

Thuận lợi DFT sẽ đem đến thuận lợi khi ta mong muốn khảo sát tín hiệu về mặt
tần số.

Khó khăn Khi nhìn tín hiệu trong lĩnh vực tần số thì "mất" đi thông tin cục bộ
về mặt thời gian.

Việc nắm bắt thông tin cục bộ về mặt thời gian cũng đem đến những điều có ích
cho quá trình phân loại nhạc.
Chính điều đó, đã đặt ra một nhu cầu đó là khắc phục nhược điểm trên có hai
cách để giải quyết vấn đề này: dùng STFT(Short Time Fourier Transform) thay
cho DFT và biến đổi Wavelet.

4.2 Biến đổi STFT


Nội dung của phương pháp này đã được thể qua tên gọi STFT, có thể tạm dịch
là biến đổi Fourier trong khoảng thời gian ngắn.
Ý tưởng: Đối với tính hiệu thời gian ban đầu x(t), t ∈ [a, b], ta tiến hành chia
khoảng thời gian chia nhỏ đoạn [a, b] thành các đoạn nhỏ. Ta tạm gọi tín hiệu được
hạn chế trên mỗi đoạn là một cửa sổ. Tiếp theo ta thực hiện biến đổi Fourier, tuy
nhiên với mong muốn tăng cường tốc độ tính toán nên ta sử dụng FFT, có nghĩa
là việc chọn số điểm mẫu phải tương thích với FFT.
Chính hướng tiếp cận trên đã mang đến thông tin cục bộ trên lĩnh vực thời
gian mà chúng ta mong muốn.
Tuy nhiên, chúng ta cũng đối mặt với những thách thức do STFT mang lại

• Phân tích các tần số với các cửa sổ có độ rộng như nhau.

• Khó khăn trong việc xác định độ rộng của cửa sổ sao cho phù hợp. Vì nếu
cửa sổ hẹp, hiệu quả trong việc phân tích thời gian nhưng kém hiệu quả trong
việc phân tích tần số. Ngược lại, nếu cửa sổ rộng, kém hiệu quả trong việc
phân tích thời gian (vi phạm điều kiện tín hiệu phải dừng) nhưng hiệu quả
trong việc phân tích tần số.
Điều này được thể hiện thông qua nguyên lý bất định.
1 qπ
Cho x(t) triệt tiêu nhanh hơn √ thì ∆t ∆ω ≥ , trong đó :∆t , ∆ω lần lượt
t 2
là độ rộng thời gian, tần số của tín hiệu x(t)
Nguyên lý này có ý nghĩa quan trọng trong việc đưa ra độ nét tối đa cho cả

24
4.3 Những hạn chế của FT và STFT
4.3.1 Hạn chế của FT
• FT chỉ chứa các thông tin về tần số, không chứa các thông tin về thời gian.

• Áp dụng phù hợp đối với các tín hiệu dừng (stationary signals) tức là tín
hiệu không phụ thuộc vào thời gian, ví dụ như tín hiệu mạng tính tuần hoàn.

• Không phù hợp với tín hiệu không dừng (nonstationary signals) tức là tín
hiệu phụ thuộc vào thời gian, thường xuyên thay đổi. FT biểu diễn các tần
số xảy ra ở mọi thời điểm thay vì ở các thời điểm xác định.

4.3.2 Hạn chế của STFT


Hạn chế đối với phương pháp STFT đó là:

• Phân tích các tần số với các cửa sổ có độ rộng như sau.

• Khó khăn trong việc xác định độ rộng của cửa sổ sao cho phù hợp . Vì nếu
cửa sổ hẹp, hiệu quả trong việc phân tích thời gian nhưng kém hiệu quả trong
việc phân tích thời gian (vi phạm điều kiện tín hiệu phải dừng) nhưng hiệu
quả trong việc phân tích tần số.

25
Chương 5

Phân lớp K - Nearest


Neighbor

5.1 Khai khoáng dữ liệu


Ngày nay, với sự phát triển của xã hội, chúng ta phải đối diện với một tập dữ
liệu rất lớn với hàng trăm ngàn mẫu tin, thậm chí hàng triệu mẫu tin như bộ sưu
tập nhạc, bộ sưu tập các trang web, virus máy tính. . . Với tập dữ liệu lớn như vậy,
người ta mong muốn trích chọn các thông tin hữu ích, các quy luật tiềm ẩn trong
tập dữ liệu nhằm đưa ra những quyết định tối ưu đáp ứng một sự kiện xảy ra
trong thực tế hoặc dự báo tình huống tương lai. Đó chính là nhiệm vụ của khai
khoáng dữ liệu (Data mining).
Data mining, nói chung, là một bài toán có độ phức tạp lớn bởi vì ta phải làm
việc với một khối tập dữ liệu rất lớn. Chúng ta có thể hình dung việc khám phá
tri thức giống như việc khai thác một mỏ khoáng sản, trong mỏ có nhiều kim loại
trộn lẫn như vàng, đồng, chì, . . . Nhiệm vụ của khai thác một mỏ khoáng sản là
phải loại bỏ những tạp chất để tách riêng các kim loại trong mỏ, đặc biệt là các
kim loại quý. Khám phá tri thức trong cơ sở dữ liệu cũng giống như tách biệt được
vàng trong một mỏ khoáng sản.

5.2 Phân lớp là gì?


Trước hết, chúng ta định nghĩa thế nào là phân lớp. Giả sử chúng ta có hai
loại không gian: không gian đầu vào X và không gian đầu ra (không gian nhãn)
Y . Ví dụ, ta phân loại các loại đối tượng đã biết cho trước, hữu hạn bao gồm “xe
hơi”, “ghế”, “bò”, X là không gian bao gồm các đối tượng , Y là không gian các
loại “xe hơi”, “ghế”, “bò”. Trong quá trình học, thuật toán “học” sẽ cho tập huấn
luyện mẫu (X1 , Y1 ), . . . (Xn , YN ), và gán nhãn cho từng đối tượng với các nhãn là

26
“xe hơi”, “ghế”, “bò”. Như vậy, nếu nói theo nghĩa toán học là ta đi tìm một ánh xạ
f : X → Y và làm cho “lỗi ít nhất có thể được”, có nghĩa là với không gian X , ta
mong muốn cho số các đối tượng được gán nhãn sai là thấp nhất có thể. Ánh xạ
f : X → Y được gọi là hàm phân loại.
Bây giờ, chúng ta sẽ phân biệt hai loại vấn đề học: học giám sát và học không
giám sát. Phân lớp là ví dụ về học có giám sát, mẫu huấn luyện bao gồm có Xi
được gán nhãn là Yi . Mục đích của phân lớp là tìm hàm quan hệ giữa không gian
đầu vào X và không gian nhãn Y . Đây được gọi là học có giám sát vì trong mẫu
huấn luyện, người học có thể đánh giá đáp án đúng hay không, và người học được
giám sát. Trái lại với học có giám sát, học không giám sát có không gian đầu vào
chỉ bao gồm Xi , trong khi đó thông tin về các nhãn không được biết trước. Lúc
này, quá trình học là khám phá ra “cấu trúc” ẩn dưới dữ liệu đầu vào. Một ví dụ
của học có giám sát là phân cụm. Cho trước mẫu dữ liệu đầu vào X1 , . . . , Xn , người
học cần phải thiết lập các nhóm giữa các mẫu. Ví dụ, một người bán hàng Online
muốn phân cụm khách hàng của anh ta dựa trên lịch sử mua hàng. Anh ra chọn
tất cả khách hàng có tiềm năng và sau đó khám phá nhóm khách hàng này về sự
tương đồng về sở thích. Trái ngược với phân lớp, phân cụm không hề biết trước,
nó sẽ đưa khách hàng thuộc về nhóm nào - đó là nhiệm vụ của thuật toán phân cụm.

5.3 Phân lớp k - Nearest Neighbor


5.3.1 Phân lớp 1 - Nearest Neighbor
Giả sử ta đã có Dn = {x1 , x2 , . . . , xn } là một tập n mẫu đầu tiên (dữ liệu huấn
luyện) đã được gán nhãn. Cho một điểm x chưa được phân loại, nhiệm vụ ở đây là
xác định xem x thuộc lớp nào, tức là ta xác định nhãn của x. Khi đó, nguyên tắc 1
- Nearest Neighbor đối với việc phân loại là gán cho nó nhãn thể loại của mẫu gần
với nó nhất trong tập Dn , nghĩa là ta xác định mẫu x0 ∈ Dn , với x0 là mẫu huấn
luyện gần với x nhất, ta sẽ gán nhãn x là nhãn của x0 (xem hình 5.3.1).
Ta gọi f là ánh xạ của mẫu x vào không gian nhãn. Lúc này, ta sẽ viết công
thức xác định nhãn của một mẫu x mới như sau.
d(x, x0 ) = min d(xi , x) xi ∈ Dn
f (x) = f (x0 )

5.3.2 Phân lớp k - Nearest Neighbor


Phân lớp k - Nearest Neighbor là kiểu mở rộng của phân lớp 1 - Nearest
Neighbor dựa trên khoảng cách. Nó lưu trữ tất cả các mẫu đã huấn luyện trước.

27
Hình 5.1: Phương pháp phân loại 1 - Nearest Neighbor

Sau đó, nó xác định khoảng cách giữa mẫu cần kiểm tra với tất cả các mẫu đã
được huấn luyện và chọn ra k mẫu huấn luyện gần với mẫu kiểm tra nhất, gọi là
phân lớp k - Nearest Neighbor. Kết quả của việc phân loại là nhãn của mẫu huấn
cần xác định nhãn sẽ là nhãn của loại nào xuất hiện nhiều nhất trong k mẫu gần
mẫu cần xác định nhãn(xem hình 5.3.2).
Thuật toán phân lớp như sau:
• Input: mẫu x cần xác định nhãn.

• Output: Nhãn của x.

1. Cho mẫu x cần phân lớp.

2. Gọi x1 , x2 , . . . , xk là k mẫu trong kho mẫu huấn luyện gần x nhất.

3. Xác định nhãn f (x) của mẫu x từ nhãn f (x1 ), f (x2 ), . . . , f (xk ).

Việc học trong thuật toán phân lớp k-NN chỉ đơn giản là lưu trữ dữ liệu huấn
luyện. Khi cần phân loại đối tượng mới, một tập các đối tượng “gần giống” hay
“tương tự” sẽ được chọn ra từ kho dữ liệu có sẵn và được sử dụng để phân loại đối
tượng mới.
Để sử dụng thuật toán KNN cho việc phân loại đối tượng mới, ta cần xác định
các yếu tố sau:
• Cần phải xác định tham số k . Với giá trị k nào thì việc phân loại sẽ đạt được
hiệu quả cao nhất.

28
Hình 5.2: Phương pháp phân loại k - Nearest Neighbor

• Dùng loại khoảng cách nào? Dùng thuộc tính nào để có được kết quả tốt
nhất, ta sử dụng hết tất cả các thuộc tính hay chỉ những thuộc tính chính.

5.3.3 Ưu điểm, khuyết điểm


Ưu điểm
• Dễ phân tích.

• Thực hiện đơn giản.

• Dễ thực hiện việc so sánh

• Hiệu quả khi tập huấn luyện lớn

Khuyết điểm
• Ta cần tính toán khoảng cách giữa tất cả các điểm với điểm truy vấn, do đó
việc tính toán nhiều. Chính vì vậy, thuật toán phân lớp KNN có độ phức tạp
còn cao O (kN ).

• Chi phí cho việc phân loại đối tượng mới có thể tốn kém do gần như toàn bộ
chi phí tính toán diễn ra lúc phân loại đối tượng mới chứ không diễn ra lúc
huấn luyện dữ liệu.

29
• Nếu đặc trưng để phân loại đối tượng chỉ phụ thuộc vào một số ít trong số
nhiều thuộc tính sẵn có của đối tượng thì những đối tượng thật sự “tương
tự” có thể cách nhau rất xa.

30
Phần II

Bài toán phân loại nhạc theo


thể loại

31
Chương 6

Giới thiệu bài toán

6.1 Nhu cầu thực tế


Thể loại nhạc được sử dụng để phân biệt các loại nhạc khác nhau. Việc gia
tăng số lượng các file nhạc, đặc biệt là World Wide Web, và nhu cầu là cần một
hệ thống phân loại nhạc tự động. Loại ứng dụng này được đính kèm vào các phần
mềm quản lý nhạc. Một câu hỏi đặt ra, chúng ta phân loại nhạc dựa vào tập các
đặc trưng về âm nhạc và đưa ra thuật toán rút trích đặc trưng từ tín hiệu audio
phục vụ cho việc phân loại nhạc. Một trong những cong cụ chính để phân tích tín
hiệu audio đó là phép biến đổi Fourier. Tuy nhiên, phép biến đổi Fourier gặp phải
một số hạn chế trong việc phân tích tín hiệu audio. Vì vậy, người ta sử dụng một
công cụ khác dựa trên phép biến đổi Fourier để xử lý tín hiệu audio hiệu quả hơn
đó phép biến đổi Wavelet. Phép biến đổi Wavelet phù hợp trong việc xử lý tín hiệu
đặc biệt là các tín hiệu không dừng (thường xuyên thay đổi).

6.2 Giới thiệu bài toán phân loại nhạc theo thể
loại
Bài toán phân loại xuất hiện rất lâu đời, ví dụ việc sàn cát xây nhà, sàn gạo nấu
cơm. . . cũng là việc phân loại. Nhu cầu ngày càng cao, âm nhạc trở thành phương
tiện để nâng cao giá trị tinh thần cho đời sống. Song song, đó là việc mong muốn
quản lý các bài hát với dữ liệu ngày càng nhiều, do đó, chúng ta cần xây dựng một
cơ sở dữ liệu. Có nhiều cách để phân loại nhạc, ví dụ như phân loại nhạc theo tác
giả sáng tác, theo ca sĩ, và theo thể loại . . . Trong khuôn khổ bài báo cáo của nhóm
chúng tôi, chúng tôi xin trình bày hướng phân loại nhạc theo thể loại.
Từ ngày xưa, muốn biết một bài nhạc thuộc thể loại nào, chúng ta thường dựa
vào kinh nghiệm người nghe. Tuy nhiên, để biết một bài nhạc thuộc thể loại nào,

32
chúng ta thường tìm tên bài hát, tác giả, ca sĩ hát bài đó để xác định xem bài hát
đó thuộc thể loại nào. Ví dụ như khi ta nghe một bài hát của một tác giả chuyên
sáng tác nhạc pop, thế là ta sẽ quy bài hát đó thuộc thể loại nhạc pop. Hoặc là,
khi ta nghe một bài hát do một ca sĩ chuyên hát nhạc rock, thế là ta quy bài hát
là nhạc rock. Ngoài ra, việc phân loại nhạc của con người có thể dựa vào các loại
nhạc cụ được sử dụng trong bài nhạc. Tuy nhiên, với sự phát triển của công nghệ,
số lượng bài hát càng nhiều, chúng ta không thể nào ngồi nghe từng bài rồi để
kết luận bài nhạc thuộc thể loại nào. Chính vì vậy, nhóm chúng tôi xây dựng một
chương trình phân loại nhạc để đáp ứng nhu cầu đó.
Các hệ thống phân loại nhạc theo thể loại thường mô phỏng những kỹ năng
của con người để chúng ta có thể nhận biết được thể loại của bản nhạc. Tuy nhiên,
chúng không thể phân loại nhạc chủ yếu dựa vào kinh nghiệm người nghe nhạc mà
cần thiết phải xác định một số đặc trưng chung, phục vụ cho việc nhận dạng theo
thể loại.
Một thể loại nhạc là một tập các đặc trưng chung mà người nghe có thể phân
biệt nó với những loại nhạc khác từ những bản nhạc khác nhau. Những đặc trưng
có thể được kể như là: độ cao thấp nốt nhạc (pitch), âm sắc (timbre), nhịp (rhythm)
của bản nhạc hoặc những đặc trưng liên quan đến bố cục nhạc (music texture).
Một trong những thách thức trong phân loại thể loại nhạc tự động là tìm ra các
yếu tố đó.
Trong bài báo cáo của nhóm chúng tôi, chúng tôi chỉ sử dụng bố cục về âm sắc
để phân loại thể loại nhạc. Các tín hiệu audio được phân loại một cách tự động
thuộc một trong các thể loại sau: Classical, Rock, Jazz, Pop, blues, country, disco,
hiphop, metal, reggae. Nhóm chúng tôi thử nghiệm với 10 thể loại nhạc này, và 4
thể loại Classical, Rock, Jazz, Pop.

Hình 6.1: Sơ đồ xác định thể loại nhạc từ tín hiệu audio.

33
6.3 Mô hình tổng quát hệ thống phân nhạc theo
thể loại

Hình 6.2: Mô hình phân loại nhạc tổng quát.

Mô tả hệ thống:
• Đầu vào là một tín hiệu nhạc đã được số hóa.

• Rút trích đặc trưng là quá trình biểu diễn tín hiệu nhạc dưới dạng vector
đặc trưng có số chiều nhỏ hơn so với thông tin gốc, rút trích các đặc điểm
riêng cần thiết để phân biệt các thể loại nhạc khác nhau. Trong bài báo cáo
của nhóm chúng tôi, chúng tôi sử dụng đặc trưng về bố cục về âm sắc cho
việc phân loại thể loại nhạc. Công cụ để rút trích đặc trưng bố cục về âm
sắc dựa trên phép biến đổi Fourier và Short time Fourier. Chi tiết việc xác
định đặc trưng bố cục về âm sắc được trình bày ở mục 7.2
• Phân lớp là từ các đặc trưng được rút trích, tiến hành phân loại nhạc
bằng các phương pháp nhận dạng: K-nearest neighbor, SVM, Neuron Net-
work. . . Việc phân loại thường gọi là học có giám sát (supervised learning).
Học giám sát bao gồm việc sử dụng các vector đặc trưng đã được gán nhãn
để huấn luyện cho các bộ phân loại. Từ đó, bộ phân loại sẽ gán nhãn loại
cho các các vector đặc trưng mới một cách tự động. Trong bài báo cáo của
nhóm chúng tôi, chúng tôi sử dụng phương pháp phân loại K láng giềng gần
nhất (KNN, K Nearest Neighbour) vì phương pháp này có một số ưu điểm
sau:
– Dễ phân tích.
– Thực hiện đơn giản.
– Dễ thực hiện việc so sánh
– Hiệu quả khi tập huấn luyện lớn
– Bổ sung mẫu huấn luyện vào bộ huấn luyện một cách dễ dàng.
• Đầu ra là những thông tin về tín hiệu đầu vào và cho biết tín hiệu đầu vào
thuộc về thể loại nhạc nào.
Chi tiết phương pháp phân loại KNN đã được trình bày ở chương 5

34
Chương 7

Thuật giải

7.1 Rút trích đặc trưng


Để xác định thể loại của một bài nhạc, chúng ta cần xác định đặc trưng của
chúng sao cho máy tính có thể phân biệt sự khác nhau giữa các loại nhạc. Chương
này sẽ giới thiệu một số phương pháp chính trong việc rút trích đặc trưng các tập
tin nhạc và đề cập đặc trưng thường sử dụng trong phân tích nhạc.
Rút trích đặc trưng là quá trình xử lý tính toán để đưa ra các đặc trưng cần
thiết cho việc phân loại nhạc. Ngoài ra, việc chọn lọc đặc trưng được dùng để tạo
ra một tập con đặc trưng từ dữ liệu đầu vào sẽ làm giảm số chiều và do đó sẽ làm
tăng hiệu quả về mặt thời gian nhận dạng.
Trong bài báo “Musical Genre Classification of Audio Signals” của George

Hình 7.1: Sơ đồ một vector đặc trưng từ một tín hiệu nhạc.

Tzanetakis và Pery Cook, nhóm tác giả đã sử dụng ba tập đặc trưng sau:
• Các đặc trưng liên quan đến bố cục âm sắc (Timbral Texture Features).

• Các đặc trưng liên quan đến nhịp nhạc (Rhythmic Content Features).

• Các đặc trưng liên quan đến độ cao thấp nốt nhạc (Pitch Content Features).
Tuy nhiên, do hạn chế về trình độ và thời gian, trong bài báo cáo của nhóm chúng
tôi chỉ sử dụng các đặc trưng về bố cục âm sắc cho việc phân loại nhạc.

35
7.2 Các đặc trưng liên quan đến bố cục âm sắc
(Timbral Texture Features)
Quá trình xác định các đặc trưng về bố cục âm sắc được mô tả bởi sơ đồ sau:
Các đặc trưng liên quan đến bố cục âm sắc được xác định dựa trên STFT và

Hình 7.2: Sơ đồ xác định các đặc trưng liên quan bố cục âm sắc.

được tính trên mỗi cửa sổ. Sau đây là các đặc trưng được dùng để biểu diễn bố
cục âm sắc.

Spectral Centroid
Spectral Centroid được định nghĩa là đo lường phân bố năng lượng của phổ
biên độ khi thực hiện STFT tín hiệu.
PN
n=1 Mt [n] ∗ n
Ct = P N
(7.1)
n=1 M t [ n ]

trong đó Mt [n] là biên độ của biến đổi Fourier cửa sổ t ứng với tần số n. Centroid
là một độ đo về trạng thái của phổ. Các giá trị Centroid cao hơn tương ứng với
phổ có độ sáng chói hơn và chứa nhiều tần số cao.

Spectral Rolloff
Spectral Rolloff được định nghĩa như một tần số Rt sao cho có khoảng 85%
phân bố năng lượng được tập trung
Rt
X N
X
Mt [n] = 0.85 ∗ Mt [n]. (7.2)
n=1 n=1

36
Rolloff cũng là một độ đo về trạng thái của phổ. Nó cho biết năng lượng của tín
hiệu tập trung ở các tần số thấp.

Spectral Flux
Spectral Flux được định nghĩa là bình phương hiệu giữa các biên độ chuẩn
của sự phân bố phổ
N
2
X
Ft = (Nt [n] − Nt−1 [n]) (7.3)
n=1

trong đó Nt [n] và Nt−1 [n] biên độ chuẩn khi thực hiện biến đổi Fourier ở cửa sổ t
và t − 1 trươc đó.
Mt [n]
Nt [n] = q (7.4)
PN 2
i=1 (Mt [i] )

Spectral Rolloff là độ đo về sự thay đổi phổ biên độ cục bộ.

Time Domain Zero Crossings


Time Domain Zero Crossings là độ đo độ ồn của tín hiệu. Nó xuất hiện khi
các mẫu kề nhau trong tín hiệu số khác dấu.
N
1 X
Zt = sign (x[n]) − sign (x[n − 1]) (7.5)
2
n=1

Trong đó: 
1 x[n] ≥ 0
sign (x[n]) =
0 x[ n ] < 0
x[n] là tín hiệu trong toàn miền thời gian ở cửa sổ t.

Đặc trưng Low Energy


Low Energy là độ đo tỷ lệ phần trăm cửa sổ phân tích năng lượng RMS thấp
hơn năng lượng RMS trung bình của các cửa sổ phân tích. Root-Mean-Square
(RMS) được xác định bởi công thức:
s
PN 2

i=1 M t [ i]
RM St = (7.6)
N

RMS là độ đo độ to của âm thanh trong một cửa sổ.

37
Mel-Frequency Cepstral Coefficients (MFCC)
Các hệ số MFC (Mel-Frequency Cepstral Coefficients) được xác định dựa trên
STFT. Đầu tiên, tín hiệu nhạc được thực hiện bởi FFT sau đó qua các bộ lọc băng
tần (Mel-Scale Filters), kết quả được chuyển qua log cơ số 10, và cuối cùng là qua
phép biến đổi cosin rời rạc để đưa ra các đặc trưng về âm nhạc (tương tự như cơ
quan thính giác của con người).
Tín hiệu đầu tiên được chia nhỏ thành các cửa sổ tín hiệu thành phần, sau đó
áp dụng các bước sau để tính các hệ số MFC.
• Bước 1: Thực hiện FFT trên mỗi tín hiệu thành phần.

• Bước 2: Kết quả được xác định bởi bước 1 sẽ được đưa qua một loạt băng
tần, các bộ lọc này được xây dựng bằng cách dùng 13 bộ lọc tuyến tính
(khoảng cách giữa các tần số trung tâm là 133.33 KHz) và theo sau bởi 27
bộ lọc phi tuyến (mỗi tần số trung tâm cách nhau bởi một hệ số nhân của
1.0711703).

• Bước 3: Kết quả ở bước 2 được biến đổi sang log cơ số 10.

• Bước 4: Thực hiện biến đổi cosin rời rạc kết quả ở bước 3. Kết quả ta được
1 vector đặc trưng gồm 13 hệ số.
13 hệ số này được dùng nhận dạng giọng nói. Tuy nhiên, ta chỉ chọn 5 hệ số MFC
đầu tiên cũng đủ tốt cho việc phân loại nhạc.

Vector đặc trưng bố cục âm sắc


Vector đặc trưng bố cục âm sắc bao gồm các đặc trưng: (Trung bình và phương
sai của Spectral Centroid, Spectral Rolloff, Spectral Flux, ZeroCrossing
(8), LowEnergy(1), và trung bình và phương sai của 5 MFCC đầu tiên (10)).
Ta có kết quả trong 1 vector đặc trưng 19 chiều.

7.3 Cải tiến


Việc rút trích đặc trưng được trình bày ở phần trên sẽ đưa ra các hệ số thể
hiện đặc trưng về bố cục âm sắc. Tuy nhiên, chúng ta gặp phải một vấn đề như thế
này. Đó là các hệ số trên chưa đưa về một kích thước chuẩn. Chính vì vậy, chúng
tôi đề xuất một cách để đưa các hệ số về một kích thước chuẩn.
Chúng tôi chuẩn hóa các hệ số bằng phương pháp như sau. Chúng tôi chỉ xét
đến một hệ số trong 19 đặc trưng, các hệ số còn lại làm tương tự. Chúng tôi cố
gắng miền giá giá trị của đặc trưng về dạng tương đồng (Ở đây cụ thể là từ [0, 1000].
Giả sử ta có một dãy hệ số đầu tiên trong 19 đặc trưng, là một chuỗi x1 , x2 , . . . , xn ,

38
việc chuẩn hóa sẽ được tính theo như sau :
Gọi α là hệ số chuẩn hóa cho đặc trưng với tập mẫu huấn luyện tương ứng
1000
α=
maxk=1, ..., n xk
xi 7→ αxi
với i = 1, . . . , n, n là số vector đặc trưng của mẫu huấn luyện.
Với hi vọng là độ đa dạng của tập dùng để học là đủ để chứa giá trị lớn nhất có
thể của một đặc trưng hoặc nếu có lớn hơn thì cũng không quá lớn. Vì vậy chúng
ta có thể áp dụng công thức trên cho các đặc trưng đưa vào để phân loại sau này.
Với mỗi lần thêm cơ sở dữ liệu để đọc, thì chúng ta tiến hành thực hiện lại hàm
tìm α.
Vector đặc trưng của một tập tin nhạc cần phân loại, chúng ta sẽ nhân giá trị
của từng đặc trưng với hệ số chuẩn hóa (α) tương ứng.

7.4 Khoảng cách giữa hai mẫu


Tất cả các mẫu được xem như là các điểm biểu diễn trong không gian Rn .
Khoảng cách mẫu láng giềng so với mẫu cần kiểm tra là d(k, x) được xác định dựa
trên khoảng cách Ơ-clit (k là mẫu láng giềng, x là mẫu cần kiểm tra. Xác suất của
một mẫu kiểm tra x thuộc thể loại ci được xác định như sau:
P
k∈U,kc=cj wk
p(ci |x) = P
k∈U wk

Trong đó:
• U là một tập hợp gồm k mẫu láng giềng gần x nhất, k là mẫu láng giềng gần
x nhất (k ∈ U ).

• kc là thể loại của k và d(k, x) là khoảng cách Ơ-lit từ k đến x.

• ci lầ thể loại thứ i, i = 1, n (hệ thống có thể có n = 4 thể loại hoặc n = 10


thể loại).
Mẫu cần kiểm tra x được gán nhãn thể loại ci khi p(ci |x) là lớn nhất.
Xác định khoảng cách Ơ-clit
Có nhiều cách xác định tính đồng dạng của các vector đặc trưng. Thuậ toán
KNN thường dựa trên việc xác định khoảng cách giữa các vector đặc trưng trong
không gian Rn . Khoảng cách sử dụng là khoảng cách Minkowski:
v
u d
uX p
p
dp (xi , xj ) = t (|xi,m − xj,m |) = kxi − xj kp
m=1

39
Thông thường người ta dùng khoảng cách Ơ-clit để xác định khoảng cách giữa
các đối tượng trong không gian trong không gian Rn . Khoảng cách Ơ-clit là một
trường hợp đặc biệt của khoảng cách Minkowski với p = 2.
v
u d
uX 2
p
d 2 (xi , x j ) = t (|xi,m − xj,m |) = kxi − xj k2
m=1

Trong đó, xi và xj là các mẫu đang xét (i 6= j ), d là số chiều của vector đặc trưng.
Đối với hệ thống phân loại nhạc theo thể loại, chúng ta sẽ sử dụng vector đặc trưng
19 chiều, như vậy công thức trên d = 30.

7.5 Huấn luyện và nhận dạng


Trong giai đoạn huấn luyện và nhận dạng, chúng ta sẽ rút trích đặc trưng từng
tập tin nhạc và lưu trữ lại các đặc trưng đó. Việc lưu trữ này rất có ích. Vì trong
quá trình nhận dạng, nếu như ta không thực hiện bước trên, ta sẽ phải tốn một
chi phí tính toán cho việc phải rút trích đặc trưng các tập tin nhạc mẫu. Nếu như
ta rút trích đặc trưng và lưu xuống đĩa thì trong giai đoạn nhận dạng, ta sẽ giảm
được một lượng chi phí tính toán lớn.
Trong giai đoạn nhận dạng, chúng tôi sử dụng K-nearest neighbor để nhận dạng
xem một tập tin nhạc đầu vào thuộc thể loại nhạc nào. Phương pháp K-nearest
neighbor chúng tôi đã trình bày ở chương 5. Chúng tôi sử dụng k = 1, . . . , , 10 cho
việc phân loại tập tin nhạc và khoảng cách Ơ-clit để xác định khoảng cách giữa
hai mẫu.

40
Chương 8

Thực nghiệm, kết quả và


nhận xét
Trong thực nghiệm khai triển, nhóm chúng tôi đã phát triển trên ngôn ngữ
C++, do thời gian hạn hẹp và kiến thức có hạn nên dù đã có nhiều cố gắng nhưng
chúng tôi chỉ hoàn thành 19/30 đặc trưng so với luận văn ban đầu.

8.1 Kho mẫu thực nghiệm


Tên kho mẫu : GTZAN Genre Collection
Số thể loại nhạc : 10

• Blues

• Classical

• Country

• Disco

• Hiphop

• Jazz

• Metal

• Pop

• Regguae

• Rock

41
Số mẫu dùng để học : 900
Số mẫu dùng để phân loại : 100

8.2 prjMusicalClassification
Ngôn ngữ thực hiện : C++
Số đặc trưng được sử dụng : 19

Tên đặc trưng Số đặc trưng


Spectral Centroid 2
Rolloff 2
Flux 2
ZeroCrossing 2
LowEnergy 2
MFCC 10

8.2.1 Thử nghiệm với 10 thể loại


Kết quả 1 : Tỷ lệ chính xác không dùng chuẩn hóa độ đo (Tính theo %).
Kết quả 2 : Tỷ lệ chính xác khi dùng chuẩn hóa độ đo (Tính theo %).

k Kết quả 1 Kết quả 2


1 22 46
2 22 46
3 26 49
4 24 51
5 24 50
6 25 51
7 22 49
8 23 50
9 25 48
10 25 47

8.2.2 Thử nghiệm với 4 thể loại như trong luận văn ban
đầu
Đây là 4 thể loại trong luận văn mà nhóm dựa vào đó để tiến hành nghiên cứu.
Các thể loại nhạc :

42
Hình 8.1: Biểu đồ tương quan độ chính xác phân loại 10 thể loại

• Classical

• Jazz

• Pop

• Rock
k Kết quả 1 Kết quả 2
1 32.5 75
2 32.5 75
3 37.5 77.5
4 40 77.5
5 37.5 77.5
6 37.5 77.5
7 35 75
8 35 72.5
9 35 77.5
10 35 72.5

8.2.3 Thử nghiệm với 4 thể loại tốt nhất


Đây là 4 thể loại có kết quả tốt nhất trong quá trình thực nghiệm.
Các thể loại nhạc :

43
Hình 8.2: Biểu đồ tương quan độ chính xác phân loại 4 thể loại

• Classical

• Country

• Pop

• Rock

k Kết quả 1 Kết quả 2


1 45 85
2 45 85
3 50 90
4 50 90
5 60 90
6 57.5 90
7 55 87.5
8 52.5 87.5
9 52.5 87.5
10 55 90

44
Hình 8.3: Biểu đồ tương quan độ chính xác phân loại 4 thể loại

8.3 Hình ảnh chương trình thực nghiệm

Hình 8.4: Trích xuất giá trị các đặc trưng

45
Hình 8.5: Phân loại với 4 thể loại

46
Hình 8.6: Phân loại với 10 thể loại (1)

47
Hình 8.7: Phân loại với 10 thể loại (2)

48
8.4 Kết luận
Việc phân loại nhạc theo thể loại chúng tôi dựa vào bài báo “Music Genre
Classification of Audio Signal” của George Tzanetakis và Perry Cook, chúng tôi
chỉ sử dụng đặc trưng bố cục về âm sắc (19 đặc trưng) cho việc phân loại nhạc.
Tuy nhiên, chúng tôi có cải tiến về 19 đặc trưng đầu, đó là đưa mỗi hệ số về kích
thước chuẩn, chúng tôi gọi đó là bước cân bằng hệ số. Chúng tôi đạt được một
kết quả rất khả quan. Sau khi thực hiện bước cân bằng hệ số, chúng tôi đạt được
một kết quả việc kết quả phân loại đúng cao hơn so với chưa cân bằng hệ số.
Việc phân loại đã đạt kết quả chấp nhận được.

8.5 Hạn chế


Hệ thống chỉ hỗ trợ định dạng WAV, AU.
Hệ thống chỉ hỗ trợ trích xuất 30 giây nhạc.
Hiện nay số lượng bài nhạc tiến hành huấn luyện và thử nghiệm đều code tĩnh
trong source.

8.6 Hướng phát triển


Tăng cường mẫu huấn luyện để nâng cao độ chính xác.. . .
Xây dựng giao diện nhằm dễ sử dụng.. . .
Hệ thống sẽ hỗ trợ nhiều tập tin nhạc dạng khác như: MP3, WMA, OGG,
FLAC. . .
Hệ thống sẽ hỗ trợ đầy đủ các tập tin nhạc có những độ dài thời gian khác
nhau.
Thiết kế với hệ thống phân loại khác như: Support Vector Machine, mạng Neu-
ron, Bayes, . . .
Nghiên cứu thêm để có thể sử dụng Wavelet để rút trích đặc trưng về nhịp
nhạc, cao độ của nhạc để tăng cường độ chính xác.

49
Tài liệu tham khảo
[1] Phan Anh Cang. Phân loại nhạc theo thể loại dùng phép biến đổi wavelet rời
rạc. Luận văn thạc sĩ. Đại học Khoa Học Tự Nhiên TP. Hồ Chí Minh, 2004.

[2] Perry Cook George Tzantakis. Music genre classification of audio signals. IEEE
Trans, 10:293–302, 2002. 5.

[3] Trịnh Tấn Đạt, Đặng Nguyễn Đăng Nguyên, Phạm Ngọc Tuân, Nguyễn
Hồng Khoa. Truy vấn nhạc bằng hưm. In Trí tuệ nhân tạo. 2010.

[4] Xuancheng Shao and Steven G. Johnson. Type-ii/iii dct/dst algorithms with
reduced number of arithmetic. Department of Mathematics, Massachusetts In-
stitute of Technology, Cambridge, 2007.

[5] S. Zohar. Winograd’s discrete fourier transform algorithm.

50

You might also like