• Tidak ada hasil yang ditemukan

Optimalisasi Koefisien LPC Dalam Pengkodean Suara.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Optimalisasi Koefisien LPC Dalam Pengkodean Suara."

Copied!
33
0
0

Teks penuh

(1)

ABSTRAK

Speech coding bertujuan untuk kompresi sehingga menghasilkan bit rate yang makin rendah, memori yang lebih kecil tanpa harus menghilangkan informasi yang dikandung. Linear Predictive Coding (LPC) menjadi dasar sebagian besar teknik pengkodean suara yang terus berkembang.

Linear Predictive Coding (LPC) adalah suatu metode yang kebanyakan digunakan dalam proses sinyal audio dan proses percakapan suara manusia. LPC adalah salah satu tehnik yang baik dan berguna untuk mengkodekan sinyal suara yang baik pada suatu bit rendah dan menyediakan perkiraan parameter-parameter yang akurat.

(2)

DAFTAR ISI

ABSTRAK... i

ABSTRACT... ii

KATA PENGANTAR... iii

DAFTAR ISI... v

DAFTAR GAMBAR... vii

DAFTAR TABEL... ix

BAB I PENDAHULUAN... 1

I.1 Latar Belakang... 1

I.2 Identifikasi Masalah... 2

I.3 Pembatasan Masalah... 2

I.4 Tujuan... 2

I.5 Sistematika Penulisan... 2

BAB II LANDASAN TEORI... 3

II.1 Teknologi Pengkodean Suara... 3

II.2 Sistem Komunikasi Suara... 3

II.3 Klasifikasi Metode Pengkodean Suara... 4

II.3.1 Waveform Coding... 5

II.3.2 Voice Coding... 5

II.3.3 Hybrid Coding... 6

II.4 Proses Pengkodean Suara... 6

II.5 Produksi dan Karakteristik Sinyal Suara... 7

II.6 Proses Kuantisasi... 9

II.7 Kuantisasi Logaritmik... 9

II.8 Laju Bit...10

II.9 Kompleksitas... 10

(3)

BAB III LINEAR PREDICTIVE CODING... 13

III.1 Speech Coding... 13

III.2 Cara Kerja... 14

III.3 Gambar Diagram Alir dari Program Utama... 15

III.4 LPC Konvensional Vokoder... 15

III.4.1 Preprocessing... 16

III.4.2 Windowing... 17

III.4.3 Penghitungan Koefisien LPC... 17

III.4.4 Deteksi Pitch... 17

III.4.6 Dekoder LPC... 18

III.4.7 Impulse Train Model... 18

III.5 Voiced-Excited LPC Vocoder... 18

III.6 DCT Pada Sinyal Residual... 19

BAB IV SIMULASI DAN ANALISA DATA... 20

IV.1. Karakteristik Sinyal Input... 20

IV.2. Simulasi LPC... 20

IV.3. Pengamatan... 27

BAB V KESIMPULAN DAN SARAN... 29

V.1. Kesimpulan... 29

V.2. Saran...29

DAFTAR PUSTAKA

(4)

DAFTAR GAMBAR

Gambar II.1 Sistem Komunikasi Suara... 4

Gambar II.2 Metode Pengkodean Suara... 5

Gambar II.3 Elemen-elemen sistem proses pengkodean suara... 6

Gambar III.1 Diagram Alir... 15

Gambar III.2 Blok Dasar LPC Konvensional Vocoder... 15

Gambar III.3 Bentuk Sinyal coba1.wav... 16

Gambar III.4 Respon frekuensi pre-empasis... 16

Gambar III.5 Blok diagram dekoder LPC... 18

Gambar III.6 Blok Dasar Voice-excited LPC vocoder... 18

Gambar IV.1 Sinyal asli coba1.wav, hasil LPC-5 konvensional, hasil Voice-Excite LPC-5... 21

Gambar IV.2 Sinyal asli coba2.wav, hasil LPC-5 konvensional, hasil Voice-Excite LPC-5... 21

Gambar IV.3 Sinyal asli coba3.wav, hasil LPC-5 konvensional, hasil Voice-Excite LPC-5... 22

Gambar IV.4 Sinyal asli coba1.wav, hasil LPC-10 konvensional, hasil Voice-Excite LPC-10... 22

Gambar IV.5 Sinyal asli coba1.wav, hasil LPC-10 konvensional, hasil Voice-Excite LPC-10... 23

Gambar IV.6 Sinyal asli coba3.wav, hasil LPC-10 konvensional, hasil Voice-Excite LPC-10... 23

Gambar IV.7 Sinyal asli coba1.wav, hasil LPC-10 konvensional, hasil Voice-Excite LPC-10... 24

Gambar IV.8 Sinyal asli coba2.wav, hasil LPC-10 konvensional, hasil Voice-Excite LPC-10... 24

Gambar IV.9 Sinyal asli coba3.wav, hasil LPC-10 konvensional, hasil Voice-Excite LPC-10... 25

(5)

Gambar IV.11 Sinyal asli coba2.wav, hasil LPC-10 konvensional, hasil

Voice-Excite LPC-10... 26 Gambar IV.12 Sinyal asli coba3.wav, hasil LPC-10 konvensional, hasil

Voice-Excite LPC-10... 26 Gambar IV.13 Sinyal asli coba1.wav, hasil LPC-15 konvensional, hasil

Voice-Excite LPC-15... 27 Gambar IV.14 Sinyal asli coba2.wav, hasil LPC-15 konvensional, hasil

Voice-Excite LPC-15... 27 Gambar IV.15 Sinyal asli coba3.wav, hasil LPC-15 konvensional, hasil

(6)

DAFTAR TABEL

(7)

%main program clc;

clear all;

InputFilename = 'coba2.wav';

[inspeech, Fs, bits] = wavread(InputFilename); tic

outspeech1 = speechcoder1(inspeech); outspeech2 = speechcoder2(inspeech); toc

disp('u/ dengerin suara asli!'); pause;

soundsc(inspeech, Fs);

disp('u/ dengerin suara compressed LPC!'); pause;

soundsc(outspeech1, Fs);

disp('u/ dengerin voice-excited compressed LPC!'); pause;

soundsc(outspeech2, Fs);

%hitunglpc

(8)

if (nargin<3), L = 10; end if (nargin<4), fr = 20; end if (nargin<5), fs = 30; end

if (nargin<6), preemp = .9378; end [row col] = size(data);

if col==1 data=data'; end

nframe = 0;

msfr = round(sr/1000*fr); msfs = round(sr/1000*fs); duration = length(data);

speech = filter([1 -preemp], 1, data)'; msoverlap = msfs - msfr;

ramp = [0:1/(msoverlap-1):1]';

for frameIndex=1:msfr:duration-msfs+1

frameData = speech(frameIndex:(frameIndex+msfs-1)); nframe = nframe+1;

autoCor = xcorr(frameData); autoCorVec = autoCor(msfs+[0:L]); err(1) = autoCorVec(1);

k(1) = 0; A = [];

for index=1:L

numerator = [1 A.']*autoCorVec(index+1:-1:2); denominator = -1*err(index);

k(index) = numerator/denominator; A = [A+k(index)*flipud(A); k(index)]; err(index+1) = (1-k(index)^2)*err(index); end

(9)

parcor(:,nframe) = k';

if 0 gain=0;

cft=0:(1/255):1; for index=1:L

gain = gain + aCoeff(index,nframe)*exp(-i*2*pi*cft).^index; end

gain = abs(1./gain);

spec(:,nframe) = 20*log10(gain(1:128))'; plot(20*log10(gain));

title(nframe); drawnow; end

if 0

impulseResponse = filter(1, aCoeff(:,nframe), [1 zeros(1,255)]); freqResp = 20*log10(abs(fft(impulseResponse)));

plot(freqResp); end

errSig = filter([1 A'],1,frameData); G(nframe) = sqrt(err(L+1)); autoCorErr = xcorr(errSig); [B,I] = sort(autoCorErr); num = length(I);

if B(num-1) > .01*B(num)

pitch(nframe) = abs(I(num) - I(num-1)); else

pitch(nframe) = 0; end

(10)

if(frameIndex==1)

stream = resid(1:msfr,nframe); else

stream = [stream;

overlap+resid(1:msoverlap,nframe).*ramp; resid(msoverlap+1:msfr,nframe)];

end

if(frameIndex+msfr+msfs-1 > duration) stream = [stream; resid(msfr+1:msfs,nframe)]; else

overlap = resid(msfr+1:msfs,nframe).*flipud(ramp); end

end

stream = filter(1, [1 -preemp], stream)';

%LPC vocoder

function [ outspeech ] = speechcoder1( inspeech )

if ( nargin ~= 1)

error('argument check failed'); end;

Fs = 16000; Order = 10;

[aCoeff, resid, pitch, G, parcor, stream] = proclpc(inspeech, Fs, Order); outspeech = synlpc(aCoeff, pitch, Fs, G);

(11)

function [ outspeech ] = speechcoder2( inspeech )

if ( nargin ~= 1)

error('argument check failed'); end;

Fs = 16000; Order = 10;

[aCoeff, resid, pitch, G, parcor, stream] = proclpc(inspeech, Fs, Order); resid = dct(resid);

[a,b] = size(resid);

resid = [ resid(1:50,:); zeros(430,b) ]; resid = uencode(resid,4);

resid = udecode(resid,4); resid = idct(resid);

noise = [ zeros(50,b); 0.01*randn(430,b) ]; resid = resid + noise;

outspeech = synlpc2(aCoeff, resid, Fs, G);

%LPC Decoder

function synWave = synlpc(aCoeff,pitch,sr,G,fr,fs,preemp)

if (nargin < 5), fr = 20; end; if (nargin < 6), fs = 30; end;

if (nargin < 7), preemp = .9378; end;

(12)

[L1 nframe] = size(aCoeff);

for frameIndex=1:nframe A = aCoeff(:,frameIndex); if ( pitch(frameIndex) ~= 0 ) t = 0 : 1/sr : fs*10^(-3);

d = 0 : 1/pitch(frameIndex) : 1;

residFrame = (pulstran(t, d, 'tripuls', 0.001))'; residFrame = residFrame + 0.01*randn(msfs+1,1); else

residFrame = []; for m = 1:msfs

residFrame = [residFrame; randn]; end

end;

synFrame = filter(G(frameIndex), A', residFrame); if(frameIndex==1)

synWave = synFrame(1:msfr); else

synWave = [synWave; overlap+synFrame(1:msoverlap).*ramp; ... synFrame(msoverlap+1:msfr)];

end

if(frameIndex==nframe)

synWave = [synWave; synFrame(msfr+1:msfs)]; else

overlap = synFrame(msfr+1:msfs).*flipud(ramp); end

end;

(13)

function synWave = synlpc2(aCoeff,source,sr,G,fr,fs,preemp)

if (nargin < 5), fr = 20; end; if (nargin < 6), fs = 30; end;

if (nargin < 7), preemp = .9378; end;

msfs = round(sr*fs/1000); msfr = round(sr*fr/1000); msoverlap = msfs - msfr; ramp = [0:1/(msoverlap-1):1]'; [L1 nframe] = size(aCoeff);

[row col] = size(source); if(row==1 | col==1)

postFilter = 0; duration = length(source); frameIndex = 1; for sampleIndex=1:msfr:duration-msfs+1

resid(:,frameIndex) = source(sampleIndex:(sampleIndex+msfs-1))'; frameIndex = frameIndex+1;

end else

postFilter = 1; resid = source; end

[row col] = size(resid); if col<nframe

nframe=col; end

(14)

residFrame = resid(:,frameIndex)*G(frameIndex); synFrame = filter(1, A', residFrame);

if(frameIndex==1)

synWave = synFrame(1:msfr); else

synWave = [synWave; overlap+synFrame(1:msoverlap).*ramp; ... synFrame(msoverlap+1:msfr)];

end

if(frameIndex==nframe)

synWave = [synWave; synFrame(msfr+1:msfs)]; else

overlap = synFrame(msfr+1:msfs).*flipud(ramp);

end end;

if(postFilter)

(15)

RESPON MEAN OPINION SCORE (MOS)

Nama :

Jenis Kelamin : L/P (Lingkari salah satu)

Kualitas

No. File output Tidak

Memuaskan Kurang Cukup Baik Memuaskan

(1) (2) (3) (4) (5)

1. coba1.wav 2. coba2.wav

3. coba3.wav

Keterangan :

(16)

RESPON MEAN OPINION SCORE (MOS)

Nama :

Jenis Kelamin : L/P (Lingkari salah satu)

Kualitas

No. File output Tidak

Memuaskan Kurang Cukup Baik Memuaskan

(1) (2) (3) (4) (5)

1. coba1.wav 2. coba2.wav

3. coba3.wav

Keterangan :

(17)

RESPON MEAN OPINION SCORE (MOS)

Nama :

Jenis Kelamin : L/P (Lingkari salah satu)

Kualitas

No. File output Tidak

Memuaskan Kurang Cukup Baik Memuaskan

(1) (2) (3) (4) (5)

1. coba1.wav 2. coba2.wav

3. coba3.wav

Keterangan :

(18)

RESPON MEAN OPINION SCORE (MOS)

Nama :

Jenis Kelamin : L/P (Lingkari salah satu)

Kualitas

No. File output Tidak

Memuaskan Kurang Cukup Baik Memuaskan

(1) (2) (3) (4) (5)

1. coba1.wav 2. coba2.wav

3. coba3.wav

Keterangan :

(19)

RESPON MEAN OPINION SCORE (MOS)

Nama :

Jenis Kelamin : L/P (Lingkari salah satu)

Kualitas

No. File output Tidak

Memuaskan Kurang Cukup Baik Memuaskan

(1) (2) (3) (4) (5)

1. coba1.wav 2. coba2.wav

3. coba3.wav

Keterangan :

(20)
(21)

BAB I

PENDAHULUAN

I.1 Latar Belakang

Speech coding atau pengkodean suara merupakan inti dari pembahasan mengenai digital speech processing. Speech coding bertujuan untuk kompresi sehingga menghasilkan bit rate yang makin rendah dan memori yang lebih kecil tanpa harus menghilangkan informasi yang dikandung. Hal ini merupakan salah satu solusi tentang keterbatasan bandwith.

Ada beberapa tehnik speech coding seperti Linear Predictive Coding, Waveform Coding dan Subband Coding. LPC menjadi dasar dari sebagian besar tehnik pengkodean suara yang terus berkembang.

Speech coder yang akan dikembangkan perlu dianalisa secara subyekif dan obyektif. Pada analisa subyektif kualitas speech berdasarkan opini pendengar dengan kriteria dapat dimengerti dan dapat jelas terdengar. Analisa obyektif dilakukan dengan menghitung Segmental Signal to Noise Ratio (SEGSNR) antara sinyal speech yang asli dan yang sinyal speech yang telah dikodekan.

I.2 Identifikasi Masalah

1. Bagaimana menentukan koefisien LPC dengan mengadakan simulasi LPC vocoder ?

2. Bagaimana membuat suatu penilaian subyektif untuk memperoleh nilai koefisien LPC yang optimal ?

I.3 Pembatasan Masalah

1. Teknik speech coding yang digunakan menggunakan Linear Predictive Coding (LPC).

2. Mengadakan simulasi menggunakan LPC konvensional Vocoder dan Voice-Excited LPC Vocoder.

(22)

I.4 Tujuan

Untuk memperoleh hasil pengkodean yang optimal dengan memperhitungkan koefisien LPC dan juga waktu komputasi yang dibutuhkan.

I.5 Sistematika Pembahasan

Laporan tugas akhir yang disusun ini, terbagi menjadi 5 bab yang mempunyai garis besar sebagai berikut :

BAB I. PENDAHULUAN

Bab ini berisi latar belakang, identifikasi masalah, pembatasan masalah, tujuan, dan sistematika pembahasan.

BAB II. LANDASAN TEORI

Bab ini membahas tentang teori dasar pengkodean suara, proses pengkodean suara, karakteristik sinyal suara , proses kuantisasi.

BAB III. LINEAR PREDICTIVE CODING (LPC)

Bab ini berisi tentang deskripsi simulasi LPC Konvensional Vocoder dan Voice-Excited LPC Vocoder, cara kerja, dan diagram alir dari program utama. BAB IV. SIMULASI DAN ANALISA DATA

Bab ini membahas hasil simulasi dan analisa data pengkodean suara dengan menggunakan metode Linear Predictive Coding (LPC) pada sinyal suara manusia.

BAB V. KESIMPULAN DAN SARAN

(23)

BAB IV

SIMULASI DAN ANALISA DATA

IV.1 Karakteristik Sinyal Input

Sinyal suara yang akan disimulasikan dengan menggunakan 3 buah sampel suara yang diucapkan oleh satu orang wanita dan 2 orang laki-laki yang direkam secara terpisah dan ditampilkan dalam tabel IV.1.

Input sinyal suara yang digunakan pada simulasi adalah sinyal suara manusia yang direkam dalam file dengan format *.wav dan menggunakan Personal Computer (PC). Sinyal suara yang direkam menggunakan soundcard soundblaster live dengan frekuensi sampling 16.000 Hz dan 8 bit mono.

Tabel IV.1 Sampel suara yang digunakan untuk simulasi

No. Nama file Bunyi suara

1. coba1.wav Pengkodean Sumber dan Kanal 2. coba2.wav Teknik Elektro

3. coba3.wav Universitas Kristen Maranatha

IV.2 Simulasi LPC

(24)

fr = 5 ; fs =20 ; elapsed_time = 3.1640

Gambar IV.1 Sinyal asli coba1.wav, hasil LPC-5 konvensional, hasil Voice- Excite LPC-5

fr = 5 ; fs =20 ; elapsed_time = 3.0740

(25)

fr = 5 ; fs = 20 ; 5.2480

Gambar IV.3 Sinyal asli coba3.wav, hasil LPC-5 konvensional, hasil Voice- Excite LPC-5

fr = 10 ; fs = 20 ; elapsed_time = 3.6350

(26)

fr = 10 ; fs = 20 ; elapsed_time = 3.4550

Gambar IV.5 Sinyal asli coba1.wav, hasil LPC-10 konvensional, hasil Voice- Excite LPC-10

fr = 10 ; fs = 20 ; elapsed_time = 5.6380

(27)

fr = 20 ; fs =20 ; elapsed_time = 3.8760

Gambar IV.7 Sinyal asli coba1.wav, hasil LPC-10 konvensional, hasil Voice- Excite LPC-10

fr = 20 ; fs = 20 ; elapsed_time = 3.5150

(28)

fr = 20 ; fs =20 ; elapsed_time = 5.7280

Gambar IV.9 Sinyal asli coba3.wav, hasil LPC-10 konvensional, hasil Voice- Excite LPC-10

fr = 20 ; fs = 30 ; elapsed_time = 4.0360

(29)

fr = 20 ; fs =30 ; elapsed_time =3.8460

Gambar IV.11 Sinyal asli coba2.wav, hasil LPC-10 konvensional, hasil Voice-

Excite LPC-10

fr = 20 ; fs = 30 ; elapsed_time = 6.2390

Gambar IV.12 Sinyal asli coba3.wav, hasil LPC-10 konvensional, hasil Voice-

(30)

fr = 20 ; fs = 30 ; elapsed_time = 4.6970

Gambar IV.13 Sinyal asli coba3.wav, hasil LPC-15 konvensional, hasil Voice- Excite LPC-15

fr = 20 ; fs = 30 ; elapsed_time = 4.7270

(31)

fr = 20 ; fs = 30 ; elapsed_time = 8.0420

Gambar IV.15 Sinyal asli coba3.wav, hasil LPC-15 konvensional, hasil Voice- Excite LPC-15

IV.3 Pengamatan

Dari beberapa hasil simulasi akan dapat terlihat bahwa semakin besar orde LPC akan menghasilkan sinyal rekonstruksi yang semakin baik. Dan dari hasil penilaian setelah diperdengarkan kepada para responden dapat diperoleh bahwa hasil rekonstruksi yang paling baik pada saat ukuran frame (fr) = 20 ms dan panjang frame (fs) = 30 ms.

Dari pengamatan yang diperoleh juga dapat diketahui bahwa koefisien LPC 10 mempunyai hasil rekonstruksi yang tidak berbeda jauh dari koefisien LPC 15. Tetapi waktu komputasi yang dibutuhkan jauh lebih lama menggunakan koefisien LPC 15. Contoh sinyal coba3.wav hasil LPC 10 membuthkan waktu 6,239 s sedangkan hasil LPC 15 membutuhkan waktu 8,042 s. Oleh sebab itu

(32)

DAFTAR PUSTAKA

1. A. M. Kondoz, “Digital Speech”, Coding for Low Bit Rate

Communication System, University of Surrey, UK, 1994.

2. Bryan Douglas, “Voice Encoding Methods for Digital Wireless

Communication System”, Southern Methodist University, 1997.

3. Eddie L. T. Choy, “Waveform Interpolation Speech Coder at 4 kb/s”,

Department of Electrical and Engineering McGill University Montreal,

Canada, August 1998.

4. Hasan Limi Mulya, ”Simulasi Pengkodean Suara dengan Menggunakan

Metode Sinusoidal Transform Coding (STC) Method”, Bandung, 2005.

5. Ozgu Ozun, Philip Steuer, Daniel Thell, “Wideband Speech Coding With

LPC”, Digital Speech Processing, University of California at Los Angeles

(33)

DAFTAR PUSTAKA

1. A. M. Kondoz, “Digital Speech”, Coding for Low Bit Rate

Communication System, University of Surrey, UK, 1994.

2. Bryan Douglas, “Voice Encoding Methods for Digital Wireless

Communication System”, Southern Methodist University, 1997.

3. Eddie L. T. Choy, “Waveform Interpolation Speech Coder at 4 kb/s”,

Department of Electrical and Engineering McGill University Montreal,

Canada, August 1998.

4. Hasan Limi Mulya, ”Simulasi Pengkodean Suara dengan Menggunakan

Metode Sinusoidal Transform Coding (STC) Method”, Bandung, 2005.

5. Ozgu Ozun, Philip Steuer, Daniel Thell, “Wideband Speech Coding With

LPC”, Digital Speech Processing, University of California at Los Angeles

Gambar

Gambar IV.11
Gambar IV.1 Sinyal asli coba1.wav, hasil LPC-5 konvensional, hasil Voice-
Gambar IV.3 Sinyal asli coba3.wav, hasil LPC-5 konvensional, hasil Voice-
Gambar IV.5 Sinyal asli coba1.wav, hasil LPC-10 konvensional, hasil Voice-
+6

Referensi

Dokumen terkait

Dengan menggunakan teknik pengkodean CELP dapat dilakukan proses kuantisasi untuk mengkodekan sinyal suara pada laju bit rate yang rendah.. Kuantisasi adalah proses untuk

penulis dapat menyelesaikan tugas akhir dengan judul “ Identifikasi Kerusakan Mesin Sepeda Motor Berdasarkan Suara Mesin Menggunakan Fitur Linear.. Predictive Coding

Dalam penelitian ini diharapkan dengan menerapkan metode Linear Predictive Coding (LPC) dan Neuro-Fuzzy pada sistem pengenalan suara dapat digunakan untuk mengidentifikasi

Dalam penelitian ini diharapkan dengan menerapkan metode Linear Predictive Coding (LPC) dan Neuro-Fuzzy pada sistem pengenalan suara dapat digunakan untuk mengidentifikasi

SISTEM PENGENALAN UCAPAN HURUF VOKAL MENGGUNAKAN METODE LINEAR PREDICTIVE CODING (LPC) DAN JARINGAN. SARAF TIRUAN LEARNING VECTOR QUANTIZATION (LVQ)

Pada tugas akhir ini akan dibangun sebuah sistem pengenalan suara dengan menggunakan Linear Predictive Coding (LPC) sebagai metode ekstraksi ciri suara dan Hidden Markov Model

Pada pengujian ini dilakukan untuk mendapatkan akurasi dari proses klasifikasi suara pembangkit ASMR dengan metode Linear Predictive Coding (LPC) dan K-Nearest

Pada tugas akhir ini speech recognition digunakan untuk merancang sistem aplikasi pengenalan suara menggunakan metode Linear Predictive Coding.. Linear Predictive Coding merupakan