gpt4 book ai didi

audio - libsox 将多声道 wav 拆分为单声道

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

我想将多 channel (2,8 或 16)wav 文件拆分为其 channel 并将每个 channel 保存在另一个 wav 文件中。

到目前为止,我已经完成了在我的 c++ objective-c ++ 项目中启动并运行 libsox。

Libsox 没有很好的文档记录,并且有很多关于如何做到这一点的示例:(

我首先打开 Inputfile

sox_format_t * in, * out;
assert(sox_init() == SOX_SUCCESS);
assert(in = sox_open_read((const char*)filename.c_str(),NULL,NULL,NULL));

现在我必须找到一种方法来获取该文件的 channel 数。然后我必须创建相同数量的输出文件并将每个 channel 本身保存在其中。

怎么做?

谢谢!

最佳答案

我想我会用老式的方式来做。

  • 确定文件的 channel 数。
  • 确定数据 block 的长度。
    Length of Data block / channelCount = Size of each channelBlock
  • channel 保存在 WavFile-Datablock 中(对于 4Channel WavFile)
    channel 1/ channel 2/ channel 3/ channel 4 channel 1/ channel 2/ channel 3/ channel 4。
  • 我通过数据 block 提取 channel 并将它们放入单声道文件
  • 关于audio - libsox 将多声道 wav 拆分为单声道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12341598/

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