Использование подпроцесса python для вызова Sox в режиме синтезатора на Raspberry Pi - PullRequest
0 голосов
/ 16 января 2019

Я пишу небольшой файл 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.Кто-нибудь знает, что я могу делать не так?

Большое спасибо заранее.

...