【音频处理】pyaudio库详解及示例

探索音频处理的世界,让我们深入解读Python的音频处理神器——pyaudio库。这个强大的第三方库让你轻松在跨平台环境中实现音频播放和录制,提升你的Python编程技能。

实例化与基础操作

首先,创建一个PyAudio对象是关键,如下所示:


audio = pyaudio.PyAudio()
stream = audio.open(rate=44100, channels=2, format=pyaudio.paInt16, input=False, output=True)

这里的参数含义丰富:


  • rate: 采样率,如44100Hz,决定音频的音质和播放速度。
  • channels: 通道数,单声道为1,立体声为2,决定音频的立体声效果。
  • format: 采样大小和格式,如pyaudio.paInt16表示16位整数。
  • inputoutput:设置流的类型,True代表录音,False代表播放。

     

音频流操作

接下来,处理音频流,如录制或播放:


pcm = audio_stream.read(num_frames=1024, exception_on_overflow=True)

这里的read方法接收帧数和是否允许溢出异常控制,而write则是将数据帧写入:


audio_stream.write(frames=pcm, num_frames=None, exception_on_underflow=False)

通过灵活调整这些参数,你可以精确控制音频的播放和录制行为。

暂停与停止

当需要暂停或停止时,简单地调用:


audio_stream.stop_stream()

关闭与结束

用完后别忘了清理:


# 结束音频流audio_stream.close()
# 结束PyAudio会话audio_stream.terminate()
# 完全释放系统资源p.terminate()

实战演示

下面是一个实例,演示如何使用pyaudio播放一个wav音频文件:


import wave
import sys
import pyaudio

with wave.open("ding.wav", 'rb') as wf:
p = pyaudio.PyAudio()
params = wf.getparams()
stream = p.open(channels=params[0], format=params[1], rate=params[2], output=True)

while True:
data = wf.readframes(1024)
if not data:
break
stream.write(data)

stream.close()
p.terminate()
sys.exit(0)

这个例子展示了如何完整地从读取音频文件到播放的全过程。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值