Selasa, 14 Agustus 2018

Pengolahan Sinyal Audio

LPC

Linear Predictive Coding (LPC)
adalah salah satu teknik yang efektif untuk menganalisa suara
dan salah satu metode yang sering digunakan untuk menghasilkan kualitas suara yang baik dengan bit yang rendah.

LPC Pitch dan LPC Voice Excited
Parameter LPC al: koefisien prediksi, gain, dan pitch u perbaikan rekontruksi suara yang baik.

Voice excited LPC digunakan perhitungan DCT untuk membangkitkan sinyal energi dengan beberapa koefisien sehingga memberikan rekontruksi sinyal yang lebih bila dibandingkan dengan plain LPC yang menggunakan perhitungan pitch.

Perbandingan keluaran dari plain LPC dan voice excited LPC.
Keluaran sinyal yang dihasilkan pada plain LPC hampir tidak jelas terdengar.
Sedangkan sinyal keluaran pada voice excited LPC lebih terdengar jelas tetapi
menggunakan total bit yang lebih banyak dibandingkan dengan plain LPC.

Terlihat bahwa untuk mendapatkan kualitas keluaran sinyal yang lebih baik maka dibutuhkan
total bit yang lebih besar.

++++++++++++++++++++
Umumnya LPC digunakan karena menyediakan pemodelan yang baik untuk sinyal suara,
LPC dapat dengan mudah dan langsung diterapkan baik secara perangkat lunak maupun perangkat keras karena perhitungan matematis yang dilibatkan realtif lebih singkat dari metode-metode yang dikenal sebelumnya.

Fast Fourier transform (FFT) menjadi penting untuk bermacam–macam aplikasi, dari pengolahan sinyal digital dan memecahkan persamaan diferensial parsial menjadi algoritma-algoritma untuk penggandaan bilangan integer dalam jumlah yang banyak.

Secara garis besar, cara kerja sistem pengenalan suara ini ialah

+mula-mula sinyal suara manusia yang diterima dengan menggunakan microphone (sinyal analog) dicuplik sehingga menjadi sinyal digital dengan bantuan sound card pada komputer.

+Sinyal digital hasil cuplikan ini terlebih dulu dinormalisasi kemudian diproses awal menggunakan metode LPC sehingga didapat beberapa koefisien LPC yang merupakan feature (ciri) dari suara pembicaraan.

+Kemudian koefisien LPC tersebut diproses dengan Fast Fourier Transform (FFT) untuk mendapatkan sinyal pada domain frekuensi. Hal ini bertujuan agar perbedaan antar pola kata yang satu dengan yang lain terlihat lebih jelas sehingga ekstraksi parameter sinyal memberikan hasil yang lebih baik. Hasil keluaran FFT ini akan di compare sebagai fungsi utama dari sistem untuk proses pengenalan.


LPC melakukan analisis dengan cara memperkirakan formant,
memisahkan  formant  dari sinyal, yang dinamakan proses  inverse  filtering,
lalu mengestimasi intensitas dan frekuensi dari sinyal percakapan yang  tersisa, yang disebut  residue.

Karena sinyal percakapan bervariasi seiring waktu, estimasi tersebut dilakukan untuk setiap potongan kecil dari sinyal, yang  dinamakan frame.
Prosedur untuk mendapatkan koefisien LPC diperlihatkan pada gambar dibawah.




1. Preemphasis :
Proses dimana sinyal / speech ucapan sirubah menjadi sinyal
Preemphasis terhadap cuplikan sinyal dengan persamaan preemphasizer:
s (n) = s(n)- as(n -1) atau 
s(n) = s(n) – 0.95 s(n − 1) 
dengan s(n) adalah sampel ke-n dan harga a yang paling sering digunakan ialah 0.95. 

jadi..pada langkah ini dilakukan filtering terhadap sinyal menggunakan FIR filter orde satu untuk meratakan spektral sinyal tersebut. Proses ini mencakup penambahan energi suara pada frekuensi tinggi.
di mana as(n) adalah sinyal yang ditekan, sedangkan s(n) adalah sinyal terdigitasi. Koefisien dengan nilai 0.95 menunjukkan sinyal yang diekstrak merupakan 95 % sinyal aslinya


2. Blocking into frames / Tracking :
Pada langkah ini sinyal ucapan yang telah teremphasis dibagi menjadi beberapa frame (bingkai)
dengan masing-masing frame memuat N sampel sinyal dan frame yang saling yang berdekatan dipisahkan sejauh M sample.

Menyusun sinyal ke dalam bingkai yang lebih pendek. Panjang frame yang membagi setiap
sample menjadi beberapa frame berdasarkan waktu terletak di antara 20 hingga 40 ms . Dengan asumsi bahwa frekuensi suara 18 kHz, maka sampel yang akan diekstrak adalah 0,025 detik * 18.000 Hz = 450 sampel.

Semakin M < N semakin baik perkiraan spektral LPC dari frame ke frame.



3. FrameWindowing :
Windowing (Penjendelaan) merupakan proses pembobotan terhadap setiap frame yang telah dibentuk
pada langkah sebelumnya menggunakan fungsi Window. Ada dua fungsi window yang biasa digunakan, yaitu
Rectangular Window dan Hamming Window. 

Fungsi window ini menghasilkan sinyal yang diskontinyu.
Salah satu cara untuk menghindari diskontinyu pada ujung window adalah dengan
meruncingkan sinyal menjadi nol atau dekat dengan nol sehingga dapat mengurangi kesalahan.

Rectangular Window yang didefinisikan untuk meminimalkan pada bagian awal dan akhir sinyal.
Jika definisikan sebuah window w(n) dan sinyal tiap bagian adalah x(n) .




Fungsi Hamming digunakan seperti bentuk jendela dengan mempertimbangkan blok berikutnya dalam rantai pemrosesan ekstraksi fitur dan memadukan semua
garis frekuensi terdekat. 

Fungsi Hamming Window didefinisikan sebagai:

Artinya HammingWindow untuk sampel ke-n adalah:  W(n) =0.54-0.46 cos (2πn/N-1), 0 ≤ n ≤ N-1




4. Auto Correlation Analisys :
Tiap bagian yang telah diberi window kemudian akan dibentuk autokorelasinya.

Analisis autokorelasi terhadap setiap frame hasil windowing x1 (n) dengan persamaan:
r1(m)=Σ n-1-mn=0 x1(n)x1(n+m)     
dengan m dimulai dari 0 dan nilai tertinggi dari m = p adalah orde LPC yang biasa bernilai 8 - 16

5. Analisa LPC :
Langkah berikutnya adalah analisa LPC dimana semua nilai aotukorelasinya yang telah dihitung pada tahap sebelumnya akan diubah menjadi parameter LPC

Mengubah p +1 buah hasil autokorelasi pada masing masing frame menjadi
koefisien LPC am = αm(p)

untuk m = 1,2,..., p dengan persamaan dibawah ini:
E(o)=r(0)  (2.5)
km={r(m)-Σm-1j=1αj(m-1)r(|m-j|)/E(m-1), 1 ≤ m ≤ p

αm(m)= km  αj(m) = αj(m-1)- km αm-j(m-1), 1 ≤ j ≤ m-1  

E(m)=(1- km2) E(m-1)      

dengan r(0)adalah hasil autokorelasi,
E(m) adalah error,
km adalah koefisien pantulan,
aj(m) adalah koefisien prediksi untuk 1 ≤ j ≤ m


6. Pengubahan parameter LPC menjadi koefisien cepstral :
Parameter LPC yang sangat penting yang bisa diturunkan dari koefisien LPC adalah koefisien cepstral LPC, c(m).

 Mengubah parameter LPC am ke koefisien cepstral cm untuk mendapatkan kinerja yang lebih baik dan tahan terhadap noise,
yaitu dengan persamaan:
cm=am+Σm-1k=1(k/m)ck am-k, 1 ≤ m ≤ p
cm= Σm-1k=1(k/m)ck am-k, m > p  

koefisien cepstral ini adalah koefisien dari representasi pada spectrum logaritmis.



clear all;
fs=10000;
[x,fs]=audioread('tes.wav');
xx=length(x)+1;
x(xx)=0;
alpha=0.96;
for i=2:xx
 y0(i)=x(i-1);
end
for i=1:xx
 y(i) = x(i) - alpha*y0(i);
end
subplot(211)
t=1:xx;
plot(t/fs,y);legend('input');grid
xlabel('waktu (dt)'); ylabel('magnitudo');axis([0 0.7 -0.25 0.25]);
subplot(212)
plot(t/fs,y0); legend('output');grid
xlabel('waktu (dt)'); ylabel('magnitudo'); axis([0 0.7 -1 1.5])




MFCC

Mel frequency Cepstral Coefficient adalah sebuah koefisien audio, dalam beberapa studi menunjukkan bahwa persepsi pendengaran manusia tidaklah dalam skala yang linier dalam bentuk frekuensi melainkan diukur dalam bentuk skala mel-frekuensi.

Sehingga Mel-Scale merupakan skala yang diambil berdasarkan pendekatan terhadap pendengaran manusia. Dimana penggunaannya adalah untuk mengestrak data sinyal suara. Tahapan proses dalam Mel Frequency Cepstral Coefficient adalah;

1. Frame Blocking
Dalam proses frame blocking sinyal suara yang masuk akan diblok menjadi frame frame dengan jumlah N sampel dan jarak antar sampel dengan spasi M dimana M < N. Nilai dari N biasanya adalah 256 dengan spasi M=100


2. Windowing
Proses windowing dilakukan pada setiap frame dengan tujuan untuk meminimumkan diskontinuitas antar dua frame yang adjacent, khususnya pada bagian awal dan akhir.


3. FFT ( Fast Fourier Transform )  Tahapan berikutnya adalah FFT, disini FFT akan mengubah masing-masing frame N sampel dari domain waktu menjadi domain frekuensi.

Pada langkah ini setiap frame hasil dari fungsi window dikenai proses FFT. Fungsi FFT digunakan
untuk mengubah sinyal yang semula merupakan time domain menjadi frequency domain. Langkah ini mengubah tiap frame N sampel dari domain waktu ke dalam domain frekuensi. Dalam pengolahan suara, Transformasi Fourier Cepat berguna untuk mengubah konvolusi getaran celah suara dan respon gelombang saluran suara dalam domain waktu.

4. Wrapping  Skala mel-frekuensi adalah frekuensi linier berada dibawah 1000 Hz dan bentuk logaritmik berada diatas 1000 Hz. Pendekatan persamaan untuk mengitung mel dalam frekuensi f ( Hz ) adalah;
                                  Mel ( f ) = 2595 x Log10( 1+ f / 700 )

5. Cepstrum  Langkah terakhir adalah mengubah spektrum log-mel menjadi domain waktu. Hasil dari proses inilah yang disebut dengan Mel Frequency Cepstral Coefficient. Representasi cepstral dari spektrum sinyal suara berasal dari sifat spektrum sinyal untuk analisa frame yang ada.

Pada tahap ini dilakukan wrapping terhadap spektrum yang dihasilkan dari FFT sehingga dihasilkan Mel-scale
untuk menyesuaikan resolusi frekuensi terhadap properti pendengaran manusia. Kemudian Mel-scale
dikelompokkan menjadi sejumlah critical bank menggunakan filter bank. Jangkauan frekuensi dalam
spektrum sangatlah luas dan sinyal suara tidak mengikuti skala linear. Sehingga setelah spektrum
terkomputasi, data dipetakan dalam skala Mel menggunakan filter segitiga yang saling tumpang tindih.

















1 komentar: