Python sox仅在左或右频道创建和播放音调

Python sox仅在左或右频道创建和播放音调,python,sox,Python,Sox,我试图用python创建一个音调,并且只在左声道或右声道播放。我不知道如何指定在所选频道播放 以下是我目前的代码: import os frequency = 1000 #hz duration = 2000 #milliseconds os.system('play -n synth %s sin %s' % (duration/1000, frequency)) 我尝试过“混音”,但没有成功 谢谢你的帮助 我建议让sox在添加到python代码之前先输出您想要的内容。这应该是你想要的

我试图用python创建一个音调,并且只在左声道或右声道播放。我不知道如何指定在所选频道播放

以下是我目前的代码:

import os

frequency = 1000 #hz

duration = 2000 #milliseconds

os.system('play -n synth %s sin %s' % (duration/1000, frequency))
我尝试过“混音”,但没有成功


谢谢你的帮助

我建议让sox在添加到python代码之前先输出您想要的内容。这应该是你想要的(先左后右)

您可能还存在sox默认设备的问题
play
只是
sox-d
的别名,即使用默认设备进行输出。要检查这一点,或者如果希望将输出转到文件,可以使用以下方法:

sox -n -c 2 left.wav synth 2 sin 1000 remix 1 0
sox -n -c 2 right.wav synth 2 sin 1000 remix 0 1
您的python代码可以这样合并:

import os    

frequency = 1000 #hz

duration = 2000 #milliseconds

os.system('play -n -c 2 synth %s sin %s remix 1 0' % (duration/1000, frequency))

谢谢你的回答!是否有任何方法可以实现这种非阻塞,即在声音播放时开始播放声音并执行其他操作,而不是等到声音播放后再开始其他操作?如果使用
subprocess.Popen()
,则可以-请参阅
import os    

frequency = 1000 #hz

duration = 2000 #milliseconds

os.system('play -n -c 2 synth %s sin %s remix 1 0' % (duration/1000, frequency))