Ich habe Probleme mit meinem Audio. Wenn ich Audio aufnehme, nehme ich Wiedergabeton auf, es sei denn, ich habe das richtige Gerät angegeben (siehe unten). Anstatt mein USB-Mikrofon aufzunehmen, wird der Ton, der über meine Kopfhörer wiedergegeben wird, aufgenommen.
Ich bin mir nicht sicher, was passiert und wie ich es beheben kann. Ich verwende ALSA und Pulseaudio, und meine asound.conf ist die von Pulseaudio generierte Standardkonfiguration. Ausgabe von cat /proc/asound/cards
:
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xf7910000 irq 29
1 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xf7080000 irq 17
2 [C01U ]: USB-Audio - Samson C01U
Samson Technologies Samson C01U at usb-0000:00:14.0-9, full speed
Ausgabe von amixer -c0 contents
: https://pastebin.com/cyERFpPk
Um beim Testen meines Mikrofons Ton aufzunehmen, habe Samson C01U:USB Audio (hw:2,0): Front Mic:0
ich Audacity mit dem Aufnahmegerät auf und mit einem Kabel verwendet arecord -d 2 -D hw:2,0 -f cd test.wav
. Beide nehmen den Ton von meinem Mikrofon auf. Bei der Wiedergabe des Tons von arecord
wird er jedoch nur über die linke Seite meines Kopfhörers wiedergegeben.
Mir ist auch ein anderes Problem aufgefallen. Überstunden (vor allem, wenn ich mit meinen Audiopegeln herumspiele) Ich fange an, beim Hören von Audio etwas Statisches zu hören. Manchmal ist es sehr schwach und manchmal sehr laut. Das ist mir noch nie passiert. Ich kann dieses Problem beheben, indem ich pulseaudio neu starte, aber es ist ärgerlich, dies zu tun.
Meine /etc/asound.conf
: https://pastebin.com/2XSEhfHb . Ich habe keine ~/.asoundrc
.
quelle
alsamixer
oderamixer
).cat /proc/asound/cards
(2) Identifizieren Sie die Kartennummer in der obigen Ausgabe mit Ihren Kopfhörern42
, speichern Sie die Ausgabeamixer -c42 contents
in einem Pastebin und bearbeiten Sie die Frage mit Link. (3) Beschreiben Sie Schritt für Schritt, wie Sie den Ton aufnehmen ("Ich verwendeaudacity
, wenn das Aufnahmegerät auf XXX eingestellt ist" oder "Ich machearecord -d hw:0 ...
" usw.).arecord -d 2 test.wav
ohne Angabe des Geräts verwende, zeichnet er Wiedergabeton auf. Dies gilt auch für Zwietracht, denn wenn ich die Sprachkanäle verwende, hört jeder nur meinen Wiedergabeton. Wenn ich das Gerät angeben kann, funktioniert es, aber wenn ich mein Standardgerät verwende, wird mein Wiedergabeton aufgezeichnet. Ich möchte dieses Problem beheben, damit mein Standardgerät mein USB-Mikrofon und nicht mein Wiedergabeton ist.Antworten:
Ok, kurzer Überblick, wie das Zeug funktioniert.
Ihre Intel HDA-Soundkarte verfügt über eine digitale Verbindung zu einem "Codec" -Chip, der die D / A- und A / D-Wandler, Analogmixer, Analogverstärker und Analogschalter enthält. ALSA hat Kerneltreiber für die Soundkarten und weist die Mixer-Elemente zu, die Sie sehen können
amixer
, um einige (aber nicht alle) Dinge im Codec zu steuern.Sie können ALSA mit "Plugins" über das gesamte System
/etc/asound.conf
oder pro Benutzer konfigurieren~/.asoundrc
.Pulseaudio läuft auf ALSA und bietet Anwendungen einen einheitlichen Audiotransportmechanismus. Es kümmert sich um die Abtastratenumwandlung usw., was die Verwendung von Pulseaudio (im Prinzip) wesentlich angenehmer macht als bei ALSA. In der Standardkonfiguration bietet Pulseaudio älteren ALSA-Anwendungen eine Kompatibilitätsebene mit Einträgen wie
Diese stellen die ALSA-Standardeingabe und -ausgabe so ein, dass ALSA-Anwendungen wie Pulseaudio-Anwendungen behandelt werden. Wenn Sie also
arecord
oderaudacity
(aber ALSA-Anwendungen) mit der Standard-ALSA-Eingabe verwenden, verwenden Sie tatsächlich Pulseaudio (Sie können auch verwenden,parecord
um direkt auf Pulseaudio zuzugreifen). Wenn Sie jedoch auswählenhw:XXX
, nehmen Sie direkt von den ALSA-Treibern auf.Pulseaudio hat ein eigenes (sehr flexibles) Konzept für Audioquellen und -senken. Sie können sehen (und ändern), welche Anwendungen mit welchen Quellen und Senken verbunden sind
pavucontrol
(und auf vielen Desktop-Umgebungen und ähnlichen Desktop-Panels).Wenn Sie also mit laufen
arecord
und zuschauenpavucontrol
, sollte die Quelle der Intel HDA-Soundkarte (normalerweise "Built-in Audio Analog Stereo") angezeigt und aufgezeichnet werden.Warum wird der Ton aufgezeichnet, der gleichzeitig wiedergegeben wird? Man müsste sich den Codec genauer ansehen (das können Sie mit
cat /proc/asound/card*/codec\#*
), aber es gibt ein Mixer-Steuerelement namens "Loopback-Mischen" in Ihreramixer
Ausgabe, und es ist aktiviert. Ich vermute, Ihr Codec enthält eine Funktion, mit der Sie den aktuell ausgegebenen Ton aufzeichnen können. Deaktivieren Sie es inalsamixer
und prüfen Sie , ob sich etwas ändert.Wie richte ich es so ein, dass es automatisch vom Samson USB-Mikrofon aufzeichnet? Sie können die Standardeinstellungen in ALSA konfigurieren. Wenn Sie jedoch Pulseaudio beibehalten möchten, sollten Sie stattdessen Pulseaudio konfigurieren. Sie können Audioquellen pro Anwendung auswählen,
pavucontrol
wenn die Anwendung ausgeführt wird, und Pulseaudio speichert die Einstellungen. Sie können die Standard-Audioquelle auch festlegen, indem Sie auf der Registerkarte Eingabe auf "Als Fallback festlegen" klicken oder inpacmd set-default-source my_source
der Befehlszeile verwenden.pacmd list-sources | grep name:
Sie erhalten eine Liste der verfügbaren Quellen. Löschen Sie die eckigen Klammern, wenn Sie den Quellnamen in der Befehlszeile verwenden.Bearbeiten
Jeder Pulseaudio-Senke ist eine
.monitor
Quelle zugeordnet. Was also passiert ist, dass Pulseaudio aus irgendeinem Grund keinen ALSA-Eingang bekommen kann, so dass es keine entsprechenden Quellen erzeugen kann. Die einzige Quelle, die übrig bleibt, ist die.monitor
Quelle, die den aktuell wiedergegebenen Sound ausgibt. Also keine interne Schleife im Codec (obwohl dies eine andere Möglichkeit ist, aktuell wiedergegebenen Ton aufzunehmen).Das heißt, Sie müssen debuggen, warum Pulseaudio keine Quellen entsprechend den ALSA-Eingaben erstellen kann, obwohl es eine
dmix
Senke erstellt, die es auch nicht sollte - das sollte eine Hardware-Senke sein.Bitte geben Sie das
/etc/asound.conf
und~/.asoundrc
als ersten Schritt. Gibt es vor dem Start von Pulseaudio bereits Programme, die ALSA direkt verwenden und verhindern, dass Pulseaudio die Hardware-Ein- / Ausgänge verwendet?quelle
amixer
"Loopback-Mischen" geöffnet und ausgeschaltet, mein Wiedergabeton wurde jedoch noch aufgezeichnet. Hier ist die Ausgabe voncat /proc/asound/card*/codec\#*
: pastebin.com/4t4B33kD . Ich öffnete auchpavucontrol
und es zeigt nur ein Eingabegerät, "Monitor of Built-in Audio".pacmd list-sources | grep name:
gibt auch nur eine Quelle aus: "name: <alsa_output.dmix.monitor>". Ich kann mein Eingabegerät / die Eingangsquelle nicht auf mein Mikrofon umstellen.lsof | grep /dev/snd
, dass alle Prozesse mit/dev/snd/pcm*
(Active I / O) oder (Active I / O) angezeigt werden sollen/dev/snd/control*
.lsof | grep /dev/sdn
: pastebin.com/ehfuku91Behebt, dass mein Wiedergabeton durch Entfernen von pulseaudio aufgezeichnet wird
quelle