Dosen Pengampu :
Dr.-Ing. Awang N. I. Wardana
Asisten Dosen :
Wahyu Tri Wicaksono (20/456735/TK/50559)
Disusun Oleh :
1. Zulfa Majidah (22/497060/TK/54465)
2. Maulidya Maharani (22/502903/TK/54917)
TEKNIK FISIKA
DEPARTEMEN TEKNIK NUKLIR DAN TEKNIK FISIKA
FAKULTAS TEKNIK
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2023
A. Tujuan
Mahasiswa diharapkan dapat memahami dan menerapkan
konsep-konsep dasar dalam pengolahan sinyal suara.
B. Hardware dan Software
Untuk melakukan pengolahan sinyal suara ini, kami membutuhkan
hardware dan software yang mendukung yaitu handphone sebagai alat
perekam suara serta laptop yang telah ter-install Python dengan beberapa
library yang mendukung proses pengolahan sinyal suara.
C. Prosedur
Untuk menyelesaikan pengolahan sinyal suara, dilakukan beberapa
langkah diantaranya sebagai berikut :
1. Menyiapkan peralatan perekaman suara serta lokasi perekaman yang
hening.
2. Hasil rekaman suara disimpan dalam format WAV. File suara laki-laki
dinamai “SuaraCowo.wav”, sedangkan file suara perempuan dinamai
“SuaraCewe.wav”.
3. Untuk mengolah sinyal suara pada 2 file tersebut, kami menggunakan
bantuan software yaitu Python. Kami menerapkan beberapa operasi dasar
signal processing seperti pemberian gain, filtering, dan normalisasi.
4. Menerapkan Fast Fourier Transform (FFT) pada file suara cowok. FFT
diterapkan dengan tujuan untuk mengonversi sinyal waktu ke domain
frekuensi. Kemudian dilakukan analisis spektrum frekuensi dari suara
cowok.
5. Menerapkan transformasi Z pada sinyal suara cowok untuk menganalisis
respons frekuensi sistem.
6. Langkah ke-4 dan ke-5 diulangi untuk file suara cewek.
7. Melakukan perubahan pitch dari suara cewek ke suara cowok. Begitu
juga sebaliknya, kami juga melakukan perubahan pitch dari suara cowok
ke suara cewek.
8. Dilakukan analisis hasil grafik spektrum frekuensi, respons frekuensi
dengan transformasi Z, serta kesimpulan mengenai perbedaan
karakteristik suara cowok dan cewek.
9. Membuat kesimpulan berdasarkan analisis pengolahan sinyal suara.
10. Menyusun hasil pengolahan sinyal suara ke dalam bentuk laporan
D. Hasil
● Cell 1 : Analisis Suara Cowok
# Zulfa Majidah dan Maulidya Maharani_12/08/2023
# Analisis Suara Cowo
plt.show()
# Plot FFT
freq, fft_result = fft_analyze(data, fs)
plot_audio(fs, np.abs(fft_result), "FFT")
# Plot Transformasi Z
h, z = z_transform(data, fs)
plot_audio(fs, np.abs(h), "Transformasi Z")
# Tampilkan grafik
plt.tight_layout()
plt.show()
● Cell 2 : Analisis Suara Cewe
# Zulfa Majidah dan Maulidya Maharani_12/08/2023
# Analisis Suara Cewe
plt.show()
# Plot FFT
freq, fft_result = fft_analyze(data, fs)
plot_audio(fs, np.abs(fft_result), "FFT")
# Plot Transformasi Z
h, z = z_transform(data, fs)
plot_audio(fs, np.abs(h), "Transformasi Z")
# Tampilkan grafik
plt.tight_layout()
plt.show()
● Cell 3 : Perubahan pitch suara cewe ke suara cowo
# Zulfa Majidah dan Maulidya Maharani_12/08/2023
# Perubahan pitch suara cewe ke suara cowo
plt.subplot(2, 1, 1)
plt.plot(np.arange(len(cewe_audio)) / rate, cewe_audio)
plt.title('Gelombang Audio Cewek')
plt.subplot(2, 1, 2)
plt.plot(np.arange(len(cowo_audio)) / rate, cowo_audio)
plt.title('Gelombang Audio Cowok')
plt.tight_layout()
plt.show()
# Transformasi Z
z_cowo = scipy.signal.tf2zpk(*scipy.signal.butter(4, 3000,
'highpass', fs=fs_cowo))
z_cewe = scipy.signal.tf2zpk(*scipy.signal.butter(4, 3000,
'highpass', fs=fs_cewe))
plt.tight_layout()
plt.show()
● Cell 4 : Perubahan pitch suara cowo ke suara cewe
# Zulfa Majidah dan Maulidya Maharani_12/08/2023
# Perubahan pitch suara cowo ke suara cewe
plt.subplot(2, 1, 1)
plt.plot(np.arange(len(cowo_audio)) / rate, cowo_audio)
plt.title('Gelombang Audio Cowok')
plt.subplot(2, 1, 2)
plt.plot(np.arange(len(cewe_audio)) / rate, cewe_audio)
plt.title('Gelombang Audio Cewek')
plt.tight_layout()
plt.show()
# Transformasi Z
z_cewe = scipy.signal.tf2zpk(*scipy.signal.butter(4, 3000,
'highpass', fs=fs_cewe))
z_cowo = scipy.signal.tf2zpk(*scipy.signal.butter(4, 3000,
'highpass', fs=fs_cowo))
plt.tight_layout()
plt.show()
E. Analisis dan Pembahasan
Pada file Python yang kami buat, terdapat 4 cell yang memuat bahasa
pemrograman kami. Cell pertama merupakan analisis dari SuaraCowo.wav.
Pada cell ini, ditampikan grafik frekuensi suara, FFT, dan transformasi Z
berdasarkan analisis dari file SuaraCowo.wav. Cell kedua merupakan analisis
dari SuaraCewe.wav. Pada cell ini, ditampilkan grafik frekuensi suara, FFT,
dan transformasi Z berdasarkan analisis dari file SuaraCewe.wav. Cell ketiga
merupakan bahasa pemrograman yang berisi perubahan pitch dari suara
cewek ke suara cowok. Pada cell ini, akan diputar suara asli dari file
Suaracewe.wav dan suara hasil perubahan pitch. Cell keempat merupakan
bahasa pemrograman yang berisi perubahan pitch dari suara cowok ke suara
cewek. Pada cell ini, akan diputar suara asli dari file Suaracowo.wav dan
suara hasil perubahan pitch.
Dari semua cell di atas, telah ditampilkan beberapa grafik yang
diminta yaitu grafik spektrum frekuensi, grafik FFT, dan grafik transformasi
Z. Grafik spektrum frekuensi yang dihasilkan menunjukkan distribusi
frekuensi dalam sinyal audio. Grafik tersebut dapat membantu
mengidentifikasi pola frekuensi yang membedakan kedua sinyal audio
tersebut. Semakin tinggi amplitudo pada suatu frekuensi, semakin banyak
energi yang terkandung pada frekuensi tersebut dalam sinyal audio. Grafik
FFT yang dihasilkan menunjukkan magnitudo dari transformasi Fourier dari
sinyal audio. Semakin tinggi amplitudo pada suatu frekuensi, semakin banyak
energi yang terkandung pada frekuensi tersebut dalam sinyal audio. Dalam
bahasa Python di atas, fungsi fft_analyze digunakan untuk melakukan
FFT pada data audio dan menghasilkan grafik FFT. Berdasarkan cell 1 (suara
cowok), puncak frekuensi pada grafik menunjukkan nada yang rendah hingga
nada yang sedang dalam suara. Sedangkan berdasarkan cell 2 (suara cewek),
puncak frekuensi pada grafik menunjukkan nada tengah hingga nada sangat
tengah dalam suara. Grafik transformasi Z yang dihasilkan dapat digunakan
untuk membantu memahami karakteristik suara cewek dan cowok karena
memungkinkan untuk dilakukan analisis sinyal audio dalam domain waktu
dan frekuensi. Pada bahasa Python di atas, Transformasi Z digunakan untuk
menganalisis sinyal audio dari file "SuaraCewe.wav" dan "SuaraCowo.wav".
Dengan menggunakan transformasi Z, kami dapat mengidentifikasi puncak
frekuensi yang mewakili karakteristik suara khusus pada suara cewe dan
cowo. Puncak frekuensi yang tampak pada grafik spektrum frekuensi
merupakan bagian penting dari sinyal audio yang mencerminkan frekuensi
yang dominan pada suara. Dengan menganalisis puncak frekuensi ini, kami
dapat menemukan perbedaan dalam karakteristik suara antara cewe dan cowo.
Apabila cell 3 dan cell 4 dianalisis berdasarkan grafik spektrum
frekuensi, grafik FFT, dan grafik transformasi Z, dapat disimpulkan bahwa
perubahan pitch suara cewe ke suara cowo dapat dilakukan dengan
menurunkan frekuensi. Begitu juga sebaliknya, perubahan pitch suara cowo
ke suara cewe dapat dilakukan dengan menaikkan frekuensi.
F. Kesimpulan
Setelah kami melakukan pengolahan sinyal suara terhadap 2 file suara,
dapat disimpulkan bahwa perbedaan suara cowo dan suara cewe dapat
ditentukan melalui identifikasi puncak frekuensi yang ada pada grafik
transformasi spektrum frekuensi. Puncak frekuensi yang tampak pada grafik
spektrum frekuensi merupakan bagian penting dari sinyal audio yang
mencerminkan frekuensi yang dominan pada suara. Hal ini karena puncak
frekuensi pada grafik spektrum frekuensi menunjukkan karakteristik suara
khusus. Hasil identifikasinya berdasarkan data kami yaitu suara cewe
cenderung memiliki frekuensi yang lebih tinggi dibandingkan suara cowo.
Hal tersebut juga telah terbukti pada pengolahan sinyal suara yang kami buat.
G. Referensi
Untuk menyelesaikan tugas pengolahan sinyal suara, kami
menggunakan beberapa referensi yaitu stackoverflow, kaggle, dan perplexity.
H. Lampiran
Di bawah ini kami lampirkan link Google Drive yang berisi file
python pengolahan sinyal suara, file suara cowok, dan file suara cewek.
https://drive.google.com/drive/folders/1HkCk1V16LXtRQ5_FuildW1vi6opl
NSxF?usp=sharing