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函数缺省值与引用学习笔记分享
Feb 10 Python
python获取mp3文件信息的方法
Jun 15 Python
python实现计算倒数的方法
Jul 11 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
Jul 23 Python
python 常用的基础函数
Jul 10 Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 Python
Django中Middleware中的函数详解
Jul 18 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
python中rc1什么意思
Jun 19 Python
python操作redis数据库的三种方法
Sep 10 Python
python mock测试的示例
Oct 19 Python
能让Python提速超40倍的神器Cython详解
Jun 24 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中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
简单实现JavaScript图片切换效果
2016/11/28 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
vue axios用法教程详解
2017/07/23 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
python实现的发邮件功能示例
2019/09/11 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
如何提高SQL Server的安全性
2016/07/25 面试题
中学生班主任评语
2014/01/30 职场文书
小学生寒假家长评语
2014/04/16 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
公司内部升职自荐信
2015/03/27 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
JS中如何优雅的使用async await详解
2021/10/05 Javascript
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技