99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2021-03-17 閱讀量: 1713
如何獲取一個(gè)wav文件的總時(shí)長(zhǎng)?如何將一個(gè)wav文件切成時(shí)長(zhǎng)比較均勻的指定個(gè)數(shù)的wav文件

如何獲取一個(gè)wav文件的總時(shí)長(zhǎng)?如何將一個(gè)wav文件切成時(shí)長(zhǎng)比較均勻的指定個(gè)數(shù)的wav文件

import wave
from pydub import AudioSegment
#生成一個(gè)python和wav文件的通道
f = wave.open("D:\\Chapter 1 數(shù)據(jù)挖掘概要.wav","rb")
f.getparams()
'''
返回的結(jié)果是:
Out[12]: _wave_params(nchannels=2, sampwidth=2, framerate=44100, nframes=95693824, comptype='NONE', compname='not compressed')
其中framerate是幀率(fps),也就是每秒的幀數(shù),
nframes是文件總幀數(shù)
比如說(shuō)總幀數(shù)是100幀,每秒的幀數(shù)是10,那么這個(gè)文件的時(shí)長(zhǎng)就是100/10=10秒。
'''
# 接下來(lái)我們獲取音頻時(shí)長(zhǎng)# 返回的是wav文件的秒數(shù)
timelength=int(f.getparams()[3]/f.getparams()[2])
#也可以像下面這樣寫
#timelength=int(f.getparams().nframes/f.getparams().framerate)
print("該wav文件的總時(shí)長(zhǎng)是:",timelength,"秒",sep="")
# 由于我們的wav文件比較大,我們將其切分為若干個(gè)wav文件
readaudio=AudioSegment.from_wav("D:\\Chapter 1 數(shù)據(jù)挖掘概要.wav") #讀取一個(gè)wav文件的數(shù)據(jù)
#計(jì)算如果60秒一個(gè)文件的話,大概需要切分成多少個(gè)文件
efs=60
kn=int(timelength/efs)+1#
print("一共需要生成",kn,"個(gè)文件",sep="")
for i in range(kn):
    readaudio[i*efs*1000:((i+1)*efs+2)*1000].export(r'D:\chapter1\speech%d.wav'%(i+1), format="wav")
    #這里加上2的意思,就是加上兩秒的意思,
    #比如當(dāng)i等于1是就是說(shuō)第一個(gè)切分文件是從0秒開(kāi)始62秒結(jié)束,也就是大概0-62秒
    #比如當(dāng)i等于2是就是說(shuō)第一個(gè)切分文件是從60秒開(kāi)始122秒結(jié)束,也就是大概60-122秒
    #之所以加上兩秒是為了讓每個(gè)音頻文件的尾部和下一個(gè)音頻文件的首部有所重疊,以免音頻遺漏。

3.png




0.7956
0
關(guān)注作者
收藏
評(píng)論(0)

發(fā)表評(píng)論

暫無(wú)數(shù)據(jù)
推薦帖子