功能非常简单,把长段录音截断,控制在60s以内。
为什么要截短,当然是为了接百度语音识别的API
全文参考了下文:
https://blog.csdn.net/watfe/article/details/80284242?utm_source=app
#本程序用于把长段的音频文件按照语气停顿进行截取
#操作注意:拷贝代码后把path改成自己的目标文件即可
from pydub import AudioSegment
from pydub.silence import split_on_silence
import os
path = "G:/a.wav"
audiotype = 'wav'
sound = AudioSegment.from_file(path, format=audiotype)
sound = sound[:3*60*1000]
print('开始分割')
chunks = split_on_silence(sound,min_silence_len=1000,silence_thresh=-70)#min_silence_len: 拆分语句时,静默满1秒则拆分。silence_thresh:小于-70dBFS以下的为静默。
# 创建保存目录
filepath = os.path.split(path)[0]
chunks_path = filepath+'/chunks/'
if not os.path.exists(chunks_path):os.mkdir(chunks_path)
# 保存所有分段
print('开始保存')
for i in range(len(chunks)):
new = chunks[i]
save_name = chunks_path+'%04d.%s'%(i,audiotype)
new.export(save_name, format=audiotype)
print('%04d'%i,len(new))
print('保存完毕')