【问题标题】:Python Audio library for fast, gapless looping of many short audio tracks用于快速、无缝循环许多短音轨的 Python 音频库
【发布时间】:2012-09-14 00:00:26
【问题描述】:

我正在编写一个应用程序来模拟火车声音。对于火车的每种速度,我都得到了非常短(0.2 秒)的音频样本,我需要能够循环最多 20 个(每辆火车一个)同时没有间隙时间。 音频样本(火车速度)的无缝变化也是必须的。 我一直在寻找可能的 python-audio-solutions,包括

  • PyAudio
  • PyMedia
  • pyaudiere

但我不确定哪一个最适合我的用例,所以我非常感谢任何建议和经验!

PS:我已经尝试过 gstreamer,但由于 1.0 版本还没有发布,我不知道如何让无缝播放与 pygi 一起工作,我认为可能有更好的选择.我也试过pygame,但是好像限制在8个音频通道??

【问题讨论】:

  • 好的,对于那些对我如何继续感兴趣的人:
  • 我现在实际上在使用 pygame,因为它支持无缝播放(使用 pygame.mixer.queue())并且非常友好和直观(我发现是的,有可能超过 8 个通道同时播放 ;) )。如果您有更好的想法,我仍然愿意,但到目前为止它似乎有效。

标签: python audio loops playback


【解决方案1】:

我在很多事情上都使用 PyAudio,并且对它非常满意。如果它可以做到这一点,我不知道,但我认为它可以。

一种解决方案是手动输入声音缓冲区并控制/设置所需的延迟。我已经这样做了,而且效果很好。如果您的延迟足够高,它将起作用。

另一个与此类似的解决方案是管理您自己的延迟。您可以手动排队和/或混合您的小声音文件,例如大小为 0.5 -1 秒。这将大大降低对“实时性”的要求,并允许您在“速度”之间进行一些非常酷的转换

我不知道您可以应对什么样的延迟,但如果我们谈论的是火车速度,我猜它们不会瞬间改变 - 因此 500 毫秒到几秒的延迟很可能是可以接受的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 2018-04-06
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    相关资源
    最近更新 更多