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下使用Txt2Html实现网页过滤代理的教程
Apr 11 Python
python切片及sys.argv[]用法详解
May 25 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
python3 线性回归验证方法
Jul 09 Python
Python3中urlencode和urldecode的用法详解
Jul 23 Python
Django REST framework内置路由用法
Jul 26 Python
Django 拆分model和view的实现方法
Aug 16 Python
用Pelican搭建一个极简静态博客系统过程解析
Aug 22 Python
python super函数使用方法详解
Feb 14 Python
python中pandas对多列进行分组统计的实现
Jun 18 Python
Python多线程实用方法以及共享变量资源竞争问题
Apr 12 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
分享10段PHP常用代码
2015/11/11 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
Bootstarp 基础教程之表单部分实例代码
2017/02/03 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Django中的静态文件管理过程解析
2019/08/01 Python
python实现静态服务器
2019/09/05 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
英国女装网上商店:I Saw It First
2018/10/18 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
假日旅行社实习自我鉴定
2013/09/24 职场文书
会计学应届毕业生推荐信
2013/11/04 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
详解thinkphp的Auth类认证
2021/05/28 PHP
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript