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?
Antworten:
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
arecord
Hilfsprogramm, 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 .
quelle
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
parec
Befehl geliefert wird (aus dempulseaudio-utils
Paket Install pulseaudio-utils http://bit.ly/software-small ). Möglicherweise müssen Sie die Ausgabe vonparec
in etwas konvertieren, das mit SoX verwendbar ist (Ubuntu: Install sox http://bit.ly/software-small ).sox
quelle
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
ALSA
Wiedergabe - Gerät die Audio in eine Datei zu umleiten.Dies verwendet eine
.asoundrc
Datei (in Ihrem Home-Verzeichnis):Für die Aufnahme von Flash (über Firefox) verwende ich
Die resultierende Datei
/tmp/out.raw
ist im Raw-Format, so dass für die Konvertierung die richtigen Parameter bekannt sein müssen. Seltsamerweiselame
scheint dies für sich selbst herauszufinden,sox
muss es aber explizit wissen. So scheinen die folgenden alle zu arbeiten:quelle
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üsstestarecord
) ...quelle