一 概念
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应用要掌握。
作者:虚生 出处:https://www.cnblogs.com/dylancao/ 以音频和传感器算法为核心的智能可穿戴产品解决方案提供商 ,提供可穿戴智能软硬件解决方案的设计,开发和咨询服务。 勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |