繁体   English   中英

将 44100hz、16 位 mono wav 文件的集合转换和分段为 16kHz、16 位 mono wav 文件

[英]Converting and segmenting a collection of 44100hz, 16-bit mono wav files into 16kHz, 16-bit mono wav files

我需要将大量 wav 文件分解成更小的片段,并将它们转换为 16 khz、16 位 mono wav 文件。 为了分割 wav 文件,我从以下站点下载了WavFile class: WavFile Class 我对其进行了一些调整,以允许跳过任意数量的帧。 使用 class,我创建了一个WavSegmenter class,它将读取源 wav 文件,并将时间 x 和时间 y 之间的帧复制到新的 wav 文件中。 我可以从提供的 XML 文件中获得开始时间和结束时间,并且可以使用sample rate * time获取帧。 我的问题是我不知道如何将采样率从 44,100 转换为 16,000。

目前,我正在为此研究 Java 的 Sound API。 我最初没有查阅它,因为我发现指南很长,但如果它是现有的最佳选择,我愿意通过它 go。 不过,我仍然想知道是否有其他方法可以做到这一点。 最后想知道是不是应该完全适配Java的Sound API,去掉我现在用的WavFile class。 对我来说,它看起来不错,但我想确定一下。

非常感谢您抽出宝贵的时间。

我相信您的任务中最困难的部分是每秒从 44.1K 重新采样到 16K 样本。 从那里向下采样到 22K 或 11K 会简单得多。 你需要在那里做一些插值。

编辑:在与 OP 进一步审查和讨论后,我相信这种情况的正确选择是 go 和 Java 声音 API 因为它提供了文件格式之间的转换方法,包括不同的采样率。 坚持使用 WavFile API 需要重新采样,这在 44.1K 到 16K 的转换情况下实现起来相当复杂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM