python语言录音机程序代码

-- coding: utf-8 --

import pyaudio
import time
import threading
import wave
import tkinter as tk

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 = False
self._frames = []

def start(self):
    self._running = True
    threading.Thread(target=self.__recording).start()

def __recording(self):
    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")

def start_recording():
global rec, begin
rec = Recorder()
begin = time.time()
print(“Start recording”)
rec.start()

def stop_recording():
global rec, fina
if rec:
rec.stop()
fina = time.time()
t = fina - begin
print(‘录音时间为%ds’ % t)
rec.save(“recorded.wav”)

if name == “main”:
root = tk.Tk()
start_button = tk.Button(root, text=“开始录音”, command=start_recording)
start_button.pack()
stop_button = tk.Button(root, text=“停止录音”, command=stop_recording)
stop_button.pack()
root.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EYYLTV

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值