AudioSegment 将音频分割为指定长度时间片段 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。

需要更多数据资源和技术解决方案,知识星球: "DataBall - X 数据球(free)"

-----------------------------------------------------------------------------------------

AudioSegment 将音频切割为指定长度时间片段。

python 复制代码
# -*-coding:utf-8-*-
# date:2024-12
# Author: DataBall - XIAN
# Function:将音频切割为指定长度时间片段

from pydub import AudioSegment

audio_path = 'audio/test.mp3'

# 加载音频文件
audio = AudioSegment.from_file(audio_path)

# 确定每个音频切割音频片段的长度(秒)
chunk_length_seconds = 20  # 假设每段音频长度为20秒

# 计算需要切割的片段数量
num_chunks = int(len(audio) / 1000 / chunk_length_seconds)  # len(audio)返回的是毫秒数

# 切割音频并保存每个片段
for i in range(num_chunks):
    start_ms = i * chunk_length_seconds * 1000  # 将秒转换为毫秒
    chunk = audio[start_ms:start_ms + chunk_length_seconds * 1000]  # 切割音频片段
    chunk.export(f'clip_audio/chunk_{i+1}.mp3', format='mp3')  # 导出音频片段

# 如果音频的总长度不是chunk_length_seconds的整数倍,会剩下一部分音频没有被切割
# 处理剩余的音频
remaining_ms = len(audio) - num_chunks * chunk_length_seconds * 1000
if remaining_ms > 0:
    remaining_chunk = audio[(-remaining_ms):]
    remaining_chunk.export(f'clip_audio/chunk_{num_chunks + 1}.mp3', format='mp3')

​​​​​

助力快速掌握数据集的信息和使用方式。

数据可以如此美好!

相关推荐
Xin_ye10086几秒前
C# 零基础到精通教程 - 第十七章:前端集成——Blazor 基础
开发语言·c#
LDR0063 分钟前
LDR6020:多 Type‑C 端口角色管理与外设上电顺序的智慧核心
c语言·开发语言·云计算
小杍随笔12 分钟前
【Rust 工具链管理完全指南:rustup toolchain 命令实战详解】
开发语言·后端·rust
五月君_15 分钟前
放弃 Python,Kimi 用 TS + Node.js 重写了一个 Kimi Code
开发语言·python·node.js
Cloud_Shy61831 分钟前
解读《Effective Python 3rd Edition》:从练气到老魔
开发语言·python
雨辰AI36 分钟前
MySQL 迁移至达梦 DM9 完整改造指南|99% SQL 零改动
java·开发语言·数据库·sql·mysql·政务
弹简特40 分钟前
【Java项目-轻聊】05-AI赋能设计接口文档
java·开发语言
AI行业学习42 分钟前
.NET Framework 3.5 SP1 完整离线包(2029.5.29)
开发语言·windows·.net
cany100044 分钟前
C++ -- 队列std::queue
开发语言·c++
skywalk81631 小时前
根据言律的语法,能否用racket进行开发呢?主要探讨是否可行。 racket在这里:E:\Program Files\Racket\Racket.exe
开发语言·原型模式