python 수기(50)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#http://blog.csdn.net/myhaspl
#code:[email protected]
import wave
import pylab as pl
import numpy as np
print 'http://blog.csdn.net/myhaspl'
print '[email protected]'
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 [email protected] working... generate wav data.... save new wav files....
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
물체 검출의 평가 지표 IoU의 계산 방법Yolo나 SSD 등 물체 검출에서 평가 지표로 사용되는 IoU에 대해 조사했으므로 정리했습니다. IoU (Intersection over Union)는 두 영역이 얼마나 겹치는지를 나타내는 지표입니다. 두 영역의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.