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中的高级函数map/reduce使用实例
Apr 13 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
python的Crypto模块实现AES加密实例代码
Jan 22 Python
python批量实现Word文件转换为PDF文件
Mar 15 Python
Anaconda下安装mysql-python的包实例
Jun 11 Python
Python lxml解析HTML并用xpath获取元素的方法
Jan 02 Python
Pandas之ReIndex重新索引的实现
Jun 25 Python
Flask框架单例模式实现方法详解
Jul 31 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
django处理select下拉表单实例(从model到前端到post到form)
Mar 13 Python
详解pycharm配置python解释器的问题
Oct 15 Python
Python通用验证码识别OCR库ddddocr的安装使用教程
Jul 07 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 事务处理数据实现代码
2010/05/13 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
Jquery下的26个实用小技巧(jQuery tips, tricks & solutions)
2010/03/01 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
2016/05/17 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
Python生成数字图片代码分享
2017/10/31 Python
使用python存储网页上的图片实例
2018/05/22 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
python文件转为exe文件的方法及用法详解
2019/07/08 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
Python脚本调试工具安装过程
2021/01/11 Python
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
高中生自我评语大全
2014/01/19 职场文书
研究生简历自我评
2015/03/11 职场文书