Mục tiêu của một hệ thống nhận dạng nhạc số dựa trên chuỗi ñặc trưng âm thanh audio fingerprint là từ một bản thu âm ngắn ñã bị nhiễu, hệ thống cho phép tìm kiếm chính xác bài hát gốc củ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Phạm Cẩm Ngọc
TÌM KIẾM NHẠC SỐ DỰA TRÊN CHUỖI ĐẶC
TRƯNG ÂM THANH
LUẬN VĂN THẠC SĨ
HÀ NỘI – 2010
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Phạm Cẩm Ngọc
TÌM KIẾM NHẠC SỐ DỰA TRÊN CHUỖI ĐẶC
TRƯNG ÂM THANH
Ngành : Công nghệ thông tin
Chuyên ngành : Hệ thống thông tin
Mã số : 60 48 05
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN HẢI CHÂU
Hà Nội - 2010
Trang 3MỤC LỤC
LỜI CAM ðOAN I LỜI CẢM ƠN II DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT V DANH MỤC CÁC BẢNG VI DANH MỤC CÁC HÌNH VẼ, ðỒ THỊ VII
MỞ ðẦU 1
CHƯƠNG 1 4
1.1 Giới thiệu 4
1.2 Một số ứng dụng của chuỗi ñặc trưng 5
1.2.1 Giám sát phát thanh 5
1.2.2 Các ứng dụng liên thông âm thanh 6
1.2.3 Các bộ lọc trong ứng dụng dùng chung file 6
1.2.4 Tự ñộng tổ chức thư viện âm nhạc 6
1.2.5 Một số ứng dụng khác 7
1.3 Các phương pháp xác ñịnh chuỗi ñặc trưng 7
1.3.1 Phương pháp cửa sổ gối 8
1.3.2 Phương pháp cửa sổ gối kết hợp học máy 11
1.3.3 Phương pháp DDA (Distortion Discriminant Analysis) 11
1.3.4 Phương pháp dựa trên wavelet 12
1.4 Ứng dụng của kỹ thuật thị giác máy cho bài toán nhận dạng nhạc số 13
1.4.1 Biểu diễn bài hát dưới dạng một spectrogram 14
1.4.2 Tính toán ñặc trưng bởi thuật toán Boosting theo cặp (pairware boosting) 17
1.4.3 Học “Ocllusion Model” với thuật toán EM (Expectation Maximization) 20
1.4.4 Quá trình nhận dạng nhạc số 22
1.5 Tổng kết chương 23
Trang 4CHƯƠNG 2 25
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU POSTGRESQL 25
2.1 Vắn tắt về lịch sử PostgreSQL 26
2.2 Kiến trúc của PostgreSQL 27
2.3 Các hàm mở rộng trong ngôn ngữ C 29
2.3.1 Nạp ñộng (dynamic loading) 30
2.3.2 Các kiểu dữ liệu cơ sở trong C 31
2.3.3 Chuẩn gọi hàm theo phiên bản 0 cho các hàm C 36
2.3.4 Chuẩn gọi hàm phiên bản 1 cho các hàm C 39
2.3.5 Các quy tắc viết chương trình 43
2.3.6 Biên dịch và liên kết tới các hàm ñộng (Dynamically-Loaded Function) 44
2.3.7 Cơ sở cài ñặt (Build Infrastructure) các mở rộng 46
2.4 Tổng kết chương 48
CHƯƠNG 3 49
3.1 Xây dựng cơ sở dữ liệu các fingerprint 50
3.1.1 Thiết kế cơ sở dữ liệu bài hát trong PostgreSQL 50
3.1.2 Xây dựng các hàm mở rộng trong PostgreSQL ñể tìm kiếm bản nhạc 52 3.2 Xây dựng tập dữ liệu huấn luyện 53
3.3 Kết quả thực nghiệm 54
KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 58
Trang 5DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT
JDBC Java Database Connectivity LDA Linear Discriminant Analysis LPC Linear Predictive Coding MFCC Mel-Frequency Cepstral Coefficients ODBC Open Database Connectivity OPCA Oriented Principal Components Analysis PCA Principal Components Analysis UCB University of California at Berkeley
Trang 6DANH MỤC CÁC BẢNG
Bảng 2 1 Các kiểu dữ liệu trong C và các kiểu ñược ñịnh nghĩa tương ứng trong
SQL 35
Trang 7DANH MỤC CÁC HÌNH VẼ, ðỒ THỊ
Hình 1 1 Mô hình trích chọn fingerprint của Haitsma 9
Hình 1 2 (a) fingerprint block của bài hát gốc, (b) fingerprint block của bài hát sau khi ñã bị nén, (c) sự khác nhau giữa (a) và (b) thể hiện trên số bít lỗi màu ñen (BER=0,078) 10
Hình 1 3 Biểu diễn của 4 ảnh phổ liên tiếp của 2 bài hát khác nhau Với mỗi bài hát, dòng ñầu: ảnh phổ ban ñầu, dòng hai: ñộ lớn wavelet, dòng 3: 200 wavelet ñầu tiên 13
Hình 1 4 Biểu diễn âm thanh theo biên ñộ, tần số và mã nhị phân 15
Hình 1 5 Các ñặc trưng hình chữ nhật ñược biểu diễn trong mối quan hệ với các cửa sổ tìm kiếm bao xung quanh 16
Hình 1 6 So sánh phương pháp tính toán ñặc trưng của Yanke (thuật toán Pairwise Boosting) với thuật toán của Haitsma và Haitsma cải tiến 20
Hình 1 7 Mô hình phụ thuộc ñơn giản ñược giả lập bởi hệ thống 22
Hình 2 1 Kiến trúc PostgreSQL 28
Hình 3 1 Tổ chức cơ sở dữ liệu theo LUT 51
Hình 3 2 Mô hình cơ sở dữ liệu 52
Hình 3 3 So sánh kết quả thực nghiệm với các bộ dữ liệu huấn luyện khác nhau 55 Hình 3 4 So sánh thời gian tìm kiếm trên mỗi bản nhạc thu với hệ thống nhận dạng mới (Nhạc số) và hệ thống của Y.Ke (Y Ke) 56
Trang 8MỞ đẦU
Sự phát triển của máy tắnh và mạng Internet như hiện nay dẫn ựến nhu cầu tìm kiếm trên Internet là rất lớn Nếu như trước ựây người ta chỉ quan tâm ựến tìm kiếm thông tin, văn bản thì hiện nay nhu cầu tìm kiếm dữ liệu ựa phương tiện (multimedia) cho mục ựắch giải trắ không ngừng tăng lên Việc tìm kiếm các bản nhạc theo phương pháp truyền thống chỉ ựược thực hiện ựơn giản bằng cách nhập vào máy tìm kiếm các thông tin về tiêu ựề bài hát, tên tác giả, ca sĩ thể hiện Ầ ựể nhận ựược bài hát tương ứng Tuy nhiên, phương pháp tìm kiếm này không ựáp ứng ựược nhu cầu tìm kiếm bản nhạc trong thực tế khi người sử dụng ựơn giản lắng nghe một bài hát và muốn biết tên của bài hát ựó Xây dựng một hệ thống nhận dạng âm nhạc như vậy ựã thu hút ựược sự quan tâm của các nhà nghiên cứu
và các tổ chức lớn đã có nhiều bài báo và công trình khoa học có liên quan ựược công bố, nhưng chỉ có các phương pháp dựa trên tắnh toán và so sánh các ựặc trưng (còn gọi là fingerprint hay local descriptor) trên các bản nhạc là mang lại hiệu quả hơn cả
Mục ựắch chắnh của việc tắnh toán này là ựưa ra một cơ chế hiệu quả ựể ước lượng sự tương tự giữa hai ựối tượng multimedia: thay vì so sánh trực tiếp bản thân hai ựối tượng (thường rất lớn), ựơn giản hơn người ta so sánh các fingerprint giữa chúng Trong hầu hết các hệ thống sử dụng công nghệ fingerprint, fingerprint của các ựối tượng multimedia cùng với các meta-data liên quan (tên tác giả hay tiêu ựề của album) ựược lưu trữ trong cùng một cơ sở dữ liệu Các fingerprint này ựóng vai trò như chỉ mục cho các meta-data Meta-data của các ựối tượng multimedia chưa biết có thể nhận ựược bằng cách tắnh toán fingerprint của các ựối tượng này và sử dụng chúng như một truy vấn trong cơ sở dữ liệu fingerprint/meta-data Có 3 ưu ựiểm chắnh của việc sử dụng fingerprint thay cho ựối tượng multimedia gốc:
Trang 9• Giảm thiểu ñược các nhu cầu về bộ nhớ/lưu trữ vì kích thước các fingerprint tương ñối nhỏ;
• Việc so sánh ñơn giản hơn do các thông tin dư thừa ñã ñược loại bỏ khỏi fingerprint;
• Tìm kiếm hiệu quả hơn khi mà tập dữ liệu tìm kiếm là nhỏ
Một hệ thống fingerprint thông thường bao gồm hai thành phần chính: phương pháp ñể tính toán fingerprint và phương pháp tìm kiếm fingerprint có hiệu quả trong một cơ sở dữ liệu fingerprint
Mục tiêu của một hệ thống nhận dạng nhạc số dựa trên chuỗi ñặc trưng âm thanh (audio fingerprint) là từ một bản thu âm ngắn ñã bị nhiễu, hệ thống cho phép tìm kiếm chính xác bài hát gốc của bản thu âm ñó Trong thực tế có thể gặp tình huống sau, người sử dụng nào ñó lắng nghe một ca khúc qua radio trên xe hơi của mình hay tại một bữa tiệc ðây là bài hát nối tiếng mà ñã lâu rồi anh ta không ñược nghe nên ñã quên mất lời bài hát và tên tác giả bài hát này Người này có thể gửi một ñoạn ngắn của bản nhạc ñã ñược thu âm qua ñiện thoại di ñộng tới một server tìm kiếm nhạc số ñể nhận lại một tin nhắn chứa các thông tin liên quan như tên bài hát, lời bài hát hay tác giả của bài hát Công việc này ñặt ra những thách thức vì những lý do sau ñây:
• Bản thu âm bị sai khác so với bản nhạc gốc do ảnh hưởng nhiễu tín hiệu của các thiết bị thu âm thông dụng (thường là ñiện thoại di ñộng) hay do ảnh hưởng của tiếng ồn và các tạp âm xung quanh trong quá trình thu âm
• Bản thu âm chỉ là một ñoạn nhạc nào ñó thuộc bài hát gốc nên các phương pháp tính toán ñặc trưng truyền thống trên bản nhạc thu âm thường cho kết quả là một chuỗi ñặc trưng khác với chuỗi ñặc trưng ñược tính toán trên toàn bộ bài hát gốc
Trang 10• Hệ thống nhận dạng nhạc số cần phải ñáp ứng ñược nhu cầu tìm kiếm trong thực tế là cho kết quả nhanh và chính xác trên một cơ sở dữ liệu gồm hàng trăm nghìn bài hát
Trên cơ sở các nghiên cứu gần ñây của Haitsma và Kaller [10, 11] và Y Ke [5, 6] chúng tôi tiến hành xây dựng một hệ thống nhận dạng nhạc số dựa trên chuỗi ñặt trưng âm thanh có tính ứng dụng trong thực tế sử dụng phương pháp trính rút ñặc trưng cửa sổ gối kết hợp học máy Bên cạnh ñó, luận văn tiến tới xây dựng một bộ dữ liệu huấn luyện cho kết quả tìm kiếm với ñộ chính xác cao và một
cơ sở dữ liệu meta-dada/fingerprint dựa trên hệ quản trị cơ sở dữ liệu PostgreSQL, ñồng thời luận văn kết hợp xây dựng các hàm mở rộng bằng ngôn ngữ C trong PostgreSQL ñể có thể tìm kiếm bài hát bằng các truy vấn SQL ñơn giản
Luận văn này gồm ba chương, nội dung ñược mô tả như dưới ñây:
Chương 1 Chuỗi ñặc trưng âm thanh và ứng dụng trong tìm kiếm nhạc số giới
thiệu về chuỗi ñặc trưng âm thành và các ứng dụng của nó, hệ thống nhận dạng âm thanh của Haitsma [10, 11] và Y Ke [5, 6]
Chương 2 Hệ quản trị cơ sở dữ liệu PostgreSQL trình bày về hệ quản trị cơ sở
dữ liệu PostgreSQL và cách viết hàm mở rộng bằng ngôn ngữ C trong PostgreSQL
Chương 3 Xây dựng và thử nghiệm hệ thống tìm kiếm nhạc số mô tả việc xây
dựng, thử nghiệm hệ thống và các kết quả ñạt ñược
Phần kết luận tổng kết và tóm tắt nội dung chính của luận văn
Trang 11cơ sở dữ liệu âm thanh
Chuỗi ñặc trưng có nhiều ứng dụng, trong ñó có thể kể ñến: nhận dạng các bài hát, các bản thu âm, quảng cáo; giám sát phát thanh; quản lý thư viện hiệu ứng
âm thanh, nhận dạng video … Chính vì vậy, chuỗi ñặc trưng ñã trở thành ñối tượng nghiên cứu ñược quan tâm, ñồng thời các ứng dụng của chuỗi ñặc trưng ngày càng phong phú
Chuỗi ñặc trưng, như ñã nói ở trên, là một bản tóm tắt của một chuỗi tín hiệu
âm thanh Như vậy, ñể có ñược chuỗi ñặc trưng của một chuỗi âm thanh, ta cần xây dựng một hàm ánh xạ một chuỗi bít vào một chuỗi bít có ñộ dài nhỏ hơn Thay vì so sánh mức ñộ tương tự giữa 2 chuỗi bít (tín hiệu âm thanh) và
, chúng ta so sánh mức ñộ tương tự của hai chuỗi ñặc trưng tương ứng và
Trong thực tế, một phiên bản chất lượng CD gốc của bài hát “Rolling Stones – Angie” và một phiên bản mp3 120Kb/s ñược cảm nhận là giống nhau với hệ thống thính giác của con người, tuy nhiên biểu diễn sóng của chúng có thể rất khác nhau Vì thế, việc so sánh và không phải sự so sánh bằng nhau tuyệt ñối về mặt toán học mà là sự so sánh có tính cảm quan
Trang 12Chúng ta cần có một số tiêu chí ñể ñánh giá hàm nói trên Sau ñây là một
số tiêu chí thường ñược sử dụng:
• Tính bền vững (robustness): Chuỗi ñặc trưng phải ít thay ñổi khi tín
hiệu âm thanh bị suy giảm hoặc tín hiệu âm thanh bị nhiễu, bị méo … Tính chất này làm tăng ñộ tin cậy khi nhận dạng âm thanh trong môi trường thực, có nhiễu và tập âm hoặc biên ñộ tín hiệu nhỏ ðể ñạt ñược tính bền vững cao, các fingerprint ñược trích chọn cần dựa trên các ñặc trưng cảm quan, ít bị thay ñổi với các loại nhiễu của tín hiệu Tỉ lệ sai âm (false negative rate) – xảy ra khi các phiên bản chất lượng khác nhau của cùng một bài hát ñược nhận ñịnh là khác nhau – thường ñược sử dụng ñể
ño ñộ bền vững
• Tính tin cậy (reliability): Chuỗi ñặc trưng cho khả năng nhận dạng ñúng
trong nhiều trường hợp Tỉ lệ sai dương (false negave rate) – xảy ra khi hệ thống nhận dạng bản nhạc sai – ñược dùng ñể ño ñộ tin cậy
• ðộ lớn của chuỗi ñặc trưng: Số lượng bít của chuỗi ñặc trưng nhỏ giúp
cho tốc ñộ tìm kiếm ñược cải thiện và giảm dung lượng lưu trữ
• ðộ mịn (granularity): ðộ dài tối thiểu của chuỗi âm thanh (theo ñơn vị
thời gian) ñể có thể nhận dạng Hiện nay, một số thuật toán chỉ cần chuỗi tín hiệu âm thanh có ñộ dài từ 15 ñến 30 giây ñể tính chuỗi ñặc trưng
• Tốc ñộ tìm kiếm và khả năng mở rộng: ðây là các yếu tố quan trọng
khi tìm kiếm âm thanh trong các cơ sở dữ liệu lớn Tốc ñộ tìm kiếm (search speed) và khả năng mở rộng ñược (scalability) là hai yếu tố ñược quan tâm hàng ñầu trong việc triển khai các hệ thống tìm kiếm âm thanh
1.2 Một số ứng dụng của chuỗi ñặc trưng
1.2.1 Giám sát phát thanh
Trang 13Giám sát phát thanh (broadcast monitoring) là một ứng dụng quan trọng của chuỗi ñặc trưng Trong giám sát phát thanh truyền thống, cơ quan giám sát có các nhân viên theo dõi trên các kênh phát thanh và so sánh với chương trình phát ñể phát hiện sai sót Các hệ giám sát phát thanh dựa trên chuỗi ñặc trưng thường có 2 loại máy chủ: Máy chủ giám sát và máy chủ trung tâm Máy chủ trung tâm sử dụng các chuỗi ñặc trưng này ñể tìm kiếm trong cơ sở dữ liệu và sinh ra báo cáo
về chương trình phát của các kênh bị giám sát
1.2.2 Các ứng dụng liên thông âm thanh
Các ứng dụng liên thông âm thanh (connected audio) là thuật ngữ chung chỉ các ứng dụng dành cho người dùng có liên quan tới âm thanh/âm nhạc cùng với các thông tin liên quan Một ví dụ ñặc trưng nhất là ứng dụng tìm kiếm bản nhạc qua ñiện thoại di ñộng Người dùng khi nghe một bản nhạc ñược phát qua loa, hoặc ñài phát thanh và muốn biết tên bản nhạc, ca sĩ thể hiện Người này sẽ gọi tới một số ñiện thoại dịch vụ ñể bản nhạc thu qua ñiện thoại ñược truyền tới server chứa cơ sở dữ liệu âm nhạc Server căn cứ vào chuỗi ñặc trưng ñể tìm tên bản nhạc, ca sĩ thể hiện … và gửi kết quả cho người dùng ðây là một bài toán khó vì tín hiệu âm thanh sau nhiều lần truyền ñã bị suy giảm và có nhiều nhiễu
1.2.3 Các bộ lọc trong ứng dụng dùng chung file
Trong các ứng dụng dùng chung file, chuỗi ñặc trưng ñược sử dụng ñể nhận
ra các file âm thanh có bản quyền và không cho người dùng tải về các file này Năm 2001, Napster [4] cài ñặt bộ lọc dựa trên tên file nhưng bộ lọc này hoạt ñộng không hiệu quả bởi vì người dùng thường cố tình ñánh sai tên cho các file có bản quyền mà họ muốn tải về Do ñó vào tháng 5-2001, Napster ñã sử dụng bộ lọc dựa trên chuỗi ñặc trưng của Relatable [2] cho phép phát hiện ra các file có bản quyền ngay cả khi người sử dụng ñánh sai tên file
1.2.4 Tự ñộng tổ chức thư viện âm nhạc
Trang 14Chuỗi ựặc trưng có thể ựược sử dụng vào việc tự ựộng tổ chức thư viện âm nhạc Hiện nay, MP3 là khuôn dạng file thường ựược sử dụng ựể lưu trữ trong các thư viện âm nhạc Các file MP3 ựược tạo ra từ nhiều nguồn khác nhau do ựó siêu
dữ liệu (meta-data) kèm theo như tên tác giả, tác phẩm, người thể hiện, năm thu
âm không ựược ựầy ựủ và nhất quán Khi ựó, chuỗi ựặc trưng ựược sử dụng ựể hoàn thiện các thông tin này
1.2.5 Một số ứng dụng khác
Chuỗi ựặc trưng còn có rất nhiều ứng dụng khác trong thực tiễn Chuỗi ựặc trưng có thể ựược sử dụng trong các ứng dụng về truyền hình có tương tác mà không cần sử dụng thêm các thiết bị ựặc biệt, hoặc tự ựộng phát hiện và thay thế các ựoạn quảng cáo Khác biệt so với các công nghệ khác, chuỗi ựặc trưng hướng tới các ứng dụng ựa phương tiện với các mục tiêu chắnh là nhận dạng các ựối tượng mà không cần ựến các thông tin siêu dữ liệu như meta-data, watermark
1.3 Các phương pháp xác ựịnh chuỗi ựặc trưng
Nguyên tắc chung cho việc xác ựịnh chuỗi ựặc trưng là trắch rút các ựặc trưng
từ chuỗi tắn hiệu âm thanh Các ựặc trưng của một bản nhạc thường ựược chia thành hai loại chắnh: ựặc trưng ngữ nghĩa và ựặc trưng phi ngữ nghĩa
Các ựặc trưng ngữ nghĩa thường có tắnh trực quan Chẳng hạn các ựặc trưng thể loại (genre) âm nhạc, số nhịp trong một phút (beats per minute - bpm), ựiệu tắnh (mood) là các ựặc trưng ngữ nghĩa Do các ựặc trưng loại này ắt mang tắnh toán học, nên thường không ựược sử dụng ựể xác ựịnh chuỗi ựặc trưng vì nó cho kết quả không chắnh xác và ắt nhiều gắn với quan ựiểm cá nhân (chẳng hạn ựặc trưng về thể loại) Bởi vậy, người ta thường tập trung vào việc phân tắch các thuật toán, phương pháp xác ựịnh chuỗi ựặc trưng dựa trên các ựặc trưng phi ngữ nghĩa Hiện nay có bốn phương pháp chắnh ựể xác ựịnh chuỗi ựặc trưng dựa vào ựặc trưng phi ngữ nghĩa đó là các phương pháp: cửa sổ gối của Haitsma[10, 11],
Trang 15phương pháp của Y Ke [5, 6] dựa trên cửa sổ gối kết hợp với học máy, phương pháp phân tích biệt số méo của tín hiệu DDA [9] và phương pháp dựa trên wavelet kết hợp với các kỹ thuật thị giác máy (computer vision) [8] Sau ñây là ý tưởng chính của từng phương pháp
1.3.1 Phương pháp cửa sổ gối
Cửa sổ gối (overlay window) là phương pháp xác ñịnh chuỗi ñặc trưng phổ dụng nhất Phương pháp này sử dụng các cửa sổ gối nhau của chuỗi tín hiệu âm thanh ñể trích rút các ñặc trưng [11] Cửa sổ gối ñược sử dụng ñể duy trì tính bất biến của hệ số dịch thời gian (time-shift) trong các trường hợp chúng ta không thể
so sánh theo kiểu căn thời gian Do các frame gối nhau nên các chuỗi ñặc trưng biến ñổi chậm theo thời gian Khi ñó việc so sánh ñộ tương tự giữa hai bản nhạc sẽ quy về so sánh các chuỗi ñặc trưng con Việc so sánh các chuỗi ñặc trưng này là khá ñơn giản khi dựa vào tính khoảng cách Hamming giữa các chuỗi ñặc trưng con tương ứng Ưu ñiểm của phương pháp này là tính ñơn giản và tốc ñộ tính toán cao
ðể sử dụng phương pháp cửa sổ gối, tín hiệu âm thanh trước tiên ñược chia thành các frame gối nhau Một tập các ñặc trưng ñược tính toán trên mỗi frame này Các ñặc trưng cần ñược chọn sao cho nó ít thay ñổi với các loại nhiễu tín hiệu Các ñặc trưng này thường là hệ số Fourier (Fourier coefficients) [16], Mel-Frequency Cepstral Coefficients (MFCC) [17], ñộ mịn quang phổ (spectral flatness) [15] hay hệ số Linear Predictive Coding (LPC) [15] ðặc trưng tính toán trên mỗi frame ñược gọi là một sub-fingerprint Một sub-fingerprint thường không
có ñầy ñủ thông tin cho phép nhận dạng bản nhạc, ñơn vị cơ sở cho nhận dạng là các khối ñặc trưng (fingerprint block)
Trang 16Hình 1.1Mô hình trích chọn fingerprint của Haitsma
Mô hình trích chọn ñặc trưng của Haitsma và các cộng sự [10, 11] dựa trên cách tiếp cận trên Theo ñó, 32 bit sub-fingerprint ñược tính toán cho mỗi khoảng 11,6 mili giây Một fingerprint block bao gồm 256 sub-fingerprint nối tiếp, tương ứng với ñộ mịn (granularity) 3 giây Như vậy, trong trường hợp xấu nhất, một sub-fingerprint của bản nhạc thu âm và sub-fingerprint tương ứng trong cơ sở dữ liệu
có thể sai lệch nhau tối ña 5,8 mili giây
Bởi vì những ñặc trưng âm thanh cảm quan quan trọng nhất nằm trong miền tần số nên biểu diễn phổ ñược tính toán bởi biến ñổi Fourier trên mỗi frame Do ñộ nhạy về pha của biến ñổi Fourier với các biên khác nhau trên mỗi frame và do thực tế là hệ thống thính giác của con người (Human Auditory System - HAS) không cảm nhận ñược sự thay ñổi pha nên chỉ những giá trị dương của quang phổ, chẳng hạn như mật ñộ phổ ñược giữ lại ðể tính toán ñược một giá trị 32 bit sub-fingerprint cho mỗi frame, một dải gồm 33 miền tần số không trùng lặp ñã ñược Haitsma lựa chọn Dải tần số này nằm trên miền tần số từ 300 Hz ñến 2000 Hz (miền tần số thích hợp ñối với HAS) và có ñộ dộng ñều nhau Thực nghiệm ñã chỉ
ra rằng sự khác nhau về dấu của năng lượng (theo trục thời gian và tần số) có tính
Trang 17bền vững với mọi loại biến ñổi của tín hiệu Nếu ta ký hiệu năng lượng của miền tần số
frame
Hình 1.2 (a) fingerprint block của bài hát gốc, (b) fingerprint block
của bài hát sau khi ñã bị nén, (c) sự khác nhau giữa (a) và (b) thể hiện trên số bít lỗi màu ñen (BER=0,078)
Hình 1.2 ñưa ra ví dụ về biểu diễn của một khối fingerprint (bao gồm 256 sub-fingerprint) của bài hát “O Fortuna” thể hiện bởi Carl Orff ñược trích chọn dựa theo mô hình của Haitsma Các ñiểm ảnh màu trắng tương ứng với các bit , trong khi ñó các ñiểm ảnh màu ñen tương ứng với các bit Hình 1.2a và 1.2b tương ứng là biểu diễn khối fingerprint của cùng một trích ñoạn từ hai phiên bản nhạc gốc và phiên bản mp3 (32 Kbps) Trong trường hợp lý tưởng, hai hình 1.2a
và 1.2b sẽ giống hệt nhau, tuy nhiên, do ñã bị nén nên một số bit sẽ cho kết quả sai
Trang 18lệch Những bit lỗi này ñược sử dụng như là ñộ ño sự tương tự của mô hình trích chọn và ñược thể hiện là các ñiểm ảnh màu ñen trong hình 1.2c
1.3.2 Phương pháp cửa sổ gối kết hợp học máy
Phương pháp thứ hai ñược ñưa ra gần ñây, ñược xem là mở rộng của cửa sổ gối Y Ke và các cộng sự [5, 6] sử dụng nền tảng tương tự như J Haitsma [10, 11] nhưng có thêm tính năng học máy khi xác ñịnh các ñặc trưng Một ñặc ñiểm quan trọng nữa là Y Ke ñã biểu diễn tín hiệu âm thanh 1-D như một ảnh số khi biểu diễn trong không gian hai chiều với các trục thời gian–tần số
Kỹ thuật học máy Y Ke sử dụng là AdaBoost, là một kỹ thuật khá phổ biến trong các ứng dụng về thị giác máy, chẳng hạn như phát hiện mặt người trong ảnh [13] Y Ke và các cộng sự sử dụng AdaBoost cho phép hệ thống của mình học các ñặc trưng về năng lượng trên một số tần số chọn lọc theo thời gian ðộ dài và tần
số ñược chọn thông qua thuật toán AdaBoost, kết quả là có 32 ñặc trưng ñược lựa chọn, từ ñó tạo ñược chuỗi ñặc trưng con tương ứng có ñộ dài 32 bit Khi có yêu cầu tìm kiếm bản nhạc, hệ thống của Y Ke trước hết xử lý dữ liệu âm thanh vào tương tự như [10, 11] ñể tạo chuỗi ñặc trưng con Sau ñó, hệ thống tính khoảng cách Hamming giữa các chuỗi ñặc trưng con ñể tìm ñộ tương tự Hệ thống này sẽ ñược ñề cập kỹ hơn trong mục 1.4 của chương
1.3.3 Phương pháp DDA (Distortion Discriminant Analysis)
Phương pháp dựa trên DDA [9] (Distortion Discriminant Analysis) hay còn gọi là biệt số méo của tín hiệu là phương pháp trích rút ñặc trưng ñược xem như bền vững với nhiễu Các ñặc trưng ñược xác ñịnh bởi DDA thường phức tạp hơn các ñặc trưng ñược ñưa ra trong các bài báo của J Haitsma [10, 11] và Y Ke [5, 6] nhưng lại cho phép tính ñược các chuỗi ñặc trưng của các chuỗi tín hiệu dài hơn các phương pháp khác DDA ñược dựa trên một biến thể của phương pháp LDA
Trang 19(Linear Discriminant Analysis) ñược gọi là Oriented Principal Components Analysis (OPCA)
OPCA giả thiết có một phiên bản tín hiệu bị méo của các mẫu huấn luyện ñể
từ ñó tìm ra các ñặc trưng ít bị biến ñổi khi thực hiện bước tiền xử lý tín hiệu ñể làm giảm nhiễu ñến mức tối thiểu và tăng tối ña mức tín hiệu Ngược lại, phương pháp PCA (Principal Components Analysis) tìm tập các vector trực giao ñể tăng tối ña sự biến ñổi của tín hiệu Như vậy, OPCA tìm ñược tập các vector không trực giao có thể dùng ñể tính toán nhiễu Thực nghiệm của Burges và các cộng sự [9] cho thấy chuỗi ñặc trưng xác ñịnh bằng phương pháp DDA ít bị biến ñổi với vấn
ñề căn thời gian và quan trọng hơn là ít bị biến ñổi với các loại nhiễu không có trong dữ liệu huấn luyện
1.3.4 Phương pháp dựa trên wavelet
Phương pháp này do các tác giả S Baluja và M Covell (Google Inc.) phát triển [8, 12] dựa trên tiếp cận của Y Ke [5, 6]: áp dụng các kỹ thuật trong lĩnh vực thị giác máy vào việc xây dựng chuỗi ñặc trưng và tiếp cận dựa trên wavelet của
C Jacob [18] Phương pháp này không sử dụng kỹ thuật học máy mà dùng biến ñổi wavelet ñể tăng tốc ñộ tìm kiếm trong cơ sở dữ liệu ña phương tiện lớn Chuỗi ñặc trưng do S Baluja và M Covell ñề xuất dựa trên công trình của J Haitsma [10, 11] nhưng có cải tiến nâng cao ñể có thể ñại diện cho mẫu tín hiệu âm thanh
có ñộ dài lớn hơn
Shumeet Baluja và cộng sự [7, 8] cũng bắt ñầu quá trình tính toán ñặc trưng bằng việc biến ñổi tín hiệu âm thanh thành một ảnh phổ Từ các ảnh quang phổ này, Baluja chọn ra các Haar-wavelet tốt nhất theo cường ñộ giống như hệ thống xác thực ảnh ñược ñưa ra trong [18] Trong nghiên cứu của mình, thay vì so sánh ảnh trực tiếp dựa vào khoảng cách của ñiểm ảnh, Jacob và các cộng sự [18] ñã phân tách ảnh dựa vào các Haar-wavelet ña phân giải Trên cơ sở ñó, Shumeet Baluja tính toán một ñặc trưng waveletcho mỗi ảnh phổ Bản thân tập các wavelet
Trang 20này không có ñặc tính bất biến với tiếng ồn hay các biến ñổi âm thanh, vì vậy, ñể giảm ảnh hưởng của nhiễu trong khi vẫn giữ lại những ñặc trưng quan trọng của ảnh, Shumeet lựa chọ ra một tập bao gồm wavelet (theo ñộ lớn) và loại bỏ phần còn lại Trong hình 1.3, khi nhìn vào các biểu diễn wavelet của các ảnh phổ kế tiếp nhau, chúng ta dễ dàng phân biệt ñược những ảnh phổ này, ñặc biệt khi wavelet tốt nhất ñược giữ lại Bên cạnh ñó, thực nghiệm chỉ ra rằng sau khi giữ lại wavelet tốt nhất, ñặc trưng về ñộ lớn của wavelet không quan trọng bằng ñặc trưng
về dấu của nó nên chỉ những giá trị về dấu của wavetlet ñược tính ñến trong biểu diễn ảnh phổ
Hình 1.3 Biểu diễn của 4 ảnh phổ liên tiếp của 2 bài hát khác nhau Với mỗi bài hát, dòng ñầu: ảnh phổ ban ñầu, dòng thứ hai: ñộ lớn wavelet, dòng thứ ba: 200 wavelet ñầu tiên
1.4 Ứng dụng của kỹ thuật thị giác máy cho bài toán nhận dạng
nhạc số
Trang 21Kỹ thuật tính toán chuỗi ñặc trưng dựa trên cửa sổ gối kết hợp học máy của Yanke [5, 6] xem xét ảnh phổ của mỗi bài hát như là một ảnh 2-D; trên cơ sở ñó, chuyển ñổi từ bài toán nhận dạng âm nhạc (music identification) sang bài toán khôi phục ảnh gốc (sub-image retrieval) Bằng cách áp dụng thuật toán boosting theo cặp (pairwise boosting) trên một tập các thuộc tính Viola-Jones [13], hệ thống của Y Ke học ñược một tập các ñặc trưng cho phép ñánh chỉ mục hiệu quả Trong quá trình nhận dạng, từ một bản thu âm ngắn của bài hát gốc (song snippet), hệ thống áp dụng thuật toán xác thực hình học kết hợp với mô hình kỳ vọng cực ñại (EM) ñể ñịnh danh ñược bài hát gốc của bản nhạc này Hệ thống mà Y Ke xây dựng có khả năng nhận dạng nhanh chóng và chính xác bài hát gốc từ một bản thu
âm tương ñối ngắn trong ñiều kiện thiết bị ghi âm không tốt và có nhiều tiếng ồn
1.4.1 Biểu diễn bài hát dưới dạng một spectrogram
Khi nhận ñược một bản nhạc thu âm ñã bị nhiễu, người ta mong muốn rằng
hệ thống bằng cách nào ñó sẽ tìm ra ñược bài hát tương ứng trong một cơ sở dữ liệu lớn các meta-data/fingerprint một cách nhanh nhất Hệ thống cần phải ñáp ứng các yêu cầu về tính chính xác, về ñộ dài bản nhạc truy vấn và tốc ñộ tìm kiếm Tính chính xác yêu cầu hệ thống phải có khả năng phân biệt giữa các bài hát tương
tự nhau bởi vì trong thực tế, một bài hát ñược phát qua bộ phát chất lượng không cao, ghi âm sử dụng microphone tích hợp sẵn sẽ rất khác so với chính bài hát ñó ñược phát qua một loa có chất lượng cao và ñược ghi bởi một microphone chất lượng tốt Bên cạnh ñó, việc mỗi bản nhạc truy vấn có thể có ñộ dài tùy ý và bắt ñầu tại một vị trí bất kỳ thuộc bài hát gốc cũng ñặt ra cho hệ thống các yêu cầu về tính cục bộ với sự dịch chuyển thời gian Hệ thống cũng cần có khả năng ñánh chỉ mục hiệu quả ñể có thể tìm kiếm cho kết quả nhanh và chính xác trên một cơ sở dữ liệu gồm hàng nghìn bài hát
Trong thực tế, các tín hiệu âm thanh 1-D nguyên bản sẽ thay ñổi rất nhiều khi
bị nhiễu và các hệ thống thường khó tính toán ñược các ñặc trưng Y Ke sử dụng
Trang 22cách tiếp cận chuyển ñổi các tín hiệu âm thanh thành các ảnh 2-D theo tần số (gọi
là ảnh phổ - spectrogram) sử dụng phương pháp biến ñổi Fourier ngắn (short-term Fourier transform) [11] Với các spectrogram này, người ta dễ dàng nhận thấy ñược sự tương tự giữa các phiên bản khác nhau của cùng một bài hát ngay cả khi tín hiệu gốc ñã bị biến ñổi Trong hình 1.4, các snippet có ñộ dài 10 giây của 3 bài hát: melloncamp bản gốc, waterworld, melloncamp bản thu âm ñược biểu diễn theo biên ñộ, tần số và mã nhị phân Ta dễ dàng nhận ra ñược sự giống nhau giữa hai phiên bản melloncamp và khác nhau giữa melloncamp và waterworld khi chúng ñược biểu diễn theo tần số và mã nhị phân
Hình 1 4 Biểu diễn âm thanh theo biên ñộ, tần số và mã nhị phân
Mặc dù việc chuyển ñổi từ tín hiệu âm thanh theo miền thời gian sang các spectrogram cho phép dễ dàng nhận biết sự giống và khác nhau giữa các tín hiệu
âm thanh, việc so sánh dựa trên sự tương tự rất chậm và cho kết quả không chính xác Y Ke ñã ñề xuất cho hệ thống học một tập các bộ lọc (filter) cho phép chỉ giữ lại các thông tin cần thiết ñối với mỗi bài hát mà vẫn ñủ ñể phân biệt giữa các bài hát khác nhau Thay vì cố gắng xây dựng thủ công tập các filter này, Y Ke ñịnh nghĩa một lớp các mẫu lọc (candidate filters) và áp dụng kỹ thuật học máy trên lớp
Trang 23này ñể ñưa ra ñược một tập con các mẫu lọc phù hợp nhất Tập các mẫu lọc ñưa ra bởi Viola và Jones [13] ñược Y Ke sử dụng khi xây dựng các mẫu lọc cho hệ thống của mình
Hình 1 5Các ñặc trưng hình chữ nhật ñược biểu diễn trong
mối quan hệ với các cửa sổ tìm kiếm bao xung quanh
Cụ thể hơn, các tác giả ñã sử dụng 3 loại ñặc trưng như hình 1.5 ðộ lớn của một ñặc trưng có hai hình chữ nhật là sự khác nhau giữa tổng của các ñiểm ảnh trong hai hình chữ nhật Hai hình chữ nhật này có kích thước bằng nhau và nằm kề nhau theo trục tung hoặc trục hoành Tương tự, giá trị của ñặc trưng có ba hình chữ nhật là tổng của các ñiểm ảnh bên trong hình chữ nhật trung tâm trừ ñi tổng của các ñiểm ảnh nằm trong hai hình chữ nhật bên ngoài ðặc trưng có bốn hình chữ nhật sẽ tính toán sự khác nhau về ñộ lớn ñiểm ảnh giữ hai cặp hình chữ nhật chéo nhau
Các ñặc trưng hình chữ nhật này sẽ ñược tính toán nhanh chóng bằng cách sử dụng phương pháp biểu diễn cho ảnh gọi là “intergral image” Theo ñó, intergral image ở vị trí là tổng số các ñiểm ảnh ở trên và bên trái của :
Trang 24image sẽ ñược tính toán hiệu quả
Trong hệ thống của Y Ke, mỗi bộ lọc có thể thay ñổi theo dải tần số từ 1 tới
33, theo dải thời gian từ 1 frame (11.6 ms) tới 82 frame (951 ms), cho kết quả là
có khoảng 25000 bộ lọc ban ñầu Từ tập hợp các filter này, Y Ke chọn ra M filter tiêu biểu nhất (M ñược chọn bằng 32) và ngưỡng tương ứng ñể tạo ra một véc tơ
M bit – gọi là một ñặc trưng (sub-fingerprint, descriptor) Tuy nhiên, mỗi ñặc trưng này không có ñầy ñủ các thông tin cần thiết cho phép xác ñịnh chính xác bài hát gốc từ truy vấn trong một cơ sở dữ liệu gồm hàng trăm nghìn bài hát, mà các signature (là tập các ñặc trưng kế tiếp nhau) mới là ñơn vị cơ bản cho so sánh và tìm kiếm
1.4.2 Tính toán ñặc trưng bởi thuật toán Boosting theo cặp (pairware
boosting)
Khi xây dựng ñặc trưng cho mỗi bài hát cần ñảm bảo rằng các bản nhạc từ cùng một bài hát sẽ tạo ra những ñặc trưng tương tự, trong khi ñó các bản nhạc từ các bài hát khác nhau sẽ cho ñặc trưng khác nhau Nói cách khác, hệ thống cần phải học ñược một phân lớp ' và là hai ảnh phổ bất kỳ và nhãn chỉ ra rằng hai ảnh phổ ñó là thuộc về cùng một bài hát gốc
Trang 25xây dựng ñặc trưng trong bài toán nhận dạng ñối tượng – Adaboost ñược Y Ke sử dụng và thay ñổi ñể xây dựng tập các bộ lọc của mình Mỗi bộ phân lớp (classifier) bao gồm , phân lớp yếu (weak classifier), -.
/. Một weak classifier lại bao gồm một bộ lọc . và ngưỡng ., với
-. . . . .
mẫu tạo ra các giá trị tương ứng ñược tính toán bởi bộ lọc ở cùng phía với ngưỡng,
nó ñược gán nhãn là nằm tại cùng vị trí trong cùng một bản nhạc, ngược lại, nó ñược cho là hai audio snippet khác nhau Công thức gán nhãn mà Y Ke sử dụng khác với thuật toán Adaboost truyền thống ở chỗ nhãn ñược gán theo cặp của các giá trị lọc Khi mà các mẫu lọc này ñược học bởi hệ thống, một ảnh phổ sẽ ñược chuyển thành một vec tơ , bit, ñiều này cho phép việc ñánh chỉ mục hiệu quả dựa trên thuật toán băm
Cách ñánh trọng số của thuật toán Adaboost nguyên bản cho kết quả không tốt khi áp dụng cho hệ thống trích chọn của Y Ke, bởi vì thông thường không bộ phân lớp nào thực hiện việc gán nhãn cho kết quả tốt hơn trường hợp gán nhãn ngẫu nhiên với những cặp hai mẫu ñược chọn khác nhau Thật vậy, giả sử chúng ta
có mẫu ñược chọn ngẫu nhiên từ tập phân phối 3 , bộ lọc . và ngưỡng . mà
Trang 26như khác nhau ñược tiêu chuẩn hóa sao cho tổng trọng số của chúng bằng một phần hai Thuật toán boosting theo cặp ñược mô tả như sau
9 :N $O A E
từ bản nhạc gốc và bản thu âm có nhiễu của nó) từ các bản nhạc 15 giây trong tập
dữ liệu gồm 71 bài hát và mẫu âm là các bộ ñặc trưng khác nhau từ tập dữ liệu bài hát này Trên cơ sở ñó, Y Ke tiến hành kiểm tra ba kiểu ñặc trưng: ñặc trưng của Haitsma và Kaller [11], kí hiệu là “H-K”, ñặc trưng ñược cải tiến từ “H-K” và ñặc trưng ñược tính bởi thuật toán boosting theo cặp ở trên Bởi vì tất cả các ñặc trưng
Trang 27có ñộ dài giống nhau (32-bits), Y-Ke thay ñổi khoảng cách Hamming từ 0 ñến 32
ñể tạo ra một ñường cong ROC cho mỗi kiểu ñặc trưng, ñược chỉ ra trong hình 1.6 Một cách rõ ràng, Boosted thực hiện việc tính ñặc trưng tốt hơn hẳn H-K trên toàn bộ ñường cong ROC này H-K Wide ñược Y-Ke cải tiến từ H-K bằng cách
mở rộng ñộ rộng của bộ lọc từ 2 frame lên 54 frame cho kết quả tốt hơn hẳn H-K, tuy nhiên, Boosted vẫn là thuật toán tính ñặc trưng hiệu quả nhất
Hình 1 6So sánh phương pháp tính toán ñặc trưng của Yanke
(thuật toán Pairwise Boosting) với thuật toán của Haitsma và
Haitsma cải tiến
1.4.3 Học mô hình tiếng ồn (“Ocllusion Model”) với thuật toán EM
(Expectation Maximization)
Việc tìm kiếm bản nhạc gốc từ các bản thu âm, ñược hệ thống thực hiện dựa trên sự so sánh giữa các signature Sự giống nhau giữa bản nhạc gốc và bản nhạc thu âm ñược giả ñịnh là số bit khác nhau giữa các ñặc trưng tương ứng thuộc hai signature của hai bản nhạc này
Trang 28ðể xác ñịnh xem liệu rằng một ñặc trưng có ñược tạo ra bởi bài hát nào ñó trong cơ sở dữ liệu hay là một dạng nhiễu (occlusion), hệ thống của Y Ke sử dụng một mô hình phụ thuộc tương ñối ñơn giản (hình 1.7) Theo như mô hình này, khả năng một ñặc trưng nào ñó ñược tạo ra bởi các occlusion phụ thuộc vào ñặc trưng trước nó (về mặt thời gian) có ñược tạo ra bởi một occlusion không Cụ thể, với mỗi signature G G GQ 9G G ñược tạo ra
bởi snippet gốc với signature R là:
4GSR GER
:GER
9 :A S : :S:E
:GER biểu diễn số bít khác nhau giữa ñặc trưng của bản nhạc thu âm (:G) và
bản nhạc gốc (:R), : khi ñặc trưng KUV ñược tạo ra bởi tín hiệu gốc, +U trong trường hợp ngược lại Sự khác nhau giữa hai ñặc trưng :GER ; ) *. là
một véc tơ , bit xác ñịnh ñộ chênh lệch về giá trị giữa ñặc trưng của bản nhạc gốc
và ñặc trưng của bản nhạc ñược thu âm Nếu chúng ta mô hình hóa sự phân bố của
GER như một biến ngẫu nhiên Beroulli ñộc lập, vì , W& nên chúng ta có XX tham số cần ước lượng: W& tham số cho mỗi 4:GERS: :GERS:
một tham số chuyển cho mỗi 4:S:E :S:E
liệu huấn luyện, ta không biết ñược một ñặc trưng nào ñó có thuộc về bài hát trong
cơ sở dữ liệu hay không, chúng ta cần một mô hình ñể ước lượng ñồng thời nhãn của : và các tham số khác nên thuật toán EM là lựa chọn thích hợp
Thuật toán học bán giám sát kỳ vọng cực ñại (EM) thuộc loại thuật toán trong mô hình sinh Mô hình hoạt ñộng dựa trên giả thiết Bayes
liệu ñược phân thành các thành phần mà trong trường hợp lý tưởng, trong mô hình ñồng nhất, mọi ñối tượng trong một thành phần cùng chung một nhãn, vì vậy chỉ cần biết nhãn của một ñối tượng nào ñó trong thành phần là kết luận ñược nhãn toàn bộ các ñối tượng trong thành phần ñó
Trang 29Áp dụng với hệ thống nhận dạng nhạc số, với mỗi signature truy vấn G, hệ
thống sẽ tìm kiếm một signature R cực ñại hóa 4GSR
ñó, hệ thống quyết ñịnh xem hai signature ñó có tương tự không theo công thức sau: 4GSR
Hình 1 7 Mô hình phụ thuộc ñơn giản ñược giả lập bởi hệ thống
sử dụng thuật toán băm LSH (Locality-Sensitive Hashing) [19], kỹ thuật cho phép các tìm kiếm tương tự xấp xỉ trong thời gian tuyến tính, ñặc biệt kỹ thuật này phù hợp với các tiêu chuẩn của khoảng cách Hamming Những thử nghiệm ban ñầu với LSH chỉ ra rằng các ñặc trưng ñược tính toán bởi hệ thống rất bền vững nên việc ñánh chỉ mục trực tiếp sử dụng các bảng băm truyền thống giúp giảm ñáng kể thời gian tìm kiếm mà không ảnh hưởng ñến ñộ chính xác tìm kiếm Cách tiếp cận ñánh chỉ mục cho các ñặc trưng ñược mô tả như dưới ñây
Tất cả các signature sẽ ñược băm thành một bảng băm chuẩn (khóa là ñặc trưng M-bit với M ñược chọn là 32) Những ñặc trưng trong khoảng cách
Trang 30Hamming là 2 với ñặc trưng truy vấn ñược gọi là một hàng xóm gần neighbor) và ñược ñưa ra bởi quá trình thăm dò toàn bộ ðầu tiên, hệ thống sẽ tìm trong bảng băm tất cả những ñặc trưng có khoảng cách Hamming là 0 với ñặc trưng truy vấn Tiếp theo, hệ thống tiến hành thăm dò M lần với M là các giá trị có thể của ñặc trưng truy vấn khi thay giá trị của một bit nào ñó ñể tìm ra các ñặc trưng với khoảng cách Hamming là 1 Cuối cùng, hệ thống lặp lại quá trình thăm
(near-dò ñể tìm ra các ñặc trưng trong khoảng cách Hamming là 2 Cách tiếp cận này có
vẻ như không hiệu quả, tuy nhiên, thực nghiệm chỉ ra rằng nó cho kết quả nhanh
và chính xác hơn so với LSH bởi vì mỗi lần thăm dò là nhanh và các kết quả nhận ñược chính xác hơn là các kết quả xấp xỉ
Một khi các hàng xóm gần này ñược lựa chọn, chúng ta sẽ có một tập các ứng cử viên cho bản nhạc truy vấn và hệ thống sẽ xác ñịnh bài hát nào phù hợp nhất với tập ñặc trưng truy vấn Thay vì ñơn giản lựa chọn dựa vào số lượng ñặc trưng giống nhau, Y Ke áp dụng phương pháp xác thực hình học ñã ñược sử dụng
ñể nhận dạng ñối tượng dùng ñặc trưng ñịa phương trong [20] Với mỗi bài hát trong tập các ứng cử viên, hệ thống kiểm tra liệu rằng các cặp ñặc trưng tương ứng của bài hát và bản nhạc truy vấn có phù hợp theo thời gian không Công việc này ñược thực hiện khi sử dụng RANSAC [14] ñể lựa chọn ra một tập các dịch chuyển thời gian có thể và ñiểm số EM – khả năng mà signature truy vấn thuộc cùng một bài hát với các signature ñược lựa chọn – như là tiêu chuẩn về khoảng cách Kết quả trả về của hệ thống cho mỗi truy vấn chính là bài hát có ñiểm số EM lớn nhất với ñiều kiện nó phải lớn hơn ngưỡng ñã chọn
1.5 Tổng kết chương
Hệ thống nhận dạng âm nhạc của Y Ke cho kết quả tìm kiếm tương ñối khả quan ñối với các tập dữ liệu kiểm tra Tuy nhiên, hệ thống này gặp khăn khi mở rộng và triển khai trong thực tế vì những lý do sau:
Trang 31• Cơ sở dữ liệu bài hát của hệ thống ñược lưu trữ dưới dạng một file nhị phân có cấu trúc mà không sử dụng một hệ quản trị cơ sở dữ liệu nào Hệ thống sẽ gặp khó khăn khi vận hành với một cơ sở dữ liệu bài hát lớn hơn, bên cạnh ñó các yếu tố như bảo mật, phân quyền và tốc ñộ truy vấn không ñược ñảm bảo do không nhận ñược hỗ trợ từ các hệ quản trị cơ sở dữ liệu hiện ñại
• Cơ sở dữ liệu bài hát của hệ thống dưới dạng file nhị phân có cấu trúc cũng dẫn tới những khó khăn khi chúng ta muốn bổ sung hay thay ñổi một trường thông tin quan trọng cho một bài hát trong cơ sở dữ liệu
• Phần tìm kiếm bản nhạc ñược thực hiện qua các hàm C++, ñòi hỏi người
sử dụng phải hiểu cách lưu trữ dữ liệu của Y Ke thì mới có thể sử dụng lại các hàm này
Do ñó, ñể chuẩn hóa cơ sở dữ liệu và dễ sử dụng, luận văn tiến tới xây dựng các hàm mở rộng C trong PostgreSQL cho phép tìm kiếm bản nhạc bằng các câu truy vấn SQL ñơn giản Hiện nay bên cạch PostgreSQL, một số hệ quản trị cơ sở
dữ liệu khác như MySQL, Oracle cũng cung cấp những tính năng ñể người dùng xây dựng hàm mở rộng, tuy nhiên, trong luận văn này, chúng tôi lựa chọn PostgreSQL bởi vì nó là hệ quản trị cơ sở dữ liệu mã nguồn mở và có nhiều tính năng mở rộng hiện ñại như cho phép người dùng ñịnh nghĩa các kiểu dữ liệu bao gồm cả các kiểu có cấu trúc và các toán tử mới Chương 2 sẽ giới thiệu rõ hơn về
hệ quản trị cơ sở dữ liệu mã nguồn mở PostgreSQL và cách xây dựng hàm mở rộng trong PostgreSQL
Trang 32CHƯƠNG 2
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU POSTGRESQL
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ - ñối tượng relational database management system - ORDBM) dựa trên POSTGRES phiên bản 4.2, ñược phát triển tại Bộ môn Khoa học máy tính, ðại học California, Berkeley POSTGRES ñã phát minh ra rất nhiều khái niệm quan trọng trong các
(object-hệ cơ sở dữ liệu thương mại ngày nay
PostgreSQL là một hệ mã nguồn mở ñược phát triển từ những mã Berkeley ban ñầu, nó cung cấp các chuẩn SQL:2003 và nhiều tính năng hiện ñại khác:
• các truy vấn phức tạp (complex queries)
• khóa ngoại (foreign keys)
• triggers
• views
• toàn vẹn thao tác (transactional integrity)
• ñiều khiển trùng hợp thời gian ña phiên bản (multiversion concurrency control)
Ngoài ra, PostgreSQL có thể ñược mở rộng bởi người sử dụng theo các cách khác nhau, chẳng hạn như thêm mới:
• các kiểu dữ liệu
• các hàm
• các toán tử
• các hàm kết hợp (aggregate functions)
• các phương pháp ñánh chỉ mục (index methods)
• các ngôn ngữ thủ tục (procedural languages)
Trang 33Do đặc tính là hệ mã nguồn mở, PostgreSQL được sử dụng, thay đổi và phân phối miễn phí cho các mục đích khác nhau, từ riêng tư, thương mại đến giáo dục PostgreSQL đã chứng tỏ được tính tin cậy khi sử dụng Mỗi phiên bản mới trước khi phát hành được xem xét một cách cẩn trọng và phiên bản beta phát hành khi đã được kiểm tra tối thiểu trong một tháng Với một cộng đồng sử dụng và truy cập rộng lớn, các lỗi trong khi vận hành cĩ thể được sửa chữa một cách nhanh chĩng
Hiệu năng của PostgreSQL được cải tiến sau mỗi lần phát hành và các tiêu chuẩn mới nhất của nĩ cĩ thể so sánh được với các sản phẩm thương mại khác
2.1 Vắn tắt về lịch sử PostgreSQL
Hệ quản trị cơ sở dữ liệu quan hệ PostgreSQL ban đầu cĩ nguồn gốc từ gĩi POSTGRES được viết tại ðại học California,Berkeley (University of California at Berkeley - UCB) Trong khoảng thời gian từ năm 1977 đến năm 1985, một hệ cơ
sở dữ liệu quan hệ tên là Ingres được phát triển tại UCB và trở thành mặt hàng suất khẩu phổ biến của UCB khi xuất hiện ở hầu hết các máy tính UNIX và được
sử dụng trong các hoạt động giảng dạy và nghiên cứu ðể phục vụ cho mục đích thương mại, mã Ingres được tổ chức bởi tập đồn Ingres và trở thành một trong những hệ quản trị cơ sở dữ liệu quan hệ (relational database management system - RDBMS) thương mại đầu tiên
Trong thời gian sau đĩ, tại UCB, các nhà phát triển tiếp tục nghiên cứu một máy chủ cơ sở dữ liệu quan hệ gọi là Postgres từ năm 1986 đến năm 1994 Trong khoảng thời gian của năm 1994, các đặc tính SQL được thêm vào Postgres và tên của nĩ được đổi thành Postgres95
ðến năm 1996, Postgres bắt đầu trở nên nổi tiếng và trải qua lần đổi tên cuối cùng bằng việc bỏ nhãn 95 để thay bằng nhãn SQL thích hợp hơn, để chỉ rõ rằng Postgres đã được viết theo chuẩn ngơn ngữ truy vấn PostgreSQL ra đời từ đĩ
...Việc tìm kiếm nhạc gốc từ thu âm, ñược hệ thống thực dựa so sánh signature Sự giống nhạc gốc nhạc thu âm ñược giả ñịnh số bit khác ñặc trưng tương ứng thuộc hai signature hai nhạc