ไลบรารีสำหรับการตรวจหากิจกรรมเสียง (ไม่ใช่การจดจำเสียง)


18

ตามคำถามก่อนหน้านี้ฉันสงสัยว่ามีห้องสมุดตรวจจับเสียงพูดอยู่หรือไม่ โดยการตรวจจับเสียงฉันหมายถึงการส่งผ่านบัฟเฟอร์เสียงและกลับดัชนีซึ่งการพูดเริ่มและหยุด ดังนั้นหากฉันมีการสุ่มตัวอย่างเสียง 10 วินาทีที่ 44kHz ฉันคาดว่าจะมีอาร์เรย์ของตัวเลขเช่น:

44000
88000
123000
190334
...

สิ่งนี้จะบ่งบอกถึงตัวอย่างเช่นคำพูดเริ่มต้นหนึ่งวินาทีแล้วเสร็จที่จุดสองวินาทีเป็นต้น

สิ่งที่ฉันไม่ต้องการคือการรู้จำเสียงพูดซึ่งเขียนข้อความจากคำพูด น่าเสียดายที่นี่เป็นสิ่งที่ฉันเห็นมากเมื่อฉัน 'ตรวจจับคำพูด' ของ Google

คงจะดีถ้าห้องสมุดอยู่ใน C, C ++ หรือแม้แต่ Objective-C เพราะฉันเขียนแอพสำหรับ iPhone

ขอบคุณ!


1
คุณอาจพบคำตอบของคุณในหนึ่งในคำตอบเหล่านี้: dsp.stackexchange.com/questions/912/…
Geerten

1
สิ่งนี้คล้ายกันมากยกเว้นการร้องเพลงแทนที่จะพูด: dsp.stackexchange.com/q/2367/29
endolith

1
ที่เกี่ยวข้องเพิ่มเติม: dsp.stackexchange.com/a/1543/29 "การตรวจจับกิจกรรมเสียง"
endolith

1
คุณควรตรวจสอบการโจมตี / ออฟเซ็ต มันเป็นสนามที่ใช้งานกับการใช้งานจำนวนมากในการประมวลผลเพลงคำพูดและเรดาร์
CyberMen

คำตอบ:


13

ในคำตอบของฉันสำหรับคำถามนั้นฉันได้กล่าวว่าการตรวจจับกิจกรรมด้วยเสียงเป็นคุณสมบัติมาตรฐานสำหรับตัวแปลงสัญญาณเช่น G.729 และอื่น ๆ

คุณควรมองหาตัวเข้ารหัสและตัวถอดรหัสอ้างอิงสำหรับอัลกอริทึมที่ใช้สิ่งนี้

ตัวอย่างหนึ่งคือ - http://www.voiceage.com/openinit_g729.php

อีกแหล่งที่เป็นไปได้คือตัวแปลงสัญญาณ Speex ซึ่งใช้VAD

BTW: คุณควร google "การตรวจหากิจกรรมเสียง" หรือ "Talk Spurt" มากกว่า "การตรวจจับคำพูด"


6

มีการใช้งานโอเพ่นซอร์สในโครงการสฟิงซ์และฟรีสวิทช์ ฉันคิดว่าพวกเขาเป็นเครื่องตรวจจับที่ใช้พลังงานทั้งหมดไม่จำเป็นต้องมีรูปแบบใด ๆ

สฟิงซ์ 4 (Java แต่ควรง่ายต่อการพอร์ตไปยัง C / C ++)

PocketSphinx

Freeswitch

คำตอบที่นำมาจากคำถาม Stackoverflow


4

การตรวจจับกิจกรรมเสียงโดยใช้ Adaptive Threshold นั้นง่ายและสะดวกในการติดตั้งบนทุกแพลตฟอร์ม

ที่นี่คุณสามารถมีอัลกอริทึมซึ่งเป็นพลังงานปรับตัว

อัลกอริธึมเล็ก ๆ นอกเหนือจากด้านบนเมื่อคุณคำนวณเป็นครั้งแรกที่คุณไปหา Mean of Energy และทำเครื่องหมายเป็น Emin

ในเฟรมนี้คุณผ่านจะแบ่งออกเป็นเฟรมย่อยและคุณสามารถตรวจสอบแต่ละเฟรมย่อยสำหรับกิจกรรม

คุณสามารถแก้ไขปัญหาเพิ่มเติมด้วยเฟรมที่ทับซ้อนกัน


ฉันกำลังพยายามใช้วิธีการในกระดาษ แต่หายไปเมื่อ Min_E เป็นศูนย์เนื่องจากการลดเสียงรบกวน ในกรณีนั้น Thresh_E จะเป็น -INF จากสมการ แม้แต่การจด log1p (Min_E) Thresh_E ก็จะเป็นศูนย์ซึ่งมันง่ายมากที่จะทำการแยกเฟรมที่เปล่งเสียงได้อย่างง่ายดายเพราะพลังงานที่ไม่เป็นศูนย์ ข้อเสนอแนะที่ดีหรือฉันเข้าใจผิด? สมการ: Thresh _ E Energy _ Pr imThresh * log (ต่ำสุด _ E)
Farley

3

LibVAD ล่ะ?

ดูเหมือนว่าจะเป็นสิ่งที่คุณกำลังอธิบาย

การเปิดเผยข้อมูล: ฉันเป็นผู้พัฒนาที่อยู่เบื้องหลัง LibVAD


เราจะได้รับ libVAD อย่างไร?
todd

โดยการซื้อมัน แม้ว่าเว็บไซต์จะไม่เปิดเผยราคาจนกว่าคุณจะกรอกแบบฟอร์ม
Camille Goudeseune

2
ลิงก์ไปที่ไซต์มัลแวร์ที่ต้องการให้ผู้เยี่ยมชมอัปเดตแฟลช
Steve Severance
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.