在本論文中,我們使將哼唱選歌 (Query by Singing/Humming, QBSH)系統中的比對方法,使用平行化的方式實作至GPU上。此系統可提供使用者哼或唱一首曲子,接著會從資料庫的13000首歌當中,進行比對,最後回傳最相似的歌曲給使用者。 為了減少比對時所需時間,我們同時也針對資料庫進行優化,找出每首歌曲重複出現片段中最長的一段,並將之移除,重複的片段只保留第一次出現的部分。比起未移除前,比對時間縮短了21%。 此外,我們在GPU上提供了兩種不同的哼唱搜尋方式,分別為從頭比對與從任意處比對。在任意處比對方面,我們又探討了不同的平行化實作方式,在不犧牲準確率的情況下,來改進平行化運算的程度。在經過最佳化後,我們使用GPU來加速哼唱選歌效率加快了17倍之多。最後,我們同時也成功地將此哼唱搜尋技術實作至一個公開的線上系統中。
This thesis presents the use of graphics processing units (GPUs) for implementing a parallelized comparison engine in a query-by-singing/humming (QBSH) system, which takes a user's singing or humming input and returns the most likely songs from a database of about 13,000 song tracks. To speed up the comparison, we employ a repeating pattern removal technique to retain only unique tunes in the database. This technique yields a 21% reduction in computing time. Moreover, two comparison methods are provided in the proposed scheme: compare-from-the-beginning and compare-from-anywhere. For the compare-from-anywhere scenario, we explore different parallel schemes in GPU for achieving the best efficiency without sacrificing the retrieval accuracy. With an optimal speedup factor of 17, we have successfully implemented an online and publicly available QBSH system.