gpt4 book ai didi

android - 在Android中将WAV文件转换为矢量

转载 作者:行者123 更新时间:2023-12-03 02:12:04 24 4
gpt4 key购买 nike

我正在寻找一种将 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++ 中做到这一点?我真的不知道如何开始。

最佳答案

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

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

  • header (“RIFF” block )
  • “fmt” block 包含各种信息,例如每个样本的字节数、 channel 数(即单声道、立体声或更多)、采样率等。
  • 和“数据” block ,如果您想要查看的主要内容是为了创建一个类似 MATLAB 的向量。

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

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

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

    关于android - 在Android中将WAV文件转换为矢量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23244100/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com