Showing posts with label Pemisahan sinyal suara. Show all posts
Showing posts with label Pemisahan sinyal suara. Show all posts

Saturday, April 05, 2014

Noise Removal dengan Audacity

Meski agak kecewa dengan spec mbp dibandingkan dengan G580, tapi saya cukup puas dengan kualitas mic dari Apple ini. Saat mencoba merekam suara dengan Audacity di Ubuntu Trusty, noise (derau) yang ikut terekam sangat kecil sekali. Padahal sepanjang sejarah perekaman dengan komputer sejak awal kuliah dulu (skripsi dan thesis saya tentang perekaman dan pengolahan suara), noise yang dihasilkan cukup besar. Dengan bantuan noise removal yang ada pada Audacity, kualitas perekaman suara mbp hampir tidak menghasilkan noise sama sekali!

Waveform sinyal sebelum dan setelah difilter

Posting singkat ini membahas perbandingan kualitas perekaman suara dengan built-in mic mbp (microphone was made by Apple) baik secara obyektif dengan analisa suara maupun secara subyektif dengan mendengarkan suara secara langsung. Tools yang saya gunakan adalah sebagai berikut:
  1. Audacity, untuk perekaman dan noise removal
  2. Praat, untuk plotting waveform dan analisa suara (f0)
  3. Soundcloud, untuk upload hasil perekaman

Friday, October 14, 2011

FFT dari Sinyal Sinus di Matlab/Octave

Seharusnya, bila kita membuat sinyal sinusoidal dengan frekuensi 20 Hz, maka kalau kita fft-kan (fourrier transform-kan) sinyal tersebut memiliki frekuensi tunggal pada sumbu X=20. Bila tidak, atau plotnya menunjukkan spektrum yang tidak beraturan, maka gambar dan teknik yang kita gunakan tersebut salah.
Sinyal Sin 20 Hz dan FFT -nya
Cek dan run listing code matlab di bawah untuk menghasilkan FFT dari sinyal sinus yang match dengan frekuensinya.
% Sampling frequency 
Fs = 1024; 
% Time vector of 1 second 
t = 0:1/Fs:1; 
% Create a sine wave of 20 Hz.
x = sin(2*pi*t*20);
% Use next highest power of 2 greater than or equal to length(x) to calculate FFT.
nfft= 2^(nextpow2(length(x)));

% Take fft, padding with zeros so that length(fftx) is equal to nfft
fftx = fft(x,nfft);

% Calculate the numberof unique points
NumUniquePts = ceil((nfft+1)/2);

% FFT is symmetric, throw away second half
fftx = fftx(1:NumUniquePts);

% Take the magnitude of fft of x and scale the fft so that it is not a function of the length of x
mx = abs(fftx)/length(x);

% Take the square of the magnitude of fft of x.
mx = mx.^2;

% Since we dropped half the FFT, we multiply mx by 2 to keep the same energy.
% The DC component and Nyquist component, if it exists, are unique and should not be multiplied by 2.
if rem(nfft, 2) % odd nfft excludes Nyquist point
  mx(2:end) = mx(2:end)*2;
else
  mx(2:end -1) = mx(2:end -1)*2;
end

% This is an evenly spaced frequency vector with NumUniquePts points.
f = (0:NumUniquePts-1)*Fs/nfft;

% Generate the plot, title and labels.
subplot(211); plot(x);
title('Waveform of a 20Hz Sine Wave');
xlabel('Time');
ylabel('Amplitude');
subplot(212); plot(f,mx);
title('Power Spectrum of a 20Hz Sine Wave');
xlabel('Frequency (Hz)');
ylabel('Power');
Source: Mathwork

Wednesday, October 12, 2011

Solusi dari Permasalahan Suara di Matlab Under Ubuntu Linux

Posting saya sebelumnya disini menjelaskan tentang instalasi Matlab pada Ubuntu Linux. Setelah instalasi umumnya tidak dijumpai permasalahan berarti untuk proses komputasi dan simulasi dengan Matlab under Linux itu. Namun, jika anda menggunakan Matlab untuk pemrosesan suara (sound processing) maka suara dari Matlab hanya akan terdengar pertama kali saat anda menggunakan fungsi berbasis suara seperti 'sound', 'audioplayer' dan sebagainya. Bagaimana agar matlab under linux bisa memutar suara berulang-ulang dengan function pemrosesan sinyal tersebut?

Pertama, bila masukkan matlab dalam menu application anda (jika anda belum membuatnya). Caranya adalah klik kanan application (pojok kanan atas) kemudian pilih edit menu, maka akan keluar tampilan sebagai berikut,

Wednesday, September 21, 2011

(Computational) Auditory Scene Analysis

Setelah pada posting sebelumnya, saya bercerita tentang metode pemisahan sinyal suara dengan Blind Source Separation atau BSS kali ini saya akan mengulas sedikit tentang metode pemisahan sinyal suara lainnya, yang lebih dekat ke bagaimana sistem pendengaran manusia bekerja memisahkan sumber - sumber suara. Metode itu dinamakan Computational Auditory Analysis atau disingkat CASA yang merupakan representasi komputasional dari ASA (Auditory Scene Analysis).
Skema Arsitektur CASA [1]
ASA diperkenalkan oleh Al Bregman (psikolog) untuk menjelaskan bagaimana sistem pendengaran manusia bekerja, khususnya dalam memisahkan dan mengidentifikasi lokasi sumber bunyi yang di dengar oleh telinga berdasarkan teori dan eksperimen psikologi terhadap sistem pendengaran manusia. Bregman berpendapat bahwa saat manusia mendengar suara pada dasarnya dia melakukan proses auditory scene analysis. Proses ASA tersebut dibagi menjadi dua tahap, yakni tahap segmentasi dimana terjadi pengelompokan elemen-elemen akustik berdasarkan time-frequency dan tahap kedua adalah pengelompokan elemen-elemen tersebut berdasarkan sumber-sumber suara yang sama. Skema arsitektur sistem CASA dapat digambarkan pada gambar diatas.