Selasa, 25 Juni 2013

Percobaan 8. Ekstraksi Ciri Pada Sinyal Speech



PERCOBAAN 8

EKSTRAKSI CIRI PADA SINYAL SPEECH



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 nilai frekuensi fundamentalnya.




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 ekstraksi ciri. Pada Sub Bab ini pembicaraan berkisar pada proses melihat short time fourier analisys dari sinyal speech, atau yang juga kita kenal sebagai power spectral density (PSD) sebuah sinyal speech pada durasi atau frame tertentu. Dengan mengetahui bentuk PSD sinyal wicara kita akan mampu melakukan ekstraksi ciri sinyal wicara tersebut. Target akhir sub bab ini dalah 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.





Gambar 8.3. Sinyal Wicara dalam Domain Waktu dan Sebagai Fungsi Sampel ke-n


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 sebagai frekuensi fundamental.

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 merupakan penghalusan dari bentuk PSD sebuah sinyal speech.

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];
subplot(211)
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
yang hasilnya disimpan pada variabel X. Kita harus tahu bahwa nilai yang disimpan
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 satuan waktu, bisa mili detik atau yang lain.

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.
5. Rubah nilainya dalam parameter dB, 20 log10(abs(X))

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 tampilan PSD yang telah anda peroleh.

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.

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




Tidak ada komentar:

Posting Komentar