import os
import sys
import sys
import numpy as np
import scipy.io.wavfile as wf
def read_tone_freq(filename):
with open(filename,'r') as f:
tone_freqs = json.loads(f.read())
print(tone_freqs)
return tone_freqs
def make_signals(duration,sample_rate,signal_freq,amp):
times = np.linspace(0,duration,duration*sample_rate)
sigs = amp*np.sin(2*np.pi*signal_freq*times)
return sigs
def save_signals(filename,sample_rate,sigs):
wf.write(filename,sample_rate,(sigs/np.max(sigs)*2**15).astype(np.int16))
def synthesizer(tone_freq,tones,sample_rate,amp):
music_sigs = np.empty(shape=1)
for tone,duration in tones:
sigs = make_signals(duration,sample_rate,tone_freqs[tone],amp)
music_sigs = np.append(music_sigs,sigs)
return music_sigs
def main(argc,argv,envp):
tone_freq = read_tone_freq('equal_tempered_scale.json')
tones = [('C5',1.0),('D5',0.5),('E5',0.5),('F5','0.5'),('G5',0.5),('F5',0.5),('E5',0.5),('D5',0.5),('C5',1.0),('G5',0.5)]
music_sigs = synthesizer(tone_freq,tones,44100,1)
save_signals(music_sigs)
return 0
if __name__ == '__main__':
sys.exit(main(len(sys.argv),sys.argv,os.environ))
语音识别(四):音频合成
猜你喜欢
转载自blog.csdn.net/weixin_38246633/article/details/80665940
今日推荐
周排行