2

标题说明了问题所在。我不知道如何解决这个问题。咔哒声在播放的每个音调之间。我也听起来像一些人的流行音乐。

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)
4

1 回答 1

2

data = ''.join([...建造和玩耍之间存在差距stream.write(data)。间隙发出咔哒声。

要找出答案,请尝试转储data并将其播放为 88000Hz、8bit 和 2ch 原始数据。

简单的解决方案是在播放前生成所有信号。

或者,使用不同的线程来生成和播放声音。

于 2014-04-11T07:37:05.770 回答