gpt4 book ai didi

arrays - 原始声音 byteArray 到 float Array

转载 作者:行者123 更新时间:2023-12-02 07:06:11 25 4
gpt4 key购买 nike

我正在尝试将声音对象的 byteArray 转换为带有 float 的数组。声音对象可以很好地全长播放,但是我从中获得的 float 组被切断(但听起来是正确的),所以我在转换中一定做错了什么:

var s:Sound = mySound;
s.play(); // plays fine

var bytes:ByteArray = new ByteArray();
bytes.endian = Endian.LITTLE_ENDIAN;
s.extract(bytes, s.bytesTotal, 0);

var leftChannel:Array = new Array();
var rightChannel:Array = new Array();

bytes.position = 0;

while (bytes.bytesAvailable)
{
leftChannel.push(bytes.readFloat());
rightChannel.push(bytes.readFloat());
}

这就是我得到的:

alt text

顶部的两个 channel 是原始声音对象。下面两个是 float 组数据。我将它们对齐,这样您就可以看到开头被切断,并且显然长度不正确。

感谢您的回答...

最佳答案

好吧,有两个问题:

  1. 我导入的 mp3 文件因某种原因损坏,导致开头部分被切断
  2. 我定义的提取长度不正确,要查找完整的声音长度,请使用

var numTotalSamples:Number = int(s.length * 44.1); //assuming 44.1kHz sample rate

然后:

s.extract(bytes, numTotalSamples, 0);

关于arrays - 原始声音 byteArray 到 float Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2380849/

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