Kapan lagu laugh kick in?

14

Salah satu proyek akhir pekan saya telah membawa saya ke kedalaman pemrosesan sinyal. Seperti halnya semua proyek kode saya yang membutuhkan matematika tugas berat, saya lebih dari senang untuk mengotak-atik jalan saya ke solusi meskipun kurangnya landasan teoretis, tetapi dalam hal ini saya tidak memilikinya, dan akan sangat menyukai saran tentang masalah saya , yaitu: Saya mencoba mencari tahu kapan penonton langsung tertawa saat acara TV.

Saya menghabiskan cukup banyak waktu membaca tentang pendekatan pembelajaran mesin untuk mendeteksi tawa, tetapi menyadari bahwa itu lebih berkaitan dengan mendeteksi tawa individu. Dua ratus orang yang tertawa sekaligus akan memiliki sifat akustik yang berbeda, dan intuisi saya adalah mereka harus dibedakan melalui banyak teknik yang lebih kasar daripada jaringan saraf. Tapi saya mungkin benar-benar salah! Akan menghargai pemikiran tentang masalah ini.

Inilah yang saya coba sejauh ini: Saya memotong kutipan lima menit dari episode Saturday Night Live baru-baru ini menjadi dua klip kedua. Saya kemudian memberi label "tertawa" atau "tidak tertawa" ini. Dengan menggunakan ekstraktor fitur MFCC Librosa, saya kemudian menjalankan pengelompokan K-Means pada data, dan mendapatkan hasil yang baik - dua kelompok dipetakan dengan sangat rapi ke label saya. Tetapi ketika saya mencoba untuk beralih melalui file yang lebih lama prediksi tidak tahan.

Apa yang akan saya coba sekarang: Saya akan lebih tepat tentang membuat klip tawa ini. Daripada melakukan blind split dan sortir, saya akan mengekstraknya secara manual, sehingga tidak ada dialog yang mencemari sinyal. Lalu saya akan membaginya menjadi klip seperempat detik, menghitung MFCC ini, dan menggunakannya untuk melatih SVM.

Pertanyaan saya saat ini:

  1. Apakah semua ini masuk akal?

  2. Bisakah statistik membantu di sini? Saya telah melihat-lihat dalam mode tampilan spektrogram Audacity dan saya bisa melihat dengan jelas di mana tawa terjadi. Dalam spektogram kekuatan log, ucapan memiliki penampilan yang sangat khas, "berkerut". Sebaliknya, tawa mencakup spektrum frekuensi yang luas dengan cukup merata, hampir seperti distribusi normal. Bahkan mungkin untuk membedakan tepuk tangan dari tawa secara visual dengan frekuensi yang lebih terbatas yang disajikan dalam tepuk tangan. Itu membuat saya memikirkan penyimpangan standar. Saya melihat ada sesuatu yang disebut tes Kolmogorov – Smirnov, mungkinkah ini membantu? Log-power spectrogram (Anda dapat melihat tawa dalam gambar di atas sebagai dinding oranye yang mencapai 45% dari jalan masuk.)

  3. Spektogram linier tampaknya menunjukkan bahwa tawa itu lebih energik dalam frekuensi yang lebih rendah dan memudar ke frekuensi yang lebih tinggi - apakah ini berarti memenuhi syarat sebagai noise pink? Jika demikian, dapatkah itu menjadi pijakan pada masalahnya? Spektrogram

Saya minta maaf jika saya menyalahgunakan jargon, saya sudah berada di Wikipedia sedikit untuk yang satu ini dan tidak akan terkejut jika saya mendapat beberapa campur aduk.

Erik
sumber
1
Saya setuju pada "tidak akan membutuhkan jaringan saraf untuk mendapatkan detektor yang solid untuk lagu tertawa". Saya juga setuju Anda melempar Kolmogorov pada sinyal, mengingat jika Anda benar, dan lagu tawa adalah jumlah (terbobot) jumlah iid tertawa, Anda harus mendapatkan fitur normal dari beberapa jenis. Mungkin Anda masih ingin meningkatkan resolusi frekuensi. Ngomong-ngomong, untuk seseorang yang "tidak suka" DSP, jargon Anda cukup baik :) sayangnya, saya bukan orang audio, jadi saya mungkin tidak terlalu membantu.
Marcus Müller
Saya senang membantu. Apakah Anda memiliki data untuk pelatihan? Salah satu hal terpenting adalah pelabelan data. Sampah masuk sampah keluar. Salah satu pendekatan paling sederhana dan paling efektif adalah dengan melatih sekumpulan GMM dan mengevaluasi kemungkinannya.
jojek
Anda mungkin ingin memeriksa terlebih dahulu, jika Anda dapat memisahkan tawa dari keheningan dengan memeriksa kekuatan / amplitudo sinyal Anda pada waktu tertentu. Memberi Anda kemungkinan untuk mengirik saat-saat "sesuatu" sedang terjadi. Maka Anda bisa mencoba melihat distribusi frekuensi. Misalnya, ucapan mungkin memiliki beberapa puncak tajam yang berbeda (tidak peduli di mana tepatnya puncak-puncak ini berada, hanya saja puncak itu ada), sedangkan tawa seragam seperti yang Anda katakan. Melacak ini mungkin menghasilkan nilai untuk memutuskan apakah itu tawa. (Anda memerlukan informasi volume, untuk memastikan Anda tidak hanya memiliki kesunyian yang seragam)
user6522399

Jawaban:

0

Berdasarkan pengamatan Anda, bahwa spektrum sinyal cukup dapat dibedakan, Anda dapat menggunakan ini sebagai fitur untuk mengklasifikasikan tawa dari ucapan.

Ada banyak cara untuk melihat masalahnya.

Pendekatan # 1

Dalam satu kasus, Anda bisa melihat vektor MFCC. dan terapkan ini ke klasifikasi apa saja. Karena Anda memiliki banyak co-efisien dalam domain frekuensi, Anda mungkin ingin melihat struktur Cascade Classifiers dengan meningkatkan algoritma seperti Adaboost berdasarkan ini, Anda dapat membandingkan antara kelas bicara vs kelas tertawa.

Pendekatan # 2

Anda menyadari bahwa bicara Anda pada dasarnya adalah sinyal yang bervariasi waktu. Jadi salah satu cara efektif untuk melakukannya adalah dengan melihat variasi waktu dari sinyal itu sendiri. Untuk ini, Anda dapat memecah sinyal dalam kumpulan sampel, dan melihat spektrum untuk waktu itu. Sekarang, Anda mungkin menyadari bahwa tawa mungkin memiliki pola yang lebih berulang untuk durasi yang ditentukan di mana ketika bicara secara inheren memiliki lebih banyak informasi dan karenanya variasi spektrum akan menjadi lebih besar. Anda dapat menerapkan ini pada model tipe HMM untuk melihat apakah Anda secara konsisten tetap dalam kondisi yang sama untuk beberapa spektrum frekuensi atau Anda terus berubah. Di sini, bahkan jika sesekali spektrum bicara mirip dengan tawa, akan lebih banyak waktu berubah.

Pendekatan # 3

Paksaan untuk menerapkan pengkodean jenis LPC / CELP pada sinyal dan amati residunya. CELP Coding membuat model produksi pidato yang sangat akurat.

Dari referensi di sini: TEORI PEMODELAN CELP

Redudansi dalam sinyal wicara hampir dihilangkan setelah prediksi jangka pendek dan prediksi jangka panjang dari sinyal wicara dan residual memiliki sangat sedikit korelasi yang tersisa di dalamnya. Kemudian eksitasi dicari yang mensintesis pidato dan indeks codebook dan keuntungan dicari dari codebook tetap. Kriteria pemilihan indeks codebook optimal didasarkan pada MMSE antara ucapan yang disintesis secara lokal dan sinyal ucapan asli.

Sederhananya, setelah semua pidato yang diperkirakan dari analisa dihapus - yang tersisa adalah residu yang ditransmisikan untuk membuat ulang bentuk gelombang yang tepat.

Bagaimana hal itu membantu masalah Anda? Pada dasarnya, jika Anda menerapkan pengkodean CELP, ucapan dalam sinyal sebagian besar dihilangkan, yang tersisa adalah residu. Dalam kasus tawa, sebagian besar sinyal mungkin dipertahankan karena CELP akan gagal untuk memprediksi sinyal seperti itu dengan pemodelan saluran vokal, di mana saat bicara individu akan memiliki residu yang sangat sedikit. Anda juga dapat menganalisis residu ini kembali dalam domain frekuensi, untuk melihat apakah itu tawa atau ucapan.

Dipan Mehta
sumber
0

Sebagian besar pengenal ucapan tidak hanya menggunakan koefisien MFCC tetapi juga turunan pertama dan kedua dari level MFCC. Saya menduga bahwa onsets akan sangat berguna dalam kasus ini dan membantu Anda membedakan tawa dibandingkan suara lainnya.

Bob
sumber