投机取巧:将语音分类转变为图像分类

简介: 投机取巧:将语音分类转变为图像分类

前言


这里介绍一种实际效果不咋地的个语音分类(垃圾分类方向),仅供大家参考使用,若有更好的方案下次定将奉上!



一.投机取巧流程


1.1 提取语音的时域信号


1.2 绘制时域信号图像


1.3 将语音信号转变为图像分类或者是数据分类



二. Voice2Img(数据集的制作)


在这里我们需要对文件夹下同类型的语音进行提取时域信号并绘制图像,具体流程为:


2.1 获取文件夹下所有的.m4a型文件


2.2 获取语音名


2.3 使用audioread读取语音名


2.4 设置采样时间


2.5 创建fig


2.6 提取左声道(或者右声道)


2.7 输入信号的时域信号


2.8 将frame变换成imwrite函数可以识别的格式


2.9 提取语音名的前缀(不包含.m4a)


2.10 存储绘制好的时域图像


参考代码:

clc
clear
close all
%%
file_path =  'D:\垃圾\有害垃圾\';% 需要处理的图像文件夹的路径
m4a_path_list = dir(strcat(file_path,'*.m4a'));%获取该文件夹中所有m4a的语音
m4a_num = length(m4a_path_list);%获取语音总数量
if m4a_num > 0 %有满足条件的语音
        for j = 1:m4a_num %逐一读取语音
             m4a_name = m4a_path_list(j).name;% 语音名
             [y,fs]=audioread(strcat(file_path,m4a_name)); %将声音放于matlab中
             T=1/fs; %采样时间
             t=(0:length(y)-1)*T;%时间
             f=(0:length(y)-1)*fs/length(y);
             fig=figure;
             yz=y(:,1);%左声道
             plot(t,yz);%输入信号时域曲线
             frame = getframe(fig); % 获取frame
             img = frame2im(frame); % 将frame变换成imwrite函数可以识别的格式
             % 取名
             cell_str = strsplit(m4a_name,'.');%按照‘.’字符分开
             image_name = cell_str{1,1};%去掉字符串后面的m4a
             image_name = [image_name ,'.jpg'];
             imwrite(img,strcat('D:\垃圾\语音识别\data\有害垃圾\',image_name)); %%保存图片 ,D:\traincar\newzheng\是储存修改图像后的文件夹
        end
        close all
end


二. 经典的图像分类


这里我们采用目录式的数据集构造,使用的网络可以参考我往期的经典网络介绍,这里就不再重复赘述了。 这里着重介绍下在获取语音进行分类时候写到edit上的信息和播放你输入的语音(垃圾的名字)。

load voice.mat net
global img
YPred = classify(net,img);%预测数据  
YPred_cellstr=cellstr(YPred);
set(handles.edit1,'string',YPred_cellstr)
t1 = strcmp(YPred_cellstr, '厨余垃圾');
t2 = strcmp(YPred_cellstr, '有害垃圾');
t3 = strcmp(YPred_cellstr, '可回收垃圾');
t4 = strcmp(YPred_cellstr, '其他垃圾');
if  t1 == 1
    [x,fs] = audioread('./垃圾分类/厨余垃圾.m4a');
    sound(x,fs)
elseif  t2 == 1
     [x,fs] = audioread('./垃圾分类/有害垃圾.m4a');
     sound(x,fs)
elseif t3 == 1
     [x,fs] = audioread('./垃圾分类/可回收垃圾.m4a');
    sound(x,fs)
elseif t4 == 1
    [x,fs] = audioread('./垃圾分类/其他垃圾.m4a');
    sound(x,fs)



拓展



大家可以将图像转变为阿拉伯数据(纯数字模式,然后进行数据分类,例如BP\SVM之类的分类器)



相关文章
|
12天前
|
编解码 边缘计算 自然语言处理
2024年5月计算机视觉论文推荐:包括扩散模型、视觉语言模型、图像编辑和生成、视频处理和生成以及图像识别等各个主题
五月发布的计算机视觉领域重要论文涵盖了扩散模型、视觉语言模型、图像生成与编辑及目标检测。亮点包括:1) Dual3D提出双模式推理策略,实现高效文本到3D图像生成;2) CAT3D利用多视图扩散模型创建3D场景,仅需少量图像;3) Hunyuan-DiT是多分辨率的中文理解扩散Transformer,可用于多模态对话和图像生成;4) 通过潜在扩散模型从EEG数据重建自然主义音乐,展示复杂音频重建潜力。此外,还有关于视觉语言模型和图像编辑的创新工作,如BlobGEN用于合成具有控制性的图像。
20 3
|
22天前
|
机器学习/深度学习 算法框架/工具 计算机视觉
使用Python实现图像分类与识别模型
使用Python实现图像分类与识别模型
25 2
使用Python实现图像分类与识别模型
|
7月前
|
机器学习/深度学习 算法 数据库
图像识别2:图像多分类实验
图像识别2:图像多分类实验
49 0
|
10月前
|
机器学习/深度学习 存储 算法
【使用深度学习的城市声音分类】使用从提取音频特征(频谱图)中提取的深度学习进行声音分类研究(Matlab代码实现)
【使用深度学习的城市声音分类】使用从提取音频特征(频谱图)中提取的深度学习进行声音分类研究(Matlab代码实现)
163 0
|
11月前
|
机器学习/深度学习 数据可视化 计算机视觉
使用深度学习进行图像类别分类
使用预训练卷积神经网络 (CNN) 作为特征提取器来训练图像类别分类器。
100 0
|
11月前
|
数据采集
基于Bert文本分类进行行业识别
基于Bert文本分类进行行业识别
170 0
|
12月前
|
机器学习/深度学习 Serverless 语音技术
多模态特征融合:图像、语音、文本如何转为特征向量并进行分类
多模态特征融合:图像、语音、文本如何转为特征向量并进行分类
435 0
|
12月前
|
机器学习/深度学习 程序员 异构计算
【深度学习】基于卷积神经网络的天气识别训练
【深度学习】基于卷积神经网络的天气识别训练
244 0
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习应用篇-自然语言处理[10]:N-Gram、SimCSE介绍,更多技术:数据增强、智能标注、多分类算法、文本信息抽取、多模态信息抽取、模型压缩算法等
深度学习应用篇-自然语言处理[10]:N-Gram、SimCSE介绍,更多技术:数据增强、智能标注、多分类算法、文本信息抽取、多模态信息抽取、模型压缩算法等
|
12月前
|
机器学习/深度学习 人工智能 文字识别
深度学习应用篇-计算机视觉-OCR光学字符识别[7]:OCR综述、常用CRNN识别方法、DBNet、CTPN检测方法等、评估指标、应用场景
深度学习应用篇-计算机视觉-OCR光学字符识别[7]:OCR综述、常用CRNN识别方法、DBNet、CTPN检测方法等、评估指标、应用场景
深度学习应用篇-计算机视觉-OCR光学字符识别[7]:OCR综述、常用CRNN识别方法、DBNet、CTPN检测方法等、评估指标、应用场景