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

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

前言


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



一.投机取巧流程


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之类的分类器)



相关文章
|
数据采集 数据处理 计算机视觉
4.3 图像分类ResNet实战:眼疾识别
这篇文章介绍了使用ResNet网络进行眼疾识别的实战流程,涵盖了计算机视觉任务研发的全流程,包括数据处理、数据预处理、数据读取器的定义,以及如何利用iChallenge-PM数据集进行模型训练和评估。
|
算法 PyTorch 算法框架/工具
Pytorch学习笔记(九):Pytorch模型的FLOPs、模型参数量等信息输出(torchstat、thop、ptflops、torchsummary)
本文介绍了如何使用torchstat、thop、ptflops和torchsummary等工具来计算Pytorch模型的FLOPs、模型参数量等信息。
2124 2
|
机器学习/深度学习 数据采集 自然语言处理
特征提取:它是什麼?为什么需要它?
【8月更文挑战第23天】
1551 0
|
API 异构计算
4.3.2 图像分类ResNet实战:眼疾识别——模型构建
这篇文章介绍了如何使用飞桨框架中的ResNet50模型进行眼疾识别的实战,通过5个epoch的训练,在验证集上达到了约96%的准确率,并提供了模型构建、训练、评估和预测的详细代码实现。
|
机器学习/深度学习 Web App开发 数据挖掘
经典神经网络论文超详细解读(七)——SENet(注意力机制)学习笔记(翻译+精读+代码复现)
经典神经网络论文超详细解读(七)——SENet(注意力机制)学习笔记(翻译+精读+代码复现)
4430 1
经典神经网络论文超详细解读(七)——SENet(注意力机制)学习笔记(翻译+精读+代码复现)
|
机器学习/深度学习 PyTorch 算法框架/工具
DenseNet代码复现+超详细注释(PyTorch)
DenseNet代码复现+超详细注释(PyTorch)
1261 0
|
机器学习/深度学习 数据可视化 算法
模型推理加速系列 | 06: 基于 resnet18 评测各加速方案
天这篇文章以resnet18模型为例,对比Pytorch、ONNX、TorchScript、TensorRT模型格式在不同硬件(包括CPU和GPU)上的inference性能。
|
机器学习/深度学习 人工智能 监控
一文看懂“知识蒸馏”技术
一文看懂“知识蒸馏”技术
2265 1
|
机器学习/深度学习 编解码 PyTorch
论文笔记系列:主干网络(二)-- DenseNet
前言: DenseNet(Densely connected convolutional networks) 模型,它的基本思路与ResNet一致,但是它建立的是前面所有层与后面层的密集连接(dense connection),它的名称也是由此而来。DenseNet的另一大特色是通过特征在channel上的连接来实现特征重用(feature reuse)。这些特点让DenseNet在参数和计算成本更少的情形下实现比ResNet更优的性能,DenseNet也因此斩获CVPR 2017的最佳论文奖。本篇文章首先介绍DenseNet的原理以及网路架构,然后讲解DenseNet在Pytorch上的实现
1625 0
论文笔记系列:主干网络(二)-- DenseNet
|
机器学习/深度学习 编解码 PyTorch
轻量级网络——EfficientNet
轻量级网络——EfficientNet
2996 0
轻量级网络——EfficientNet