【问题标题】:convert WAVE file into vectors in Android在Android中将WAV文件转换为矢量
【发布时间】:2014-04-23 12:20:41
【问题描述】:

我正在寻找一种将 Wave 文件转换为数字列表的方法,以使结果向量相互关联(就像您在 MATLAB 上读取 wave 文件时得到的数字)

0.6653 -0.8445 0.9589 -0.9999 0.9643 -0.8547 0.6797 -0.4525 0.1907 0.0858 -0.3557 0.5983 -0.7951 0.9309 -0.9953 0.9835 -0.8962 0.7402 -0.5275 0.2742

有没有办法在 Android 甚至 C/C++ 中做到这一点?我真的不知道如何开始。

【问题讨论】:

    标签: android matlab audio signal-processing wave


    【解决方案1】:

    WAVE 文件格式相当简单,特别是如果您对线性 PCM 编码数据感兴趣。格式说明可从各种来源获得,例如 herehere

    使用这些,您应该能够解码:

    • 标头(“RIFF”块)
    • “fmt”块包含各种信息,例如每个样本的字节数、通道数(即单声道、立体声或更多)、采样率等。
    • 以及“数据”块,如果您想查看主要内容,以便创建类似 MATLAB 的向量。

    如果您处理的是单通道(即单声道)WAVE 文件,则数据解码起来相当简单。然后样本数应该对应于(给或取几个字节用于填充)数据块的大小除以每个样本的字节数(每个样本的位数可从“fmt”块中获得) .样本整数到 [0-1] 浮点值的映射可以通过乘以一个常数来完成(例如,1.0/128 表示每个样本 1 字节)。

    对于多通道 WAVE 文件,请记住通道数据是交错的(例如,左/右样本 1、左/右样本 2、...)

    另请注意,有许多教程/示例随处可见(例如 this sample in Cthis sample in Java),以及可以用作起点的各种开源声音库。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2019-01-01
    • 2016-06-19
    • 1970-01-01
    • 2011-06-19
    • 2020-04-22
    • 1970-01-01
    相关资源
    最近更新 更多