[算法]声音数据处理
一、语谱图实现
声音数据,单声道,绘制一个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);
[算法]声音数据处理相关推荐
- 高频一线大厂 Python 面试题:算法+爬虫+数据处理+基础
很多学Python的小伙伴找工作时,只是一家家投简历,一遍遍做笔试,一次次去面试,然后一次次被拒绝--其实并不知道如何系统准备一场面试,每次面试都像撞大运,这样的求职过程,既困难又痛苦. 在本文中,我 ...
- 高频一线大厂Python面试题:算法+爬虫+数据处理+基础
很多学Python的小伙伴找工作时,只是一家家投简历,一遍遍做笔试,一次次去面试,然后一次次被拒绝--其实并不知道如何系统准备一场面试,每次面试都像撞大运,这样的求职过程,既困难又痛苦. 在本文中,我 ...
- 基于机器学习中集成学习的stacking方式进行的金线莲质量鉴别研究(python进行数据处理并完成建模,对品种进行预测)
1.前言 金线莲为兰科开唇兰属植物,别名金丝兰.金丝线.金耳环.乌人参.金钱草等,是一种名贵中药材,国内主要产地为较低纬度地区如:福建.台湾.广东.广西.浙江.江西.海南.云南.四川.贵州以及西藏南部 ...
- 机器学习算法清单!附Python和R代码
来源:数据与算法之美 本文约6000字,建议阅读8分钟. 通过本文为大家介绍了3种机器学习算法方式以及10种机器学习算法的清单,学起来吧~ 前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人 ...
- 听听阿里老哥对算法工程师技术学习路线的建议
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 来源丨https://zhuanlan.zhihu.com/p/192633890 前言 知乎 ...
- 大规模数据处理的演化历程(2003-2018)
转自:https://www.iteblog.com/archives/2430.html 本文翻译自<Streaming System>最后一章<The Evolution of ...
- 10 种机器学习算法的要点(附 Python 和 R 代码)(转载)
10 种机器学习算法的要点(附 Python 和 R 代码)(转载) from:https://zhuanlan.zhihu.com/p/25273698 前言 谷歌董事长施密特曾说过:虽然谷歌的无人 ...
- 10 种机器学习算法的要点
前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注,但是这家公司真正的未来在于机器学习,一种让计算机更聪明.更个性化的技术. 也许我们生活在人类历史上最关键的时期:从使用大 ...
- 10 种机器学习算法的要点(附 Python 和 R 代码)
前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注,但是这家公司真正的未来在于机器学习,一种让计算机更聪明.更个性化的技术. 也许我们生活在人类历史上最关键的时期:从使用大 ...
最新文章
- 大学计算机专业副修课,计算机学院举行本科课程教学大纲修订工作研讨会
- 音乐应用开发Android应用开发--MP3音乐播放器界面设计(2)
- ORA-00928: 缺失 SELECT 关键字
- PostgreSQL数据库设置远程连接
- DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文)、CNN优化技术、调参学习实践、CNN经典结构及其演化、案例应用之详细攻略
- 获取系统特殊文件夹的路径
- ubuntu 安装 TensorFlow、opencv3 的 tips
- 电路 第五版 第三章电阻电路的一般分析
- SpringBoot实战(八):集成Swagger
- 这个世界是怎么了?做商业软件的怎么越来越流氓了?
- Mac与Windows双系统与虚拟机
- ask调制matlab实验,ASK调制的matlab代码
- java进度条的使用_java 中进度条的使用
- linphone android下载,Linphone | F-Droid - Free and Open Source Android App Repository
- 今天分享固态硬盘安装以及Win7系统安装流程
- 下载安装linux RedHat
- CAT监控系统搭建与使用(V3.0.0)
- 硬盘克隆大师从入门到精通
- 表情识别(二)——使用Dlib、opencv和Python标记和提取脸部的特定区域
- mysql 建表最佳实践