Banyak aplikasi cerdas dengan Matlab yang membutuhkan pengolahan sinyal suara. Sebelum mengolah, salah satu fungsi penting adalah menangkap suara yang akan diolah. Postingan berikut ini membahas fungsi-fungsi yang diperlukan untuk menangkap suara, termasuk juga membunyikan hasil tangkapan suara tersebut (untuk menguji apakah fungsi perekaman berhasil).
Versi Lama
Matlab versi 2008 (versi 7.7) sedikit berbeda dengan versi terbaru. Versi lama ini menggunakan fungsi wavrecord, wavplay, dan wavwrite yang berfungsi berturut-turut untuk merekam, memainkan dan menulis. Kode singkat berikut ini bermaksud merekam, menyimpan dan memainkan suara. Tentu saja diperlukan fasilitas mic dan speaker (biasanya sudah ada pada setiap laptop).
-
clear all;
-
fs=8000;
-
y= wavrecord(5.0*fs, fs, ‘double’); %merekam suara
-
wavwrite(y,fs,‘aiueo.wav’); %simpan rekaman ke hardisk
-
wavplay(y,fs); %mainkan hasil rekaman
-
figure,plot(y); %sinyal hasil rekaman di plot
Versi 2013 ke atas (Baru)
Sebenarnya kode sebelumnya bisa digunakan, hanya saja ada pesan (warning) dari Matlab bahwa wavrecord dan wavplay sebaiknya diganti dengan audiorecorder dan audioplayer untuk merekam dan memainkan.
Ganti kode sebelumnya dengan fungsi yang terbaru berikut ini, lihat referensinya di link resminya. Disini frekuensi sampling dan parameter lainnya standar 8000 Hz dan 8 bit.
-
% Record your voice for 5 seconds.
-
recObj = audiorecorder;
-
disp(‘Start speaking.’)
-
recordblocking(recObj, 5);
-
disp(‘End of Recording.’);
-
% Play back the recording.
-
play(recObj);
-
% Store data in double-precision array.
-
myRecording = getaudiodata(recObj);
-
% Plot the waveform.
-
plot(myRecording);
Jika fungsi menangkap bisa dijalankan, maka untuk mengolah lanjut dapat dilakukan dengan mudah. Banyak terapan-terapan yang menggunakan sinyal suara, antara lain:
-
Pengenalan suara
-
Deteksi kelainan detak jantung
-
Deteksi kerusakan mesin, dll
Suara yang terekam dapat dilihat grafiknya seperti di bawah ini. Sekian, semoga postingan singkat ini bermanfaat.