Giả sử 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ụ, phân loại các đối tƣợng đã biết cho trƣớc, hữu hạn bao gồm “xe hơi”, “sách”, “điện thoại”, 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”, “sách”, “điện thoại”. Trong quá trình học,
31
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à “xe hơi”, “sách”, “điện thoại”. Nhƣ vậy, nếu nói theo nghĩa toán học là đi tìm một ánh xạ: 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 các đối tƣợng đƣợc gắn nhãn sai là thấp nhất có thể. Ánh xạ 𝑓: X→Y đƣợc gọi là hàm phân loại.
Có 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ề có họ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. Ví dụ, một ngƣời bán hàng Online muốn phân cụm khách hàng dựa trên lịch sử mua hàng. Cần chọn tất cả cá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.
Phân lớp ở đây 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-neares neighbor, SVM, Neuron Net-work... 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 vector đặc trƣng mới một cách tự động. Trong khóa luận tốt nghiệp này, em sử dụng phƣơng pháp phân loại K láng giềng gần nhất (K-Nearest Neighbour) vì phƣơng pháp này có một số ƣu điểm sau:
32
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.
2.3. Mô tả thuật toán phân lớp k – Nearest Neighbor
K-Nearest Neighbors algorithm (K-NN) đƣợc sử dụng rất phổ biến trong lĩnh vực Data Mining. K-NN là phƣơng pháp để phân lớp các đối tƣợng dựa vào khoảng cách gần nhất giữa đối tƣợng cần xếp lớp (Query point) và tất cả các đối tƣợng trong Training Data.
Một đối tƣợng đƣợc phân lớp dựa vào K láng giềng của nó. K là số nguyên dƣơng đƣợc xác định trƣớc khi thực hiện thuật toán. Ngƣời ta thƣờng dùng khoảng cách Euclidean để tính khoảng cách giữa các đối tƣợng.
Thuật toán K-NN đƣợc mô tả nhƣ sau:
1. Xác định giá trị tham số K (số láng giềng gần nhất).
2. Tính khoảng cách giữa đối tƣợng cần phân lớp (Query Point) với tất cả các đối tƣợng trong training data (thƣờng sử dụng khoảng cách Euclidean).
3. Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gần nhất với Query Point.
4. Lấy tất cả các lớp của K láng giềng gần nhất đã xác định.
5. Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho Query Point.
Để hiểu K-NN đƣợc dùng để phân lớp thế nào ta xem minh họa dƣới đây:
Trong hình dƣới đây, training Data đƣợc mô tả bởi dấu (+) và dấu (-), đối tƣợng cần đƣợc xác định lớp cho nó (Query point) là hình tròn đỏ. Nhiệm vụ của
33
chúng ta là ƣớc lƣợng (hay dự đoán) lớp của Query point dựa vào việc lựa chọn số láng giềng gần nhất với nó. Nói cách khác chúng ta muốn biết liệu Query Point sẽ đƣợc phân vào lớp (+) hay lớp (-)
Hình 2.1 Phƣơng pháp phâp loại k – nearest neighbor
Thấy rằng:
1 - Nearest neighbor: Kết quả là + (Query Point đƣợc xếp vào lớp dấu +)
2 - Nearest neighbors: không xác định lớp cho Query Point vì số láng giềng gần nhất với nó là 2 trong đó 1 là lớp + và 1 là lớp – (không có lớp nào có số đối tƣợng nhiều hơn lớp kia)
5 - Nearest neighbors: Kết quả là - (Query Point đƣợc xếp vào lớp dấu – vì trong 5 láng giềng gần nhất với nó thì có 3 đối tƣợng thuộc lớp - nhiều hơn lớp + chỉ có 2 đối tƣợng).
2.4. 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 – Nearst 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.
1- Nearest neighbor outcome is a puls
2- Nearest neighbor outcome is unknown
5- Nearest neighbor outcome is a minus
34
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 mà 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 - Nearst Neighbor. Kết quả của việc phân loại là nhãn của mẫu huấn luyệ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.
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 từ trong kho mẫu huấn luyện gần x nhất. 3. Xác định nhãn 𝑓(x) của mẫu x từ nhãn 𝑓(x1), 𝑓(x2), . . . , 𝑓(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 K - NN cho việc phân loại đối tƣợng mới, cần xác định các yếu tố sau: Dùng loại khoảng cách nào? Dùng thuộc tính nào có để có đƣợc kết quả tốt nhất, sử dụng hết tất cả các thuộc tính hay chỉ những thuộc tính chính.
35
Hình 2.2 Phƣơng pháp phân loại
Ưu điểm
Dễ phân tích.
Thực hiện đơn giản.
Dễ thực hiện với việc so sánh.
Hiệu quả khi tập huấn luyện lớn.
Khuyết điểm
Cần tính 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 K - NN có độ phức tạp còn cao.
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.
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.
36
CHƢƠNG 3. XÂY DỰNG ỨNG DỤNG PHÂN LOẠI NHẠC THEO THỂ LOẠI
3.1. Giới thiệu bài toán
Âm nhạc trở thành phƣơng tiện để nâng cao giá trị tinh thần cho đời sống. Điều đó đã làm gia tăng số lƣợng các file nhạc, đặc biệt là World Wide Web. Đòi hỏi cần xây dựng một cơ sở dữ liệu để quản lí tốt các bài nhạc đó.
Từ xƣa, muốn biết một bài nhạc thuộc thể loại nào, 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, 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 nghe một bài hát của tác giả chuyên sáng tác nhạc pop, sẽ quy bài hát đó thuộc thể loại nhạc pop. Hoặc là, khi nghe một bài hát của một ca sĩ chuyên hát nhạc rock, sẽ quy bài 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, không thể nào ngồi nghe từng bài rồi để kết luận bài đó thuộc thể loại nào.
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 để 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 là 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 một bản nhạc hoặc những đặc trƣng liên quan đến bố cục nhạc
37
(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 khóa luận 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, hip hop, metal. Reggae. Thử nghiệm với 10 thể loại nhạc này, và 4 thể loại classical, rock, jazz, pop.
Hình 3.1 Sơ đồ xác định tín hiệu nhạc từ tín hiệu radio.
3.2. Thuật toán
3.2.1. Trích rút đặc trƣng
Để xác định thể loại của một bài nhạc, 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 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 Tzanetakis và Pery Cook, nhóm tác giả đã sử dụng ba tập đặc trƣng sau:
38
Hình 3.2 Sơ đồ một vector đặc trƣng từ một tín hiệu nhạc
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, em 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.
3.2.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 trƣng về bố cục âm sắc đƣợc mô tả bởi sơ đồ sau:
Hình 3.3 Sơ đồ xác định các đặc trƣng liên quan đến bố cục âm sắc
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à đƣợ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 Centriud đƣợ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.
Tín hiệu nhạc Rút trích đặc trƣng Chọn lọc đặc trƣng Vector đặc trƣng
39 𝐶𝑡 = 𝑀𝑡 𝑛 ∗𝑛 𝑁 𝑛 =1 𝑀𝑡 𝑁 𝑛 =1 𝑛 (3.1)
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 phổ 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.
𝑅𝑡 𝑀𝑡 𝑛 = 0.85 ∗ 𝑁𝑛=1𝑀𝑡 𝑛
𝑛 =1 (3.2)
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ổ
𝐹𝑡 = 𝑁𝑛 =1 𝑁𝑡 𝑛 − 𝑁𝑡−1 𝑛 2 (3.3)
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 đó.
𝑁𝑡 𝑛 = 𝑀𝑡 𝑛
𝑁𝑖=1 𝑀𝑡 𝑖 2
(3.4)
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ó đƣợc tính bởi công thức:
40 𝑍𝑡 = 1 2 𝑁 𝑠𝑖𝑔𝑛 𝑥 𝑛 − 𝑠𝑖𝑔𝑛 (𝑥 𝑛 − 1 ) 𝑛=1 (3.5) Trong đó: 𝑠𝑖𝑔𝑛 (𝑥 𝑛 = 1 𝑥 𝑛 ≥ 0 0 𝑥 𝑛 < 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:
𝑅𝑀𝑆𝑡 = (𝑀𝑡 𝑖 2 𝑁
𝑖=1
𝑁 (3.6) RMS là độ đo độ to của âm thanh trong một cửa sổ
Mel-Frequency Cepstral Coefficients (MFCC)
Các hệ số MFC đƣợ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
41
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, chỉ chọn 5 hệ số MFC đầu tiên cũng đủ 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, LowEnergy, và trung bình và phƣơng sai của 5 MFCC đầu tiên. Có kết quả
trong 1 vector đặc trƣng 19 chiều.
3.2.3. Cân bằng hệ số các đặc trƣng liên quan đến bố cục âm sắc
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, có một vấn đề đó là các hệ số trên chƣa đƣa về một kích thƣớc chuẩn. Chính vì vậy cần đề xuất một cách để đƣa các hệ số về một kích thƣớc chuẩn.
Chuẩn hóa các hệ số bằng phƣơng pháp nhƣ sau. Chỉ xét đến một số trong 19 đặc trƣng, các hệ số còn lại làm tƣơng tự. Đƣa miền 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,.
Việc chuẩn hóa sẽ đƣợc tính theo nhƣ sau: 𝛼 = 1000
42 𝑥𝑖 → 𝛼𝑥𝑖
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. 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 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, tiến hành thực hiện lại hàm tìm α.