Python3分析处理声音数据的例子


Posted in Python onAugust 27, 2019

将音频文件拷贝到程序所在目录即可。

如下所示:

#!/usr/bin/env python
# encoding: utf-8
"""
@Company:华中科技大学电气学院聚变与等离子研究所
@version: V1.0
@author: Victor
@contact: 1650996069@qq.com or yexin@hust.edu.cn 2018--2020
@software: PyCharm
@file: VoiceDataProcessing.py
@time: 2018/9/8 13:08
@Desc:处理声音数据
"""
 
import wave
import pylab as pl
import numpy as np
 
print('1650996069@qq.com or yexin@hust.edu.cn')
 
print('working...')
 
print("read wav data....")
# 打开WAV文档,声音文件
f = wave.open(r"speak.wav", "rb")
fo = wave.open(r"jg.wav", "wb")
fi = wave.open(r"back.wav", "rb")
 
# 读取波形数据
# (nchannels, sampwidth, framerate, nframes, comptype, compname)
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
str_data = f.readframes(nframes)
 
fi_params = fi.getparams()
fi_nframes = fi_params[3]
fi_str_data = fi.readframes(fi_nframes)
 
# 将波形数据转换为数组,并更改
print("update wav data....")
wave_data = np.fromstring(str_data, dtype=np.short)
fi_wave_data = np.fromstring(fi_str_data, dtype=np.short)
 
# 复制并合并声音
new_wave_data = np.hstack((wave_data, wave_data, wave_data, wave_data, wave_data, wave_data, wave_data, wave_data))
temp_wavedata = fi_wave_data[:len(new_wave_data)]
new_wave_data = temp_wavedata * 0.5 + new_wave_data * 0.5
 
new_wave_data = np.array(new_wave_data)
new_wave_data = new_wave_data.astype(wave_data.dtype)
new_str_data = new_wave_data.tostring()
# 写波形数据参数
print("save new wav files....")
fo.setnchannels(nchannels)
fo.setframerate(framerate)
fo.setsampwidth(sampwidth)
fo.writeframes(new_str_data)
 
# 绘制波形
wave_data.shape = -1, 2
wave_data = wave_data.T
time = np.arange(0, nframes) * (1.0 / framerate)
pl.subplot(221)
pl.plot(time, wave_data[0])
pl.subplot(222)
pl.plot(time, wave_data[1], c="g")
pl.xlabel("time (seconds)")
pl.show()
 
# 绘制波形
new_wave_data.shape = -1, 2
new_wave_data = new_wave_data.T
new_time = np.arange(0, nframes * 8) * (1.0 / framerate)
pl.subplot(223)
pl.plot(new_time, new_wave_data[0])
pl.subplot(224)
pl.plot(new_time, new_wave_data[1], c="g")
pl.xlabel("time (seconds)")
pl.show()

以上这篇Python3分析处理声音数据的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 动态获取当前运行的类名和函数名的方法
Apr 15 Python
python文件和目录操作函数小结
Jul 11 Python
python八大排序算法速度实例对比
Dec 06 Python
TensorFlow实现AutoEncoder自编码器
Mar 09 Python
使用python验证代理ip是否可用的实现方法
Jul 25 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
python实现二维数组的对角线遍历
Mar 02 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
Jun 26 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
Win系统PyQt5安装和使用教程
Dec 25 Python
python 中不同包 类 方法 之间的调用详解
Mar 09 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
python中struct模块之字节型数据的处理方法
Aug 27 #Python
Python的bit_length函数来二进制的位数方法
Aug 27 #Python
使用python将excel数据导入数据库过程详解
Aug 27 #Python
python读取指定字节长度的文本方法
Aug 27 #Python
Django中的cookie和session
Aug 27 #Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 #Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 #Python
You might like
提升PHP性能的21种方法介绍
2013/06/25 PHP
php中rename函数用法分析
2014/11/15 PHP
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
基于python的多进程共享变量正确打开方式
2018/04/28 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
python3处理word文档实例分析
2020/12/01 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
追悼会主持词
2014/03/20 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
JavaScript 定时器详情
2021/11/11 Javascript