python實(shí)現(xiàn)錄音功能(可隨時(shí)停止錄音)
本文實(shí)例為大家分享了python實(shí)現(xiàn)錄音功能的具體代碼,供大家參考,具體內(nèi)容如下
# -*- coding: utf-8 -*- import pyaudioimport timeimport threadingimport wave class Recorder(): 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 = [] def start(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() def stop(self): self._running = False def save(self, filename):p = pyaudio.PyAudio() if not filename.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__': for i in range(1,4): a = int(input(’請(qǐng)輸入相應(yīng)數(shù)字開(kāi)始:’)) if a == 1: rec = Recorder() begin = time.time() print('Start recording') rec.start() b = int(input(’請(qǐng)輸入相應(yīng)數(shù)字停止:’)) if b == 2:print('Stop recording')rec.stop()fina = time.time()t = fina - beginprint(’錄音時(shí)間為%ds’%t)rec.save('1_%d.wav'%i)
本人在嘗試語(yǔ)音識(shí)別領(lǐng)域的研究,歡迎一起探討。
更多精彩python學(xué)習(xí)專(zhuān)題歡迎點(diǎn)擊學(xué)習(xí):
python入門(mén)基礎(chǔ)教程
python圖片處理操作匯總
python各版本安裝教程
python書(shū)單推薦 編程必備書(shū)單
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Ajax實(shí)現(xiàn)文件上傳功能(Spring MVC)2. 基于javaweb+jsp實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)3. idea設(shè)置代碼格式化的方法步驟4. 使用EF Code First搭建簡(jiǎn)易ASP.NET MVC網(wǎng)站并允許數(shù)據(jù)庫(kù)遷移5. JavaScript實(shí)現(xiàn)多球運(yùn)動(dòng)效果6. 詳解IDEA Git Reset 選項(xiàng)說(shuō)明7. JS Web Flex彈性盒子模型代碼實(shí)例8. 詳解Java分布式IP限流和防止惡意IP攻擊方案9. xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))10. ASP.NET MVC使用jQuery ui的progressbar實(shí)現(xiàn)進(jìn)度條
