การจัดรูปแบบข้อมูลเสียงของเครื่องเสียงระดับต่ำ - อัตราตัวอย่างและการแปลงความลึกบิต

Aug 17 2020

ก่อนอื่นดูเหมือนว่าจะมีแบบฝึกหัดการเขียนโปรแกรมเสียงระดับต่ำอยู่จำนวนหนึ่งดังนั้นหากใครรู้แหล่งข้อมูลที่ดีฉันจะขอบคุณมาก ตอนนี้ไปที่หัวข้อในมือ!

ฉันใช้ WASAPI สำหรับเอ็นจิ้นเสียงที่ฉันพยายามพัฒนาและฉันมีปัญหาในการฟอร์แมตข้อมูลไฟล์เสียงที่อ่านแล้วให้อยู่ในรูปแบบที่อุปกรณ์เสียงเตรียมรับ โดยเฉพาะฉันสงสัยว่าจะแปลงอัตราการสุ่มตัวอย่างและความลึกบิตของไฟล์เสียงที่อ่านเป็นรูปแบบที่ร้องขอของอุปกรณ์ได้อย่างไร ฉันเห็นตัวอย่างที่ใช้การแก้ไขเชิงเส้น แต่อ่านจากที่อื่นว่าตัวกรองดังกล่าวแนะนำสิ่งประดิษฐ์มากเกินไปเช่นนามแฝงดังนั้นอีกครั้งฉันสงสัยว่าอัลกอริทึมที่ใช้งานได้จริงคืออะไรในการฟอร์แมตข้อมูลเสียงในแอปพลิเคชันแบบเรียลไทม์

คำตอบ

1 hotpaw2 Aug 17 2020 at 15:44

การแก้ไขด้วย Sinc ไม่แนะนำสิ่งประดิษฐ์นามแฝงให้กับข้อมูลที่เดิมถูก จำกัด แบนด์อย่างเหมาะสมก่อนการสุ่มตัวอย่าง (แต่ต้องมีการแก้ไขเล็กน้อยเนื่องจากเคอร์เนล Sinc หรือ Dirichlet มีระยะเวลาไม่สิ้นสุด)

ข้อมูลอ้างอิงที่เป็นที่ยอมรับว่าเหตุใดจึงมีการสร้างใหม่และวิธีการแก้ไขอยู่ที่นี่: https://ccrma.stanford.edu/~jos/resample/

ฉันมีการใช้งานพื้นฐานอย่างง่ายที่นี่: http://www.nicholson.com/rhn/dsp.html#3

วิธีการทั่วไปอื่น ๆ คือการสุ่มตัวอย่างอัตราส่วนจำนวนเต็มกรองแบบ low-pass ตามด้วยการลดการสุ่มตัวอย่างอัตราส่วนจำนวนเต็มแบบ low-pass ด้วยอัตราส่วนสองอัตราส่วนที่เหมาะสม วิธีการทั่วไปอีกวิธีหนึ่งคือการสร้างธนาคารตัวกรองโพลีเฟส FIR (ของหลายขั้นตอนของเมล็ดการแก้ไข Sinc ที่มีหน้าต่าง (หรือตัวกรอง FIR ที่ได้รับการปรับให้เหมาะสมที่สุด) วิธีการทั่วไปอีกวิธีหนึ่งคือการใช้ตัวกรองโพลีโนเมียลของ humps ของเคอร์เนลของ Sinc ซึ่งส่งผลให้ธนาคารกรอง Farrow .

คุณต้องพกพาบิตของค่ากลางเลขคณิตให้เพียงพอเพื่อที่จะรักษาระดับเสียงเชิงปริมาณของคุณให้ต่ำกว่าที่คุณต้องการ