import pyaudio
import wave
import time
import os
import datetime
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 48000
if __name__ == '__main__':
pass
print("hello,python")
filepath="."
filenames=os.listdir(filepath)
for filename in filenames:
print(filename)
p=pyaudio.PyAudio()
stream=p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=4800)
isLoop=True
totalLen=0
recordBuf=[]
recordTime = 0
while (isLoop):
data=stream.read(4800)
dataLen=len(data)
#print("dataLen="+str(dataLen)) #16bit的格式,对应返回数据长度是4800的两倍,即9600,len
if dataLen>0 :
recordBuf.append(data)
recordBufLen=len(recordBuf)
#print("recordBuflen="+str(recordBufLen))
#print(recordBufLen)
print('.'),
if (recordBufLen>=10) : #48000*2
fileName="time"+str(int(round(time.time()*1000)))+".wav"
print(fileName)
wf = wave.open(fileName, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(recordBuf))
wf.close()
recordBuf=[]
recordTime+=1
if recordTime>=10 :#每组缓冲是4800,10次即使1秒的数据
isLoop=False
else :
time.sleep(0.01) #else意义不大,因为stream.read()是阻塞行为,目前没发现python中读空的情况
stream.stop_stream()
stream.close()
p.terminate()
Python3.8录音与文件保存
最新推荐文章于 2024-05-14 19:50:50 发布