标题说明了问题所在。我不知道如何解决这个问题。咔嗒声在每个播放的音调之间。对某些人来说,我听起来也很流行。
import math
import pyaudio
import sys
PyAudio = pyaudio.PyAudio
def playTone(rate,wave,time,channel):
data = ''.join([chr(int(math.sin(x/((rate/wave)/math.pi))*127+128)) for x in xrange(rate)])
p = PyAudio()
stream = p.open(format =
p.get_format_from_width(1),
channels = channel,
rate = rate,
output = True)
for DISCARD in xrange(int(time)):
stream.write(data)
#stream.stop_stream()
#stream.close()
#p.terminate()
'''
playTone(88000,400,1,2)
playTone(88000,500,1,1)
playTone(88000,600,1,2)
playTone(88000,700,1,2)
'''
def scale(noteNumber):
counter = 100
while noteNumber*100 > counter:
playTone(88000,100+counter,1,2)
counter += 100
scale(10)
构建 data = ''.join([...
和播放 stream.write(data)
之间存在差距。缝隙发出咔哒声。
要找出答案,请尝试转储数据
并将其作为 88000Hz、8 位和 2ch 原始数据播放。
简单的解决方案是在播放前生成所有信号。
或者,使用不同的线程来生成和播放声音。
我是一名优秀的程序员,十分优秀!