KevinGeng's picture
push to HF
a1fe393
raw
history blame
817 Bytes
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