前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >音频加白噪-Python+librosa实现

音频加白噪-Python+librosa实现

原创
作者头像
vell001
修改2018-09-21 13:14:57
5K0
修改2018-09-21 13:14:57
举报
文章被收录于专栏:AI-vellAI-vell

前言

首先要了解下什么是白噪

白噪音是指一段声音中的频率分量的功率在整个可听范围(0~20KHZ)内都是均匀的。由于人耳对高频敏感,这种声音听上去是很吵耳的沙沙声。 摘自百度百科

换句话说就是,白噪的每一帧都是随机的值,如果要给一段音频加上白噪的话,给每一帧叠加一个随机大小的值就ok啦

实践

Python处理音频,我比较常用librosa,官方文档:https://librosa.github.io/librosa/

工具全部代码:

代码语言:txt
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/9/20 4:41 PM
# @Author  : vell
# @Email   : vell001@qq.com
import argparse
import json
import os

import librosa
import numpy as np


def add_noise(audio_path, out_path, percent=0.2, sr=16000):
    src, sr = librosa.load(audio_path, sr=sr)
    random_values = np.random.rand(len(src))
    src = src + percent * random_values
    librosa.output.write_wav(out_path, src, sr, norm=True)


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--audio_dir", type=str)
    parser.add_argument("--out_dir", type=str)
    args = parser.parse_args()
    if not os.path.exists(args.out_dir):
        os.makedirs(args.out_dir)
    for root, dirs, files in os.walk(args.audio_dir):
        for file in files:
            if not file.endswith(".wav"):
                continue
            audio_path = os.path.join(root, file)
            out_path = os.path.join(args.out_dir, file + ".noise.wav")
            add_noise(audio_path, out_path)

效果

原始音频

原始音频
原始音频

加噪音频

加噪音频
加噪音频

后语

加白噪是最简单的了,后面可以再混一些现有的噪音,思想都是一样的

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 实践
  • 效果
  • 后语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档