Konuşma dosyaları üzerinde yapılabilecekler hakkında bir çalışma

Slides:



Advertisements
Benzer bir sunumlar
Mukavemet II Strength of Materials II
Advertisements

el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
Yrd. Doç. Dr. Mustafa Akkol
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
Değişkenler ve bellek Değişkenler
DOĞAL SAYILAR.
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
MATLAB MATLAB İLE GRAFİK.
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
Ondalık Kesirlerle Bölme İşlemi
Atlayarak Sayalım Birer sayalım
BEIER CÜMLE TAMAMLAMA TESTİ
Diferansiyel Denklemler
Zamana Bağımlı Olmayan Doğrusal (LTI) Sistemlerin Frekans Tepkileri
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
İletişim Lab. Deney 1 Alıştırma
1/27 GEOMETRİ (Kare) Aşağıdaki şekillerden hangisi karedir? AB C D.
BEIER CÜMLE TAMAMLAMA TESTİ
ALIŞVERİŞ ALIŞKANLIKLARI ARAŞTIRMASI ÖZET SONUÇLARI Haziran 2001.
Algoritmalar En kısa yollar I En kısa yolların özellikleri
Nicel / Nitel Verilerde Konum ve Değişim Ölçüleri
EŞANLI DENKLEMLİ MODELLER. Eşanlı denklem sisteminde, Y den X e ve X den Y ye karşılıklı iki yönlü etki vardır. Y ile X arasındaki karşılıklı ilişki nedeniyle.
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
Kanallarda doluluk oranı
HİSTOGRAM OLUŞTURMA VE YORUMLAMA
ETİK ve İTİBAR YÖNETİMİ
Soruya geri dön
Prof. Dr. Leyla Küçükahmet
MÜRŞİT BEKTAŞ 1-A SINIFI
CAN Özel Güvenlik Eğt. Hizmetleri canozelguvenlik.com.tr.
Özel Üçgenler Dik Üçgen.
Özdeğerler,Exp./harmonik girdi, spektrum
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
1/25 Dört İşlem Problemleri A B C D Sınıfımızda toplam 49 öğrenci okuyor. Erkek öğrencilerin sayısı, kız öğrencilerin sayısından 3 kişi azdır.
Dördüncü Grup İkinci Harf B sesi sunumu Mürşit BEKTAŞ.
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
TÜRKİYE KAMU HASTANELERİ KURUMU
1 YASED BAROMETRE 18 MART 2008 İSTANBUL.
İmalat Yöntemleri Teyfik Demir
Matematik 2 Örüntü Alıştırmaları.
MATRİSLER ve DETERMİNANTLAR
Tam sayılarda bölme ve çarpma işlemi
PÇAĞEXER / SAYILAR Ali İhsan TARI İnş. Yük. Müh. F5 tuşu slaytları çalıştırmaktadır.
DOĞUM VE SAĞLIK: DOĞUM SAYISI SAĞLIK DURUMUNU ETKİLİYOR MU ? Amaç Annelik kadının varoluşunda ona bahşedilen bir duygudur. Anneliğin birçok getirisi olduğu.
4. Hafta.  % Parametreler %   A = 3; % genlik  f = 440; % frekans (Hz)  phi = -pi/4; % faz  fs = 20e3; % örnekleme oranı (20 kHz)  Ts = 0; %
ONDALIK KESİRLERİN ÖĞRETİMİ
HABTEKUS' HABTEKUS'08 3.
RUHU ŞAD OLSUN.
4 X x X X X
Mukavemet II Strength of Materials II
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Yard. Doç. Dr. Mustafa Akkol
Bir bölme işleminde bölen 8,Bölüm 7, kalan 1ise bölünen Kaçtır?
ANA BABA TUTUMU ENVANTERİ
1 DEĞİŞMEYİN !!!
Test : 2 Konu: Çarpanlar ve Katlar
DENEY TASARIMI VE ANALİZİ (DESIGN AND ANALYSIS OF EXPERIMENTS)
ONDALIK KESİRLERİN BÜYÜKLÜK – KÜÇÜKLÜK – EŞİTLİK YÖNÜNDEN KARŞILAŞTIRMA Kazanım 4: İki ondalık kesri karşılaştırarak aralarındaki ilişkiyi, büyük, küçük.
VERİ İŞLEME VERİ İŞLEME-4.
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
SAYILAR NUMBERS. SAYILAR 77 55 66 99 11 33 88.
HAYAT BİLGİSİ SORULARI.
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
14.ULUSAL TURİZM KONGRESİ 2013 YILI BİLDİRİLERİ ÜZERİNE BİR DEĞERLENDİRME Prof. Dr. A. Celil ÇAKICI Mersin Üniversitesi Turizm Fakültesi.
Proje Konuları.
PÇAĞEXER / SAYILAR Ali İhsan TARI İnş. Yük. Müh. F5 tuşu slaytları çalıştırmaktadır.
Diferansiyel Denklemler
Hidden Markov Model Forward Algoritması Viterbi Algoritması
Sunum transkripti:

Konuşma dosyaları üzerinde yapılabilecekler hakkında bir çalışma Konuşma İşleme Konuşma dosyaları üzerinde yapılabilecekler hakkında bir çalışma

Giriş Rasgele istatistik sinyaller üzerinde yapılan işlemlerin konuşma sinyaline uygulanması Konuşma (speech), ses (audio) değildir fmax(konuşma) = 3.4 kHz fmax(ses) = 20 kHz Sinyal, hemen her zaman parçalara ayrılır ve işlemler stationary kabul edilen bu parçalar üzerinde yapılır

Uygulamalar Bu doküman boyunca yapılacak uygulamalar aşağıdaki konuşma dosyası üzerinde olacaktır konusma.wav

Voiced vs. Unvoiced Konuşma, voiced (ötümlü) ve unvoiced (ötümsüz) olarak ikiye ayrılır Voiced, yüksek seslere; unvoiced, kısık seslere ya da gürültüye karşılık gelir Stationary kabul edilen parçaların voiced/unvoiced olarak sınıflandırılması yapılacak diğer işlemler için önemlidir Sınıflandırma: Sinyalin enerjisi Normalize otokorelasyon katsayıları Sıfır geçişleri

V/UV Classification – Enerji metodu Sinyalin toplam enerjisi belli bir threshold değerinden yüksekse voiced olur. Burdaki m, alınan parçadaki sample sayısıdır

Uygulama Dokümanın en başında verilen konuşma dosyası Matlab’ta açılacak Parçalara bölünecek Tüm parçaların enerjilerinin bir değerden yüksek olup olmadığına bakılacak İşlem tekrar kullanılabilir olması için bir fonksiyon olarak hazırlanacak

Uygulama function [ samples,vuv ] = vuv_energy( file_name ) %Verilen ses dosyasini voiced / unvoiced olarak siniflandirir % Fonksiyon oncelikle dosyayi acar ve 20 ms lik % parcalara boler. Eger dosya 20 ms olarak tam % bolunemiyorsa son 20 ms den kisa olan bolum % kullanilmaz. % % Daha sonra bolunen parcalarin enerjileri hesaplanir % enerjisi 1.5 ten az olan parcalar unvoiced kabul edilir [speech,fs,nbits] = wavread(file_name); window_ms = 20; threshold = 1.5; % alinacak parcalarin sample sayisi window = window_ms*fs/1000; % sinyal uzunlugu kontrolu speech = speech(1:(length(speech) - mod(length(speech),window)),1); samples = reshape(speech,window,length(speech)/window); energies = sqrt(sum(samples.*samples))'; vuv = energies > threshold;

Uygulama Konuşma sinyalinin uzunluğu 500ms 20ms lik toplam 25 parça Kırmızı ile gösterilen voiced / unvoiced data noktaları kendinden sonra gelen 20ms konuşma parçasının voiced ya da unvoiced olduğunu gösterir

LPC Analizi Konuyla ilgili anahtar kelimeler Linear Predictive Coding Linear Regression Time series analysis All-pole filtering Sistem kendi katsayılarını değiştirir Giriş sinyaline göre sistem değişir Sistem sinyali, önceki değerleriyle hesaplamaya çalışır

LPC Sistem s[n] : işlenen sinyal e[n] : hata sinyali ai : LPC katsayıları Sistem, katsayılarını e[n]’nin enerjisini minimum yapacak şekilde ayarlar

Uygulama - LPC Görülebilir sonuçlar elde edebilmek için voiced bir parça üzerinde LPC analiz ve sentez işlemleri yapılacak LPC sentez filtresinin genlik tepkesinin sinyalin genlik spektrumu ile olan ilgisi incelenecek. V/UV sınıflandırma için vuv_energy kullanılacak

Uygulama - LPC Bulunan voiced parçalardan ikincisi kullanılacak vuv_energy’nin voiced olarak belirlediği ilk parçanın bir kısmı unvoiced olabilir Matlab LPC katsayılarını direk verir ama e[n] i direk vermez

Uygulama - LPC function [ sample, lpc_coef, e ] = lpc_a( file_name, predictor ) %Basit lpc analizi % Verilen dosya icindeki voiced parcalar bulunur % Ikinci voiced parcanin lpc katsayilari ve bu lpc analizinin % hatasi hesaplanir [samples,vuv] = vuv_energy(file_name); % ikinci voiced pencere seçilir for i = 1:length(vuv)     if i ~= 1 & vuv(i - 1) == 1 & vuv(i) == 1         sample = samples(1:length(samples),i);         break     end end %%%% lpc_coef = lpc(sample,predictor); e = filter(lpc_coef, 1, sample);

Uygulama - LPC LPC katsayıları: 1.0000 -1.2920 0.2980 -0.1749 0.5167 0.1699 -0.4452 -0.0797 0.1563 0.0553 0.0033

Uygulama - LPC Zaman bölgesi sinyallere bakarak denebilir İletilmesi gereken veri miktarı ciddi miktarda azalmıştır LPC Analiz işlemi aynı zamanda bir sıkıştırma işlemidir denebilir

Uygulama - LPC Frekans bölgesi analiz %sinyal parcasinin frekans spektrumu sample_f = fft(sample,1024); %1/A(z) filtresinin durtu tepkesi ir = filter(1,lpc_coef,[1 zeros(1:1023,1)]); %1/A(z) filtresinin frekans tepkesi fr = fft(ir); %genlik spektrumunun yarisi cizdirilir cunku diger yarisi %cizilen yarinin simetrigidir semilogy(0:1/512:1-1/512,abs(sample_f(1:512))) hold; %genlik tepkesinin, sinyalin spekturumuna oturabilmesi %icin bir miktar yukseltilir plot(0:1/512:1-1/512,3*abs(fr(1:512)))

Uygulama - LPC Mavi grafik sinyalin genlik spektrumu Kırmızı grafik LPC Sentez (1/A(z)) filtresinin genlik tepkesi 1/A(z) filtresinin genlik tepkesinin tepe noktaları sinyalin formantlarıdır

LSF – LSP (Line Spectral Frequencies – Pairs) LPC katsayıları özel bir işlemle LSF’lere dönüştürülür Bu sayede elde edilen LSP’ler 0-1 ya da 0-pi aralığında Pozitif Küçükten büyüğe ya da büyükten küçüğe sıralı İletimde kolaylık sağlar

LSF – LSP P(z) ve Q(z) polinomlarının kökleri LSF’leri verir Bu kökler Birim çember üzerinde Interlaced (Birbiri içine girmiş) Buna karşılık 1/A(z) filtresinin kökleri Fazlasıyla dağınık Eğer otokorelasyon metoduyla hesaplanmışsa hepsi birim çember içinde

1/A(z) kökleri poles = roots(lpc_coef); zplane([],poles);

Uygulama – LSF % P(z) katsayilari p = [1,lpc_coef(2:end) + fliplr(lpc_coef(2:end)),1]; poles_P = roots(p); zplane([],poles_P); hold; % Q(z) katsayilari q = [1,lpc_coef(2:end) - fliplr(lpc_coef(2:end)),-1]; poles_Q = roots(q); zplane([],poles_Q);

Uygulama – LSF 0 ve 1 de işe yaramayan birer kök var Bunlardan kurtulmak için P(z) ve Q(z) polinomlarını modifiye etmek gerekir

Uygulama – LSF 0 ve 1 deki kökler çizdirme esnasında kullanılmadı

LSF – LSP P(z) polinomunun köklerinin gösterdiği frekanslar formantlardır Q(z) polinomunun kökleri ise sinyalin genlik spektrumunun zarfının çizilmesini sağlar

Uygulama – LSF Sinyalin kendi genlik spektrumunun çizilmesi grafiği fazla karmaşıklaştırdığından sadece zarfı çizildi

Hidden Markov Model Deterministik bir olayı stokastik bir şekilde modelleme Modellenecek sistemin bir Markov chain olduğunu kabul ederek izlenebilir parametrelerden gizli parametrelerin hesaplanması

HMM - Örnek x: gizli durumlar y: izlenebilir çıktılar a: geçiş olasılıkları b: çıktı olasılıkları http://en.wikipedia.org/wiki/Image:MarkovModel.png

HMM Kullanım Alanları Pattern Recognition Bioinformatics Hand-written Word Recognition Adaptive Power Management Speech Recognition …

HMM - Ergodic Durumların her birinden tüm durumlara geçiş mümkün

HMM - LTR Durum geçişleri soldan sağa yönde, ters yönde geçiş yok

HMM Markov Chain A = [aij] : state transition matrix Durumdan duruma geçme olasılığı Π = πi : initial probabilities Başlangıç durumu olasılıkları B = [bjot] = [bjk] : observation probability matrix j durumunda k çıktısının olma olasılığı

HMM - aij = (# of states) X (# of states) a11 a12 a13 a14 a15 a16 a21 0.3 0.5 0.2 0.4 0.7 0.1 1.0 = (# of states) X (# of states)

HMM - πi π1 π2 π3 π4 π5 π6 0.5 Durum sayısı uzunluğunda bir vektör

HMM - bjk Durum sayısı X Görülebilecek çıktı sayısı b11 b21 b31 b41 … b1M b2M b3M b4M b5M b6M (# of states) X (# of outputs) Durum sayısı X Görülebilecek çıktı sayısı

HMM - Örnek 6 kutu içinde çeşitli renk toplar var 10 farklı renk var her kutuda her renkten eşit olmayan sayıda top var Başlangıç kutusunu belirlemek için yazı-tura atılıyor (Yazı :1 Tura: 2) 50 kere Zar atılıp bir kutu seçiliyor Seçilen kutudan rasgele bir top alınıyor Rengi kaydedilip top yerine konuyor

HMM Çıktılara bakarak topların hangi kutulardan çekildiğinin bulunması Her bir çıktı için olasılıkların hesaplanması Baum-Welch gibi bir beklenti artırma (expectation maximization) algoritması kullanımı

HMM – Baum Welch Bir HMM’in parametrelerinin (A,B) HMM: ise maximum-likelihood tahminleri maximum a posteriori tahminleri HMM: ise Baum-Welch, verilen çıktıların olma olasılığını maksimize eden HMM’i bulur

HMM – Baum Welch Algoritma verilen başlangıç olasılığı ile başlatılır t zamanında j durumunda olan, O1, O2, … Ot çıktı sırasının olasılığını hesaplar (forward probabilities)

HMM – Baum Welch Çıktı sırasının oluşmasının olasılığı bu değerlerin toplanmasıyla bulunabilir Bu olasılığa Baum-Welch olasılığı denir O çıktısının izlenme olasılığı, mümkün tüm durum sıraları üzerinden toplanmış olur

HMM – Viterbi Çıktıyı oluşturmuş olabilecek maksimum olasılıklı durum sırasını verir Baum-Welch toplama işlemi yaparken Viterbi maksimumunu alır PV genelde PBW den küçüktür PBW nin PV ye eşit olması sadece tek bir durum sırası mümkün olduğunda olur

HMM – Viterbi En olası durum sırasını hesaplamak da mümkündür t zamanında s1 durumundayken t-1 zamanındaki en olası durumu kaydetmekle yapılır Bu değerler tüm j ler için hesaplandıktan sonra en olası durum sırası data üzerinde geri giderek bulunur

HMM – Örnek 3 vazo, R G B toplar O = RGGBRB П(j) = {0.8, 0.2, 0.0} b1(G) = 0.5 b2(G) = 0.4 b3(R) = 0.1 b1(B) = 0.2 b2(B) = 0.5 b3(R) = 0.5 П(j) = {0.8, 0.2, 0.0}

HMM – Örnek function [ alfa, phi, mu ] = hmm( A, B, I, O ) alfa = zeros(length(O),length(I)); for i = 1:length(O) for j = 1:length(I) if i == 1 alfa(1,j) = I(j)*B(1,j); continue end for k = 1:length(I) alfa(i,j) = alfa(i,j) + alfa(i-1,k)*A(k,j); alfa(i,j) = alfa(i,j)* B(O(i),j);

HMM – Örnek 1 2 3 0.240000000 0.020000000 0.000000000 0.036000000 0.070400000 0.001200000 0.005400000 0.021344000 0.004344000 4 0.000324000 0.006158800 0.008575200 5 0.000029160 0.000269030 0.004908200 6 0.000001750 0.000064012 0.002534800

HMM – Örnek function [ alfa, phi, mu ] = hmm( A, B, I, O ) phi = zeros(length(O),length(I)); mu = zeros(length(O),length(I)); for i = 1:length(O) for j = 1:length(I) if i == 1 phi(1,j) = I(j)*B(1,j); continue end for k = 1:length(I) val = phi(i-1,k)*A(k,j); if val > phi(i,j) phi(i,j) = val; mu(i,j) = k; phi(i,j) = phi(i,j)* B(O(i),j);

HMM – Örnek 1 2 3 0.240000000 0.020000000 0.000000000 0.036000000 0.067200000 0.001200000 0.005400000 0.010752000 0.004032000 4 0.000324000 0.002150400 0.003225600 5 0.000029160 0.000086016 0.001290200 6 0.000001750 0.000017203 0.000645120 1 2 3 4 5 6

HMM – Training Baum Welch Algoritma rasgele bir değerle başlatılır t zamanında j durumunda olacak, O1, O2, … Ot çıktı sırasının olasılığını hesaplar (forward probabilities)

HMM – Training Baum Welch t zamanında j durumunda olan modelin, Ot+1, … OT çıktı sırasıyla bitme olasılığını hesaplar (backward probabilities)

HMM – Training Baum Welch

HMM – Training Baum Welch Hesaplanan değerlerle A, B ve П hesaplanır ve yerlerine konup işlem tekrar gerçekleştirilir