由于博客播放不了音频,所以音频将以视频形式展现。公众号也正在进行抽书

音频素材请点击这里进行观看

往下拉就是文章地址

有时,在进行编程时,我们需要进行一些音频处理。编程中最常用的音频处理任务包括–加载和保存音频文件,将音频文件拆分和追加到片段,使用不同的数据创建混合音频文件,操纵声音级别,应用一些过滤器以及生成音频调整和也许更多。

所有这些东西都可以使用Python来实现。Python是一种灵活的语言。它为您听说过的几乎所有任务提供了库。对于音频处理,Python提供了Pydub,这是一个非常简单且设计良好的模块。

安装Pydub

就像Python Pydub中的所有其他模块一样,也可以使用简单的命令– pip install pydub轻松安装。

音频处理:加载和播放

AudioSegmentPydub中的父类。它起着可以加载,操作和保存音频文件的容器的作用。让我们用python创建我们的第一个音频。为此,我们将需要一个测试文件,该文件可以采用任何格式,例如WAV,MP3或任何格式。在本文中,我将下载一个音频文件,就像我们从网络上抓取数据一样:

  1. import urllib.request
  2. from pydub import AudioSegment
  3. from pydub.playback import play
  4. urllib.request.urlretrieve("音频地址", "音频名称")
  5. loop = AudioSegment.from_wav("音频名称")
  6. play(loop)

音频素材请看上面

基本音频处理

加载音频后,现在我们可以执行各种类型的音频处理,让我们从重复音频文件的一些必要步骤开始:

  1. loop2 = loop * 2
  2. length = len(loop2)
  3. fade_time = int(length * 0.5)
  4. faded = loop2.fade_in(fade_time).fade_out(fade_time)

音频素材请看上面

分层音频

上面我们只是简单地重复了音频,现在让我们分层并混合不同级别的音频片段:

  1. urllib.request.urlretrieve("https://tinyurl.com/yx3k5kw5", "beat.wav")
  2. beat = AudioSegment.from_wav("beat.wav")
  3. mixed = beat[:length].overlay(loop2)

音频素材请看上面

音频处理:应用过滤器

现在,让我们通过应用滤镜和反转音频效果,将所有内容融合在一起,以进一步发展:

  1. filtered = beat.low_pass_filter(3000)
  2. loop = loop2.reverse().pan(-0.5).overlay(loop2.pan(0.5))
  3. final = filtered.overlay(loop2 - 3, loop=True)

音频素材请看上面

现在,如果您要保存音频文件,则可以按如下所示轻松进行操作:

  1. final.export("final.mp3", format="mp3")

合成音调

除了处理上面介绍的声音的所有步骤之外,我们还可以合成新的音调。这些音调可以是任何频率的正弦波,方波或操纵波。我们还可以执行白噪声。在下面的示例中,我将显示正弦方法,以谐波的方式为最初的15个间隔产生正弦调谐:

  1. result = AudioSegment.silent(duration=0)
  2. for n in range(15):
  3. gen = Sine(200 * n)
  4. sine = gen.to_audio_segment(duration=200).apply_gain(-3)
  5. sine = sine.fade_in(50).fade_out(100)
  6. result += sine
  7. play(result)

音频素材请看上面

带有Python的音频处理(附带源码)的更多相关文章

  1. Python机器学习经典实例电子版和附带源码

    Python机器学习经典实例电子版和附带源码 下载:https://pan.baidu.com/s/1m6ODNJk--PWHW8Vdsdjs-g 提取码:nyc0 分享更多python数据分析相关电 ...

  2. Log4Net 日志配置[附带源码]

    前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间.利用log4net可以方便地将日志信息记录 ...

  3. SpringMVC关于json、xml自动转换的原理研究[附带源码分析 --转

    SpringMVC关于json.xml自动转换的原理研究[附带源码分析] 原文地址:http://www.cnblogs.com/fangjian0423/p/springMVC-xml-json-c ...

  4. 【Hook技术】实现从"任务管理器"中保护进程不被关闭 + 附带源码 + 进程保护知识扩展

    [Hook技术]实现从"任务管理器"中保护进程不被关闭 + 附带源码 + 进程保护知识扩展 公司有个监控程序涉及到进程的保护问题,需要避免用户通过任务管理器结束掉监控进程,这里使用 ...

  5. iOS 指南针的制作 附带源码

    iOS  指南针的制作  附带源码 代码下载地址: http://vdisk.weibo.com/s/HK4yE   http://pan.baidu.com/share/link?shareid=7 ...

  6. 【轮子狂魔】抛弃IIS,打造个性的Web Server - WebAPI/Lua/MVC(附带源码)

    引言 此篇是<[轮子狂魔]抛弃IIS,向天借个HttpListener - 基础篇(附带源码)>的续篇,也可以说是提高篇,如果你对HttpListener不甚了解的话,建议先看下基础篇. ...

  7. 简单的c#winform象棋游戏(附带源码)

    算法源自网络(网络源码连接:http://www.mycodes.net/161/6659.htm)   整体思路:用二维数组构建棋盘每一个数组元素封装为一个picturebox附带若干属性(例如:棋 ...

  8. SpringMVC拦截器详解[附带源码分析]

    目录 前言 重要接口及类介绍 源码分析 拦截器的配置 编写自定义的拦截器 总结 总结 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:h ...

  9. SpringMVC异常处理机制详解[附带源码分析]

    目录 前言 重要接口和类介绍 HandlerExceptionResolver接口 AbstractHandlerExceptionResolver抽象类 AbstractHandlerMethodE ...

  10. SpringMVC视图机制详解[附带源码分析]

    目录 前言 重要接口和类介绍 源码分析 编码自定义的ViewResolver 总结 参考资料 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门bl ...

随机推荐

  1. misc刷题

    前言:听说misc打得好,头发多不了 kali自带的字典: cd /usr/share/wordlists/ 字典网站:http://contest-2010.korelogic.com/wordli ...

  2. bash5.0参考手册

    Bash Reference Manual a.summary-letter { text-decoration: none } blockquote.indentedblock { margin-r ...

  3. luogu P4116 Qtree3

    题目描述 给出N个点的一棵树(N-1条边),节点有白有黑,初始全为白 有两种操作: 0 i : 改变某点的颜色(原来是黑的变白,原来是白的变黑) 1 v : 询问1到v的路径上的第一个黑点,若无,输出 ...

  4. 前端知识(二)03-Webpack-谷粒学院

    目录 一.什么是Webpack 二.Webpack安装 1.全局安装 2.安装后查看版本号 三.创建项目 1.初始化项目 2.创建src文件夹 3.src下创建common.js 4.src下创建ut ...

  5. 开源AwaitableCompletionSource,用于取代TaskCompletionSource

    1 TaskCompletionSource介绍 TaskCompletionSource提供创建未绑定到委托的任务,任务的状态由TaskCompletionSource上的方法显式控制,以支持未来的 ...

  6. Java并发包源码学习系列:阻塞队列实现之PriorityBlockingQueue源码解析

    目录 PriorityBlockingQueue概述 类图结构及重要字段 什么是二叉堆 堆的基本操作 向上调整void up(int u) 向下调整void down(int u) 构造器 扩容方法t ...

  7. the code has to work especially hard to keep things in the same thread

    django/asgiref: ASGI specification and utilities https://github.com/django/asgiref/

  8. tcp的3次握手4次挥手

  9. docker(7)docker-compose容器集群编排

    前言 实际工作中我们部署一个应用,一般不仅仅只有一个容器,可能会涉及到多个,比如用到数据库,中间件MQ,web前端和后端服务,等多个容器. 我们如果一个个去启动应用,当项目非常多时,就很难记住了,所有 ...

  10. C - Oulipo

    The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e ...