【发布时间】:2026-02-10 03:50:01
【问题描述】:
我试图更好地了解音频文件中的样本是如何对齐的。
假设我们有一个带有sampling rate = 3 的2s 音频文件。
我认为有三种可能的方法来对齐这些样本。看看下图,你能告诉我哪个是正确的吗?
另外,这是所有音频文件的标准还是不同格式有不同的规则?
干杯!
【问题讨论】:
标签: audio core-audio
我试图更好地了解音频文件中的样本是如何对齐的。
假设我们有一个带有sampling rate = 3 的2s 音频文件。
我认为有三种可能的方法来对齐这些样本。看看下图,你能告诉我哪个是正确的吗?
另外,这是所有音频文件的标准还是不同格式有不同的规则?
干杯!
【问题讨论】:
标签: audio core-audio
音频中的采样率通常会告诉您一秒钟内有多少个样本,一个称为赫兹的单位。严格来说,正确答案是 (1),因为您在一秒钟内有 3 个样本。假设没有延迟,PCM 和其他格式规定音频从0 开始。下一个“周期”(下一秒)也从零开始,原理与时钟相同。
要获得音频的总长度(评论中的以下问题),您只需使用number of samples / rate。使用 soxi 的 30 年代 WAV 示例,这是社区中用于声音处理的规范工具之一:
Input File : 'book_00396_chp_0024_reader_11416_5_door_Freesound_validated_380721_0-door_Freesound_validated_381380_0-9IfN8dUgGaQ_snr10_fileid_1138.wav'
Channels : 1
Sample Rate : 16000
Precision : 16-bit
Duration : 00:00:30.00 = 480000 samples ~ 2250 CDDA sectors
File Size : 960k
Bit Rate : 256k
Sample Encoding: 16-bit Signed Integer PCM
480000 samples / (16000 samples / seconds) = 30 seconds 完全正确。引用手册,持续时间是“相当于样本数除以采样率。”
【讨论】:
number_of_samples / rate吗?如果是这样,这意味着最后一个样本不在音频的确切末尾。它是否正确?那么计算样本时间的公式是什么?这是正确的吗:time = sample_idx / (rate + 1)(样本从 0 开始索引)。
number_of_samples / rate 是正确的,单位为samples / (samples / seconds) = seconds,假设速率为Hz。根据定义,最后一个样本是音频的结尾 - 为什么不是?
2s 标记是新周期的开始,同样0s 是开始。如果在示例 #1 中有一个位于 2s 的样本,则意味着 who 样本的长度超过 2 秒。三者的正式长度是相同的。请记住,在此推理中,您尝试将连续测量框架(时间以秒为单位)应用于离散测量,这可能会导致解释问题(由于不连续性)。
1 / frequency。在我们的示例中,它是1/3 sec,它是样本之间的时间。因此总的音频时长可以定义为last_sample_timestamp + sample_duration。我的直觉是它是正确的,因为在最后一个样本之后波被内插到0,并且也需要时间。