def record_sink(sink_path):
    """Record an audio file using pysoundcard."""
    from aubio import sink
    from pysoundcard import Stream
    hop_size = 256
    duration = 5
    s = Stream(blocksize=hop_size, channels=1)
    g = sink(sink_path, samplerate=int(s.samplerate))
    s.start()
    total_frames = 0
    try:
        while total_frames < duration * s.samplerate:
            vec = s.read(hop_size)
            mono_vec = vec.sum(-1) / float(s.channels[0])
            g(mono_vec, hop_size)
            total_frames += hop_size
    except KeyboardInterrupt:
        duration = total_frames / float(s.samplerate)
        print('stopped after %.2f seconds' % duration)
    s.stop()
