コード例 #1
0
ファイル: ltsd.py プロジェクト: AliceWu5/vad-3
def test(filename=None):
    import random, os
    import matplotlib.pyplot as plt
    from sys import argv
    #signal, params = read_signal(sound,WINSIZE)
    scenario = None
    if filename != None:
        scene = os.path.basename(filename)[0]
    else:
        filename = random.choice([
            x for x in os.listdir("tmp/") if os.path.splitext(x)[1] == ".flac"
        ])
        scene = filename[0]
        filename = "tmp/" + filename
    print(filename)
    truths = vad.load_truths()
    signal, rate = speech.read_soundfile(filename)
    seconds = float(len(signal)) / rate
    winsize = librosa.time_to_samples(float(WINMS) / 1000, rate)[0]
    window = sp.hanning(winsize)
    ltsd = LTSD(winsize, window, 5)
    res, threshold, nstart, nend = ltsd.compute(signal)
    segments = ltsd.segments(res, threshold)
    #print(float(len(signal))/rate, librosa.core.frames_to_time(len(res), 8000, winsize/2))
    segments = librosa.core.frames_to_time(segments, rate, winsize / 2)
    fig = plt.figure()
    ax = fig.add_subplot(111)
    #ax.plot((signal/np.max(signal))*np.mean(res)+np.mean(res))
    ax.plot(np.linspace(0, seconds, len(res)), res)
    ax.plot([0, seconds], [threshold, threshold])
    vad.plot_segments(truths[scene]['combined'], segments, ax)
    n1 = float(nstart) / rate
    n2 = float(nend) / rate
    ax.vlines([n1, n2], -20, 20)
    plt.show()
コード例 #2
0
ファイル: ltsd.py プロジェクト: jlep/vad
def test(filename=None):
    import random, os
    import matplotlib.pyplot as plt
    from sys import argv
    #signal, params = read_signal(sound,WINSIZE)
    scenario=None
    if filename != None:
        scene = os.path.basename(filename)[0]
    else:
        filename = random.choice([x for x in os.listdir("tmp/") if os.path.splitext(x)[1] == ".flac"])
        scene = filename[0]
        filename = "tmp/"+filename
    print(filename)
    truths = vad.load_truths()
    signal,rate = speech.read_soundfile(filename)
    seconds = float(len(signal))/rate
    winsize = librosa.time_to_samples(float(WINMS)/1000, rate)[0]
    window = sp.hanning(winsize)
    ltsd = LTSD(winsize,window,5)
    res, threshold,nstart,nend =  ltsd.compute(signal)
    segments = ltsd.segments(res, threshold)
    #print(float(len(signal))/rate, librosa.core.frames_to_time(len(res), 8000, winsize/2))
    segments = librosa.core.frames_to_time(segments, rate, winsize/2)
    fig = plt.figure()
    ax = fig.add_subplot(111)
    #ax.plot((signal/np.max(signal))*np.mean(res)+np.mean(res))
    ax.plot(np.linspace(0,seconds, len(res)), res)
    ax.plot([0, seconds], [threshold, threshold])
    vad.plot_segments(truths[scene]['combined'], segments, ax)
    n1 = float(nstart)/rate
    n2 = float(nend)/rate
    ax.vlines([n1,n2], -20,20)
    plt.show()
コード例 #3
0
def read_label_list_file(fn):
    with open(fn) as f:
        times = [float(x) for x in f.readlines()]
        segments = [times[i:i + 2] for i in xrange(0, len(times), 2)]
        if len(segments[-1]) == 1:
            segments = segments[:-1]
        return segments


if __name__ == "__main__":
    import os
    import matplotlib.pyplot as plt
    from sys import argv
    #signal, params = read_signal(sound,WINSIZE)
    scenario = None
    truths = vad.load_truths()
    args = set([
        'sig', 'ac-spec', 'var', 'ltac', 'ac-feature', 'batch', 'test-labels',
        'print'
    ])
    if len(argv) >= 2 and argv[1] in args:
        if len(argv) >= 3 and argv[1] != 'batch':
            filename = argv[2]
            scene = os.path.basename(filename)[0]
        else:
            filename = random.choice([
                x for x in os.listdir("tmp/")
                if os.path.splitext(x)[1] == ".flac"
            ])
            scene = filename[0]
            filename = "tmp/" + filename
コード例 #4
0
ファイル: pitchvad.py プロジェクト: jlep/vad
def read_label_list_file(fn):
    with open(fn) as f:
        times = [float(x) for x in f.readlines()]
        segments = [times[i:i+2] for i in xrange(0, len(times), 2)]
        if len(segments[-1]) == 1:
            segments = segments[:-1]
        return segments

if __name__ == "__main__":
    import os
    import matplotlib.pyplot as plt
    from sys import argv
    #signal, params = read_signal(sound,WINSIZE)
    scenario=None
    truths = vad.load_truths()
    args = set(['sig', 'ac-spec', 'var', 'ltac', 'ac-feature', 'batch', 'test-labels'])
    if len(argv) >= 2 and argv[1] in args:
        if len(argv)>=3 and argv[1] != 'batch':
            filename = argv[2]
            scene = os.path.basename(filename)[0]
        else:
            filename = random.choice([x for x in os.listdir("tmp/") if os.path.splitext(x)[1] == ".flac"])
            scene = filename[0]
            filename = "tmp/"+filename
            print(filename)
        if argv[1] != 'batch':
            sig, rate, frames, fsize, naccs, acvars, ltacs, more = pipeline(filename)
            predictions = []
            seconds = float(len(sig))/rate
        if argv[1] == 'sig':