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('請(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 - begin
print('錄音時(shí)間為%ds'%t)
rec.save("1_%d.wav"%i)
本人在嘗試語(yǔ)音識(shí)別領(lǐng)域的研究,歡迎一起探討。
更多精彩python學(xué)習(xí)專(zhuān)題歡迎點(diǎn)擊學(xué)習(xí):
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python實(shí)現(xiàn)網(wǎng)頁(yè)錄音效果
- Python調(diào)用Windows API函數(shù)編寫(xiě)錄音機(jī)和音樂(lè)播放器功能
- Python人工智能之路 之PyAudio 實(shí)現(xiàn)錄音 自動(dòng)化交互實(shí)現(xiàn)問(wèn)答
- python 通過(guò)麥克風(fēng)錄音 生成wav文件的方法
- python實(shí)現(xiàn)播放音頻和錄音功能示例代碼
- python實(shí)現(xiàn)錄音小程序
- 基于python實(shí)現(xiàn)百度語(yǔ)音識(shí)別和圖靈對(duì)話
- 使用Python和百度語(yǔ)音識(shí)別生成視頻字幕的實(shí)現(xiàn)
- python版百度語(yǔ)音識(shí)別功能
- python調(diào)用百度REST API實(shí)現(xiàn)語(yǔ)音識(shí)別
- python調(diào)用百度語(yǔ)音識(shí)別api
- python實(shí)現(xiàn)百度語(yǔ)音識(shí)別api
- python錄音并調(diào)用百度語(yǔ)音識(shí)別接口的示例
相關(guān)文章
分析運(yùn)行中的 Python 進(jìn)程詳細(xì)解析
這篇文章主要介紹了分析運(yùn)行中的 Python 進(jìn)程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
Python按照l(shuí)ist dict key進(jìn)行排序過(guò)程解析
這篇文章主要介紹了Python按照l(shuí)ist dict key進(jìn)行排序過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
使用gunicorn部署django項(xiàng)目的問(wèn)題
這篇文章主要介紹了使用gunicorn部署django項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
VSCODE配置Markdown及Markdown基礎(chǔ)語(yǔ)法詳解
這篇文章主要介紹了VSCODE配置Markdown及Markdown基礎(chǔ)語(yǔ)法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
python實(shí)戰(zhàn)之德州撲克第三步-比較大小
這篇文章主要介紹了python實(shí)戰(zhàn)之德州撲克第三步-比較大小,穩(wěn)中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下2021-04-04
Python進(jìn)階學(xué)習(xí)修改閉包內(nèi)使用的外部變量
這篇文章主要為大家介紹了Python進(jìn)階學(xué)習(xí)修改閉包內(nèi)使用的外部變量實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

