Pembelajaran mendalam dengan Spectrograms untuk pengenalan suara

12

Saya mencari kemungkinan untuk mengklasifikasikan suara (misalnya suara binatang) menggunakan spektrogram. Idenya adalah untuk menggunakan jaringan saraf convolutional yang mendalam untuk mengenali segmen dalam spektrogram dan menghasilkan satu (atau banyak) label kelas. Ini bukan ide baru (lihat misalnya klasifikasi suara ikan paus atau pengenalan gaya musik ).

Masalah yang saya hadapi adalah bahwa saya memiliki file suara dengan panjang yang berbeda dan karenanya spektogram dengan ukuran yang berbeda. Sejauh ini, setiap pendekatan yang saya lihat menggunakan sampel suara ukuran tetap tetapi saya tidak bisa melakukan itu karena file suara saya mungkin 10 detik atau 2 menit.

Dengan, misalnya, suara burung di awal dan suara katak di akhir (output harus "Burung, Katak"). Solusi saya saat ini adalah menambahkan komponen temporal ke jaringan saraf (membuat lebih banyak jaringan saraf berulang) tetapi saya ingin membuatnya tetap sederhana untuk saat ini. Ada ide, tautan, tutorial, ...?

pengguna667804
sumber
1
Cara paling sederhana adalah menggunakan FFT dengan panjang tetap alih-alih STFT (spektrogram). Itu akan menghilangkan masalah panjang variabel Anda. Mengapa Anda tidak menerapkan jaringan saraf berulang saja? Apakah Anda hanya membutuhkan contoh yang berhasil? Jika demikian, apakah Anda fleksibel tentang perangkat lunak mana yang digunakan?
Emre
1
Saya pikir saya akan kehilangan banyak informasi dengan FFT yang tetap. Jika saya melakukan itu, saya pikir saya harus melakukan segmentasi terlebih dahulu, di mana saya mencari bagian yang 'menarik'. Saya mungkin melakukan itu atau pergi ke jaringan saraf berulang (contohnya bagus tapi tidak perlu, saya ingin menggunakan Lasagne). Alasan saya mencoba menghindarinya adalah bahwa output dari jaringan saraf berulang lebih sulit untuk ditangani (pada setiap langkah waktu tetapi saya hanya memiliki label untuk seluruh file). Jadi saya ingin memulai dengan model paling sederhana dan secara bertahap membuatnya lebih kompleks.
user667804
dapatkah Anda memberi tahu apa yang akhirnya Anda gunakan dan pendekatan terbaik yang Anda temukan? @ user667804
nia
Lihatlah makalah ini untuk solusi: ceur-ws.org/Vol-1609/16090547.pdf Menggunakan CNN pada potongan spektogram berukuran tetap dan kemudian rata-rata output untuk menghasilkan satu prediksi akhir (rata-rata output indidivual tampaknya bekerja terbaik).
user667804

Jawaban:

4

Untuk pengenalan suara otomatis (ASR), fitur bank filter berfungsi sebaik CNN pada spektrogram. Tabel 1 . Anda dapat melatih sistem DBN-DNN di fbank untuk mengklasifikasikan suara binatang.

Dalam praktiknya, ujaran ucapan yang lebih panjang dibagi menjadi ujaran yang lebih pendek karena pendekodean Viterbi tidak berfungsi dengan baik untuk ujaran yang lebih lama. Anda bisa melakukan hal yang sama.

Anda dapat membagi ujaran yang lebih panjang menjadi ujaran yang lebih kecil dengan panjang tetap. Membagi ujaran yang lebih panjang menjadi lebih kecil itu mudah. Masalahnya adalah meningkatnya panjang ucapan-ucapan kecil untuk mencapai panjang tetap.

Anda dapat membelokkan sumbu frekuensi spektrogram untuk menambah ucapan yang lebih kecil. Augmentasi data ini telah terbukti meningkatkan augmentasi data kinerja ASR .

Untuk ucapan yang lebih panjang dengan beberapa suara di dalamnya, Anda bisa menggunakan algoritma segmentasi musik untuk membaginya menjadi beberapa ucapan. Ucapan-ucapan ini dapat dibuat dengan panjang tetap baik dengan pembagian atau augmentasi.

arduinolover
sumber
4

RNN tidak menghasilkan hasil yang cukup baik dan juga sulit untuk dilatih, jadi saya pergi dengan CNN.

Karena suara binatang tertentu hanya beberapa detik, kita dapat membagi spektrogram menjadi potongan-potongan. Saya menggunakan panjang 3 detik. Kami kemudian melakukan klasifikasi pada setiap chunk dan rata-rata output untuk membuat prediksi tunggal per file audio. Ini berfungsi dengan sangat baik dan juga mudah diterapkan.

Penjelasan lebih mendalam dapat ditemukan di sini: http://ceur-ws.org/Vol-1609/16090547.pdf

pengguna667804
sumber