网站首页 > 基础教程 正文
1、 处理 WAV 文件
winsound
- 仅适用于 Windows 环境
import winsound
winsound.PlaySound("path_to_wav_file.wav", winsound.SND_FILENAME)
wave
- 支持单声道和立体声
- 不支持压缩/解压缩
import wave
with wave.open("path_to_wav_file.wav", "rb") as wav_file: # 以只读模式打开 WAV 文件
# 获取基本信息
n_channels = wav_file.getnchannels() # 通道数(1=单声道,2=立体声)
sample_width = wav_file.getsampwidth() # 样本宽度(以字节为单位)
framerate = wav_file.getframerate() # 帧率
n_frames = wav_file.getnframes() # 帧数
comp_type = wav_file.getcomptype() # 压缩类型(仅支持“NONE”)
comp_name = wav_file.getcompname() # 压缩名称
# 读取音频数据
frames = wav_file.readframes(n_frames) # 读取 n_frames 帧
assert len(frames) == sample_width * n_frames
# 复制到一个新的 WAV 文件
with wave.open("path_to_new_wav_file.wav", "wb") as wav_file: # 以只写模式打开 WAV 文件
# 写入音频数据
params = (n_channels, sample_width, framerate, n_frames, comp_type, comp_name)
wav_file.setparams(params)
wav_file.writeframes(frames)
2、 使用 Python 和 FFmpeg 转换音频文件
from subprocess import check_call
ok = check_call(['ffmpeg','-i','input.mp3','output.wav'])
if ok:
with open('output.wav', 'rb') as f:
wav_file = f.read()
注意:
- http://superuser.com/questions/507386/why-would-i-choose-libav-over-ffmpeg-or-is-there-even-a-difference
- FFmpeg、libav 和 avconv 之间的相似之处和不同之处是什么?
3、 播放 Windows 的蜂鸣声
Windows 提供了一个明确的接口,winsound 模块允许您以给定的频率和持续时间播放原始蜂鸣声。
import winsound
freq = 2500 # 设置频率为 2500 赫兹
dur = 1000 # 设置持续时间为 1000 毫秒(即 1 秒)
winsound.Beep(freq, dur)
4、 使用 Pyglet 播放音频
import pyglet
audio = pyglet.media.load("audio.wav")
audio.play()
更多信息请参阅 Pyglet。
猜你喜欢
- 2025-03-19 2025年必学的Python自动化办公的15个实用脚本
- 2025-03-19 Python文件操作实战——轻松驾驭数据读写
- 2025-03-19 Python 析构函数使用指南(python中的析构函数)
- 2025-03-19 一文掌握Python找到文件操作(python在文件中查找指定数据)
- 2025-03-19 掌握这几个高级 Python 特性,编写更优代码
- 2025-03-19 破解文件处理难题:用 Python 处理 .txt 文件的必学方法
- 2025-03-19 怎么在Python中读取和写入文件?(用python读取文件内容)
- 2025-03-19 用 Python 从 Word 文档中提取文本(综合指南)
- 2025-03-19 在 Python 中将列表写入文件:完整指南
- 2025-03-19 一学就废|Python基础碎片,文件读写
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)