在Raspberry Pi上使用python子进程以合成模式调用Sox

时间:2019-01-16 11:23:37

标签: python raspberry-pi sox

我正在编写一个小python文件,以通过音频插孔在树莓派上使用sox生成特定频率。我已经安装了Sox,可以通过命令行愉快地调用它,但是我想通过以下方式使用子进程在我的python文件中调用它:

x = subprocess.Popen('play -V -r 44100 -n synth 30 sin 130+150 vol +2dB')

但是,这总是给我错误:

OSError: [Errno 2] No such file or directory

我已经阅读了其他相关文章,并可以使用shell = true如下成功调用它:

x=subprocess.call('play -V -r 44100 -n synth 30 sin 130+150 vol +2dB', shell=True)

但是我不想使用外壳。我希望能够确定该过程是否仍在运行,并且我还想调查暂停并重新启动sox过程。我还没有看这个。

在另一篇文章中,有人建议使用Sox的整个路径,例如:

x=subprocess.call('/usr/bin/play -V -r 44100 -n synth 30 sin 130+150 vol +2dB')

尽管这是我的系统上此命令的路径(使用哪个sox),并且我可以直接从命令行调用此命令,但是在我的python文件中使用时,它会返回相同的错误。有人知道我在这里可能做错了什么吗?

非常感谢。

0 个答案:

没有答案