import librosa
import numpy as np
import utils
import torch
import torch.nn.functional as F
from matplotlib import pyplot as plt
from torchvision.models.feature_extraction import create_feature_extractor
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
def extract_mbe(_y, _sr, _nfft, _nb_mel):
#梅尔频谱
spec = librosa.core.spectrum._spectrogram(y=_y, n_fft=_nfft, hop_length=_nfft // 2, power=1)[0]
mel_basis = librosa.filters.mel(sr=_sr, n_fft=_nfft, n_mels=_nb_mel)
mel_spec = np.log(np.dot(mel_basis, spec).T)
return mel_spec #最后必须是[frames, dimensions]
def preprocess_data(X, seq_len, nb_ch):
# split into sequences
X = utils.split_in_seqs(X, seq_len)
X = utils.split_multi_channels(X, nb_ch)
# Convert to PyTorch tensors
X = torch.Tensor(X)
X = X.permute(0,1,3,2) #x形状为[709,2,40,256],【总样本数,通道数,特征维度,像素宽度】
return X
# 提取梅尔频谱特征
audio_path = "b093.wav"
y, sr = librosa.load(audio_path, sr=44100)
mel = extract_mbe(y, sr, 2048, 64)
value = preprocess_data(mel, 256, 1).to(device) #value 为输入模型的样本特征
features = {"cnn1": '1', "cnn2": '2', "cnn3": '3', "cnn4": '4', "cnn5": '5', "cnn6": '6'}
model = torch.load(f'best_model_2.pth')
feature_extractor = create_feature_extractor(model, return_nodes=features)
out = feature_extractor(value)
layer = "3"
out = torch.cat((out[layer][0], out[layer][1]), dim=1)
out = out.unsqueeze(0)
out = F.interpolate(out, size=(470, 64), mode='bilinear', align_corners=False)
out = out.squeeze(0) .permute(2, 0, 1) #[128, 256, 64]->[64, 128, 256]->[纵, 值, 横]
plt.imshow(out.sum(1).detach().cpu().numpy(), origin='lower')
plt.show()
神经网络中间层特征图可视化(输入为音频)
孜孜不倦fly2023-11-15 12:41
相关推荐
企查查数据服务2 分钟前
股权穿透+责任传导是医药并购合规健康度评分卡陈 洪 伟37 分钟前
Transformer彻底剖析(9):归一化演进——BatchNorm、LayerNorm、RMSNorm、Post-LN / Pre-LN、DeepNormKari1138 分钟前
AI 手写 OCR 在教育场景的工程化:为什么准确率从 82% 做到 99% 这么难数聚天成DeepSData40 分钟前
两批标注数据合并前要核对什么正经教主1 小时前
【FDE系列】阶段3:Day 77:LangChain 基础 — LCEL 管道与三件套AI办公探索者1 小时前
从“岗位为中心”到“任务为中心”:企业级Agent Hub的架构演进fly-iot1 小时前
【下一个 AI 方向】:中小企业的数字化建设,物联网解决方案思考,使用开源项目快速搭建降低成本。方芯半导体1 小时前
2026工业机器人控制芯片赛道:竞争格局与关键选型指标深度解析科创致远2 小时前
科创致远 ESOP 赋能车间图纸全维管理实战技灵AI2 小时前
AI 口播视频提示词怎么写?让人物讲解和产品展示更自然