Ứng dụng mô hình học máy trong phân loại âm thanh Ứng dụng mô hình học máy trong phân loại âm thanh Ứng dụng mô hình học máy trong phân loại âm thanh
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
ĐẠI HỌC QUỐC GIA HÀ NỘI
BÁO CÁO CUỐI KỲ MÔN HỌC
SEMINAR CHO KHOA HỌC DỮ LIỆU
Đề tài:
ỨNG DỤNG MÔ HÌNH HỌC MÁY TRONG
PHÂN LOẠI ÂM THANH
Giảng viên bộ môn: TS NGUYỄN THỊ BÍCH THỦY
Sinh viên thực hiện: NGUYỄN THỊ VÂN ANH MSV: 20002031
Hà Nội, ngày 17 tháng 4 năm 2023
Trang 2LỜI CẢM ƠN
Lời đầu tiên chúng em xin gửi lời cảm ơn tới Phòng Đào tạo Trường Đại học Khoahọc Tự nhiên đã quyết định thêm bộ môn “Seminar” vào chương trình học của trường đểchúng có thể may mắn được tham gia vào lớp học này Xin cảm ơn đội ngũ nhân viêncủa trường đã luôn làm việc để giữ cho chúng em cơ sở vật chất hoàn thiện để quá trìnhhọc tập luôn được diễn ra tốt nhất có thể
Tiếp đến chúng em xin chân thành cảm ơn quý Thầy, Cô, những diễn giả và cácdoanh nghiệp đã tới tham dự và cho chúng em những tiết học bổ ích Đặc biệt gửi lờicảm ơn tới giảng viên bộ môn cô Nguyễn Thị Bích Thuỷ, cô đã tận tình chỉ dạy và trangbị cho em những kiến thức cần thiết trong suốt quá trình học tập, cho chúng em nhữngtrải nghiệm thực tế đắt giá Đồng thời góp ý và giúp đỡ chúng em trong quá trình thựchiện bài báo cáo một cách chi tiết nhất
Do kiến thức còn hạn chế và thiếu kinh nghiệm trong việc tổng hợp thông tin cũngnhư trong cả quá trình nghiên cứu nên bản báo cáo khó tránh khỏi những lỗi sai, thiếuxót Kính mong nhận được những ý kiến đóng góp bổ xung, những lời nhận xét từ quýthầy cô để bài viết có thể được hoàn thiện và chính xác hơn
Chúng em xin chân thành cảm ơn!
Hà Nội, ngày 17 tháng 4 năm 2023
Trang 3LỜI NÓI ĐẦU
Bài toán phân loại từ lâu đã trở thành một bài toán quan trọng trong quá trình nhậnthức và hiểu biết của con người Một đứa trẻ sơ sinh có thể nhận biết được đâu là màuxanh, đâu là màu đỏ, đâu là bố, đâu là mẹ thông qua việc phân biệt các đối tượng đóvới nhau, việc phân loại giúp đứa trẻ có thể tiếp nhận thông tin một cách dễ dàng vàtrực diện Trong lĩnh vực học máy cũng vậy, bài toán phân loại - Classification là mộttrong những bài toán quan trọng nhất, được sử dụng rộng rãi bởi tính ứng dụng cao củanó Một số bài toán có thể kể đến như phân biệt chữ số viết tay, phân biệt các loài độngvật hầu hết đều là trên dữ liệu ảnh và dữ liệu số
Hiểu được tầm quan trọng của bài toán phân loại cũng như muốn thực hiện một dựán mang tính sáng tạo hơn, chúng em đã quyết định lựa chọn âm thanh làm đối tượngđể thực hiện bài toán phân loại trong bản báo cáo này này Trong dự án này, chúng emhướng đến xây dựng một mô hình học sâu nhằm phân loại một bài hát bất kỳ xem chúngthuộc thể loại nào trong 10 thể loại âm nhạc, là bước đầu cho việc xây dựng một mô hìnhphân biệt tiếng nói thực của con người
Dự án sẽ được trình bài trong bản báo cáo thành 5 chương, chương I bao gồm cácgiới thiệu sơ lược về đề tài và bộ dữ liệu, chương II trình bày một số kiến thức cơ bản vềâm thanh nhằm phục vụ cho dự án Chương III & IV bao gồm cách xây dựng và kết quảthực nghiệm từ việc chạy mô hình, cuối cùng là chương Kết luận
Hà Nội, ngày 17 tháng 4 năm 2023
Trang 4MỤC LỤC
1.1 Mô tả bài toán 1
1.2 Bộ dữ liệu GTZAN 1
1.3 Thuật toán và các công cụ thực hiện đề tài 2
1.3.1 Convolutional Neural Network (CNN) 2
1.3.2 CNN trong nhận diện thể loại âm nhạc 2
2.5 Mel Frequency Cepstral Coeficients - MFCC 9
CHƯƠNG 3 MÔ HÌNH VÀ PHƯƠNG PHÁP113.1 Phương pháp 11
3.2 Xử lí dữ liệu 11
3.3 Ứng dụng mô hình CNN trong phân biệt âm thanh 12
3.3.1 Mô hình CNN 12
3.3.2 Huấn luyện mô hình 13
Trang 5CHƯƠNG 5 PHẦN NHẬN XÉT VÀ KẾT LUẬN21
5.1 Thuận lợi 21
5.2 Khó khăn 21
5.3 Kết quả đạt được 21
5.4 Hướng phát triển đề tài 21
Trang 6DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Trang 7DANH MỤC HÌNH ẢNH
Hình 1.1Kiến trúc CNNs 2
Hình 2.2Sóng âm thanh 4
Hình 2.3Đồ thị 20 mili giây đầu tiên của file blue.0.wav 5
Hình 2.4Số hóa tín hiệu âm thanh 5
Hình 2.5Tín hiệu âm thanh trên miền thời gian và miền tần số 6
Hình 2.6Spectrogram của một tín hiệu âm thanh 7
Hình 2.7Thuật toán FFT 8
Hình 2.8Mel Spectrogram của file blue.0.wav 9
Hình 2.9MFCC của file blue.0.wav 10
Hình 3.10 Tổng quan quá trình 11
Hình 3.11 Mel Spectrogram của 3 giây đầu tiên của blue.0.wav 12
Hình 3.12 MFCC của 3 giây đầu tiên của blue.0.wav 12
Hình 3.13 Trực quan mô hình 13
Hình 4.14 Confusion matrix khi sử dụng Mel Spectrogram 15
Hình 4.15 Confusion matrix khi sử dụng MFCC 16
Hình 4.16 Kết quả 20 file khi sử dụng Mel Spectrogram 17
Hình 4.17 Kết quả 43 bài hát khi sử dụng Mel Spectrogram 18
Hình 4.18 Kết quả 20 file khi sử dụng MFCC 19
Hình 4.19 Kết quả 43 bài hát khi sử dụng MFCC 19
Trang 8CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
Chương này bao gồm những mô tả về bài toán được thực hiện trong đề tài, mụcđích thực hiện đề tài, các công cụ, thư viện được sử dụng để thực hiện đề tài cũng nhưcách cài đặt chúng
1.1Mô tả bài toán
Trong đề tài này, chúng em sẽ thực hiện sử dụng mô hình học máy để phân biệt xemmột file audio đầu vào thuộc thể loại âm nhạc nào trong 10 thể loại được xét tới Việcnày có thể coi là bước đầu trong việc tiến tới bài toán phân biệt giọng nói con người, đâylà một bài toán vô cùng thiết thực và mang tính ứng dụng cao, đặc biệt là trong thời đạicủa khoa học công nghệ, thời đại của trí tuệ nhân tạo như hiện nay
1.2Bộ dữ liệu GTZAN
Trong dự án này bộ dữ liệu được sử dụng là GTZAN - bộ dữ âm nhạc được sử dụngrộng rãi trong các nghiên cứu về phân loại dòng âm nhạc Bộ dữ liệu này được tạo rabởi George Tzanetakis và Perry Cook vào năm 2002 và chứa 1000 file nhạc có độ dài 30giây mỗi file, được chia thành 10 thể loại âm nhạc khác nhau: Blues, Classical, Country,Disco, Hip hop, Jazz, Metal, Rock, Reggae, Pop Bên trong thư mục chính của bộ dữliệu bao gồm 4 nội dung:
• Thư mục Genres original: Thư mục chứa file audio ứng với từng thể loại âm nhạcđược chia ở trên, mỗi thể loại có 100 file audio, mỗi file có độ dài 30 giây
• Thư mục Images original: Là thư mục chứa Mel spectrogram của từng tệp âm thanh,chúng cũng được chia thành 10 thư mục nhỏ ứng với 10 thể loại
• 2 CSV files - chứa các feature của tệp âm thanh, bao gồm giá trị trung bình vàphương sai của một số các feature khác nhau
Có rất nhiều lý do khiến nhóm lựa chọn GTZAN làm bộ dữ liệu thực hiện dự ánnày, GTZAN là một bộ dữ liệu chuẩn và phổ biến và thậm chí có khi được coi như làMNIST1 cùa âm thanh, bên cạnh đó, bộ dữ liệu này cũng đã được rất nhiều nghiên cứuviên sử dụng trên các mô hình khác nhau trước đây Nhờ việc này, những người nghiêncứu sau có thể dễ dàng so sánh hiệu quả của các mô hình được sử dụng trên cùng mộttập dữ liệu
1MNIST: bộ dữ liệu chữ viết tay nổi tiếng.
Trang 91.3Thuật toán và các công cụ thực hiện đề tài
1.3.1Convolutional Neural Network (CNN)
Kiến trúc CNN (mạng Neural tích chập)• Trong mạng Neural, mạng Neural tích chập (CNN) là một thuật toán chính trong
việc nhận diện và phân loại đối tượng.• Về kĩ thuật, mô hình CNN sẽ thực hiện train và test Mỗi đầu vào sẽ chuyển nó
qua một loạt các bộ lọc (filter)-(kernel), sau đó đến Pooling, rồi tiếp theo là các lớpđược kết nối hoàn chỉnh (FC - Fully Conected layers) và phân loại đối tượng có xácsuất giữa 0 và 1
Hình 1.1Kiến trúc CNNs
1.3.2CNN trong nhận diện thể loại âm nhạc
Một số lí do sử dụng CNN trong nhận diện thể loại âm nhạc:• Các thể loại âm nhạc thường được coi là một trong những tính năng high-level, nó
thay đổi theo tần âm, nhịp, âm sắc Hệ thống phân cấp này phù hợp CNN vì tínhnăng phân cấp cấu trúc nhiều tầng
• Thuộc tích translation, distortion liên quan đến dải tần số âm
1.3.3Tensorflow
TensorFlow là một thư viện mã nguồn mở được tạo ra để phục vụ cho việc tínhtoán phân tán số sử dụng cách thức tính toán là data flow graphs Nó do Google pháttriển nhằm mục đích hỗ trợ việc nghiên cứu chuyên sâu và phát triển các ứng dụng AI(Machine learning/Deep Learning) TensorFlow có thể được sử dụng cho các tác vụ nhưnhận dạng hình ảnh và giọng nói, xử lý ngôn ngữ tự nhiên, v.v
Tại sao trong dự án này lựa chọn Tensorflow?• Tích hợp sẵn rất nhiều các thư viện machine learning
Trang 10• Có khả năng tương thích và mở rộng tốt Được Google phát triển cho machinelearning phục vụ cả nghiên cứu lẫn xây dựng các ứng dụng thực tế.
• Hỗ trợ trên nhiều hệ điều hành
1.3.4Keras
Keras là một thư viện mã nguồn mở cho Neural Network được viết bằng python,được phát triển vào năm 2005 bởi Francois Chollet, là một kỹ sư nghiên cứu DeepLearning Một số ưu điểm của Keras:
• Dễ dàng sử dụng, đơn giản hơn Tensorflow, có thể kết hợp sử dùng chung vóiTensorflow
• Hỗ trợ xây dựng CNN , RNN hoặc cả hai, rất phù hợp với những người mới họcDeep Learning vì đơn giản, dễ nắm bắt, dễ xây dựng các mô hình
• Chạy được trên cả CPU và GPU.• Nhiều bộ dữ liệu có sẵn, phục vụ tốt cho cả nhiệm vụ học tập và nghiên cứu
1.3.5Jupyter Notebook
Đây là một công cụ có lẽ đã rất quen thuộc với các lập trình viên Python JupyterNotebook là một nền tảng tính toán khoa học mã nguồn mở, bạn có thể sử dụng để tạovà chia sẻ các tài liệu có chứa code trực tiếp, phương trình, trực quan hóa dữ liệu và vănbản tường thuật, hỗ trợ hơn 40 ngôn ngữ lập trình cho người dùng
Với Jupyter Notebook, người dùng có thể đưa dữ liệu, code, hình ảnh, công thức,video, vào trong cùng một file, giúp cho việc trình bày trở nên dễ dàng hơn Bạn cóthể vừa trình chiếu vừa chạy code để tương tác trên đó, dễ dàng trực quan hóa dữ liệu
Trang 11CHƯƠNG 2 MỘT SỐ KIẾN THỨC VỀ ÂM THANH
Chương này bao gồm một số kiến thức nền về âm thanh, một số đặc tính của âmthanh được sử dụng để phân biệt giữa các thể loại nhạc trong dự án này
2.1Kiến thức chung về tín hiệu âm thanh
Âm thanh là một dạng tín hiệu được sinh ra từ sự thay đổi áp suất không khí, bắtnguồn từ một dao động cơ học nào đó Cường độ của sự dao động này có thể đo được,
và nó chính là biên độ của tín hiệu âm thanh Tín hiệu âm thanh thường lặp đi lặp lại
theo một chu kì T và có đồ thị dạng sóng
Hình 2.2Sóng âm thanh
Giá trị nghịch đảo của chu kì T là tần số của tín hiệu âm thanh, thể hiện mức độ
dao động của tín hiệu trong thời gian 1 giây Trên thực tế, đồ thị của tín hiệu âm thanhkhông có dạng hình Sin đơn giản như vậy Chúng ta có thể thấy điều đó thông qua đồ thị20 mili giây đầu tiên của một bản nhạc Blues2 qua hình ảnh bên dưới
Trong một đoạn tín hiệu âm thanh rất ngắn cũng có thể là một bản trộn lẫn phứctạp giữa các tần số âm thanh khác nhau Để có thể xử lí nó dễ dàng hơn, ta sẽ hướng đếnviệc tách tín hiệu âm thanh phức tạp thành các thành phần có tần số khác nhau
2Blues: thể loại nhạc có nguồn gốc từ những điệu hát của miền tây Phi Châu được các nô lệ da đenmang sang Bắc Mỹ.
Trang 12Hình 2.3Đồ thị 20 mili giây đầu tiên của file blue.0.wav
2.2Số hoá tín hiệu âm thanh
Âm thanh là dạng tín hiệu liên tục, trong khi máy tính làm việc với các con số rờirạc Vì vậy, để thuận lợi trong việc lưu trữ, truyền tải, xử lý, tín hiệu âm thanh đượcchuyển sang dạng số (digital sound) - chính là những file audio với định dạng mp3, wavchúng ta thường nghe trên máy tính hoặc điện thoại
Hay nói cách khác, để thuận tiện trong việc lưu trữ, xử lí và truyền tải, tín hiệu âmthanh sẽ được chuyển sang dạng số
Hình 2.4Số hóa tín hiệu âm thanh
Trang 13Số hóa tín hiệu âm thanh được thực hiện bằng cách lấy giá trị biên độ của nó tại các
vị trí cách đều nhau trong mỗi chu kỳ Mỗi vị trí như vậy được gọi là một mẫu (sample).Số lượng mẫu trong 1 giây được gọi là Tần số lấy mẫu (sampling rate) Ví dụ, ta có một
file audio có tần số lấy mẫu sr = 22050 có nghĩa là trong 1 giây sẽ lấy 22050 mẫu
2.3Spectrogram
Mỗi tín hiệu âm thanh sẽ có hai miền giá trị: Thời gian và tần số Trong mỗi miềnđó, tín hiệu âm thanh được thể hiện theo cách khác nhau:
Hình 2.5Tín hiệu âm thanh trên miền thời gian và miền tần số
• Trong miền thời gian, tín hiệu âm thanh mô tả sự thay đổi của biên độ theo thờigian
• Trong miền tần số, tín hiệu âm thanh mô tả sự thay đổi của biên độ theo tần số.Spectrogram là đồ thị thể hiện mối liên hệ giữa tần số và thời gian Cụ thể, nó cho thấysự thay đổi của tần số theo thời gian; đồng thời, độ lớn của biên độ cũng được thể hiệnthông qua màu sắc: màu càng sáng thì biên độ càng lớn và ngược lại
Trang 14Hình 2.6Spectrogram của một tín hiệu âm thanh
Đây là cách thể hiện tốt nhất của tín hiệu âm thanh: dưới dạng hình ảnh Nó đượctạo ra bằng cách áp dụng phép biến đổi Fourier lên một tín hiệu để phân tách thành cáctần số thành phần
2.4Cách tạo ra Spectrogram
Ý tưởng chính là chia tín hiệu âm thanh thành các khung nhỏ hơn (cửa sổ) và tínhtoán FFT cho mỗi cửa sổ đó Từ đó, mỗi khung sẽ đại diện cho một khoảng thời gian, vàở mỗi khung sẽ có giá trị của các tần số khác nhau
Trang 159000-10000Hz.• Đầu ra thuật toán sẽ là một mảng 2 chiều có kích thước là 10x20.• Mỗi cột đại diện cho một khung thời gian, thể hiện thời gian, mỗi hàng là một
khoảng tần số.• Giá trị tại mỗi điểm sẽ là giá trị biên độ (cường độ) tại một khoảng thời điểm và của
khoảng một tần số.Thông thường, Spectrogram ở dạng nguyên thủy hầu như không thể thấy rõ được
Trang 16Điều này được giải thích do khả năng nhận thức âm thanh của con người đều tập trungxung quanh một dải tần số và biên độ khá hẹp.
Do đó, người ta thay thế tần số bằng giá trị logarit của nó, gọi là Mel Scale; thaythế biên độ bằng giá trị logarit của nó, gọi là Decibel Scale Dạng này được gọi là MelSpectrogram
Hình 2.8Mel Spectrogram của file blue.0.wav
Bằng cách biến đổi tín hiệu âm thanh về dạng hình ảnh là Mel Spectrogram, ta đãphân tách tín hiệu âm thanh thành các tần số thành phần, và do đó, có thể đưa vào cácmô hình học máy
2.5Mel Frequency Cepstral Coeficients - MFCC
Mel Frequency Cepstral Coeficients - MFCC là một dạng thể hiện khác của dữ liệuAudio, được biến đổi từ Mel Spectrogram
Cụ thể, MFCC nén các khoảng tần số (Frequency Bands) từ Mel Spectrogramtương ứng với các mức tần số thông thường của giọng nói con người
Chính vì vậy, thông thường, MFCC phù hợp với các bài toán xử lí giọng người, cònMel Spectrogram sẽ được ứng dụng trong các bài toán xử lí Audio khác
Trang 17Hình 2.9MFCC của file blue.0.wav
Ưu điểm của MFCC:• Loại bỏ những thông tin chi tiết dư thừa và tập trung vào những thông tin về cấu
trúc âm thanh quan trọng.• Có kích cỡ nhỏ hơn so với Mel Spectrogram nên công việc tính toán nhanh và dễ
dàng hơn.• Hiệu quả trong việc xử lí giọng người
Trang 18CHƯƠNG 3 PHƯƠNG PHÁP VÀ MÔ HÌNH
Chương này bao gồm phần trình bày về việc xử lý âm thanh, việc lựa chọn, sử dụngmô hình phù hợp cùng các phương pháp được kết hợp xử dụng nhằm tăng độ chính xáccho kết quả đầu ra
3.1Phương pháp
Với mục đích phân loại âm thanh vào các thể loại nhạc, và dựa trên các kiến thức đãtrình bày ở trên, chúng em sẽ thực hiện biến đổi file Audio về thành Mel Spectrogram,xây dựng mô hình CNN, thực hiện train mô hình dựa trên tập dữ liệu đã được chuyển đổivà đánh giá kết quả
Ngoài ra, chúng em cũng sẽ thử nghiệm đưa file Audio về dạng MFCC và thựchiện các công việc tương tự để so sánh kết quả giữa 2 loại feature này
Hình 3.10Tổng quan quá trình
3.2Xử lí dữ liệu
Để mở rộng dữ liệu, chúng em lựa chọn chia mỗi file Audio thành các đoạn dài3 giây (Data Augmentation) Do đó, với mỗi file Audio, ta có 10 kết quả Mel Spectro-gram/MFCC Đối với Mel Spectrogram, việc chuyển đổi sẽ được thực hiện với các thamsố lần lượt như sau:
• n_mels: số lượng Mel band là 128.• n_fft: độ dài của khung FFT là 2048 mẫu.• hop_length: khoảng cách giữa 2 khung là 512 mẫu.• f_min: tần số nhỏ nhất sử dụng là 20
• f_max: tần số lớn nhất sử dụng là 8000
Đầu ra là Mel Spectrogram có kích cỡ 128x130