python实现录音功能(可随时停止录音)

作者:qq_29934825 时间:2023-07-29 05:15:06 

本文实例为大家分享了python实现录音功能的具体代码,供大家参考,具体内容如下


# -*- 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('请输入相应数字开始:'))
   if a == 1:      
     rec = Recorder()
     begin = time.time()
     print("Start recording")
     rec.start()
     b = int(input('请输入相应数字停止:'))
     if b == 2:
       print("Stop recording")
       rec.stop()
       fina = time.time()
       t = fina - begin
       print('录音时间为%ds'%t)
       rec.save("1_%d.wav"%i)

本人在尝试语音识别领域的研究,欢迎一起探讨。

来源:https://blog.csdn.net/qq_29934825/article/details/82982737

标签:python,录音
0
投稿

猜你喜欢

  • Python爬虫框架之Scrapy中Spider的用法

    2023-10-04 10:38:21
  • Sql Server 开窗函数Over()的使用实例详解

    2024-01-17 14:34:33
  • pyqt5使用按钮进行界面的跳转方法

    2022-10-25 16:42:24
  • 使用python3+xlrd解析Excel的实例

    2021-05-09 23:37:33
  • python opencv肤色检测的实现示例

    2023-06-13 20:31:58
  • Python中pandas dataframe删除一行或一列:drop函数详解

    2021-07-09 16:46:47
  • SQL Server 远程更新目标表数据的存储过程

    2024-01-21 07:38:04
  • Pycharm中配置远程Docker运行环境的教程图解

    2022-08-06 09:39:19
  • 利用ASP.NET MVC和Bootstrap快速搭建响应式个人博客站(一)

    2023-07-06 23:47:39
  • Python cv.Canny()方法参数与使用方法

    2023-10-06 07:24:37
  • python 字符串格式化的示例

    2021-01-23 23:33:06
  • Python爬虫爬取电影票房数据及图表展示操作示例

    2021-07-18 08:34:32
  • ASP实现控制虚拟主机功能的函数ADSI

    2008-10-12 13:12:00
  • 2008年情人节各网站节日Logo欣赏

    2008-02-17 14:12:00
  • wxPython实现整点报时

    2023-06-11 05:25:39
  • asp实现本周的一周时间列表的代码

    2011-04-06 10:45:00
  • Python flask框架实现浏览器点击自定义跳转页面

    2023-04-26 15:48:31
  • Python 实现try重新执行

    2022-12-21 03:17:19
  • Python学习之MRO方法搜索顺序

    2022-01-25 13:08:12
  • 一篇文章弄懂Python中的内建函数

    2023-01-18 00:36:36
  • asp之家 网络编程 m.aspxhome.com