如何降低PCM数据的播放速度?

Posted

技术标签:

【中文标题】如何降低PCM数据的播放速度?【英文标题】:How to reduce playback speed of PCM data? 【发布时间】:2011-11-03 23:23:47 【问题描述】:

伙计们,

在我的 android 应用程序中,我录制音频并播放。用户通常是歌手。

我现在需要能够以低速播放音频。

据我了解,PCM 数据只是不同频率的正弦波的混合。有一个主导波(最高震级)会产生歌曲的音符。

为了将速度降低 2 倍,起初我以为我会复制每个样本。例如,如果采样的输入 PCM 值为 20000、25000、30000、...,我将回放 20000、20000、25000、25000、30000、30000。但是,这似乎不是正确的解决方案。我似乎在这里所做的只是增加正弦波的波长(因此是频率)。我认为这会导致声音/音符发生变化。

有人可以建议如何降低或提高速度吗?

提前感谢您的帮助。

问候, 彼得

【问题讨论】:

【参考方案1】:

如果速度是指将 PCM 数据中的声音从慢(高大)变为快(花栗鼠),那么

你可能想看看这个algorithm for pitch shifting.。我们的想法是根据您想要的音高获得正确的采样率。

【讨论】:

感谢您的帮助。我不打算改变声音。我只想以较低的速度播放录音。

以上是关于如何降低PCM数据的播放速度?的主要内容,如果未能解决你的问题,请参考以下文章

定位速度降低时播放音频播放器

CoreAudio AudioQueue PCM 速度快且不稳定

在 iOS 中将音频文件的播放速度降低 600%-900%(不影响音高)

USQL如何帮爱普新媒降低80%成本,提升50%数据分析速度

添加缩略图如何大大降低我的网站速度?

如何在 iOS 中播放来自服务器的流式 PCM 数据?