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正则简单实例分析
Mar 21 Python
Windows下PyCharm安装图文教程
Aug 27 Python
OpenCV+Python--RGB转HSI的实现
Nov 27 Python
用python求一重积分和二重积分的例子
Dec 06 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
Feb 12 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
Python 实现集合Set的示例
Dec 21 Python
matplotlib部件之套索Lasso的使用
Feb 24 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 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类常量的使用详解
2013/06/08 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
php批量删除操作代码分享
2017/02/26 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
js利用prototype调用Array的slice方法示例
2014/06/09 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
详解JavaScript的变量
2019/04/04 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
python 魔法函数实例及解析
2019/09/25 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
关于礼仪的演讲稿
2014/01/04 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
罚款通知怎么写
2015/04/22 职场文书
护士业务学习心得体会
2016/01/25 职场文书
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技
如何利用python创作字符画
2022/06/25 Python