BAŞKENT ÜNİVERSİTESİ MÜHENDİSLİK

Transkript

BAŞKENT ÜNİVERSİTESİ MÜHENDİSLİK
BAŞKENT ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ
BİTİRME PROJESİ RAPORU
Otomatik Şarkı Tanıma
Ümit Burak USGURLU
20394676
Bölümü: Bilgisayar Mühendisliği
Proje Danışmanı: Yrd. Doç. Dr. Mustafa SERT
Ders Kodu ve Adı: BİL491 Bitirme Projesi - I
Proje Başlangıcı: 2006/07 Güz Proje Süresi (Yarıyıl): 1
Rapor Sunumu: 2006/07 Güz
I
ONAY
Bu rapor, 22/01/2007 tarihinde aşağıda yazılı jüri tarafından kabul
edilmiştir.
Unvan
Adı Soyadı
Yrd. Doç Dr.
Mustafa SERT
Öğr. Gör.
Kaya KILAN
Öğr. Gör.
Emre SÜMER
İmza
II
ÖZ
Bu raporda sunulan bitirme projesi konusu otomatik şarkı tanımadır.
Projenin hedefi sayısal ortama aktarılmış müziklerden çıkarılacak MPEG7 Audio Spectrum Flatness (ASF) özniteliği kullanılarak müziğin tanınmasını
sağlamaktır. Projede bu işlevi yerine getirecek uygulama yazılmıştır.
Uygulamanın gerçekleştirilmesi için bilgisayarda müzik konusu araştırılmış, ASF
özniteliği ve bu özniteliğe bağlı uzaklık hesaplama yöntemi ile benzerlik çıkarma
araştırılmış, geliştirilmiştir ve bu raporda açıklanmıştır.
Örnek şarkılardan öznitelikler çıkartılmış ve oluşturulmuş veritabanına
eklenmiştir. Daha sonra veritabanına kaydedilmiş müzikler farklılaştırılarak
aranmıştır ve başarı elde edilmiştir.
i
ABSTRACT
The project presented in this report is automatic music recognition.
The aim of the project is recognition of music by extraction of MPEG-7
Audio Spectrum Flatness (ASF) feature off of digitalized music. To accomplish
this task an application has been written. To write this application research on
digital music has been made and research and development has been done on
the method of similarity calculation by using the distance values between two
ASF features.
A database has been created using some example music. Afterwards
some of the added music has been changed and checked upon the database
for similarities and success has been achieved.
ii
İÇİNDEKİLER
ÖZ........................................................................................................................ i
ABSTRACT......................................................................................................... ii
İÇİNDEKİLER .................................................................................................... iii
ŞEKİLLER DİZİNİ .............................................................................................. iv
SİMGELER VE KISALTMALAR DİZİNİ............................................................... v
1. GİRİŞ...........................................................................................................1
1.1. Bilgisayarda Şarkı Tanımanın Önemi ...................................................1
2. ŞARKI TANIMA ...........................................................................................2
2.1. Bilgisayar İle Şarkı Tanımak .................................................................2
2.2. Öznitelik................................................................................................2
2.3. Bir Öznitelik Olarak ASF .......................................................................2
2.4. Üçgen Eşitsizliği İle Arama ...................................................................3
3. VERİTABANI TASARIMI .............................................................................5
3.1. ‘Music’ Tablosu .....................................................................................5
3.2. ‘Distances’ Tablosu...............................................................................6
3.3. ‘album’ ve ‘artist’ Tabloları ....................................................................6
4. UYGULAMA TASARIMI...............................................................................7
4.1. Uygulamanın Yapısı .............................................................................7
4.1.1. Şarkı Ekleme İle İlgili Sınıflar .........................................................8
4.1.2. Özniteliklerin Çıkarılması İle İlgili Sınıflar.......................................9
4.1.3. Referanslar İle İlgili Sınıflar............................................................9
4.1.4. Diğer Önemli Sınıflar ...................................................................10
4.2. Programın Çalışması ..........................................................................11
4.2.1. Ana Ekran....................................................................................12
4.2.2. Yeni Şarkı Ekleme .......................................................................12
4.2.3. Şarkı Arama Ekranı .....................................................................13
4.2.4. Diğer Ekranlar..............................................................................14
5. SONUÇLAR ve ÖNERİLER.......................................................................15
5.1. Çalışma Sonucu Sağlanan Yararlar ...................................................15
5.2. Çıktı Ürünü .........................................................................................15
5.3. Projenin İlerletilmesi............................................................................15
KAYNAKLAR ....................................................................................................16
iii
ŞEKİLLER DİZİNİ
Şekil 1 - Uygulama Mantığı Tasarımı..................................................................4
Şekil 2 - Veritabanı ER Şeması...........................................................................5
Şekil 3 - Sistem Mimarisi.....................................................................................7
Şekil 4 - Şarkı Ekleme İle İlgili Sınıflar ................................................................8
Şekil 5 - Öznitelik Çıkarmak İle İlgili Sınıflar........................................................9
Şekil 6 - Referanslar İle İlgili Sınıflar ...................................................................9
Şekil 7 - Diğer Önemli Sınıflar...........................................................................11
Şekil 8 - Uygulama Ana Ekranı .........................................................................12
Şekil 9 - Şarkı Ekleme Ekranı ...........................................................................12
Şekil 10 - Şarkı Arama Ekranı...........................................................................13
iv
SİMGELER VE KISALTMALAR DİZİNİ
Simge/Kısaltma
Açıklama
ASF
Audio Spectrum Flatness – Ses Spectrum Düzlüğü
Bit rate
Bit oranı, bir örneğin ifade edilmesi için değer aralığı.
FFT
Fast Fourier Transform –
gerçekleştiren hızlı algoritma.
GPL
General Public License – Genel Kamusal Lisans
ID3
Mp3 dosyalarında bulunan katalog bilgisi (metadata).
Mp3
MPEG-1 Audio Layer 3 - Film Uzmanlar Grubu Ses
Katmanı 3
MPEG
Moving Picture Experts Group - Hareketli Görüntü
Uzmanları Birliği
MPEG–7
Multimedia Content Description Interface – Çoklu ortam
İçerik Tanımlama Arabirimi
Sample rate
Örneklem oranı, saniyede alınmış örnek sayısı.
Wav
WAV, İngilizce dalga anlamına gelen Wave kelimesinin
ilk üç harfinin alınmasıyla oluşturulmuştur sayısal
ortamda hiçbir sıkıştırma yöntemi uygulamadan ses
saklama biçimidir.
v
Fourier
dönüşümünü
1. GİRİŞ
Projenin amacı, sisteme ses dosyası (wav, mp3, vb.) olarak verilen
şarkılardan otomatik olarak elde edilen MPEG–7 özniteliklerinden gerekenleri
kullanarak yine dosya şeklinde verilen aranan şarkının tanınmasıdır.
Yarıyıl sürecinde;
•
•
•
•
Şarkı veri formatları araştırıldı ve incelendi.
MPEG-7 spektral öznitelikleri incelendi ve gereken öznitelik otomatik
olarak elde edildi.
Öznitelik veritabanı oluşturuldu.
Sisteme verilen örnek şarkıların tanınması sağlandı.
Tamamlanan proje kapsamında sisteme arayüzü aracılığıyla tanıması
için mp3 ve wav formatlarında yeni şarkı kaydı yapılabilmekte. Sistemin sorgu
ekranı sayesinde sistemin veritabanına kaydolmuş şarkılar içinde arama
yapılabilmektedir.
1.1. Bilgisayarda Şarkı Tanımanın Önemi
Bilgisayarda şarkı tanımak, müzik arşivlemede, müzik lisans sahiplerinin
hakları ve müzik severler için önemlidir. Bilgisayarda şarkı tanımanın
başarılması sonucunda, müzik severlerin “Bu çalan parça ne?” sorusu, müzik
sahiplerinin “Müziğimi kim, nerede, kaç kez çalıyor?” sorusu, müzik arşivcilerinin
“Bu parça arşivimde var mı?” sorusu yanıtlanabilir.
Bu kadar ihtiyaç sahibinin bulunduğu bir alan aynı zamanda bilgisayar
bilimleri için önemli bir araştırma ve uygulama alanını yaratıyor.
1
2. ŞARKI TANIMA
Otomatik şarkı tanımada amaç, farklı biçimlerde sayısal ortama
aktarılmış müzik verisinin bilinen şarkılarla kıyaslanması sonucunda aranan
şarkının sanatçı ve isim bilgilerine ulaşılmasıdır.
2.1. Bilgisayar İle Şarkı Tanımak
Bilgisayarda şarkılar, şarkıdan belli aralıklar içinde alınmış örneklerin ses
şiddetlerine göre, belirlenmiş bir değer aralığında ifade edilmesi ile
tutulmaktadır. Kaliteli denilebilecek bir şarkı saniyede 44100 örnek alınarak ve
her örneğin 16 bit ile ifade edilmesiyle saklanabilir.
Bir şarkının kıyaslanması için farklı yöntemler öne sürülebilir. Bu
yöntemlerden birisi, metin ararken karakterlerin tek tek kıyaslanmasında olduğu
gibi, şarkıların örneklerinin tek tek kıyaslanarak tanınması olabilir. Ancak
şarkıların sayısal ortama aktarılması sırasında kullanılan yöntemler, analog
kayıttaki farklılaşmalar, sayısal kayıttaki sıkıştırma sonucu kayıplar,
kıyaslanacak şarkıların uzunluklarının farklı olması (başında veya sonunda
oluşabilecek boşluklar), vb. nedenlerden dolayı aynı iki şarkı için bile farklı
örneklerin oluşmasına neden olabilir.
Ayrıca 16 bit ile ifade edilen örneklerle saniyede 44100 örnek alınarak
kaydedilmiş 3 dakikalık bir şarkının kıyaslanması için 7,938,000 örneğin yani
15.14MB’lık verinin kıyaslanmasını gerektirmektedir. Bu aşırı bir işlem yükü
gerektiren, verimsiz ve yukarıda anlatılan nedenlerden dolayı başarısızlığa
uğrayacak bir yöntemdir.
2.2. Öznitelik
Örneklerin tek tek karşılaştırılmasına yerine tavsiye edilen yöntem,
tanınmak istenen şarkı için, matematiksel ve algoritmik yöntemler kullanarak
şarkının tamamının ifade edilebileceği, kolayca dizinlenip, aranabilecek, özgün
veri yapılarının yani, özniteliklerin şarkılardan çıkarılmasıdır. [1][2]
Oluşturulacak özniteliğin her müzik için özgün olması gerekmektedir.
Ayrıca öznitelik çıkartma algoritmasının şarkıda meydana gelecek bozulmalar
ve/veya değişmelerden en iyi durumda hiç etkilenmeyerek şarkının farklı kayıt
ortamlarındaki halleri için aynı/benzer sonucu üretmesi gerekmektedir. Bu
şekilde aranan şarkı kayıt edilmiş özniteliklerle kıyaslanarak ve/veya benzeri bir
yöntem uygulanarak bulunabilir.
2.3. Bir Öznitelik Olarak ASF
Bir şarkıdan çıkartılabilecek pek çok öznitelik bulunmaktadır. Ancak
çalışmamızda MPEG-7 standardının [3] bir parçası olan ‘Audio Spectrum
Flatness’ı (ASF) kullandık. MPEG-7 standardı diğer MPEG standartlarının
aksine, çoklu ortam verisinin kodlanması ile ilgilenmek yerine içeriğin
tanımlanmasıyla ilgilenen bir standarttır. [4] Bu standardın bir parçası olan ASF
ses sinyalinin güç spektrumunun düz bir spektrumdan farklılaşmasının
ölçüsüdür [3].
2
Hesaplanması için ilk olarak tek kanallı ses verisinden güç spektrumu
FFT kullanılarak hesaplanır. Güç spektrumu daha sonra önceden belirlenmiş
frekans bantlarına bölünür, ASF verisi oluşan her alt bant için ve her (30ms’lik)
pencere aralığı için spektrum gücünün geometrik ortalamasının aritmetik
ortalamasına oranı olarak bulunur ve aşağıdaki formül ile ifade edilir:
(1)
Bu (1) formüldeki P her alt bandın güç spektrumunu ifade ederken, N
sayısı (1<i<N olmak üzere) alt bandın uzunluğudur. Bu hesaplar sonucu ortaya
çıkan ASF tanımlaması (2), n x m büyüklüğünde bir matristir (n toplam pencere
sayısı, m bölünen alt bant sayısı olmak üzere). Alt bantlardaki her bir
pencerenin düz spektrumdan farklılaşma miktarı ASF’nin satırlarında yer
almıştır. [1]
(2)
Oluşan matris ses sinyalinin güç spektrumundaki düzlüklerin zaman
içinde farklılaşmasını ifade eden vektörel bir değerdir.
2.4. Üçgen Eşitsizliği İle Arama
2.3’de anlatılan yöntemle oluşturulan ASF verisi şarkının uzunluğuna
göre oldukça büyük sonuçlar üretmektedir. Bu sonuçlar içersinde karşılaştırmalı
arama yapmak büyük işlem gücü gerektirecektir. Bunun üstesinden gelmek için
üçgen eşitsizliği [6], yani bir üçgenin bilinen iki kenarının farklarının, uzunluğu
verilmemiş kenardan küçük olacağı, teoreminden faydalanılmıştır. [2]
Bu yöntem ile veritabanına eklenen her şarkının ASF değerinin daha
önceden belirlenmiş bir referans ASF verisine uzaklığı Öklid Uzaklığı (Euclidean
Distance) (3)[5] formülü kullanılarak bulunur ve saklanır.
(3)
Referans verisi herhangi bir şarkı olabileceği gibi özellikle oluşturulmuş
bir ses sinyalinden üretilmiş veride olabilir. Referans verisi temelde
kıyaslanması istenen iki müziğin bu referans verisine ne kadar benzedikleri
3
dolayısıyla birbirlerine ne kadar benzediklerini bulmak için kullanılır. Dolayısıyla
ideal referans verisi her müziğe farklı miktarda benzemelidir, yani referansın
ASF vektörünün tüm müziklerin ASF vektörlerine uzaklıkları farklı olmalıdır.
Referans verisinin kıyaslanan farklı müzik türlerinde farklı başarı gösterdiği
gözlemlenmiştir.
Sistem kullanılarak arama yapılacağı zaman. Aranan şarkının ASF
verisinin hesaplanmasının ardından aynı referans noktasına uzaklığı
hesaplanır. Veritabanında bulunan uzaklıklar ve aranan şarkının referans
noktasına uzaklığına bakılarak, yani üçgen eşitsizliği teoremine dayanarak,
veritabanındaki her şarkının aranan şarkıya benzerliği hesaplanır ve yüzde
değer olarak ifade edilir.
Uygulama aşamasında elde edilen sonuçlarla tek referans noktasının her
müzik türü için yeterli çözünürlük sağlamadığı görülmüştür ve tasarım birden
fazla referans noktası kullanımı üzerine geliştirilmiştir. Bu şekilde her müzik
eklendiğinde birden fazla referans noktasına uzaklığı hesaplandı ve saklandı.
Arama yapıldığı zaman, aranan şarkının tüm referans noktalarına göre
uzaklıkları hesaplanarak tüm referans noktaları için tüm şarkılara benzerlikleri
çıkartıldı. Sonuç benzerliğinin bulunması için tüm benzerliklerin ortalamaları
alındı.
Araştırmalar sonucunda geliştirilen uygulama mantığı tasarımında, veri
akışı (arama işlemi için) Şekil 1’de gösterildiği gibi gerçekleştirilmiştir.
Şekil 1 - Uygulama Mantığı Tasarımı
4
3. VERİTABANI TASARIMI
Veritabanı tasarlanırken tasarımın sade ve
amaçlandı. Veritabanı dört adet tablodan oluşmaktadır.
fonksiyonel
olması
Şekil 2 - Veritabanı ER Şeması
3.1. ‘Music’ Tablosu
‘Music’ tablosu içersinde birincil anahtar olarak ID sütununu barındırır. Bu
şekilde veritabanına eklenen her müziğe biricik bir değer atanmaktadır. Müzik
tablosunda müziğin ismi, sahibi, içinde bulunduğu albüm, çıkış yılı gibi klasik
müzik bilgilerinin yanında ASF bilgisi de saklanmaktadır.
ASF bilgisi tablarla ayrılmış satırlar halinde tutulmaktadır. Bu kısımda
ASF, MPEG-7 [3] standardı çerçevesinde XML olarak tutulabileceği
düşünülmüştür, ancak sadece verinin tutularak XML’deki diğer bilgilerin
gereğinde bu veriden çıkartılarak MPEG-7 ASF XML’i oluşturulabileceği
görüldüğünden yerden tasarruf etmek için bir tasarım kararı alınarak ASF verisi
XML olarak tutulmamıştır.
Bu tabloda ayrıca ‘source’ sütunu bulunmaktadır, bu sütun şarkının
nereden veritabanına eklendiğini göstermektedir (şarkının dosya sistemindeki
yeri), bu şekilde kullanıcıya eşleşen şarkıya bağlantı sağlanmıştır.
Tabloda bulunan son sütun ‘isReference’ sütunudur. Bu sütunun
varsayılan değeri sıfırdır ve ilgili kayıtın referans verisi olup olmadığı bilgisini
tutmaktadır. Eğer ilgili kayıt bir referans ise bu sütuna kaçıncı referans olduğu
yazılmaktadır.
5
3.2. ‘Distances’ Tablosu
‘Distances’ tablosu 2.4’de anlatılan belirlenmiş birden fazla referansa
verisine göre hesaplanan uzaklık değerlerini tutmak için kullanılmıştır. Her bir
referans verisi için yeni bir ‘distance’ sütunu yaratılmaktadır ve referans verisinin
‘music’ tablosunda bulunan isReference değerine göre numaralandırılmaktadır.
Öyle ki, ‘distanceN’ sütununun referans verisi ‘music’ tablosundaki ‘isReference’
değerinin N’e eşit olduğu kayıttır.
3.3. ‘album’ ve ‘artist’ Tabloları
‘album’ ve ‘artist’ tabloları şarkıların albüm isimlerini ve sanatçılarını
tutmak için kullanılmıştır. İki tabloda da isimler birincil anahtarlar ile
eşleştirilmiştir. ‘album’ tablosunda ayrıca birden fazla albümün aynı isimde
olabileceği ancak farklı sanatçılar tarafından oluşturulabileceği düşünülerek
‘artistID’ sütunu barındırmaktadır.
6
4. UYGULAMA TASARIMI
Uygulama C# platformu kullanılarak Visual Studio 2005 ortamında
geliştirilmiştir. Geliştirme ortamı olarak C# dilinin tercih edilmesinin nedenleri
olarak; hızlı uygulama geliştirme olanağı ve hazırda bulunan sınıflar
sıralanabilir. Geliştirme sonucunda bu dilin bu iş için uygun olduğu görülmüştür.
Uygulamanın üreteceği verileri tutmak için veritabanı olarak MS SQL
Server 2005 tercih edilmiştir. Tercihteki nedenler olarak C# ve Visual Studio
2005 ile MS SQL Server’ın verimli çalışmaları gösterilebilir.
Kullanıcı
Windows
Form
Arayüzleri
Sunum Katmanı
Microsoft C#
.NET ile koşan
uygulama
Uygulama Mantığı Katmanı
Microsoft
SQL Server
2005
Veri Katmanı
Şekil 3 - Sistem Mimarisi
Uygulama geliştirirken tamamen nesneye dayalı bir mimari
oluşturulmuştur ve bu çerçevede her öğenin birbirinden bağımsız
geliştirilmesine çalışılmıştır. Bu şekilde uygulama üzerine yapılacak eklentilere
açık hale gelmiştir.
4.1. Uygulamanın Yapısı
Şarkı dosyalarının okunması ve işlenmesi, şarkıdan özniteliklerin
çıkarılması, referanslarla ilgili işlemlerin yürütülmesi ve diğer önemli sınıflar
olmak üzere sınıflar 4 farklı kategoriye ayrılabilir. Ayrıca kullanıcı arayüzleri ve
bazı genel fonksiyonları tutmak içinde sınıflar bulunmaktadır ancak bu raporda
bu sınıfların tanımına yer verilmemiştir.
7
4.1.1. Şarkı Ekleme İle İlgili Sınıflar
Şekil 4 - Şarkı Ekleme İle İlgili Sınıflar
Şarkı tanıma uygulaması iki tür ses dosyasını girdi kabul edecek şekilde
geliştirilmiştir. Wav dosyaları ve mp3 dosyaları. Wav dosyaları temel ses
dosyaları oldukları için, mp3 dosyaları ise çok yoğun kullanılan ses saklama
biçimi oldukları için seçilmiştir. Ancak gerçekleştirilen tasarım ile yeni ses
dosyası türleri, ‘soundFileHandler’ sınıfına dayanarak oluşturulacak yeni sınıflar
ile eklenebilecek şekilde tasarlanmıştır.
Uygulamanın çalışması sırasında bir müzik işlenmek istendiğinde
(eklenmek veya aranmak istendiğinde) ‘soundFileHandler’ sınıfına ait bir nesne
yaratılmaktadır ve ilgili metodlar çağırılarak şarkı veritabanına eklenebilmekte
veya arama işlemi için gerekli değerler üretilebilmektedir.
Bu türe ait olabilecek ‘WaveReader’ sınıfı proje danışmanı Dr. Mustafa
Sert tarafından sağlanmış olup, wav dosyalarının belleğe okunması ve bellekte
tutulması işlemlerini yerine getirmektedir.
8
‘Madxlib’ 1 sınıfı mp3 formatının Wav formatına çevrilmesi için kullanılan
bir sınıftır. ‘madxlib.dll’ dosyasını kullanarak mp3 dosyalarını işlemektedir.
Programda ayrıca mp3 dosyalarının ID3 özelliklerini okumak için ‘ID3Sharp’ 2
kütüphanesinden yararlanılmıştır.
4.1.2. Özniteliklerin Çıkarılması İle İlgili Sınıflar
Şekil 5 - Öznitelik Çıkarmak İle İlgili Sınıflar
Bu türe ait sınıflar proje danışmanı Dr. Mustafa Sert tarafından
sağlanmıştır. ‘AudioSpectrumFlatness’ sınıfı kendisine verilen örneklerden
‘Spectrum’ ve ‘AudioUtils’ sınıfında bulunan metotları kullanarak ASF matrisini
üretir.
4.1.3. Referanslar İle İlgili Sınıflar
Şekil 6 - Referanslar İle İlgili Sınıflar
1
Madxlib GPL olarak değıtılan madlib kütüphanesinin C# dili için uyarlanmasıdır.
http://www.arbingersys.com/madxlib.html
2
ID3Sharp GPL olarak dağıtılan ve ID3 özelliklerini C# diliyle işlemek için geliştirilmiş bir
kütüphanedir. http://sourceforge.net/projects/id3sharp/
9
Uygulamada tasarım aşamasında öngörülen tek referans kullanarak
uzaklık hesaplama yönteminin yeterli başarı elde edemediği görülmesi üzerine
referans sayısının ihtiyaç doğrultusunda arttırılması düşünülmüş ve bu şekilde
başarı sağlanmıştır. Birden fazla referansın kullanılabilmesi için iki sınıf
yaratılmıştır.
‘Reference’ sınıfı bir referans noktası için durumları yönetmektedir.
‘Reference’ sınıfı oluşturulduğunda oluşturulduğu müzik verisini ‘music’ nesnesi
olarak almakta, istendiğinde verilen başka bir ‘music’ nesnesi veya ASF verisi
için kendisine olan uzaklığını döndürebilmektedir. Ayrıca üzerine aldığı ‘music’
nesnesini yeni bir referans noktası olarak da atayabilmektedir ve veritabanında
ilgili değişiklikleri yapmaktadır.
‘References’ sınıfı belirlenmiş tüm referansları ‘Reference’ nesnesi olarak
yüklemekte ve kendisine verilen bir ‘music’ nesnesi için bu referanslara olan
uzaklıklarını döndürebilmekte veya o ‘music’ nesnesini referans noktalarına olan
uzaklıklarını veritabanındaki ‘distances’ tablosuna ekleyebilmektedir.
4.1.4. Diğer Önemli Sınıflar
‘Music’ sınıfı bir şarkının temelini oluşturur ve bütün özelliklerini
barındırır. Şarkının veritabanına eklenmesini, uzaklıklarının hesaplanması, vb.
bütün işlemlerden sorumludur.
‘Loger’ sınıfı programın yürüttüğü işlemlerle ilgili performans kayıtlarını
tutar ve bu bilgileri bir dosyaya yazar.
‘Artist’ ve ‘album’ sınıfı, şarkı albüm ve sanatçı bilgilerinin veritabanına
eklenmesi ve çekilmesi ile ilgili işlemleri yürütür.
‘search’ sınıfı arama işlemlerini yönetmek için kullanılır. İstenen
benzerlikteki müziklerin döndürülmesi için metotlar bulunur.
10
Şekil 7 - Diğer Önemli Sınıflar
4.2. Programın Çalışması
Programda kullanılan kullanıcı arayüzüleri Windows formları şeklinde
tasarlanmıştır. Program bulunulması istenen müziklerin veritabanına program
aracılığıyla kaydedilmesini gerektirir. Sistemin test edilebilmesi için bulunulması
istenen müzikler değiştirilerek (bozularak, arka plan gürültüsü eklenerek)
sistemde aranır. Sonuç veritabanındaki müziklere benzerlik olarak döner.
11
4.2.1. Ana Ekran
Şekil 8 - Uygulama Ana Ekranı
Uygulama ilk çalıştırıldığında karşılaşılan arayüz eklenecek veya
aranacak şarkının seçimi için kullanılacak formdur. Bu formda şarkı, sanatçı ve
albüm tablolarına bakmak için tasarlanan formları açmak için de tuşlar
bulunmaktadır. Ayrıca bu arayüzde yeni referans belirlemek içinde tasarlanmış
forma geçiş için tuş bulunmaktadır.
4.2.2. Yeni Şarkı Ekleme
Şekil 9 - Şarkı Ekleme Ekranı
Yeni bir şarkı eklenmek istendiğinde ana ekrandan bir şarkı seçerek
ulaşılan bu formda eğer seçilen şarkı türü mp3 ise bu türe ait bir özellik olan ID3
tanımlayıcıları (Sanatçı, şarkının ismi, vb. bilgiler) mp3 dosyasından okunmakta
ve formun ilgili yerlerine yerleştirilmektedir. Eğer dosya wav dosyası ise bu
alanlar boş kalmaktadır ve kullanıcıdan girilmesi beklenmektedir. Kullanıcı
girilen verilen doğruluğundan emin olduktan sonra ‘Add’ tuşuna basarak şarkıyı
veritabanına ekleyebilir.
Veritabanına eklenen veriler farklı bit oranlarında farklı örneklem oranları
ile kaydedilmiş olabilir. Tüm dosyalar işlenmeden önce uygulama tarafından
44.1kHz örneklem oranına ve 16 bit oranına uyarlanmaktadır. ASF spektral
12
analiz gerçekleştirdiği için insan kulağı tarafından anlaşılabilir düzeydeki ses
verisi için anlamlı veri çıkartabilecektir.
Yeni şarkı eklerken program sırasıyla,
•
•
•
•
•
•
•
Şarkıyı belleğe alır,
Eğer formatı mp3 ise bunu bellekte wav dosyasına çevirir,
Bellekteki şarkıyı tek kanala (mono) indirir,
Tek kanala inmiş örneklerden ASF verisini çıkartır,
Çıkan ASF verisini ve formda verilen şarkı bilgilerini veritabanına
kaydeder,
o Eğer formda verilen sanatçı ve albüm bilgileri ilgili tablolarda
yoksa bunları ilgili tablolara ekler
Veritabanında otomatik atanmış ID numarasını alır ve her bir referans
için uzaklık hesaplayarak bu uzaklıkları veritabanına kaydeder,
Ekleme işlemi sonlanır.
4.2.3. Şarkı Arama Ekranı
Şekil 10 - Şarkı Arama Ekranı
Kullanıcı bir şarkıyı aramak istendiğinde ana ekrandan aramak istediği
şarkı dosyasını seçer ve arama ekranına geçer. Gelen ekranda eğer dosya mp3
ise ekleme ekranında olduğu gibi ID3 tanımlayıcı özellikleri belirir. Bu bilgilerin
aramada herhangi bir etkisi yoktur sadece kullanıcıyı bilgilendirme amaçlıdır.
Kullanıcı arama yöntemini belirledikten sonra ‘Check’ tuşuna basar.
13
Üç tip arama yöntemi bulunmaktadır.
a. Point Search (Nokta Arama): Bu arama yönteminde aranan şarkıya en
çok benzeye şarkı sonuç olarak döner.
b. Range Search (Aralık Arama): Bu arama yönteminde belirtilen yüzde
aralık içinde benzeyen şarkılar sonuç olarak döner.
c. K-nearest Search: (En yakın k-Arama) Aranan şarkıya en çok benzeyen
kullanıcı tarafından istenen ilk k tane şarkı sonuç olarak döner.
Arama yaparken program sırasıyla aşağıdaki işlemleri yerine getirir
•
•
•
•
•
•
•
Şarkıyı belleğe alır,
Eğer formatı mp3 ise bunu bellekte wav dosyasına çevirir,
Bellekteki şarkıyı tek kanala (mono) indirir,
Tek kanala inmiş örneklerden ASF verisini çıkartır,
Çıkan ASF verisini kullanarak her bir referans için uzaklık hesaplar,
Bu uzaklıklardan üçgen eşitsizliği yöntemini kullanarak bir benzerlik
çıkartır,
Kullanıcının belirlediği arama parametrelerine göre sonuç oluşturulur.
4.2.4. Diğer Ekranlar
Uygulamada bulunan bir form olan New Reference formu veritabanında
bulunan bir parçanın referans noktası olarak atanması için kullanılır.
Uygulamada bulunan diğer ekranlar uygulamada kullanılan veritabanı tablolarını
görüntülemek ve bunları el ile değiştirmek için kullanılır.
14
5. SONUÇLAR ve ÖNERİLER
5.1. Çalışma Sonucu Sağlanan Yararlar
Proje sonucunda bilgisayarda müzik kavramı tanınmış, bu kapsamda
bilgisayarda müziğin ifade edilmesi incelenmiş. MP3 ve benzeri sıkıştırma
yöntemleri incelenmiş bu konularda tecrübe elde edilmiştir.
Müziğin tanınması için yöntemler ve akademik araştırmalar incelenmiş.
Müziğin tanınması için özniteliklerin gerekliliği fark edilmiştir. Özniteliklerin
özellikleri ve çıkarılması ile ilgili bilgi ve tecrübe elde edilmiştir.
Nesne yönelimli programlama, C# dili ile yoğun bir şekilde kullanılmış ve
tecrübe elde edilmiştir. Veritabanı kullanımı ile ilgili tecrübe elde edilmiştir.
5.2. Çıktı Ürünü
Proje sonucunda ortaya çıkan uygulama sorunsuz çalışmaktadır. Müzik
yakalama başarısının müzikteki farklılaşma (bozulma, arka plan gürültüsü, vb.)
miktarı doğrultusunda değiştiği görülmüş ve testlerde, özellikle çoklu referans
noktası kullanarak yüksek başarı elde edildiği görülmüştür.
5.3. Projenin İlerletilmesi
Proje var olan yapısı üzerine kolayca geliştirilebilecek niteliktedir.
Özellikle arkaplan gürültüsünde elde edilen yakalama başarısının bu sistemin
geliştirilerek gürültülü bir ortamdaki müziği tanımakta kullanılabileceği
görülmüştür. Buda mobil uygulamalar için önemli bir açılımdır.
Yakın zamanda projeye yeni ses türleri eklenebilir (AAC, AC3, WMA,
vb.), cevrimiçi mp3 formatında yayın yapan radyoların dinlenebilmesi
sağlanabilir ve İnternet ortamında çalıştırılması sağlanabilir.
Projenin tanıma veriminin arttırılması için ise referans noktasının
seçilmesi konusunda algoritma geliştirilebilir, aynı anda birden fazla öznitelik
kullanarak ses tanıma geliştirilebilir.
15
KAYNAKLAR
[1] A Robust and Time-Efficient Fingerprinting Model for Musical Audio, M. Sert,
B. Baykal, and A. Yazıcı, IEEE, 2006.
[2] Web-based Query Engine for Content-based and Semantic Retrieval of
Audio, Mustafa Sert, Buyurman Baykal, IEEE, 2004.
[3] Joint Technical Committee ISO/IEC JTC 1. ISO/IEC 15938-4 Information
technology - Multimedia content description interface - Part 4: Audio. Final Draft
International Standard, 2001.
[4] MPEG-7, http://en.wikipedia.org/w/index.php?title=MPEG-7&oldid=100568295
[5] Euclidean distance,
http://en.wikipedia.org/w/index.php?title=Euclidean_distance&oldid=98151008
[6] Weisstein, Eric W. "Triangle Inequality." From MathWorld--A Wolfram Web
Resource. http://mathworld.wolfram.com/TriangleInequality.html
16

Benzer belgeler