Teknik Pemisahan Suara yang Berurutan-Sequence
Sinopsis
Contents
Melanjutkan tulisan sebelumnya Buku Dasar-Dasar Pengolahan Sinyal Digital dengan Matlab dengan judul Belajar Dasar-Dasar Sinyal mulai dari Frekuensi, Sample Rate/Cuplikan, Domain Waktu, Domain Frekuensi, serta contoh penerapannya secara nyata pada sinyal audio nada piano. Nah sekarang penulis lanjutkan sedikit mengenai Pemisahan Suara yang Berurutan/Sequence. Dalam penggabungan sinyal ada 2 macam seperti tulisan Belajar Dasar- Dasar Sinyal yaitu
- [A+B] yang berarti 2 sinyal atau lebih dibunyikan secara bersama-sama
- [A,B] yang berarti 2 sinyal dibunyikan secara berurutan
Nah yang kita bahas pada tulisan kali ini adalah kasus yang sederhana yaitu [A,B] sesuai dengan plot Domain Waktu dibawah ini yaitu terdiri dari 6 suara yang dibunyikan secara berurutan.
Algoritma yang digunakan seperti berikut
- Operasi Blocking
- Operasi Windowing
- Operasi Powering
- Penentuan Batas/Thresholding
- Pencarian Peak
Operasi Blocking
Digunakan untuk memisahkan sinyal perblock secara overlapping
Ref: https://dsp.stackexchange.com/questions/36509/why-is-each-window-frame-overlapping
dimana M panjang tiap frame dan N overlapping tiap frame-nya.
Kemudian kita akan melakukan operasi frame blocking. Berikut jika menggunakan M = 4 dengan N = 3 (selisih antar block)
Kembali ke bitrate yang digunakan file audio yaitu 44100 Hz/detik, sehingga kita putuskan menggunakan waktu 0.02 detik atau 0.02 x 44100 = 882 sebagai nilai M dan 400 sebagai N nya. Kamu bisa lihat sejumlah block (ada 7 block saja yang ditampilkan).
Operasi Windowing
Setiap block akan diterapkan operasi windowing yang berguna untuk memperhalus ujung kiri dan kanan, perhatikan 2 sinyal berikut yang saling overlapping, akan terlihat bahwa sinyal smooth (yang sudah diterapkan windowing).
rumus umum seperti berikut
Ref: https://docs.scipy.org/doc/scipy-0.19.1/reference/generated/scipy.signal.hamming.html. Kamu bisa mencoba beragam windowing seperti
- Triangular window
- Parzen window
- Welch window
- Sine window
- Cosine-sum windows
- Blackman window
Lebih jelasnya ref: https://en.wikipedia.org/wiki/Window_function
Sekarang kamu bisa melihat penerapan hamming window dibawah ini, dengan tiap ujung lebih halus
Operasi Powering
Tiap – tiap block akan diberikan powering agar terlihat peak-peak sinyal, dengan rumus berikut
Makin jelas perbedaannya, hal ini bisa dikatakan bahwa area sinyal terdiri dari 6 sinyal yang terpisah.
Penentuan Nilai Ambang Batas dan Peak Powering
Hal penting selanjutnya yaitu penentuan ambang batas, dalam kasus ini dibuat 0.5 serta dicari peak powering (titik bulatan) seperti berikut
Sehingga sinyal suara akan terlihat jelas lagi yaitu bagian yang diberi warna biru
Setelah ditemukan titik-titik peaknya, maka hasil akhir sebagai berikut yaitu reverse dari area block yang diindikasikan sebagai area sinyal akan diberi warna-warna selain biru.
Akhirnya kita bisa memisahkan 6 sinyal secara berurutan yaitu terdapat 6 suara (voice) yang terpisah dengan non suara (unvoiced) berdasarkan amplitudo nya yang rendah, biar lebih jelasnya ditampilkan dalam versi 3 Dimensi secara berurutan.
Selesai sudah pembahasan kita mengenai pemisahan suara yang berurutan, penulis sengaja membuat semuanya dalam bentuk plotting grafik di Matlab agar kalian mudah memahami secara visual step by stepnya, secara code menjadi rumit untuk menampilkan visualisasi diatas. untuk pembahasan selanjutnya cukup rumit yaitu pemisahan sinyal yang berbunyi secara bersama-sama, tentu teknik yang digunakan akan berbeda yaitu menggunakan analisis frekuensi, seperti gambar berikut jika 6 nada dibunyikan secara bersama-sama, maka secara visual menjadi seperti berikut:
Semuanya hampir mirip satu sama lainnya secara domain waktu. Dukung blog ini agar menjadi lebih baik dengan cara subscribe email mu panel dibagian kanan