先看代码👇
import pyaudio
import wave
def get_wav(sec):
#创建对象
pa = pyaudio.PyAudio()
#创建流:采样位,声道数,采样频率,缓冲区大小,input
stream = pa.open(format=pyaudio.paInt16,
channels=2,
rate=16000,
input=True,
frames_per_buffer=1024)
#创建式打开音频文件
wf = wave.open("test.wav", "wb")
#设置音频文件的属性:采样位,声道数,采样频率,缓冲区大小,必须与流的属性一致
wf.setnchannels(2)
wf.setsampwidth(pa.get_sample_size(pyaudio.paInt16))
wf.setframerate(16000)
print("开始录音")
#采样频率*秒数/缓冲区大小
for w in range(int(16000*sec/1024)):
data = stream.read(1024)#每次从流的缓存中读出数据
wf.writeframes(data)#把读出的数据写入wf
print("录音结束")
stream.stop_stream()#先把流停止
stream.close()#再把流关闭
pa.terminate()#把对象关闭
wf.close()#把声音文件关闭,否则不