python录音pyaudio_使用PyAudio 进行录音、播放
要使用PyAudio,首先使用 pyaudio.PyAudio()
(1)实例化PyAudio ,它设置portaudio系统。
要录制或播放音频,请使用 pyaudio.PyAudio.open()
(2)在所需设备上打开所需音频参数的流。这设置了 pyaudio.Stream 播放或录制音频。
通过使用流式传输 pyaudio.Stream.write() 音频数据或使用流式传输音频数据来播放音频 pyaudio.Stream.read() 。
(3)请注意,在“阻止模式”中,每个 pyaudio.Stream.write() 或 pyaudio.Stream.read() 阻止直到所有给定/请求的帧都被播放/记录。或者,要动态生成音频数据或立即处理录制的音频数据,请使用下面概述的“回调模式”。
使用 pyaudio.Stream.stop_stream() 暂停播放/录制,并 pyaudio.Stream.close() 终止流。
(4)最后,使用 pyaudio.PyAudio.terminate()
(5)终止portaudio会话
1).采集音频import pyaudio
import wave
from tqdm import tqdm
def record_audio(wave_out_path,record_second):
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
wf = wave.open(wave_out_path, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
print("* recording")
for i in tqdm(range(0, int(RATE / CHUNK * record_second))):
data = stream.read(CHUNK)
wf.writeframes(data)
print("* done recording")
stream.stop_stream()
stream.close()
p.terminate()
wf.close()
record_audio("output.wav",record_second=4)
2).播放音频
通过tqdm,显示播放进度条"""PyAudio Example: Play a WAVE file."""
import pyaudio
import wave
from tqdm import tqdm
def play_audio(wave_path):
CHUNK = 1024
wf = wave.open(wave_path, 'rb')
# instantiate PyAudio (1)
p = pyaudio.PyAudio()
# open stream (2)
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True)
# read data
data = wf.readframes(CHUNK)
# play stream (3)
datas = []
while len(data) > 0:
data = wf.readframes(CHUNK)
datas.append(data)
for d in tqdm(datas):
stream.write(d)
# stop stream (4)
stream.stop_stream()
stream.close()
# close PyAudio (5)
p.terminate()
play_audio("output.wav")
3).以回调方式播放音频"""PyAudio Example: Play a WAVE file."""
import pyaudio
import wave
from tqdm import tqdm
import time
def play_audio_callback(wave_path):
CHUNK = 1024
wf = wave.open(wave_path, 'rb')
# instantiate PyAudio (1)
p = pyaudio.PyAudio()
def callback(in_data, frame_count, time_info, status):
data = wf.readframes(frame_count)
return (data, pyaudio.paContinue)
# open stream (2)
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
channels=wf.getnchannels(),
rate=wf.getframerate(),
output=True,
stream_callback=callback)
# read data
stream.start_stream()
while stream.is_active():
time.sleep(0.1)
# stop stream (4)
stream.stop_stream()
stream.close()
# close PyAudio (5)
p.terminate()
play_audio_callback("output.wav")
如果本文对您有所帮助,请支持下本站哦!!!^_^
python录音pyaudio_使用PyAudio 进行录音、播放相关推荐
- python录音pyaudio_用PyAudio录制特定时间的音频?
我正在尝试使用Python和PyAudio来学习音频捕获/录制.我看了几个例子,发现了一个:import pyaudio import wave CHUNK = 2 FORMAT = pyaudio. ...
- python录音pyaudio_『开发技巧』Python音频操作工具PyAudio上手教程
『开发技巧』Python音频操作工具PyAudio上手教程 0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. ...
- Python使用PyAudio制作录音工具
Python使用PyAudio制作录音工具 应用平台 音频录制部分 音频播放部分 GUI窗口所需属性值代码部分 pynput监听键盘 总结 最近有在使用屏幕录制软件录制桌面,在用的过程中突发奇想,使用 ...
- pyaudio usb playback_利用python工具包pyaudio实现录音
想训练一套自己的语音识别系统(命令词识别系统),首先得准备一套自己的语料库,发动身边的帅哥美女们帮忙进行录音.Python无所不能,很多工具包能给让我们的工作变的简单.优雅. 今天就给大家分享一下基于 ...
- python录音功能,python实现录音功能可随时停止录音代码
本篇文章小编给大家分享一下python实现录音功能可随时停止录音代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 代码如下: # -*- codin ...
- 百度语音识别+百度ERNIE-Gram+pyaudio麦克风录音(NLP自然语言处理)
1.pyaudio安装及通过pyaudio实现录音 pip install pyaudio 在conda环境中安装没有报错 实现录音的代码如下: # -*- coding: utf-8 -*- fro ...
- h5打开麦克风权限录音_h5打开麦克风权限录音_通过H5实现html页面的录音和播放 (Recorder用于html5录音)......
varrec;/**调用open打开录音请求好录音权限**/ var recOpen=function(success){//一般在显示出录音按钮或相关的录音界面时进行此方法调用,后面用户点击开始录音 ...
- 什么录音软件可以录制电脑内部播放的声音
什么录音软件可以录制电脑内部播放的声音 说起录音,我们应该都不陌生,多多少少都会使用到录音这个功能,不管是商业还是日常的工作学习中,录音已经成为人们生活中不可或缺的一项小功能,可能很多人使用录音这个功 ...
- PyAudio库录音代码
PyAudio库录音代码 PyAudio库安装 代码 PyAudio库安装 开始用的小写pyaudio,发现安装不上,这里需要用大写的. pip install PyAudio 代码 import p ...
- python 麦克风人声检测_【录音技巧】如何为人声录音 ,防止喷麦
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 - 用手握麦克风的困难 当歌手坚持要用手握着麦克风进行无拘无束的演唱时,你该怎样做呢?的确,有时用手拿着麦克风可以得到最佳的效果.但是,你无法避免歌手握麦 ...
最新文章
- 不要依赖代码中的异常
- 2021潍坊市高考成绩查询,潍坊2021高考成绩排名榜单,潍坊各高中高考成绩喜报
- 备份集中的数据库备份与现有的 '***' 数据库不同 RESTORE DATABASEnbs
- 一个多版本IE共存软件 IETester(支持IE5.5,6,7,8Beta1)
- MySQL探索(一):B-Tree索引
- 离散蚁群算法实例(求解旅行商问题)
- 这些Python好书,助你开发一臂之力
- [AHOI2009]飞行棋 BZOJ1800
- nacos 适配达梦、人大金仓数据库
- 《Java基础入门》笔记——01 Java初步
- Linux i2c-tools使用及调试
- 《圆明园的毁灭》教学设计方案
- HTML和CSS面试题—整理过的48题,关注收藏,持续更新
- Eclipse SVN断开连接后 怎么重新连接
- AT指令集超详细解析(内含EC20模块datasheet)
- python数据透视表怎么存下来_大数据分析如何利用Python创建数据透视表?
- 简要的谈谈文本数据挖掘的一般步骤
- 低代码和零代码火了,十大利器推荐
- 【风马一族_php】NO5_php基础知识_数组
- Android微信小尾巴,微信朋友圈小尾巴app
热门文章
- 偏导数,雅可比矩阵(jacobi matrix),黑塞矩阵(Hessian matrix)
- 中国象棋(人机博弈)
- app提示已到期_安装软件时,显示软件证书过期,怎么回事?
- Android轮播图代码
- WBS工作分解结构法
- git 2.15下载 git 2.18下载 windows 64位
- 手机型号修改 java_Android 中的设置关于手机中的型号的更改
- android 查看cad方案,android 加载dwg 图纸解决方案
- usb无线网卡linux驱动,Linux系统下安装USB无线网卡驱动方法
- React实现H5横屏电子签名板