标题解释了问题所在。我不知道如何解决这个问题。咔嗒声发生在每个播放的音调之间。对某些人来说,我听起来也很流行。
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原始数据播放。
简单的解决方案是在播放之前生成所有信号。
或者,使用不同的线程来生成和播放声音。
关于python - 使用 PyAudio 生成音调时,为什么我会在它们之间听到点击声?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23004365/