Я пишу небольшой файл Python для генерации определенных частот, используя sox на Raspberry Pi через аудиоразъем.Я установил 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.Я еще не рассматривал это.
В другом посте кто-то предложил использовать весь путь к Сокс, например, так:
x=subprocess.call('/usr/bin/play -V -r 44100 -n synth 30 sin 130+150 vol +2dB')
и хотя это путь к этой команде намоя система (с помощью которого sox) и я могу вызвать это непосредственно из командной строки, она возвращает ту же ошибку, когда используется в моем файле Python.Кто-нибудь знает, что я могу делать не так?
Большое спасибо заранее.