Python音频处理 您所在的位置:网站首页 python编辑音频用到的库 Python音频处理

Python音频处理

2024-07-04 19:31| 来源: 网络整理| 查看: 265

Pydub是Python音频处理库,可以对音频进行切割、合并、转换、调整音量等操作。以下是对pydub各个知识点的介绍和案例。

Pydub 1. 安装

使用pip安装即可(还需安装ffmpeg依赖,建议使用conda命令安装,则不需要配置环境):

pip install pydub 2. 导入和读取音频文件 from pydub import AudioSegment audio = AudioSegment.from_file("path/to/file") 3. 播放音频 from pydub.playback import play play(audio) 4. 音频时长 duration = audio.duration_seconds # 单位为秒 5. 音频切割 # 前10秒 audio = audio[:10000] # 后10秒 audio = audio[-10000:] # 从第10秒开始到第20秒结束 audio = audio[10000:20000] # 从第10秒开始到结尾 audio = audio[10000:] # 从开始到第10秒audio = audio[:10000] 6. 音频合并 audio1 = AudioSegment.from_file("path/to/file1") audio2 = AudioSegment.from_file("path/to/file2") audio_combined = audio1 + audio2 7. 音频转换 audio.export("path/to/new/file", format="mp3") 8. 调整音量 # 增加10分贝 louder_audio = audio + 10 # 减小10分贝 quieter_audio = audio - 10 9. 等分分割音频 # 等分分割,按大概每三分钟进行分割 for i in range(1, 1000): if 3.3 >= (audio.duration_seconds / (60 * i)) >= 2.8: number = i break chunks = audio[::int(audio.duration_seconds / number * 1000 + 1)] # 切割 # 保存分割后的音频 for i, chunk in enumerate(chunks): chunk.export("path/to/new/file{}.wav".format(title,i), format="wav") 10. 完整代码

下面是一段完整的代码,用于对音频进行前后切割,并将音频分割成合适长度的小段进行保存。

from pydub import AudioSegment # 读取音频文件 audio = AudioSegment.from_file("path/to/file") # 输出视频时长 print('视频时长:', audio.duration_seconds / 60) # 前后切割 start = int(input('前切割n秒,不切割输入0'))*1000 end = int(input('后切割n秒,不切割输入0'))*1000 if start: audio = audio[start:-end] # 计算合适的分割长度 for i in range(1, 1000): if 3.3 >= (audio.duration_seconds / (60 * i)) >= 2.8: number = i break chunks = audio[::int(audio.duration_seconds / number * 1000 + 1)] # 保存分割后的音频 for i, chunk in enumerate(chunks): print('分割后的时长:', chunk.duration_seconds / 60) chunk.export("path/to/new/file{}.wav".format(i), format="wav")

以上就是pydub的主要知识点和一个完整的实例。通过pydub,我们可以方便地对音频进行处理和转换,让我们的音频处理更加高效和便捷。 另外,下面还列举了一些pydub的其他应用案例。

应用案例 1. 将音频文件转换为指定格式 from pydub import AudioSegment # 读取音频文件 audio = AudioSegment.from_file("path/to/file") # 转换为mp3格式并保存 audio.export("path/to/new/file.mp3", format="mp3") 2. 将多个音频文件合并为一个文件 from pydub import AudioSegment # 读取音频文件 audio1 = AudioSegment.from_file("path/to/file1") audio2 = AudioSegment.from_file("path/to/file2") # 合并音频文件并保存 combined_audio = audio1 + audio2 combined_audio.export("path/to/new/file", format="wav") 3. 制作铃声 from pydub import AudioSegment # 读取音频文件 audio = AudioSegment.from_file("path/to/file") # 切割并保存 start = 10000 end = 15000 ringtone = audio[start:end] ringtone.export("path/to/new/file", format="mp3") 4. 调整音频音量 from pydub import AudioSegment # 读取音频文件 audio = AudioSegment.from_file("path/to/file") # 增加10分贝 louder_audio = audio + 10 # 减小10分贝 quieter_audio = audio - 10 # 保存调整后的音频 louder_audio.export("path/to/new/file", format="wav") quieter_audio.export("path/to/new/file", format="wav") 案例:通过识别空白音,分割音频中的歌曲 from pydub import AudioSegment from pydub.silence import split_on_silence # 读取音频文件 audio = AudioSegment.from_file("audio.mp3", format="mp3") # 设置分割参数 min_silence_len = 700 # 最小静音长度 silence_thresh =-10 # 静音阈值,越小越严格 keep_silence = 600 # 保留静音长度 # 计算分割数量 num_segments = int(audio.duration_seconds/60/3) # 每首歌曲大概三分钟,计算歌曲数量 # 分割音频文件 for i in range(-10, 0): segments = split_on_silence(audio, min_silence_len=min_silence_len, silence_thresh=i, keep_silence=keep_silence) if len(segments)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有