ต้องการอาร์เรย์ไมโครโฟนมินิ USB เป็นไปได้ไหม?


13

ฉันได้เรียนรู้มากมายเกี่ยวกับการสร้างลำแสงที่ปรับตัวได้และมีการล้อเล่นกับซิมต่างๆใน MATLAB เป็นต้น

แต่จะมีวิธีใดที่ดีกว่าที่จะเข้าใจบางสิ่ง - เข้าใจอย่างแท้จริง - ดีกว่าเล่นกับระบบทั้งหมด

ด้วยเหตุนี้ฉันต้องการค้นหา (สร้างหรือไม่) อาร์เรย์ไมโครโฟนที่เชื่อมต่อ USB ด้วยคำพูด 5 mics หรือมากกว่านั้น พวกเขาจะสามารถรับสัญญาณจากสภาพแวดล้อม (หรือที่ใดก็ตามที่แล็ปท็อปของฉันอยู่) และจากนั้นฉันจะสามารถรับสัญญาณเหล่านั้นและประมวลผลสัญญาณเหล่านั้นใน MATLAB หรืออะไรก็ตาม

ฉันไม่อยากจะสร้างทั้งหมดดังนั้นฉันหวังว่าจะมีใครบางคนเคยใช้อาร์เรย์ไมโครโฟนที่เชื่อมต่อ USB แล้วในอดีตและสามารถชี้ไปในทิศทางที่ถูกต้องได้หรือไม่?

ไมโครโฟนไม่จำเป็นต้องมีอะไรแฟนซีเมื่อพูดถึงความละเอียดบิตของ A / D ของพวกเขา ฯลฯ ไมโครโฟน KISS ที่มีคุณภาพที่น่านับถือจะทำได้ดี

คำตอบ:


8

ตาเพลย์กล้องวิดีโอมี 4 องค์ประกอบเชิงเส้นชุดไมโครโฟน มีตัวอย่าง 16 บิตที่ 48 KHz ด้วย SNR 90 dB มันใช้งานง่าย: มันระบุว่าเป็นอุปกรณ์เสียง USB มาตรฐานที่มีสี่ช่องแยก

สำหรับตัวอย่างของการใช้วิธีนี้โปรดดู: PS3 Eye 4-Audio Audio Tests บน Ubuntu Karmic


1
@ Mohammad นี่อาจเป็นทางออกที่ดีถ้าคุณยินดีที่จะ จำกัด ตัวเองไว้ที่สี่ช่อง สี่ช่องจะทำให้คุณได้รับข้อมูล beamforming ประมาณ 12dB ข้อเสียคือเนื่องจากความจริงที่ว่าขอบเขตทั้งหมดของอาเรย์นั้นค่อนข้างเล็กคุณจะมีจุดโฟกัสที่มีลำแสงขนาดใหญ่: คุณไม่สามารถแยกแหล่งกำเนิดเสียงที่อยู่ใกล้กันเกินไป แอปพลิเคชันหลักของคุณสำหรับอาเรย์นี้อาจจะไม่แยกแหล่งกำเนิดเสียง แต่เป็นการติดตามแหล่งกำเนิดเสียงเดี่ยวผ่านอวกาศ คือรู้ว่าคนที่ยืนอยู่จากเสียงของพวกเขา ...
ARF

1
@ArikRaffaelFunke อืมฉันไม่รู้เกี่ยวกับลำแสงที่ปรับตัวได้มากพอที่จะรู้ว่าจุดโฟกัสคืออะไร :-) อย่างไรก็ตามฉันคิดว่าฉันจะยังสามารถแยกแหล่งข้อมูลโดยใช้ ICA ที่ไม่ใช่แบบทันทีทันใด (อันที่จริงฉันกำลังมุ่งเน้นไปที่ ICA ในขณะนี้) นอกจากนี้ใช่ 4 ไม่มากเท่าที่ฉันหวังไว้ ... แต่บางทีนี่อาจเป็นการเริ่มต้น .. c
Spacey

3

หลังจากทำงานอย่างกว้างขวางในการปรับรูปแบบลำแสงฉันจะอายจริงๆจากการแฮ็คข้อมูลด้วยตัวเองเพื่อสิ่งนี้จนกว่าฉันจะได้รับประสบการณ์ (หมายเหตุ: โซลูชันระดับมืออาชีพที่มีประมาณ 60 ช่องมีค่าใช้จ่ายประมาณ 100k €ด้วยหลายช่องทางความละเอียดเชิงพื้นที่ของคุณจะดีขึ้นมาก แต่คุณจะได้รับข้อมูลจำนวน จำกัด ผ่านพอร์ต USB ... )

สำหรับ beamforming ที่เชื่อถือได้เป็นสิ่งสำคัญที่ไมโครโฟนทั้งหมดใช้ฐานเวลาเดียวกัน วิธีที่ง่ายที่สุดในการบรรลุเป้าหมายนี้คือการ์ดเสียง USB ภายนอกที่มีอินพุตหลายช่อง แม้ว่ามันจะไม่ถูกจริงๆ คุณได้ดูสิ่งที่สามารถพบได้ในอีเบย์?

อีกทางเลือกหนึ่งคือเสียสละเวลาพื้นฐานโดยใช้การ์ดเสียง USB จำนวนหนึ่งเช่นสองช่องสัญญาณ อย่างไรก็ตามคุณจะต้องปรับระบบการเข้าซื้อกิจการของคุณ มันไม่ยากอย่างที่คิด:

ในการปรับเทียบคุณตั้งค่าอาเรย์ของคุณและสร้างเสียงสั้น ๆ (เช่นเสียงแตก / เสียงดังเปรี้ยง / ฯลฯ ) ที่ระยะห่างจากอาเรย์ของคุณตามลำดับขอบเขตของอาเรย์ จากนั้นคุณบันทึกเสียงนี้และใช้ Matlab หรือคล้ายกันเพื่อคำนวณ cross-correlation ระหว่าง clap / crack / etc ในช่องทางที่แตกต่างกัน นี่จะให้รายการเวลาที่คุณต้องการนำไปใช้กับช่องของคุณเพื่อจัดแนวพวกเขาก่อนที่จะป้อนข้อมูลไปยังอัลกอริทึม beamforming ของคุณ

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


แก้ไข 1

การแก้ไขนี้คือการตอบคำถามที่เกิดขึ้นในความคิดเห็น

แนวคิดพื้นฐานของการหน่วงเวลาและการจัดรูปแบบรวมแสงคือการใช้ความล่าช้ากับช่องสัญญาณการซื้อที่แตกต่างกันเช่นเสียงที่เกิดจากจุดหนึ่งในการจัดแนวอวกาศและ "ขยาย" เมื่อเพิ่มสัญญาณจากช่องสัญญาณที่แตกต่างกัน เสียงที่ orignate จากพื้นที่อื่นไม่จัดแนวดังนั้นจึงไม่ "ขยาย"

จุดในพื้นที่ที่เสียงสอดคล้องกับชุดของความล่าช้าบางอย่างเรียกว่าโฟกัสของอาร์เรย์ไมโครโฟน (หรือจุดโฟกัส) ในความเป็นจริงการโฟกัสไม่ได้เป็นจุดที่เหมาะ แต่จะค่อนข้างเล็ก (ish) (ขึ้นอยู่กับอาร์เรย์) ของพื้นที่ที่เสียงสอดคล้องกัน ขนาดของพื้นที่นี้เรียกว่าขนาดของจุดโฟกัส

เรขาคณิต (ขนาดรูปร่าง ฯลฯ ) ขึ้นอยู่กับรายละเอียดที่แน่นอนของอาร์เรย์: จำนวนไมโครโฟนระยะห่างไมโครโฟนเนื้อหาความถี่ของสัญญาณที่น่าสนใจ ดูเช่นบทความนี้

สำหรับข้อมูลเพิ่มเติมให้ค้นหาข้อความเกี่ยวกับการมุ่งเน้น "อาร์เรย์ที่แบ่งเป็นระยะ" หรือ "เชิงเส้นอาร์เรย์" ใน ultrasonics Beamforming สามารถใช้กับการรับสัญญาณ (เพื่อขยายสัญญาณจากจุดใดจุดหนึ่งในอวกาศ) หรือการปล่อย (เพื่อสร้างจุด "ดัง" ในห้อง) หลักการเหมือนกัน: เพียงแค่แทนที่ "ไมโครโฟน" ด้วย "ลำโพง" ในความคิดของคุณ

เกี่ยวกับขั้นตอนการสอบเทียบ: คุณถูกต้อง ขั้นตอนที่อธิบายไว้นั้นง่ายเกินไป มันใช้งานได้ดีถ้าคุณสามารถสร้าง clap การปรับเทียบจากระยะไกลกว่าพื้นที่ที่คุณสนใจ (เช่นเพื่อให้แน่ใจว่าเป็นคลื่นแบบธรรมดา)

หากเป็นไปไม่ได้คุณจะต้องพิจารณาตำแหน่งของเสียงดังเปรี้ยง ในกรณีนี้ขั้นตอนที่ง่ายที่สุดคือการแก้ไขความล่าช้าโดยการข้ามสหสัมพันธ์ตามที่อธิบายไว้ แต่จากนั้นเพิ่มความโค้งของคลื่นกลับเข้าสู่สัญญาณโดยการใช้ชุด "inverse beamforming" ความล่าช้าที่คำนวณโดยตำแหน่งของต้นกำเนิดของ ตบมือ (เช่นถ้าคุณใช้ตัวแปรความลึก + t0 (หรือ + z0) ในอัลกอริทึมการแปลงแสงแบบ "ปกติ" ของคุณคุณต้องใช้ -t0 (หรือ -z0) สำหรับอัลกอริทึมการแปลงลำแสงผกผัน)

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


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

ที่จริงผมได้สร้างขึ้นในแล็ปท็อปของฉันอาร์เรย์ไมโครโฟนผมคิดว่าเป็นเพียงสองไมโครโฟน แต่มันอาจจะเป็นจุดเริ่มต้น แต่ฉันมีความคิดวิธีการเข้าถึงข้อมูลจริงของพวกเขาที่มีความยุ่งยากน้อยที่สุดแยกไม่ ...
สเปซีย์

@Mohammad - ปัญหาไม่ได้ชดเชยที่รู้จักกันในเวลาที่เกิดความล่าช้าก็ชดเชยที่ไม่รู้จักเวลาที่ล่าช้า โดยทั่วไปจะมีเวลาในการประมวลผลสำหรับแต่ละการ์ดเสียง USB แยกต่างหากและอาจแตกต่างกันไปตามอุปกรณ์ (ในกรณีที่สามารถชดเชยได้) หรือแม้กระทั่งไม่คงที่ / เปลี่ยนแปลงขึ้นอยู่กับการโหลดบัส USB
Connor Wolf

@Mammammad What FakeName กล่าวว่า ... เพื่อให้สิ่งต่าง ๆ ชัดเจนยิ่งขึ้น: ฐานเวลาสำหรับการสร้างภาพลำแสงใด ๆ จะต้องดีกว่าช่วงครึ่งเวลาขององค์ประกอบความถี่สูงสุดที่คุณต้องการพิจารณา ฉันเชื่อว่ามันเป็นไปไม่ได้ที่จะทำสิ่งนี้ให้สำเร็จด้วยการ์ดเสียงแยกโดยเริ่มจากการบันทึกในเวลาเดียวกัน สิ่งที่แตกต่างกันถ้าคุณมีการ์ดเสียงเดียวที่มีหลายช่อง
ARF

@ArikRaffaelFunke ฉันเห็นสิ่งที่คุณหมายถึงเกี่ยวกับการสอบเทียบฉันเข้าใจผิดคำสั่งของคุณ อย่างไรก็ตามฉันไม่เห็นว่าจะสามารถลบการหน่วงเวลาออกจากฐานเวลาผิดปกติได้อย่างไรโดยไม่ลบการหน่วงเวลาออกจากช่องสัญญาณโดยไม่ตั้งใจ (ซึ่งคุณต้องการเก็บไว้) วิธีเดียวคือให้แน่ใจว่าระยะห่างของแต่ละไมค์จาก clap นั้นเท่ากัน แต่นั่นเป็นไปไม่ได้สำหรับ linear array> 2 บางทีถ้าไกลพอ
Spacey
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.