python对批量WAV音频进行等长分割的方法实现


Posted in Python onSeptember 25, 2020

对批量WAV音频进行等长分割

对WAV格式的音频以相同长度进行分割。

import os
import wave
import numpy as np
import pylab as plt
import librosa

path = r"D:\cutaudio\test"
files = os.listdir(path)
files = [path + "\\" + f for f in files if f.endswith('.wav')]
CutTime = 4 #单位长度4s

def CutAudios():
  for i in range(len(files)):
    FileName = files[i]
    f = wave.open(r"" + FileName, 'rb')
    params = f.getparams() #读取音频文件信息
    nchannels, sampwidth, framerate, nframes = params[:4] #声道数, 量化位数, 采样频率, 采样点数  
    str_data = f.readframes(nframes)
    f.close()
   
    wave_data = np.frombuffer(str_data, dtype=np.short)
    #根据声道数对音频进行转换
    if nchannels > 1:
        wave_data.shape = -1, 2
        wave_data = wave_data.T
        temp_data = wave_data.T
    else:
        wave_data = wave_data.T
        temp_data = wave_data.T

    CutFrameNum = framerate * CutTime 
    Cutnum =nframes/CutFrameNum #音频片段数
    StepNum = int(CutFrameNum)
    StepTotalNum = 0
  
    for j in range(int(Cutnum)):
      FileName = r"D:\cutaudio\11\\" + files[i][-17:-4] +"-"+ str(j) + ".wav"
      temp_dataTemp = temp_data[StepNum * (j):StepNum * (j + 1)]
      StepTotalNum = (j + 1) * StepNum
      temp_dataTemp.shape = 1, -1
      temp_dataTemp = temp_dataTemp.astype(np.short)# 打开WAV文档
      f = wave.open(FileName, 'wb')
      # 配置声道数、量化位数和取样频率
      f.setnchannels(nchannels)
      f.setsampwidth(sampwidth)
      f.setframerate(framerate)
      f.writeframes(temp_dataTemp.tostring()) # 将wav_data转换为二进制数据写入文件
      f.close()
      
if __name__ == '__main__' :
  CutAudios()

到此这篇关于python对批量WAV音频进行等长分割的方法实现的文章就介绍到这了,更多相关python WAV等长分割内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Python中使用元类的教程
Apr 28 Python
python 数据清洗之数据合并、转换、过滤、排序
Feb 12 Python
Python 通过pip安装Django详细介绍
Apr 28 Python
python3设计模式之简单工厂模式
Oct 17 Python
python3的输入方式及多组输入方法
Oct 17 Python
python for 循环获取index索引的方法
Feb 01 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
Apr 16 Python
Django 路由控制的实现
Jul 17 Python
Python类中self参数用法详解
Feb 13 Python
结束运行python的方法
Jun 16 Python
python中opencv实现图片文本倾斜校正
Jun 11 Python
Python OpenCV实现图像模板匹配详解
Apr 07 Python
python连接mysql数据库并读取数据的实现
Sep 25 #Python
Python3如何使用tabulate打印数据
Sep 25 #Python
如何基于pandas读取csv后合并两个股票
Sep 25 #Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
Sep 25 #Python
python实现人性化显示金额数字实例详解
Sep 25 #Python
python 绘制正态曲线的示例
Sep 24 #Python
Python爬取网页信息的示例
Sep 24 #Python
You might like
Access数据库导入Mysql的方法之一
2006/10/09 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
PHP操作XML中XPath的应用示例
2019/07/04 PHP
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
javascript+jQuery实现360开机时间显示效果
2017/11/03 jQuery
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
React实现全选功能
2020/08/25 Javascript
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
在django中自定义字段Field详解
2019/12/03 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
python实现简单猜单词游戏
2020/12/24 Python
pandas 数据类型转换的实现
2020/12/29 Python
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
四风问题查摆材料
2014/08/25 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
村委会贫困证明范本
2014/09/17 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
家长评语怎么写
2014/12/30 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
大学生见习总结报告
2015/06/24 职场文书
运动会新闻报道稿
2015/07/22 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL