【问题标题】:Changing tempo (speed) of audio改变音频的速度(速度)
【发布时间】:2013-03-25 00:21:36
【问题描述】:

我想近乎实时地更改立体声音频流的速度 - 音频是从文件加载的,缓冲区不应超过 1 秒。 我尝试了 SoundTouch (http://www.surina.net/soundtouch/),但降低速度时的质量非常糟糕。现在我正在寻找时间拉伸音频信号的替代方法。 Audacity 中实现的一种产生非常好的结果的方法是基于“子带正弦建模”,但它非常慢。

然后是 Rubber Band Audio 处理器库 (http://breakfastquay.com/rubberband) 和 Dirac (http://www.dspdimension.com/technology-licensing/dirac/),它们都是商业/GPL 且不完全跨平台兼容。

您能否向我推荐符合以下条件的算法和/或库?:

  • 跨平台兼容(例如 iOS、Android、Windows、Linux、MacOS)
  • 适用于上述实时处理
  • 比 SoundTouch 库中使用的时间拉伸方法质量更好
  • 在不影响音高的情况下改变速度

【问题讨论】:

    标签: c++ audio pitch audio-processing soundtouch


    【解决方案1】:

    看看 BASS 音频库 http://www.un4seen.com/bass.html 及其配套BASS FX 扩展

    BASS 是一个音频库,可在多个平台上的软件中使用。其目的是为开发人员提供强大而高效的采样、流(MP3、MP2、MP1、OGG、WAV、AIFF、自定义生成等,通过 OS 编解码器和附加组件)、MOD 音乐(XM、IT、S3M、MOD , MTM, UMX), MO3 音乐 (MP3/OGG​​ 压缩 MODs), 和录音功能。所有这些都在一个不会使您的发行版膨胀的紧凑 DLL 中。

    BASS 适用于 Win32、Win64、MacOS、Linux、WinCE、iOS、Android 和 ARM Linux 平台。

    BASS FX 插件扩展提供了多种效果,包括反向播放以及速度和音高控制。

    【讨论】:

    • 我以前从未听说过 BASS,但它给人的印象非常好!
    • 我尝试了一个示例应用程序 (audiops.codeplex.com),它使用了 Bass(以及它的音高/速度插件)库,结果听起来类似于 SoundTouch 库。
    • 免费让你变得更好的可能性不大
    • 并且没有一些专用硬件
    • 我的问题不在于例如Dirac 不是免费软件,但它不是完全独立于平台的。其余所有库的质量似乎都非常接近(所有使用的可能都在使用 SOLA/WSOLA)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多