Loading

pydub 把音频按时间段切成小段(结合ffmpeg)

from pydub import AudioSegment
from pydub.utils import make_chunks

audio = AudioSegment.from_file("./nnqdzj01.mp3", "mp3")

size = 30000  #切割的毫秒数 10s=10000

chunks = make_chunks(audio, size)  #将文件切割为30s一块

for i, chunk in enumerate(chunks):
    chunk_name = "./nnqdz01-wav30/nnqdzj00-{0}.wav".format(i)
    print(chunk_name)
    chunk.export(chunk_name, format="wav", parameters=["-ar", "16000","-ac","1", "-acodec", "pcm_s16le"])

结合ffmpeg,官网原文如下:

You can pass an optional bitrate argument to export using any syntax ffmpeg supports.

awesome.export("mashup.mp3", format="mp3", bitrate="192k")
Any further arguments supported by ffmpeg can be passed as a list in a 'parameters' argument, with switch first, argument second. Note that no validation takes place on these parameters, and > you may be limited by what your particular build of ffmpeg/avlib supports.

Use preset mp3 quality 0 (equivalent to lame V0)

awesome.export("mashup.mp3", format="mp3", parameters=["-q:a", "0"])

Mix down to two channels and set hard output volume

awesome.export("mashup.mp3", format="mp3", parameters=["-ac", "2", "-vol", "150"])

参考
python--把音频按时间段切成小段(重叠和不重叠)

上面的内容,主要还是一些知识点整理和个人的一些思考,权当参考,如有错误或者更好的建议,可以在评论区指正,不胜感激!
可执行代码

posted @ 2021-06-07 11:50  Tester-Dolores  阅读(344)  评论(0编辑  收藏  举报