栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何连续改变正弦声音的频率?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何连续改变正弦声音的频率?

我想出了这个解决方案。更改

freq
newfreq
,然后更改阶段,如下所示:
newphase = 2*np.pi*t*(freq-newfreq)+phase

import pyaudioimport numpy as npfrom time import timeCHANNELS = 2RATE = 44100TT = time()freq = 100newfreq = 100phase = 0def callback(in_data, frame_count, time_info, status):    global TT,phase,freq,newfreq    if newfreq != freq:        phase = 2*np.pi*TT*(freq-newfreq)+phase        freq=newfreq    left = (np.sin(phase+2*np.pi*freq*(TT+np.arange(frame_count)/float(RATE))))    data = np.zeros((left.shape[0]*2,),np.float32)    data[::2] = left    data[1::2] = left    TT+=frame_count/float(RATE)    return (data, pyaudio.paContinue)p = pyaudio.PyAudio()stream = p.open(format=pyaudio.paFloat32,     channels=CHANNELS,     rate=RATE,     output=True,     stream_callback=callback)stream.start_stream()start = time()try:    while 1:        now = time()  if now-start>1/24.: newfreq=200+np.sin(2*np.pi*1/20.*now)*100 #update the frequency This will depend on y on the future print newfreq        start=nowfinally:    stream.stop_stream()    stream.close()    p.terminate()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号