Der Wiedergabeton wird aufgenommen

971
wdhg

Ich habe Probleme mit meinem Audio. Wenn ich Audio aufnehme, nehme ich wiedergegebenes Audio auf, sofern ich nicht das richtige Gerät angegeben habe (siehe unten). Anstatt mein USB-Mikrofon aufzunehmen, wird der Ton, der über meine Kopfhörer abgespielt wird, erfasst.

Ich bin mir nicht sicher, was passiert und wie man es reparieren kann. Ich verwende ALSA und Pulseaudio, und meine asound.conf ist die Standardeinstellung, die von Pulseaudio generiert wird. 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 aufzuzeichnen, habe ich bei eingestellter Aufnahmekomponente Samson C01U:USB Audio (hw:2,0): Front Mic:0und bei der Verwendung von "Ton" mit "Audacity" gearbeitet arecord -d 2 -D hw:2,0 -f cd test.wav. Beide nehmen Ton von meinem Mikrofon auf, aber wenn der Ton von dort wiedergegeben wird arecord, wird er nur durch die linke Seite meines Kopfhörers abgespielt .

Mir ist auch ein anderes Problem aufgefallen. Überstunden (vor allem wenn ich mit meinen Audiopegeln spiele) höre ich beim Hören von Audiodaten etwas statische Signale. Manchmal ist es sehr schwach und manchmal sehr laut. Das ist mir nie passiert. Ich kann dieses Problem beheben, indem Sie pulseaudio neu starten. Dies ist jedoch ärgerlich.

Meine /etc/asound.conf: https://pastebin.com/2XSEhfHb . Ich habe keine ~/.asoundrc.

1
Bitte geben Sie Details zu Ihrer Konfiguration an, wenn Sie ALSA oder Pulseaudio verwenden, und wie genau Sie Sound aufnehmen. Je mehr Details, desto besser; Wie die Frage ist, ist es ein Ratespiel. Mögliche Gründe: Falsches Setup für Tonaufnahme oder Hardware-Loopback von Kopfhörern, um den Aufnahmekanal zu aktivieren (prüfen Sie mit `alsamixer` oder` amixer`). dirkt vor 6 Jahren 0
@dirkt Welche Konfigurationsdetails brauchst du? Ich verstehe Pulseaudio oder ALSA oder deren Konfiguration nicht ganz. Entschuldigen Sie mich bitte, wenn ich nicht genug Informationen gebe. wdhg vor 6 Jahren 0
Bitte: (1) Bearbeiten Sie die Frage mit der Ausgabe von "cat / proc / asound / cards". (2) Identifizieren Sie die Kartennummer in der obigen Ausgabe, die Ihren Kopfhörer enthält, beispielsweise "42". Speichern Sie die Ausgabe von "amixer -c42 contents" ein Pastebin, und bearbeiten Sie die Frage mit Link. (3) Beschreiben Sie Schritt für Schritt, was Sie zum Aufnehmen von Ton tun ("Ich verwende` audacity ", wobei das Aufnahmegerät auf XXX eingestellt ist) oder" Ich mache `arecord -d hw: 0 ...` ", usw. ). dirkt vor 6 Jahren 0
Zur Verdeutlichung: Ihr Problem besteht nicht darin, dass Sie * während * Sie Ton aufnehmen, etwas in Ihrem Kopfhörer hören. Ihr Problem ist, dass Sie den Ton des Samson problemlos aufnehmen können, aber wenn Sie ihn * über die an Ihre Intel Soundkarte angeschlossenen Kopfhörer * abspielen *, hören Sie ihn einfach im linken Ohr, obwohl Sie damit gerechnet haben beide Ohren. Ist das richtig? dirkt vor 6 Jahren 0
Das Problem ist, dass ich beim Aufnehmen von Audio standardmäßig ein Wiedergabeaudio aufnehme, es sei denn, ich habe das richtige Gerät angegeben. Wenn ich den Befehl `arecord -d 2 test.wav` verwende, ohne das Gerät anzugeben, wird das Wiedergabeaudio aufgezeichnet. Dies ist bei Zwietracht dasselbe, wenn ich die Sprachkanäle benutze, die jeder andere nur mein Wiedergabeaudio hört. Wenn ich das Deivce angeben kann, funktioniert es, aber wenn es mein Standardgerät verwendet, wird mein Wiedergabeaudio aufgezeichnet. Ich möchte dies so korrigieren, dass mein Standardgerät mein USB-Mikrofon ist und nicht mein Wiedergabeaudio. wdhg vor 6 Jahren 0

2 Antworten auf die Frage

1
dirkt

Ok, ein kurzer Überblick, wie alles funktioniert.

Ihre Intel HDA-Soundkarte verfügt über eine digitale Verbindung zu einem "Codec" -Chip, der die D / A- und A / D-Wandler, Analogmischer, Analogverstärker und Analogschalter enthält. ALSA verfügt über Kernel-Treiber für die Soundkarten und ordnet die Mixer-Elemente, die Sie sehen können amixer, einige (aber nicht alle) Elemente des Codecs zu.

Sie können ALSA mit "Plugins" über das gesamte System /etc/asound.confoder die einzelnen Benutzer konfigurieren ~/.asoundrc.

Pulseaudio läuft auf ALSA und bietet einen einheitlichen Audio-Transportmechanismus für Anwendungen. Es kümmert sich um die Konvertierung der Abtastrate usw., was die Verwendung von Pulseaudio (prinzipiell) wesentlich angenehmer macht als ALSA. Die Standardkonfiguration sieht vor, dass Pulseaudio eine Kompatibilitätsschicht für ältere ALSA-Anwendungen mit Einträgen wie darstellt

pcm.!default pulse ctl.!default pulse 

Diese setzen den Standard-ALSA-Eingang und -Ausgang so, dass ALSA-Anwendungen wie Pulseaudio-Anwendungen behandelt werden. Wenn Sie also arecordoder audacity(aber ALSA-Anwendungen) mit dem Standard-ALSA-Eingang verwenden, verwenden Sie wirklich Pulseaudio (Sie können auch verwenden, parecordum direkt auf Pulseaudio zuzugreifen). Wenn Sie jedoch auswählen hw:XXX, nehmen Sie direkt von den ALSA-Treibern auf.

Pulseaudio verfügt über ein eigenes (sehr flexibles) Konzept von Audioquellen und -senken. Sie können sehen (und ändern), welche Anwendungen mit welchen Quellen und Senken verbunden sind pavucontrol(und in vielen Desktop-Umgebungen und einem ähnlichen Desktop-Panel).

Wenn Sie also laufen arecordund mit schauen pavucontrol, sollte es von der Quelle der Intel HDA-Soundkarte (normalerweise "Built-in Audio Analog Stereo") angezeigt und aufgenommen werden.

Warum nimmt es den Ton auf, der gleichzeitig abgespielt wird? Man müsste sich den Codec genauer ansehen (das geht mit cat /proc/asound/card*/codec\#*), aber es gibt ein Mixer-Steuerelement namens "Loopback-Mixing" in Ihrer amixerAusgabe, und es ist aktiviert. Ich vermute, Ihr Codec enthält eine Funktion, mit der Sie den gerade aufgezeichneten Ton aufnehmen können. Deaktivieren Sie es in alsamixerund sehen Sie, ob sich etwas ändert.

Wie richte ich die automatische Aufnahme vom Samson USB Mic ein? 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, pavucontrolwenn 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 pacmd set-default-source my_sourcedie Befehlszeile verwenden. pacmd list-sources | grep name:gibt Ihnen eine Liste der verfügbaren Quellen. Löschen Sie die spitzen Klammern, wenn Sie den Quellnamen in der Befehlszeile verwenden.

Bearbeiten

Jeder Pulseaudio-Senke ist eine .monitorQuelle zugeordnet. Was passiert, ist, dass Pulseaudio aus irgendeinem Grund keine ALSA-Eingabe erhalten kann, also keine entsprechenden Quellen erzeugen kann. Die einzige Quelle, die übrig bleibt, ist die .monitorQuelle, die den gerade wiedergegebenen Sound ausgibt. Also kein interner Loop im Codec (obwohl dies eine andere Möglichkeit ist, den aktuell wiedergegebenen Sound aufzunehmen).

Das bedeutet, dass Sie debuggen müssen, warum Pulseaudio keine Quellen erstellen kann, die den ALSA-Eingaben entsprechen. Es wird jedoch eine dmixSenke erstellt, die nicht sollte. Dies sollte eine Hardwaresenke sein.

Bitte geben Sie das /etc/asound.confund ~/.asoundrcals ersten Schritt an. Gibt es vor dem Start von Pulseaudio bereits laufende Programme, die ALSA direkt verwenden, und verhindern, dass Pulseaudio die Hardware-Ein- / Ausgänge verwendet?

Danke für die Antwort. Also öffnete ich "amixer" und schaltete "Loopback-Mixing" aus, jedoch wurde mein Wiedergabeaudio immer noch aufgenommen. Hier ist die Ausgabe von cat / proc / asound / card * / codec \ # * `: https://pastebin.com/4t4B33kD. Ich habe auch "pavucontrol" geöffnet und es zeigt nur ein Eingabegerät, "Monitor of Built-in Audio". pacmd list-sources | grep name: `gibt auch nur eine Quelle aus:" name:Ich kann mein Eingabegerät / meine Quelle nicht auf mein Mikrofon umstellen. wdhg vor 6 Jahren 0
Wie kann ich feststellen, ob es ein Programm gibt, das ALSA direkt vor dem Start von Pulseaudio verwendet? Ich glaube nicht, aber wie kann ich sicher sein? wdhg vor 6 Jahren 0
Gute Frage. Die beste Methode, die mir einfällt, ist `lsof | grep / dev / snd`, das sollte alle Prozesse anzeigen, die `/ dev / snd / pcm *` (aktive E / A) oder `/ dev / snd / control *` verwenden. dirkt vor 6 Jahren 0
Ausgabe von 'lsof | grep / dev / sdn`: https://pastebin.com/ehfuku91 wdhg vor 6 Jahren 0
0
wdhg

Solved my playback audio being recorded by removing pulseaudio