WAV 和 MP3 是两种常见的音频格式:
在 Python 中,可以使用多种库将 WAV 转换为 MP3:
from pydub import AudioSegment
# 加载 WAV 文件
audio = AudioSegment.from_wav("input.wav")
# 导出为 MP3
audio.export("output.mp3", format="mp3", bitrate="192k")
import librosa
import soundfile as sf
# 加载 WAV 文件
y, sr = librosa.load("input.wav", sr=None)
# 保存为 MP3
sf.write("output.mp3", y, sr, format="mp3")
import wave
import pymedia.audio.acodec as acodec
import pymedia.muxer as muxer
# 读取 WAV 文件
wav = wave.open("input.wav", "rb")
params = wav.getparams()
frames = wav.readframes(params.nframes)
wav.close()
# 创建编码器
enc = acodec.Encoder("mp3")
# 创建复用器
mux = muxer.Muxer("mp3")
# 编码并写入文件
with open("output.mp3", "wb") as f:
frames = enc.encode(frames)
f.write(frames)
解决方案: 安装 ffmpeg 并确保它在系统路径中:
# Linux
sudo apt-get install ffmpeg
# macOS
brew install ffmpeg
# Windows
# 下载 ffmpeg 并添加到系统 PATH
解决方案: 调整比特率参数:
audio.export("output.mp3", format="mp3", bitrate="320k") # 使用更高的比特率
解决方案: 分段处理大文件:
from pydub import AudioSegment
import os
chunk_size = 10000 # 10秒的块
audio = AudioSegment.from_wav("large_input.wav")
for i, chunk in enumerate(audio[::chunk_size]):
chunk.export(f"output_part_{i}.mp3", format="mp3")
以上方法可以根据具体需求选择最适合的方案。
没有搜到相关的文章