Ana içeriğe atla

MATLAB ile Voice/Unvoice

Bir arkadaşa yardım için basitçe hazırladığım matlab programı. Wav uzantılı sesi alarak 2 tür işlemden geçiriyor ve Ses'te konuşma olup olmadığını tespit ediyor.Bu 2 yöntem Zero Crossing Rate ve Short-Time Energy. Bu konularla ilgili internette pek çok kaynak bulunmakta. Matlab ile amatörce geliştirdiğim kod ise şöyle:

% İlk Giriş Wav Dosyasının Alınması
fn=input('\nWav dosyası ismi girin : ','s'); 
[x,Fs]=wavread(fn);   % wav dosyası okunuyor
                         % x:giriş    fs:frekans
x=x.';
fprintf('Frekans : %g\n',Fs);
%----------------------------------------------------------------
% Zero Crossing Rate - Sınır Kesit Oranı
M = length(x) - 1;               
x1 = x(1:end-1);
x2 = x(2:end);
xp = x1 .* x2;
I = (xp < 0);
zc = sum(I) / M;
fprintf('Zero Crossing Rate : %g\n',zc);
if(zc>0.07)
    fprintf('ZCR ye göre İnsan Sesi Var(Voice)\n');
else
    fprintf('ZCR ye göre İnsan Sesi Yok(Unvoice)\n');
end
%----------------------------------------------------------------
% Shortime-Energy - Kısa Süreli Enerji Hesabı
N=length(x);
s=cos(2*pi*N/N-1*[0:N-1]');
h=0.54-0.46*s;
E=x*h.^2;
fprintf('Short-Time Energy : %g\n',E);
if E>3
    fprintf('STE ye göre İnsan Sesi Var(Voice)\n');
else
    fprintf('STE ye göre İnsan Sesi Yok(Unvoice)\n');
end
%----------------------------------------------------------------
% Giriş Sesi, Zero Crossing Rate ve Short-time Energy Grafikleri
t=(0:length(x)-1)/Fs;
subplot(3,1,1);
plot(t,x);
title('Kontrol Edilecek Olan Ses Dalgasının Genlik-Zaman Grafiği')
legend('Dalga Şekli');
xlabel('Zaman (s)');
ylabel('Genlik');
subplot(3,1,2);
plot(t,zc);
title('Zero Crossing Rate Grafiği');
legend('ZCR');
xlabel('Zaman (s)');
subplot(3,1,3);
plot(t,E);
title('Short-time Energy Grafiği');
legend('STE');
xlabel('Zaman (s)');

Yorumlar

Bu blogdaki popüler yayınlar

C# ile Yüz Bulma ve Tanıma

Aylardır uğraştığım yüz tanıma sistemi tezimi nihayet bitirdim.Lafı uzatmadan hemen yaptığım uygulamadan bahsedeyim. Öncelikle yaptığım yüz tanıma sistemini gerçekleştirmek için donanımsal ve yazılımsal olarak en düşük sistem gereksinimleri şunlar.  —Donanımsal Gereklilikler İşlemci:        Pentium III veya üstü Bellek:         128 MB Hard Disk:   4GB veya üstü Monitör:       14”SVGA          —Yazılımsal Gereklilikler İşletim Sistemi:                             Microsoft Windows NT/2000 veya üstü Paket:                           ...

OpenSSL

Öncelikle OpenSSL hakkında genel bir bilgi vermek gerekir. OpenSSL ile ilgili genel ve güzel bir yazı var onu paylaşıp daha sonra windows sistemi altında OpenSSL sertifikası nasıl üretilir ve diğer aşamalarını yazacağım. OpenSSL nedir? OpenSSL projesi güvenliği geliştirmek için çaba harcayan ticari, geniş özellikli ve açık kaynak kodlu, Güvenli Soket Katmanı (SSL v2/v3), İletim Seviyesi güvenliği (TLS v1) protokollerini uygulayan, çok güçlü genel amaçlı bir şifreleme kütüphanesidir. Bu proje bütün dünyada iletişim, plan ve OpenSSL araçlarını geliştirmek için interneti kullanan gönüllüler topluluğu tarafından yönetilir. Bilindiği üzere SSL sertifikaları global firmalar tarafından oldukça yüklü rakamlara (Ücretlere) üretiliyorlar. Aslinda bu sertifikaları kendimiz üretmek mümkün, bunun için kendiniz sertifika sunucusu kurabilir ve işletebilirsiniz. OpenSSL organizasyonu burada devreye giriyor, ve bir kaç küçük program ile kendi sertifikalarınızı üretmenize olanak veriyor. Neden o z...

Yüz Tanıma Sistemi - 6

C# Kameradan Görüntü Alma Kameradan görüntüyü almak için "webcam_capture" kütüphanesini kullanıyoruz.Referanslardan dll'i ekledikten sonra. Önce forum kısmına bir picturebox ve bir buton ekleyelim.Daha sonra "Kamera" adında bir sınıf oluşturuyoruz.Bu sınıf kod içeriği şöyle ; using System.Data; class Kamera {  private WebCamCapture kameraa;  private Anaform p;  PictureBox ilkresim; public void Kamera_Etkin(Anaform form, int W, int H, PictureBox ilkres) {   p = form;  ilkresim = ilkres;  kameraa = new WebCamCapture();  kameraa.CaptureHeight = H;  kameraa.CaptureWidth = W;  kameraa.TimeToCapture_milliseconds = 1;  kameraa.ImageCaptured += new WebCamCapture.WebCamEventHandler(kamera_resim); } public void Start() {   kameraa.Start(0); } public void kamera_resim(object source, WebcamEventArgs e) {   ilkresim.Image = e.WebCamImage; } } Kamera sınıfımızı oluşturduk şimdi anaform'da bir kamera nesnesi tanımlıyoruz ; using S...