main.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:spectrum-console 作者: mic159 项目源码 文件源码
def run():
    p = pyaudio.PyAudio()
    stream = p.open(
        format=pyaudio.paInt16,
        channels=1, # Mono
        rate=RATE,
        input=True,
        frames_per_buffer=CHUNK
    )
    signal = empty(FFT_LEN, dtype=int16)

    try:
        # Disable cursor
        sys.stdout.write('\033[?25l')
        while 1:
            # Roll in new frame into buffer
            try:
                frame = stream.read(CHUNK)
            except IOError as e:
                if e[1] != pyaudio.paInputOverflowed:
                    raise
                continue
            signal = roll(signal, -CHUNK)
            signal[-CHUNK:] = fromstring(frame, dtype=int16)

            # Now transform!
            try:
                fftspec = list(log(abs(x) * SIGNAL_SCALE) + 1.5 for x in rfft(signal)[:CHUNK*3])
            except ValueError:
                fftspec = [0] * CHUNK * 3

            # Print it
            lines = [
                ''.join(spark(x - i+1, x) for x in fftspec)
                for i in range(HEIGHT, 0, -1)
            ]
            sys.stdout.write('?' + '?\n?'.join(lines) + '?')
            sys.stdout.write('\033[3A\r')
    except KeyboardInterrupt:
        sys.stdout.write('\n' * HEIGHT)
    finally:
        # Turn the cursor back on
        sys.stdout.write('\033[?25h')
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号