在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中将音频文件转换为字节数组的主要内容,如果未能解决你的问题,请参考以下文章

在swift 3中将字节数组转换为PDF

如何将字节数组转换为音频文件?

如何在 Spring MVC 中将字节数组转换为 ZipOutputStream?

如何在Go中将字节数组转换为字符串[重复]

IBM 语音转文本 - 如何将 MP3 音频文件转换为字节数组

在此算法中将字节数组转换为字符串时出错[重复]