#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Mar 25 10:04:06 2021 @author: lucasdaniele """ from scipy.io import wavfile import matplotlib.pyplot as plt import numpy as np import frequency_estimator as f0 import os def listen(nom,sampleRate, data): wavfile.write(nom, sampleRate, data.real) def aff(titre,x,y): if(len(x)==len(y)): plt.plot(x, y.real, "-") else: plt.plot(y.real, "-") plt.title(titre) plt.show() def decouperExtraits(data, seuil, dureeSilence, sampleRate, sampleRateChoosen): DATA=[] onAir=False step=int(np.round(sampleRateChoosen*dureeSilence)) echelle = sampleRate/sampleRateChoosen dureeExtrait = len(data)/sampleRate k=0 d=0 f=0 for i in range(0,int(np.round(dureeExtrait)*sampleRateChoosen-step)-1000): if (i%40000==0): afficherAvancement(i,int(np.round(dureeExtrait)*sampleRateChoosen-step)-1000) if ((abs(data[int(np.round(i*echelle))])=seuil): if(not(onAir)): onAir=True d=int(np.round(i*echelle)) k=0 if(d>0): DATA.append([d,len(data)-1]) return DATA def afficherAvancement(t,T): os.system('clear') barre = "|" for i in range(int(np.round(np.round(t/T,2)*50))): barre += "#" for i in range(50-int(np.round(np.round(t/T,2)*50))): barre += "_" barre +="| " barre += str(np.round(t/T,2)) + " %" print(barre) def garderUniquementCris(sampleRate,tMin, tMax, fMin, fMax, f0Func, dataCut, data): nSamplesMin = tMin*sampleRate nSamplesMax = tMax*sampleRate res=[] freqs=[] for i in range(len(dataCut)): d=dataCut[i][0] f=dataCut[i][1] if((f-d>nSamplesMin) & (f-dfMin) & (freq 0.065): res.append(dataCut[i]) freqs.append(freq) listen("output/cri"+str(i)+".wav", sampleRate, np.asarray(data[d:f])) print("*************************") print("* enregistrement: " + str(i)) print("*************************") print("* f0 -> " + str(freq)) print("* duration -> " + str((f-d)/sampleRate)) print("* quantité de son à 5% -> " + str(np.sum(abs(data[d:d+int(np.round(0.05*(f-d)))]))/np.sum(abs(data[d:f])))) print("*************************") print("") print("_________________________") print("") return res, freqs