一、语谱图实现
声音数据,单声道,绘制一个waterfall的图,x坐标是时间t,y坐标是语谱图频率f,z坐标是语谱图幅值输出的模值(dB为单位)
根据BAC009S0002W0122.wav的人声对话文件进行时间-幅值、频谱图、语谱图、时间-频率瀑布图为如下所示
其中声音文件采样频率为16000Hz截取声音文件3.125s,即采样点数为50000,声音的主要频率为179.5Hz,其余为噪声频率

二·、傅里叶变换——频谱图

%Do Fourier Transform
y_fft = abs(fft(y));            %Retain Magnitude
y_fft = y_fft(1:Nsamps/2);      %Discard Half of Points
f = Fs*(0:Nsamps/2-1)/Nsamps;   %Prepare freq data for plot


三、原始声音图像

四、频谱-时间瀑布图实现
由于瀑布图的参数需要统一行与列,且第三个值需为正数,不能为负数(可通过负数取实部实现绘制)

[S,F,T]=specgram(y,2048,16000,2048,1536);%y为波形数据%FFT帧长2048点(在16000Hz频率时约为46ms)%采样频率16000KHz%加窗长度,一般与帧长相等%帧重叠长度,此处取为帧长的3/4[t_test,f_test] = meshgrid(T,F);
y_test=abs(S);
figure(5);
waterfall(t_test,f_test,y_test);
ylabel('Frequency (Hz)')
xlabel('time(s)')
zlabel('Amplitude')
title('频谱-时间瀑布图')


五、瀑布图
waterfall需要z轴数据需要与x轴和y轴关联,如sin(2pif_test.*t_test)函数所示

t_test = 0:0.01:1;
f_test = 1:5;
[t_test,f_test] = meshgrid(t_test,f_test);
y_test=sin(2*pi*f_test.*t_test);%%z轴的数据
figure(4);
waterfall(t_test,f_test,y_test);


所有代码汇总:

[y_orignal,Fs] = audioread('BAC009S0002W0122.wav');
y = y_orignal(1:50000);
Nsamps = length(y);
t_orignal = (1/Fs)*(1:Nsamps);         %Prepare time data for plot
t = t_orignal(1:50000); %Do Fourier Transform
y_fft = abs(fft(y));            %Retain Magnitude
y_fft = y_fft(1:Nsamps/2);      %Discard Half of Points
f = Fs*(0:Nsamps/2-1)/Nsamps;   %Prepare freq data for plot%Plot Sound File in Time Domain
figure(1)
plot(t, y)
xlabel('Time (s)')
ylabel('Amplitude')
title('Tuning Fork A4 in Time Domain')%Plot Sound File in Frequency Domain
figure(2)
plot(f, y_fft)
xlim([0 1000])
xlabel('Frequency (Hz)')
ylabel('Amplitude')
title('Frequency Response of Tuning Fork A4')figure(3)
%[t,f] = meshgrid(t,f);
z_fft = y_fft';
%waterfall(t,f,z_fft);%x轴为z的行,y为z的列
%%%%语谱图
specgram(y,2048,16000,2048,1536);%y为波形数据%FFT帧长2048点(在16000Hz频率时约为46ms)%采样频率16000KHz%加窗长度,一般与帧长相等%帧重叠长度,此处取为帧长的3/4
[S,F,T]=specgram(y,2048,16000,2048,1536);%y为波形数据%FFT帧长2048点(在16000Hz频率时约为46ms)%采样频率16000KHz%加窗长度,一般与帧长相等%帧重叠长度,此处取为帧长的3/4[t_test,f_test] = meshgrid(T,F);
y_test=abs(S);
figure(5);
waterfall(t_test,f_test,y_test);
ylabel('Frequency (Hz)')
xlabel('time(s)')
zlabel('Amplitude')
title('频谱-时间瀑布图')t_test = 0:0.01:1;
f_test = 1:5;
[t_test,f_test] = meshgrid(t_test,f_test);
y_test=sin(2*pi*f_test.*t_test);
figure(4);
waterfall(t_test,f_test,y_test);

[算法]声音数据处理相关推荐

  1. 高频一线大厂 Python 面试题:算法+爬虫+数据处理+基础

    很多学Python的小伙伴找工作时,只是一家家投简历,一遍遍做笔试,一次次去面试,然后一次次被拒绝--其实并不知道如何系统准备一场面试,每次面试都像撞大运,这样的求职过程,既困难又痛苦. 在本文中,我 ...

  2. 高频一线大厂Python面试题:算法+爬虫+数据处理+基础

    很多学Python的小伙伴找工作时,只是一家家投简历,一遍遍做笔试,一次次去面试,然后一次次被拒绝--其实并不知道如何系统准备一场面试,每次面试都像撞大运,这样的求职过程,既困难又痛苦. 在本文中,我 ...

  3. 基于机器学习中集成学习的stacking方式进行的金线莲质量鉴别研究(python进行数据处理并完成建模,对品种进行预测)

    1.前言 金线莲为兰科开唇兰属植物,别名金丝兰.金丝线.金耳环.乌人参.金钱草等,是一种名贵中药材,国内主要产地为较低纬度地区如:福建.台湾.广东.广西.浙江.江西.海南.云南.四川.贵州以及西藏南部 ...

  4. 机器学习算法清单!附Python和R代码

    来源:数据与算法之美 本文约6000字,建议阅读8分钟. 通过本文为大家介绍了3种机器学习算法方式以及10种机器学习算法的清单,学起来吧~ 前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人 ...

  5. 听听阿里老哥对算法工程师技术学习路线的建议

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 来源丨https://zhuanlan.zhihu.com/p/192633890 前言 知乎 ...

  6. 大规模数据处理的演化历程(2003-2018)

    转自:https://www.iteblog.com/archives/2430.html 本文翻译自<Streaming System>最后一章<The Evolution of ...

  7. 10 种机器学习算法的要点(附 Python 和 R 代码)(转载)

    10 种机器学习算法的要点(附 Python 和 R 代码)(转载) from:https://zhuanlan.zhihu.com/p/25273698 前言 谷歌董事长施密特曾说过:虽然谷歌的无人 ...

  8. 10 种机器学习算法的要点

    前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注,但是这家公司真正的未来在于机器学习,一种让计算机更聪明.更个性化的技术. 也许我们生活在人类历史上最关键的时期:从使用大 ...

  9. 10 种机器学习算法的要点(附 Python 和 R 代码)

    前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注,但是这家公司真正的未来在于机器学习,一种让计算机更聪明.更个性化的技术. 也许我们生活在人类历史上最关键的时期:从使用大 ...

最新文章

  1. 大学计算机专业副修课,计算机学院举行本科课程教学大纲修订工作研讨会
  2. 音乐应用开发Android应用开发--MP3音乐播放器界面设计(2)
  3. ORA-00928: 缺失 SELECT 关键字
  4. PostgreSQL数据库设置远程连接
  5. DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文)、CNN优化技术、调参学习实践、CNN经典结构及其演化、案例应用之详细攻略
  6. 获取系统特殊文件夹的路径
  7. ubuntu 安装 TensorFlow、opencv3 的 tips
  8. 电路 第五版 第三章电阻电路的一般分析
  9. SpringBoot实战(八):集成Swagger
  10. 这个世界是怎么了?做商业软件的怎么越来越流氓了?
  11. Mac与Windows双系统与虚拟机
  12. ask调制matlab实验,ASK调制的matlab代码
  13. java进度条的使用_java 中进度条的使用
  14. linphone android下载,Linphone | F-Droid - Free and Open Source Android App Repository
  15. 今天分享固态硬盘安装以及Win7系统安装流程
  16. 下载安装linux RedHat
  17. CAT监控系统搭建与使用(V3.0.0)
  18. 硬盘克隆大师从入门到精通
  19. 表情识别(二)——使用Dlib、opencv和Python标记和提取脸部的特定区域
  20. mysql 建表最佳实践

热门文章

  1. Python+Opencv实现图像匹配——模板匹配
  2. PDO连接数据库及DSN详解
  3. Shader编程学习笔记(九)—— Cg语言入门1 - 输入输出和语义
  4. 在基于ZYNQ MPSOC XCZU3CG自定义单板上运行DPU例程
  5. 【腾讯Bugly干货分享】QFix探索之路—手Q热补丁轻量级方案
  6. yiui易柚7 是Android什么版本,康佳YIUI易柚操作系统
  7. 谈谈javascript中的多线程
  8. Clk Gating的verilog写法及简析-基础小知识(六)
  9. FCBF算法的Matlab实现
  10. 数据集仓库 —— UCI Machine Learning Repository