使用Python子进程在树莓派上调用Sox合成模式

2024-04-20 02:27:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个小python文件,通过音频接口在raspberry pi上使用sox生成特定的频率。我已经安装了Sox,可以通过命令行很高兴地调用它,但是我想在我的python文件中使用subprocess以以下方式调用它:

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文件中使用时,它返回相同的错误。有人知道我会做错什么吗?你知道吗

非常感谢。你知道吗


Tags: 文件命令行路径play进程错误sinshell