Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的音频录制_Python_Audio Recording_Microphone_Alsa_Pyaudio - Fatal编程技术网

Python中的音频录制

Python中的音频录制,python,audio-recording,microphone,alsa,pyaudio,Python,Audio Recording,Microphone,Alsa,Pyaudio,我想用Python从USB麦克风录制短音频片段。我试过pyaudio,它似乎无法与ALSA通信,还有alsaaudio,它的代码示例生成了无法读取的文件 所以我的问题是:用Python从USB麦克风录制剪辑的最简单方法是什么?此脚本在打印当前振幅时录制到test.wav: import alsaaudio, wave, numpy inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE) inp.setchannels(1) inp.setrate(44100) i

我想用Python从USB麦克风录制短音频片段。我试过pyaudio,它似乎无法与ALSA通信,还有alsaaudio,它的代码示例生成了无法读取的文件


所以我的问题是:用Python从USB麦克风录制剪辑的最简单方法是什么?

此脚本在打印当前振幅时录制到test.wav:

import alsaaudio, wave, numpy

inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE)
inp.setchannels(1)
inp.setrate(44100)
inp.setformat(alsaaudio.PCM_FORMAT_S16_LE)
inp.setperiodsize(1024)

w = wave.open('test.wav', 'w')
w.setnchannels(1)
w.setsampwidth(2)
w.setframerate(44100)

while True:
    l, data = inp.read()
    a = numpy.fromstring(data, dtype='int16')
    print numpy.abs(a).mean()
    w.writeframes(data)

我使用PyGStreamer实现了它,它工作得很好,但我不能说它是你问题的解决方案。你能用
array.array('h',data)
struct
代替numpy吗?我主要把音频输入Python来做信号处理。所以你想要numpy。对于简单的录制,我只需要使用命令行工具,如“arecord”。在Python中,我可以用三行左右的代码进行FFT并检查某个频率是否占主导地位。。我问这个问题已经很久了,我真的应该接受一些东西。