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 21 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
Feb 13 Python
Face++ API实现手势识别系统设计
Nov 21 Python
解决python写入带有中文的字符到文件错误的问题
Jan 31 Python
python函数修饰符@的使用方法解析
Sep 02 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
Dec 09 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
浅谈matplotlib中FigureCanvasXAgg的用法
Jun 16 Python
Pytorch实现将模型的所有参数的梯度清0
Jun 24 Python
python os.rename实例用法详解
Dec 06 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 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
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
PHP调试及性能分析工具Xdebug详解
2017/02/09 PHP
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
原生JavaScript实现remove()和recover()功能示例
2018/07/24 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
基于python实现聊天室程序
2018/07/27 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
python打开windows应用程序的实例
2019/06/28 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
通过自学python能找到工作吗
2020/06/21 Python
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
会计实习生工作总结的自我评价
2013/10/07 职场文书
毕业证代领委托书
2014/09/26 职场文书
化验员岗位职责
2015/02/14 职场文书
我们的节日重阳节活动总结
2015/03/24 职场文书
Go Plugins插件的实现方式
2021/08/07 Golang