Thuật toán

Một phần của tài liệu Áp dụng thuật toán k nearest neighbor để phân loại nhạc theo thể loại (Trang 37)

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 t-1 trƣớc đó.

𝑁𝑡 𝑛 = 𝑀𝑡 𝑛

𝑁𝑖=1 𝑀𝑡 𝑖 2 (adsbygoogle = window.adsbygoogle || []).push({});

(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 (adsbygoogle = window.adsbygoogle || []).push({});

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 α.

Vector đặc trƣng của một tập tin nhạc cần phân loại, sẽ nhân giá trị của từng đặc trƣng với hệ số chuẩn hóa (α) tƣơng ứng.

3.2.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 xuất của mẫu kiểm tra x thuộc thể loại ci đƣợc xác định nhƣ sau:

𝑝 𝑐𝑖 𝑥 = 𝑘∈𝑈 ,𝑘𝑐 =𝑐𝑖𝑊𝑘 𝑊𝑘 𝑘∈𝑈 (3.8) 𝑊𝑘 = 1 𝑑(𝑘, 𝑥) 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 ∈ 𝑈).

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

ci là thể loại thứ i, i = 1, 𝑛 (hệ thống có thể có n=4 thể loại hoặc n=10 thể loại).

43

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ật 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:

𝑑𝑝 𝑥𝑖, 𝑥𝑗 = |𝑥𝑖,𝑚 − 𝑥𝑗 ,𝑚| 𝑝 = 𝑥𝑖 − 𝑥𝑗 𝑝 𝑑 𝑚 =1 𝑝 (3.9)

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 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.

𝑑2 𝑥𝑖, 𝑥𝑗 = 𝑝 𝑑𝑚 =1 |𝑥𝑖,𝑚 − 𝑥𝑗 ,𝑚| 2 = 𝑥𝑖 − 𝑥𝑗

2 (3.10)

Trong đó, xixj là các mẫu đang xét (i≠ 𝑗), 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, sử dụng vector đặc trƣng 19 chiều, nhƣ vậy công thức trên d=30.

3.2.5. Huấn luyện nhận dạng

Trong giai đoạn huấn luyện và nhận dạng, 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 giữ này rất có ích. Vì trong quá trình nhận dạng, nếu nhƣ không thực hiện bƣớc trên, sẽ phải tốn một chi phí thanh 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, sẽ giảm đƣợc một lƣợng chi phí thanh toán lớn.

Trong giai đoạn nhận dạng, 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 em đã trình bày ở chƣơng 2. 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.

44

Tên kho mẫu: GTZAn Genre Collection Số thể loại nhạc: 10  Blues  Classical  Country  Disco  Hiphop  Jazz  Metal  Pop  Regguage  Rock 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

45

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

46

Hình 3.5 Biểu đồ tƣơng quan độ chính xác phân loại 10 thể loại Hình ảnh chƣơng trình thực nghiệm

47 (adsbygoogle = window.adsbygoogle || []).push({});

48

49

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN

Việc phân loại nhạc theo thể loại đƣợc thực hiện chủ yếu dựa vào 3 tập đặc trƣng rút trích từ tín hiệu audio:

 Tập đặc trƣng 1: 19 đặc trƣng liên quan đến bố cục âm sắc.

 Tập đặc trƣng 2: 6 đặc trƣng liên quan đến nhịp nhạc.

 Tập đặc trƣng 3: 5 đặc trƣng liên quan đến độ cao thấp nốt nhạc.

Trong khóa luận tốt nghiệp này, em chỉ sử dụng đến tập đặc trƣng 1, đó là 19 đặc trƣng liên quan đến bố cục âm sắc. Tuy nhiên, em đã sử dụng bƣớc cân bằng hệ số để đƣa hệ số về kích thƣớc chuẩn, điều này đã làm cho việc phân loại đúng cao hơn so với chƣa cân bằng hệ số. So với việc sử dụng hết tập 3 đặc trƣng của tín hiệu audio, thì việc phân loại này cho kết quả thấp hơn, nhƣng tƣơng đối chính xác, có thể chấp nhận đƣợc.

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.

Hƣớng phát triển

 Tăng cƣờng 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 khác nhau 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.

50

 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 để 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.

51

TÀI LIỆU THAM KHẢO

1. Alexander Lerch, Juan Jos'e Buerred (September, 2003), "A hierar chical approach to automatic musical genre classification". Conference on Digital Audio Effects, London, UK, September 8-11, 2003.

2. 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

3. Perry Cook, George Tzantakis. Music genre classification of audio signals. IEEE Trans, 10:293-302, 2002.5.

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

Một phần của tài liệu Áp dụng thuật toán k nearest neighbor để phân loại nhạc theo thể loại (Trang 37)