Fork me on GitHub

随笔 - 997  文章 - 5  评论 - 181  阅读 - 300万 
一 概念
 
1.一些概念
Librosa是一个用于音频、音乐分析、处理的python工具包,一些常见的时频处理、特征提取、绘制声音图形等功能应有尽有,功能十分强大。本文主要介绍libros的基本用法。
 
二 源码解析
 
1.librosa通过load加载文件
2.音频文件保存新版本已经去掉,改为了soundfile库
3.matlab画图的这里可以熟悉一下。
 
复制代码
import librosa
import numpy as np
import matplotlib.pyplot as plt
import soundfile as sf

def add_noise2(x,snr):
    P_signal = np.sum(abs(x)**2)/len(x)
    P_noise = P_signal/10**(snr/10.0)
    return x + np.random.randn(len(x))*np.sqrt(P_noise)


plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示符号
fs = 16000

wav_data, _ = librosa.load("./test_16k.wav", sr=fs, mono=True)

Augmentation = add_noise2(x=wav_data,snr=50)

sf.write('out_file.wav', Augmentation, fs, subtype='PCM_16')

# ########### 画图
plt.subplot(2, 2, 1)
plt.title("sprucrem", fontsize=15)
plt.specgram(Augmentation, Fs=16000, scale_by_freq=True, sides='default', cmap="jet")
plt.xlabel('second/s', fontsize=15)
plt.ylabel('freq/Hz', fontsize=15)

plt.subplot(2, 2, 2)
plt.title("freqs", fontsize=15)
time = np.arange(0, len(Augmentation)) * (1.0 / fs)
plt.plot(time, Augmentation)
plt.xlabel('second/s', fontsize=15)
plt.ylabel('frame', fontsize=15)

plt.tight_layout()
plt.show()
复制代码

 

三 总结备忘
 
1.基本的librosa应用要掌握。
posted on   虚生  阅读(346)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
历史上的今天:
2018-05-04 人脸检测----Adaboost学习方法
2018-05-04 人脸检测---特征的提取
2018-05-04 人脸检测第一文---A Dream of Spring
点击右上角即可分享
微信分享提示