要使用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 进行录音、播放相关推荐

  1. python录音pyaudio_用PyAudio录制特定时间的音频?

    我正在尝试使用Python和PyAudio来学习音频捕获/录制.我看了几个例子,发现了一个:import pyaudio import wave CHUNK = 2 FORMAT = pyaudio. ...

  2. python录音pyaudio_『开发技巧』Python音频操作工具PyAudio上手教程

    『开发技巧』Python音频操作工具PyAudio上手教程 ​ 0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. ...

  3. Python使用PyAudio制作录音工具

    Python使用PyAudio制作录音工具 应用平台 音频录制部分 音频播放部分 GUI窗口所需属性值代码部分 pynput监听键盘 总结 最近有在使用屏幕录制软件录制桌面,在用的过程中突发奇想,使用 ...

  4. pyaudio usb playback_利用python工具包pyaudio实现录音

    想训练一套自己的语音识别系统(命令词识别系统),首先得准备一套自己的语料库,发动身边的帅哥美女们帮忙进行录音.Python无所不能,很多工具包能给让我们的工作变的简单.优雅. 今天就给大家分享一下基于 ...

  5. python录音功能,python实现录音功能可随时停止录音代码

    本篇文章小编给大家分享一下python实现录音功能可随时停止录音代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 代码如下: # -*- codin ...

  6. 百度语音识别+百度ERNIE-Gram+pyaudio麦克风录音(NLP自然语言处理)

    1.pyaudio安装及通过pyaudio实现录音 pip install pyaudio 在conda环境中安装没有报错 实现录音的代码如下: # -*- coding: utf-8 -*- fro ...

  7. h5打开麦克风权限录音_h5打开麦克风权限录音_通过H5实现html页面的录音和播放 (Recorder用于html5录音)......

    varrec;/**调用open打开录音请求好录音权限**/ var recOpen=function(success){//一般在显示出录音按钮或相关的录音界面时进行此方法调用,后面用户点击开始录音 ...

  8. 什么录音软件可以录制电脑内部播放的声音

    什么录音软件可以录制电脑内部播放的声音 说起录音,我们应该都不陌生,多多少少都会使用到录音这个功能,不管是商业还是日常的工作学习中,录音已经成为人们生活中不可或缺的一项小功能,可能很多人使用录音这个功 ...

  9. PyAudio库录音代码

    PyAudio库录音代码 PyAudio库安装 代码 PyAudio库安装 开始用的小写pyaudio,发现安装不上,这里需要用大写的. pip install PyAudio 代码 import p ...

  10. python 麦克风人声检测_【录音技巧】如何为人声录音 ,防止喷麦

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 - 用手握麦克风的困难 当歌手坚持要用手握着麦克风进行无拘无束的演唱时,你该怎样做呢?的确,有时用手拿着麦克风可以得到最佳的效果.但是,你无法避免歌手握麦 ...

最新文章

  1. 不要依赖代码中的异常
  2. 2021潍坊市高考成绩查询,潍坊2021高考成绩排名榜单,潍坊各高中高考成绩喜报
  3. 备份集中的数据库备份与现有的 '***' 数据库不同 RESTORE DATABASEnbs
  4. 一个多版本IE共存软件 IETester(支持IE5.5,6,7,8Beta1)
  5. MySQL探索(一):B-Tree索引
  6. 离散蚁群算法实例(求解旅行商问题)
  7. 这些Python好书,助你开发一臂之力
  8. [AHOI2009]飞行棋 BZOJ1800
  9. nacos 适配达梦、人大金仓数据库
  10. 《Java基础入门》笔记——01 Java初步
  11. Linux i2c-tools使用及调试
  12. 《圆明园的毁灭》教学设计方案
  13. HTML和CSS面试题—整理过的48题,关注收藏,持续更新
  14. Eclipse SVN断开连接后 怎么重新连接
  15. AT指令集超详细解析(内含EC20模块datasheet)
  16. python数据透视表怎么存下来_大数据分析如何利用Python创建数据透视表?
  17. 简要的谈谈文本数据挖掘的一般步骤
  18. 低代码和零代码火了,十大利器推荐
  19. 【风马一族_php】NO5_php基础知识_数组
  20. Android微信小尾巴,微信朋友圈小尾巴app

热门文章

  1. 偏导数,雅可比矩阵(jacobi matrix),黑塞矩阵(Hessian matrix)
  2. 中国象棋(人机博弈)
  3. app提示已到期_安装软件时,显示软件证书过期,怎么回事?
  4. Android轮播图代码
  5. WBS工作分解结构法
  6. git 2.15下载 git 2.18下载 windows 64位
  7. 手机型号修改 java_Android 中的设置关于手机中的型号的更改
  8. android 查看cad方案,android 加载dwg 图纸解决方案
  9. usb无线网卡linux驱动,Linux系统下安装USB无线网卡驱动方法
  10. React实现H5横屏电子签名板