关于python:带有Python的音频处理

49次阅读

共计 1541 个字符,预计需要花费 4 分钟才能阅读完成。

因为博客播放不了音频,所以音频将以视频模式展示。公众号也正在进行抽书和红包

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

往下拉就是文章地址

有时,在进行编程时,咱们须要进行一些音频解决。编程中最罕用的音频解决工作包含–加载和保留音频文件,将音频文件拆分和追加到片段,应用不同的数据创立混合音频文件,操纵声音级别,利用一些过滤器以及生成音频调整和兴许更多。

所有这些货色都能够应用 Python 来实现。Python是一种灵便的语言。它为您据说过的简直所有工作提供了库。对于音频解决,Python提供了Pydub,这是一个非常简单且设计良好的模块。

装置 Pydub

就像 Python Pydub 中的所有其余模块一样,也能够应用简略的命令 – pip install pydub 轻松装置。

音频解决:加载和播放

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

import urllib.request
from pydub import AudioSegment
from pydub.playback import play
urllib.request.urlretrieve("音频地址", "音频名称")
loop = AudioSegment.from_wav("音频名称")
play(loop)

音频素材请看下面

根本音频解决

加载音频后,当初咱们能够执行各种类型的音频解决,让咱们从反复音频文件的一些必要步骤开始:

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

音频素材请看下面

分层音频

下面咱们只是简略地反复了音频,当初让咱们分层并混合不同级别的音频片段:

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

音频素材请看下面

音频解决:利用过滤器

当初,让咱们通过利用滤镜和反转音频成果,将所有内容交融在一起,以进一步倒退:

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

音频素材请看下面

当初,如果您要保留音频文件,则能够按如下所示轻松进行操作:

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

合成音调

除了解决下面介绍的声音的所有步骤之外,咱们还能够合成新的音调。这些音调能够是任何频率的正弦波,方波或操纵波。咱们还能够执行白噪声。在上面的示例中,我将显示正弦办法,以谐波的形式为最后的 15 个距离产生正弦调谐:

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

音频素材请看下面

正文完
 0