python实现录音功能(可随时停止录音)
本文实例为大家分享了python实现录音功能的具体代码,供大家参考,具体内容如下
#-*-coding:utf-8-*-
importpyaudio
importtime
importthreading
importwave
classRecorder():
def__init__(self,chunk=1024,channels=1,rate=64000):
self.CHUNK=chunk
self.FORMAT=pyaudio.paInt16
self.CHANNELS=channels
self.RATE=rate
self._running=True
self._frames=[]
defstart(self):
threading._start_new_thread(self.__recording,())
def__recording(self):
self._running=True
self._frames=[]
p=pyaudio.PyAudio()
stream=p.open(format=self.FORMAT,
channels=self.CHANNELS,
rate=self.RATE,
input=True,
frames_per_buffer=self.CHUNK)
while(self._running):
data=stream.read(self.CHUNK)
self._frames.append(data)
stream.stop_stream()
stream.close()
p.terminate()
defstop(self):
self._running=False
defsave(self,filename):
p=pyaudio.PyAudio()
ifnotfilename.endswith(".wav"):
filename=filename+".wav"
wf=wave.open(filename,'wb')
wf.setnchannels(self.CHANNELS)
wf.setsampwidth(p.get_sample_size(self.FORMAT))
wf.setframerate(self.RATE)
wf.writeframes(b''.join(self._frames))
wf.close()
print("Saved")
if__name__=="__main__":
foriinrange(1,4):
a=int(input('请输入相应数字开始:'))
ifa==1:
rec=Recorder()
begin=time.time()
print("Startrecording")
rec.start()
b=int(input('请输入相应数字停止:'))
ifb==2:
print("Stoprecording")
rec.stop()
fina=time.time()
t=fina-begin
print('录音时间为%ds'%t)
rec.save("1_%d.wav"%i)
本人在尝试语音识别领域的研究,欢迎一起探讨。
更多精彩python学习专题欢迎点击学习:
python入门基础教程
python图片处理操作汇总
python各版本安装教程
python书单推荐编程必备书单
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。