python實(shí)現(xiàn)錄音功能(可隨時(shí)停止錄音)
本文實(shí)例為大家分享了python實(shí)現(xiàn)錄音功能的具體代碼,供大家參考,具體內(nèi)容如下
# -*- coding: utf-8 -*- import pyaudio import time import threading import 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('請輸入相應(yīng)數(shù)字開始:')) if a == 1: rec = Recorder() begin = time.time() print("Start recording") rec.start() b = int(input('請輸入相應(yīng)數(shù)字停止:')) if b == 2: print("Stop recording") rec.stop() fina = time.time() t = fina - begin print('錄音時(shí)間為%ds'%t) rec.save("1_%d.wav"%i)
本人在嘗試語音識別領(lǐng)域的研究,歡迎一起探討。
更多精彩python學(xué)習(xí)專題歡迎點(diǎn)擊學(xué)習(xí):
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python實(shí)現(xiàn)網(wǎng)頁錄音效果
- Python調(diào)用Windows API函數(shù)編寫錄音機(jī)和音樂播放器功能
- Python人工智能之路 之PyAudio 實(shí)現(xiàn)錄音 自動化交互實(shí)現(xiàn)問答
- python 通過麥克風(fēng)錄音 生成wav文件的方法
- python實(shí)現(xiàn)播放音頻和錄音功能示例代碼
- python實(shí)現(xiàn)錄音小程序
- 基于python實(shí)現(xiàn)百度語音識別和圖靈對話
- 使用Python和百度語音識別生成視頻字幕的實(shí)現(xiàn)
- python版百度語音識別功能
- python調(diào)用百度REST API實(shí)現(xiàn)語音識別
- python調(diào)用百度語音識別api
- python實(shí)現(xiàn)百度語音識別api
- python錄音并調(diào)用百度語音識別接口的示例
相關(guān)文章
深入理解Python虛擬機(jī)中浮點(diǎn)數(shù)(float)的實(shí)現(xiàn)原理及源碼
在本篇文章當(dāng)中主要分析在 cpython 虛擬機(jī)當(dāng)中 float 類型的實(shí)現(xiàn)原理以及與他相關(guān)的一些源代碼,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-03-03PyQt5中多線程模塊QThread使用方法的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5中多線程模塊QThread使用方法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01python實(shí)現(xiàn)圖像隨機(jī)裁剪的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)圖像隨機(jī)裁剪的示例代碼,幫助大家更好的理解和使用python處理圖片,感興趣的朋友可以了解下2020-12-12如何用OpenCV -python3實(shí)現(xiàn)視頻物體追蹤
OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺計(jì)算機(jī)視覺庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。這篇文章主要介紹了如何用OpenCV -python3實(shí)現(xiàn)視頻物體追蹤,需要的朋友可以參考下2019-12-12python中argparse模塊及action='store_true'詳解
argparse?是一個(gè)用來解析命令行參數(shù)的?Python?庫,它是?Python?標(biāo)準(zhǔn)庫的一部分,這篇文章主要介紹了python中argparse模塊及action=‘store_true‘詳解,需要的朋友可以參考下2023-02-02python 基于PYMYSQL使用MYSQL數(shù)據(jù)庫
這篇文章主要介紹了python 基于PYMYSQL使用MYSQL數(shù)據(jù)庫的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12