Jeśli mogę wysłać dźwięk do urządzeń wyjściowych, to mogę nagrać ten sam dźwięk jak fala. W systemach plików można po prostu skonfigurować system plików z pętlą zwrotną i zapisywać dane binarne w pliku zamiast w urządzeniu.
Moje pytanie brzmi: czy mogę wysłać sygnał audio do (na przykład) pliku WAV zamiast do moich urządzeń audio? W jaki sposób?
Odpowiedzi:
Tak.
W rzeczywistości istnieje wiele sposobów. Możesz skonfigurować fałszywą kartę dźwiękową, aby po prostu zgrać dane z urządzenia ... jednak nie jest to zbyt przydatny format.
Bardziej przydatne dla ciebie jest coś w rodzaju
arecord
narzędzia, które pozwala ci wyrzucić strumień wyjściowy alsa i zapisać go w kilku znanych formatach. Zasadniczo wszystko, co można odtwarzać przez system dźwiękowy alsa, można skopiować do pliku dźwiękowego w standardowym formacie.Podobne narzędzia istnieją dla pulsacyjnego audio .
źródło
Jeśli Twój system lub tylko aplikacja, którą chcesz nagrać, kieruje wyjście do serwera dźwięku , sprawdź możliwości nagrywania dla tego serwera dźwięku. Na przykład na Ubuntu oficjalnym serwerem dźwięku jest PulseAudio , który jest dostarczany z
parec
poleceniem (zpulseaudio-utils
pakietu Instaluj pulseaudio-utils http://bit.ly/software-small ). Może być konieczne przekonwertowanie danych wyjściowychparec
na coś użytecznego w SoX (Ubuntu: Install sox http://bit.ly/software-small ).sox
źródło
To miało być możliwe nagrywanie bezpośrednio do Audacity, ale nie mogłem, że do pracy w moim systemie (Ubuntu 10.10). Więc postępując zgodnie z instrukcjami tutaj z wiki Audacity, używam
ALSA
urządzenia odtwarzającego do przekierowania dźwięku do pliku.Używa to
.asoundrc
pliku (w twoim katalogu domowym):Używam do nagrywania z lampy błyskowej (na Firefox)
Plik wynikowy
/tmp/out.raw
ma format surowy, więc jego konwersja wymaga znajomości właściwych parametrów. Dziwnie,lame
wydaje się , że jest w stanie samodzielnie to rozwiązać, alesox
musi to wyraźnie wiedzieć. Wydaje się, że wszystkie działają:źródło
W drzewie ALSA znajduje się sterownik sprzężenia zwrotnego, aloop-kernel.c ( tutaj ); którą musiałbyś sam zbudować (i dowiedzieć się o jej wykorzystaniu jako urządzenia dzięki aplikacjom audio, takim jak
aplay
/arecord
) ...źródło