Python3.10  实现wav文件切割转换mp3

cue文件

REM DATE 2013
REM DISCID F90D9411
REM COMMENT 更新目录:https://docs.qq.com/doc/DT2RWbVlFUmVRbXdo
PERFORMER "韩宝仪"
TITLE "甜歌天后 · 韩宝仪 (黑胶CD)"
FILE "CDImage.wav" WAVE
  TRACK 01 AUDIO
    TITLE "粉红色的回忆"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "你潇洒我漂亮"
    INDEX 01 03:44:21
  TRACK 03 AUDIO
    TITLE "无奈的思绪"
    INDEX 01 07:25:37
  TRACK 04 AUDIO
    TITLE "心心相印"
    INDEX 01 11:12:37
  TRACK 05 AUDIO
    TITLE "舞女"
    INDEX 01 14:50:06
  TRACK 06 AUDIO
    TITLE "望月怕团圆"
    INDEX 01 18:21:73
  TRACK 07 AUDIO
    TITLE "抹去的泪水"
    INDEX 01 21:07:69
  TRACK 08 AUDIO
    TITLE "错误的恋曲"
    INDEX 01 24:49:15
  TRACK 09 AUDIO
    TITLE "昨日情昨日梦"
    INDEX 01 28:36:11
  TRACK 10 AUDIO
    TITLE "一去不回头"
    INDEX 01 32:09:34
  TRACK 11 AUDIO
    TITLE "最后一次回眸"
    INDEX 01 35:27:01
  TRACK 12 AUDIO
    TITLE "凤凰于飞"
    INDEX 01 39:46:70
  TRACK 13 AUDIO
    TITLE "错误的爱"
    INDEX 01 42:32:44
  TRACK 14 AUDIO
    TITLE "我心若玫瑰"
    INDEX 01 46:06:45
  TRACK 15 AUDIO
    TITLE "无言的温柔"
    INDEX 01 49:01:63
  TRACK 16 AUDIO
    TITLE "舞女泪"
    INDEX 01 52:19:32
  TRACK 17 AUDIO
    TITLE "知道不知道"
    INDEX 01 55:26:18

pip3 install pydub

安装ffmpeg

import io,os
from pydub import AudioSegment
from pydub.utils import make_chunks

song=[]

f= lambda x:(int(x[:2])*60+int(x[4:5]))*1000+int(x[7:])

if __name__=='__main__':
    fp=io.open('./CDImage.cue','r',encoding='utf-8')
    s={}
    for item in fp.readlines()[6:]:
        text = item.strip()

        if text[:5]=='TRACK':
            continue
        if text[:5]=='TITLE':
            s['title']=f'{text[7:-1]}.mp3'
            continue
        if text[:5]=='INDEX':
            s['begin']=text[9:]
        song.append(s)
        s={}

    for i,s in enumerate(song): 
        if i<16:   
            s['end']=song[i+1]['begin']            
        else:
            s['end']='57:56:00'
        s['start']=f(s['begin'])
        s['finish']=f(s['end'])

    wav = AudioSegment.from_file('./CDImage.wav')
    for i,s in enumerate(song):
        song=wav[s['start']:s['finish']]
        song.export(s['title'],format='mp3')

在MacOS 13.2.1 Apple M1 Max运行正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒云客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值