10
อัลกอริทึมเพื่อผสมสัญญาณเสียงโดยไม่ต้องตัด
ฉันต้องการผสมผสานช่องสัญญาณเสียง PCM สองช่องขึ้นไป (เช่นตัวอย่างที่บันทึก) แบบดิจิทัลในลักษณะที่แสดงถึงความเชื่อทางเสียงโดยเฉพาะอย่างยิ่งในเวลาใกล้เคียงแบบเรียลไทม์ วิธีที่ "ถูกต้อง" ทางกายภาพในการทำเช่นนี้คือการสรุปตัวอย่าง อย่างไรก็ตามเมื่อคุณเพิ่มสองตัวอย่างโดยพลการค่าผลลัพธ์อาจเป็นค่าสูงสุดสองเท่า ตัวอย่างเช่นหากตัวอย่างของคุณมีค่า 16 บิตผลลัพธ์จะมากถึง 65536 * 2 ผลลัพธ์นี้ในรูปวาด ทางออกที่ไร้เดียงสาที่นี่คือการหารด้วย N โดยที่ N คือจำนวนช่องสัญญาณที่ถูกผสม อย่างไรก็ตามผลลัพธ์นี้ในแต่ละตัวอย่างมีค่า 1 / Nth ดังซึ่งไม่สมจริงอย่างสมบูรณ์ ในโลกแห่งความจริงเมื่อทั้งสองเครื่องดนตรีเล่นพร้อมกันแต่ละเครื่องดนตรีจะไม่กลายเป็นครึ่งดัง จากการอ่านรอบ ๆ วิธีการผสมทั่วไปคือ: result = A + B - AB โดยที่ A และ B เป็นสองตัวอย่างที่ถูกทำให้เป็นมาตรฐานและ AB เป็นคำศัพท์เพื่อให้แน่ใจว่าเสียงดังดังขึ้น อย่างไรก็ตามสิ่งนี้แนะนำการบิดเบือนของสัญญาณ ระดับการบิดเบือนนี้ยอมรับได้ในการสังเคราะห์เสียงคุณภาพสูงหรือไม่? มีวิธีอื่นใดอีกบ้างในการแก้ไขปัญหานี้ ฉันสนใจอัลกอริธึมที่มีคุณภาพต่ำกว่าและอัลกอริธึมคุณภาพสูงที่มีประสิทธิภาพน้อยลง ฉันกำลังถามคำถามของฉันในบริบทของการสังเคราะห์เพลงดิจิทัลเพื่อจุดประสงค์ในการผสมแทร็กที่หลากหลายเข้าด้วยกัน เพลงสามารถสังเคราะห์เสียงตัวอย่างที่บันทึกล่วงหน้าหรืออินพุตไมโครโฟนแบบเรียลไทม์