Perpustakaan untuk Deteksi Aktivitas Suara (Bukan Pengenalan Ucapan)

18

Sebagai tindak lanjut dari pertanyaan saya sebelumnya, saya bertanya-tanya apakah ada perpustakaan pendeteksi wicara. Dengan deteksi ucapan yang saya maksudkan melewati buffer audio dan mendapatkan kembali indeks di mana pidato dimulai dan berhenti. Jadi jika saya memiliki 10 detik pengambilan sampel audio pada 44kHz, saya akan mengharapkan array angka seperti:

44000
88000
123000
190334
...

Ini akan menunjukkan misalnya bahwa pidato dimulai satu detik dan kemudian selesai pada titik dua detik, dll.

Yang tidak saya cari adalah pengenalan ucapan yang menulis teks dari kata yang diucapkan. Sayangnya ini adalah apa yang saya lihat banyak ketika saya google 'deteksi wicara'.

Akan lebih bagus jika perpustakaan berada di C, C ++ atau bahkan Objective-C karena saya sedang menulis aplikasi untuk iPhone.

Terima kasih!

Eric Brotto
sumber
1
Anda mungkin menemukan jawaban Anda di salah satu jawaban ini: dsp.stackexchange.com/questions/912/…
Geerten
1
Ini sangat mirip, kecuali bernyanyi alih-alih ucapan: dsp.stackexchange.com/q/2367/29
endolith
1
Juga relevan: dsp.stackexchange.com/a/1543/29 "deteksi aktivitas suara"
endolith
1
Anda harus melihat deteksi onset / offset. Merupakan bidang aktif dengan banyak aplikasi dalam pemrosesan sinyal musik, ucapan, dan radar.
CyberMen

Jawaban:

13

Dalam jawaban saya untuk pertanyaan Anda itu, saya telah menyebutkan bahwa Voice Activity Detection adalah fitur standar untuk codec seperti G.729 dan yang lainnya.

Anda harus mencari encoders referensi dan decoder untuk algoritma yang berlaku ini.

Salah satu contohnya adalah - http://www.voiceage.com/openinit_g729.php

Sumber lain yang mungkin adalah codec Speex. Yang mengimplementasikan VAD

BTW: Anda harus google "Deteksi Aktivitas Suara" atau "Bicara Spurt" daripada "Deteksi Bicara".

Dipan Mehta
sumber
6

Ada implementasi open source dalam proyek Sphinx dan Freeswitch. Saya pikir mereka semua detektor berbasis energi tidak memerlukan model apa pun.

Sphinx 4 (Java tetapi seharusnya mudah untuk port ke C / C ++)

PocketSphinx

Freeswitch

Jawaban diambil dari pertanyaan Stackoverflow .

Geerten
sumber
4

Deteksi Aktivitas Suara menggunakan Adaptive Threshold sangat mudah dan praktis untuk diterapkan pada platform apa pun

Di sini Anda dapat memiliki algoritma yang berbasis Energi Adaptif

Tambahan kecil untuk algoritme di atas ketika Anda menghitung untuk pertama kalinya menggunakan mengambil Mean of Energy dan menandai sebagai Emin

dalam hal ini frame yang Anda bagikan dibagi menjadi sub-bingkai dan selanjutnya Anda dapat memeriksa setiap sub-bingkai untuk aktivitasnya

Anda dapat mengatasi masalah lebih lanjut dengan bingkai yang tumpang tindih

kakeh
sumber
Saya mencoba menerapkan metode ini di kertas tetapi hilang ketika Min_E nol karena peredam bising. Dalam hal ini, Thresh_E akan menjadi -INF dari persamaan. Bahkan dengan mengambil log1p (Min_E), Thresh_E akan menjadi nol sehingga sangat mudah untuk salah mengklasifikasikan frame suara karena energi yang tidak nol. Ada saran bagus atau saya salah paham? Persamaan: Thresh _ E Energy _ Pr imThresh * log (Min _ E)
Farley
3

Bagaimana dengan LibVAD?

Sepertinya itu tidak persis seperti yang Anda gambarkan.

Pengungkapan: Saya pengembang di belakang LibVAD

Charles
sumber
Bagaimana cara mendapatkan libVAD?
todd
Dengan membelinya. Situs web tidak mengungkapkan harga sampai setelah Anda mengisi formulir.
Camille Goudeseune
2
Tautan sekarang menuju ke situs malware yang ingin pengunjung memperbarui flash.
Steve Severance