linux arecord: mikrofon girişi yerine ses kartı çıkışını yakalama


20

Ses kartı çıkışını yakalamaya ve aşağıdaki komutu kullanarak Vorbis ogg formatında kodlamaya çalışıyorum:

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

Ancak, ses kartı çıkışı yerine bilgisayarın mikrofon girişi kaydedilir.

Komutunun çıktısı arecord -lolan

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

Komutun çıktısı arecord -Lbu macun girdisinde bulunur .

arecordAdam sayfa giriş cihazı kullanılarak seçilebilir olduğunu gösterir -Dbayrak, ancak hiçbir sözdizimsel örnekler verilmektedir.

Girişin arecordmikrofondan ses kartına nasıl değiştirileceğini bilmek istiyorum . Audacity gibi GUI tabanlı alternatiflerle ilgilenmiyorum. Teşekkürler.

Düzenleme: arecordSürüm 1.0.25, vorbis-toolssürüm 1.4.0 ve ALSA sürücü sürüm 1.0.24 ile Debian 7.0 (kararlı) çalıştırıyorum .


Donanımınızın, çıkışı yakalama aygıtına yönlendirmek için bazı mikser kontrolü var mı?
CL.

@CL. Fark ettiğim tek önceden kurulmuş mikser alsamixer. alsamixer(Ses kartı seçmek için F6 tuşu) içinde geri döngü kartını seçersem, mesajı alırım This sound device does not have any controls. Mikserden çıkıp dönersem, ses kartının geri döngüden varsayılan karta geri yüklendiğini görüyorum. Seçtikten sonra işlemi askıya alma ( ctrl-z) ve arka plan ( bg) alsamixerişlemini denemek loopback, arecordkomut aracılığıyla sesin başarılı bir şekilde kaydedilmesini sağlamaz .
user001

Kart seçimi alsamixersistemin geri kalanını etkilemez; sadece hangi kontrollerin gösterileceğini değiştirir. Conexant cihazının kayıt seçim kontrolleri nelerdir?
CL.

@CL. Conexant cihazımda, içinde bir oynatma kontrolü ( Master) ve bir yakalama kontrolü ( Capture) var alsamixer. Yakalama, içindeki boşluk çubuğu ile açılıp kapatılabilir alsamixerve varsayılan olarak açıktır. İstediğiniz bu değilse lütfen bize bildirin. Teşekkürler.
user001

Yanıtlar:


6

ALSA geri döngü sürücüsünü kullanmanızı öneririm. Yüklemek için:

sudo modprobe snd-aloop

Bu, çıkışına yeni bir yakalama aygıtı eklemelidir arecord -L.

Bilgisayarınızda yalnızca bir fiziksel ses kartınız varsa, .asoundrcana klasörünüzde aşağıdaki içeriğe sahip bir dosya oluşturarak geri döngü ses kartını tüm uygulamalar için varsayılan yapabilirsiniz :

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

Bu dosya yerinde iken, tüm uygulamalardan gelen ses çıkışları gerçek hoparlörleriniz yerine geri döngü adaptörüne gitmelidir. Sadece arecord komutunda doğru cihazı belirtin ve işiniz bittiğinde, .asoundrcnormale dönmek için dosyayı kaldırın .


Önerileriniz için teşekkürler. Giriş dizinimde oluşturmaya .asoundrcve terminal öykünücüsü oturumunu yeniden başlatmaya rağmen , ses yine de hoparlörlere yönlendiriliyor. arecord -f cd -t raw | oggenc - -r -o file.oggKomut şey kaydeder. Düzenleme arecord -l, öncekiyle aynı listeyi sağlar, ancak card 1: Loopback( devices 0, 1) için her biri 8 alt aygıt ( #0-#7) içeren iki ek satır içerir . Benzer şekilde, arecord -Laşağıdaki üç satır eklendi: sysdefault:CARD=Loopback [newline] Loopback, Loopback PCM [newline] Default Audio Device. Karakter sınırlaması nedeniyle bir sonraki yorumda devam ediyor.
user001

Deneme arecord -f cd -t raw --device=sysdefault | oggenc - -r -o file.ogg, komutun yürütüldüğü süre boyunca boş bir ses dosyası kaydeder (daha önce olduğu gibi mikrofondan ses verisi çekmez ). Maalesef, sysdefaulthem CARD=PCH(ilk satır arecord -L) hem de CARD=Loopbackson satır olarak tanımlandığı için dejenere olmaktadır arecord -L. Sağlayabileceğiniz takip önerileri için teşekkür ederiz.
user001

Geri döngü için oynanır ne sadece kaydetmenize olanak verir onun değil ses kartı çıkışına, oynatma cihazının.
CL.

Üzgünüm cevabım işe yaramadı - kurulumumda çalışıyor. Asoundrc dosyasının bu açıklamasına bir göz atmanızı tavsiye ederim : alsa-project.org/main/index.php/Asoundrc Birkaç şeyi denediğinizde ve biraz daha farklı cihazlarla oynadığınızda eminim çalışmasını sağlayın. Biraz çamur var, ama fiziksel bir 3.5mm-> 3.5mm kablonuz var mı? Öyleyse, kulaklık çıkış jakınızı her zaman mikrofon / hat giriş jakına bağlayabilirsiniz.
beveradb

: Eğer asoundrc ile çalışan alamıyorsanız, bu bağlantıları yardım rakam dışarı daha bilgi verebilir sabi.co.uk/Notes/linuxSoundALSA.html#tasksRecordPlay forum.vectorlinux.com/index.php?topic=7500.0 ise yine de çalıştıramazsınız, ALSA yerine PulseAudio kullanmaya başlayabilirsiniz. Bu cevap PulseAudio kullanarak bunun nasıl yapılacağını açıklar: askubuntu.com/questions/171287/…
beveradb

6

yıllar sonra mücadele devam ediyor ... kayıt cihazının nasıl belirtileceği, bakalım:

➜  ~ 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...  

Cihaz dizesinin biçimi hw:<card>,<device>

cihaz kimliği biçimi


6

Aynı sorunu yaşadım ve burada başka bir çözüm buldum . Ana fikir kullanmaktır pacat. Benim için şu şekilde çalışır:

1) monitör cihazı bulmak:

$ 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) Ses dosyasını yakalayın:

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

3) Dosyayı şuraya dönüştürün wav:

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

Bu kadar!


3
parecBunun yerine kullanabileceğinizi unutmayın pacat --record. Ayrıca kullanımını soxve kullanımını önleyebilirsiniz parec -d <monitor> --file-format=wav output.wav. Kullanılabilir dosya biçimlerini ile listeleyebilirsiniz parec --list-file-formats.
17'de Peque

3

Donanımınız çıktısının alınmasını desteklemiyor; veriler gerçek çalma cihazına girdikten sonra kaybolur.

Donanıma yazılmadan önce ses verilerini çoğaltan bazı yazılımlar kullanmanız gerekir.

PulseAudio kullanmanızı öneririm; burada çıktılarından birini yakalama kaynağı olarak seçebilirsiniz: pavucontrol çıkış izleme


pavucontrolKullanarak kayıt yükledim ve denedim gnome-sound-recorder. Tekrar gnome-sound-recorderkayıt yapmaya başladığımda ( Ctrl-R), akış PulseAudio Ses Kontrolü penceresinde belirir. Ancak akış gerçekte herhangi bir veri kaydetmez (son uzunluk 0:00). Ayrıca, kaydın bir GUI yerine komut satırı üzerinden nasıl gerçekleştirileceğini biliyor musunuz? Teşekkürler .
user001

1
  1. PulseAudio Ses Kontrolü -> Giriş Aygıtları Sekmesine gidin. Altta, "TÜM giriş aygıtları" nı göstermeyi seçin. "Dahili Ses Analog Stereo Monitörünün" sesinin kapatılmadığını ve ses çalınırken ses düzeyinin yükselip düşmediğini kontrol edin !!

  2. Ses Kaynağı = Dahili Ses Analog Stereo (Ses Girişi) kaydetmek için Ses Kaydedici'yi kullanın . Aşağıdaki ekran görüntüsüne bakın.

resim açıklamasını buraya girin


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.