オーディオ出力に何でもパイプするにはどうすればよいですか?

オーディオ出力に何でもパイプするにはどうすればよいですか?

データをオーディオ出力にどのように転送できますか?たとえば、アーカイブ、ドライブのバックアップ、プログラムなどのファイルを聞きたいです。または私のハードドライブを聞きたいです。約7年前にこれが可能だという内容を読んだ記憶がどんどんありますが、今は何も見つかりません。

したがって、ファイル、ディスクの読み取り、ネットワーク接続まで何でも聞くことができるようにしたいと思います。私はこれがLinuxで確かに可能であることを知っています。どうすればいいですか? Lubuntu 20.04を使う

答え1

私は配管作業がうまくaplay機能していることがわかりました。

journalctl | aplayあまりきれいではありませんが、驚くほどうまく機能します。

これは例ですaplay(1):

aplay -c 1 -t raw -r 22050 -f mu_law foobar
              will play the raw file "foobar" as a 22050-Hz, mono, 8-bit, Mu-Law .au file.

alsa-utilsこれはdebian / ubuntuパッケージの一部として見つけることができます。

これは私のお気に入りの1線です。小さなCプログラムをgccに反映し、コンパイルされたバージョンを実行して再生するようにします。その結果、驚くべきことに15分の曲が繰り返し再生されました。

echo "g(i,x,t,o){return((3&x&(i*((3&i>>16?\"BY}6YB6$\":\"Qj}6jQ6%\")[t%8]+51)>>o))<<4);};main(i,n,s){for(i=0;;i++)putchar(g(i,1,n=i>>14,12)+g(i,s=i>>17,n^i>>13,10)+g(i,s/3,n+((i>>11)%3),10)+g(i,s/5,8+n-((i>>10)%3),9));}"|gcc -xc -&&./a.out|aplay

答え2

これは可能です/dev/dsp。これはOSSの一部であり、OSSは長い間Linuxカーネルの一部ではありませんでした。cat some_file >/dev/dsp以前はorのように簡単でしたsome_program >/dev/dsp

PulseAudioが提供していますpadsp

padsp指定されたプログラムを起動し、/dev/dspOSS準拠のオーディオデバイス(およびセカンダリデバイス)へのアクセスをPulseAudioサウンドサーバーにリダイレクトします。

源泉)


例:

  • ランダムデータ

    </dev/urandom padsp tee /dev/dsp >/dev/null
    
  • 一般ファイル

    </etc/fstab padsp tee /dev/dsp >/dev/null
    
  • ネットワーク活動

    sudo tcpdump | padsp tee /dev/dsp >/dev/null
    
  • ブロックデバイス

    sudo cat /dev/sda | padsp tee /dev/dsp >/dev/null
    

padspこのpulseaudio-utilsパッケージのUbuntu 18.04.4 LTSから。

関連情報