管道 sox 播放命令到标准输出
pipe sox play command to stdout
所以我目前正在尝试从我的 raspberry pi (rasbian) 流式传输我的微型 phone 输入
到某种网络流,以便稍后在我的 phone 上接收它。
为了做到这一点,我使用 arecord -D plughw:1,0 -f dat -r 44100 |
top pipe 从我的 usb-microphone 到 stdout 的声音流,据我所知,它工作正常,但我需要它声音更大一点,这样我才能理解人们站在远处。
所以我像这样将它传送到 sox play 命令:
arecord -D plughw:1,0 -f dat -r 44100| play -t raw -b 16 -e signed -c 2 -v 7 -r 44100 - test.wav
(test.wav 只是一些随机的 wav 文件 ID 没有它就无法工作,并且在 44100 和 test.wav 后面有一个空格,因为我认为 - 是一个单独的参数:
SPECIAL FILENAMES (infile, outfile):
- Pipe/redirect input/output (stdin/stdout); may need -t
-d, --default-device Use the default audio device (where available)
)
我发现使用 -v 参数可以增加音量。
这会将录制的流播放到我连接到 raspberry pi 3 .
的扬声器
最终目标: 将音量增加的声音流通过管道传输到标准输出(或一些 fifopipe 文件),这样我就可以从另一个脚本中的标准输入中获取它,并将其发送到我的 phone.
但是我对播放命令的联机帮助页感到很困惑 http://sox.sourceforge.net/sox.html
我需要 select 输出设备到管道或粗壮或其他东西
如果你知道一个更好的方法来增加音量,我认为 Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
soundstream 让我知道
据我所知,您无法通过管道传输 play
的输出,您必须为此使用常规的 sox
命令。
例如:
# example sound file
sox -n -r 48k -b 16 test16.wav synth 2 sine 200 gain -9 fade t 0 0 0.1
# redundant piping
sox test16.wav -t wav - | sox -t wav - gain 8 -t wav - | play -
对于您问题中的命令,将 play
更改为 sox
并添加 -t wav
应该足以让 sox 知道您希望以何种格式传输声音。
arecord -D plughw:1,0 -f dat -r 44100 | \
sox -t raw -b 16 -e signed -c 2 -v 7 -r 44100 - -t wav -
所以我目前正在尝试从我的 raspberry pi (rasbian) 流式传输我的微型 phone 输入
到某种网络流,以便稍后在我的 phone 上接收它。
为了做到这一点,我使用 arecord -D plughw:1,0 -f dat -r 44100 |
top pipe 从我的 usb-microphone 到 stdout 的声音流,据我所知,它工作正常,但我需要它声音更大一点,这样我才能理解人们站在远处。
所以我像这样将它传送到 sox play 命令:
arecord -D plughw:1,0 -f dat -r 44100| play -t raw -b 16 -e signed -c 2 -v 7 -r 44100 - test.wav
(test.wav 只是一些随机的 wav 文件 ID 没有它就无法工作,并且在 44100 和 test.wav 后面有一个空格,因为我认为 - 是一个单独的参数:
SPECIAL FILENAMES (infile, outfile):
- Pipe/redirect input/output (stdin/stdout); may need -t
-d, --default-device Use the default audio device (where available)
)
我发现使用 -v 参数可以增加音量。 这会将录制的流播放到我连接到 raspberry pi 3 .
的扬声器最终目标: 将音量增加的声音流通过管道传输到标准输出(或一些 fifopipe 文件),这样我就可以从另一个脚本中的标准输入中获取它,并将其发送到我的 phone.
但是我对播放命令的联机帮助页感到很困惑 http://sox.sourceforge.net/sox.html
我需要 select 输出设备到管道或粗壮或其他东西
如果你知道一个更好的方法来增加音量,我认为 Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
soundstream 让我知道
据我所知,您无法通过管道传输 play
的输出,您必须为此使用常规的 sox
命令。
例如:
# example sound file
sox -n -r 48k -b 16 test16.wav synth 2 sine 200 gain -9 fade t 0 0 0.1
# redundant piping
sox test16.wav -t wav - | sox -t wav - gain 8 -t wav - | play -
对于您问题中的命令,将 play
更改为 sox
并添加 -t wav
应该足以让 sox 知道您希望以何种格式传输声音。
arecord -D plughw:1,0 -f dat -r 44100 | \
sox -t raw -b 16 -e signed -c 2 -v 7 -r 44100 - -t wav -