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书单推荐编程必备书单
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。