Yapay Zekâ ve Müzik Üstüne

0
FZ
Bu makale sizi müzik ve yapay zekâ alanlarının arakesitinde kısa bir yolculuğa çıkaracaktır. Uygulamalar, yöntemler ve algoritmalar kısaca sunulacak ve tarihsel gelişim ele alınacaktır. Makale içindeki bağları verilmiş olan örnek müzik dosyaları ve videoları, günümüzde varılan noktaya dair ipuçları içermektedir.

Makale, 2004-2005 eğitim dönemi, güz yarıyılında, Boğaziçi Üniversitesi, Bilgisayar Müh. yüksek lisansı programında Doç. Dr. Levent Akın tarafından verilmiş olan Principles Of Artificial Intelligence (Yapay Zekâ Prensipleri) dersi için bir literatür taraması (literature survey report) olarak hazırlanmış olan makalenin Türk diline çevrilmiş, kısaltılmış ve düzenlenmiş halidir. Makalenin hazırlanmasında eleştirileri ile bana destek veren kardeşim Ergin Sevinç'e, Bülent Murtezaoğlu'na ve comp.ai sakinlerine teşekkürü bir borç bilirim. Makalenin orjinali http://ileriseviye.org/arasayfa.php?inode=ai-music.html adresindedir.

Müzik İşleme ve Bununla İlgili Bakış Açıları

"Müzik" kavramı çok değişik şekillerde ele alınabilir ve farklı boyutları vardır. Bunlardan biri fizikseldir, müzik enstrümanları tarafından üretilen ses dalgaları, sayısal ya da analog olarak kaydedilen insan sesi, vs. Bu nokta teknik olarak sinyal işleme yaklaşımını vurgular ve dolayısı ile elektrik mühendisliği, sinyal analizi, bağlantıcı (connectionist) modelleme, yapay sinir ağları gibi pek çok değişik disiplinin yöntemlerinden faydalanabilir.

Öte yandan müzik, sembolik şekilde de ele alınabilir yani yazılı müzik olarak. Bu bakış açısı ise sembolik bilgi işleme ile bağlantılıdır ve bir soyutlama sunar. Sembolik YZ (yapay zekâ) algoritmaları ve programlama dilleri bu tür müzik işlemede önemli rol oynamaktadır.

Bunlara ek olarak müzik yukarıdaki iki bakış açısının birleşimi olarak da düşünülebilir, insan müzisyenler aynı notaları çalıp az da olsa kendilerine has, küçük farklılıklar içeren ses dizileri üretmektedirler. Bu tür bir sistem "performans sistemi" olarak anılır, yani önceden notaları belli olan bir müziği fiziksel olarak seslendirirken doğaçlama ve diğer müzisyenlere eşlik etme gibi işlevsellikleri de gündeme getirir.

Müziğin kendisini bir tür sanatsal yaratım süreci olarak ele almak haricinde, YZ araştırmacıları bu konuya "veri madenciliği" açısından da yaklaşmıştır. Belli bir müzik parçası verildiğinde buna benzeyen diğer müzik parçalarını binlerce parça arasından bulmak - benzerlik ise tempo, tarz, artikülasyon cinsinden tanımlanabilir. Problem çok çeşitli şekillerde sunulabilir çünkü söz konusu müzik parçası yazılı nota şeklinde verilebileceği gibi bir MIDI dizisi ya da WAV/MP3 şeklinde bir sayısal ses dosyaı olarak da sunulabilir.

Tarihi Gelişim

Bir an için, harmoni ve müzikal kompozisyon bilimlerindeki temel ilişkilerin bu tür ifadelere ve uyarlamalara maruz kaldıklarını varsayarsak, makina istenilen karmaşıklıkta ve ölçüde, yetkin müzik parçaları besteleyebilir. - Leydi Ada Lovelace

19. yüzyılda Charles Babbage'in mekanik bilgisayar tasarımlarına dair pek çok analizi ve makalesi olan Ada Lovelace'in düşüncelerinin gerçekleşmesi için sayısal bilgisayarlar devriminin gerçekleşmesini beklemek gerekiyordu ancak bildiğimiz gibi bu çok da uzun sürmedi.

YZ alanı insanların entelektüel etkinliklerini modellemeyi, yeniden üretmeyi ve bazen de bunları aşmayı hedefler. Müzik dediğimiz şey ise insanların duygularını (ve hatta bir ölçüye dek düşüncelerini) ifade etmelerinin en soyut ve sofistike şekillerinden biridir ve bunun için yarı-sistemli ses üretiminden faydalanılır. Bundan ötürü YZ alanı doğduğu günden beri müzik ile ilgilenegelmiştir.

1950'li yıllardan beri YZ araştırmacıları müzik ve bilgisayarla üretilen müzik alanında önemli rol oynamıştır. Müzik kalitesi ve müzikal bilgi işleme bakımından şaşırtıcı sonuçlara yol açan pek çok teknik ve algoritma geliştirilmiştir.

Sembolik Sistemler

Kural Tabanlı Sistemler

Genel olarak usta bir müzisyenin müziğini tam olarak tanımlayacak kuralları tespit etmek mümkün değildir. - Kemal Ebcioğlu

Lejaren Hiller müzik yaratımı için algoritmik yaklaşımı ilk kullanan öncülerdendir. Leonard Isaacson ve Robert Baker ile birlikte bir "ILLIAC I" mainframe bilgisayarını kullanarak 1957 yılında bir "besteleme sistemi" geliştirmişti. Hiller'in sisteminin en meşhur sonuçlarından "Illiac Suit" aynı zamanda "String Quartet No. 4" olarak da bilinmektedir.


Hiller ILLIAC I başında çalışırken


Hiller'in çalışması müzik besteleme problemine sembolik bilgi işleme bakış açısı ile yaklaşmanın başlangıcıydı. Altrutinleri bulunan ve ILLIAC I bilgisayarı üzerinde çalışan MUSICOMP yazılımı klasik batı müziği teorisine dair kuralları bünyesinde barındıran ilk otomatik müzik üretme yazılımıydı. MUSICOMP yazılımı, müzikal bestelemeyi bir tür arama problemi olarak ele alıyor ve üret-ve-test-et yöntemini uyguluyordu ki buna üretici/değiştirici/seçici paradigması da denebilirdi. MUSICOMP'un içinde kökleri klasik batı müziğine dayanan armoni ve kontrpuan kuralları mevcuttu ancak notaların asıl üretimi Markov zincirleri olarak tabir edilen bir tür olasılıksal sürece dayanıyordu. Notalar bir kez üretildikten sonra müzik kurallarına göre test ediliyor ve eğer test başarısız olursa program geri dönüyor ve diğer olasılıkları deniyordu. Bu süreç tamamlanıp notalar üretildikten sonra veri geleneksel müzik notasyonuna dönüştürülüyor ve müzisyenlere sunulup klasik müzik enstrümanları ile seslendiriliyordu. Bilgisayarın doğrudan ses üretimi ve işlenmesinde bir rolü yoktu. Gerçekleşen tamamen saf bir sembol işleme idi ve semboller müzik notalarının dahili bir tür temsiliydi. Algoritma ise genel bir müzik algoritması olmayıp belli bir döneme özgü belli bir müzik tarzına dair sınırlı bilgi içeriyordu.

Hiller'in çalışması duygusal bir içerik oluşturmaya yönelik olmadığı gibi ifadede çeşitliliği de amaçlamıyordu. Yaptığı şey kural temelli besteleme problemini ele almaktı ve diğer yaratıcılara yol gösteren sonuçlar üretmişti. Ancak Hiller'in izinden giden, benzer paradigmayı kullanıp Markov zincirlerini düzenleyerek parçalar üreten araştırmacıların sonuçlarına bakıldığında ortaya çıkan sonuç yüksek kaliteli melodiler olmadı. Nota dizisinde basit müzik kurallarına göre gerçekleştirilen basit varyasyonlar güzel müzik olarak nitelendirilmek için yeterli değildir. Bu tür parçaların çoğu insanlar tarafından sıkıcı ve yaratıcılık içermeyen sonuçlar olarak nitelendirilmektedir.

Tonal Melodi Üretimi

Markov zincirleri gibi olasılıksal süreçlere dayanan algoritmalara fazla güvenmenin müzik besteleme sürecini tam olarak temsil edemeyeceğini düşünen bazı araştırmacılar "tonal melodi üretimi" denen tekniği denediler.

Bu yöntemin öncülerinden biri de James Anderson Moorer'dır. 1972 yılında geliştirdiği program basit melodileri ve bunlara eşlik eden armonik akor yürüyüşlerini üretebiliyordu. Hiller'in örneğinde olduğu gibi bu program da müzik bestelemeyi simüle etmeye çalışıyordı ancak farklı olarak ana yöntem için insan bestecilerin kullandığı bazı "heuristic"lerden faydalanıyordu.

Bir başka araştırmacı, Daniel Levit de kısıt koşul tabanlı bir müzik tanımlama dili geliştirmiş ve bunu müzikal dönüşümleri ifade etmek için kullanmıştı. Kısıt koşul tabanlı müzik üretimini akor yürüyüşlerine ve melodik hatlara uygulamıştı. Bu dil sayesinde programcı değişik müzikal tarzları ifade edebiliyordu söz konusu sistem Ragtime tarzı blues piyano müziği ve geleneksel caz bas yürüyüş kalıplarına benzer müzikler üretmek için kullanılmıştı.

Tonal melodi üretimi üzerine günümüzde çalışan araştırmacılardan biri de Dirk Jan Povel'dır. Geliştirdiği "Melody Generator" yazılımında, Povel'ın yaklaşımı Moorer'ınkine benzemektedir. O da insanın temel ses algılama örüntülerine dair bazı kurallardan faydalanmıştır. Bu, müziğin duygusal yönlerini örüntü-tabanlı kurallarak olarak kodlamak ve bunları sembolik olarak işlemek şeklinde düşünülebilir. Melody Generator yazılımı ritm, armoni, tempo, bass hattı, ifade tarzı ve kontür gibi parametreleri kullanmaktadır. Basit bir müzik aracının ötesinde bir şey olan program aynı zamanda armoni, ölçü ve kontür parametreleri üzerindeki kısıtların melodi üretimi sürecini nasıl etkilediğini analiz etmek için de kullanılabilir. Bu da önemli bir entelektüel faaliyet üzerine dair daha derin bilgi sahibi olmamıza yardımcı olan algoritmik süreçlerin kullanımına güzel bir örnektir.



Melody Generator tarafından üretilen örnek bir MIDI dosyası sistemin melodik yeteneklerini yansıtmaktadır. Parçanın anahtarı dörtlü majördür ve bu da re bemol majör (si bemol minör) anlamına gelmektedir, parçanın ölçüsü ise 3/4'tür (bu bilgi timidity isimli MIDI çalma programı yardımı ile elde edilmiştir). Söz konusu parça güzel bir melodi içermekte olup daha sofistike bir parça için çıkış noktası olabilir. Melody Generator ile yapılmış diğer denemelere dair izlenim sahibi olmak için şu MIDI parçaları da dinlenebilir: firstmelody.mid, secondmelody.mid, thirdmelody.mid.

Otomatik armonizasyon ve uzman sistemler

Müzik bestelemedeki diğer bir önemli konu da armonizasyon sürecidir. Armonizasyon kısaca, verili belli bir nota dizisine karşı gelen ve onunla uyumlu tınlayan akorları bulmak demektir. Bu basit bir problem değildir ve müziğin türüne göre epey müzik besteleme deneyimi gerektirebilir.

Otomatik armonizasyon problemini çözmek için pek çok yöntem ve yazılım geliştirilmiştir. Bu konuda ilk çalışmayı yapmış olanlardan biri John Rottgeb'dir. Doktora tezinde bir bas dizisinin armonizasyonunu yazdığı SNOBOL programları ile analiz etmeye çalışmıştır.

Kemal Ebcioğlu tarafından 1992'de geliştirilmiş olan CHORAL sistemi otomatik armonizasyon alanındaki en gelişmiş sistemlerden biridir. CHORAL yazılımı bir tür uzman sistemdir Johann Sebastian Bach tarzında dört parçalı koralleri armonize edebilmektedir. Bu yazılım BSL (Bactracking Specification Language) dili yazılmıştır. BSL Lisp tarzı bir söz dizimi olan bir tür mantık programlama dilidir. Her ne kadar bir kısıt koşul tabanlı mantık programlama dili olsa da PROLOG'dan farklı olarak çözümleme teorem ispatlamaya dayanmıyordu. Lisp tarzı sözdizimi, evrensel ve tekil niceleyecilerin varlığı ve birinci dereceden önermeler mantığına doğal bir tasvir sağlayan nondeterministik semantiği CHORAL'i müzik dönüşümlerini ifade etmek için ideal bir araç kılmıştı. CHORAL'deki örnek kurallardan biri aşağıdaki gibidir:
(A u bass (<= u soprano) (1+ u)
     (A v bass (<= v soprano) (1+ v)
          (imp (and (> n 0)
                    (!= u v)
                    (== (mod (p1 u) 7) (mod (p0 v) 7))
                    (!= (a1 u) (a0 v))
                    (not (E w bass (<= w soprano) (1+ w)
                              (and (== (mod (p1 w) 7) (mod (p1 u) 7))
                                   (== (p0 w) (p1 w))))))
               (or (and (member chordtype0
                          (dimseventh domseventh1 major1))
                   (or (and (== (a0 v) (1+ (a1 u)))
                            (== v bass)
                            (== (mod (- (p0 v) root1) 7) fifth)
                            (<= (abs (- (p1 v) (p0 v))) fourth)
                            (imp (thirdskipup (p1 v) (p0 v))
                                 (E w tenor (<= w soprano) (1+ w)
                                      (and (== (mod (- (p1 w) (p1 v)) 7) 
                                                                  third)
                                           (thirdskipup (p1 w) (p0 w))))))
                   (and (== (a0 v) (1- (a1 u)))
                        (== v soprano)
                        (== (mod (- (p0 v) roo1) 7) third))))
                (and (> fermata1 0)
                     (== root0 root1)
                     (== chordtype major0)
                     (member chordtype0 minortriads))))))
Ebcioğlu BSL dilinde yazılmış yaklaşık 350 kuraldan ve orjinal Bach parçalarından elde edilmiş "höristik"lerden faydalanmıştı. CHORAL'in çıkış noktaları arasında Schenkerian müzik analizi ve dilbilimci Jackendoff ile besteci Lerhdal tarafından geliştirilmiş sözdizimsel müzik teorisi de vardı.

CHORAL, 10.0 MIPS'te çalışan bir IBM 3081 işlemcili makina üzerinde 3 ila 30 dakikada Bach korallerini armonize edebiliyordu ve bu uzman sistemin sahip olduğu bilgi birikimi Bach korallerini detaylı olarak çalışmış yetenekli bir müzik öğrencisinin bilgisine denkti.

Karmaşık müzik bilgisini kompakt bir şekilde ifade etmek ve kısıt koşul programlama ile kayda değer müzik üretmek YZ alanının müzik analizi ve besteleme konusundaki önemli katkılarından biriydi.

Bağlantıcı (Connectionist) Modeller

Bağlantıcı modeller ve yapay sinir ağları (YSS), insan zihninin çalışmasını paralel bilgi işleme yaklaşımı ile modellemeye çalışır. Bu modeller YZ alanının büyük ve önemli bir kısmını kapsar. Müzik üretimi, soyutlaması ve doğaçlamasına dair pek çok bağlantıcı model geliştirilmiştir.

Bu modellerden biri, bilişsel bilimci James Bharucha tarafından geliştirilmiş olan MUSACT isimli yapay sinir ağı sistemidir. MUSACT, önceki bölümde tanımlanan armonizasyon problemini çözmek için geliştirilmiş bir YSSdir. Program armonilerle ilgili karakteristikleri öğrenmeye çalışmıştır. Akorlar ve onları çevreleyen müzikal çerçeve arasındaki armoniyi yakalamayı başarmıştır.

Bir başka bağlantıcı model ise Feulner tarafından 1993 yılında geliştirilen HARMONET sistemi idi. HARMONET, akorların armonik fonksiyonlarını öğrenmeye çalışıyordu. Kısıt koşul sağlama yöntemine ek olarak yapay sinir ağı türü modellemeyi kullanan sistem belli ölçüde başarılı olmuştu ve buna dayanarak geliştirilen MELONET sistemi müzik parçalarının melodik niteliklerini öğrenmeyi becermişti. Birlikte çalışan bu iki sistem estetik olarak tatmin edici müzik üretebiliyordu.

Son Gelişmeler

BoB - Band out of the Box

Her ne kadar değişik türlerdeki meşhur sanatçıların tarzını taklit ederek müzisyenlere yardımcı olan Band-in-a-Box gibi ticari sistemler mevcutsa da bunlar etkileşimli değildir ve kullanıcı tarafından önceden ayarlanmış parametrelere göre hareket ederler.

Bilgisayar bilimci Belinda Thom tafından geliştirilmiş BoB (Band-Out-of-the-Box) etkileşimli, doğaçlamacı bir müzik yardımcısıdır ve İnanılır Etmen (İA - Believable Agent) olarak tasarlanmıştır.Sistemin ismi, yukarıda adı geçen ticari sisteme, BIB'e bir göndermedir. BIB, müzisyenler tarafından sık kullanılan ve değişik türlerde solo ve eşlik üreten çok popüler bir programdır. Ancak BIB gerçek zamanlı bir doğaçlamacı değildir. Müzisyeni dinlemez ve ona cevap vermez. Tek yaptığı bazı parametreler ayarlandıktan sonra buna göre müzik üretmektir. Bir insan, BIB tarafından üretilen bu müziğin üzerine çalabilir. Öte yandan BoB'un asıl odaklandığı nokta kullanıcı ile canlı melodik etkileşimdir.

Etkileşimli müzik sistemleri genellikle iki kategoriden birine girer. Birinci kategoride besteci aynı zamanda programın yazarıdır. Genellikle bu şekilde besteci uygun bir müzikal estetik yaratır. İkinci kategoride ise üretilmiş olan sistem son kullanıcının özelleştirebileceği şekilde düzenlenir ve bu son kullanıcı besteci ve/veya müziği çalan kişi olabilir. Max/MSP müzik sistemi böyle bir sisteme örnektir. Bu durumda kullanıcı aynı zamanda bir programcı rolünü üstlenmelidir ya da en azından istediği müzikal konfigürasyona erişebilmek için sistem parametrelerine ince ayar çekebilecek kadar teknik bilgi sahibi olmalıdır. Müzikal değişkenleri bu şekilde önceden ayarlamak, eğer müzisyen gerçek zamanlı doğaçlamayı ve kendi tarzına anında uyum sağlanmasını istiyorsa, pek anlamlı olmayacaktır.

Bu çalışma, gerçek zamanlı ve etkileşimli müzik doğaçlama perspektifinden bakıldığında önemlidir. BoB, müzik oluşturma sürecini otomatikleştirmek için makina öğrenme (machine learning) algoritmalarından faydalanmaktadır.

Bu yazılım sisteminin müzikal bakımdan bazı kısıtlamaları vardır ancak bu şekilde gerçek zamanlı performans elde edilebilmektedir. Gerçek zamanlı tempo takibi bilgisayarlar için kolay bir iş değildir ve müzik üretimine bazı kısıtlar getirmek programlamayı kolaylaştırmaktadır. Kısıt olarak gösterilebilecek ana noktalar şunlardır: BoB ve insan müzisyen solo yapan sanatçılar olarak kabul edilmekte ve soloların başlama zamanları önceden belirlenmektedir. Ayrıca üzerine solo çalınacak parçanın temposu da öncede bellidir. Burada çok fazla değişkenliğe izin verilmemiştir ve soloların süresi de dört bar ile sınırlanmıştır.

BoB gerçek zamanlı müzik üretimi ve bir öğretmen olmadan müzisyene eşlik etmeyi öğrenme açısından ümit vaad eden bir inanılır etmendir, estetik açıdan kabul edilebilir müzikal sonuçlar üretmiştir.

Sayısal Sesteki Müzikal İçeriğin Analizi

Bilgisayarlı müzik araştırmalarının önemli alt dallarından biri de ham ses verisinden yüksek seviyeli müzikal bilgiyi çıkarmak ile ilgilidir. Bu veri çok değişik şekilde sunulabilir: analog kayıtlar, .WAV, .MP3 ya da .OGG formatlı sayısal ses dosyaları, vs.

Bu tür ham ses verisinden üç farklı bilgi çıkarılabilir: melodi, armoni ve ritmik yapılar.

Avusturya Yapay Zekâ Araştırmaları Enstitüsü'nden Simon Dixon'ın çalışmaları bu alandaki önemli bir yer tutmaktadır. Dixon'ın geliştirdiği yöntemler ve yazılımlar müzikal vuruş analizi, müziği notaya dökmek ve müzikal performanslar arasındaki ince nüansları yakalamak gibi işlerde kullanılmıştır.

BeatRoot

İnsanlar için herhangi bir parçanın vuruşlarını takip etmek, parçayı biraz dinledikten sonra kolayca yapılabilen bir iştir. Pek çok insan, duydukları bir parçaya eşlik edebilecek şekilde, senkronizasyonu pek bozmadan el çırpabilir ya da ayaklarını yere vurabilir. Tıpkı dil yetisi gibi, konuşmak ve söyleneni anlamak gibi bu tempo tutma yetisi de insanlar için gayet doğal ve özel bir eğitim gerektirmeyen bir işlev gibidir.

Bizim için gayet basit görünen bu işlevi bilgisayarlara yaptırabilmek ise o kadar basit ve kolay değdildir. Ortalama bir müzisyenin tempo takip yeteneğine her bakımdan erişebilen bir bilgisayar programı henüz yazılamamıştır. Dixon'ın BeatRoot isimli bu alandaki boşluğu doldurmayı hedefleyen ve herhangi bir müzik parçasının vuruşlarını tespit edip takip etmeye çalışan bir programdır.

BeatRoot girdi olarak MIDI dizisi gibi sembolik müzik verisi alabileceği gibi sayısal ses dosyalarını da kabul etmektedir.

Ham müzik verisini işleyen sistem bunun ardından uygun ritmik yapıyı tespit etmek için çoklu etmen (multiagent) türü programlamadan faydalanmaktadır. Çoklu etmen yapısının avantajı şudur: Birden fazla vuruş örüntüsü (pattern) olasılığı gündeme geldiğinde etmenler kendilerini kopyalarlar ve bağımsız olarak alternatifleri incelerler. Ardından bir değerlendirme fonksiyonu kullanılır ve alternatifler sayısal olarak sıralanır, en yüksek skoru alan alternatif doğru kabul edilir ve parçanın vuruş örüntüsü bu şekilde belirlenir.

BeatRoot'un temel işlevselliği GNU/Linux işletim sistemi altında C++ dili ile gerçekleştirilmiştir. Grafik Kullanıcı Arayüzü ise Java ile kodlanmıştır. C++ kodu yaklaşık 10.000 satır olup Java ile tasarlanan arayüz ise 1000 satır kadardır ve sistem GPL lisanslıdır.

BeatRoot'un sonuçları bazı MP3 dosyalarından dinlenebilir. "Superstition" gibi pop-rock parçaları ya da klasik bir salsa olan "Felicidad" gibi parçaların tempolarına eşlik eden BeatRoot epey etkileyicidir. Program ses verisini işleyebilir ve ritmik yapıyı çıkarır. MIDI olarak işlenmiş müziklerin sonuçları da birkaç MP3 dosyası olarak sunulmuştur. Mozart'ın bazı piyano sonatları, BeatRoot'un karmaşık ritm örüntüleri ile de başa çıkabildiğini göstermektedir. "Michelle"in MIDI hali ise senkronizasyonda bazı ufak tefek kaymalar olmakla birlikte genel performansın hiç de fena olmadığına dair bir etkileyici işarettir.

JTranscriber

Müzik işleme alanındaki bir başka önemli konu da ham müzik verisinden notaları çıkarabilmektir. Bu iş, orta seviyede yetenekli bir müzisyen için bile çok kolay değildir.

Müzikal transkripsiyon olarak da bilinen bu nota çıkarma işindeki en önemli mesele çalınan müzikle kağıt üzerindeki müzik arasında tam bire bir ilişki olmamasıdır. Her notayı kişiselleştirmek mümkündür ve çalış esnasında müzisyenler kendilerine özgü ufak tefek değişiklikler yapabilmektedirler.

Müzikal transkripsiyon süreci iki ana bölüme ayrılabilir. Birincisi sinyal işleme ve veriyi sembolik MIDI formatına çevirme problemidir, ikincisi ise bu MIDI verisini işlemek ve bundan anahtarlar, armonik yapı, vb. gibi müzikal parametreleri çekip çıkarmaktır.

Dixon tarafından geliştirilmiş JTranscriber yazılımı transkripsiyon probleminin ilk aşamasını çözmeye çalışır yani ham ses verisini sembolik MIDI verisine dönüştürme işini. Program Java tarafından geliştirilmiştir ve GNU/Linux ile çalışan 2 Ghz'lik bir IBM uyumlu PC üzerinde üç dakikalık bir parçayı üç dakikadan kısa bir sürede işleyebilmektedir. Ancak, BeatRoot programından farklı olarak yazar henüz kaynak kodu ya da örnek dosyaları sunmamıştır. Program başarımı olarak %69 ila %82 arasında oranlar verilmektedir ki bu da programın bir parçadaki notaların büyük bir kısmını doğru olarak tespit edebildiğini göstermektedir.

Performance Worm

Yine Dixon tarafından geliştirilmiş Performance Worm yazılımı müzikal performanstaki ifade farklılıklarını analiz etmek üzerine kurulu bir sistemdir. Değişik sanatçıları birbirinden ayırt edebilmek için bu tür bir işlev gerekmektedir. Özellikle klasik batı müziğinde her ne kadar müzisyenlerin önlerine konan notaya olabildiğince sadık kalmaları beklense ve sadece kağıtta yazılı olanı çalmaları istense de usta müzisyenler arasında bazı ufak tefek farklar olabilmektedir. Bu tür müzik üzerine eğitimli bir insan kulağı aynı parçanın iki farklı sanatçı tarafından yorumlanmış halini birbirinden ayırt edebilmektedir. İdil Biret'in çaldığı bir Bach fügü ile aynı eserin Fazıl Say tarafından çalınmış hali, bu iki sanatçı aynı piyanoyu kullanmış olsalar bile bazı farklılıklar içerecektir. Ses hacmi, tempo, vs. gibi müzikal parametreler bakımından bazı farklar söz konusu olacaktır.


Vladimir Ashkenazy tarafından yorumlanan Rachmaninov'un op.23 no.6 eser numaralı prelüdünün ilk 30 barı. Yatak eksen dakika başına vuruş cinsinden tempoyu, dikey eksen ise ses yüksekligiğini göstermektedir.


Performance Worm yazılımı bu tür müzikal performans kayıtlarının tempo ve ifade dinamiklerini gerçek zamanlı olarak görselleştirme işini gerçekleştirmektedir. Java ile geliştirilmiş yazılım yaklaşık 4000 satır kod içermekte ve 400 Mhz'lik bir PC üzerinde yeterli başarım oranı ile çalışmaktadır. Program, çalınmakta olan müziğin tempo ve ses yüksekliği karakteristiklerini güzel bir grafik temsil ile göstermektedir. Performance Work programı BeatRoot gibi başka programların çıktılarını girdi olarak kabul edebilir haldedir ve böylece daha hassas müzikal analiz mümkün kılınmaktadır.

Yukarıda adı geçen programlar Gerhard Widmer'in bir hayli ses getirmiş otomatik müzik analizi projelerinde önemli rol oynamıştır. Widmer, makina öğrenme ve veri madenciliği tekniklerini meşhur müzisyenlerin, özellikle de konser piyanistlerinin, arasındaki farkları tespit etmek için kullanmıştır.

GenJam

GenJam (Genetic Jammer) caz müzisyeni John Al Biles tarafından geliştirilmiş ve caz müzisyenleri ile etkileşime giren bir genetik algoritmadır. 1994 yılında Biles tarafından "evrimsel bilgi işlem" paradigmasına göre geliştirilen sistem bir tür "çalışan müzisyen" olarak görülebilir. Genetik algoritmalar bağlamında gündeme gelen "uygunluk fonksiyonu"nu bu sistemde insan dinleyici temsil etmektedir ve üretilen doğaçlamaların uygun olup olmadığı bu şekilde belirlenmektedir.

GenJam'in Biles ile karşılıklı solo atıştığı 5 farklı parça, sistemin gerçek zamanlı etkileşimli doğaçlama performansına dair fikir vericidir. Bu parçalar "Lady Bug", "Rake", "Analog Blues", "Here's How" ve "Manteca"dır. Her ne kadar GenJam'in soloları bazen biraz uyumsuz olsa da genel olarak etkileyici bir müzikal kalite yakalanmıştır. Bu bağlamda, farklı bir enstrüman sesi ile daha gerçekçi performans elde edilebilir ancak işin özünün dinamik olarak nota üretimi olduğu göz önünde bulundurulursa sistemin performansı gayet başarılı kabul edilebilir.

GenJam'in yeteneklerinin göz önüne serildiği bir başka demo ise 2003 yılında kaydedilmiş bir videodur. Bu videolarda trompet çalan Biles'ın, GenJam ile karşılıklı solo değiş tokuşunda bulunduğu gözlemlenmektedir. Videodaki müzikler yukarıdaki MP3 parçalarından daha uzun süreli olup, sistemin performansını değerlendirmek açısından daha çok veri sunmaktadır. Bir si bemol blues, Don Ellis bestesi "Open Wide" ve Miles Davis'in "Milestones" yorumları GenJam'in yeteneklerine dair önemli ipuçları içermektedir.

Sonuç

Bu makalede yapay zekâ uygulamalarının ve algoritmalarının müzik alanında kullanımları incelenmiştir. Söz konusu YZ uygulamaları müziğin değişik alanlarında kullanılmaktadır: sembolik müzik analizi, sembolik müzik besteleme sistemleri, müzik performans sistemleri ve etkileşimli doğaçlama sistemleri.

Son 50 yılda müzik alanındaki YZ uygulamalarında pek çok olumlu gelişme olduğu görülmektedir. Felsefi ve etik meseleler bir yana, bilgisayarlar belli bir kalitede müzik üretmeyi başarmıştır. Her ne kadar sunulan müzik örnekleri usta müzisyenlerin sofistike eserleri ile yarışabilecek düzeyde olmasa da yine de ümit vaad etmektedirler ve geliştirilmiş algoritmaların çeşitliliğe ve yaratıcılığa yol verecek şekilde kullanılmalarına başlanmıştır.

Gerçek zamanlı etkileşimli doğaçlama müzik sistemleri geliştirmek ve performanslarını artırmak için hala yapılması gereken pek çok şey vardır ve bu çalışmalarda insanların müziği nasıl algıladıklarına dair bilginin de önemi yadsınamaz. YZ alanı bize her iki bakımdan da yardımcı olacak gibi görünmektedir.

2 Nisan 2005, İstanbul
Emre Sevinç
e-posta: emres at bilgi nokta edu nokta tr

http://fazlamesai.net
http://ileriseviye.org
http://cazci.com
http://www.bilgi.edu.tr
http://www.cogsci.boun.edu.tr/

Görüşler

0
FZ
Yazıya katamadığım ama konu ile ilgili önemli olduğunu düşündüğüm kaynaklar:

Common Music
http://commonmusic.sourceforge.net

Common Lisp Music
http://ccrma.stanford.edu/software/clm/

Music Mind Machine
http://www.nici.kun.nl/mmm/

jMax
http://freesoftware.ircam.fr/rubrique.php3?id_rubrique=2

OpenMusic
http://freesoftware.ircam.fr/rubrique.php3?id_rubrique=6

David Cope
http://arts.ucsc.edu/faculty/cope/software.htm

Ali Taylan Cemgil
http://staff.science.uva.nl/~cemgil/

Bunların dışında da beni yönlendirebilecek, eleştirebilecek, kaynak, vs. tavsiye edebilecek kişiler buraya yazarlarsa sevinirim.
0
FZ
Bu yazı ile ilgili bir tartışma da muziktek.com forumlarında alevlendi:

http://muziktek.com/forum/viewtopic.php?t=1661
0
FZ
FM'den gelmesini beklediğim "hard-core" teknik yorumlar muziktek.com forumlarından geldi ;-) Bunun üzerine ne desem bilmem!
Görüş belirtmek için giriş yapın...

İlgili Yazılar

FINDIK - Herkese Açık Filtre

anonim

İçerik analizi ve filtreleme alanında yeni bir enerji yiyeceği, yolculuğuna başladı. Bugün 0.2g sürümüyle erişebileceğiniz FINDIK, benzer kapsamdaki diğer yazılımlar ile çekişmeli bir yarış içerisine girmeye hazırlanırken, Türkiye’deki açık kaynak gönüllülerinin yardımlarını bekliyor.

Lego MindStorms Uzaktan Kumanda Projesi

FZ

Lego MindStorms setlerinin en büyük dezavantajlarından biri, RCX'de bulunan hafızanın (32 KB) ileri düzey projeler geliştirmek için yetersiz olmasıdır. Bu sorunu önlemenin yolu ise RCX'de çalışması planlanan algoritmaların bilgisayarda çalıştırılıp, algoritmanın çıktısı olan motor, sensör hareketlerinin RCX`e gönderilmesidir.

Lego MindStorms Setlerinin bu amaç için kızıl ötesi donanımı ve LeJOS'un Lego Kulesi ile RCX arasında haberleşmeyi sağlayan APIleri mevcuttur fakat haberleşme için kızıl ötesinin kullanılıyor olması kısıtlayıcıdır çünkü kızıl ötesi haberleşmesi 1-2 metre mesafe ile sınırlı kalmakla beraber kızıl ötesi alıcı/verici ledlerinin birbirlerini görme zorunluluğu olmaktadır.

Programlama Dilleri Benchmark Karşılaştırmaları

anonim

Birçok programa dili arasında ayrıntılı performans karşılaştırmalarını görebileceğiniz takdire şayan bir site. CPU Time, hafıza kullanımı ve kod uzunluğu başta olmak üzere bir çok kritere göre karşılaştırma mevcut. (Ruby'nin python'dan hızlı olduğunu iddia edenler mi vardı? ;-)

http://shootout.alioth.debian.org/

Video: Smalltalk, bir video, bir IDE ya da test-driven development üstüne...

FZ

Eski Smalltalkçulardan Kent Beck, Test-Driven Development By Example kitabında genellikle Java ve çok az bir yerde de Python kullanıyor. Lakin üstadın zaman zaman hayıflandığını görüyoruz, "ah şimdi elimin altında Smalltalk, Smalltalk IDE ve Refactoring Browser" olsaydı diye.

Neden?

Belki de cevabı burada yatıyor:

Bir Türk Programcısı Sinirlenirse: CORSIS - Açık Kodlu Derlem Analiz Yazılımı

FZ

Stallman bir yazıcı sürücüsünün kapalı olması yüzünden çıldırıp işe girişmişti. Linus, okulda eğitim için kullandığı Sun Solaris işletim sistemini evde kullanamayacağını görünce Linux çekirdeğini yazmaya başlamıştı. Ian Murdock Linux kurmanın uzman olmayanlar için hiç de kolay olmayacağını fark edip Debian dağıtımını geliştirmeye başlamıştı. Bilgisayar tarihi sinirli programcıların başlarının çaresine bakarken çevreye de epey fayda sağlamalarının örnekleri ile dolu. Şimdi böyle bir örneğin haberini okuyacaksınız:

Çetin Sert, Almanya'da bilgisayarla dil işleme (NLP - Natural Language Processing) konusunda çalışan 23 yaşında genç bir araştırmacı. Sert, Mike Scott tarafından geliştirilmiş ve dil işleme bağlamında sık kullanılan bir yazılım olan Wordsmith'in kısıtlayıcı lisansını, ödenmesi gereken paraları ve bunu evindeki PC'de rahatça kullanamayacağını görüp bu konuda profesörlerinin uyarıları ile karşılaşınca...