我想录制声音,处理它,而不是即时播放。下面的代码应该描述更多。
arecord -D plughw:USER -f S16_LE -t raw | python my_app.py | aplay -D plughw:USER -f S16_LE
我能够使用arecord
从my_app.py
获取raw_input()
的输入。现在,我对如何将my_app.py
输出发送到aplay
时遇到问题。
我尝试在subprocess
内使用my_app.py
来运行aplay
,
cmdPlay = 'aplay -D plughw:USER -f S16_LE'
p = subprocess.Popen(
cmdPlay,
stdout = subprocess.PIPE,
stdin = subprocess.PIPE,
stderr = subprocess.PIPE,
shell = True
)
p.communicate(input=dataHex.decode('hex'))
但是,我听不到发言者的声音。
那么,你如何在python应用程序和其他进程(作为输入和输出)之间进行管道化?
n.b。:如果有来自arecord的捕获数据的raw_input()
,还请建议一个更好的方法(如果有的话)。