Python--pyaudio声卡录音
1、关于pyaudio的使用,请参看前一篇博文:
Python--pyAudio播放wav格式声音: http://blog.csdn.net/xsc_c/article/details/8944077
2、关于wav文件的操作,参看博文:
Python--读取wav格式文件: http://blog.csdn.net/xsc_c/article/details/8941338
3、录音的过程与播放使用的函数类似,可以参考使用手册:
API文档地址 : http://people.csail.mit.edu/hubert/pyaudio/docs/#class-pyaudio
4、python代码
#!usr/bin/env python #coding=utf-8 import numpy as np from pyaudio import PyAudio,paInt16 from datetime import datetime import wave from Tkinter import * #define of params NUM_SAMPLES = 2000 framerate = 8000 channels = 1 sampwidth = 2 #record time TIME = 10 def save_wave_file(filename, data): """save the date to the wav file""" wf = wave.open(filename, "wb") wf.setnchannels(channels) wf.setsampwidth(sampwidth) wf.setframerate(framerate) wf.writeframes("".join(data)) wf.close() def my_button(root,label_text,button_text,button_func): """""function of creat label and button""" #label details label = Label(root) label["text"] = label_text label.pack() #label details button = Button(root) button["text"] = button_text button["command"] = button_func button.pack() def record_wave(): #open the input of wave pa = PyAudio() stream = pa.open(format = paInt16, channels = 1, rate = framerate, input = True, frames_per_buffer = NUM_SAMPLES) save_buffer = [] count = 0 while count < TIME*4: #read NUM_SAMPLES sampling data string_audio_data = stream.read(NUM_SAMPLES) save_buffer.append(string_audio_data) count += 1 print "." filename = datetime.now().strftime("%Y-%m-%d_%H_%M_%S")+".wav" save_wave_file(filename, save_buffer) save_buffer = [] print filename, "saved" def main(): root = Tk() my_button(root,"Record a wave","clik to record",record_wave) root.mainloop() if __name__ == "__main__": main()
5、效果
界面:
保存文件:
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: Python--读取wav格式文件
- 下一篇:没有了