Sambil mencari jawaban untuk masalah ini, saya menemukan papan ini jadi memutuskan untuk mengirim pertanyaan saya dari Stack Overflow.
Saya mencari metode untuk menentukan kesamaan antara segmen audio dan suara manusia, yang diekspresikan secara numerik.
Saya telah mencari sedikit, tetapi apa yang saya temukan sejauh ini (terperinci di bawah) tidak benar-benar cocok dengan yang saya butuhkan:
Salah satu metode adalah menggunakan perangkat lunak pengenalan suara untuk mendapatkan kata-kata dari segmen audio. Namun, metode ini tidak dapat menghasilkan seberapa mirip "audio" dengan ucapan manusia; sering dapat mengetahui apakah ada kata-kata dalam audio, tetapi jika tidak ada kata-kata yang pasti, itu tidak dapat mengatakan bahwa audio adalah kata-kata seperti itu.
Contoh: CMU Sphinx , Dragonfly , SHoUTMetode yang lebih menjanjikan disebut sebagai Voice Activity Detection (VAD). Namun, ini cenderung memiliki masalah yang sama: algoritma / program menggunakan VAD cenderung hanya mengembalikan apakah ambang aktivitas telah tercapai atau tidak, dan tidak ada nilai "kesamaan" sebelum atau setelah ambang tersebut. Atau, banyak yang hanya mencari volume, bukan kesamaan dengan bicara manusia.
Contoh: Speex , Listener , FreeSWITCH
Ada ide?
sumber
Jawaban:
Masalah seperti ini biasanya diselesaikan dengan menggunakan teknik pembelajaran mesin.
Memecah sinyal menjadi urutan 20 ms atau 50ms frame. Ekstrak fitur pada setiap frame. MFCC umumnya baik untuk aplikasi semacam ini, meskipun ada fitur yang lebih spesifik untuk deteksi suara (energi modulasi 4 Hz - yang kira-kira adalah tingkat di mana orang berbicara; tingkat zero-crossing).
Kemudian, dengan menggunakan seperangkat pelatihan audio yang telah Anda beri label secara manual sebagai ucapan / bukan ucapan, latih classifier (model campuran Gaussian, SVM ...) pada fitur bingkai.
Ini akan memungkinkan Anda untuk mengklasifikasikan frame yang tidak berlabel ke dalam kelas pidato / non-bicara. Langkah terakhir terdiri dari merapikan keputusan (bingkai yang diklasifikasikan sebagai tidak berpidato yang dikelilingi oleh ratusan kerangka bicara cenderung menjadi kesalahan klasifikasi), misalnya menggunakan HMM, atau hanya filter median.
Beberapa referensi:
Klasifikasi pidato / musik yang kuat dalam dokumen audio (Pinquier & al) Diskriminasi pidato / musik untuk aplikasi multimedia (El-Maleh & al) Perbandingan fitur untuk diskriminasi bicara / musik (Carey & al)
Perhatikan bahwa fitur dan teknik klasifikasi yang mereka gambarkan juga relevan untuk masalah 1-kelas dalam mendeteksi wicara (alih-alih membedakan wicara dengan sesuatu yang lain). Dalam hal ini, Anda dapat menggunakan teknik pemodelan 1-kelas seperti 1-kelas SVM, atau hanya mengambil skor kemungkinan dari GMM yang dilatih pada data pidato sebagai ukuran "pidato".
Jika, di sisi lain, masalah Anda benar-benar membedakan ucapan vs sesuatu yang lain (katakanlah musik), Anda juga bisa sangat baik menggunakan pendekatan yang tidak diawasi yang berfokus pada mendeteksi batas-batas antara konten audio yang serupa - daripada mengidentifikasi konten ini sendiri.
sumber