gpt4 book ai didi

java - 将 44100hz、16 位单声道 wav 文件转换并分段为 16kHz、16 位单声道 wav 文件

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

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

目前,我正在为此研究 Java 的声音 API。我最初没有查阅它,因为我发现指南很长,但如果它是现有的最佳选择,我愿意阅读它。不过,我仍然想知道是否还有其他方法可以做到这一点。最后,我想知道我是否应该完全适应Java的Sound API,并删除我当前使用的WavFile类。对我来说,这看起来很合理,但我只是想确定一下。

提前非常感谢您抽出时间。

最佳答案

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

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

关于java - 将 44100hz、16 位单声道 wav 文件转换并分段为 16kHz、16 位单声道 wav 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6749554/

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