你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
基于Python语言的音频捕获及频谱分析设计(四)
 

3.2开始及停止录音接口

函数Record作为开始录音及捕获音频数据接口,调用方法PyIDirectSoundCaptureBuff
er.Start()
告诉缓冲区对象开始录音(动态缓冲模式),通过函数win32event.WaitForSingleObject(),监控AudioRecord初始化里所创建的事件对象,当有事件通知发出时,即从缓冲区取出音频数据。函数Stop调用缓冲区对象的
PyIDirectSound
CaptureBuffer.Stop()
方法,让缓冲区停止工作。主要代码如下:

def Record(self):

    self.buffer.Start(directsound.DSCBSTART_LOOPING)#开始录音,动态缓冲模式

    self.STATUS=True#设置录音状态标志

    i=0

    n=self.bSize/2

    while self.STATUS:

       win32event.WaitForSingleObject(self.evt[i])#等待事件通知

       self.data = self.buffer.Update(i*n, n)#从缓冲区取出音频数据,第一个参数为偏移量,第二个参数为数据大小。

       i=(i+1)%2

 

 def Stop(self):

     self.buffer.Stop()#停止录音

     self.STATUS=False#设置录音状态

4 软件实现

利用自定义的AudioRecord模块,编制了简易虚拟示波及频谱分析程序,连接MIC或其他声音输入设备,即可以实时地实现音频信号的波形显示和频谱显示,图2所示为一段音乐的波形图和频谱,其采样率为8000Hz,双声道,量化比特数为8位,PCM格式,每次计算一个声道的采样数为512(时间间隔1024/8000 s)。



2 音频信号实时波形图及频谱图

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089