You need to enable JavaScript to run this app. 如何将AudioSegment分割为10秒等长块且免存盘获取类字节对象
优惠活动
大模型
产品
解决方案
定价
更多

如何将AudioSegment分割为10秒等长块且免存盘获取类字节对象

你可以借助Python标准库的io.BytesIO实现内存中导出音频、直接获取字节流,不需要落地到磁盘文件,完全满足你的需求。

报错的原因是分片得到的是pydub自定义的AudioSegment类实例,不是原生字节对象,通过内存导出操作就能直接得到符合要求的字节流,具体实现如下:

步骤1:导入依赖

import io

(如果已经导入过pydub相关模块不需要重复导入)

步骤2:修改分片处理逻辑

for n in range(int(duration/10)):
    start = n * 10 * 1000
    end = (n + 1) * 10 * 1000
    audio_segment = audio[start:end]
    
    # 内存中导出为指定格式的字节流
    byte_buffer = io.BytesIO()
    # format参数可按需替换为wav/ogg等你需要的音频格式
    audio_segment.export(byte_buffer, format="mp3")
    audio_bytes = byte_buffer.getvalue()
    
    # 直接将得到的audio_bytes传入目标函数即可
    your_target_function(audio_bytes)

补充说明

  • 上述导出操作全程在内存完成,没有磁盘IO开销,速度远快于落地文件再读取的方案
  • 你原有代码的分片时长计算逻辑是正确的,上述代码只是做了可读性优化,功能没有变化
  • 导出时的参数(比如比特率、音频参数等)和你直接导出到磁盘文件时的传参规则完全一致,按需添加即可

内容的提问来源于stack exchange,提问作者PucciLaCanton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 06:15:09