File size: 817 Bytes
a1fe393
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import numpy as np
import librosa.display
import matplotlib.pyplot as plt

# Plot_UV


def plot_UV(signal, audio_interv, sr):
    fig, ax = plt.subplots(nrows=2, sharex=True)
    librosa.display.waveshow(signal, sr=sr, ax=ax[0])
    ax[0].set_title("Signal")
    ax[1].set_title("U/V")
    uv_flag = np.zeros(len(signal))
    for i in audio_interv:
        uv_flag[i[0]: i[1]] = 1

    ax[1].plot(np.arange(len(signal))/sr, uv_flag, "r")
    ax[1].set_ylim([-0.1,  1.1])
    return fig

# Get Speech Interval


def get_speech_interval(signal, db):
    audio_interv = librosa.effects.split(signal, top_db=db)
    pause_end = [x[0] for x in audio_interv[1:]]
    pause_start = [x[1] for x in audio_interv[0: -1]]
    pause_interv = [[x, y] for x, y in zip(pause_start, pause_end)]
    return audio_interv, pause_interv