• Tidak ada hasil yang ditemukan

Percobaan 8. Ekstraksi Ciri Pada Sinyal

N/A
N/A
Protected

Academic year: 2018

Membagikan "Percobaan 8. Ekstraksi Ciri Pada Sinyal"

Copied!
15
0
0

Teks penuh

(1)

Percobaan 8. Ekstraksi Ciri Pada Sinyal Speech

PERCOBAAN 8

EKSTRAKSI CIRI PADA SINYAL SPEECH

Oleh:

Bakhrul Dwitamala R.I

Mohammad Abdur Rozaqi

Sutra Wardatul Jannah

Tujuan Praktikum

- Mahasiswa mampu melakukan estimasi frekuensi fundamental sinyal speech dengan pengamatan

frekens spektrum dan bentuk gelombangnya

- Mahasiswa mampu menggambarkan bentuk kuefrensi dan cepstrum sinyal speech.

8.1 Dasar Teori

8.1.1 Autokorelasi Sinyal Speech

Tujuan melakukan estimasi dalam domain waktu adalah untuk mendapatkan nilai

autokorelasi sinyal speech. Nilai autokorelasi suatu sinyal wicara akan menunjukkan bentuk

gelombang itu yang membentuk suatu korelasi pada dirisnya sendiri sebagai fungsi perubahan

waktu. Bentuk-bentuk yang sama atau mirip pada perioda tertentu menunjukkan perulangan

bentuk yang menjadi pola dari sinyal wicara. Dengan demikian akan dapat kita lakukan estimasi

(2)

Gambar 8.1. Sinyal Wicara dalam Bentuk Gelombang, dan Fungsi Auto Korelasi

8.1.2 Analisa Spectral Sinyal Spech

Proses ekstraksi ciri sinyal speech didasarkan pada sebuah diagram blok yang cukup

popular seperti berikut.

Gambar 8.2 Diagram Blok Ekstraksi Ciri Sinyal Wicara

Dengan mengikuti diagram blok di atas, kita akan mendapatkan langkah-demi langkah

(3)

mencari bentuk power spectral density (PSD). Sebelum proses pada Gambar di atas dilakukan ada baiknya kita melihat gambaran sebuah sinyal speech yang telah kita simpan dalam bentuk file

a.wav”. Setelah kita dapatkan bentuknya dalam domain waktu seperti pada Gambar 8.3 bagian

atas, selanjutnya kita coba melihatnya sebagai fungsi dari sampling. Dalam hal ini kita lihat bentuk sinyal wicara sesuai dengan urutan sampel yang ada. Seperti kita lihat bahwa untuk nilai sampel

ke-700 sampai dengan sampel ke-8200, menunjukkan nilai magnitudo sinyal yang relatif stabil.

Kita lanjutkan dengan melakukan pembentukan frame sebuah sinyal wicara seperti pada Gambar 8.4 bagian atas. Dengan melakukan windowing kita akan mendapatkan bentuk frame

sinyal wicara terwindow seperti pada Gambar 8.4 bagian bawah. Sudah tentu kita paham untuk

apa proses windowing dilakukan disini. Dengan demikian tidak salah apabila kita mengambil satu frame sinyal dari sampel ke-2000 sampai dengan sampel ke 2480. Karena dalam satu frame kita

bentuk dari:

Sampel/frame = (sample/detik)*(detik/frame)

= 16000 * 0,06= 480 sampel/frame

Hal ini dilakukan dengan menetapkan bahwa satu frame sinyal wicara sepanjang 50 ms.

(4)

Gambar 8.4. Satu Frame Sinyal Wicara dalam Domain Waktu

Proses dilanjutkan dengan melakukan transformasi sinyal ke dalam domain frkeuensi.

Dengan menggunakan fft dan proses logaritmik akan kita dapatkan nilai power spectral density(PSD) sinyal wicara seperti pada Gambar 8.5.

Gambar 8.5. Power Spectral Density Sinyal Speech

8.1.3 Cepstrum Sinyal Speech

Cepstrum c(τ) didefiniskan sebagai inverse transformasi Fourier pada short-time nilai

logarithmik spektrum amplitudo sebuah sinyal, |X(ω)|. Jika log amplitudo spectrum tersusun dari

banyak spasi harmonik yang teratur, maka analisis Fourier pada spektrum ini akan menunjukkan

sebuah puncak yang berhubungan dengan jarak antar harmonisa tersebut, yang juga dikenal

(5)

Dengan melakukan proses mengikuti diagram blok pada Gambar 8.2, maka proses

berikutnya adalah melakukan ifft nilai PSD yang sudah diperoleh. Proses ini menghasilkan sebuah

nilai kuefrensi dari sinyal speech. Gambaran dari nilai kuefrensi seperti pada Gambar 8.6, berikut ini. Langkah ini dilanjutkan dengan lifter window, yaitu proses pengambilan sebagian saja dari

nilai kuefrensi sinyal speech yang terdapat pada Gambar 8.6. Dalam hal ini kita bisa mengambil 16 sampai 20 nilai pertama yang muncul. Nilai ini sudah cukup representatif untuk mendapatkan

ciri dari sinyal wicara. Yang terakhir dari langkah kita adalah melakukan transformasi fourier pada

hasil lifter window yang selanjutnya akan menghasilkan sebuah cepstrum dari sinyal speech yang kita olah.

Gambar 8.6. Gambaran Kuefrensi Sinyal Speech ”a.wav”

Gambar 8.7. Perbandingan Nilai Psd dan Cepstrum Sinyal Speech ”a.wav”

Dari Gambar 8.7 di atas kita dapatkan gambaran bentuk cepstrum sinyal speech

menunjukkan pola yang mirip dengan pola PSD. Di sini tampak bahwa bentuk cepstrum

(6)

8.2. Peralatan

- 1 (satu) buah PC Multimedia lengkap sound card dan microphone

- Satu perangkat lunak Matlab under windows

8.3. Langkah Percobaan

8.3.1 Penataan Perangkat

Sebelum melakukan percobaan harus dilakukan penataan seperti pada Gambar 8.8, berikut

ini.

Gambar 8.8 Penataan Perangkat Percobaan Pengukuran Energi Sinyal Wicara

PC harus dilengkapi dengan peralatan multimedia seperti sound card, speaker active dan

microphone. Untuk microphone dan speaker active. Sebelum anda memulai praktikum, sebaiknya anda tes dulu, apakah seluruh perangkat multimedia anda sudah terintegrasi dengan PC.

Untuk membantu anda dalam menjalankan praktikum ini, di sini diberikan beberapa contoh

perintah dasar yang akan anda perlukan pada proses ekstraksi ciri sinyal speech. Untuk

menentukan korelasinya digunakan perintah sebagai berikut:

Korelasi: C = XCORR(A,B),

Contoh pemakaiannya seperi berikut:

clear all;

x=[1 3 2 1 3 6 1];

(7)

plot(x,’b’,’linewidth’,3) axis([0 8 0 7])

xx=xcorr(x);

subplot(212)

plot(xx,’b’,’linewidth’,3)

Hasilnya adalah seperti berikut ini.

Gambar 8.9. Contoh Proses Korelasi Nilai sample ke-n

Membaca sebuah nilai pada sample tertentu

Fs=12000;

[x,Fs]=wavread('file_a');

x_240=x(2000:2240);

Dengan program ini akan didapatkan nilai x_240 sebagai nilai dari variabel x pada sampel 2000

sampai dengan sampel ke 2240.

Transformasi dari domain waktu ke frekuensi

[H,W] = FREQZ(B,A,N) returns the N-point complex frequency response vector H and

the N-point frequency vector W in radians/sample of the filter:

Contoh pemakaiannya

X=freqz(x_wind);

Langkah ini akan mentransormasikan nilai x_wind menjadi bentuk domain frekuensi

(8)

dalam X merupakan bentuk komplek.

Transformasi dari domain frekuensi ke domain waktu

IFFT(X) is the inverse discrete Fourier transform of X.

Contoh pemakaiannya

x_k = abs(ifft(X_dB));

Langkah ini akan mentransformasikan dari domain frekuensi ke dalam domain waktu,

operasinya kita kenal sebagai invers fast fourier transform.

8.3.2 Estimasi Frekuensi Fundamental dengan Domain Waktu

Pada percobaan ini kita coba untuk melakukan estimasi nilai frekuensi fundamental dengan

menggunakan domain waktu. Dalam hal ini kita memanfaatkan fungsi auto korelasi suatu sinyal

wicara. Langkah-langkahnya adalah sebagai berikut:

1. Buat program untuk memanggil file ‘a.wav’ .

2. Tampilkan hasilnya dalam domain waktuk sebagai figure(1)

3. Ambil beberapa sampel saja dari nilai a.wav yang sudah anda panggil. Dalam hal ini anda bisa

menentukan sebanyak 200, 300, atau terserah anda.

4. Tambahkan program untuk mencari bentuk auto korelasinya

5. Hitung jarak antar puncak satu dengan puncak berikutnya yang paling dekat. Coba amati juga jarak

puncak ke 0, puncak ke 1, puncak ke 2. Arahkan pandangan anda geser ke kiri, perhatikan puncak

ke-1, puncak ke-2, dst. Coba anda hitung jarak antar puncak tersebut. Tentu saja nilainya dalam

(9)

%---% Bakhrul D.R.I / M.A. Rozaqi / Sutra W.J

% 8.4.3. Estimasi Frekuensi Fundamental dengan Domain Waktu

%---% 1. Buat program untuk memanggil file ‘a.wav’ .

clear all; fs=16000;

[y,fs]=wavread('a.wav');

%2. Tampilkan hasilnya dalam domain waktuk sebagai figure(1)

dt = 1/fs;

t = 0:dt:(length(y)*dt)-dt; subplot(311);

plot(t,y); xlabel('Seconds'); ylabel('Amplitude');title('figure(1)');

%3. Ambil beberapa sampel saja dari nilai a.wav yang sudah anda panggil. % Dalam hal ini anda bisa menentukan sebanyak 200, 300, atau terserah anda.

y_400=y(1000:1400); subplot(312);

plot(y_400); xlabel('N Sample'); ylabel('Amplitude');title('figure(2)');

%4. Tambahkan program untuk mencari bentuk auto korelasinya

subplot(313); c=xcorr(y_400); plot(c);

%5. Hitung jarak antar puncak satu dengan puncak berikutnya yang paling dekat.

% Coba amati juga jarak puncak ke 0, puncak ke 1, puncak ke 2.

(10)

8.3.4 Karakterisrik Power Spectral Density 1. Panggil sinyal wicara “a.wav”.

2. Tampilkan dalam domain waktu dan dalam bentuk sinyal sebagai fungsi sample ke-n.

3. Buat sebuah frame sinyal sepanjang 240 sampel, dalam hal ini anda bisa memilih bagian sinyal

yang representatif, yang memiliki nilai cukup stabil selama durasi frame yang anda tetapkan

panjangnya.

4. Transformasikan ke dalam domain frekuensi, anda bisa menggunakan perintah fft atau yang lain.

(11)

%---% Bakhrul D.R.I / M.A. Rozaqi / Sutra W.J

% 8.3.4 Karakterisrik Power Spectral Density

%---%1. Panggil sinyal wicara “a.wav”. clear all;

fs=16000;

[y,fs]=wavread('a.wav');

%2. Tampilkan dalam domain waktu dan dalam bentuk sinyal sebagai fungsi sample ke-n.

dt = 1/fs;

t = 0:dt:(length(y)*dt)-dt; subplot(321);

plot(t,y); xlabel('Seconds'); ylabel('Amplitude'); subplot(322);

plot(y); xlabel('N Sample'); ylabel('Amplitude');

%3. Buat sebuah frame sinyal sepanjang 240 sampel, dalam hal ini anda bisa memilih

% bagian sinyal yang representatif, yang memiliki nilai cukup stabil selama durasi

% frame yang anda tetapkan panjangnya.

y_240=y(42500:42740); subplot(323);

plot(y_240); xlabel('N Sample'); ylabel('Amplitude');

%4. Transformasikan ke dalam domain frekuensi, anda bisa menggunakan % perintah fft atau yang lain.

L=length(y_240);

NFFT = 2^nextpow2(L); % Next power of 2 from length of y

Y = fft(y_240,NFFT)/L;

f = fs/2*linspace(0,1,NFFT/2+1);

% Plot single-sided amplitude spectrum.

subplot(324);

plot(f,2*abs(Y(1:NFFT/2+1)));

title('Single-Sided Amplitude Spectrum of y(t)'); xlabel('Frequency (Hz)');

ylabel('|Y(f)|');

%5. Rubah nilainya dalam parameter dB, 20 log10(abs(X))

subplot(3,2,[5 6]);

plot(f,20*log(abs(Y(1:NFFT/2+1)))/log(10));

title('Single-Sided Amplitude Spectrum of y(t)'); xlabel('Frequency (Hz)');

(12)

8.3.5 Mencari Bentuk Cepstal Sinyal Wicara

1. Lakukan hal yang sama seperti pada langkah percobaan 8.3.4, usahakan tampilan yang sudah anda

peroleh anda hold supaya gambarnya tidak hilang. 2. Tambahkan program untuk melakukan invers fft anda.

3. Tampilkan bentuk kuefrensi yang telah anda peroleh, jika terjadi bentuk pencerminan pada sisi kiri

dan sisi kanan, ambil sisi kiri saja dan tampilkan kembali dengan mengatur nilai sample tertentu

saja yang anda olah.

4. Lakukan proses lifter window dengan cara ambil 16 titik nilai kuefrensi pertama saja. Jika anda

ragu anda bisa mengambil 20 titik nilai kuefrenensi pertama.

5. Transformasikan kembali ke domain fekuensi, dan usahakan gambarnya menjadi satu dengan hasil

(13)

%---% Bakhrul D.R.I / M.A. Rozaqi / Sutra W.J

% 8.3.5 Mencari Bentuk Cepstal Sinyal Wicara

%---%1. Lakukan hal yang sama seperti pada langkah percobaan 8.3.4,

% usahakan tampilan yang sudah anda peroleh anda hold supaya gambarnya tidak hilang.

plot(t,y); xlabel('Seconds'); ylabel('Amplitude'); subplot(422);

plot(y); xlabel('N Sample'); ylabel('Amplitude');

y_240=y(22500:22740); subplot(423);

plot(y_240); xlabel('N Sample'); ylabel('Amplitude');

L=length(y_240);

NFFT = 2^nextpow2(L); % Next power of 2 from length of y

Y = fft(y_240,NFFT)/L;

f = fs/2*linspace(0,1,NFFT/2+1);

% Plot single-sided amplitude spectrum.

subplot(424);

plot(f,2*abs(Y(1:NFFT/2+1)));

title('Single-Sided Amplitude Spectrum of y(t)'); xlabel('Frequency (Hz)');

ylabel('|Y(f)|');

subplot(425);

Y_dB=20*log(abs(Y(1:NFFT/2+1)))/log(10); plot(f,Y_dB);

title('Single-Sided Amplitude Spectrum of y(t)'); xlabel('Frequency (Hz)');

ylabel('dB');

%2. Tambahkan program untuk melakukan invers fft anda.

y_inv =abs(ifft(Y_dB));

%3. Tampilkan bentuk kuefrensi yang telah anda peroleh, jika terjadi bentuk % pencerminan pada sisi kiri dan sisi kanan, ambil sisi kiri saja dan tampilkan

% kembali dengan mengatur nilai sample tertentu saja yang anda olah.

subplot(426); plot(y_inv);

%4. Lakukan proses lifter window dengan cara ambil 16 titik nilai kuefrensi pertama saja

% Jika anda ragu anda bisa mengambil 20 titik nilai kuefrenensi pertama.

y_lw=y_inv(1:20);

%5. Transformasikan kembali ke domain fekuensi, dan usahakan gambarnya menjadi satu

% dengan hasil tampilan PSD yang telah anda peroleh.

(14)

8.4 Analisis Data

Anda harus menjelaskan tentang proses urutan sesuai dengan diagram blok pada Gambar

8.2. Termasuk menjelaskan masing-masing fungsi blok tersebut. Kemudian dari hasil uji coba

yang telah anda lakukan. Apa yang anda peroleh. Berikan penjelasannya.

L2=length(y_lw);

NFFT2 = 2^nextpow2(L2); % Next power of 2 from length of y

Y_ceps = fft(y_lw,NFFT2)/L2;

f2 = fs/2*linspace(0,1,NFFT2/2+1);

% Plot single-sided amplitude spectrum.

subplot(427);

plot(f2,(20*log(abs(Y_ceps(1:NFFT2/2+1)))/log(10))); title('Single-Sided Amplitude Spectrum of y(t)'); xlabel('Frequency (Hz)');

ylabel('dB');

subplot(428);

plot(f2,(20*log(abs(Y_ceps(1:NFFT2/2+1)))/log(10))); title('Single-Sided Amplitude Spectrum of y(t)'); xlabel('Frequency (Hz)');

ylabel('dB'); hold all;

(15)

8.5 Tugas

1. Buat program seperti pada langkah-langkah di atas, gunakan sinyal speech dengan merekam sendiri.

% Record your voice for 5 seconds.

fs=16000;

recObj = audiorecorder(fs,8,2); disp('Start speaking.')

recordblocking(recObj, 5); disp('End of Recording.');

% Play back the recording.

play(recObj);

% Store data in double-precision array.

myRecording = getaudiodata(recObj);

% Plot the waveform.

subplot(211); plot(myRecording);

Gambar

Gambar 8.1. Sinyal Wicara dalam Bentuk Gelombang, dan Fungsi Auto Korelasi
Gambar 8.3. Sinyal Wicara dalam Domain Waktu dan Sebagai Fungsi Sampel ke-n
Gambar 8.4. Satu Frame Sinyal Wicara dalam Domain Waktu
Gambar 8.6. Gambaran Kuefrensi Sinyal Speech ”a.wav”
+3

Referensi

Dokumen terkait

Dengan demikian, berdasarkan ketentuan batasan sesaran yang ditetapkan oleh Amerika Serikat, Australia dan Indonesia yaitu masing-masing pada sesaran 0,38 mm, 0,80 mm dan

Berangkat dari latar belakang tersebut, penulis tertarik untuk meneliti peran politik pers pada kasus korupsi simulator SIM Korlantas Polri, mengingat kasus

Gagal jantung kanan juga dapat terjadi tanpa disertai gagal jantung kiri pada pasien dengan penyakit parenkim paru dan atau pembuluh paru (kor polmunale) dan pada pasien

Gatra melihat bahwa peristiwa ini adalah peristiwa penyerangan yang dilakukan oleh warga non Syiah kepada masyarakat Syiah Sampang, di Nangkernang pasca lebaran, dimana

Metode yang dapat digunakan untuk permasalahan tersebut yaitu metode K-Means Clustering.Metode K-Means Clustering merupakan salah satu metode data clustering non

Penelitian ini di lakukan sebagai upaya untuk mengetahui faktor-faktor yang paling mempengaruhi kontraktor dalam pengambilan keputusan untuk mengikuti tender pemerintah di

Manajemen Publik = pada dasarnya sama dg Manajemen Bisnis • Public management, focused on government and non-profit administration, contends. that private