예제 #1
0
        # beamform!
        stft.analysis(audio)
        stft.process()

        # Send audio back to the browser
        audio[:, 0] = np.sum(stft.synthesis(), axis=1)
        audio[:, 1] = audio[:, 0]
        audio[:, 2:] = 0
        browserinterface.send_audio(audio)

    else:  # continue estimating covariance matrix
        bf.estimate_cov(audio)


"""Interface features"""
browserinterface.register_when_new_config(init)
browserinterface.register_handle_data(beamform_audio)
polar_chart = browserinterface.add_handler(name="Beam pattern",
                                           type='base:polar:line',
                                           parameters={
                                               'title': 'Beam pattern',
                                               'series': ['Intensity'],
                                               'numPoints': num_angles
                                           })
"""START"""
browserinterface.start()
browserinterface.change_config(buffer_frames=buffer_size,
                               channels=num_channels,
                               rate=sampling_freq,
                               volume=80)
browserinterface.loop_callbacks()
예제 #2
0
                    buffer_size) / float(sampling_freq)
    s1 = {'x': [0, 0], 'y': [0, 0]}
    s2 = {'x': t[::under].tolist(), 'y': sig[::under].tolist()}

    if decision:
        # first is voiced, second is unvoiced
        chart.send_data({'add': [s2, s1]})
        if led_ring: led_ring.lightify_mono(rgb=[0, 255, 0], realtime=True)
    else:
        chart.send_data({'add': [s1, s2]})
        if led_ring: led_ring.lightify_mono(rgb=[255, 0, 0], realtime=True)
    frame_num += 1


"""Interface features"""
browserinterface.register_when_new_config(when_config)
browserinterface.register_handle_data(apply_vad)
chart = browserinterface.add_handler(
    "Speech Detection", 'base:graph:line', {
        'xName':
        'Duration',
        'min':
        -10000,
        'max':
        10000,
        'xLimitNb': (sampling_freq / under * num_sec),
        'series': [{
            'name': 'Voice',
            'color': 'green'
        }, {
            'name': 'Unvoiced',