对音频信号进行编码是否有任何限制?

Are there any constraints to encode a audio signal?

我以某种采样率捕获 pcm 声音,例如24 赫兹。我需要使用一些编解码器(我为此使用 Opus)对其进行编码以通过网络发送。我注意到,在我使用 Opus 进行编码的某个采样率下,我经常在接收端听到一些额外的 "cracking" 噪音。以其他速率,这听起来还不错。这可能是一个实现错误,但我虽然也可能有一些我不知道的限制。

我还注意到,如果我在解码 Opus 编码的音频流时使用另一个采样率,我会得到更低或更高的音调,这对我来说似乎是合乎逻辑的。所以我读过,如果接收方不支持原始 PCM 采样率,我需要在另一端重新采样。

关于这一切,我有 2 个问题:

  1. 音频编码的采样率(或其他参数)是否有限制? (比如我有一个 24kHz pcm 声音 - 也许有特定的采样率可以使用它?)
  2. 在通过网络发送音频流时,是否有任何通用技术可以在两侧提供相同的音质?

噼啪声很可能是一个错误,因为采样率没有限制会导致这种噪声(采样率转换会带来其他类型的信号变化,尤其是在下采样到较低的采样率;但绝对不是噼啪声)。

一个大胆的猜测是,输入缓冲区有问题。如果样本被省略或重复,经常会出现爆裂声,这通常是后续缓冲区边界不正确的结果。

无论如何,通过网络实时发送音频数据都需要压缩。所需的数据速率实在是太高了。有提供无损音频压缩的编解码器(例如 FLAC),但与例如作品

问题已通过在接收端缓冲数据包并在达到一定数量后立即将其写入声卡缓冲区解决。 'crackling' 噪声很可能是由于发送到声卡缓冲区的后续帧之间的间隙造成的