C# 如何读取MP3文件音频频率以0到99的数值保存到TXT文件中?

因为要绘制波形图,波形图以柱状来展现,所以需要将MP3文件提取0到99之间的数据来绘制波形图。... 因为要绘制波形图,波形图以柱状来展现,所以需要将MP3文件提取0到99之间的数据来绘制波形图。 展开
 我来答
藤原子大雄
2018-05-12 · TA获得超过7197个赞
知道大有可为答主
回答量:6977
采纳率:82%
帮助的人:1751万
展开全部
 1、用audioread('');函数读取电脑中的音频文件,参数是音频文件的路径:   [sampledata,FS] = audioread('F:1.mp3');   sampledata保存音频信号数据,FS是音频采样率,MP3格式的采样率一般为44100;   2、判断音频数据是否是双声道,如果是双声道则保留一个声道的数据,用calsample.m文件的函数完成此功能,文件内容如下:   function sample = calsample(sampledata,FS)   temp_sample = resample(sampledata,1,FS/11025);   [m,n] = size(temp_sample);   if (n == 2)   sample = temp_sample(:,1);   else   sample = temp_sample;   end   end   3、对音频数据进行快速傅里叶变换得到频谱图,并选取scope区域内的能量最大并且能量增幅最大的点作为峰值点,进行特征提取,keypoint.m文件内容如下:   function point = keypoint(sample,scope)   %对音频数据进行快速傅里叶变换,得到变换后的数据为b,频率为f,时间为t   [b,f,t] = specgram(sample,1024,11025,hanning(1024),256);   specgram(sample,1024,11025,hanning(1024),256);%绘制频谱图   hold on;   energy = abs(b);%根据快速傅里叶变换后的数据进行能量计算   %energy = sample;   diffenergy = caldiffenergy(energy);%计算能量差分   [m,n] = size(energy);%获取能量矩阵的大小   %f = (0:4);   %t = (0:4);   f_unit = max(f)/(length(f)-1);%根据频率点个数计算频率单位长度   t_unit = max(t)/
追问
用C#如何实现,你给的代码,我看的不是很懂,能否写一段?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式