iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python音频处理——pydub
  • 711
分享到

Python音频处理——pydub

ffmpegpython开发语言 2023-09-09 19:09:52 711人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

Pydub是python音频处理库,可以对音频进行切割、合并、转换、调整音量等操作。以下是对pydub各个知识点的介绍和案例。 Pydub 1. 安装 使用pip安装即可(还需安装FFmpeg依赖,建

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

Pydub

1. 安装

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

pip install pydub

2. 导入和读取音频文件

from pydub import AudiOSegmentaudio = AudioSegment.from_file("path/to/file")

3. 播放音频

from pydub.playback import playplay(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        breakchunks = 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'))*1000end = int(input('后切割n秒,不切割输入0'))*1000if start:    audio = audio[start:-end]# 计算合适的分割长度for i in range(1, 1000):    if 3.3 >= (audio.duration_seconds / (60 * i)) >= 2.8:        number = i        breakchunks = 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 + audio2combined_audio.export("path/to/new/file", format="wav")

3. 制作铃声

from pydub import AudioSegment# 读取音频文件audio = AudioSegment.from_file("path/to/file")# 切割并保存start = 10000end = 15000ringtone = 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 AudioSegmentfrom 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) <= num_segments:        print(f"分割成功,共分割出 {len(segments)} 段")        break    else:        print(f"当前阈值为 {i},分割出 {len(segments)} 段,继续尝试")

首先,我们使用AudioSegment.from_file()方法读取音频文件,并设置分割参数min_silence_lensilence_threshkeep_silence分别表示最小静音长度、静音阈值和保留静音长度。其中,静音阈值越小,分割出的小段越多,但可能会出现误分割的情况;反之,静音阈值越大,分割出的小段越少,但可能会出现漏分割的情况。

然后,我们计算分割数量num_segments,即将音频文件分割成多少段。这里我们假设每首歌曲大概三分钟,计算出总共需要分割成多少段。

最后,我们使用split_on_silence()方法对音频文件进行分割,设置分割参数,并通过循环来不断调整静音阈值,直到分割出的小段数量符合预期为止。如果分割成功,则跳出循环;否则,继续尝试。
总而言之,pydub是一个非常实用的音频处理库,可以方便地进行音频处理、转换、合并等操作。同时,pydub还有丰富的应用场景,如制作铃声、调整音量等。值得注意的是,在使用pydub的过程中,需要注意音频格式的兼容性问题。



此外,还可以通过pydub对音频进行编解码、混音、重采样等操作。下面是一些常见的操作示例。

编解码、混音、重采样

1. 编解码

from pydub import AudioSegment# 读取音频文件audio = AudioSegment.from_file("path/to/file")# 编码encoded_audio = audio.set_frame_rate(16000).set_sample_width(2).set_channels(1)# 解码decoded_audio = encoded_audio.set_frame_rate(44100).set_sample_width(4).set_channels(2)

2. 混音

from pydub import AudioSegment# 读取音频文件audio1 = AudioSegment.from_file("path/to/file1")audio2 = AudioSegment.from_file("path/to/file2")# 混音mixed_audio = audio1.overlay(audio2)# 保存混音后的音频mixed_audio.export("path/to/new/file", format="wav")

3. 重采样

from pydub import AudioSegment# 读取音频文件audio =AudioSegment.from_file("path/to/file")# 重采样为44100Hzresampled_audio = audio.set_frame_rate(44100)# 保存重采样后的音频resampled_audio.export("path/to/new/file", format="wav")

通过pydub,我们可以方便地进行音频编解码、混音、重采样等操作,进一步扩展了pydub的应用场景。需要注意的是,在进行音频混音操作时,需要保证两个音频文件的采样率、采样位数和声道数相同。
最后,总结一下pydub的优点和缺点。

优点:

  1. 轻量级:pydub是一个轻量级的音频处理库,安装方便,使用简单。

  2. 功能丰富:pydub提供了丰富的音频处理功能,包括切割、合并、转换、调整音量、编解码、混音、重采样等。

  3. 应用广泛:pydub的应用场景非常广泛,包括音频处理、铃声制作、音频格式转换、语音识别等等。

缺点:

  1. 对格式的兼容性有限:pydub对音频格式的兼容性有限,不支持所有的音频格式,需要先将音频转换为支持的格式后才能进行处理。

  2. 性能一般:pydub在处理大文件时,性能可能会比较一般,需要耗费一定的时间和计算资源。

  3. 不支持流式处理:pydub不支持流式处理,需要将整个音频文件读取到内存中,导致内存占用较大。

综上所述,pydub是一个功能丰富、应用广泛的音频处理库。在使用pydub时,需要注意音频格式的兼容性问题,并注意处理大文件时的性能和内存占用。如果需要处理更复杂的音频任务,可以考虑使用其他更专业的音频处理库。

总结

博客介绍了如何使用Python的pydub库将音频文件分割成多个小段。我们首先读取音频文件,然后设置分割参数,并计算分割数量。最后,通过循环来不断调整静音阈值,直到分割出的小段数量符合预期为止。这种方法可以用于对音频进行处理和分析,例如语音识别、音乐推荐等。
需要注意的是,音频分割的效果受到分割参数的影响,需要根据具体情况进行调整。另外,分割出的小段可能存在误分割和漏分割的情况,需要进行后续的检查和处理。

来源地址:https://blog.csdn.net/qq_20163065/article/details/129652727

--结束END--

本文标题: Python音频处理——pydub

本文链接: https://www.lsjlt.com/news/401815.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python音频处理——pydub
    Pydub是Python音频处理库,可以对音频进行切割、合并、转换、调整音量等操作。以下是对pydub各个知识点的介绍和案例。 Pydub 1. 安装 使用pip安装即可(还需安装ffmpeg依赖,建...
    99+
    2023-09-09
    ffmpeg python 开发语言
  • Python音频处理库pydub如何使用
    本篇内容主要讲解“Python音频处理库pydub如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python音频处理库pydub如何使用”吧!1. 安装使用pip安装即可(还需安装ffm...
    99+
    2023-07-05
  • Python音频处理库pydub的使用教程详解
    目录1. 安装2. 导入和读取音频文件3. 播放音频4. 音频时长5. 音频切割6. 音频合并7. 音频转换8. 调整音量9. 等分分割音频10. 完整代码应用案例1. 将音频文件转...
    99+
    2023-03-22
    Python音频处理库pydub Python音频处理 Python pydub
  • Python利用Pydub实现自动分割音频
    目录I. 简介II. 安装III. 使用补充随着短视频应用的普及,越来越多人开始了解并尝试制作自己的短视频作品。而在制作短视频时,背景音乐的选择和使用也是非常重要的一步。很多人喜欢选...
    99+
    2023-05-19
    Python Pydub分割音频 Python 分割音频 Python Pydub
  • python处理音频文件(mp3)
    今天aiping点读笔的MP3源文件出现声音大小不一致,而且需要将英文单词MP3与单词翻译MP3文件连接起来,刚开始使用ffmpeg效果很差。万能的gitgub再次证明了它的万能,我找到了pydub 1 网址:https://git...
    99+
    2023-01-31
    音频文件 python
  • 怎么在Python中使用pydub模块转换音频格式
    这篇文章将为大家详细讲解有关怎么在Python中使用pydub模块转换音频格式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.需要下载的Python模块和ffmpeg多媒体处理工具需要的P...
    99+
    2023-06-15
  • Speech | 语音处理,分割一段音频(python)
    本文主要是关于语音数据在处理过程中的一些脚本文件以及实例,所有代码只需要更改所需处理的文件路径,输出路径等,全部可运行。 目录 所需环境 方法1:将一整段音频按时间批量切成一个一个音频 方法2:将一整段音频按语句停顿批量切成一个一个音频 方...
    99+
    2023-10-20
    音视频 python 开发语言 音频处理
  • Android音视频处理技术:音频混音与播放
    作者:禅与计算机程序设计艺术 1.简介 在现代生活中,我们都会听到各种各样的声音。但是有的声音会相互抵消影响我们的正常生活,而有的声音则会增加我们的情绪快乐。人类为了能够真正体验到声音带来的快感,需...
    99+
    2023-10-24
    自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
  • Python音频处理库的使用指南
    音频处理是多媒体领域的一个重要分支,除了音乐产业,还是人工智能、人机交互等领域的必备技能。在Python中,音频处理库是比较常用的,它可以帮助我们进行音频采集、处理和分析。本文将会介绍一些常用的Python音频处理库和它们的使用...
    99+
    2024-01-22
    Python音频处理库 音频编码 音频波形处理
  • 怎么用Octave处理音频
    本篇内容介绍了“怎么用Octave处理音频”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Octave 是一个类似于 Linux 上的 Mat...
    99+
    2023-06-27
  • 阿里云ECS音频服务助力数字音频处理,提升音频质量
    随着数字音频处理的广泛应用,音频质量的重要性日益凸显。阿里云ECS音频服务,基于云计算平台,提供高质量的音频处理和存储功能,助力数字音频处理,提升音频质量。 阿里云ECS音频服务详细说明:一、音质优化阿里云ECS音频服务采用了高质量的音频处...
    99+
    2023-11-07
    音频 阿里 助力
  • 如何利用python处理原始音频数据
    目录一、基础知识二、转换函数三、片段特征函数四、片段操作一、基础知识 PCM(pulse code modulation) ,即脉冲编码调制,是将模拟信号转为数字信号的一种编码系统。...
    99+
    2024-04-02
  • 怎么利用python处理原始音频数据
    本篇内容介绍了“怎么利用python处理原始音频数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、基础知识PCM(pulse code ...
    99+
    2023-06-22
  • PHP函数的音频和视频处理函数
    随着互联网的发展,音视频的处理越来越成为人们工作中不可或缺的一部分。PHP作为一种流行的服务器端脚本语言,自然也提供了一些音视频处理函数来满足用户的需求。在本文中,我们将会介绍一些PHP函数,这些函数将帮助我们更好地理解和处理音频和视频文件...
    99+
    2023-05-18
    PHP函数 音频处理函数 视频处理函数
  • 云电脑的音频和视频处理能力如何
    云电脑的音频和视频处理能力取决于其硬件配置和网络带宽。通常来说,云电脑可以提供高质量的音频和视频处理能力,能够流畅播放高清视频和音频...
    99+
    2024-04-17
    云电脑
  • PHP中如何进行智能音乐和音频处理?
    随着音乐产业的不断发展和普及,音乐制作和音频处理的需求也日益增多。而PHP作为一种高度可扩展的编程语言,已经不仅仅局限于Web开发领域,还能用于音乐和音频的处理。本文将介绍如何使用PHP进行智能音乐和音频处理。一、智能音乐处理智能音乐处理是...
    99+
    2023-05-22
    PHP 音频处理 智能音乐
  • Linux下如何使用SoundConverter处理音频
    这篇文章将为大家详细讲解有关Linux下如何使用SoundConverter处理音频,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。SoundConverter 是一款批量音频格式转换工具,只需要拖放即可,...
    99+
    2023-06-27
  • Python 播放声音 音频与beep
    #import winsound #winsound.Beep(600,1000) import os os.system("paplay 1.wav") python使用pygame播放音乐. 链接地址:https://my.osch...
    99+
    2023-01-31
    音频 声音 Python
  • python+opencv处理视频
    ...
    99+
    2023-01-31
    视频 python opencv
  • Python 音频文件切割
    一直在学的一套美语教程,开头有18秒的音乐,每次都要听一遍,神烦. 索性写个脚本把所有音频开头音乐全部切掉. 参考 http://blog.csdn.net/skywalkerVVV/article/details/416...
    99+
    2023-01-31
    音频文件 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作