ไมโครโฟน USB Raspberry Pi


11

ฉันใช้ Raspberry Pi 3 สิ่งที่ฉันพยายามทำคือทดสอบไมโครโฟน USB ของฉัน ฉันพิมพ์ครั้งแรกlsusbเพื่อดูว่าราสเบอร์รี่ pi ตรวจพบอุปกรณ์ของฉัน มันทำและผลลัพธ์คือ:

BUS 001 อุปกรณ์ oo8: ID 0d8c: 013c C-Media Electronics, Inc. CM108 Audio Controller

ฉันพิมพ์คำสั่งalsamixerเพื่อเลือกอุปกรณ์ของฉันและเพิ่มระดับเสียง หลังจากนั้นฉันพิมพ์คำสั่งarecord -lเพื่อรับรายการของอุปกรณ์ฮาร์ดแวร์จับ:

  • การ์ด 1: อุปกรณ์ [อุปกรณ์เสียง PnP USB],
  • อุปกรณ์ 0: เสียง USB [เสียง USB]
  • Subdevices: 1/1 Subdevice # 0: subdevice # 0 "

ฉันเห็นว่าไมโครโฟนกำลังบันทึกเสียง แต่ไม่ได้ยินเมื่อเสียบหูฟัง


ลองใช้คำสั่งนี้เพื่อบันทึกเสียงของคุณเป็นไฟล์จากนั้นเล่นซ้ำในภายหลัง:arecord -f cd -D plughw:0 -d 10 a.wav
Mohammad Ali

สิ่งนี้อาจช่วยได้อย่างไร
Sparhawk

สิ่งนี้ได้ช่วยแก้ปัญหาเดียวกันสำหรับฉัน: ฉันใช้แหล่งจ่ายไฟแบบสวิตชิ่งมาตรฐาน (5V, 2.4A) จากนั้นเปลี่ยนเป็นแหล่งจ่ายแบบกำหนดเองโดยใช้ LM350 ที่มีแคปที่ 5V ฉันไม่มี PWM hooey บนหมุดใด ๆ ก่อนและหลัง ตอนนี้มีเพียงเสียงใส ๆ บน 'การ์ดเสียง' USB ทั้งหมดของฉันแม้กระทั่งเสียงภาษาจีนที่ถูกที่สุด ฉันแน่ใจว่าตัวควบคุมเชิงเส้นสร้างความแตกต่าง
user2497

คำตอบ:


2

ฉันยังประสบกับปัญหานี้เมื่อไม่นานมานี้ดังนั้นฉันจึงโพสต์สองวิธีที่เหมาะกับฉัน

ทางออกแรกคือถ้าคุณต้องการสตรีมเสียงเท่านั้น

  • ขั้นตอนที่ 1: การติดตั้ง ffmpeg
    ห้ามใช้แพ็กเกจ ffmpeg จากที่เก็บ Raspbian apt-get ตามที่ระบุว่าเป็นแพ็กเกจที่ล้าสมัย

ทางที่ถูก:

cd /usr/src
sudo git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
  • ขั้นตอนที่ 2: รวบรวม ffmpeg

ตอนนี้

sudo ./configure && sudo make && sudo make install

หยุดพักมันจะใช้เวลาพอสมควร!

  • ขั้นตอนที่ 3: เริ่มการบันทึก

คุณสามารถใช้ตัวแปลงสัญญาณอื่น ๆ ได้ฉันใช้ mp2 เพราะมันช่วยลดการใช้ซีพียูในปริมาณที่เหมาะสม

arecord -f cd -D plughw:1,0 | ffmpeg -re -i - -acodec mp2 -ab 32k -ac 1 -f rtp rtp://224.1.2.3:7000

หมายเหตุ : ที่อยู่ IP นี้เป็นที่อยู่แบบหลายผู้รับ ([224-239] .xyz) ดังนั้นอย่ากำหนดเป้าหมายเป็นอุปกรณ์เครือข่ายเฉพาะบน LAN ของคุณ

  • ขั้นตอนที่ 4: การฟังผลลัพธ์

เปิด Vlc บนคอมพิวเตอร์ที่เชื่อมต่อกับเครือข่ายเดียวกัน

ไปที่สื่อ -> เครือข่ายสตรีม -> ป้อน ip ที่นี่ rtp: //224.1.2.3: 7000

วิธีที่สองคือถ้าคุณต้องการบันทึกเสียงและวิดีโอในเวลาเดียวกัน

  • ทำตามขั้นตอนที่ 1 และ 2 (อย่าลืมว่าอยู่ในไดเรกทอรีที่ถูกต้อง)
  • ขั้นตอนที่ 3: เริ่มการบันทึก

สิ่งนี้เปลี่ยนไปเมื่อ ffmpeg ให้การสตรีมมัลติมีเดียเต็มรูปแบบ

ffmpeg -f alsa -ac 1 -i hw:1 -ar 44100 -f mpegts udp://10.10.0.96:1234
  • ขั้นตอนที่ 4: การฟังผลลัพธ์

เปิด Vlc บนคอมพิวเตอร์ที่เชื่อมต่อกับเครือข่ายเดียวกัน

ไปที่สื่อ -> สตรีมเครือข่าย -> ป้อน IP ที่นี่ udp: // @: 1234


0

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


0

มีการ์ดเสียงบางตัวที่มีอินพุตเสียงและเอาต์พุตอยู่ หากคุณต้องการได้ยินสิ่งที่มาจากอินพุตเสียงและบันทึกในเวลาเดียวกันมีตัวเลือกน้อยเช่น;

  • ใช้การ์ดเสียงที่ช่วยให้คุณสามารถบันทึก (อาจมีไมโครโฟนในตัว) และเปิดใช้งานตัวเลือกบายพาสเพื่อฟังสิ่งที่อินพุตโดยตรงโดยตรงในขณะที่บันทึกในเวลาเดียวกัน ตัวเลือกนี้ปกติจะเรียกว่า 'บายพาส' และสามารถเปิดใช้งานได้โดยใช้ alsamixer รายการที่ครอบคลุมไม่ใช่ GPIO การ์ดเสียงตามมีอยู่ที่นี่ ตัวเลือกนี้จะดีที่สุดถ้าคุณต้องการเวลาแฝงที่ต่ำมากนั่นคือฟังสิ่งที่คุณบันทึกผ่านหูฟังที่มีความล่าช้าใกล้เคียงกับศูนย์

  • นอกจากนี้คุณยังสามารถลองใช้วิธีการทำต่อประสานกับไฟล์และทำรหัสต่อไป | คำสั่ง aplay จากอุปกรณ์เดียวกัน ปลั๊กอินอุปกรณ์ dmix alsa ช่วยให้คุณสามารถบันทึกจากอุปกรณ์ที่มีการใช้งานแล้ว ปัญหาเกี่ยวกับวิธีการนี้คือจะมีความล่าช้า (3 ถึง 6 ms) โดยเฉพาะอย่างยิ่งกับการ์ดเสียง USB อาจต่ำกว่ามากเมื่อใช้การ์ดเสียงที่ใช้หัวต่อ GPIO นี่เป็นเรื่องที่ทำได้ยากมากหากคุณพยายามที่จะแสดงและฟังในเวลาเดียวกัน

ด้าน

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