位置:首页 > 行业软件 > Python从零开始实现音频播放与录音的完整教程

Python从零开始实现音频播放与录音的完整教程

时间:2026-06-02  |  作者:318050  |  阅读:0

音频播放

快速播放:使用 playsound

Python 提供了多个音频处理库。其中 playsound 是最简单的方案。安装后,两行代码即可播放音频:

from playsound import playsound
Python从零开始实现音频播放与录音的完整教程_wishdown.com
playsound('your_audio_file.mp3')

your_audio_file.mp3 替换为实际文件路径。这种方式控制力有限,适合快速测试。

精细控制:使用 pyaudio

如需调节音量、控制声道或处理实时流,需用 pyaudio。它提供底层接口。播放 WAV 文件时,需配合 wa ve 模块:

import pyaudio
import wa ve

# 打开音频文件
wf = wa ve.open('your_audio_file.wa v', 'rb')
Python从零开始实现音频播放与录音的完整教程_wishdown.com
# 初始化pyaudio
p = pyaudio.PyAudio()

# 打开音频流
stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                channels=wf.getnchannels(),
                rate=wf.getframerate(),
                output=True)

# 读取数据并播放
data = wf.readframes(1024)
while data:
    stream.write(data)
    data = wf.readframes(1024)

# 收尾清理
stream.stop_stream()
stream.close()
p.terminate()

逻辑清晰:先读取 WAV 参数,再用参数打开输出流。循环读取数据块并写入流,最后关闭资源。这是许多音频处理工具的基础。

音频录音

使用 pyaudio 录制音频

pyaudio 同样支持录音——将输出流改为输入流即可。下面是录制 5 秒音频的示例:

import pyaudio
import wa ve

# 参数设置
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
CHUNK = 1024
RECORD_SECONDS = 5
WA VE_OUTPUT_FILENAME = "recorded_audio.wa v"

# 初始化pyaudio
p = pyaudio.PyAudio()

# 打开输入流
stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("* recording")

frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("* done recording")

# 停止并关闭
stream.stop_stream()
stream.close()
p.terminate()

# 保存为WA V文件
wf = wa ve.open(WA VE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

关键参数说明:

  • FORMAT:16 位采样
  • RATE:44100 Hz(CD 音质)
  • CHUNK:缓冲区大小

循环从麦克风读取数据块,拼接到 frames 列表。最后用 wa ve 模块写入文件。如需延长录音时间,修改 RECORD_SECONDS 即可。

总结:从播放到录音

Python 覆盖了音频处理的基本场景。无论是构建语音助手前端,还是为多媒体项目搭建基础工具,这些代码都是很好的起点。后续可延伸至实时处理、混音或音频分析。

来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多