Anda di halaman 1dari 14

Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

Modul 6
Ekstraksi Pitch dan Formant pada Sinyal Wicara

I. TUJUAN
- Mahasiswa mampu mengestimasi nilai fundamental frekuensi pada sinyal wicara
- Mahasiswa mampu mengestimasi nilai formant dari sinyal wicara

II. DASAR TEORI


Proses pencarian frekuensi funcamental pada sinyal wicara dapat dilakukan dengan
berbagai cara. Yang pertama adalah dengan metode auto korelasi yang mana akan
memerlukan proses di dalam domain waktu. Yang kedua adalah dengan metode cepstrum
dan dilakukan di dalam domain frekuensi. Sementara di dalam perkembangannya muncul
algorithma lain seperti SIFT (Simple inverse filter tracking), Maximum likelihood, dan
pendekatan Neural Network.
Di dalam praktikum ini kita akan mencoba membicarakan bagaimana pencarian
frekuensi fundamental dengan menggunakan metode auto korelasi dan metode cepstrum.

2.1. Estimasi Frekuensi Fundamental di Domain Waktu


Kita bisa secara langsung melakukan estimasi frekuensi fundamental frequency dari
sebuah sinyal wicara dengan menggunakan autocorrelation (auto korelasi). Fungsi auto
korelasi untuk ukuran durasi tertentu sinyal wicara (satu atau beberapa frame)
menunjukkan bagaimana bentuk sinya itu berkorelasi dengan dirinya sendiri pada suatu
rentang delay berbeda. Kita berharap sebuah sinyal periodic berkorelasi bagus dengan
dirinya sendiri pada suatu delay pendek berkaitan dengan periodisasi pitch.
Anda dapat melihat bahwa fungsi auto korelasi memiliki puncak pada delay nol dan
pada sebuah delay yang berkaitan dengan  1 periode,  2 periode, dst. Kita dapat
melakukan estimasi frekuensi fundamental dengan melihat interval (jarak) antara puncak
tertinggi dengan puncak tertinggi berikutnya. Tetapi satu hal yang harus kita ingat bahwa
nilai frekuensi fundamental yang wajar pada sinyal wicara (pitch) berkisar antara 50 Hz
dan 500 Hz. Dalam program kita akan muncul nilai 20ms dan 2 ms yang mmuncuul dari
hasil perhitungan interval waktu, dan dapat kita ekuivalenkan dengan 2ms(=500Hz) dan
20ms (=50Hz).

Tri Budi, Huda, Titon 52


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

Gambar 1. Sinyal wicara ‘a’.

Gambar 2. Satu frame sinyal wicara ‘a’.

Tri Budi, Huda, Titon 53


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

Gambar 3. Auto korelasi sinyal wicara ‘a’.

Nilai yang dihasilkan adalah:


rmax=0.532608 Fx=109.589Hz
Ini menunjukkan bahwa frekuensi fundalmental Fx 109.589 Hz dan puncak tertinggi ke-2
nilai auto korelasi adalah 0.532608.

Pendekatan auto korelasi merupakan langkah terbaik dalam pencarian frekuensi


fundamental jika kondisi sinyal wicara adalah memiliki level nois tidak terlalu tinggi,
nilai pitch yang teratur dan spectral penyusunnya tidak berubah terlalu cepat. Jika kita
salah dalam pemilihan nilai delay, maka metode auto korelasi tidak akan memberikan
hasil yang baik dan cenderung menimbulkan kesalahan.
Satu kelemahan metode ini pada saat melakukan ekstraksi suara wanita, ada suatu
kondisi dimana suaranya memiliki nilai formant ke-1 (F1) yang posisinya lebih rendah
dibanding frekuensi fundamentalnya.

Tri Budi, Huda, Titon 54


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

2.2. Estimasi Frekuensi Fundamental di Domain Frekuensi


Satu permasalahan yang sering dihadapi dalam dunia nyata yang mana sangat
mengganggu proses extraksi frekuensi fundamental adalah kondisi dimana:
- bahwa tidak semua sinyal adalah periodik
- periodisasi sinyal bisa berubah dari waktu ke waktu, kadang melebihi batas waktu
pengamatan yang kita gunakan
- Sinyal-sinyal ini bercampur dengan nois yang levelnya relative tinggi
- Sinyal yang periodik pada interval T juga periodik pada interval waktu 2T, 3T, dst.
- Ketika sinyal-sinyal ini memiliki frekuensi fundamental yang konstan, tiba-tiba
mengalami perubahan secara mendadak dan masih di dalam batas waktu
pengamatan (frame) kita

Sebuah cara yang layak dipakai dalam mengestimasi frekuensi fundamental untuk
durasi yang panjang adalah metode cepstrum yang mana merupakan sebuah analisis
Fourier pada nilai logarithmic amplitude spectrum dari sebuah sinyal. Jika log amplitude
spectrum tersusun dari berbagai jarak frekuensi harmonisa-harmonisa sinyal, selanjutnya
analisis Fourier pada spectrum akan menunjukkan sebuah puncak yang berkaitan dengan
jarak diantara harmonisa tersebut, yang dalam hal ini adalah nilai frequensi fundamental
dari sinyal.
Disebut cepstrum darena diperoleh dari kandungan nilai yang berada di dalam
spectrum dengan proses lebih dalam lagi. Sumbu x pada cepstrum memiliki satuan
quefrency, dan puncak yang muncul pada cepstrum (yang berkaitan dengan periodisitas
di dalam spectrum) disebut rahmonics.
Untuk dapat melakukan estimasi pada dnilai frekuensi fundamental dari cepstrum kita
harus mencari sebuah puncak yang muncul di dalam daerah quefrency berkaitan dengan
tipe frekuensi fundamental pada sinyal wicara.

Tri Budi, Huda, Titon 55


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

Gambar 4. Dua frame sinyal wicara ‘a’.

Gambar 5. Spectrum sinyal wicara ‘a’.

Tri Budi, Huda, Titon 56


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

Gambar 6. Cepstrum sinyal wicara ‘a’.

Nilai yang dihasilkan adalah: Fx=109.589Hz.


Ini menunjukkan bahwa frekuensi fundalmental Fx 109.589 Hz.

Satu kelemahan metode ini adalah proses komputasinya sangat panjang. Itulah
fenomena alam, kita selalu mencoba memahami ciptaan Alloh, tetapi selalu saja ada yang
masih belum bisa kita mengerti….. (smile)

2.3. Estimasi Nilai Formant pada Sinyal Wicara


Estimasi pada nilai frekuensi formant secara umum lebih sulit disbanding estimasi
pada frekuensi fundamental. Masalahnya adalah bahwa frekuensi formant merupakan
sifat dari system vocal tract dan harus diperoleh dari extraksi sinyal wicara. Bentuk
spectral pada vocal tract secara kuat berkaitan dengan pengamatan spectral envelope
(selubung spektral), yang mana kita tidak akan mampu menjamin bahwa semua vocal
tract yang beresonansi akan ditentukan oleh puncak-puncak di dalam spectral envelope
yang kita amati, tetapi bisa juga terjadi sebaliknya dimana semua puncak-puncak yang
muncul pada spectral envelope disebabkan oleh resonansi vocal tract resonances.

Tri Budi, Huda, Titon 57


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

Metode yang cukup banyak dipakai pada estiamsi formant frequency didasarkan pada
pemodelan signal wicara yang dibangkitkan oleh sekumpulan sumber frekuensi dan filter
seperti pada diagram blok pada Gambar 7.

Gambar 7. Diagram blok pemodelan pencarian formant frekquency

Tipe analisis ini disebut source-filter separation, dan di dalam kasus estimasi formant
frequencykit ahanya berkonsentrasi pada pemodelan system dan frekuensi resonansi yang
muncul. Untuk mendapatkan kecocokan yang terbaik pada sistem, kita system
menggunakan sebuah metode analisis yang disebut Linear Prediction. Metode ini
memodelkan sinyal denagn kondisi seperti dibangkitkan dalam kondisi energi yang
minimum dan selanjutnya dilewatkan pada sebuah filter IIR.

Gambar 8. Satu frame sinyal wicara ‘a’ dengan frekuensi samplingnya telah dirubah menjadi 10000.

Tri Budi, Huda, Titon 58


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

Gambar 9. Spectrum sinyal wicara ‘a’ dengan frekuensi samplingnya telah dirubah menjadi 10000.

Gambar 10. Output Linear Prediction Filter dari spectrum sinyal wicara ‘a’.

Tri Budi, Huda, Titon 59


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

Untuk mendapatkan formant frequencies dari filter, kita perlu untuk mendapatkan
lokasi-lokasi terjadinya resonansi yang dihasilkan oleh filter. Ini melibatkan perlakukan
koefisien filter sebagai sebuah polynomial dan menyelesaikannya akar-akar polynomial
tersebut. Anda perhatikan bagian kode program dibawah ini, yang merupakan langkah
untuk mengestimasi formant frequencies dari output LP filter:

% find frequencies by root-solving


r=roots(a); % find roots of polynomial a
r=r(imag(r)>0.01); % only look for roots >0 up to fs/2
ffreq=sort(atan2(imag(r),real(r))*fs/(2*pi)); % convert to Hz and sort
for i=1:length(ffreq)
fprintf('Formant %d Frequency %.1f\n',i,ffreq(i));
end

Dari pencarian formant frekuensi yang telah dilakukan dengan langkah ini hasilnya
adalah:
Formant 1 Frequency 802.3
Formant 2 Frequency 1162.6
Formant 3 Frequency 2617.0
Formant 4 Frequency 3432.1
Formant 5 Frequency 4097.0

III. PERANGKAT YANG DIPERLUKAN


- 1 (satu) buah PC Multimedia lengkap sound card dan microphone
- Satu perangkat lunak Matlab under windows
Sebelum anda melakukan percobaan anda harus melakukan penataan seperti pada
Gambar 4 berikut ini.
Microphone

Software
Sound Card Matlab

PC Multimedia

Speaker

Gambar 11. Penataan perangkat percobaan recording dan editing

Tri Budi, Huda, Titon 60


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

PC anda harus dilengkapi dengan peralatan multimedia seperti sound card, speaker aktif
dan microphone. Untuk microphone dan speaker active bisa juga digantikan dengan head
set lengkap. Sebelum anda memulai praktikum, sebaiknya anda tes dulu, apakah seluruh
perangkat multimedia anda sudah terintegrasi dengan PC.

IV. LANGKAH-LANGKAH PERCOBAAN


Pertemuan 1
4.1. Pencarian Frekuensi Fundamental dengan Metode Auto Korelasi
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)
clear all
fs=16000;
% get a section of vowel
% plot waveform
figure(1)
plot(x)
legend('Waveform');
ylabel('Magnitude')
xlabel('sample')

3. Ambil satu frame sample dari sinyal a.wav yang sudah anda panggil. Dalam hal ini
anda bisa menentukan panjang frame 0.02*fs. Jika frekuensi sampling fs = 16000,
berarti satu frame adalah sebesar frame = 0.02*16000 = 320sampel.
% plot waveform 1 frame
figure(2)
frame_1=0.02*fs;
xframe=x(5*frame_1:6*frame_1);

4. Tambahkan program untuk mencari bentuk auto korelasinya.


% calculate autocorrelation
r=xcorr(xframe,ms20,'coeff');
% plot autocorrelation
d=(-ms20:ms20)/fs; % times of delays
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

Tri Budi, Huda, Titon 61


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

puncak tersebut. Tentu saja nilainya dalam satuan waktu, bisa mili detik atau yang
lain.
ms2=fs/500; % maximum speech Fx at 500Hz
ms20=fs/50; % minimum speech Fx at 50Hz
% just look at region corresponding to positive delays
r=r(ms20+1:2*ms20+1);
[rmax,tx]=max(r(ms2:ms20));

6. Ulangi langkah anda untuk jenis file wicara yang lain misalnya file_u.wav, dsb

4.2. Pencarian Frekuensi Fundamental dengan Metode Cepstrum


Pada percobaan ini kita coba untuk melakukan estimasi nilai frekuensi
fundamental dengan memanfaatkan metode cepstrum.
1. Buat program untuk pemanggilan sinyal wicara file_a.wav.
2. Susun dua frame dari sinyal tsb dan tampilkan bentuknya di dalam domain waktu.
3. Tambahkan program berikut ini untuk melihat spectrumnya.
% do fourier transform of windowed signal
Y=fft(xframe.*hamming(length(xframe)));
%plot spectrum of bottom 8000Hz
hz8000=8000*length(Y)/fs;
f=(0:hz8000)*fs/length(Y);
plot(f,20*log10(abs(Y(1:length(f)))+eps));
legend('Spectrum');
xlabel('Frequency (Hz)');
ylabel('Magnitude (dB)');

4. Lanjutkan dengan pencarian bentuk cepstrum sinyal wicara, sehingga anda


memperoleh tampilan quefrency.
figure(3)
% cepstrum is DFT of log spectrum
C=fft(log(abs(Y)+eps));
% plot between 1ms (=1000Hz) and 20ms (=50Hz)
q=(ms1:ms20)/fs;
plot(q,abs(C(ms1:ms20)));
legend('Cepstrum');
xlabel('Quefrency (s)');
ylabel('Amplitude');
5. Cari puncak yang muncul dalam domain quefrency
[c,fx]=max(abs(C(ms1:ms20)));
fprintf('Fx=%gHz\n',fs/(ms1+fx-1));

6. Anda bisa mengulangi percobaan ini untuk jenis vokal atau file wicara yang lain.

Tri Budi, Huda, Titon 62


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

4.2. Pencarian Nilai Frekuensi Formant


Pada percobaan ini kita coba untuk melakukan estimasi nilai Formant 1, Formant 2,
Formant 3 dan Formant 4 dari sebuah file sinyal wicara. Metode yang digunakan cukup
sederhana, seperti yang telah dijelaskan pada bagian teori penunjang Sub Bab 2.3.
1. Buat program untuk memanggil file ‘a.wav’.
2. Lakukan proses resampling, dari fs = 16000 menjadi fs=10000. Hal ini untuk
membantu anda dalam proses pengolahan sinyal wicara supaya lebih mendekati
kepada standar pengolahan sinyal wicara yang menggunakan frekuensi sampling
10000 Hz.
[x,fs]=wavread('file_a.wav');
% resample to 10,000Hz (optional)
x=resample(x,10000,fs);
fs=10000;

3. Lanjutkan langkah anda denga menyusun satu frame sinyal dan tampilkan hasilnya.
% plot waveform
frame_1=0.02*fs;
xframe=x(5*frame_1:6*frame_1);
t=(0:length(xframe)-1)/fs; % times of sampling instants
plot(t,xframe);
legend('1 Frame Waveform');
ylabel('Magnitude')
xlabel('Time')

4. Lakukan pengamatan spectrum sinyal yang sudah anda susun dalam bentuk 1 frame.
Jangan lupa anda menggunakan fungsi window hamming untuk pekerjaan ini.
% do fourier transform of windowed signal
Y=fft(xframe.*hamming(length(xframe)));
%plot spectrum of bottom 8000Hz
hz5000=5000*length(Y)/fs;
f=(0:hz5000)*fs/length(Y);
plot(f,20*log10(abs(Y(1:length(f)))+eps));
legend('Spectrum');
xlabel('Frequency (Hz)');
ylabel('Magnitude (dB)');

5. Lakukan penghalusan spectrum sinyal dengan sebuah linear prediction filter


% get Linear prediction filter
ncoeff=2+fs/1000; % rule of thumb for formant estimation
a=lpc(x,ncoeff);
% plot frequency response
[h,f]=freqz(1,a,512,fs);

Tri Budi, Huda, Titon 63


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

plot(f,20*log10(abs(h)+eps));
legend('LP Filter');
xlabel('Frequency (Hz)');
ylabel('Gain (dB)');

6. Lakukan pencarian akar-akar polinomial yang ada, dan lanjutkan dengan proses
pencarian nilai-nilai puncak pada envelope yang sudah dihasilkan. Dengan langkah ini
anda akan mendapatkan nilai Formant1, Formant 2, Formant 3 dan Formant 4.
% find frequencies by root-solving
r=roots(a); % find roots of polynomial a
r=r(imag(r)>0.01); % only look for roots >0 up to fs/2
ffreq=sort(atan2(imag(r),real(r))*fs/(2*pi));
% convert to Hz and sort
for i=1:length(ffreq)
fprintf('Formant %d Frequency %.1f\n',i,ffreq(i));
end

6. Ulangi langkah anda untuk jenis file wicara yang lain misalnya file_u.wav, dsb

Pertemuan 2
4.3. Pencarian Nilai Frekuensi Pitch dan Formant Pada Keseluruhan Sinyal
Pada percobaan ini anda akan melakukan proses analisis sinyal wicara pada keseluruhan
file. Langkah yang harus anda lakukan adalah seperi berikut.
1. Susun sebuah bok diagram standar pengolahan sinyal wicara. Untuk itu anda harus
mengkonsultasikan langkah ini kepada dosen pengampu praktikum. Jika blok diagram
anda sudah betul anda lanjutkan percobaan.
2. Lakukan perekaman sebuah kata, misalnya ’ada’. Dan simpan hasilnya di dalam file
ada.wav. Anda bisa menggunakan wavesurfer atau Matlab untuk proses ini.
3. Buat program pemanggilan sinyal wicara, misalnya ada.wav.
4. Lakukan prose resampling sehingga frekuensi sampling yang anda gunakan adalah fs =
10000 Hz.
5. Lakukan pembentukan frame sinyal wicara, dengan mengacu satu frame adalah 20 ms.
6. Buat program pencarian nilai pitch pada setiap frame, gunakan metode auto korelasi
7. Buat program pencarian nilai frekuensi formant.
8. Hasil yang anda peroleh dari semua frame harus disimpan ke dalam file text.
9. Lakukan beberapa percobaan ulang untuk kata yang lain, misalnya ‘aku’, ‘saya’, dsb.

Tri Budi, Huda, Titon 64


Modul 6 Praktikum Aplikasi Pengolahan Sinyal Digital Ekstraksi Pitch dan Formant

5. Analisa
Anda telah melakukan serangkaian langkah percobaan yang cukup penting dalam
analisis sinyal wicara, dimana anda sudah bias mendapatkan fitur yang penting, yaitu
formant. Dengan kemampuan ini anda sudah bisa membedakan suara anda dengan suara
dari teman anda, biarpun mengucapkan kata yang sama. Coba anda lakukan perbandingan
nilai formant untuk ucapan ’i’ yang berasal dari suara anda dan teman disamping anda.
Jelaskan fenomena ini dengan mengacu teori pengolahan informasi wicara.

Tri Budi, Huda, Titon 65

Anda mungkin juga menyukai