การสร้างไมโครโฟนเสมือน


13

ฉันใช้งานเซิร์ฟเวอร์ CentOS ที่เปิดใช้งาน VNC และบริการบางอย่างจำเป็นต้องใช้ไมโครโฟนเพื่อทำงานอย่างถูกต้อง แต่ไม่จำเป็นต้องใช้สำหรับการบันทึกเพียงแค่อุปกรณ์ไมโครโฟนที่มีอยู่ ดังนั้นฉันจึงสงสัยว่าฉันจะสามารถสร้างอุปกรณ์บันทึกเสมือนที่สามารถใช้เป็นไมโครโฟนได้หรือไม่ แต่ไม่จำเป็นต้องใส่เสียงใด ๆ ฉันเรียกใช้เครื่องมือ alsa แต่การทำmodprobe sound-aloopบอกว่าการดำเนินการไม่ได้รับอนุญาต


อะไรจากที่นี่: alsa-project.org/main/index.php/Matrix:Module-aloop ใช้งานได้?
IBr

มีการรองรับการ์ดเสียงจำลองในเคอร์เนล Linux จะช่วยได้ไหม
lgeorget

@IBr กำลังmodinfo snd-aloopพิมพ์ข้อมูลที่เกี่ยวข้องกับโมดูลในขณะที่modprobe snd-aloopไม่ทำงานให้ข้อความนี้: Error inserting snd_aloop (/lib/modules/2.6.32-042stab079.5/kernel/sound/ drivers/snd-aloop.ko): Operation not permittedฉันได้สร้าง alsa-driver ที่เหมาะสมสำหรับเคอร์เนลของฉันทำการติดตั้งและคัดลอกโมดูลไปยัง/ lib / modules / uname -r/ kernel / sound / ไดรเวอร์ /และได้รับข้อความดังกล่าวข้างต้นหลังจากที่พยายามmodprobeข้อความ .Same สำหรับsnd-page-alloc.ko, snd-timer.koและsnd-pcm.koเช่นกัน ฉันไม่รู้ว่าจะทำอย่างไรต่อไป แต่ขอขอบคุณสำหรับความช่วยเหลือของคุณ!
Giovanni Mounir

2
หากคุณมีการ์ดเสียงดัมมี่ (ลองทำmodprobe snd-dummy) คุณมีทั้งเอาต์พุตเอาท์พุตและอินพุต ลิงก์เหล่านี้อาจช่วยได้: raspberrypi.org/forums/viewtopic.php?&t=42285 , alsa-project.org/main/index.php/ …
lgeorget

1
@krowe Nope ไม่ทำงานเพราะฉันไม่สามารถเข้าถึงทรัพยากรเซิร์ฟเวอร์ทางกายภาพได้ ฮ่าฮ่า อย่างไรก็ตามฉันคิดว่า @lgeorget ถูกต้องฉันลองใช้เครื่อง Xen ด้วยmodprobe snd-dummyและมันก็ใช้ได้! สิ่งทั้งหมดเกี่ยวกับประเภทการจำลองเสมือนคุณจะต้องมีสิทธิ์ในการโหลดโมดูลของคุณเองเพื่อให้ทำงานได้และ OpenVZ ไม่อนุญาตสิ่งนี้
Giovanni Mounir

คำตอบ:


3

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

ฉันต้องทำเช่นนี้เพราะฉันกำลังทดสอบบางสิ่งในที่ทำงานที่เกี่ยวข้องกับเซิร์ฟเวอร์ Asterisk ที่เรียก softphone ที่ทำงานบนกล่อง Linux ของฉันและมันต้องการให้ฉันบันทึกเสียงเตือนแล้ววางสาย คอมพิวเตอร์เครื่องนี้ไม่ได้ติดตั้งไมโครโฟนดังนั้นฉันจึงเริ่มหาวิธีปลอมอินพุตไมโครโฟนและทำให้มันบันทึกเป็น MP3 หรืออะไรทำนองนั้นแทน

รับได้ที่นี่ [git clone http://anongit.freedesktop.org/git/pulseaudio/pulseaudio.git]

หากระบบของคุณใช้ PulseAudio (ทุกการแจกจ่าย Fedora และ Ubuntu ล่าสุด) จะทำตามขั้นตอนดังนี้:

1) เปิดการควบคุมระดับเสียงของ PulseAudio

นี่คือ pavucontrol บนบรรทัดคำสั่งและใน Fedora มีให้โดยแพ็คเกจ pavucontrol

ไปที่แท็บ "อุปกรณ์อินพุต" และเลือก "แสดง: จอภาพ" จากด้านล่างของหน้าต่าง หากคอมพิวเตอร์ของคุณกำลังเล่นเสียงอยู่คุณควรเห็นแถบที่แสดงระดับเสียงของเอาต์พุต:

แท็บ "อุปกรณ์อินพุต" แสดงจอภาพ

2) เริ่มเรียกใช้แอพที่กำลังบันทึกเสียงและไปที่แท็บ "การบันทึก" และดูว่าแอปของคุณอยู่ในรายการหรือไม่

ในภาพหน้าจอนี้ฉันใช้ความกล้าและบันทึกเสียง

3) คลิกปุ่มอุปกรณ์อินพุต ("ALSA Capture from") และเลือก "Monitor of Internal Audio Analog Stereo") แท็บ "อุปกรณ์อินพุต" แสดงจอภาพ

และนั่นมันสวยมาก หากคุณเห็นแถบระดับเสียงบนแท็บการบันทึกในตอนนี้อาจเป็นไปได้ว่าแอพการบันทึกกำลังบันทึกเอาต์พุตเสียงของคุณ

นี่คือภาพหน้าจอเดสก์ท็อปเต็มรูปแบบของฉันที่ทำงานอยู่play audiodump.wav(การแปลง WMA-to-WAV ของ Windows XP Welcome Music) ในเทอร์มินัล, PulseAudio Volume Control ทำงานและการบันทึก Audacity จากไมโครโฟน

Audio Out to Mic In

ป้อนคำอธิบายรูปภาพที่นี่


ปัญหาคือว่าโปรแกรมจะไม่เริ่มทำงานเว้นแต่ฉันจะใส่ไมโครโฟน แต่ขอขอบคุณสำหรับคำแนะนำ! ฉันแน่ใจว่ามันจะช่วยให้มีมากมายที่พยายามใช้สิ่งที่เรารู้ "Stereo Mix" บน Windows!
Giovanni Mounir
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.