gpt4 book ai didi

linux - 管道 sox 播放命令到标准输出

转载 作者:太空狗 更新时间:2023-10-29 11:41:49 25 4
gpt4 key购买 nike

所以我目前正在尝试从我的 raspberry pi (rasbian) 流式传输我的麦克风输入到某种网络流,以便稍后在我的手机上接收它。为了做到这一点,我使用 arecord -D plughw:1,0 -f dat -r 44100 | top 将我的 usb 麦克风的声音流传输到 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 后面有一个空格,因为我认为 - 是一个单独的参数:

特殊文件名(infile,outfile):
- 管道/重定向输入/输出(标准输入/标准输出);可能需要-t
-d, --default-device 使用默认音频设备(如果可用)
)

我发现通过使用 -v 参数我可以增加音量。这会将录制的流播放到我连接到树莓派 3 的扬声器。

最终目标:将音量增加的声音流通过管道传输到 stdout(或一些 fifopipe 文件),这样我就可以从另一个脚本中的 stdin 获取它,并将其发送到我的手机。

但是我对播放命令的联机帮助页感到很困惑http://sox.sourceforge.net/sox.html

我需要选择输出设备来管道或粗壮或其他东西
如果你知道一个更好的方法来增加音量,我认为 Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereosoundstream 让我知道

最佳答案

据我所知,您无法通过管道传输 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 -

关于linux - 管道 sox 播放命令到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42904441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com