Long term spectral flatness measure voice activity detection
Or you can try and implement the adaptive threshold method:
This is taken from the EURASIP Paper which i have implemented.

UnlikeM and R, a fixed threshold would lose its efficiency
when facing varying acoustic environments. Therefore, it
is more suitable to design an adaptive threshold [22]. From
Equations 2 to 4, we can conclude that (R +M−1) frame
(0.39 s for fixed R = 30 and M = 10) information is
needed to acquire the first LSFM feature value. In our
implementations, the initial 1.39 s of the test signal x(n) is
always assumed to be non-speech. From this 1.39 s of x(n),
100 realizations of LN can be collected and saved to ψINL.
The threshold is initialized to be
THRINL = min(ψINL). (8)
To update the threshold at the mth frame, we used two
buffers ψS + N and ψN. ψS + N stores the LSFMmeasures
of the last 100 long windowending at themth frame which
was decided as containing speech; similarly, ψN stores
the LSFM measures of the last 100 long window ending
at the mth frame which was decided as including nonspeech
information only. The adaptive threshold for the
mth frame is then updated as:
THR(m) = λ×min(ψS+N)+(1−λ)×max(ψN), (9)
where λ is the parameter of the convex combination. We
experimentally found that λ = 0.55 results in the maximum
accuracy rate in VAD decisions over the TIMIT
training set.