Пример #1
0
def step_impl(context, noise, t):
    """
    :type context: behave.runner.Context
    :type noise: str
    :type t: str
    """
    t = float(t)
    f = context.samprate/context.n
    nl = float(noise)  # Noise level
    context.noise_level = nl
    sp = SelcalParams()
    freqs = list(sp.selcal_tones.values())
    context.sfreq = [0]*int(f*t)
    # Initial pause
    dur = 0.2+4.8*random()
    samp = [gs.genfreq([0], dur, noise_level=nl,
                       samprate=context.samprate)]
    s = dur
    while s < t:
        dur = min(t-s, 0.75+0.5*random())
        freq = [choice(freqs)]
        samp += [gs.genfreq(freq, dur, noise_level=nl,
                            samprate=context.samprate)]
        # The answer for assert
        i1,i2 = int(f*s), int(ceil(f*(s+dur)))
        context.sfreq[i1:i2] = freq*(i2-i1)
        s += dur
        dur = min(t-s, 0.2+4.8*random())
        samp += [gs.genfreq([0], dur, noise_level=nl,
                            samprate=context.samprate)]
        s += dur
    context.samp = chain(*samp)
Пример #2
0
def step_impl(context, variation):
    """
    :type context: behave.runner.Context
    :type variation: str
    """
    if len(context.freq) <= 2:
        d0, d1, d2, d3, d4 = context.delays[0], context.dur, 0.2, context.dur,\
                             context.delays[-1]
        if variation == 'with':
            context.freq = [(1 - var['tone'] * 2 * (random.random() - 0.5)) * f
                            for f in context.freq]
            d0 *= random.random()
            d1 += var['code_dur'] * 2 * (random.random() - 0.5)
            d2 += var['pause_dur'] * 2 * (random.random() - 0.5)
            d3 += var['code_dur'] * 2 * (random.random() - 0.5)
            d4 *= random.random()
            print(d0, d1, d2, d3, d4)
        samp = gs.genfreq(context.freq[:2],
                          d1,
                          noise_level=context.noise_level,
                          samprate=context.samprate)
        pause1 = gs.genfreq([0],
                            d0,
                            noise_level=context.noise_level,
                            samprate=context.samprate)
        pause2 = gs.genfreq([0],
                            d4,
                            noise_level=context.noise_level,
                            samprate=context.samprate)
        if len(context.freq) > 2:
            pause = gs.genfreq([0],
                               d2,
                               noise_level=context.noise_level,
                               samprate=context.samprate)
            samp = chain(
                samp, pause,
                gs.genfreq(context.freq[2:],
                           d3,
                           noise_level=context.noise_level,
                           samprate=context.samprate))
        context.samp = chain(pause1, samp, pause2)
    else:
        context.samp = gs.genSELCALSample(''.join(context.letters),
                                          noise_level=context.noise_level,
                                          delays=context.delays,
                                          rand=(variation == 'with'),
                                          samprate=context.samprate)
Пример #3
0
def step_impl(context, variation):
    """
    :type context: behave.runner.Context
    :type variation: str
    """
    if len(context.freq) <= 2:
        d0, d1, d2, d3, d4 = context.delays[0], context.dur, 0.2, context.dur,\
                             context.delays[-1]
        if variation == 'with':
            context.freq = [(1-var['tone']*2*(random.random()-0.5))*f
                            for f in context.freq]
            d0 *= random.random()
            d1 += var['code_dur']*2*(random.random()-0.5)
            d2 += var['pause_dur']*2*(random.random()-0.5)
            d3 += var['code_dur']*2*(random.random()-0.5)
            d4 *= random.random()
            print(d0, d1, d2, d3, d4)
        samp = gs.genfreq(context.freq[:2], d1, noise_level=context.noise_level,
                          samprate=context.samprate)
        pause1 = gs.genfreq([0], d0, noise_level=context.noise_level,
                          samprate=context.samprate)
        pause2 = gs.genfreq([0], d4, noise_level=context.noise_level,
                          samprate=context.samprate)
        if len(context.freq) > 2:
            pause = gs.genfreq([0], d2, noise_level=context.noise_level,
                          samprate=context.samprate)
            samp = chain(samp, pause, gs.genfreq(context.freq[2:], d3,
                                             noise_level=context.noise_level,
                          samprate=context.samprate))
        context.samp = chain(pause1, samp, pause2)
    else:
        context.samp = gs.genSELCALSample(''.join(context.letters),
                                          noise_level=context.noise_level,
                                          delays = context.delays,
                                          rand=(variation == 'with'),
                                          samprate=context.samprate)