LỜI MỞ ĐẦU
Ngày nay nhu cầu của con người càng ngày càng lớn hơn. Sự phát triển của
Internet, Google, Yahoo, MSN là những tên tuổi được biết đến trong lĩnh vực cung
cấp dịch vụ tìm kiếm tài liệu qua mạng. Với những dịch vụ tìm kiếm tài liệu qua
mạng. Với những dịch vụ này người dùng có thể tìm kiếm các tài liệu, hình ảnh, video,
hay những tài nguyên khác có trên Internet qua từ khóa. Cho đến nay, phương pháp
tìm kiếm bằng từ khóa vẫn là phương pháp chủ đạo trong các hệ thống truy vấn thông
tin và tìm kiếm dữ liệu. Tuy nhiên, phương pháp này cũng thể hiện những hạn chế và
khả năng ứng dụng của nó trong loại dữ liệu không phải là văn bản. Với dữ liệu hình
ảnh, việc tìm kiếm phụ thuộc rất nhiều vào việc gán nhãn cho hình ảnh trong dữ liệu.
Phương pháp này xa rời với bản chất của hình ảnh là màu sắc và đường nét. Trong âm
nhạc, phương pháp này cũng tỏ ra những mặt hạn chế của nó. Bản chất của âm nhạc là
giai điệu, nhưng hầu hết các từ khóa không thể hiện được tính chất này của bản nhạc.
Tìm kiếm dựa vào thông tin nhạc sĩ, ca sĩ và lời bài hát là những ứng dụng chính
trong truy vấn thông tin âm nhạc hiện nay.Tưởng tượng rằng khi bạn đang nghe một
bài hát nào đó và rất thích nó và bạn muốn nghe lại nó. Nhưng bạn không biết tên bài
hát hay tên tác giả của nó. Bạn bắt đầu hỏi bạn bè của bạn, ngân nga giai điệu đó lên.
Không có một ai biết để giúp bạn, bởi vậy bạn sẽ rơi vào bế tắc. Vì vậy phát sinh ra
máy tìm kiếm âm nhạc như hệ thống QBH (Query By Humming) như vậy để thỏa mãn nhu cầu của con
người. Hệ thống giúp người dùng tìm kiếm dễ dàng hơn dựa trên giai điệu được hát
hay ngân nga từ người dùng.
Đề tài gồm 3 chương chính:
Chương 1 Giới thiệu về hệ thống nhận dạng âm thanh
Chương 2 Các vấn dề nghiên cứu liên quan
Chương 3 Hệ thống truy vấn âm nhạc qua giọng hát
Chương 4 Thực nghiệm, kết quả và hướng phát triển tìm kiếm âm nhạc
Tài liệu tham khảo
58 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 5617 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Thiết kế hệ thống nhận dạng các dạng âm thanh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
vậy, thực hiện một khảo sát chi tiết và đầy đủ những phương pháp biểu
diễn là không khả thi và cũng không có giá trị thực tế. Những mục sau đây cho ta một
cách nhìn tổng qua từ tác phẩm đến dạng sóng âm vật lý.
2.2.1 Giai điệu
Giai điệu là một dãy các note nhạc được sắp xếp theo một trật tự nhất định.
Mỗi thể loại âm nhạc sử dụng giai điệu theo một cách khác nhau. Giai điệu một bài
nhạc là cái nền làm bản nhạc du dương do đó dễ nghe và dễ nhớ. Có lẽ bạn chẳng cần
hiểu biết tối thiểu về nhạc cũng vẫn có thể nghe và thích các bản nhạc trầm bổng réo
rắt của Schubert, Tchaikovski, Mendelssohn… [24, 15, 16]
2.2.2 Đường viền giai điệu (Melody Pitch Contour)
Một đại diện giai điệu tốt nên nắm bắt được tất cả các thông tin giai điệu và
phù hợp với thói quen mà người dùng “hum” vào. Theo nguyên tắc này, chúng ta đã
đề nghị một bộ ba của đại diện giai điệu. Đầu tiên, đường viền giai điệu được
dùng.Thuộc tính cơ bản của âm nhạc là chuỗi cao độ của các nốt, giai điệu, nhịp điệu
(Nhanh/chậm), kết cấu (âm sắc hay âm thanh) và lời hát. Nó là những phân đoạn mà
chúng ta phân biệt một cách đặc trưng một trong những phần của âm nhạc từ cái khác.
Giai điệu và nhịp điệu thì đặc biệt nhất. Giai điệu của một phần âm nhạc là một chuỗi
các nốt với cao độ khác nhau và trường độ khác nhau. Cao độ được kết hợp với chu
kỳ của âm thanh và cho phép sắp xếp. [15, 24, 13, 16]
Downling [22] đã đề nghị một phương pháp biểu diễn giai điệu bằng chiều
hướng của cao độ (tăng, giảm hoặc lặp lại) và phương pháp này rất hữu dụng trong đa
số trường hợp. Cách biểu diễn này được gọi là đường biên giai điệu (Melodic pitch
contour).
Đường biên giai điệu thể hiện một chuỗi những biến đổi có tính chất định tính
trong cao độ. Một note trong một bản nhạc được đem so sánh với note trước đó và sự
sai khác được xếp vào một trong ba lớp, được ký hiệu như sau: U (Up - khi cao độ
tăng), D (Down – khi cao độ giảm), và R (Repeat – khi cao độ lặp lại). Như vậy, một
đoạn nhạc đơn giản có thể được biểu diễn bằng một chuỗi những ký tự (gồm U, D, R).
20
Chẳng hạn như, khúc mở đầu của bản giao hưởng số 5 của Beethoven sẽ được biểu
diễn bằng chuỗi sau: - R R D U R R D. Hình 3 cho ta một ví dụ khác về bản nhạc
quen thuộc “Happy Birthday” được biểu diễn dưới dạng đường biên giai điệu.
Hình 3: Ví dụ biểu diễn đường biên giai điệu của bài hát “Happy Birthday”
Đường biên giai điệu thể hiện một chuỗi đặc trưng đường biên của của giai
điệu đã loại bỏ những thông tin không cần thiết, như định lượng sự sai khác
giữa hai note nhạc liền nhau hay thông tin về nhịp điệu, vì vậy làm giảm không gian
và độ phức tạp của việc tìm kiếm. Tuy nhiên, cũng vì thế, thông tin đường biên giai
điệu lại trở nên quá thiếu chi tiết (under-specification).
Có rất nhiều bản nhạc dù giai điệu khác nhau, nhưng vẫn có thể có đường biên
giống nhau do giai điệu cùng lên và xuống theo trật tự giống nhau (nhưng độ lên
xuống khác nhau và thời gian của từng note nhạc cũng khác nhau).
Đặc trưng đường biên giai điệu như mô tả ở trên không đủ phân biệt trong rất
nhiều trường hợp. Một cách khắc phục là phân loại những lớp con trong các lớp
UDR.Theo phương pháp này, mỗi lớp cha (U hay D) sẽ có những lớp con tương ứng
với mức độ lên xuống nhiều hay ít của các cao độ trong các note liền kề. Lớp R –
Repeat chỉ có một lớp con là chính nó, còn các lớp U và D sẽ được biểu diễn tương
ứng bằng những số nguyên dương hoặc âm.[13,10, 16]
2.2.4 Đường biên nhịp điệu (Rhythm Contour)
Nhịp điệu (Rhythm) của một bản nhạc là một đặc trưng theo thời gian của bản
nhạc. Đường biên nhịp điệu (Rhythm Contour) có thể được hiểu tương tự như đường
biên cao độ. Độ dài của một note nhạc trong bản nhạc được đem so sánh với độ dài
của note nhạc trước đó và sự sai biệt này sẽ được xếp vào ba lớp tương ứng: dài hơn
(L –Longer), ngắn hơn (S – Shorter), và bằng nhau (R – Repeat). Từ đó, một bản nhạc
sẽ được biểu diễn bởi một chuỗi các ký tự gồm ba ký tự (LSR). Đương nhiên, khi biểu
diễn đặc trưng Rhythm Contour, ta phải chấp nhận một sai số nhất định cho lớp R vì
trong quá trình biểu diễn bản nhạc, việc biểu diễn hai note giống nhau hoàn toàn về
mặt thời gian trên khuôn nhạc là không khả thi. Ngưỡng sai số thường dùng
21
trong trường hợp này là ½ (cho Shorter) và 2 (cho Longer), dựa theo tỉ lệ thời gian
của note trước và note sau. Xem [16]
Không giống với đường biên giai điệu, đường biên nhịp điệu hoàn toàn
không dựa trên cơ sở tâm lý học. Biểu diễn đường biên nhịp điệu chỉ nhằm mục
đính làm giảm bớt độ phức tạp trong lưu trữ và tìm kiếm.
2.2.5 MIDI (Musical Intrument Digital Interface)
Nhạc thường (bao gồm tiếng đàn, tiếng sáo, tiếng các bộ gõ và cả tiếng hát nữa)
đều tồn tại dưới dạng sóng âm thanh hình Sin (Sinus). Dẫu rằng chúng khác nhau về
cường độ (mạnh, yếu), trường độ (dài, ngắn), cao độ (trầm, bổng), tiết tấu (nhanh,
chậm) và âm sắc (bản sắc riêng của các công cụ nhạc), nhưng điểm chung nhất tất cả
đều là sóng âm, với bản chất cơ học : Một luồng sóng âm, bất kể từ nguồn nào, đều
làm rung động bầu không khí quanh nó, truyền đi trong không gian bao la, rồi đập vào
tai người nghe, làm rung động màng nhĩ, khiến cho người ấy nghe được âm thanh
đó.[27, phụ lục 8]
Để ghi lại, lưu lại một sóng âm thường thì người ta sử dụng kỹ thuật tương tự
(Analog), biến một sóng âm bản chất cơ học thành sóng điện từ, với những định dạng
(format) quen thuộc như .wav, .cda, .mp3 v.v... File âm thanh định dạng wav thường
chiếm rất nhiều không gian dĩa, file cda cũng là một loại file wav, được sử dụng cho
các đĩa CD (compact disc) nên cũng chiếm dụng không gian tương đương .Kỹ thuật
nén file ra đời đã hình thành nhạc mp3 với rất nhiều ích lợi (chiếm dụng không gian ít
hơn từ 10 lần đến 20 lần so với file wav, nhờ đó có thể truyền tải được trên mạng
Internet nhiều và nhanh hơn) Nếu một bài hát thông thường lưu ở định dạng wav
chiếm trung bình khoảng 40 Mb , thì file Mp3 tương ứng chỉ cần từ 2Mb cho đến 4
Mb.
Giữa các nhạc cụ điện tử giờ đây có một "ngôn ngữ" chung gọi là "MIDI", để
nói chuyện với nhau. MIDI tuy là một khái niệm mới nhưng đã trở nên rất quen thuộc
trong lĩnh vực âm nhạc điện tử, đến nổi người ta xem nó là một thuật ngữ mà quên
rằng MIDI là từ viết tắt của "Miscical Instrument Digital Interface" (giao diện số với
các nhạc cụ). Một cách đơn giản, MIDI là một ngôn ngữ giữa các thiết bị âm nhạc.
Mặc dù có nhiều ngôn ngữ khác nhau trên thế giới (Việt Nam, Anh, Pháp...) nhưng
MIDI chỉ có một ngôn ngữ duy nhất. Do đó, MIDI không phụ thuộc nhà chế tạo nhạc
22
cụ và nơi sản xuất. Hơn nữa nó dùng cho nhiều chủng loại nhạc cụ khác nhau; ví dụ
một piano điện có thể nối với một bộ trống điện tử, khi đó nếu ta bấm một phím trên
piano thì bộ trống sẽ phát ra một tiếng trống tương ứng.
Nhạc Midi không dùng kỹ thuật tương tự (Analog), mà dùng kỹ thuật số (Digital)
để lưu lại âm thanh. Mỗi âm thanh của các nhạc cụ khác nhau được gán cho một
chuỗi ký tự số nhị nguyên tương ứng (chỉ bao gồm 2 chữ số 0 và 1)
Như vậy một chuỗi âm thanh sẽ được ghi lại như một ... chuỗi số. Và quá trình
lưu file âm thanh được quy về như một quá trình số hóa, kèm theo là lưu số
Ở công cụ nghe, một quá trình ngược sẽ được thực thi: Chuỗi số sẽ được biến đổi,
hoán cải ngược lại thành chuỗi âm thanh.Vì thế Nhạc Midi còn được gọi bằng những
tên khác như: nhạc điện tử, hay gọn hơn nữa là nhạc số. Vì đã được tiêu chuẩn hóa
nên nhạc Midi chơi rất chính xác và rất hay, rất lạ tai. Một lợi ích quan trọng hơn nữa
là file nhạc Midi chiếm dụng rất ít không gian. Một bài hát định dạng wav 40 Mb,
định dạng Mp3 khoảng 4 Mb, thì một file Midi tương ứng chỉ mất khoảng 40 Kb (ít
hơn Mp3 một trăm lần, và ít hơn Wav một ngàn lần !!!). Nghĩa là sẽ có (thật ra là đã
có) những dĩa CD kỹ thuật số dung lương cũng chỉ 650 Mb như các dĩa khác, nhưng
chứa được trên mười ngàn bài hát.
Midi như đã nói ở phần trên, nhờ những tiện nghi vô hạn của nó, nên đã rất
nhanh và rất sớm được sử dụng trên mạng InterNet
2.2.5 Digital audio
Digital audio là cách biểu diễn thô của âm thanh qua việc số hóa tín hiệu trong
sóng âm thanh. Sóng âm thanh sẽ được lấy mẫu và biên độ của sóng tại từng thời
điểm sẽ được biến đổi từ tín hiệu analog sang tín hiệu số. [29]
Do tính chất của việc biểu diễn dựa trên sóng âm, cách biểu diễn này có thể
biểu diễn mọi loại âm thanh (tiếng nói, tiếng hát…) Nhờ tính chất này, việc tạo ra một
tập tin âm thanh dạng thô khá đơn giản và có thể thực hiện được từ việc thu âm vào
microphone. Do đó có thể sử dụng làm định dạng truy vấn của người dùng.
2.3 Những phương pháp Matching
2.3.1 Thuật toán LSH (Locality Sensitve Hashing)
23
Đưa ra một đoạn giai điệu được định nghĩa bởi điểm pi, chúng ta có thể tìm các
đoạn tương tự trong chỉ mục bằng các tìm kiếm các hàng xóm gần nhất (NNs) của
điểm ví dụ tất cả các điểm mà khoảng cách nhỏ hơn một ngưỡng cụ thể r nào đó.Điều
này có thể được làm bởi việc đo khoảng cáh đơn gian pi đến tất cả các vector trong cơ
sở dữ liệu. Tuy nhiên, các kết quả này trong một thời gian tìm kiếm tùy thuộc vào
kích cỡ tuyến tính của cơ sở dữ liệu. [16, 4]
Để thu được một thời gian tuyến tính dưới một cách phức tạp, chúng ta sử
dụng vị trí của hàm băm miền nhạy cảm LSH là một thuật toán ngẫu nhiên cho việc
tìm kiếm khoảng cách hàng xóm gần nhất trong không gian nhiều chiều.Ý tưởng là
các điểm mà khoảng cách trong cùng một ngưỡng sẽ được băm vào một thùng giống
nhau với xác suất cao. Người dùng định nghĩa xác suất điều khiển sự thỏa thuận giữa
độ chính xác và tốc độ của LSH. Trong phương pháp của chúng ta, chúng ta thuê LSH
hoàn thiện các gói E2LSH bởi các độc giả Dựa
trên sự thi hành, chúng ta xây dựng một máy chủ cho việc xử lý các đoạn chỉ số the
melodic và một máy khách cho việc truy xuất các đoạn giai điệu giống nhau từ cơ sở
dữ liệu. Gần đây LSH được áp dụng ví dụ trong việc công nhận âm nhạc và trong dấu
tay âm thanh.Ý tưởng của thuật toán LSH như sau. Thuật toán LSH là thuật toán tìm
kiếm K hàng xóm gần nhất hoặc tìm kiếm xấp xỉ K hàng xóm gần nhất.
• Truy vấn lân cận K gần nhất KNN (K- nearest neighbour)
Người dùng đặc tả một đối tượng truy vấn Q và chấp nhận một số lượng K đối
tượng. Hệ thống tìm kiếm K đối tượng tương tự nhất với đối tượng truy vấn từ
MMDBMS (Multimedia Database Management Systems).
K=|A|, A € DB, ¥ P € A,, P’ € { DB/A },, D (P,Q)<=D(P’,Q)
24
Hình 4: Minh họa phương pháp truy vấn KNN
• Truy vấn xấp xỉ lân cận K gần nhất
Đối với các ứng dụng mà mục tiêu đưa ra không phải là kết quả thật chính xác
mà xét tốc độ là quan trọng hơn, khi đó phương pháp truy vấn xấp xỉ lân cận K gần
nhất cho hiệu quả cao hơn phương pháp KNN nêu trên. Truy vấn xấp xỉ lân cận K gần
nhất mô tả như sau:
Người dùng đặc tả một đối tượng truy vấn Q và một số K đối tượng và sai số
epsilon chấp nhận được.
Hệ thống tìm kiếm xấp xỉ K đối tượng tương tự nhất với đối tượng truy vấn từ
MMDBMS: K=|A|, A € DB, ¥ P € A, P’ € { DB/A }, D(P,Q)<=(1+∂)D(P’,Q).
2.3.2 Thuật toán Dynamic Time Warping (DTW)
Dynamic Time Warping (DTW)[1] [24][5] [21] [8] là thuật toán dùng
để tính độ tương đồng giữa hai chuỗi đặc trưng, khác nhau về chiều dài. DTW được
áp dụng trong nhiều lĩnh vực và là ý tưởng nguyên thuỷ của nhận dạng tiếng nói.
Trong đó, DTW được dùng để giải quyết vấn đề khác nhau trong độ nhanh chậm của
tiếng nói.
Mục đích của DTW dùng để tìm kiếm một ánh xạ giữa hai vector đặc trưng (có
chiều dài khác nhau) với khoảng cách ngắn nhất. Phương pháp này được gọi là “time-
warping” là vì những vector đặc trưng này thường được lấy theo đơn vị thời gian và ta
cần co (hoặc giãn) chiều thời gian cho phù hợp để có được một ánh xạ tốt nhất.
25
Cho hai vector t = [t1, t2,…, tn] và r = [r1, r2,…,rm]. Thuật toán DTW sẽ giúp
tìm ra một ánh xạ đường đi {(xi1, yj1), (xi2, yj2),…, (xik, yjk)} với những ràng buộc sau:
i. Điều kiện ràng buộc biên: (i1, j1) = (1, 1), (ik, jk) = (m, n). Điều kiện này còn
gọi là "neo điểm đầu" và "neo điểm cuối".
ii. Ràng buộc về đường đi cục bộ: Với mọi node (i, j) trong đường đi, những
node đến được nó chỉ giới hạn trong (i-1, j), (i, j-1), (i-1, j-1). Ràng buộc này giúp
đảm bảo luôn tồn tại một song ánh từ t đến r. Minh họa về ràng buộc đường đi cục bộ
thể hiện trong hình dưới đây.
Hình 5: Minh họa đường đi cục bộ 0 - 45 - 90
Cốt lõi của thuật toán DTW là thuật toán quy hoạch động. Thuật toán được mô
tả trong 3 bước sau:
i. Gọi D(i, j) là khoảng cách DTW giữa t(1..i) và r(1..j), với ánh xạ đường đi
(1,1) đến(i, j).
ii. Sử dụng công thức quy hoạch động để điền lần lượt các giá trị vào D(i, j):
D (i, j) = |t(i) - r(j)| + min{D(i - 1, j), D(i - 1, j - 1), D(i, j - 1)}
với điều kiện đầu D(1,1) = |t(1) - r(1)|
iii. Khoảng cách DTW của 2 vector t và r là D(m, n)
Trong lập trình, ta xây dựng một mảng hai chiều D gồm m và n phần tử. Khởi
tạo giá trị ban đầu của D (1, 1). Sau đó, sử dụng công thức quy hoạch động để điền
lần lượt các giá trị lần lượt từ trái qua phải, từ trên xuống dưới. Như vậy, độ phức tạp
26
của thuật toán DTW là O(mn). Để áp dụng trong tìm kiếm âm nhạc, một vài cải tiến
đã được đề xuất:
Hình 6: Minh họa đường đi 27 – 45 – 63 [16]
Khác với đường đi thông thường 0-45-90, đường đi này loại bỏ tính ràng buộc
song ánh giữa hai vector, giúp ta loại bỏ nhiễu (outlier) của dữ liệu trong hai vector
đặc trưng.
Loại bỏ ràng buộc điều kiện "neo điểm cuối"
Thông thường, điểm đầu và cuối đoạn truy vấn giai điệu sẽ không
trùng khớp hoàn toàn với giai điệu mẫu được lưu trong cơ sở dữ liệu. Vì vậy, điều
kiện "neo điểm cuối" có thể bỏ qua. Điều kiện "neo điểm đầu" cũng có thể bỏ qua;
tuy nhiên, kết quả thực nghiệm cho thấy phưong pháp làm này hoàn toàn không
hiệu quả cả với những đoạn truy vấn mẫu được hát từ đầu giai điệu
Vì vậy, với phương pháp DTW, chúng ta giả thiết người dùng hát từ đầu
giai điệu. Điểm khiếm khuyết này của DTW sẽ được giải quyết trong phần sau
(xem phần 3.4). Để loại bỏ điều kiện "neo điểm cuối", khoảng cách DTW giữa hai
vector r và t sẽ là giá trị nhỏ nhất trong các giá trị D[m, i..n]. Xem chi tiết tại [1]
[24][5] [21] [8]
Ưu điểm của phương pháp DTW ở chỗ có thể sử dụng thẳng chuỗi cao
độ vào quá trình tìm kiếm mà không cần phải phân đoạn thành từng note. Thường
đây là một vấn đề rất khó giải quyết nếu áp dụng phương pháp String Alignment
2.3.3 Thuật toán Hidden Markov Model (HMM)
27
2.3.3.1 Tổng quan
Mô hình Markov (Hidden Markov Model –HMM) [1] ẩn được sử dụng trong
việc thống kê mô hình tạo âm thanh. Tính hiệu quả của mô hình được thể hiện trong
việc mô tả tín hiệu âm thanh theo dạng toán học dễ dàng cho việc xử lý tín hiệu.
Các trạng thái của HMM có được trước khi thực hiện việc xử lý các trạng thái.
Như thế đầu vào của HMM chính là chuỗi các thông số vector rời rạc theo thời gian.
2.3.3.2 Định nghĩa mô hình Markov ẩn
Mô hình Markov ẩn là một tập các trạng thái hữu hạn, mà mỗi trạng thái có
liên quan đến hàm phân phối xác xuất. Việc chuyển tiếp giữa các trạng thái được định
nghĩa bởi một tập xác suất được gọi là xác suất chuyển tiếp (transition probability).
Trong một trạng thái cụ thể, kết quả có thể được tạo ra dựa trên hàm phân phối xác
suất tương ứng. Kết quả này không phải là một trạng thái có thể nhìn thấy được thông
qua việc quan sát các trạng thái, cho nên được gọi là mô hình Markov ẩn. [1][4]
Trong những nghiên cứu gần đây, hai phương pháp HMM rời rạc và HMM
liên tục cũng đã được xem xét đến. với những phương pháp này, mỗi bài bát (hay
đoạn giai điệu) sẽ được mô hình thành một HMM. Hình dưới minh họa biểu diễn giai
điệu bằng Hidden Markov Model [1][4]
Hình 7: Mô hình Markov cho một đoạn giai điệu
Hiện nay, HMM chưa đem lại kết quả cao bằng những phương pháp thông
thường như String Alignment hay DTW hay LSH vì nhiều lý do:
28
• Thiếu dữ liệu cho việc học máy
• Những mô hình và những đặc trưng chưa được nghiên cứu và phát triển
2.3.4 String Alignment [22]
Bài toán tìm kiếm cơ sở dữ liệu các đặc trưng pitch contour có thể đưa về bài
toán tìm kiếm chuỗi đơn giản. Đương nhiên, để có thể giải quyết những sai sót từ
người dùng và trong quá trình rút trích đặc trưng, ta phải xem xét đến thuật toán
tìm kiếm chuỗi gần đúng.
Những ứng dụng đầu tiên trong lĩnh vực tìm kiếm chuỗi có chấp nhận sai sót
(gần đúng) được sử dụng trong ngành tin sinh học (so sánh những chuỗi DNA). Nhà
khoa học muốn biết hai chuỗi DNA giống nhau như thế nào, chúng có những điểm
chung gì. Chuỗi DNA được biểu diễn bởi một chuỗi ký tự dài nhưng lại giới hạn về
loại ký tự (chỉ bao gồm 4 ký tự A, C, G, T). Tìm kiếm sự hiện diện của một chuỗi
DNA ngắn, chấp nhận sai sót, cũng gần giống với việc truy vấn từ một cơ sở dữ liệu
đường biên giai điệu.
Pardo et al đã đề xuất hai phương pháp string alignment có thể áp dụng trong
tìm kiếm melodic contour hay pitch interval: Global String Alignment and Local
String Alignment.
2.3.4.1 Global String Alignment
Thuật toán Global String Alignment, một dạng điển hình của tìm kiếm dựa trên
chuỗi, là thuật toán quy hoạch động. Đặt độ dài của chuỗi S là |S|. Và ta có Q (Query)
là chuỗi mẫu cần truy vấn, và T (Target) là chuỗi trong cơ sở dữ liệu cần đem so sánh.
Giả thiết rằng Q và T chỉ chứa những ký tự trong cùng một bảng chữ cái. Ta xây dựng
một bảng AlignScore gồm |Q| + 1 dòng và |T| + 1 cột trong đó AlignScore (i, j) là
điểm liên kết tốt nhất giữa hai chuỗi con q1...qi của Q và t1..tj của T.
Quy trình này được bắt đầu bằng việc gán AlignScore (0, 0) = 0. Sau đó,
những phần tử của mảng sẽ được tuần tự điền vào theo công thức (2-1) dưới
(2-1)
29
Hàm matchScore có ý nghĩa như một hàn lượng giác mức độ giống nhau của
hai ký tự trong một chuỗi. Hàm matchScore có thể được định nghĩa đơn giản như
công thức (2-2)
(2-2)
Tuỳ thuộc vào bản chất của đặc trang dữ liệu, matchScore có thể được thay đổi
cho phù hợp và cho hiệu quả tốt nhất. Hàm skipPenalty cũng được xây dựng dựa theo
các điều kiện của matchScore (hay cũng có thể biến thành một trường hợp đặc biệt
của matchScore). Với hàm matchScore tương ứng như trên, ta có thể xây dựng
hai hàm skipPenalty như (2-3).
(2-3)
Sau khi xây dựng xong mảng alignScore, giá trị liên kết tốt nhất giữa hai chuỗi
sẽ được đọc tại ô ở dòng cuối cùng, góc bên phải của bảng. Từ đó, ta cũng có thể lần
ngược lại đường đi để cho ra giá trị tốt nhất này.
Hình 8: Ma trận alignScore
Trong trường hợp ma trận alignScore ở Hình 2-6, chuỗi tìm kiếm là “G
D A C B”, còn chuỗi đích trong cơ sở dữ liệu là “G A B B”. Điểm liên kết giữa hai
30
chuỗi là 3. Dưới đây là những cách thức kết hợp hai chuỗi này (dấu „-‟ có ý nghĩa
là một ký tự bị bỏ qua, không khớp)
Hình 9: So khớp truy vấn và đích
2.3.4.2 Local String Alignment
Thuật toán Global String Alignment sẽ cho kết quả điểm liên kết tốt nhất giữa
hai chuỗi. Đây sẽ là một hướng tiếp cận tốt nếu như chúng ta muốn so sánh hai chuỗi
được sao chép từ một chuỗi khác. Hay nói cách khác, với mỗi phần tử trong một
chuỗi, chỉ có khái niệm trùng hoặc bị bỏ qua. Tuy nhiên, trong trường hợp nhận dạng
giai điệu, ta không thể giả thiết rằng người sử dụng hát hoàn toàn đầy đủ một giai điệu
trong cơ sở dữ liệu. Rất có thể người sử dụng chỉ hát một đoạn trong giai điệu được
lưu hoặc phần lớn giai điệu được hát trùng với phần được lưu trong đoạn đầu và cuối
của giai điệu truy vấn và giai điệu được lưu lại khác nhau. Vì vậy, người ta thường
dùng phương pháp Local String Alignment cho trường hợp so sánh hai đặc trưng giai
điệu.
Trong thuật toán Local String Alignment, công thức quy hoạch động cho ma trận
(2-4)
Sau khi đã điền đầy đủ các trị số vào ma trận alignScore,điểm số tốt nhất của các
chuỗi con T và Q được xem như điểm cho độ giống nhau giữa Q và T. Như vậy, điểm độ
giống nhau giữa Q và T được lấy bằng cách tìm giá trị lớn nhất trong mảng alignScore. Xem
[22, 9, 13]
31
Chương 3. HỆ THỐNG TRUY VẤN ÂM NHẠC QUA GIỌNG HÁT
3.1 Xử lý âm thanh truy vấn
3.1.1 Xóa bỏ các nốt làm nhiễu, ồn và các note ngắn
Sau khi việc thu tín hiệu với một card âm thanh của máy tính thì dải tín hiệu này
được xử lý thông qua bước lọc bỏ bớt những tiếng ồn nhiễu và sự bóp méo tín hiệu
của môi trường ngoài. Tín hiệu được giới hạn trong giải 80 đến 800 Hz hợp lý cho
giai điệu hát đầu vào.
Các tiếng ồn xung quanh sẽ gây nhiễu giai điệu mà người dùng đưa vào như
vậy sẽ khiến cho việc xử lý truy vấn tiêp theo trở nên khó khăn vì thế nên loại bỏ
những tạp âm xung quanh đồng thời bỏ đi những nốt ngắn trong truy vấn mà người
dùng đưa vào vì nó quá ngắn không đủ để làm đặc trưng nhận dạng cho truy vấn nó
mang ít ý nghĩa thông, làm giảm chất lượng của truy vấn đầu vào.
Bốn bước làm giảm giá trị nhiễu trong chuỗi cao độ là làm mịn các giá trị trong
chuỗi:
• Bước 1: Loại bỏ những khoảng lặng ở đầu (pitch = 0).
• Bước 2: Xác định những khoảng chuyển đổi cao độ. Một đoạn cao độ mới
được hình thành khi hiệu của giá trị trung bình cao độ trong đoạn đó và giá
trị cao độ tiếp theo lớn hơn ngưỡng T (0<T<1, đơn vị: bán cung). Sau đó,
thay tất cả các giá trị trong đoạn cao độ đó bằng giá trị trung bình [2]. Nếu
hai đoạn cao độ liền kề có giá trị chênh lệnh nhau 0.5, nối hai đoạn đó lại
với nhau.
• Bước 3: Nếu một đoạn cao độ có thời gian nhỏ hơn 100 mili-giây, nối đoạn
cao độ đó với đoạn cao độ có giá trị gần nhất.
• Bước 4: Nếu một đoạn khoảng lặng (pitch = 0) có thời gian bé hơn 300
mili-giây, các giá trị đó sẽ được thay bằng giá trị trung bình của đoạn cao
độ trước đó. [2] [3]
32
Hình 10: Ví dụ về một truy vấn người dùng đưa vào
Từ truy vấn trên ta dùng công cụ Praat để chuyển truy vấn này thành
chuỗi tần số cơ bản minh họa như hình dưới đây:
Hình 11: Mô tả truy vấn trên dưới một dạng sóng
3.1.2 Đặc trưng cao độ (pitch)
Đặc trưng cao độ (pitch) là một đặc trưng quan trọng trong những tín hiệu tuần
hoàn như âm thanh của giọng người hoặc nhạc cụ. Ta có thể hiểu, đặc trưng cao độ
thể hiện tần số dao động của nguồn phát ra âm thanh như dây thanh đới của người
hoặc dây đàn trong nhạc cụ. Nói cách khác, cao độ là tần số cơ bản của âm thanh, là
nghịch đảo của chu kỳ theo công thức:
Đặc trưng hay giá trị này được đo bằng Hertz (số chu kỳ dao động trong một
giây). Tuy nhiên, thông số này không tuyến tính với cảm nhận của tai người. Khi tần
số cơ bản của một nguồn âm là 440Hz, cao độ của âm thanh đó tương ứng với note
A4 (La 4) trên phím đàn piano. Để cao độ tăng lên một quãng 8 (12 đơn vị cao độ) thì
tần số phải tăng gấp đôi (A5=880Hz). Vì vậy, trong âm nhạc có một đơn vị khác dùng
để biểu thị cao độ và tuyến tính với cảm nhận của tai người: bán cung (semitone). Để
chuyển từ đơn vị Hertz sang bán cung, ta sử dụng công thức:
(3-1)
33
Đơn vị này tuyến tính với cảm nhận của tai người và giúp tăng độ chịu lỗi của
hệ thống. Xem chi tiết [15][11]
3.1.3 Rút trích đặc trưng cao độ (pitch tracking)
Việc tính toán giá trị cao độ trong giọng người có thể thực hiện được bằng tay
và mắt qua việc quan sát hình dạng sóng âm trong những tập tin âm thanh được số
hóa. Đương nhiên, việc này tốn kém thời gian và không hiệu quả. Việc tự động tính
toán cao độ trong một bản thu âm tiếng người hoặc nhạc cụ gọi là pitch tracking. [15]
Một khi đã xác định được chuỗi cao độ đặc trưng của âm thanh, ta có thể dùng
đặc trưng này trong nhiều ứng dụng:
• Nhận dạng âm nhạc
• Nhận dạng giọng nói địa phương
• Tổng hợp tiếng nói
• Tăng kết quả nhận dạng trong hệ thống nhận dạng tiếng nói
Vì vậy pitch tracking là một trong những kỹ thuật cơ bản và quan trọng trong
xử lý tín hiệu số. Nhiều nghiên cứu về pitch tracking đã được báo cáo trong nhiều
năm liền, và cho đến bây giờ vẫn còn là một đề tài đang phát triển mạnh mẽ.[12][11]
3.1.4 Nguyên tắc cơ bản của pitch tracking [22]
Dù có rất nhiều kỹ thuật pitch tracking, nhưng hầu hết tất cả các loại đều đi
theo quy trình chuẩn sau:
• Chia nhỏ đoạn âm thanh ra làm nhiều cửa sổ con (mỗi cửa sổ con khoảng
20ms). Các cửa sổ có thể chồng lên nhau.
• Tính toán giá trị cao độ cho từng cửa sổ
• Loại bỏ những đoạn không phải âm thanh mong muốn hoặc khoảng lặng. Việc
này có thể dùng ngưỡng độ lớn âm thanh hay ngưỡng cao độ.
• Làm mịn chuỗi cao độ (pitch) bằng những bộ lọc
34
Hình 12: Nguyên tắc cơ bản của phương pháp pitch tracking
Việc chọn kích thước cửa sổ và khoảng cách các cửa sổ chồng lên nhau được
thực hiện theo những nguyên tắc sau:
• Kích thước cửa sổ phải chứa đủ ít nhất hai chu kỳ sóng âm. Chẳng hạn, giới
hạn cao độ của giọng nói người khoảng từ 50-1000Hz và tần số lấy mẫu của
âm thanh là 16000 mẫu/ giây, khoảng kích thước cửa sổ có thể được tính toán
như sau:
Nếu f=50 Hz, chu kỳ cơ bản = 16000/50=320 mẫu. Vậy kích
thước cửa sổ sẽ là 640 mẫu.
Nếu f=1000Hz, chu kỳ cơ bản =16000/1000=16 mẫu. Kích thước
cửa sổ sẽ là 32 mẫu.
• Kích thước cửa số không nen quá lớn vì sẽ ảnh hưởng đến đặc trưng của âm
thanh trong cửa sổ. Ngoài ra, kích thước cửa sổ còn ảnh hưởng đáng kể đến
thời gian tính toán.
• Việc chọn lựa kích thước các cửa sổ chồng lên nhau hay không tùy thuộc vào
khả năng của máy tính và yêu cầu về thời gian đáp ứng của hệ thống. Nếu kích
thước các cửa sổ chồng lên nhau lớn thì số lượng cửa sổ nhiều và đương nhiên,
việc tính toán sẽ chậm và ngược lại.
Có rất nhiều phương pháp để tính giá trị cao độ cho một cửa sổ, trong đó có thể kể
đến các phương pháp sau:
• Phương pháp trên miền thời gian
35
o ACF : Autocorrelation function
o SMDF: Average manitude difference function
o SIFT: Simple inverser filter tracking
• Phương pháp trên miền tần số
o Harmonic product spectrum
o Cepstrum
3.1.5 Phương pháp Autocorrelation (ACF): Tự tương tác
Autocorrelation là phương pháp cổ điển trong pitch tracking. Phương pháp
autocorrelation cô lập và theo dõi các đỉnh năng lượng của âm thanh, từ đó có thể tính
ra giá trị của tần số cơ bản [22]
Hình 13: Dạng đồ thị năng lượng của một sóng âm thanh
Hình cho ta hình dạng độ thị năng lượng của một sóng âm thanh cơ bản với các
đỉnh năng lượng được đánh dấu. Ta có thể theo dõi đồ thị dao động và quá trình lặp
lại của các đỉnh này để suy ra giá trị chuy kỳ trong một số cửa sổ, từ đó ta sẽ tính
được tần số cơ bản f0 của âm thanh. Việc này có thể tiếp tục thực hiện bằng cách sử
dụng công thức theo phương pháp autocorrelation dưới đây:
36
(3-2)
Vị trí τ nào làm cho ACF đạt cực đại thì đó chính là vị trí chu kỳ. Hình dưới
minh họa phương pháp dùng hàm ACF để tìm chu kỳ:
Hình 14: Minh họa phương pháp dùng hàm ACF để tìm chu kỳ
Nói cách khác, với từng cửa sổ tín hiệu ta đã phân tích, ta dịch chuyển cửa sổ
đi một đơn vị thời gian τ, tính ACF(τ). Xác định vị trí cực đại của hàm ACF cho ta vị
trí của chu kỳ.
3.1.6 Xác định khoảng lặng
Xác định khoảng lặng giúp tách biệt phần có âm thanh (giọng hát) và không có
âm thanh (khoảng lặng) trong tín hiệu truy vấn. Sau khi tín hiệu truy vấn đã được lấy
mẫu và chia thành từng cửa sổ, ta tiến hành đánh dấu những cửa sổ là khoảng lặng và
đặt giá trị cao độ cho những cửa sổ này là 0 (pitch= 0) [22]
37
Một cửa sổ được xem là khoảng lặng khi và chỉ khi nó thỏa mãn điều kiện sau:
(3-3)
Do đặc trưng về năng lượng của mỗi bản thu âm khác nhau nên ta xác định
ngưỡng T dựa trên một đoạn âm thanh mẫu “có tiếng” t giây của chính bản thu đó.
(3-4)
3.2 Cài đặt thuật toán
Dựa trên ý tưởng của hàm ACF, ta có thể cài đặt thuật toán tìm pitch tracking
qua hai bước:
• Bước 1: Xác định vị trí chu kỳ, đánh dấu những vị trí bắt đầu kết thúc của một
chu kỳ
• Bước 2: Chia tín hiệu thành từng cửa sổ con, xác định khoảng lặng và tần số của
những cửa sổ không phải là khoảng lặng dựa vào vị trí của chu kỳ xác định ở
bước 1.
Trước hết ta xác định nội dung vài hằng số cơ bản:
• PeriodMin: độ dài ngắn nhất có thể chấp nhận được của chu kỳ sóng âm thanh,
được tính bằng (thời gian) * Tần số lấy mẫu của tập tin âm thanh. Trong hệ
thống này, độ dài ngắn nhất của chu kỳ được chọn là 3mili-giây.
• PeriodMax: độ dài dài nhất có thể chấp nhận được của chu kỳ sóng âm thanh,
được tính bằng (thời gian) * Tần số lấy mẫu của tập tin âm thanh. Trong hệ
thống này, độ dài ngắn nhất của chu kỳ được chọn là 24 mili-giây.
Những hằng số này được xác định dựa trên khoảng tần số của giọng người có thể phát
ra được. Với mỗi vị trí bắt đầu của một chu kỳ, ta xác định vị trí mới của chu kỳ bằng
công thức:
38
(3-5)
Vị trí của chu kỳ là giá trị r mà tại đó hàm ACF cho là cực đại:
(3-6)
Phương pháp pitch tracking dựa trên ACF có thể được cài đặt như sau:
1. Khởi tạo giá trị
Pos = mảng đánh dấu vị trí các pitch
Signal = Tín hiệu sóng âm theo thời gian (đọc thông tin từ định dạng
WAV)
t = 0
2. while t < length(Pos) – 2 * PeriodMax
do
if (Mlag == 0)
MMin = PeriodMin
3. Mmax = PeriodMax
4. else
MMin = max([PeriodMin, Mlag - 23])
5. MMax = min([PeriodMax, Mlag + 24])
6. Fill zeros array Cm[1, MMax-MMin+1]
7. For iCm = MMin to Mmax
do
Tính Cm(iCm-MMin+1) theo ACF*
8. MLag = max(Cm)
9. Pos Å t + vị trí cực đại của Cm
39
10. MLag = MLag +MMin - 1;
11. t = t + Mlag
Với mỗi cửa sổ khác khoảng lặng, ta xác định vị trí pos[mid] với mid là vị trí
chu kỳ nằm giữa cửa sổ. Tần số âm thanh của cửa sổ được tính bằng công thức
(3-7)
Tần số âm thanh sẽ được chuyển sang đơn vị bán cung (công thức ở phần trên 3-7 )
3.3 Biểu diễn đặc trưng [7]
Từ kết quả của việc xử lý giai điệu của phần trên ta được chuỗi các nốt có tần
số cơ bản. Từ đó ta thực hiện tiếp việc biểu diễn đặc trưng của các giai điệu. Biểu diễn
đặc trưng này được dùng cho truy vấn và cho cơ sở dữ liệu.
Một giai điệu ở đây được định nghĩa như là một chuỗi của L nốt n1:L. Note
ni= được định nghĩa bởi cao độ pi trong các note MIDI
bj: sự bắt đầu thời gian của note
ei thời gian kết thúc của note
Các đoạn giai điệu được biểu diễn như là các vecto cao độ được đưa ra từ các
chuỗi các nốt. Đưa ra một giai điệu n 1:L vector cao độ được đưa ra như sau. Đầu tiên,
các khoảng lặng giữa các nốt liên tiếp được xóa bởi sự kéo dài của các khoảng của
một note trước đó đến sự bắt đầu của note sau, ví dụ ei Å bi+1 với i=1,...,L-1.
Mỗi note , một vecto cao độ pi với chiều dài d được đưa bằng việc xác định giá
trị cao độ của giai điệu trong w(s) cửa sổ bắt đầu từ nốt bắt đầu bi. Chính xác hơn, giá
trị cao độ được xác định trên một một hệ thống thời gian
pi= bi +j *w/(d-1) j=0,…,d-1. (3-8)
Không vecto cao độ nào được đưa ra nếu của sổ truy cập đến khoảng trắng của
nốt cuốt cùng bi +w > eL. Kết quả trả về vecto cao độ pi được chuẩn hóa để trở thành
vô nghĩa. Tất cả các vecto 0 được lờ đi bởi vì chúng chứa nội dung mang lượng thông
tin thấp (pitch=0)
40
Hình 15: Một ví dụ về vector biểu diễn đặc trưng của giai điệu
Hình 3-8 chỉ ra một ví dụ của việc rút vector đơn vị bởi việc dụng kích thước
cửa sổ w=3s à chiều dài vector d=20. Bảng trên chỉ ra một phần của một giai điệu và
hình dưới của hình trên chỉ ra đầu tiên 4 của vector pi và vị trí đưa ra của chúng là bi
đề cập ở trên đã làm việc tốt nhất trong các thí nghiệm của chúng ta.
Dùng phương, pháp trên để tạo đặc trưng cho các đoạn giai điệu ở trong cơ sở
dữ liệu. Từ đó chỉ mục các đoạn giai điệu được cấu tạo bởi sự trích chọn vecto cao độ
từ cơ sở dữ liệu giai điệu.Chỉ mục kết quả chứa một danh sách của các bản
ghi trong đó s chỉ bài hát bi chỉ ra vị trí của bài hát và pi biểu diễn các đoạn giai điệu.
Tạo mục lục cho các giai điệu dựa vào các vecto đặc trưng sẽ làm cho việc tìm kiếm
trên cơ sở dữ liệu trở nên dễ dàng và nhanh chóng hơn. [7]
3.4 Truy xuất các giai điệu (Thuật toán matching)
Trước hết để truy xuất các giai điệu dựa vào các truy vấn đầu vào ta phải tìm
sự giống nhau giữa truy vấn đưa vào với các giai điệu trong cơ sở dữ liệu ta dùng
thuật toán DTW [theo phần 2.3.2]
3.4.1Tìm kiếm bằng thuật toán DTW
41
Sự giống nhau của các đoạn giai điệu ở đây được đo bằng việc dùng khoảng
cách Euclid giữa các vector đơn vị. Một cách chính thức, hai vecto cao độ pi và pj định
nghĩa các điểm trong d-chiều không gian nơi mà khoảng cách được đưa ra bởi
(3-9)
Khoảng cách Euclide thì không chỉ đơn giản mà dường như còn đo hiệu quả
với những cái tương tự.
Ý tưởng về thuật toán đã nói ở phần trên, phần này sẽ trình bày cụ thể phần cài
đặt thuật toán tìm kiếm giai điệu dựa trên đặc trưng chuỗi cao độ (Theo phần trình bày
về thuật toán DTW ở phần 2.4.3)
Sau khi đã lấy được chuỗi tần số cơ bản của âm thanh truy vấn theo thời gian,
ta sẽ đem so sánh với những mẫu đã có sẵn trong cơ sở dữ liệu để tính khoảng cách
DTW. Việc tính khoảng cách DTW được thực hiện bằng thuật toán sau:
3.4.2 Cài đặt thuật toán
1. Q = Chuỗi đặc trưng của giai điệu truy vấn.
T = Chuỗi đặc trưng của giai điệu trong cơ sở dữ liệu.
2. Khởi tạo giá trị
D[1, 1] = abs(Q[1] – T[1])
3.for i = 1 to length(Q)
do
for j = 1 to length(T)
do
minLocalPath = Tìm min khoảng cách trong các đường đi cục bộ
( theo Hình 2-4 hoặc Hình 2-5 )
4. D[i, j] = minLocalPath + abs(abs(Q[i] – T[j])
5. Khoảng cách DTW = min{D[length(Q), k], k = 1.. length(T)}
42
Giá trị DTW của một giai điệu trong CSDL với giai điệu truy vấn đặc trưng
cho sự sai khác của hai giai điệu đó và được sử dụng làm cơ sở để sắp xếp các giai
điệu trong danh sách kết quả tìm kiếm
Hạn chế:
Thuật toán dựa trên giả thiết người dùng hát từ đầu bài hát. Để giải quyết ta
chia một bài hát ra làm nhiều đoạn giai điệu chủ đề nhỏ hơn. Việc chia bài hát ra làm
nhiều giai điệu chủ đề được thực hiện lúc tạo cơ sở dữ liệu.
3.5 Sự trả về các giai điệu
Để thu được danh sách cuối cùng của các giai điệu truy xuất được, các giai
điệu đã chọn được sắp xếp theo khoảng cách của chúng để toàn bộ truy vấn gồm
chuỗi các note. Hàng thì được thực thi bởi việc kiểm tra tất cả phép nối được duy trì
trong bước trước. Phần 3.3 [7]
Việc ghép nối là được biểu thị bởi với:
• bq là vị trí của vecto cao độ của truy vấn
• mj thì dùng kích thước cửa sổ để sửa đổi
• bc là sự đưa ra vị trí của các đoạn giai điệu trong cơ sở dữ liệu
• s là bài hát.
Thêm vào đó, để t0 (q) và t1 (q) biểu thị thời gian bắt đầu của note truy vấn đầu tiên
và thời gian kết thúc của note cuối cùng của truy vấn, theo một thứ tự tương ứng. Sau
đó thời gian miền đáp ứng toàn bộ truy vấn trong giai điệu đã chọn được định nghĩa
bởi (3-9):
t0(c) = bc-(bq-t0 (q))/mj và t1(c) =bc+ (t1 (q)-bq)/mj (3-10)
Toàn bộ truy vấn và phân đoạn được chuẩn hóa theo cao độ và thời gian cho
việc tính toán khoảng cách. Một chuỗi các note n1:L được chuẩn hóa bởi việc thực thi
các phương thức pi Å pi – p’, bi Å (bi-b1)/tdur và ei Å(ei –b1)/tdur
với j=1,…,L
là trung bình cao độ
43
tdur= eL-b1 là khoảng thời gian của chuỗi .
Dưới đây, thuật ngữ đoạn giai điệu được chọn liên quan đến miền giai điệu
được chọn. Bảng dưới trong hình 4 chỉ ra một ví dụ đoạn đã được chọn ra được xác
định thế nào cho một so khớp. Hình phía dưới trong hình 4 chỉ ra sự chuẩn hóa truy
vấn và chuẩn hóa đoạn giai điệu candidate
Hình 16: Minh họa việc ghép nối giữa truy vấn và các đoạn giai điệu
Khoảng cách giữa chuẩn hóa truy vấn và đoạn chuẩn hóa các đoạn thu được thì
được đánh giá bởi việc dùng thuật toán đệ quy (Recursive Alignment) đề ra bởi Wu et
al. Birefly, thuật toán đệ quy (RA) dùng thuật toán top-down để tiếp cận.
Thứ nhất, phương pháp chia đoạn tìm được trong hai nửa tại vị trí 0.5. Truy
vấn thì cũng được chia thành hai nửa nhưng dùng nhiều điểm chia có thể, ví dụ: 0.45,
44
0.5, and 0.55. Cho mỗi điểm chia, hai nửa được so sánh với hai nửa trong đoạn
candidate để đo khoảng cách. Điểm chia mà đưa ra khoảng cách nhỏ nhất đầu nối cho
hai nửa được duy trì. Sau đó phương pháp áp dụng thủ tục ở trên cho việc chia đôi hai
nửa một cách độc lập trong một phương thức đệ quy. Mặt khác RA tìm thuật toán phổ
biến nhất cho lần đầu tiên và sau đó đệ quy tiếp tục để căn chỉnh các đoạn nhỏ hơn.
Kết quả là RA trả về khoảng cách giữa căn chỉnh chuỗi các note.
Sự đánh giá khoảng cách trên được thực thi cho mỗi phép nối. Khoảng cách
nhỏ nhất nối đoạn giai điệu đã chọn được duy trì, từ đó có thể tồn tại nhiều đoạn được
chọn trên một giai điệu. Cuối cùng, danh sách được chọn được sắp xếp theo khoảng
cách tăng dần và trả về cho người dùng. Nếu các giai điệu được truy xuất từ audio,
cũng các đoạn giai điệu đã chọn được trả về cho phép chơi lại các giai điệu truy xuất
được trong các bản ghi nhạc bình thường. [7]
45
Chương 4. KẾT QUẢ VÀ THỰC NGHIỆM
4. Thực nghiệm
Hiện nay có hơn 20 hệ thống QBH trên thực nghiệm, một danh sách đầy của
chúng được đưa ra trên trang hệ thống MIR. Cấu trúc của chúng có thể khác nhau,
nhưng tất cả chúng thì thỏa mãn chức năng tìm kiếm bản nhạc bởi giai điệu được đưa
đến từ micro từ âm thanh hoặc tiếng huýt sáo.
Trong số chúng có thể chia ra thành nhiều hệ thống QBH với giao diện web,
cái mà thường được cài đặt trong một định dạng của Java. Trong bảng 1 có nhiều hệ
thống, hầu hết giống với Sloud QBH về chức năng cơ bản. Trong tất cả các hệ thống
QBH tìm kiếm được cài đặt trong hai trạng thái: xử lý truy vấn từ bài hát và tìm kiếm
thực các giai điệu trong cơ sở dữ liệu, bài hát đang được chuyển đổi, kết quả tìm kiếm
cơ bản tùy thuộc vào chất lượng của truy vấn.
Nó bị ảnh hưởng bởi cả chất lượng phát âm và kinh nghiệm ca hát của một ca
sĩ và sự đúng đắn giữa cuộc hội thoại Humming và MIDI trong hệ thống với hướng
dẫn ký hiệu giai điệu. Thường thì nó rất khó để điều khiển chất lượng kết nối giai điệu
“humming” với kinh nghiệm của một ca sĩ.
Như một nguyên tắc, người phát triển hệ thống đề nghị đánh giá ảo chất lượng
của việc nhận dạng sau khi kết thúc việc giải quyết humming. Sloud QBH, đối lập với
các hệ thống tương tự, có một khả năng để điều khiển độ chính xác trong thời giai
thực, như là đánh giá chất lượng của truy vấn bằng tai.
4.1 Phương pháp cài đặt và làm thực nghiệm
Sử dụng gói open source MaArt để kiểm tra quá trình cơ bản của một hệ thống
truy vấn âm nhạc dựa vào giai điệu đơn giản. Download mã nguồn tại trang địa chỉ sau
Cấu hình hệ thống thực hiện trên môi trường máy ảo cài đặt ubuntu.
4.1.1 Dữ liệu thực nghiệm
Dữ liệu thực nghiệm là các đoạn thu âm các giai điệu hát vào hoặc ngân nga
vào được lưu lại dưới dạng mặc định là wav. Các đoạn thu âm này sẽ được chuyển đổi
sang dạng midi để trở thành truy vấn hoặc trở thành cơ sở dữ liệu cho việc tìm kiếm.
46
• Cách tạo file midi:
o Thu âm một đoạn nhạc bằng trình ghi nhạc soundrecorder được
lưu dưới định dạng wav.
o Convert bản thu ở trên từ wav sang định dạng midi bằng một
chương trình convert viết bằng một shell scripts sau:
#! Bin/bash
n=`ls *.wav`
for i in $n; do
file=$1
fileorg=$1
file=${file/.wav/}
Echo –n Converting “$fileorg” to “$file.mid”
Wave2midi “$fileorg” “file.mid” > /dev/null 2> /dev/null
Count=$?
Echo done
shift
done
rm –f $pipe
rm –f $sem
Shell script trên sẽ convert cả một thư mục chứa file wav thành file mid tương
ứng. Hình minh họa như dưới đây
47
Hình 17: Hình biểu diễn quá trình chuyển đổi từ WAV sang MIDI
• Tạo một cơ sở dữ liệu các file nhạc đuôi midi bằng cách:
+ Tải trực tiếp các file midi từ midi.com
+ Tạo các file midi như ở phần trên
4.1.2 Dịch gói open source và sử dụng
- Dịch: trong quá trình dịch gặp rất nhiều lỗi do thiếu thư viện vì vậy phải chạy
từng tools một và thêm thư viện vào.
- Có hai phương pháp truy vấn để đưa ra kết quả đó là:
• Tìm kiếm dựa trên giai điệu: Dựa vào bản thu âm mà đưa ra các truy
vấn đến cơ sở dữ liệu. Hình minh họa tìm kiếm bằng giai điệu
48
Hình 18: Hình minh họa kết quả mô tả một truy vấn bởi giai điệu
• Tìm kiếm dựa trên đặc trưng: Tìm kiếm theo đặc trưng là dựa vào
dãy biểu diễn các note để so sánh sự tương đồng. Trong tìm kiếm
này có ưu điểm là không phụ thuộc vào giai điệu mà người dùng
“hum” vào mà chỉ phụ thuộc vào các note.
49
Hình 19: Mô tả kết quả của một truy vấn bởi đặc trưng
4.2 Đánh giá về bộ dữ liệu truy vấn và cơ sở dữ liệu
Quá trình và kết quảthực nghiệm:
Thực hiện thu âm các bản nhạc theo các khoảng thời gian khác nhau với thời
gian tương ứng là t =10s, 20s, 30s.
Qua hai lần thử nghiệm với tổng số lần truy vấn là 50 lần ta có bảng sau:
50
Thời gian
50(truy vấn )
10s 20s 30s
Kết quả tìm thấy 24 36 43
Kết quả tìm thấy(%) 48% 72% 86%
Bảng 1 Minh họa độ chính xác của từng bộ truy vấn
Hình 20 minh họa kết quả độ chính xác của kết quả tìm kiếm
Thời gian
Kết quả
Số lần 10s 20s 30s
Kết quả chính xác 10 29 40
Kết quả tính theo (%) 20% 58% 80%
Bảng 2 Minh họa kết quả tìm kiếm chính xác theo từng bộ truy vấn
48
72
86
0
10
20
30
40
50
60
70
80
90
100
10 s 20 s 30 s
Do dai truy van
(s)
Do chinh xac cua
truy van
51
Hì
nh 21
Minh họa
kết quả
tìm kiếm
theo độ
chính xác
tuyệt đối
Thời gian
10s 20s 30s
Kết quả chính xác 15 36 44
Kết quả tính theo (%) 30% 72% 88%
Bảng 3 minh họa kết quả tìm kiếm trong top-3 theo từng bộ truy vấn
20
58
80
0
10
20
30
40
50
60
70
80
90
100
10 s 20 s 30 s
Do dai truy van
(s)
Do chinh xac cua
truy van
30
76
88
0
10
20
30
40
50
60
70
80
90
100
10 s 20 s 30 s
Do dai truy van
(s)
Top-3
52
Hình 22 Minh họa độ chính xác kết quả tìm kiếm theo top-3
Thời gian
10s 20s 30s
Kết quả chính xác 18 40 45
Kết quả tính theo (%) 36% 80% 90%
Bảng minh họa kết quả tìm kiếm theo top -5
Hình 23. Minh họa kết quả tìm kiếm theo top-5 theo từng bộ truy vấn
Nhận xét:
Với truy vấn thì truy vấn nào càng dài thì kết quả trả về càng chính xác hơn. Vì
nó mang nhiều đặc trưng nhận dạng của bản nhạc hơn. Theo các bảng và đồ thị ở trên
ta thấy độ chính xác của hệ thống ở mức bình thường. Hiện nay trên thế giới đã có rất
nhiều máy tìm kiếm âm thanh có hiệu suất cao.Tuy nhiên kết quả này không ổn định
vì có thể do thời gian thu âm dài nhưng có thể trong kết quả trả về không được chính
xác bằng các truy vấn ngắn hơn vì một số lý do như âm lượng thu không đủ lớn,
nhiễu…
30
76
90
0
10
20
30
40
50
60
70
80
90
100
10 s 20 s 30 s
Do dai truy van
(s)
Top-3
53
4.3 Những việc chưa làm được
Chưa xác định được thời gian truy cập của từng truy vấn tại các khoảng thời
gian khác nhau, tình được thời gian đáp ứng trung bình của hệ thống với từng truy vấn
vì cơ sở dữ liệu các bản nhạc chưa đủ lớn để xảy ra một thời gian cho truy vấn. Ta
nhận thấy độ phức tạp của thuật toán tuyến tính phụ thuộc vào độ dài đoạn truy vấn.
Chưa thử được trên nhiều bộ dữ liệu khác nhau để đưa ra sự khác nhau giữa
các bộ dữ liệu.
54
KẾT LUẬN
Trong luận văn này đã trình bày những hiểu biết của mình về xây dựng hệ
thống tìm kiếm thông tin âm nhạc dựa trên cơ sở dữ liệu do giọng người hát. Trong hệ
thống bao gồm các phần:
• Phần xử lý âm thanh truy vấn: sử dụng kỹ thuật pitch tracking để rút trích đặc
trưng cao độ của âm thanh truy vấn bằng việc sử dụng phương pháp
autocorrelation.
• Biểu diễn đặc trưng đường cao độ thành một đặc trưng phù hợp trong việc tìm
kiếm trong cơ sở dữ liệu. Đặc trưng này được sử dụng trong quá trình tìm kiếm
• Tìm kiếm và so sánh đặc trưng trong hệ thống được thực hiện bằng phương
pháp DTW.
• Phần thực nghiệm: Kết quả thu được khi test thử một demo open source trên hệ
điều hành ubuntu.
Phát triển tiếp theo
Cùng với sự bùng nổ khả năng lưu trữ của máy tính, truy vấn thông tin trở
thành một đề tài rất quan trọng trong thời gian gần đây. Việc xây dựng một hệ thống
truy vấn phù hợp với bản chất của dữ liệu mà nó thao tác trên đó là rất cần thiết. Việc
này sẽ tăng hiệu quả cho việc tìm kiếm thông tin và làm cho giao tác giữa người và
máy trở nên gần gũi. Dù đã đạt được những bước tiến cụ thể, lĩnh vực truy vấn bằng
giọng hát vẫn cần những nghiên cứu xa hơn để có thể dựa vào ứng dụng thực tế:
• Truy vấn trên bộ dữ liệu lớn: Những đề tài về truy vấn âm nhạc bằng giọng
phát hiện nay chỉ tập trung vào đặc trưng và phương pháp tìm kiếm. Để có thể
đưa ứng dụng vào việc thương mại hoá, những phương pháp cụ thể để truy vấn
trên một bộ dữ liệu lớn (hàng chục ngàn bài hát) với thời gian đáp ứng của hệ
thống phải được xem xét kỹ lưỡng.
• Tự động rút trích thông tin giai điệu trên dữ liệu nhạc số thông thường: Trong
đề tài này, cơ sở dữ liệu được xét đến chỉ dừng lại ở MIDI đơn âm. Để có thể
có được một bộ dữ liệu lớn mà không tốn quá nhiều công sức, việc rút trích
giai điệu chủ đề trên một tập tin MIDI đa âm nên được cân nhắc đến. Đây là
một bài toán khó và thường thì lời giải sẽ không được rạch ròi đúng sai với một
55
dữ liệu cụ thể do việc nhận được giai điệu chính từ một bản nhạc phức tạp đa
âm (như giao hưởng, concerto, …) cũng không phải đơn giản với những người
không có hiểu biết nhiều về âm nhạc. Bài toán còn trở nên phức tạp hơn nếu
định dạng dữ liệu là những bản nhạc số thông thường như WAV, MP3, WMA.
• Phát triển hệ thống tìm kiếm trên điện thoại di động. Hiện tại mới phát triển một
hệ thống tìm kiếm trên điện Nhưng nó lại tìm kiếm
trên bản thu âm chứ không phải là dựa trên giai điệu mà người dùng ngân nga
vào. Như chúng ta biết điện thoại di động ngày nay rất phổ biến vì vậy ta nên
hướng đến nó. Để thực thi một hệ thống tìm kiếm trên điện thoại di động thì ta
phải có một tổng đài cố định làm nhiệm vụ như một máy tìm kiếm âm nhạc
như đã xây dựng ở trên. Việc tìm kiếm sẽ diễn ra như sau: Người dùng sẽ gọi
đến tổng dài cố định nào đó (1900xxx) sau đó sẽ hát hoặc ngân nga giai điệu
truy vấn đến tổng đài. Tổng đài sẽ làm nhiệm vụ xử lý truy vấn, tìm kiếm để
trả về kết quả qua tin nhắn thoại cho người dùng.
56
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt
[1] Học viện bưu chính viễn thông 2007. Xử lý âm thanh và hình ảnh
[2] Lê Tiến Thường, Trần Ngọc Phiên, Trần Đức Tiến.Phương pháp mới trích chu kỳ
cao độ trung bình ứng dụng trong nhận dạng thanh điệu tiếng Việt.
[3] Khóa luận tốt nghiệp của sinh viên Nguyễn Quốc Đính. Nhận dạng giọng nói.
[4] Tạp chí BCVT & CNTT kỳ 3 10/2007. Xây dựng và khảo sát độ dài từ khóa trong
nhận dạng người nói phụ thuộc vào từ khóa tiếng Việt theo mô hình Markov ẩn.
Tài liệu tham khảo tiếng anh
[5] Valeriy Lobaryev Gene Sokolov Alexandr Gordeyev. Sloud Query-by Humming
Search Music Engine. National Aerospace University Chkalov str.17 Kharkiv, 61070,
Uckrane & USA
[6] Tim Anderson April 2008. Development of a query by humming system.
Sypervisor: Andrew naftel.
[7] Matti Ryynanen and Anssi Klapurri. Query by humming of midi and Audio using
Locality sensitive Hashing. Tampere University of Technology Institute of Signal
Processing, P.O.Box 553, FI – 33101 Tampere, Finland.
[8] Javier Thaine B.Eng., MeGill university,Dec 5 2007. A Query by humming
approach to music retrieval. Simon Fraser University Library Bungary, BC, Canada.
[9] Presented at the 116th Convention 2004 May 8-11. A Query by humming system
using MPEG-7 Descriptors, Audio Engineering Society Convention Paper 6137.
Berlin, Germany.
[10]Annie Ding, Calvin On, Edmond Lau. 6.830: Database Systems Final Project
Report Massachusetts Institute of Technology. MusicDB: A Query by humming
System
[11] Asif Ghias, Jonathan Logan, David Chamberlin, Brian C. Smith-1995. Query by
Humming Musical Information Retrieval in An Audio Database. Proceedings of ACM
Multimedia 95, (pp. 231-236).
57
[12] Man Hon Wong and Wai Man Szeto The Chinese University of Hong Kong.
Stream Segreation Algorithm for Pattern Matching in Polyphonic Music Database.
[13] Fraunhofer Institut Digitale Medientechnologie. Query by Humming Melody
Recognition System. Dr-Ing. Karheinz Brandenburg Ehrenbergstr. 3198693 llmenau,
Germany.
[14] Lloyd A.Smith, Rodger J.McNab and lan H.Writen. Music Information Retrieval
Using Audio Input. Department of Computer Science University of Waikato Private
Bag 3105 Hamilton, New Zealand.
[15] Rui Pedro pinto de Carvalho e Paive, 2006. Melody Detection in Polyphonic
Audio. University of Coimbra in partial fulfillment of the requirement for the degree
of Doctor of Philosophy in Informations Engineering.
[16] Jeffrey Daniel Frey May 2008. Finding song melody similarities using a DNA
string matching algorithm.
[17] Jonathan T.Foote. Content-based Retrieval in MIDI and Audio. Institute of
Systems Science National University of Singapore Heng Mui Keng Terrace, Kent
Ridge Singapore 119597.
[18] M. nand Raju, Bharat Sundaram and Preeti Rao, Presented at National
Conference on Comunications, NCC 2003, Jan 31- Feb 2, IIT Madras 2003, A Query-
by-humming based music retrieval system.Dept. of EE, I.I.T. Kanpur.
[19] Malcolm Slaney and Michael Casey. 2008 Locality-Sensitve Hashing for
Finding Neearst Neighbors. IEEE Signal Processing Magazine.
[20] Blackburn, S. G. (2000) Content Based Retrieval and Navigation of Music
UsingMelodic Pitch Contours (PhD Thesis). University of Southampton.
[21] Pardo, B., Shifrin, J., & Birmingham, W. (2004). Name that Tune: A Pilot Study
in Finding a Melody from a Sung Query. Journal of the American Society for
Information Science and Technology.
[22]Dowling, W. J. (1978) Scale and Contour Two components of a Theory of
Memory for Melodies. Psychological Review, 341-354
58
[23] Lie Lu, Hong You, Hong – Jiang Zhang. A new approach to query by humming
in music retrieval, Microsoft Research, China 5F, Beijing Sigma Center 49 Zhichun
Road, Beijing 100080, China.
[24]
4-4%20Dynamic%20Time%20Warping
[25]
rd.asp?title=4-4%20Recording%20from%20Microphone
[26]
.asp?title=4-2%20Reading%20Wave%20Files
[27]
[28]
[29]
Các file đính kèm theo tài liệu này:
- Thiết kế hệ thống nhận dạng các dạng âm thanh.pdf