用pyalsaaudio录制立体声

时间:2014-01-10 20:56:03

标签: python audio audio-recording pcm alsa

我正试图使用​​一对立体声耳机,立体声USB声卡进行立体声录音:

http://www.ebay.co.uk/itm/261343188737?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

和我的笔记本电脑。我正在使用USB声卡,因为我最终想要在我的覆盆子pi上工作。我正在使用pyalsaaudio和以下代码:

import matplotlib
import alsaaudio, wave, numpy

inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NORMAL, 'plughw:CARD=Device')
inp.setchannels(2)
inp.setrate(44100)
inp.setformat(alsaaudio.PCM_FORMAT_S16_LE)
inp.setperiodsize(1024)


i = int(raw_input('How many samples of recording?'))
amplitude = []

while i > 0:
    l, data = inp.read()
    a = numpy.fromstring(data, dtype='int16')
    amplitude.extend(abs(a))
    i -= 1

print amplitude

我希望每个耳机都是一个独立的通道,即。左耳机=通道1,右耳机=通道2,但到目前为止我只有一个看似单声道的录音,(当我发出一个声音,我得到一个耳机,例如(245,321,678,672, 478,456)作为结果数据,当我期待交错的音频数据时(245,21,678,25,567,12),即一个通道的小读数和另一个通道的大读数。

arecord -L返回:

默认     通过PulseAudio声音服务器播放/录制

sysdefault:CARD = PCH     HDA Intel PCH,ALC270 Analog     默认音频设备

前:CARD = PCH,DEV = 0     HDA Intel PCH,ALC270 Analog     前置扬声器

surround40:CARD = PCH,DEV = 0     HDA Intel PCH,ALC270 Analog     4.0环绕声输出到前置和后置扬声器

surround41:CARD = PCH,DEV = 0     HDA Intel PCH,ALC270 Analog     4.1环绕声输出到前置,后置和低音炮扬声器

surround50:CARD = PCH,DEV = 0     HDA Intel PCH,ALC270 Analog     5.0环绕声输出到前置,中置和后置扬声器

surround51:CARD = PCH,DEV = 0     HDA Intel PCH,ALC270 Analog     5.1环绕声输出到前置,中置,后置和重低音扬声器

surround71:CARD = PCH,DEV = 0     HDA Intel PCH,ALC270 Analog     7.1环绕声输出到前置,中置,侧置,后置和低音扬声器

DMIX:CARD = PCH,DEV = 0     HDA Intel PCH,ALC270 Analog     直接样品混合装置

dsnoop:CARD = PCH,DEV = 0     HDA Intel PCH,ALC270 Analog     直接采样监听设备

HW:CARD = PCH,DEV = 0     HDA Intel PCH,ALC270 Analog     没有任何转换的直接硬件设备

plughw:CARD = PCH,DEV = 0     HDA Intel PCH,ALC270 Analog     具有所有软件转换的硬件设备

sysdefault:CARD =设备     USB PnP声音设备,USB音频     默认音频设备

前:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     前置扬声器

surround40:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     4.0环绕声输出到前置和后置扬声器

surround41:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     4.1环绕声输出到前置,后置和低音炮扬声器

surround50:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     5.0环绕声输出到前置,中置和后置扬声器

surround51:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     5.1环绕声输出到前置,中置,后置和重低音扬声器

surround71:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     7.1环绕声输出到前置,中置,侧置,后置和低音扬声器

IEC958:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     IEC958(S / PDIF)数字音频输出

DMIX:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     直接样品混合装置

dsnoop:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     直接采样监听设备

HW:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     没有任何转换的直接硬件设备

plughw:CARD =设备,DEV = 0     USB PnP声音设备,USB音频     具有所有软件转换的硬件设备

不完全确定哪些是相关的......

PCH是笔记本电脑上的内置声卡,Device是USB声卡。我开始怀疑USB声卡实际上能够进行立体声录音,就像我运行alsamixer一样,我无法单独调整麦克风的左右声道。

在此基础上,我首先想要在我的笔记本电脑的声卡上进行立体声录音,但我不知道如何指定使用插入笔记本电脑耳机/麦克风端口的耳机来录制而不是内置笔记本电脑麦克风 - 一般来说,我无法弄清楚如何使用声卡上的特定设备进行录制。

我不确定接下来会尝试什么,因为我是alsa和pyalsaaudio的新手。关于如何完成这项工作的任何建议都将不胜感激。

0 个答案:

没有答案
相关问题