Kann ich ein Loopback-Audiogerät einrichten?

15

Wenn ich Audio an die Ausgabegeräte senden kann, kann ich das gleiche Audio wie eine Welle aufnehmen. Mit Dateisystemen können Sie einfach ein Loopback-Dateisystem einrichten und Binärdaten in eine Datei anstelle eines Geräts schreiben.

Meine Frage ist: Kann ich das Audiosignal anstelle meiner Audiogeräte an eine (zum Beispiel) WAV-Datei senden? Wie?

D4RIO
quelle
Das Video führte vier Loopback-Modi für Soundkarten ein. youtu.be/pqV3P9zRyYc

Antworten:

10

Ja.

Eigentlich gibt es viele Möglichkeiten. Sie können ein Sound-Dummy-Soundkartengerät einrichten, mit dem Sie die Daten einfach aus dem Gerät auslesen können. Dies ist jedoch kein sehr nützliches Format.

Nützlicher für Sie ist so etwas wie das arecordHilfsprogramm, mit dem Sie den alsa-Ausgabestream abrufen und in verschiedenen bekannten Formaten speichern können. Grundsätzlich kann alles, was Sie über das alsa-Soundsystem abspielen können, in eine Audiodatei im Standardformat kopiert werden.

Ähnliche Tools gibt es für Puls-Audio .

Caleb
quelle
8

Wenn Ihr System oder nur die Anwendung, die Sie aufzeichnen möchten, die Ausgabe an einen Soundserver leitet , prüfen Sie die Aufzeichnungsmöglichkeiten für diesen Soundserver. Unter Ubuntu ist beispielsweise PulseAudio der offizielle Soundserver , der mit dem parecBefehl geliefert wird (aus dem pulseaudio-utilsPaket Install pulseaudio-utils http://bit.ly/software-small ). Möglicherweise müssen Sie die Ausgabe von parecin etwas konvertieren, das mit SoX verwendbar ist (Ubuntu: Install sox http://bit.ly/software-small ).sox

parec -r --rate=44100 | sox --type raw --rate 44100 - --type ogg recording.ogg
Gilles 'SO - hör auf böse zu sein'
quelle
das hat bei mir nicht funktioniert, aber diese Variation des Themas hat funktioniert: askubuntu.com/questions/60837/…
ixtmixilix
4

Es sollte möglich sein, direkt in Audacity aufzunehmen, aber ich konnte das auf meinem System nicht zum Laufen bringen (Ubuntu 10.10). So folgen Sie den Anweisungen hier aus dem Audacity Wiki, verwende ich die ALSAWiedergabe - Gerät die Audio in eine Datei zu umleiten.

Dies verwendet eine .asoundrcDatei (in Ihrem Home-Verzeichnis):

pcm.teeraw {
   type empty
   slave.pcm "tee:default,'/tmp/out.raw',raw"
   # 48000 S16_LE 2ch (aplay -t raw -f dat)
}

Für die Aufnahme von Flash (über Firefox) verwende ich

FLASH_ALSA_DEVICE=teeraw firefox

Die resultierende Datei /tmp/out.rawist im Raw-Format, so dass für die Konvertierung die richtigen Parameter bekannt sein müssen. Seltsamerweise lamescheint dies für sich selbst herauszufinden, soxmuss es aber explizit wissen. So scheinen die folgenden alle zu arbeiten:

aplay -t raw -f dat -r 44100 /tmp/out.raw # to play
sox -r 44100 -b 16 -e signed -c 2 /tmp/out.raw /tmp/out.wav # to convert to wav
lame /tmp/out.raw # to convert to mp3
Loop Space
quelle
Der Link aus dem Audacity-Wiki ist tot.
Suzana
0

Es gibt einen Loopback-Treiber im ALSA-Baum, aloop-kernel.c (über hier ); was du selbst bauen müsstest (und seine Verwendung als Gerät durch Audioanwendungen wie aplay/ herausfinden müsstest arecord) ...

sdaau
quelle