C# 如何将音频文件拆分为帧???在C中#

C# 如何将音频文件拆分为帧???在C中#,c#,java,C#,Java,我想将波形文件(.wav)拆分为1秒或固定时间段的帧。如何使用C#或Java实现这一点。 任何人都可以通过一些代码示例或与此相关的链接来帮助我解决这个问题。(这太长了,无法发表评论) .wav文件相对容易使用(其他人可能会指出API允许轻松使用它们,但您也可以自己做……我认为JMF可以用于您想要做的事情,因为它是真正基本的“信号处理”) 基本上,你有几个头来决定文件,然后是原始数据:如果你有,比如说,7秒的16位/44千赫立体声,你将有16*44000*7/8字节的原始数据,或者616000字节

我想将波形文件(.wav)拆分为1秒或固定时间段的帧。如何使用C#或Java实现这一点。 任何人都可以通过一些代码示例或与此相关的链接来帮助我解决这个问题。

(这太长了,无法发表评论)

.wav文件相对容易使用(其他人可能会指出API允许轻松使用它们,但您也可以自己做……我认为JMF可以用于您想要做的事情,因为它是真正基本的“信号处理”)

基本上,你有几个头来决定文件,然后是原始数据:如果你有,比如说,7秒的16位/44千赫立体声,你将有16*44000*7/8字节的原始数据,或者616000字节的原始数据(601KB)

如果你想把这7秒分割成7帧1秒,你基本上要把这616000字节拼接成7段88000字节,每段对应一秒44kHz的16位立体声数据

如果要将这些文件存储回.wav文件,则必须重新创建标题

这就是理论,你可以自己做(我肯定十年前用Java做过):它不是很复杂,你会学到很多。wav基本上是最容易使用的格式之一

当然,您可以使用一些API,但了解基本知识很重要:每秒有x个采样(例如,当您有44 kHz采样时,为44 000个采样),每个采样通常在8或16位上编码,然后通常有单声道或立体声(因此有一个或两个通道)


除此之外,.wav是无损和未压缩的,这就是为什么它很容易使用的原因(与FLAC相反,FLAC是无损但压缩的)。

向我们展示您迄今为止的代码…注意使用mpeg-3编码的.wav文件,尽管.wav文件可能包含未压缩的PCM编码数据,但是WAV可以用作其他几种压缩格式(不仅仅是MP3)的容器。