การบอกว่าใช้ค่าเฉลี่ย/ค่าเฉลี่ยของ 3 เฟรมแรกหมายความว่าอย่างไร

ฉันเป็นมือใหม่มากในการประมวลผลคำพูด จริงๆ แล้วฉันกำลังพยายามทำ Noise Reduction ฉันกำลังใช้วิธีลบสเปกตรัม ในขณะที่ทำเช่นนั้น ในเอกสารทางทฤษฎีและอัลกอริธึมหลายฉบับ กล่าวว่าต้องใช้เฟรมของสัญญาณเสียง

เพื่อสิ่งนั้น ฉันใช้เวลานาน 20 มิลลิวินาทีสำหรับแต่ละเฟรม เช่น สำหรับความถี่ในการสุ่มตัวอย่าง = 16KHz ฉันจะได้แต่ละเฟรมด้วย 16KHz * 20ms = 320 ตัวอย่าง/เฟรม

windowed_frame = frame .* hamming(length(frame));
complex_spec = fft(windowed_frame,512);        
mag_spec = abs(complex_spec);
phase_spec = angle(complex_spec);

ตอนนี้สำหรับสัญญาณรบกวนมันบอกว่า:

สมมติว่าเฟรมที่ไม่ใช่คำพูดสองสามเฟรมเริ่มต้นเป็นสัญญาณรบกวน

ดังนั้นเพื่อให้ได้ค่าประมาณเสียงรบกวน จึงระบุเอาไว้

หาค่าเฉลี่ยของ 3 เฟรมแรกหรือมากกว่านั้น

และแต่ละเฟรมถ้ายาว 320 ตัวอย่าง ทีนี้ การบอกว่าหาค่าเฉลี่ย/ค่าเฉลี่ยของ 3 เฟรมแรกนั้นหมายความว่าอย่างไร

3 เฟรมมีทั้งหมด 3*320 = 960 ตัวอย่าง มันบ่งชี้ว่าต้องใช้ค่าเฉลี่ยของค่า 960 เหล่านั้นหรือไม่? แต่นั่นจะส่งผลให้มีเพียงค่าเดียวเท่านั้น แต่ฉันจะต้องมีขนาดแบบหน้าต่าง เช่น Noise_estimate ขนาด 20ms

ความช่วยเหลือใด ๆ ?


person Sagaryal    schedule 20.07.2017    source แหล่งที่มา
comment
มีไซต์ในเครือที่เน้นการประมวลผลสัญญาณดิจิทัล ... หากไม่มีความช่วยเหลือที่นี่ คุณอาจต้องการย้ายคำถามของคุณ ... ดู dsp.stackexchange.com/   -  person Scott Stensland    schedule 21.07.2017
comment
ฉันสงสัยว่านี่หมายถึงการนำค่าเฉลี่ยอัจฉริยะของสเปกตรัมจากแต่ละเฟรมในสามเฟรมแรก ทำให้คุณได้สเปกตรัมพลังงานเฉลี่ยจาก 960 ตัวอย่างแรก   -  person Tom Wyllie    schedule 23.07.2017


คำตอบ (1)


คุณต้องประมาณค่าสเปกตรัมของสัญญาณรบกวน ดังนั้นคุณจึงหาค่าเฉลี่ย mag_spec ใน 3 เฟรมแรก ไม่ใช่ค่าสัญญาณ

 noise_spec = (mag_spec_1 + mag_spec_2 + mag_spec_3) / 3

ผลลัพธ์จะเป็นตัวเลข 512 โดยทั่วไปคือพลังงานเสียงของทุกช่องความถี่

person Nikolay Shmyrev    schedule 23.07.2017