Tải bản đầy đủ (.pdf) (58 trang)

hệ thống tìm kiếm âm thanh QBH trong cơ sở dữ liệu đa phương tiện và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.21 MB, 58 trang )


1
Lời cảm ơn

Trước hết chúng em xin bày tỏ lời cảm ơn chân thành và sâu sắc nhất đến TS. Nguyễn
Hải Châu, người thầy đã hướng dẫn em trong đề tài này. Đây là đề tài mới và nhiều khó khăn
nhưng nhờ sự động viên và hướng dẫn nhiệt tình của thầy em đã có kết quả như hôm nay.
Em xin gửi lời cảm ơn chân thành đến các thầy cô trong khoa CNTT - Trường Đại
học Công Nghệ vì những kiến thứ
c quý báu mà các thầy cô đã truyền dạy trong bốn năm vừa
qua. Những kiến thức này có giá trị đối với chúng em trong quá trình thực hiện luận văn,
cũng như trong quá trình xây dựng sự nghiệp trong tương lại.
Cảm ơn bạn bè đã luôn bên cạnh giúp đỡ hướng dẫn tôi trong quá trình nghiên cứu,
tìm hiểu khóa luận này.
Cuối cùng con xin cảm ơn bố mẹ và các anh chị đã luôn động viên giúp đỡ con vượt
qua những khó khăn
để hoàn thành khóa luận này.
Mặc dù đã rất cố gắng tập trung nghiên cứu khóa luận song sẽ không tránh khỏi
những thiếu sót mong các thầy cô thông cảm.

Chân thành cảm ơn












2

Tóm tắt

Trong luận văn này chúng tôi xin trình bày những hiểu biết của mình về những
vấn đề sau đây:
• Rút trích đặc trưng về giai điệu từ một đoạn thu âm của người dùng
• Biểu diễn đặc trưng giai điệu phù hợp cho quá trình tìm kiếm
• Phương pháp tìm kiếm hay truy vấn giai điệu mong muốn trong cơ sở
dữ liệu trên đặc trưng đã chọn
Âm thanh truy vấn được thu âm từ người sử dụng sẽ được rút trích đường biểu
diễn cao độ (pitch sequence) hay còn gọi là tần số cơ bản f
0
. Chuổi cao độ sẽ được
dùng để tính đặc trưng đường biên giai điệu và đặc trưng này sẽ được dùng trong quá
trình tìm kiếm với phương pháp Dynamic Time Warping (DTW)
Khóa luận tốt nghiệp này được thực hiện trong khuôn khổ đề tài nghiên cứu
mang mã số QC.08.01, Đại học Quốc gia Hà Nôi.














3
Mục lục













Danh mục hình vẽ






Danh mục các từ viết tắt






4
Từ viết tắt Tiếng anh Tiếng việt
QBH Query by humming Truy vấn bởi giai điệu
SIFT Simple inverser filter tracking Bộ lọc nghịch đảo đơn giản
ACF Autocorrelation function Hàm tự tương đồng
DNA Deoxyribo Nucleic Acid Chuỗi axit
HMM Hidden Markov Model Phương pháp ẩn Markov
MMDBMS Multimedia Database
Management Systems
Các hệ thống quản lý cơ sở dữ liệu
đa phương tiện
MELDEX Melody Index Chỉ mục giai điệu
DTW Dynamic Time Warping Thuật toán thời gian động Warping
KNN
K-nearist neighbour
K- hàng xóm gần nhất
MIDI
Musical Instrument
Digital Interface
Giao diện kỹ thuật số dành cho nhạc
cụ
CSDL
Database Cơ sở dữ liệu
RA
Recursive Alignment

Thuật toán đệ quy
MSN
Microsoft Network
Dịch vụ Internet cung cấp bởi Microsoft

QBSH
Query by Singing/Humming
Truy xuất bởi giai điệu và lời hát
MaART
Musical and Audio Retrieval tools
Công cụ tìm kiếm nhạc
MIR
Muscal Information Retrieval
Hệ thống tìm kiếm âm nhạc

5
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 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.
Trong luận văn này tôi sẽ trình bày những hiểu biết của mình về một hệ
thống tìm kiếm âm thanh dựa vào giai điệu được hát ngân nga (humming) từ người
dùng. Đề tài:”Hệ thống tìm kiếm âm thanh QBH trong cơ sở dữ liệu đa phương tiện
và ứng dụng”
Chương 1 Giới thiệu về hệ thống tìm kiếm â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

6
Chương 1. GIỚI THIỆU VỀ HỆ THỐNG QUERY BY HUMMING (QBH)
1.1 Giới thiệu
Hệ thống truy vấn Query by Humming (QBH) là một hệ thống được phát triển
dựa trên nền một hệ thống cơ bản gọi là MIR (Music information retrieval). Mục đích
của hệ thống MIR để xử lý thông tin âm nhạc và tìm kiếm cơ sở dữ liệu âm nhạc bởi
nội dung. MIR là một hệ thống bao gồm nhiều ngành khoa học nghiên cứu về việc
truy xuất thông tin từ âm nhạc. Bao gồm:
• Các phương pháp tính toán cho việ
c phân lớp, lấy mẫu, phân cụm – sự trích
chọn đặc trưng nhạc với dạng đơn và đa âm, việc ghép nối, lấy mẫu tương tự,
và sự truy xuất.
• Theo các phương pháp và cơ sở dữ liệu thông thường, những ứng dụng của
việc phát hiện và nhận dạng âm nhạc một cách tự động, phần nhạc đệm tự

động, sự định tuyến và l
ọc cho các bản nhạc và các truy vấn nhạc, ngôn ngữ
truy vấn, các chuẩn và siêu dữ liệu khác hoặc các giao thức cho việc xử lý và
truy xuất nhạc, các hệ thống đa xử lý và sự phân bổ tìm kiếm
• Phần mềm cho MIR là các trang web có ý nghĩa các chủ đề nhạc số, các
phương thức thông minh, các phần mềm cộng tác liên quan, tìm kiếm cơ bản
trên web và sự truy xuất có ý nghĩa (semantic retrieval), tìm kiếm bởi giai điệu
(QBH), nhận dạ
ng âm thanh (acoustic fingerprinting).
• Sự nhận dạng bản nhạc, sự hiểu biết, sự ảnh hưởng và các cảm xúc – các chuẩn
đo độ tương tự âm nhạc, các tham biến có cú pháp, các tham biến có ý nghĩa,
các mẫu nhạc, cấu trúc, kiểu và thể loại, các phương pháp luận giải thích về âm
nhạc
• Sự phân tích âm nhạc và trình bày các kiến thức tổng kết tự đông, trích dẫn, sự
xuống cấp, sự chuyể
n đổi, các mẫu hình thức của âm nhạc, các khía cạnh về số
hóa và những đặc trưng, chỉ mục âm nhạc và siêu dữ liệu. Phân tích lý thuyết
vo hướng âm nhạc là một sự bổ sung cho sự tìm kiếm âm nhạc MIR với những
từ khóa và quy mô của tín hiệu âm nhạc mù là một sự theo đuổi không bình
thường.

7
Sau đây chúng ta cùng tìm hiểu về phương pháp tìm kiếm âm nhạc dựa vào giai
điệu qua hệ thống QBH dưới đây.
1.2 Cấu trúc của hệ thống Query by humming (QBH)
QBH (Query by humming) là một hệ thống truy vấn dựa trên nền tảng cơ bản
về nội dung của hệ thống tìm kiếm âm nhạc MIR [phần 1.1 ở trên]. Hệ thống truy vấn
thông tin âm nhạc sẽ nhận thông tin giai điệu truy vấn từ người dùng và trích xuất
thông tin đặc trưng cần thiết của giai điệu. Đặc trưng giai điệu sẽ được đem so sánh
với những đặc trưng giai

điệu có sẵn trong cơ sở dữ liệu. Hệ thống trả về danh sách
các bài hát có giai điệu tương đồng, được sắp xếp theo thứ tự nhất định. [5, 6, 11]
Ta thấy, hệ thống cần những phần xử lý như sau. [Xem chi tiết Hình 1]
• Xử lý tín hiệu truy vấn từ người dùng: Nhận giai điệu truy vấn từ người dùng
và rút trích đặc trưng thích hợp
• Biểu di
ễn đặc trưng: thông tin giai điệu của bài hát trong cơ dữ liệu cũng như
trong tín hiệu truy vấn được biểu diễn dưới dạng thích hợp để sử dụng trong
quá trình tìm kiếm.
• Tìm kiếm (Matching module): Đặc trưng giai điệu được đem so sánh với các
đặc trưng có sẵn trong cơ sở dữ liệu. Trong quá trình xử lý này, điểm đánh giá
đọ tương đồng sẽ được tính cho các bài hát. Kết qu
ả trả về sẽ là một danh sách
có thứ tự các bài hát trong cơ sở dữ liệu.
Mô hình đơn giản của một hệ thống truy vấn thông tin âm nhạc dựa trên giai điệu
được biểu diễn hình dưới đây:

8

Hình 1: Mô hình hệ thống truy vấn thông tin âm nhạc bằng giọng hát hoặc giai điệu

Có những hệ thống lại được cấu tạo khác đôi chút giống như hệ thống Sloud
QBH cơ bản dựa theo cấu trúc cơ bản của hệ thống QBH ở trên nhưng có phần khác:
Cấu trúc của một hệ thống tìm kiếm Sloud QBH bao gồm hai phần là khách và phần
chủ - bao gồm các cơ sở dữ liệu các giai điệu. [5]
9 Phần khách của máy là một giao diện web nhận dạng và
định vị trí các nốt của
một giai điệu được huýt sáo vào. Phần này dùng để chuyển đổi một truy vấn
sang định dạng mà cho phép việc tìm kiếm trở nên thiết thực.
9 Phần chủ có nhiệm vụ nối truy vấn mà được đưa đến với các đoạn giai điệu

trong cơ sở dữ liệu để trả về kết quả cho người dùng.
9 Sơ
đồ minh họa như sau :

9


Hình 2: Sơ đồ máy tìm kiếm QBH khác

Máy tìm kiếm QBH thực hiện những chức năng sau:
a. Cung cấp âm thanh được “hum” vào dưới dạng MIDI, ví dụ nhận dạng cao
độ và thời gian mà các note được hum vào.
b. Cung cấp sự biểu thị của việc nhận dạng đường viền cao độ trong khi đang
hát trong thời gian thực;
c. Cho phép chơi lại giai điệu nhận dạng, biến đổi trong MIDI, trước khi đưa ra
truy vấn
d. Tạo chỉ mục giai điệu và gửi m
ột truy vấn đến mạng chủ Sloud QBH
e. Cung cấp việc bố trí các đại diện các note tìm kiếm và kết kết quả trả về [5]

10
1.3 Những ảnh hưởng đến việc tìm kiếm chính xác và hiệu quả [6]
1.3.1 Người không thể đưa ra một truy vấn hoàn hảo
Dù là người dùng có trí nhớ hoàn hảo về từng giai điệu khác nhau, người đó có
thể bắt đầu tại một khóa sai hoặc là có thể truy vấn nhiều nốt tắt cao độ ở trên khắp
giai điệu. Thỉnh thoảng có thể bỏ rơi vài nối hoặc thêm vào vài nốt mà nó không tồn
tại trong giai điệu bình thường. Thêm vào đó, không người dùng nào mong đợi có thể
hát hoàn hảo đúng nhịp điệu như bài hát chứa trong cơ sở dữ liệu. Cuối cùng, bởi vậy
không ai chấp nhận các khác một cách qua lại một truy vấn hum vào có thế chứa bất
kỳ một sự kết hợp của các nối này.

1.3.2 Bắt chính xác cao độ và các nốt từ việc ngân nga giai điệu của người dùng
Việc bắt chính xác cao độ và trường độ từ truy vấn của ngườ
i dùng đưa vào thì
rất khó thực hiện.
1.3.3 Thu vào thông tin giai điệu từ một file nhạc ghi.
Khó để thực hiện điều này vì việc đưa ra một cách đúng đắn giai điệu từ một
bài hát được đưa ra là một trường nghiên cứu trên bản thân nó nhưng hoàn toàn chỉ
trích bởi một truy vấn chính xác bởi CSDL. Tạo một truy vấn hoàn hảo sẽ ít dùng nếu
cơ sở dữ liệu chứa nh
ững đại diện không chính xác của các bài hát. [6]
1.4 Những thách thử chính [8]
1.4.1 Sắp xếp một tập dữ liệu thích hợp cho bài
Các tập hợp âm nhạc có thể được chia ra một cách ngắn gọn thành hai loại:
những cái mà cung cấp các bài hát hoặc các phần nhỏ của bài hát như là các âm thanh
số, cái mà ghi lại dưới dạng sóng, và những phần cung cấp chúng như là việc sao chép
các chuỗi của những trường hợp riêng biệt ví dụ như các note (với cao độ và trường
độ) và các dấu lặng.Thật khó trong việc s
ắp xếp bao hàm nhiều khía cạnh, chất lượng
cao, tổ chức tốt các tập hợp nhạc chính xác.
1.4.2 Sao chép lời hát thành các nốt
Khi người dùng hát hoặc huýt sáo đưa vào các giai điệu thì việc chuyển đổi
chúng thành các nốt thì đang là vấn đề bởi vì người dùng được phép ghi lại giai điệu

11
bất cứ cách nào họ thích, với việc không thắt chặt các yêu cầu với họ thường thì có
vài vấn đề xảy ra trong việc ghi lại chúng là:
• Tiếng ồn bên ngoài vượt mức
• Giai điệu lệch lạc
• Sự thổi, huýt ngoài micro, là nguyên nhân những tiếng gió ồn che mất
những giai điệu đưa vào

• Hát với giai điệu thay vì những nốt thuần túy
• Hát với âm thanh thay đổ
i
• Hát quá nhanh
• Âm lượng ghi thấp
• Việc thu phức điệu (như là sự chơi trên piano hoặc guitar )
• Các nốt được hát , chơi với âm lượng khác nhau khá lớn
• Sự xen kẽ giữa việc hát, huýt sáo, giữa việc hát và humming…
Rất nhiều vấn đề nghe được trong quá trình ghi vì vậy việc xử lý âm thanh đầu vào rất
phức tạp.
1.4.3 Việc ghép nối giai điệu truy vấn với cơ s
ở dữ liệu:
Đầu tiên chúng ta định nghĩa vài thuật ngữ. Chúng ta định nghĩa một điệu hát
bao gồm có giai điệu và nhịp điệu với một chuỗi các note ví dụ như một đoạn giai
điệu thì là một cặp của các chuỗi có độ dài bằng nhau, một chuỗi biểu thị cao độ của
mỗi nốt và trường độ của mỗi nốt.Giai điệ
u mà người dùng đưa vào được gọi là truy
vấn và một điệu nhạc đưa ra trong tập dữ liệu âm nhạc được gọi là điệu nhạc kết quả.
Việc xử lý của việc tìm kiếm một giai điệu kết quả mà giống nhất với giai điệu truy
vấn được gọi là thuật toán tìm kiếm và ghép nối xấp xỉ hoặc ghép chính xác, trong các
trường hợp mà các lỗi
được hoặc ko được giải thích, một cách tương ứng. Phần trung
tâm của hệ thống là thuật toán ghép nối. Nó thì khó bởi nó cần được giải thích các lỗi
và xử lý chúng.
Xử lý việc sao chép từ âm thanh ghi lại thành một chuỗi các nốt:

12
• Các nốt bị sai (Các nốt biểu thị trong bản ghi nhưng không tìm ra bởi
thuật toán sao chép)
• Sai vị trí (các nốt trong bản ghi được định dạng sai)

• Những nốt tắt bởi một nửa cung (định vị cao độ một cách không chính
xác)
• Sự chèn vào (một nốt lạ được chèn vào bởi một sự cố nào đó)
• Sự xóa (Một nốt bị nhầm, trễ hoặc thi
ếu)
• Sao chép (người hát vào thay đổi việc sao chép tại vài điểm trong truy
vấn, tạo nên một chuỗi nhỏ các nốt truy vấn cao hơn hoặc thấp hơn các
nốt kết quả)
Giai điệu thay đổi
Người hát có thể thay đổi một phần của giai điệu truy vấn tương tự với sự
chuyển giọng
Không tích lũy các nốt cục bộ
Một nốt riêng có th
ể hát không có cao độ hoặc có thể quá dài hoặc quá ngắn.
Điều này khác với việc sao chép và thay đổi giai điệu trong mà chỉ một nốt
riêng đó bị ảnh hưởng
Tích lũy các nốt cục bộ
Một lỗi cục bộ mà ảnh hưởng đến chuỗi nhỏ các nốt, ví dụ như một nốt quá là
nguyên nhân nốt sau quá ngắn trong việc thử của mọi người để thu được nhịp
đ
iệu đúng.
Có hai cách cơ bản đi đến việc tìm kiếm cho một giai điệu trong một tập cơ sở dữ liệu
các bài hát. Một là chúng ta so sánh giai điệu truy vấn với mỗi phần có thể của giai
điệu trong bài hát (giai điệu bắt đầu tại mỗi nốt trong mỗi bài hát,việc làm cơ bản số
lượng các nốt xấp xỉ bằng với số các nốt và lớ
n hơn nó nếu chúng ta cho phép biến
đổi và chuyển đổi của các nốt) hoặc chúng ta chuẩn bị chỉ mục cho tất cả các nốt này
và dùng chỉ mục đó để định vị một cách nhanh chóng giai điệu mà chúng ta đang tìm
kiếm. Xem [5]


13
1.5 Các hệ thống truy vấn thông tin âm nhạc hiện nay
Việc truy vấn thông tin âm nhạc hiện nay đã trở nên ngày càng phổ biến.
Những hệ thống truy vấn thông tin liên quan đến âm nhạc trước đây được
phát triển theo hướng cho những người có hiểu biết về âm nhạc dùng để phân tích
những tác phẩm âm nhạc. Trong khi đó, những hệ thống gần đây lại hướng đến ngƣời
dùng thông thường và mang tính thương mại; nhiều ứng dụng có giao thức Web. Truy
vấn b
ằng giọng hát là một phương pháp gần gũi với người dùng thông thường
trong các phương pháp truy vấn thông tin âm nhạc. Trong những hệ thống này, một
đoạn thu âm của giọng hát hay ngân nga từ người dùng sẽ được biến đổi và bài hát có
thông tin tương ứng với đoạn thu âm sẽ được trả về từ cơ sở dữ liệu. Các kết quả sẽ
được sắp xếp theo thứ tự dựa trên tính gầ
n giống với bản thu âm của mẫu truy
vấn (xem Hình 1). Hệ thống phải xử lý để chấp nhận những lỗi từ việc hát không
chính xác hoặc nhớ không chính xác giai điệu cũng nhận lỗi từ việc rút trích đặc trưng
của mẫu âm thanh truy vấn. Trong phần này, chúng ta sẽ xem xét một vài hệ
thống truy vấn âm nhạc và những đề tài nghiên cứu có liên quan. Xem trong
[Chương 5 của 16]
1.5.1 Shazam
Hiện nay, trong nước chưa có đề
tài nghiên cứu nào về truy vấn thông
tin âm nhạc được công bố rộng rãi.Shazam ( là một
ứng dụng dùng để nhận dạng bản thu âm thông qua hệ thống mạng điện thoại di
động. Người dùng có điện thoại di động có thể sử dụng dịch vụ này ở khắp mọi nơi có
tiếng nhạc. Đây là dịch vụ thương mại kèm theo việc bán các tác phẩm âm nhạc số
qua mạng đi
ện thoại di động.
1.5.2 Midomi
Đây là một ứng dụng web cho phép người dùng tìm kiếm bài hát từ một đoạn

giai điệu do chính người dùng hát. Hệ thống hoạt động theo hướng query-to-query
(tìm kiếm những câu truy vấn tương đồng mà kết quả đã biết trước). Dịch vụ tìm kiếm
miễn phí đi kèm với việc bán những bản thu âm qua mạng (dưới dạng MP3 hoặc đĩa
CD). Từ đây hai ứ
ng dụng trên, ta có thể thấy được ý nghĩa thương mại to lớn của
dịch vụ truy vấn âm nhạc. (

14

1.5.3 CatFind
Catfind là một ứng dụng trên internet dùng để tìm kiếm âm nhạc, thực hiện bởi
trường đại học Hồng Kông. Phiên bản đầu tiên của ứng dụng cho phép tìm kiếm theo
đường biên giai điệu hay theo chuỗi những note cho trước (như là Đô-Rê-Mi…). Việc
biểu diễn Đường biên giai điệu được thực hiện bởi các ký kiệu „/‟, „-‟, và „\‟.
Như vậy, bài hát “Happy Birthday” sẽ được biểu diễn thành „-/\/\\-/\/\‟
. Hiện tại, hệ
thống không nhận đường biên giai điệu trực tiếp từ người dùng, nhưng vẫn giữ cơ chế
này để tìm kiếm.
1.5.4 Echo
Echo là hệ thống tìm kiếm dựa theo giai điệu từ giọng hát của người dùng. Hệ
thống được phát triển bởi Tomonari Sonada et al, đại học Waseda University, Tokyo.
Pitch tracking được thực hiện tại một chương trình ở máy client, sau đó client sẽ gửi
đặc tr
ưng truy vấn lên máy chủ và nhận về kết quả.
Hệ thống Echo sử dụng hai phương pháp để làm tăng kết quả tìm kiếm.
Phương pháp thứ nhất là sử dụng ngưỡng động để phân lớp pitch contour. Thay vì
chấp nhận xếp vào lớp Up (U) khi giá trị cao độ của note hiện tại lớn hơn giá trị cao
độ của note liền trước, Echo phân tích những bài hát trong cơ sở dữ liệu và xác định
ngưỡ
ng thích hợp. Phương pháp tương tự cũng áp dụng với rhythm contour

Một hướng khác để làm tăng hiệu quả của hệ thống là sử dụng càng
lúc càng nhiều lớp melodic contour để so sánh với cơ sở dữ liệu cho đến khi còn ít
hoặc chỉ một bài trong kết quả. Hệ thống sẽ bắt đầu với 3 lớp pitch contour, sau đó sẽ
tăng lên đến 9lớp, và nếu kết quả vẫn còn quá nhi
ều bài hát, số lớp pitch contour sẽ
tăng lên đến 27 lớp.
1.5.5 Query by humming
Ghias et al sử dụng đặc trưng melodic pitch contour, nhưng dùng ký tự
S (Same) thay cho ký tự R (Repetition) để biểu diễn giai điệu và đánh giá độ tưong
đồng của các đặc trưng. Cơ sở dữ liệu bao gồm 183 bài hát. Hệ thống hỗ trợ tìm kiếm
tại bất kỳ vị trí nào trong bản nhạc và hỗ trợ file midi đa âm sắc. Tuy nhiên,

15
phần pitch tracking khá chậm và là phần tốn nhiều thời gian nhất trong toàn hệ
thống. Thời gian tìm kiếm sẽ chậm đáng kể nếu như có nhiều bài hát trong cơ sở dữ
liệu. Cũng do nhược điểm của việc hỗ trợ MIDI đa âm sắc, nhiều thông tin
không cần thiết (không phải thông tin giai điệu như tiếng trống, tiếng nhạc cụ
đệm…) vẫn làm tốn thời gian tìm kiế
m.
1.5.6 Vocal Search
Hệ thống tìm kiếm trực tuyến được phát triển bởi Bryan Pardo et al (Trường
đại học Northwestern, USA). Nhóm nghiên cứu sử dụng đặc trưng Pitch Interval để
biểu diễn và phương pháp Local String Alignment (tham khảo phần 2.3.4.2) để tìm
kiếm giai điệu. Ứng dụng được xây dựng trên nền Java Applet và cơ sở dữ liệu gồm
những bài hát của ban nhạc The Beatles.
Biểu diễn Pitch Interval được phát triển dựa trên biểu diễn pitch
contour và rhythm contour. Trong đ
ó thay vì phân độ sai khác vào các lớp U, D, R,
pitch interval sử dụng hiệu cao độ (đơn vị semitone) giữa hai note liền kề làm
giá trị cho pitch contour. Rhythm contour được sử dụng như khái niệm nguyên thuỷ

(gồm S, L, và R), nhưng được phân chi tiết làm 5 lớp con. Một Pitch Interval được
đặc trưng bởi hai thông số là pitch contour (hiệu cao độ hai note liền kề) và rhythm
contour.
Hiện nay, nhóm đang nghiên cứu cách xây dựng những thông tin người
dùng (user profile), bao gồm những thông số về các ngưỡng phụ thuộc vào từng ng
ười
dùng nhất định, để làm tăng kết quả của hệ thống. Thông tin người dùng được xây
dựng trên mô hình lập trình tiến hóa. Bạn có thể tham khảo trên webite này:


1.5.7 Nhóm nghiên cứu trường đại học Tsing Hua, Đài Loan
Roger Jang et al đã có những đóng góp lớn trong lĩnh vực truy vấn âm nhạc
bằng giọng hát. Nhóm nghiên cứu đã thực hiện một bộ dữ liệu QBSH Corpus với 48
bài hát và 2797 tập tin thu âm truy vấn mẫu. Dữ li
ệu này rất có ích cho việc phát triển
và đánh giá độ tốt của những hệ thống truy vấn âm nhạc bằng giọng hát. Nhóm cũng
đã đề xuất sử dụng đặc trưng continuous pitch (hay pitch sequence) trong tìm kiếm

16
giai điệu và cũng đã đề xuất sử dụng những phương pháp tìm kiếm dựa trên đặc trưng
này như: Linear Scaling và Dynamic Time Warping (xem phần 2.3.2). Roger Jang và
Hong-Ru Lee đã phát triển phương pháp Progressive Filtering và ứng dụng vào truy
vấn âm nhạc. Đây là phương pháp giúp truy vấn trên cơ sở dữ liệu lớn. Việc này đem
lại nhiều hứa hẹn cho ứng dụng thương mại hoá về truy vấn âm nhạc bằng giọng
người hát.
1.5.8 MusArt
MusArt là một dự án nghiên đang nghiên cứu và phát triển công nghệ mới cho
MIR. MusArt viết tắt bởi Music Analysis and Retrieval Technology. Nó dùng cho
việc tiếp cần chủ đề, được đề cập sớm hơn bởi việc xây dựng tự động một chỉ mục
thuộc các phần của âm nhạc trong cơ sở dữ liệu của nó. Việc đánh chỉ mục bởi chủ đề

thì là một phương pháp không chính xác, nhưng có thể
cải thiện lớn về sự đúng đắn
và tốc độc của hệ thống truy xuất đang dùng phương pháp này. Bởi vậy trung bình
người bình thường nhớ và yêu cầu chủ đề của một đoạn nhỏ của âm nhạc, hệ thống
dùng phương pháp đó thì có thể tìm kiếm cho những phần nhỏ hơn.Tham khảo tại
music/search.
1.5.9 MELDEX
The New Zealand Digital Library’s MELody inDEX (MELDEX) chuyển đổi
trướ
c sang dạng xử lý tín hiệu số, công nghệ biểu diễn âm nhạc và phần cứng máy
tính để chuyển dổi các giai điệu một cách tự dộng từ micro. Nó được tạo ra cho những
người quản lý thư viện người mà thường yêu cầu tìm một phần của âm nhạc dựa trên
một vài note được hát vào. Nó được thiết kế lại để trong các phần mềm ứng dụng thư
viện số. M
ột phân tích cho việc dùng logs đã chỉ ra mà hầu hết nguwofi dùng thì đang
đưa một truy vấn text trên một chủ đề không chắc chắn để thấy tràng các giai điệu
(tunes) kết quả của việc tìm kiếm. Một người có thể cũng tìm kiếm cơ sở dữ liệu bởi
việc chơi truy vấn bởi bàn phím ảo trên một trang web. Thiết kế, tạo và được sử dụng
cho mỗi mục đích riêng, c
ơ sở dữ liệu được làm đầy với 9000 đoạn nhạc và có thể
được tìm kiếm (

17
Chương 2. CÁC VẤN ĐỀ NGHIÊN CỨU LIÊN QUAN
2.1 Các công cụ hỗ trợ xử lý âm thanh
2.1.1 Praat
Praat là một chương trình dùng để phân tích và tổng hợp lời nói được viết bởi
Paul Boersma och David Weenik tại University của Amsterdam, Department of
Phonetics. Praat phân tích tín hiệu đơn sắc. Praat hỗ trợ khả năng quan sát trực tiếp
các tham số như tần số cơ bản F

0
, cường độ, trường độ, formant … trên tín hiệu
tiếng nói, đồng thời cung cấp các chức năng cho phép trích chọn tham số đó phục vụ
cho các nghiên cứu khác nhau. Bên cạnh đó Praat còn có khả năng cho phép người
sử dụng xây dựng các chương trình tính toán, trích chọn, biểu diễn các tham số một
cách tự động bằng cách cung cấp chức năng viết script rất linh hoạt. [6]
2.1.2 Matlab [6]
Một đề tài như một hệ thống tìm kiếm truy v
ấn bởi giọng hát phải giải quyết
với việc xử lý lượng lớn các ma trận và nó cần được xử lý nhanh một cách có thể và
có hiệu quả nhất có thể. Thực thi tốt nhất là kênh truy cập với phần nào các phần
mềm được thiết kế để copy các ma trận và tương tự như thế, cũng có thể gọi là
chương trình phân tích tích hóa. Có nhiều chương trình phân tích số hóa trên thị
trường có thể k
ể đến như:
• Gaus từ các hệ thống Aptech
• Maple từ waterloo Maple Sofeware
• Mathematica từ Wolfram Research
• Matlab từ The Mathworks..
• O-Matrix from Harmonic Software (www.omatrix.com
)
• OxMetrics(Ox Prof.) from Timberlake Consultants Ltd. (www.oxmetrics.net
)
• Scilab from INRIA (www.scilab.org
)
Matlab là một ngôn ngữ bậc cao và tương tác với môi trường nó cho phép
bạn thực thi các nhiệm vụ một cách hiệu quả sự tính toán nhanh hơn các ngôn ngữ của

18
các trương trình truyền thống như C, C++ và Fortran.” Theo các tài liệu từ các tên đã

được gợi ý, Matlab được thiết kế để thực hiện việc tính toán ma trận một cách có hiệu
quả đặc biệt. Matlab có nhiều bộ dụng cụ cho phép thực thi nhiều nhiệm vụ, bao gồm
cả việc xử lý tín hiệu.
Với khóa luận này bộ công cụ nhóm thứ 3 được sử dụng để truy cập một micro
dùng Matlab và dùng Matlab để đọc file MIDI d
ưới dạng một ma trận. Các bộ công
cụ đó là MIDI dùng cho Matlab bởi Ken Schutte và việc ghi lại và phân tích lời nói.
Xem chi tiết [6]
Matlab có thể đọc trực tiếp các tín hiệu audio do người dùng huýt, thổi hoặc
hát vào qua micro bằng định dạng lệnh :
y = wavrecord(n, fs);
n là số lượng mẫu được ghi lại, fs là tần số lấy mẫu.
Chúng ta cũng có thể ghi files âm thanh “wav”bằng việc dùng Matlab với lệnh
wavwrite như sau:
y = wavwrite(y, fs, nbits, waveFile);
Với y là dữ liệu âm thanh, fs là tầ
n số lấy mẫu, nbits là độ phân giải bít và
wavFile là file dạng wav được ghi vào. Xem chi tiết [25, 26]
Trong Matlab hỗ trợ rất nhiều hàm và công cụ hữu ích cho việc xử lý, phân
tích âm thanh từ micro. Nó cho phép bạn thao tác dễ dàng với các tín hiệu âm thanh
đầu vào thu được.
2.2 Biểu diễn nội dung dữ liệu
Lựa chọn phương pháp biểu diễn dữ liệu là điều rất quan trọng, vì nó ảnh
hưởng đến phương pháp truy vấn, tìm kiếm dữ liệu, và những thuật toán thực thi trên
dữ liệu. Chẳng hạn, văn bản là phương pháp biểu diễn nội dung thích hợp với dữ liệu
là những đoạn thu âm tiếng nói, và với những thuật toán tìm kiếm từ khóa hiện có.
Một vài phương pháp bi
ểu diễn này có thể có được qua việc rút trích đặc trưng từ một
dữ liệu khác, thông thường là ở những mức biểu diễn thấp hơn (chẳng hạn thông qua
những định dạng WAV hay MIDI). Có thể nói, rút trích đặc trưng là một công việc

biến đổi đặc trưng từ những biểu diễn trên tầng thấp đến biểu diễn trên tầng cao và

19
trừu tượng hơn. Những phương pháp biểu diễn nội dung dữ liệu âm nhạc hiện nay rất
nhiều và đa dạnh. Các phương pháp biểu diễn đặc trưng này lại thích hợp với nhiều đề
tài cụ thể. Vì 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 p
i,
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 p
i
đế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 {(x
i1
, y
j1
), (x
i2
, y
j2
),…, (x
ik
, y
jk
)} với những ràng buộc sau:
i. Điều kiện ràng buộc biên: (i
1
, j
1
) = (1, 1), (i
k
, j
k
) = (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

×