Showing posts with label bahasa pemrograman. Show all posts
Showing posts with label bahasa pemrograman. Show all posts

Sunday, April 21, 2019

Start-end silence removal dengan Librosa

Start-end silence removal

Start-end silence removal merupakan teknik untuk menghilangkan suara silence di awal dan akhir utterances (sinyal wicara). Teknik ini dilatarbelakangi bahwa kebanyakan silence berada pada awal dan akhir pembicaraan.

Dengan library librosa, menghilangkan silence pada awal dan akhir kalimat ini cukup mudah sebagai berikut,
import librosa
x, fs = librosa.load('Ses01F_impro01_F000.wav')  # ganti dengan nama file wav kamu
xt, ind = librosa.effects.trim(x, top_db=30)

Untuk melihat hasilnya, kita ceck panjang sinyal atau kita plot (bisa juga didengarkan suaranya dengan library sounddevice.

In [12]: len(x)
Out[12]: 42900

In [15]: len(xt)
Out[15]: 24576

Hasil plotnya adalah sebagai berikut:
figure()
subplot(211); plot(x)
subplot(212); plot(xt)


Perlu dicatat, karena saya menggunakan ipython --pylab, saya tidak perlu menuliskan plt.* untuk mengakses library matplotlib. Selain menghasilkan output `xt`, fungsi librosa.effects.trim yang digunakan untuk menghilangkan silence ini juga memberikan indeks (start, end) dimana sinyal xt diambil.

Perhatikan gambar di atas, yang ditandai dengan elips warna oranye adalah sinyal silence yang ingin kita hilangkan, sedangkan, didalam kotak merah adalah sinyal yang ingin kita ambil. Parameter utama untuk menghilangkan silence ini adalah threshold (dB).