Matlab ile Ses Bölütleme
Ses analizi ve ses işleme uygulamalarında sıklıkla kullanılan ses bölütleme, bir konuşma içinde geçen sesleri nefes aralıklarını tespit ederek ayırma işlemidir. Ses bölütleme, ses uygulamalarında ilk basamak olarak kullanılmaktadır. Daha sonrasında, bölütlenen kelimeler üzerinde ses tanıma, sesli komut yönlendirme gibi uygulamalar yapılabilmektedir. Bu yazımızda matlab ortamında, daha önceden kaydedilmiş bir konuşmada geçen kelimeleri ayırt edip, yeni bir ses dosyası halinde nasıl kaydedeceğimizi anlatacağız.
                22.11.2014 tarihli yazı 33825 kez okunmuştur.
            
            
            
	Matlab, tüm mühendislik dalları için önemli kütüphaneler  içeren bir programdır. Biz bu uygulamamızda Matlab’ın DSP (Digital Signal Processing) kütüphanesini kullanarak basit bir ses işleme uygulaması yapacağız. Uygulamamızı yapabilmemiz için ‘.wav’ formatında kaydedilmiş  kısa bir konuşmaya ihtiyacımız olacak. Ses kaydedici bir çok program bulunmaktadır. Bu uygulamamızda basit ve kullanışlı olan wavesurfer  programını tercih ettik.
	
Kodlara geçmeden önce masa üstüne yeni bir klasör oluşturup kaydettiğimiz ses dosyasını ve matlabda kod yazdığımız '.mfile' dosyasını bu klasöre kaydediyoruz.
Kodlara geçmeden önce masa üstüne yeni bir klasör oluşturup kaydettiğimiz ses dosyasını ve matlabda kod yazdığımız '.mfile' dosyasını bu klasöre kaydediyoruz.
Peki Kodlarımızla Hangi İşlemleri Yapacağız?
►İlk olarak kaydettiğimiz ses dosyasını matlab ortamında dijital olarak alacağız.
	►Aldığımız ses dosyasının enerji değerlerini belli örnekleme aralıklarında çıkaracağız.
	►Sesli sessiz bölge tespiti yapabilmek  için bir eşik değeriyle enerji değerlerimizi karşılaştıracağız.
	►Bu karşılaştırma sonucunda oluşan  matris üzerinden bir algoritma geliştirerek kelimelerimizi ayıracağız.
	►Ayırdığımız kelimeleri yeni bir ses dosyası halinde kaydedeceğiz.
Sesin Enerji Değerlerinin Çıkartılması ve Sesli Sessiz Bölge Tespiti

	Kodların yanlarında gerekli açıklamalar yapılmıştır. Burada eklemek istediğimiz  birkaç husus var; energies değişkeni sesimizin 100 ms aralıklarla aldığımız örneklerin enerji değerlerini belirtmektedir. Vuv değişkeni ise threshold (eşik) değerimizle yapılan karşılaştırma sonucunda elde edilmiş sesli ve sessiz bölgeleri göstermektedir. Bölütleme işlemini vuv dizisi üzerinden kelimelerin bitiş ve başlangıç yerlerini belirleyerek yapacağız.
	
	 
Kelime Sayısı Tespiti
	Energies dizisinin uzunluğu belirlendikten sonra vuv  dizisi içinde 1'den sonra 0 gelen satırların tespiti yapılıyor. Birden sonra sıfır gelen diziler, kelimenin bittiği noktaları gösteriyor. Kaç tane kelimenin bitiş noktası varsa o kadar kelime sayısı vardır diyoruz ve k_s değişkenine kelime sayısını atıyoruz.
Kelimelerin Yerlerinin Belirlenmesi

	Bu kısımda bas ve son adında iki tane dizi değişkeni tanımlıyoruz. Kelimelerin başladığı ve bittiği dizilerin yerlerini bu değişkenlere atayacağız. Birinci iç içe geçen for döngüsünde 0'dan sonra 1 gelen dizi değeri tespit edilmek isteniyor. Örnek verecek olursak vuv(5)=0 iken vuv(6)=1 ise dizinin 6. elemanından itibaren bir kelimenin başladığını anlıyoruz. Aynı mantıkla ikinci iç içe for döngüsünde vuv dizisinin tüm elemanları taratılarak 1 den sonra 0 gelen satırlar belirleniyor. Bunlar da bizim kelimelerimizin bitiş yerini belirtiyor. Örneğin,  bas(1)=6 son(1)=11 ise 6. ve 11.  dizi değerleri arasında bir kelime tespiti yapıldığını anlıyoruz. Son olarak tespit edilen dizilerin 4800 değeriyle çarpıldığını görüyoruz. Bu değer wavread fonksiyonu ile okuma yaparken alınan sesin örnekleme frekansını gösteriyor(fs). Dizi elemanlarını bu değerle çarparak seslerin hangi frekans aralıklarında olduğunu belirliyoruz. Bir sonraki kısımda bu değeri kullanarak sesi yazdıracağız.
Bölütlenen Sesleri Kaydetme

	Bu kısımda geçen k1,k2,k3,k4 değerleri bölütlediğimiz kelimelerin speech değişkenindeki yerini temsil etmektedir. Wavwrite() fonksiyonunu kullanarak, speech dizisinin yani kaydettiğimiz sesin digital verilerinin tutulduğu dizinin ilgili bölümünü yazdırarak kelimelerimizi bölütlemiş oluyoruz. 
	
	 
Grafiklerle Kodların Özeti
Matlab'da kodların anlanmasında workspace alanının kullanımı önemlidir. Bu kısımda kod parçalarımızda oluşan değişkenlerin içeriklerini görebiliriz. Bu konudaki tavsiyemiz workspace üzerinden değişkenleri kontrol ederek kodları incelemeniz. Bir diğer tavsiyemiz ise oluşan değişkenleri grafiksel boyutta incelemeniz olacaktır. Bu konuda matlab’in grafik çizdirme fonksiyonu olan plot() fonksiyonunu incelemenizi öneririz. Biz şimdi uygulamamızda kaydettiğimiz sesin değerlerini içeren speech değişkenini, kaydettiğimiz sesin enerjisini belirten energies değişkenini ve sesli sessiz bölge tespiti yaptığımız vuv değişkenini plot() komutuyla çizdirerek inceleyelim.



	Grafiklere alt alta baktığımızda kaydettiğimiz sesi, keydettiğimiz sesin enerjisini ve sesli sessiz bölgeleri (vuv dizisi) aynı hizada görebiliyoruz. Bu şekilde yazdığımız kodların tutarlı olduğunu anlayabiliriz. Son olarak oluşturduğumuz klasöre yazdırdığımız yeni sesleri dinleyerek sistemin doğruluğunu kontrol edebiliriz.
                    YORUMLAR
                
                
Aktif etkinlik bulunmamaktadır.    
- 
                    
                             Dünyanın En Görkemli 10 Güneş Tarlası Dünyanın En Görkemli 10 Güneş Tarlası
- 
                    
                             Dünyanın En Büyük 10 Makinesi Dünyanın En Büyük 10 Makinesi
- 
                    
                             2020’nin En İyi 10 Kişisel Robotu 2020’nin En İyi 10 Kişisel Robotu
- 
                    
                             Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- 
                    
                             Üretimin Geleceğinde Etkili Olacak 10 Beceri Üretimin Geleceğinde Etkili Olacak 10 Beceri
- 
                    
                             Olağan Üstü Tasarıma Sahip 5 Köprü Olağan Üstü Tasarıma Sahip 5 Köprü
- 
                    
                             Dünyanın En İyi Bilim ve Teknoloji Müzeleri Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- 
                    
                             En İyi 5 Tıbbi Robot En İyi 5 Tıbbi Robot
- 
                    
                             Dünyanın En Zengin 10 Mühendisi Dünyanın En Zengin 10 Mühendisi
- 
                    
                             Üretim için 6 Fabrikasyon İşlemi Üretim için 6 Fabrikasyon İşlemi
- 
                    
                         ABB Sürücü Ailesi & Yeni ACS480 Sürücüler | Webinar ABB Sürücü Ailesi & Yeni ACS480 Sürücüler | Webinar
- 
                    
                         Geleceğin Güç Altyapısı Galaxy VXL ile Tanışın | Schneider Electric Geleceğin Güç Altyapısı Galaxy VXL ile Tanışın | Schneider Electric
- 
                    
                         Senplus Pano Sistem Tanıtımı I Webinar Senplus Pano Sistem Tanıtımı I Webinar
- 
                    
                         Nasıl Dönüşür | Rüzgar Enerjisi Nasıl Dönüşür | Rüzgar Enerjisi
- 
                    
                         Nasıl Dönüşür | Hava Kalitesi İndeksi Nasıl Dönüşür | Hava Kalitesi İndeksi
- 
                    
                         Nasıl Dönüşür | Sorumlu Üretim ve Tüketim Nasıl Dönüşür | Sorumlu Üretim ve Tüketim
- 
                    
                         Webinar I Sigma Elektrik'ten Yeni ve Yenilikçi Ürün Portföyü Tanıtım Webinarı Webinar I Sigma Elektrik'ten Yeni ve Yenilikçi Ürün Portföyü Tanıtım Webinarı
- 
                    
                         Nasıl Dönüşür | Eko Etiket Nasıl Dönüşür | Eko Etiket
- 
                    
                         Nasıl Dönüşür | Uzaktan Erişim Nasıl Dönüşür | Uzaktan Erişim
- 
                    
                         Nasıl Dönüşür | Paris Anlaşması Nasıl Dönüşür | Paris Anlaşması
        ANKET
    
     
         
 
                     
                 
                 
                 
                 
                 
                                             
                                            
 
                         Osman AYMAZ
                        Osman AYMAZ
                             EN 50136 Standardı: Alarm İletim Sistemlerinde Güv...
                    EN 50136 Standardı: Alarm İletim Sistemlerinde Güv...
                 Yüksek Gerilimde Güvenin Anahtarı | Advanced 5 kV,...
                    Yüksek Gerilimde Güvenin Anahtarı | Advanced 5 kV,...
                 Akustik Görüntüleme Nedir? Akustik Kameralar Nasıl...
                    Akustik Görüntüleme Nedir? Akustik Kameralar Nasıl...
                 Otomatik Transfer Şalteri (ATS) Nedir?
                    Otomatik Transfer Şalteri (ATS) Nedir?
                 ENTES EMM Serisi Multimetreler ile Güvenilir Ölçüm
                    ENTES EMM Serisi Multimetreler ile Güvenilir Ölçüm
                
 
                             Güneş Enerjisi Elektrik Üretim Sisteminin Tasarlan...
                    Güneş Enerjisi Elektrik Üretim Sisteminin Tasarlan...
                 Alternatif Akımın Temel Tanımları
                    Alternatif Akımın Temel Tanımları
                 Mühendisler Ne İş Yapar ve Ne Kadar Kazanırlar?
                    Mühendisler Ne İş Yapar ve Ne Kadar Kazanırlar?
                 IT Nedir? | IT Uzmanı Nedir?
                    IT Nedir? | IT Uzmanı Nedir?
                 BIOS Nedir? BIOS Ayarları Nasıl Yapılır?
                    BIOS Nedir? BIOS Ayarları Nasıl Yapılır?
                 Temel Kodlarla Matlab'da Makine Öğrenmesine Giriş ...
                    Temel Kodlarla Matlab'da Makine Öğrenmesine Giriş ...
                 Matlab’ı Pratik Kullanmanızı Sağlayacak 8 Kısayol
                    Matlab’ı Pratik Kullanmanızı Sağlayacak 8 Kısayol
                 Yüksek Gerilim Güç Sistemlerinin MATLAB/Simulink i...
                    Yüksek Gerilim Güç Sistemlerinin MATLAB/Simulink i...
                 Aktif Dikey İkincil Süspansiyon
                    Aktif Dikey İkincil Süspansiyon
                 MATLAB ile "Derin Öğrenme" Algoritmaları Kullanara...
                    MATLAB ile "Derin Öğrenme" Algoritmaları Kullanara...
                