根据时间点切割音频

1.获取要切割音频的时间点–开始时间&结束时间

从保存好的音频起止时间文件获取start, end, 单位毫秒,float数据

2.获取整个音频的二进制数据

import wave
wf = wave.open(os.path.join(wav_in, wav), 'rb') # 二进制读文件

wav_chn = wf.getnchannels()  		# 获取通道数
wav_sampwidth = wf.getsampwidth()   # 比特宽度 每一帧的字节数 2B--2个字节-2*8=16bit(bit二进制位) 采样位数
wav_samprate = wf.getframerate()	# 帧率  每秒有多少帧 
wav_framenumber = wf.getnframes()	# 当前音频的总帧数

data = wf.readframes(wav_framenumber) # 按帧读音频,返回二进制字符串数据 读取音频所有数据
wf.close()

音频基础:

https://www.cnblogs.com/ldt-/p/10217830.html
采样率,帧率:波是连续(无穷)的,计算机存储是离散(有限)的。要想用有限存储无限,几乎不可能。因此,要每隔一段时间对波进行一次采样。每秒采样次数采样率。长用采样率是44.1kHz(这里的1k不是1024,是1000!!!切记。)。
采样大小,采样宽度:波每一个时刻都有一个对应的能量值,在计算机中用整数存储。通常使用16bit有符号整数存储,采样大小是16bit
位深x采样率x声道数=比特率 ?
https://blog.csdn.net/sinat_33588424/article/details/80239375
readframes:读取声音数据,传递一个参数指定需要读取的长度(以取样点为单位),readframes返回的是二进制数据(一大堆bytes),在Python中用字符串表示二进制数据

https://blog.ailemon.me/2017/08/29/python-read-wav-files/ 同上面信息差不多
https://www.cnblogs.com/LXP-Never/p/10078200.html 更详细一些
https://www.yht7.com/news/18565 soxi --i *.wav
https://www.it1352.com/1686693.html 没太看
https://blog.csdn.net/fzyjsy/article/details/84842568 python绘制语谱图

3.获取对应分割部分音频的数据

buff = data[int(start) * 16 * 2: int(end) * 16 * 2]  # 字符串索引切割
write_wav('xxx' + '.wav'), buff)

时间-毫秒x16x2 : 当前时间音频字符串的索引位置

https://www.pythonheidong.com/blog/article/136913/caedb2ed5110882b5db1/每次执行时Wave_read.getframes(N),都会得到N * sample_width * n_channels字节。
https://blog.csdn.net/qq_42197919/article/details/102541852批量截取2s
https://blog.csdn.net/qq_25883823/article/details/52749279?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-52749279.nonecase&utm_term=python%E5%B0%86%E9%9F%B3%E9%A2%91%E5%88%87%E5%88%86&spm=1000.2123.3001.4430 pydub

4.将分割的音频数据保存为音频文件

f = wave.open(path, 'wb')
f.setnchannels(1)
f.setsampwidth(2)
f.setframerate(16000)
f.writeframes(data) # buff变量值
f.close()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值