লিনাক্স আরকর্ড: মাইক্রোফোন ইনপুটের চেয়ে সাউন্ড কার্ড আউটপুট ক্যাপচার করে


20

আমি সাউন্ড কার্ড আউটপুট ক্যাপচার করার চেষ্টা করছি এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে এটি ভারবিস ওগ ফর্ম্যাটে এনকোড করব:

arecord -f cd -t raw | oggenc - -r -o file.ogg

তবে কম্পিউটারের মাইক্রোফোন ইনপুটটি সাউন্ড কার্ড আউটপুটের চেয়ে রেকর্ড করা আছে।

কমান্ডের আউটপুট arecord -lহয়

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

কমান্ডের আউটপুট arecord -Lএই পেস্টবিন এন্ট্রিতে রয়েছে

arecordMan পৃষ্ঠা নির্দেশ করে যে ইনপুট ডিভাইস ব্যবহার করে নির্বাচন করা যাবে -Dপতাকা, কিন্তু কোন সিনট্যাক্স উদাহরণ দেয়।

আমি arecordমাইক্রোফোন থেকে সাউন্ড কার্ডে কীভাবে ইনপুট পরিবর্তন করতে হয় তা জানতে চাই । আমি জিডিআই-ভিত্তিক বিকল্প যেমন অডেসিটিতে আগ্রহী নই। ধন্যবাদ।

সম্পাদনা করুন: আমি arecord1.0.25 vorbis-toolsসংস্করণ, 1.4.0 সংস্করণ এবং ALSA ড্রাইভার সংস্করণ 1.0.24 সহ ডেবিয়ান 7.0 (স্থিতিশীল) চালাচ্ছি।


আউটপুটটিকে ক্যাপচার ডিভাইসে ফিরে যাওয়ার জন্য কি আপনার হার্ডওয়ারের কিছু মিশ্রকের নিয়ন্ত্রণ রয়েছে?
সিএল

@CL। আমি আগে থেকে ইনস্টল করা একমাত্র মিক্সার alsamixer। যদি আমি মধ্যে লুপব্যাক কার্ড নির্বাচন করুন alsamixer(সাউন্ড কার্ড নির্বাচন করার জন্য F6 চাপুন চাবি), আমি বার্তা This sound device does not have any controls। আমি যদি মিক্সার থেকে প্রস্থান করে ফিরে আসি তবে আমি দেখতে পেলাম যে সাউন্ড কার্ডটি লুপব্যাক থেকে ডিফল্ট কার্ডে পুনরুদ্ধার করা হয়েছে। নির্বাচন করার পরে ( ctrl-z) এবং পটভূমি ( bg) alsamixerপ্রক্রিয়া স্থগিত করার চেষ্টা কমান্ডের loopbackমাধ্যমে অডিওর সফল রেকর্ডিং সক্ষম করে না arecord
ব্যবহারকারী001

কার্ডের নির্বাচন alsamixerসিস্টেমের বাকী অংশগুলিকে প্রভাবিত করে না; এটি কেবল পরিবর্তনগুলি দেখায় যা নিয়ন্ত্রণগুলি প্রদর্শিত হয়। কনক্স্যান্ট ডিভাইসের রেকর্ডিং নির্বাচন নিয়ন্ত্রণগুলি কী কী?
সিএল

@CL। আমার কনক্স্যান্ট ডিভাইসের জন্য আমার মধ্যে একটি প্লেব্যাক নিয়ন্ত্রণ ( Master) এবং একটি ক্যাপচার নিয়ন্ত্রণ ( Capture) রয়েছে alsamixer। ক্যাপচারটি স্পেসবারের মধ্যে alsamixerএবং এর সাথে টগল করা যায় এবং এটি ডিফল্টরূপে চালু থাকে। আপনার উদ্দেশ্যটি যদি এটি না হয় তবে দয়া করে আমাকে জানান। ধন্যবাদ।
ব্যবহারকারী001

উত্তর:


6

আমি ALSA লুপব্যাক ড্রাইভার ব্যবহার করার পরামর্শ দেব। এটি লোড করতে:

sudo modprobe snd-aloop

এটি থেকে আউটপুটটিতে একটি নতুন ক্যাপচার ডিভাইস যুক্ত করা উচিত arecord -L

আপনার কম্পিউটারে যদি কেবলমাত্র একটি শারীরিক সাউন্ডকার্ড থাকে .asoundrcতবে নীচের বিষয়বস্তু দিয়ে আপনার হোম ফোল্ডারে একটি ফাইল তৈরি করে আপনি লুপব্যাক সাউন্ডকার্ডকে সমস্ত অ্যাপ্লিকেশনের জন্য ডিফল্ট করতে পারেন :

pcm.!default {
    type hw
    card 1
    device 0
}

এই ফাইলটি স্থানে থাকা অবস্থায়, সমস্ত অ্যাপ্লিকেশন থেকে যে কোনও শব্দ আউটপুট আপনার প্রকৃত স্পিকারের পরিবর্তে লুপব্যাক অ্যাডাপ্টারে যেতে হবে। আপনার আরকর্ড কমান্ডে কেবল সঠিক ডিভাইসটি নির্দিষ্ট করুন এবং আপনার কাজ শেষ হয়ে গেলে, .asoundrcস্বাভাবিক অবস্থায় ফিরে যাওয়ার জন্য ফাইলটি সরিয়ে দিন ।


আপনার পরামর্শের জন্য ধন্যবাদ। .asoundrcআমার হোম ডিরেক্টরি তৈরি করে এবং টার্মিনাল এমুলেটর সেশনটি পুনরায় চালু করা সত্ত্বেও , অডিও এখনও স্পিকারদের কাছে নির্দেশিত। arecord -f cd -t raw | oggenc - -r -o file.oggকমান্ড কিছুই রেকর্ড করে। ইস্যু করা পূর্বের arecord -lমতো একই তালিকা সরবরাহ করে তবে card 1: Loopback( devices 0, 1) এর জন্য দুটি অতিরিক্ত লাইন রয়েছে , প্রতিটিতে 8 টি সাব-ডিভাইস ( #0-#7) রয়েছে। অনুরূপভাবে, arecord -Lনিম্নলিখিত তিনটি লাইন যোগ করেছেন: sysdefault:CARD=Loopback [newline] Loopback, Loopback PCM [newline] Default Audio Device। চরিত্র সীমাবদ্ধতার কারণে পরবর্তী মন্তব্যে অবিরত।
ব্যবহারকারী001

Attemping arecord -f cd -t raw --device=sysdefault | oggenc - -r -o file.oggরেকর্ড সময়কাল কমান্ড এক্সিকিউট করা হয় জন্য একটি ফাঁকা অডিও ফাইল (এটা আগের মতই মাইক্রোফোন থেকে অডিও ডেটা আঁকা না)। দুর্ভাগ্যক্রমে, sysdefaultঅধঃপতিত হওয়ায় এটি উভয় CARD=PCH(প্রথম লাইনের arecord -L) এবং CARD=Loopback(শেষ রেখার arecord -L) সংজ্ঞা দেওয়া হয়েছে। আপনি সরবরাহ করতে সক্ষম কোনও ফলো-আপ পরামর্শের জন্য ধন্যবাদ।
ব্যবহারকারী001

লুপব্যাকটি কেবল তার প্লেব্যাক ডিভাইসে যা খেলছে তা রেকর্ড করতে দেয় , সাউন্ড কার্ড আউটপুটকে নয়।
সিএল

দুঃখিত, আমার উত্তরটি কার্যকর হয়নি - এটি আমার সেটআপে কাজ করে। আমি সাউন্ডসিআরসি ফাইলটির এই ব্যাখ্যাটি একবার দেখার পরামর্শ দিচ্ছি : alsa-project.org/main/index.php/Asoundrc আমি নিশ্চিত আপনি যদি কিছু জিনিস চেষ্টা করেন এবং বিভিন্ন ডিভাইসগুলি নিয়ে আরও কিছুটা খেলেন তবে আপনার আরও কিছুটা উচিত এটি কাজ পেতে। কিছুটা কুলডেজ, তবে আপনার কি কোনও শারীরিক 3.5 মিমি-> 3.5 মিমি কেবল রয়েছে? যদি তা হয় তবে আপনি সর্বদা আপনার হেডফোন আউটপুট জ্যাকটিকে জ্যাকের মাইক / লাইনের সাথে সংযুক্ত করতে পারেন।
beveradb

: আপনি কি এটিকে asoundrc না কাজ করতে পারেন, এই লিঙ্ক সাহায্যের চিত্রে এটি আরো তথ্য প্রদান করতে পারে sabi.co.uk/Notes/linuxSoundALSA.html#tasksRecordPlay forum.vectorlinux.com/index.php?topic=7500.0 তাহলে আপনি এখনও এটি কাজ করতে পারবেন না, আপনি ALSA এর পরিবর্তে পালস অডিও ব্যবহার করতে পারবেন। এই উত্তরটি پل

6

বছর পরে সংগ্রাম অব্যাহত রয়েছে ... রেকর্ডিং ডিভাইস কীভাবে নির্দিষ্ট করা যায়, দেখুন এবং দেখুন:

➜  ~ arecord -l                                                              
**** List of CAPTURE Hardware Devices ****                                   
card 0: PCH [HDA Intel PCH], device 0: CX20590 Analog [CX20590 Analog]       
  Subdevices: 1/1                                                            
  Subdevice #0: subdevice #0                                                 
card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]       
  Subdevices: 1/1                                                            
  Subdevice #0: subdevice #0     

➜  ~ arecord -f S16_LE -r 44100 --device="hw:1,0" plik.wav                   
Recording WAVE 'plik.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono 
^C
Aborted by signal Interrupt...  

সুতরাং ডিভাইস স্ট্রিং জন্য বিন্যাস হয় hw:<card>,<device>

ডিভাইস আইডি ফর্ম্যাট


6

আমারও একই সমস্যা ছিল এবং আমি এখানে আরও একটি সমাধান খুঁজে পেয়েছি । মূল ধারণাটি ব্যবহার করা pacat। আমার জন্য এটি এটির মতো কাজ করে:

1) মনিটর ডিভাইসটি সন্ধান করুন:

$ pacmd list | grep "\.monitor"
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor>
name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
        alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor/#0: Monitor of HDA NVidia Digital Stereo (HDMI)
        alsa_output.pci-0000_00_1b.0.analog-stereo.monitor/#2: Monitor of Built-in Audio Analog Stereo

2) ফাইল অডিও ক্যাপচার:

$ pacat --record -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor > dump.raw

3) ফাইলটি এতে রূপান্তর করুন wav:

sox -t raw -r 44100 -e signed-integer -L -b 16 -c 2 dump.raw output.wav

এটাই!


3
আপনি parecপরিবর্তে ব্যবহার করতে পারেন নোট করুন pacat --record। আপনি ব্যবহার soxএবং ব্যবহার এড়াতে পারেন parec -d <monitor> --file-format=wav output.wav। এর সাথে উপলভ্য ফাইল ফর্ম্যাটগুলি তালিকাবদ্ধ করতে পারেন parec --list-file-formats
পিক

3

আপনার হার্ডওয়্যার এর আউটপুট ক্যাপচার সমর্থন করে না; ডেটা একবারে আসল প্লেব্যাক ডিভাইসে চলে গেলে তা চলে যায়।

আপনার কাছে এমন কিছু সফ্টওয়্যার ব্যবহার করা দরকার যা অডিও ডেটারটিকে হার্ডওয়্যারটিতে লেখার আগে নকল করে।

আমি পালস অডিও ব্যবহার করার পরামর্শ দিই; সেখানে আপনি কেবল ক্যাপচার উত্স হিসাবে এর আউটপুটগুলির একটি নির্বাচন করতে পারেন: প্যাভুকন্ট্রোল আউটপুট পর্যবেক্ষণ


আমি ইনস্টল pavucontrolকরে রেকর্ডিং ব্যবহার করে চেষ্টা করেছি gnome-sound-recorder। আমি যখন খুলি gnome-sound-recorderএবং পুনরায় কোডিং শুরু করি ( Ctrl-R) তখন স্ট্রিমটি পালস অডিও ভলিউম নিয়ন্ত্রণ উইন্ডোতে উপস্থিত হয়। প্রবাহটি আসলে কোনও ডেটা রেকর্ড করে না, তবে (চূড়ান্ত দৈর্ঘ্য 0:00)। এছাড়াও, আপনি কীভাবে জিইউআইয়ের পরিবর্তে কমান্ড লাইনের মাধ্যমে রেকর্ডিং সঞ্চালন করবেন তা সম্পর্কে জানেন? ধন্যবাদ
ব্যবহারকারী001

1
  1. পালস অডিও ভলিউম নিয়ন্ত্রণ -> ইনপুট ডিভাইস ট্যাবে যান। নীচে, "সমস্ত ইনপুট ডিভাইস" দেখানোর জন্য চয়ন করুন। "মনিটর অফ ইন্টারনাল অডিও অ্যানালগ স্টেরিও" নিঃশব্দ না করা হয়েছে এবং আপনি অডিওটি প্লে করার সাথে সাথে ভলিউমটি উপরের দিকে যাচ্ছে কিনা তা পরীক্ষা করুন !!

  2. অডিও উত্স = অভ্যন্তরীণ অডিও অ্যানালগ স্টেরিও (অডিও ইনপুট) রেকর্ড করতে অডিও রেকর্ডার ব্যবহার করুন । নীচে স্ক্রিনশট দেখুন।

এখানে চিত্র বর্ণনা লিখুন


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.