Tìm kiếm âm nhạc theo giai điệu và một số hệ thống ứng dụng
Tóm tắt (ĐHVH) - Việc truy vấn âm nhạc theo cách sử dụng công cụ tìm kiếm bằng mô tả hoặc dùng từ khóa trên các dịch vụ tìm kiếm như Google, Yahoo, Bing,… hiện nay là chủ yếu và được sử dụng phổ biến. Tuy nhiên, phương pháp này có hạn chế nhất định do bản chất dữ liệu âm nhạc là giai ...
Tóm tắt
(ĐHVH) - Việc truy vấn âm nhạc theo cách sử dụng công cụ tìm kiếm bằng mô tả hoặc dùng từ khóa trên các dịch vụ tìm kiếm như Google, Yahoo, Bing,… hiện nay là chủ yếu và được sử dụng phổ biến. Tuy nhiên, phương pháp này có hạn chế nhất định do bản chất dữ liệu âm nhạc là giai điệu nên khó có thể diễn tả bằng từ khóa như dữ liệu văn bản thuần túy. Mặt khác, con người có khả năng nhớ và nhận biết giai điệu âm nhạc tốt hơn so với các thông tin khác liên quan như tên tác giả, ca sĩ, hay lời bài hát,… Do đó, phương pháp tìm kiếm âm nhạc theo giai điệu được coi là một giải pháp truy vấn thích hợp và tự nhiên hơn, có thể thay thế cho các nhược điểm của phương pháp tìm kiếm theo từ khóa. Bài viết sau đây giới thiệu về phương pháp tìm kiếm âm nhạc theo giai điệu và một số hệ thống ứng dụng tìm kiếm âm nhạc sử dụng phương pháp này trên mạng Internet hiện nay.
1. Phương pháp biểu diễn và tìm kiếm âm nhạc có cấu trúc
Âm nhạc có cấu trúc được mô tả bằng các giải thuật hoặc tập hợp lệnh. Hầu hết âm nhạc có cấu trúc đều là MIDI (Musical Instrument Digital Interface). MIDI được xem như một giải pháp nhằm chuẩn hóa các giao diện số trong âm nhạc. Bắt đầu từ những năm 1980, khi các công ty sản xuất âm nhạc điện tử có các hệ thống riêng để liên kết âm nhạc của họ nhưng không hỗ trợ cho các hệ thống khác. Vì vậy, Hiệp hội các chuyên gia âm thanh đã giới thiệu và phát triển một chuẩn chung vào năm 1983, cung cấp đặc tả chung cho cả dữ liệu và phần cứng.
MIDI là một cách để truyền âm nhạc giữa các thiết bị. Nhờ thiết bị phần cứng đã được chuẩn hóa nên ta có thể dễ dàng kết nối các thiết bị như bàn phím Roland với bộ xử lý Yamaha để chúng có thể hiểu được lẫn nhau.
MIDI là một ngôn ngữ script. Nó "mã hóa" các sự kiện cho các sản phẩm của âm thanh. Ví dụ, một sự kiện MIDI có thể bao gồm các giá trị đối với cao độ của một nút đơn, âm lượng và thời hạn. Cấu trúc âm thanh MPEG-4 là một chuẩn mới đối với cấu trúc âm thanh (nhạc và các hiệu ứng âm thanh).
Chuẩn âm thanh cấu trúc này được phát triển để truyền tải, tổ hợp và sản xuất âm thanh. Nó không được thiết kế cho mục đích chỉ số hóa và truy tìm. Cấu trúc rõ ràng và mô tả các nốt nhạc trong khuôn mẫu này tạo ra tiến trình truy tìm dễ dàng vì không cần trích chọn đặc trưng từ tín hiệu âm thanh.
Âm nhạc cấu trúc và hiệu ứng âm thanh rất phù hợp với loại truy vấn đòi hỏi đối sánh chính xác giữa câu truy vấn và các tệp âm thanh trong cơ sở dữ liệu. Người sử dụng có thể chỉ ra trình tự các nốt nhạc làm câu truy vấn và nó tương đối dễ tìm ra các tệp âm thanh cấu trúc chứa trình tự các nốt nhạc này. Mặc dù có thể tìm ra trình tự các nốt nhạc phù hợp hoàn toàn, nhưng âm thanh sinh ra từ tệp có thể chưa phải là cái mà người sử dụng mong đợi bởi vì cùng các tệp âm thanh cấu trúc có thể phát ra các âm khác nhau trên các thiết bị khác nhau.
Việc tìm kiếm âm nhạc hay hiệu ứng âm thanh tương tự với câu truy vấn trên cơ sở tính tương đồng thay cho đối sánh hoàn toàn là phức tạp ngay cả với âm nhạc cấu trúc và hiệu ứng âm thanh. Vấn đề chính là khó xác định tính tương tự giữa hai trình tự nốt nhạc. Một khả năng là truy tìm âm nhạc trên cơ sở thay đổi độ cao (pitch) của trình tự nốt nhạc. Trong lược đồ được dùng phổ biến, mỗi nốt nhạc (trừ nốt đầu tiên được sử dụng để so sánh) trong câu truy vấn và trong các tệp cơ sở dữ liệu âm thanh được chuyển đổi thành biến đổi độ cao so với nốt nhạc trước đó. Ba giá trị tương ứng thay đổi độ cao là U(up), D (down) và S (similar). Bằng cách này, trình tự các nốt nhạc được đặc trưng bởi trình tự các ký tự. Sau đó nhiệm vụ truy tìm trở thành tiến trình đối sánh xâu. Lược đồ này được đề xuất cho việc truy tìm âm thanh trên cơ sở mẫu trong đó các nốt nhạc phải được nhận biết trước và các thay đổi độ cao phải được theo dõi bằng thuật toán nào đó. Tuy nhiên lược đồ này cũng có thể áp dụng cho truy tìm âm thanh có cấu trúc, trong đó đã có sẵn các nốt nhạc và thay đổi độ cao được dễ dàng thu nhận trên cơ sở scale của nốt nhạc.
2. Kiến trúc hệ thống
Có ba thành phần chính trong một hệ thống phổ biến là: module tính độ cao, cơ sở dữ liệu giai điệu và bộ truy vấn. Việc thực hiện của hệ thống là làm trực tiếp. Các truy vấn được hum thông qua micro, được số hóa và được cung cấp cho module tính độ cao. Cuối cùng, biểu diễn của đường viền của giai điệu đã được hum sẽ được đưa vào bộ truy vấn và bộ truy vấn sẽ đối sánh các giai điệu( melody) với nhau để cho ra kết quả.
Cơ sở dữ liệu của các giai điệu được thu nhận bằng việc xử lí các bài hát MIDI và được lưu trữ trong một cơ sở dữ liệu flat-file. Việc tìm độ cao được tiến hành trong Matlab, bằng các hàm xử lí âm thanh xây dựng sẵn và việc dễ dàng kiểm tra các giải thuật bên trong Matlab. Các truy vấn được hum có thể được lưu trong nhiều định dạng, phụ thuộc vào khả năng xử lí các định dạng âm thanh của Matlab.
* Tính độ cao
Dữ liệu sau khi đưa vào hệ thống sẽ được chuyển đổi thành một dãy các biến đổi tương đối của độ cao. Mỗi một nốt trong tín hiệu đưa vào sẽ được phân lớp thành một trong 3 cách sau: hoặc là tương tự với nốt trước đó, kí hiệu là S; hoặc là cao hơn nốt trước đó, kí hiệu là U; hoặc là thấp hơn nốt trước đó, kí hiệu là D. Bởi vậy, tín hiệu vào được chuyển thành một xâu với các kí tự nằm trong tập {S, U, D}.
Để có thể thực hiện được việc chuyển đổi này, một dãy các độ cao trong giai điệu phải được tách ra và tính. Điều này không thể làm trực tiếp như với âm thanh. Tuy nhiên, vẫn còn tồn tại những cuộc tranh luận đáng kể về việc xác định chính xác xem độ cao là gì. Khái niệm chung của độ cao là: cho một nốt nhạc, độ cao là tần số là được đối sánh hầu như gần nhất với những gì ta nghe được. Việc tiến hành chuyển đổi trong máy tính có thể trở nên rắc rối bởi vì khả năng nghe được âm thanh của con người vẫn còn chưa được tìm hiểu hết. Ví dụ, nếu ta chơi các hòa âm thứ 4, thứ 5 và thứ 6 của một số tần số cơ bản thì ta chắc chắn sẽ nghe tần số cơ bản mà không phải là các hòa âm, thậm chí nghĩ rằng các tần số cơ bản không được biểu diễn. Hiện tượng này lần đầu tiên được khám phá bởi Schouten trong một số nghiên cứu ban đầu được thực hiện từ năm 1938 đến năm 1940. Schouten nghiên cứu về độ cao của sóng âm thanh tuần hoàn được tạo ra từ còi quang học, và tần số cơ sở đạt tối đa là 200Hz. Tuy nhiên, độ cao của âm thanh phức hợp cũng tương tự như trước khi loại bỏ tần số cơ sở đó.
* Cơ sở dữ liệu giai điệu
Nguồn dữ liệu của cơ sở dữ liệu giai điệu được lấy từ các bài hát MIDI và chuyển đổi thành một dãy các biến đổi tương đối của độ cao (ví dụ để biểu diễn một nốt nhạc cao hơn, thấp hơn hoặc tương tự người ta chuyển đổi thành một xâu trong bảng chữ cái {U, D,S} rồi lưu trữ trong một cơ sở dữ liệu flat-file.
* Truy vấn
Các bài hát trong cơ sở dữ liệu được tiền xử lí để có thể chuyển đổi các giai điệu thành các xâu kí tự thuộc {U, D,S} và tín hiệu đầu vào của người dùng đã được chuyển đổi sẽ so sánh với tất cả các bài hát. Việc đối sánh mẫu sử dụng tìm kiếm “mờ” để tính đến các lỗi gây ảnh hưởng đến độ chính xác của các người dùng hum cũng như các lỗi trong việc biểu diễn các bài hát.
Đối với việc tiến hành tìm kiếm với khóa bên trong cơ sở dữ liệu, ta cần một giải thuật đối sánh mẫu tương đối hiệu quả. Việc sử dụng từ “tương đối” có nghĩa là có thể có một số lỗi trong việc đối sánh.
Cơ sở dữ liệu kết hợp với lược đồ tìm kiếm theo khóa. Đối với một câu truy vấn, cơ sở dữ liệu sẽ trả về một danh sách các bài hát mà đối sánh tốt với truy vấn mà không phải là một bài hát đối sánh được tốt nhất. Số lượng bài hát mà cơ sở dữ liệu trả về phụ thuộc vào việc sử dụng dung sai lỗi trong suốt quá trình tìm kiếm. Dung sai lỗi được thiết lập theo một trong hai cách sau: hoặc là một độ đo được định nghĩa bởi người dùng hoặc cơ sở dữ liệu sẽ tự xác định độ đo đó dựa vào một số tiêu chuẩn, ví dụ như chiều dài của khóa. Việc thiết kế này tạo cho người dùng một khả năng để tiến hành các truy vấn, thậm chí nếu như họ không chắc chắn được một số nốt trong giai điệu.
Từ kết quả của truy vấn, người dùng có thể nhận dạng được bài hát yêu thích. Nếu danh sách là quá dài, người dùng cần có một câu truy vấn mới với yêu cầu khắt khe hơn trên kết quả vừa nhận được. Hệ quả của lược đồ này là người dùng có thể nhận dạng được một tập hợp các bài hát chứa cùng một giai điệu.
Tuy nhiên, giải thuật đối sánh mẫu trong dạng hiện tại không phân biệt được một dạng lỗi mà chỉ tính được chúng. Một số dạng lỗi có thể là thông thường hơn những lỗi khác tùy thuộc vào các các âm thanh được hum. Ví dụ như lỗi có khoảng trống là thông thường hơn lỗi về vị trí hay lỗi lặp.
Các đường viền giai điệu của các bài hát nguồn được sinh ra một cách tự động từ các dữ liệu MIDI, điều này là do thuận tiện nhưng không tối ưu. Thông tin chính xác và ít dư thừa đạt được bằng việc đưa thủ công các chủ đề của giai điệu cho các bài hát.
3. Một số hệ thống tìm kiếm âm nhạc theo giai điệu
§ ChoirFish
Tác giả: A. Van Den Berg, S. Groot
Mô tả hệ thống:
ChoirFish là một ứng dụng sử dụng truy vấn theo giọng ngân nga (humming) tạo ra mã Parson tương ứng để đối sánh âm nhạc dựa theo đường viền giai điệu. Giai điệu sau đó được chuyển đổi thành các ký tự {R,D,U}. Trong đó, ký tự R biểu diễn tương tự nốt nhạc trước. Ký tự D biểu diễn nốt nhạc có tần số thấp hơn. Ký tự U biểu diễn nốt nhạc có tần số cao hơn. Ví dụ, một đoạn trong bản giao hưởng số 9 của Beethoven (Ode to Joy) sẽ được chuyển thành các ký tự RUURDDDDRUURDR,… Sau đó, hệ thống sẽ tìm kiếm trong cơ sở dữ liệu và trả về những bài hát có giai điệu tương tự và phù hợp nhất với truy vấn ban đầu [1].
§ CubyHum
Tác giả: S. Pauws
Mô tả hệ thống:
CubyHum sử dụng nhiều thuật toán trong các lĩnh vực khác nhau và kỹ thuật truy vấn theo Humming. Khi người dùng ngân nga giai điệu bài hát cần tìm kiếm thì hệ thống sẽ thực hiện tính toán. Từ đó truy vấn sinh ra một giai điệu MIDI tương ứng và tìm kiếm dữ liệu âm thanh phù hợp với truy vấn của người dùng. Ngoài ra, hệ thống có thể xử lý để điều chỉnh các truy vấn người dùng không hoàn hảo (do ngân nga giai điệu không chính xác hoặc nhiễu…) như hình minh họa dưới đây [2]:
§ Meledex
Tác giả: McNab, Smith, Bainbridge, Witten
Mô tả hệ thống:
Ứng dụng Meledex được thiết kế phù hợp với phần mềm thư viện số Greenstone để thực hiện truy vấn âm nhạc (ngân nga, hát, hoặc chơi nhạc). Bộ lọc âm thanh tạo ra các tần số cơ bản từ truy vấn. Kết quả tìm thấy chuỗi giai điệu gần đúng phù hợp với đường viền dựa trên giai điệu mà người dùng truy vấn hệ thống.
Có ba cách để tìm kiếm thông tin trong ứng dụng này, đó là: tìm kiếm theo giai điệu hoặc từ khoá, tìm kiếm theo tiêu đề hoặc tìm duyệt trong cơ sở dữ liệu [3].
Hình 2. Giao diện Meledex
§ MIDIZ
Tác giả: Maria Cláudia Reis Cavalcanti, Marcelo Trannin Machado, Alessandro de Almeida Castro Cerqueira, Nelson Sampaio Araujo Júnior and Geraldo Xexéo.
Mô tả hệ thống:
MIDIZ bao gồm hai module: chỉ mục và Truy vấn. Module chỉ mục thực hiện nhiệm vụ phân tích các tệp MIDI và tạo ra cây BD-tree kèm theo một danh mục tham chiếu dùng cho các truy vấn bổ sung. Module truy vấn thu nhận giai điệu người dùng, sau đó bắt đầu quá trình tìm kiếm các tệp tương ứng thông qua module chỉ mục [4].
Hình 3. Giao diện chương trình
4. Kết luận
Các ứng dụng tìm kiếm âm nhạc hiện nay cho thấy người dùng có nhiều phương pháp để lựa chọn như tìm kiếm theo từ khóa, mô tả hoặc bằng giai điệu,… Trong đó, truy tìm âm nhạc dựa vào humming là một trong những phương pháp tìm kiếm theo nội dung, được thể hiện thông qua giai điệu của bài hát. Phương pháp này không những cho phép người dùng tìm kiếm bài hát thông qua các ca khúc được phát từ nhiều nguồn khác nhau mà còn cho phép xác định bài hát thông qua giai điệu người dùng ngân nga. Tuy nhiên, mỗi phương pháp nêu trên đều có những điểm mạnh và yếu khác nhau, do đó người dùng cần lựa chọn một ứng dụng tìm kiếm âm nhạc sao cho phù hợp với yêu cầu cụ thể.
TÀI LIỆU THAM KHẢO
[1]. Sven Groot, Arjan van den Berg: “The Singing ChoirfishAn application for Tune Recognition”
http://www.ookii.org/olduniversity/speech/ChoirFish.pdf
[2]. Steffen Pauws: “CubyHum: A Fully Operational Query by Humming System”
http://www.ismir2002.ismir.net/proceedings/02-FP06-2.pdf
[3]. David Bainbridge, Michael Dewsnip, and Ian H. Witten: “Searching digital music libraries”
http://www.cs.waikato.ac.nz/~ihw/papers/05-DB-MD-IW-SearchDLmusic.pdf
[4]. Maria Cláudia Reis Cavalcanti, Marcelo Trannin Machado, Alessandro de Almeida Castro Cerqueira, Nelson Sampaio Araujo Júnior and Geraldo Xexéo: “MIDIZ1: content based indexing and retrieving MIDI files”
http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0104-65001999000300002
[5]. Amanda Cohen: “Music information retrieval systems”
http://coitweb.uncc.edu/~ras/courses/CS-Amanda.ppt
[6]. Takuichi Nishimura, Hiroki Hashiguchi, Junko Takita, J. Xin Zhang, Ryuichi Oka: “Music Signal Spotting Retrieval by Humming Query Using Model Driven Path Continuous Dynamic Programming”.
[7]. Asif Ghias, Jonathan Logan, David Chamberlin, Brian C. Smith: “Query By Humming Musical Information Retrieval in An Audio Database”, Cornell University.
[8]. Lê Thị Cẩm Bình: “Tìm kiếm âm thanh theo nội dung trong cơ sở dữ liệu đa phương tiện”
Bài viết: Lê Thị Cẩm Bình
Khoa Lý luận chính trị và Khoa học cơ bản
Admin3