编程语言
首页 > 编程语言> > 用python写一首歌

用python写一首歌

作者:互联网

import wave

import math import struct ff=wave.open("v1.wav","w") ff.setframerate(9000) ff.setnchannels(1) ff.setsampwidth(2)     def wv(t=0,f=0,v=0.5,wf=ff,sr=8000):     '''     t:写入时长     f:声音频率     v:音量     wf:一个可以写入的音频文件     sr:采样率     '''     tt=0     dt=1.0/sr     while tt<=t:         s=math.sin(tt*math.pi*2*f)*v*32768 #采样,调节音量,映射到[-2^15,2^15)         s=int(s)         fd=struct.pack("h",s) #转换成8bit二进制数据         wf.writeframes(fd) #写入音频文件         tt+=dt #时间流逝   note={"1":440,"2":493.88,"3":554.37,"4":587.33,"5":659.33,"6":739.99,"7":830.61,"6-":329.63,"0":0} n=[     "1","2","3","1","1","2","3","1",     "3","4","5","0","3","4","5","0",     "5","6","5","4","3","1","5","6","5","4","3","1",     "2","6-","1","0","2","6-","1","0" ] tm=[     1,1,1,1,1,1,1,1,     1,1,1,1,1,1,1,1,     0.5,0.5,0.5,0.5,1,1,0.5,0.5,0.5,0.5,1,1,     1,1,1,1,1,1,1,1, ]   for i in range(len(n)):     wv(tm[i]/2.0,note[n[i]])   ff.close()

标签:wf,python,tt,0.5,一首歌,ff,import,math
来源: https://www.cnblogs.com/fisherpau/p/14275410.html