Python中的录音
Posted
技术标签:
【中文标题】Python中的录音【英文标题】:Audio Recording in Python 【发布时间】:2011-10-15 14:39:10 【问题描述】:我想用 Python 录制来自 USB 麦克风的短音频片段。我试过 pyaudio,它似乎无法与 ALSA 通信,还有 alsaaudio,它的代码示例会产生一个不可读的文件。
所以我的问题是:用 Python 从 USB 麦克风录制剪辑的最简单方法是什么?
【问题讨论】:
Detect & Record Audio in Python 的可能重复项 我已经使用了 PyGStreamer,它运行良好,但我不能说它是您问题的解决方案。 【参考方案1】:此脚本在打印当前振幅时记录到 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)
【讨论】:
你不能用array.array('h', data)
或struct
代替numpy吗?
我主要是把音频导入Python做信号处理。为此,您需要 numpy.对于简单的录制,我只需要使用像“arecord”这样的命令行工具。在 Python 中,我可以进行 FFT 并检查某个频率是否占主导地位,只需三行左右的代码。
有人对此进行验证并评论它是否有效。自从我问这个问题已经很久了,我真的应该接受一些东西。以上是关于Python中的录音的主要内容,如果未能解决你的问题,请参考以下文章