import librosaimport librosadisplayimport matplotlibpyplot as pltimport osfrom PIL import Imageimport numpy as np# 设置数据集路径和语谱图保存路径dataset_path = D论文代码casia汉语情感语料库spectrogram_path = D论文代码语谱图# 遍历数据集中各个子
import os import numpy as np from PIL import Image
获取所有子目录
def get_subdirs(root_dir): subdirs = [] for dirpath, dirnames, filenames in os.walk(root_dir): for dirname in dirnames: subdir = os.path.join(dirpath, dirname) subdirs.append(subdir) return subdirs
加载图片并转换为numpy数组
def load_image(image_path): image = Image.open(image_path) image = image.convert('L') # 转换为灰度图像 image_data = np.array(image) return image_data
将numpy数组保存为图片
def save_image(image_data, save_path): image = Image.fromarray(image_data) image.save(save_path)
获取特征图乘积
def get_feature_product(feature_dirs): for feature_dir in feature_dirs: subdirs = get_subdirs(feature_dir) for subdir in subdirs: save_dir = os.path.join('D:/论文代码/特征图乘积', os.path.relpath(subdir, feature_dir)) if not os.path.exists(save_dir): os.makedirs(save_dir) filenames = os.listdir(subdir) feature_product = None # 将特征图乘积初始化为None for i in range(len(filenames)): filename = filenames[i] feature = load_image(os.path.join(subdir, filename)) if i == 0: feature_product = feature else: feature_product *= feature save_path = os.path.join(save_dir, filename) save_image(feature_product, save_path) print('特征图乘积已保存至D:/论文代码/特征图乘积')
对应的特征图进行特征图相乘
if name == 'main': feature_dirs = ['D:/论文代码/spectrograms', 'D:/论文代码/语谱图', 'D:/论文代码/MFCC'] get_feature_product(feature_dirs
原文地址: https://www.cveoy.top/t/topic/dRlz 著作权归作者所有。请勿转载和采集!