示例#1
0
def process_input_file(conn, options, out_queue, background=True):
    """Given socket/pipe process audio input and push to out_queue"""
    log.info("Starting recognition on %s", conn)
    model = Model(options.model,)
    if options.beam_width:
        model.setBeamWidth(options.beam_width)
    desired_sample_rate = model.sampleRate()
    if desired_sample_rate != defaults.SAMPLE_RATE:
        log.error("Model expects rate of %s", desired_sample_rate)
    # if options.scorer:
    #     model.enableExternalScorer(options.scorer)
    # else:
    log.info("Disabling the built-in scorer")
    model.disableExternalScorer()
    out_queue.put({'partial': False, 'final': False, 'message': ['Connected']})
    if background:
        thread = threading.Thread(target=run_recognition, args=(model, conn, out_queue))
        thread.setDaemon(background)
        thread.start()
    else:
        run_recognition(model, conn, out_queue)
示例#2
0
def process_input_file(conn, options, out_queue, background=True):
    # TODO: allow socket connections from *clients* to choose
    # the model rather than setting it in the daemon...
    # to be clear, *output* clients, not audio sinks
    log.info("Starting recognition on %s", conn)
    model = Model(options.model,)
    if options.beam_width:
        model.setBeamWidth(options.beam_width)
    desired_sample_rate = model.sampleRate()
    if desired_sample_rate != defaults.SAMPLE_RATE:
        log.error("Model expects rate of %s", desired_sample_rate)
    if options.scorer:
        model.enableExternalScorer(options.scorer)
    else:
        log.info("Disabling the scorer")
        model.disableExternalScorer()
    if background:
        t = threading.Thread(target=run_recognition, args=(model, conn, out_queue))
        t.setDaemon(background)
        t.start()
    else:
        run_recognition(model, conn, out_queue)