在matlab中将音频文件转换为字节数组
Posted
技术标签:
【中文标题】在matlab中将音频文件转换为字节数组【英文标题】:Convert audio file to a byte array in matlab 【发布时间】:2014-12-24 03:20:15 【问题描述】:我想将音频文件 (.wav/.mp3) 转换为 C# 中的字节数组。这是我的代码,
string imageName = Guid.NewGuid().ToString() + ".mp3";
byte[] file = System.Convert.FromBase64String(Filep);
File.WriteAllBytes(Server.MapPath("FILE/" + imageName), file);
return imageName;
【问题讨论】:
实际上这是可行的。我想在matlab中做同样的过程 您想要原始音频数据,还是只想打开文件并访问数据? 我想要原始数据(将音频保存到矩阵) 请编辑您的帖子。与您在原始帖子中所追求的相比,您在 cmets 中向我提出的要求是不一样的。 【参考方案1】:如果您想读取原始音频数据,请使用audioread
。你这样称呼它:
[y,Fs] = audioread(filename);
filename
将是您的文件的文件名 (.mp3/.wav),返回的是存储在 y
中的值矩阵和文件在 Fs
中的采样频率。 y
是一个矩阵,行数告诉您音频包含的样本数,列数告诉您音频有多少个通道。例如,单声道音频是单列向量,而立体声音频是双列矩阵:第一列是左声道,第二列是右声道。
有关更多信息,请查看我在上面链接到的 MathWorks 文档。
【讨论】:
我想获得音频文件的一些特殊特性(如频率或幅度)以进一步分析。采样率和采样频率不是我想要的。我想匹配两个音频剪辑。第一个是原始音频剪辑,第二个是该音频剪辑的 sn-p。 @dinoos - 与原始帖子的要求相比,您在此处要求的内容不相同。 Shazam 和 SoundHound 已经完成了您基本上正在寻找的内容。他们通过查看两个信号的频率分解来将音频剪辑匹配在一起。 FWIW,Shazam 算法已经公开,其 MATLAB 代码可在此处获得:labrosa.ee.columbia.edu/matlab/fingerprint - 顺便说一句,您所要求的范围太广了。你不会从我们任何人那里得到任何答案。对不起。祝你好运!以上是关于在matlab中将音频文件转换为字节数组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring MVC 中将字节数组转换为 ZipOutputStream?