python - 使用 Python 从不同的 PC 声卡通道获取信号
问题描述
我想知道如何使用 Python 从不同通道的 PC 声卡获取信号。在一个通道中,我想得到一个像正弦波这样的简单信号,而在另一个通道中,我想得到一个方波。
我知道我可以使用 pyaudio 来获取信号
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024
p = pyaudio.PyAudio()
stream = p.open(
format=FORMAT,
channels=CHANNELS,
rate=RATE, input=True,
frames_per_buffer=CHUNK) #I get one signal
但是使用这种方法,我一次只能获得一个信号(流),并且我需要同时获得两个信号(两个“流”)。
解决方案
</嘿>
看起来您唯一的问题是您只指定了一个频道!
FORMAT = pyaudio.paInt16
CHANNELS = 1 # Change this to 2 !!!
RATE = 44100
CHUNK = 1024
p = pyaudio.PyAudio()
stream = p.open(
format=FORMAT,
channels=CHANNELS,
rate=RATE, input=True,
frames_per_buffer=CHUNK) #I get one signal
只需将指定通道的行更改为:
CHANNELS = 2
然后您将收到 2 个音频通道 :-)
如果您的音频接口有足够的输入,您可以增加此数字以一次录制更多通道。
编辑1:
这将让您读取 2 个传入音频流,例如:
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print "finished recording"
然后您的data
(2 个数组,您的 2 个通道输入)将存储在frames
数组中。
如需完整的 2 通道示例,请参阅此处的 git 托管 Python 代码。
推荐阅读
- javascript - 当数据表中特定列的结果为空时自动隐藏行?
- javascript - 如何在选中或未选中复选框的基础上添加/删除项目?
- enterprise-architect - 使用 SQL 在 Sparx EA 中检索当前选定的对象
- python - 如何在 Visual Studio 中禁用 pydev 调试器?
- regex - 使用 ANT 在下划线之前分隔字符串值的正则表达式
- data-binding - Kotlin CustomView 2 路数据绑定
- reactjs - 未定义不是对象 this.props.navigation - 反应原生
- javascript - 闪亮:insertUI 之前使用 removeUI 删除了 id
- javascript - 当我在最后一张幻灯片上单击下一张/上一张时自动播放幻灯片空白幻灯片
- r - 无法解决此矩阵