python手记(50)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#http://blog.csdn.net/myhaspl
#code:myhaspl@qq.com
import wave
import pylab as pl
import numpy as np print 'http://blog.csdn.net/myhaspl'
print 'myhaspl@qq.com'
print print 'working...' print "generate wav data...."
# 打开WAV文档 fo = wave.open(r"plpl1.wav", "wb") # 设置波形参数
#采样率
framerate = 22050
#声道数
nchannels=2
#每位宽度
sampwidth=2
#长度
nframes =framerate
#频率
freq=440
#最大振幅
max_amplitude = 4000
#每样本秒数
interval=1.0/freq
#每周期样本数
samplepercycle=interval*framerate#=interval/(1/framerate) wave_data=np.zeros((nframes), dtype=np.short) maxcycle=2*np.pi
for curpos in xrange(0,nframes):
possamp=np.sin((curpos/samplepercycle)*maxcycle)
sampleval=int(max_amplitude*possamp)
wave_data[curpos]=sampleval str_data=wave_data.tostring() #频率
freq=880
#最大振幅
max_amplitude = 2000
#每样本秒数
interval=1.0/freq
#每周期样本数
samplepercycle=interval*framerate#=interval/(1/framerate) new_wave_data=np.zeros((nframes), dtype=np.short) maxcycle=2*np.pi
for curpos in xrange(0,nframes):
possamp=np.sin((curpos/samplepercycle)*maxcycle)
sampleval=int(max_amplitude*possamp)
new_wave_data[curpos]=sampleval # 绘制波形
wave_data.shape = -1, 2
wave_data = wave_data.T
new_wave_data.shape = -1, 2
new_wave_data = new_wave_data.T
time = np.arange(0, nframes/2)[:100]# * (1.0 / framerate)
pl.subplot(323)
pl.plot(time, new_wave_data[0][:100])
pl.subplot(324)
pl.plot(time, new_wave_data[1][:100], c="g")
pl.xlabel("time (seconds)")
#波形叠加
new_wave_data+=wave_data # 绘制波形 time = np.arange(0, nframes/2)[:100]# * (1.0 / framerate)
pl.subplot(321)
pl.plot(time, wave_data[0][:100])
pl.subplot(322)
pl.plot(time, wave_data[1][:100], c="g")
pl.xlabel("time (seconds)") time = np.arange(0, nframes/2)[:100]# * (1.0 / framerate)
pl.subplot(325)
pl.plot(time, new_wave_data[0][:100])
pl.subplot(326)
pl.plot(time, new_wave_data[1][:100], c="g")
pl.xlabel("time (seconds)")
#写波形数据参数
print "save new wav files...."
new_str_data=new_wave_data.tostring()
fo.setnchannels(nchannels)
fo.setframerate(framerate)
fo.setsampwidth(sampwidth)
fo.setnframes(nframes) fo.writeframes(new_str_data)
fo.close()
本博客所有内容是原创,未经书面许可,严禁任何形式的转载
http://blog.csdn.net/u010255642
python 产生声音的正弦波并叠加
>>> runfile(r'K:\book_prog\audio_hy.py', wdir=r'K:\book_prog')
http://blog.csdn.net/myhaspl
myhaspl@qq.com
working...
generate wav data....
save new wav files....
python手记(50)的更多相关文章
- Python的50个模块,满足你各种需要
Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Sound, OS interaction, Web,以及其 ...
- python手记(46)
#!/usr/bin/env python # -*- coding: utf-8 -*- #http://blog.csdn.net/myhaspl #code:myhaspl@qq.com ...
- python手记(26)
#!/usr/bin/env python import cv2 import sys fn="test2.jpg" if __name__ == '__main__': prin ...
- python手记(32)
#!/usr/bin/env python #-*- coding: utf-8 -*- import cv2 import numpy as np fn="test2.jpg" ...
- python手记(30)
#!/usr/bin/env python #-*- coding: utf-8 -*- import cv2 import numpy as np fn="test3.png" ...
- python手记(31)
#!/usr/bin/env python #-*- coding: utf-8 -*- import cv2 import numpy as np fn="test2.jpg" ...
- python手记(38)
runfile(r'K:\testpro\testopencv.py', wdir=r'K:\testpro') http://blog.csdn.net/myhaspl myhaspl@qq.com ...
- python手记(39)
#!/usr/bin/env python #-*- coding: utf-8 -*- #code:myhaspl@qq.com import cv2 import numpy as np fn=& ...
- python手记(45)
python 声音编辑,减少音量 #!/usr/bin/env python # -*- coding: utf-8 -*- #http://blog.csdn.net/myhaspl #code:m ...
随机推荐
- 字符集编码Unicode ,gb2312 cp936
这是一篇程序员写给程序员的趣味读物.所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级.整理这篇文章的动机是两个问题: 问题一:使用Windows记事本的“另存为” ...
- kettle实现文本文件数据抽取方法
KETTLE做调度的思路是,把一个有特定格式的的文本文件,写入ORACLE数据库表, 具体方法见如下操作: 首先来看下文本文件的内容: 1|test1 2|test2 3|test3 通过|进行分割的 ...
- 火狐和google游览器的 hack独有识别 css
先来看google的: /* 这针对于webkit内核的游览器.包括苹果谷歌游览器等*/ @media screen and (-webkit-min-device-pixel-ratio:0) { ...
- Linux时间与Windows差8个时区的问题解决方法
我的Debian7.1的时间与windows上的时间不一致,正好差8个时区,原因是Debian将机器的物理时间理解为UTC时间了.去网上找了好多文章,基本上都是说要改/etc/default/rcS, ...
- IOS-day03_OC中的get和set
OC中的get和set实质和C#/java中的一样 只是表现形式不同而已 如下: @interface Car : NSObject { int wheels; } -(void) run; -(vo ...
- 关于【bootstrap】中,【tooltip】的不算bug的bug的个人看法
先说下遇到这个问题的背景吧. 就是在页面中有个div,这个div右上角(或者其他位置)有个 × 的图标(这个图标添加tooltip工具提示),光标移到这个图标时,触发tooltip,提示“点击移除”这 ...
- 从零开始完整Electron桌面开发(1)搭建开发环境
[OTC] # 需要知识 1. 简单的html.javascript.css知识,就是web前端入门知识. 2. 简单命令行的应用,不会也没关系,照着代码敲就行. 3. 下载安装就不说了吧. 4. 本 ...
- js笔记--json
1.什么事json: json是指javascript对象表示法(javascript Object Notation), json是轻量级的文本数据交换格式: json独立于语言: json具有自我 ...
- 邻接表存储图,DFS遍历图的java代码实现
import java.util.*; public class Main{ static int MAX_VERTEXNUM = 100; static int [] visited = new i ...
- ocp 1Z0-047 61-130题解析
61. Evaluate the following SQL statements that are issued in the given order:CREATE TABLE emp(emp_no ...