BAŞKENT ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİTİRME PROJESİ RAPORU. Otomatik Şarkı Tanıma. Ümit Burak USGURLU



Benzer belgeler
İNFOSET İNFOSET Ses Kayıt Sistemi v2.0. Sistem Kataloğu

1 Temel Kavramlar. Veritabanı 1

Mühendislikte Veri Tabanları Dersi Uygulamaları (ArcGIS-SQL)

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT

PAPERWORK TEKNİK MİMARİ

Elektra Raporlama Sistemi Sunumu

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

MUĞLA SITKI KOÇMAN ÜNİVERSİTESİ. ECTS Info Pack. ECTS Bilgi Paketi Çalışmaları. Bilgi İşlem Daire Başkanlığı YAZILIM-WEB GRUBU

UZAKTAN EĞİTİM MERKEZİ

SORGULAR VE ÇEŞİTLERİ II

Koşuyolu, Asmadalı Sk No:29 Kadıköy Tel : Faks: (216)

Library ON-LINE: Web Tabanlı Kütüphane Yönetim Yazılımı

Seri Takibi Yenilikleri

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

SPSS E GİRİŞ SPSS TE TEMEL İŞLEMLER. Abdullah Can

FORMÜLLER VE FONKSİYONLAR

=A1+A2-A3, =A1*A2/A3,

İLİŞKİSEL VERİTABANLARI

Mühendislikte Veri Tabanları Dersi Uygulamaları (MS-Access)

VERİ TABANI YÖNETİM SİSTEMLERİ-II

Veritabanı Uygulamaları Tasarımı

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

ICATT ÇEVİRİ UYGULAMASI SİSTEM MİMARİSİ VE VERİTABANI TASARIMI

Demetleme Yönteminin Y 3-Katmanlı Mimari Yapı ile Gerçeklenmesi. eklenmesi. KalacakYer.com

Resim 1. Access açılış sayfası. Resim 2. Access veri tabanı düzenleme sayfası

SQL (Structured Query Language)

Müzik Verilerini Saklama Biçimleri

VERİ TABANI I. Yrd.Doç.Dr. İlker ÜNAL. Teknik Bilimler Meslek Yüksekokulu

SQL e Giriş. Uzm. Murat YAZICI

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

1 Temel Kavramlar. Veritabanı 1

DESTEK DOKÜMANI KAYIT NUMARALAMA ŞABLONLARI

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

Değerlendirme Soruları 140. Şerit Kullanımı 124 Şerit Sekmeleri 124 Şeridi Gizleme 125 Eklentiler 125

Enlil programını açtığımızda karşımıza gelen ilk ekrandır.bu ekranda özel tanımlanmış kullanıcı kodu ve parola ile programa giriş sağlanmaktadır.

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Ürün Profil ve Yapılandırma Kodu Tanımlama

EndNote Web Hızlı Başvuru kartı

COĞRAFİ BİLGİ SİSTEMLERİ ARCGIS GİRİŞ EĞİTİMİ

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

Cite While You Write özelliği

CBS Arc/Info Kavramları

Ekle sekmesindeki Tablolar grubundaki Tablo seçeneği ile tablo oluşturulur.

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar

Personel Programında Bordro Zarfı İçin Dizayn Desteği

4447 Sayılı Kanunun Geçici 10.Maddesi Sigortalı Giriş Uygulaması Kullanım Kılavuzu

Veritabanı. SQL (Structured Query Language)

İSTİHDAM VE SOSYAL UYUM İÇİN DİJİTAL BECERİLER

DSİ kapsamında oluşturulan dağınık durumdaki verilerinin düzenlenmesi, yeniden tasarlanarak tek bir coğrafi veri tabanı ortamında toplanması,

TEMEL BİLGİSAYAR. Ders Notları. Yrd. Doç. Dr. Seyit Okan KARA

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Yükleme Emrinde bulunan belge numarası, kamyon plaka numarası ve şoför adının irsaliyeye taşınması,

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

Web Server Sunucu Loglarının K-Komşu Algoritması ile İ ncelenmesi

JetSMS Direct Çözümü

Proje/Sipariş/İş Emri (PSI) Bazında Maliyet Analizi

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

Öğr. Gör. Serkan AKSU 1

YZM 2105 Nesneye Yönelik Programlama

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU


Ekle Menüsü İşlevleri ÜNİTE 10. Bu üniteyi çalıştıktan sonra; Ekle Menüsü Tablolar Resimler ve Çizimler Bağlantılar Metin ve Simgeler Media Flash

Veri Tabanı Tasarım ve Yönetimi

4. Bölüm Programlamaya Giriş

Asp.Net Veritabanı İşlemleri

Analiz Raporu. Projenin amacının, konusunun, işlevinin ne olacağı, hangi yazılımlar kullanılacak gibi parametrelerin belirlenmesi.

Dizaynda Word Desteği

C# nedir,.net Framework nedir?

DB.NET Laboratuvar Uygulaması-Öğrenci Notları

Okul Web Sitesi Yönetim Paneli Kullanımı

1. GİRİŞ Kılavuzun amacı. Bu bölümde;

BÖLÜM 8 B- SUNU PROGRAMI 1. MICROSOFT POWERPOINT NEDİR? 2. POWERPOINT PROGRAMININ BAŞLATILMASI

15xx versiyonu / Tarihli Arşivin İçeriği

BM 102 Bilgisayar Programlama II. Windows Form Application

COĞRAFİ BİLGİ SİSTEMLERİ İLERİ SEVİYE EĞİTİMLERİ BUILDING GEODATABASE EĞİTİMİ

AGSoft Rotatif Kredi Hesaplama Programı

SUPERVISOR (YETKİLİ KULLANICI) KAMPANYA YÖNETİMİ EĞİTİM DOKÜMANI

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

Veritabanı İşlemleri

veri dosyadan okutulacak (1) - sinama verisi (2)-son(3) >

Veri Tabanı Yönetim Sistemleri Bölüm - 3

MS Access. üzerinde. defa çalıştırıldığında

Öğrenci İşleri Bilgi Sistemi Öğretim Elemanı - Sınav Sonuç Giriş İşlemleri

VERİTABANI Veritabanı Normalizasyonu

TEMEL BİLGİSAYAR. Ders Notları. Yard. Doç. Dr. Seyit Okan KARA

COĞRAFİ BİLGİ SİSTEMLERİ İLERİ SEVİYE EĞİTİMLERİ BUILDING GEODATABASE EĞİTİMİ

BİTİRME RAPORU. Ömer Furkan ARI Yıldız Teknik Üniversitesi

PLC (Programlanabilir Kontrol Cihazı) TABANLI SİSTEMLERİN İNTERNET ÜZERİNDEN İZLENMESİ

GAZİ ÜNİVERSİTESİ ÖĞRETİM ELEMANI AYLIK PUANTAJ YAZILIMI KULLANIM KLAVUZU

MENÜ AYARLAMA 1. MENÜ AYARLAMA. [X] [X] Standard. [X] [X] Yeni Fonksiyon

SQL Komutları (2) Uzm. Murat YAZICI

Microsoft Excel Uygulaması 2

İLAÇ RUHSAT e-başvuru FORMU KULLANICI KILAVUZU. Doküman: EUP Revizyon No: R-06 Tarih:

Excel de çalışma alanı satır ve sütunlardan oluşur. Satırları rakamlar, sütunları ise harfler temsil eder. Excel çalışma sayfası üzerinde toplam

License. Veri Tabanı Sistemleri. Konular büyük miktarda verinin etkin biçimde tutulması ve işlenmesi. Problem Kayıt Dosyaları

1. VERİ TABANI ARAÇLARI

Transkript:

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ı İmza Yrd. Doç Dr. Mustafa SERT Öğr. Gör. Kaya KILAN Öğr. Gör. Emre SÜMER II

ÖZ Bu raporda sunulan bitirme projesi konusu otomatik şarkı tanımadır. Projenin hedefi sayısal ortama aktarılmış müziklerden çıkarılacak MPEG- 7 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 ASF Bit rate Açıklama Audio Spectrum Flatness Ses Spectrum Düzlüğü Bit oranı, bir örneğin ifade edilmesi için değer aralığı. FFT Fast Fourier Transform Fourier dönüşümünü gerçekleştiren hızlı algoritma. GPL ID3 Mp3 MPEG MPEG 7 Sample rate Wav General Public License Genel Kamusal Lisans Mp3 dosyalarında bulunan katalog bilgisi (metadata). MPEG-1 Audio Layer 3 - Film Uzmanlar Grubu Ses Katmanı 3 Moving Picture Experts Group - Hareketli Görüntü Uzmanları Birliği Multimedia Content Description Interface Çoklu ortam İçerik Tanımlama Arabirimi Örneklem oranı, saniyede alınmış örnek sayısı. 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

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 fonksiyonel olması amaçlandı. Veritabanı dört adet tablodan oluşmaktadır. Ş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ı Uygulama Mantığı Katmanı Microsoft C#.NET ile koşan uygulama 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