python的pyaudio可以进行录音,播放,生成wav文件等等,WAVE是录音时用的标准的WINDOWS文件格式,文件的扩展名为WAV,数据本身的格式为PCM或压缩型,属于无损音乐格式的一种。在我们研究语音识别,自然语言处理的过程中,常常会使用到它,比如我们调用百度语音识别所以我们首先研究一下pyaudio库的安装与使用。

安装:

pip install pyaudio

调用pyaudio使用麦克风录制声音:

python中的pyaudio库可以直接通过麦克风录制声音,我们可以通过调用该库,获取到wav测试语音。 具体代码如下所示:

#!/usr/bin/python3
# -*- coding: utf-8 -*-from pyaudio import PyAudio, paInt16
import numpy as np
from datetime import datetime
import waveclass recoder:NUM_SAMPLES = 2000      #pyaudio内置缓冲大小SAMPLING_RATE = 8000    #取样频率LEVEL = 500         #声音保存的阈值COUNT_NUM = 20      #NUM_SAMPLES个取样之内出现COUNT_NUM个大于LEVEL的取样则记录声音SAVE_LENGTH = 8         #声音记录的最小长度:SAVE_LENGTH * NUM_SAMPLES 个取样TIME_COUNT = 60     #录音时间,单位sVoice_String = []def savewav(self,filename):wf = wave.open(filename, 'wb') wf.setnchannels(1) wf.setsampwidth(2) wf.setframerate(self.SAMPLING_RATE) wf.writeframes(np.array(self.Voice_String).tostring()) # wf.writeframes(self.Voice_String.decode())wf.close() def recoder(self):pa = PyAudio() stream = pa.open(format=paInt16, channels=1, rate=self.SAMPLING_RATE, input=True, frames_per_buffer=self.NUM_SAMPLES) save_count = 0 save_buffer = [] time_count = self.TIME_COUNTwhile True:time_count -= 1# print time_count# 读入NUM_SAMPLES个取样string_audio_data = stream.read(self.NUM_SAMPLES) # 将读入的数据转换为数组audio_data = np.fromstring(string_audio_data, dtype=np.short)# 计算大于LEVEL的取样的个数large_sample_count = np.sum( audio_data > self.LEVEL )print(np.max(audio_data))# 如果个数大于COUNT_NUM,则至少保存SAVE_LENGTH个块if large_sample_count > self.COUNT_NUM:save_count = self.SAVE_LENGTH else: save_count -= 1if save_count < 0:save_count = 0 if save_count > 0 : # 将要保存的数据存放到save_buffer中#print  save_count > 0 and time_count >0save_buffer.append( string_audio_data ) else: #print save_buffer# 将save_buffer中的数据写入WAV文件,WAV文件的文件名是保存的时刻#print "debug"if len(save_buffer) > 0 : self.Voice_String = save_buffersave_buffer = [] print("Recode a piece of  voice successfully!")return Trueif time_count==0: if len(save_buffer)>0:self.Voice_String = save_buffersave_buffer = [] print("Recode a piece of  voice successfully!")return Trueelse:return Falseif __name__ == "__main__":r = recoder()r.recoder()r.savewav("test.wav") 

pyaudio文档:http://people.csail.mit.edu/hubert/pyaudio/docs/
参考文档:https://blog.csdn.net/yexiaohhjk/article/details/73132562

原创文章,转载请注明 :python调用pyaudio使用麦克风录制wav声音文件用于pytorch语音识别以及Mac/Ubuntu安装pyaudio教程 - pytorch中文网
原文出处: https://ptorch.com/news/84.html
问题交流群 :168117787




python调用pyaudio使用麦克风录制wav声音文件相关推荐

  1. python不用模块调用麦克风_python调用pyaudio使用麦克风录制wav声音文件的教程

    python的pyaudio可以进行录音,播放,生成wav文件等等,WAVE是录音时用的标准的WINDOWS文件格式,文件的扩展名为WAV,数据本身的格式为PCM或压缩型,属于无损音乐格式的一种.在我 ...

  2. python录音pyaudio_python调用pyaudio使用麦克风录制wav声音文件的教程

    python的pyaudio可以进行录音,播放,生成wav文件等等,WAVE是录音时用的标准的WINDOWS文件格式,文件的扩展名为WAV,数据本身的格式为PCM或压缩型,属于无损音乐格式的一种.在我 ...

  3. 利用kmplayer查看wav声音文件的采样率

    用kmplayer打开wav文件, 在Kmplayer上点击右键 选择"媒体信息" 可以看到wav声音文件的采样率为44.1kHz.

  4. 构建PCM格式WAV声音文件

    WAV声音文件是Windows系统早期就开始使用的一种声音文件格式,可以包含多种音频格式.其中PCM格式属于未压缩音频数据流,数据格式比较简单. 下面就生成PCM格式音频文件进行说明. PCM格式音频 ...

  5. Python 调用pyaudio库录制以及播放wav音频文件

    1.Pyaudio简介 PyAudio 是语音处理的 Python 库,提供了比较丰富的功能. 2.功能 python的Pyaud模块可以调用电脑的麦克风或音响进行录音,音频播放,生成wav文件等. ...

  6. BlackBerry 10:Qt中使用OpenAL播放wav声音文件

    BlackBerry 10/PlayBook OS 2.0里面都内置OpenAL的类库,所以在程序中使用OpenAL类库播放声音是很方便的. BlackBerry 10开发者网站上提供的例子程序Cow ...

  7. python中的函数wavfile_Python--读取wav格式文件

    Python--读取wav格式文件 (2013-05-28 06:56:22) 标签: 格式文件 读取 杂谈 1.import wave 用于读写wav文件 它提供了一个方便的WAV#26684;式接 ...

  8. windows播放wav声音文件--java播放wav完整demo

    有个新的需求,要java的windows应用发声音,原本说的只是使用蜂鸣器发声音,直接上代码: public static void main(String[] args) {Toolkit tool ...

  9. C语言第五篇 python调用C语言写的动态链接库DLL文件

    学习目标:1.学会C语言写windows下的DLL文件.2.用gcc命令将C程序编译成DLL文件.3.学会用python调用C语言写的DLL. 学习内容1:先用C语言写一个简单程序,先建立dll.c文 ...

  10. OpenCV+python调用本地摄像头并录制视频

    1.调用摄像头并录制视频 from cv2 import cv2 #捕获摄像头帧 cameraCapture = cv2.VideoCapture(0) fps = 30 size=(int(came ...

最新文章

  1. 在Go中构建区块链 第7部分:网络
  2. stl中的list学习笔记
  3. ifconfig 命令找不到解决
  4. 有人不会使用计算机的反义,现代汉语练习题及答案
  5. 【动态规划】多重背包
  6. 自然语言处理与中文分词的难点总结--学习笔记
  7. 车牌颜色识别现在的结果
  8. Deformable-DETR的学习笔记
  9. Cocos2d-JS项目之三:使用合图
  10. Java学习之Thread之【Monitor】与【wait】与【notify】与【sleep】_加【Callable】【Executor】【ExecutorService】【Future】
  11. 基本知识 100136
  12. 公司账号密码、通信录泄露屡见不鲜,肆意流淌的敏感信息:WEB安全基础入门—信息泄露漏洞
  13. 斐讯N1刷无线打印服务器,斐讯N1刷armbian制作cups打印服务器支持airprint不使用foo2zjs|hp1020...
  14. 苹果itunes软件怎么下载安装
  15. 大佛顶首楞严经摄论 太虚大师著 -读记
  16. Vmware虚拟机三种网络模式详解
  17. 小程序内嵌H5、H5回跳至小程序、小程序打开公众号中的文章
  18. Java---设计【运动会成绩管理系统】
  19. 2022-2028全球隔离式CAN收发器行业调研及趋势分析报告
  20. 腹肌练习能帮助燃烧腹部脂肪吗?看完再也没有疑惑了

热门文章

  1. 正点原子STM32F103 DMA代码例程魔改
  2. python汉化包放哪_python 汉化
  3. python爬虫网络中断_python爬虫中断
  4. 易语言大漠透明图制作与使用
  5. matlab假设网格颜色,MATLAB 画颜色网格图
  6. css实现页面标签的跳转
  7. SpringBoot集成Jsoup爬虫——三级列表
  8. LTE下行资源分配方式
  9. idea设置背景护眼色
  10. 对于DEMATEL法的部分理解