A resposta mais simples se você estiver lidando com gravações curtas é ouvi-la e detectar "pops" (som com ponta curta) na reprodução. No entanto, uma solução mais robusta é analisar o espectro de frequência da gravação.
Lembre-se de que quando um sinal é cortado em algum limite, localmente se assemelha a uma onda quadrada nas regiões cortadas. Isso introduz harmônicos mais altos no espectro de frequências que não estariam lá originalmente. Se o seu sinal é ilimitado por banda (a maioria dos sinais do mundo real) e você está amostrando bem acima da taxa de Nyquist, isso fica bem claro como o dia.
Aqui está um pequeno exemplo no MATLAB demonstrando isso. Aqui, eu crio um sinal ilimitado de banda com duração de 1s, amostrado em 1000Hz e, em seguida, prendo-o no meio ±0.8
(veja o gráfico superior na figura abaixo)
time = 0:0.001:1;
cleanSignal = sin(2*pi*75*time).*chirp(time,50,1,200);
clippedSignal = min(abs(cleanSignal),0.8).*sign(cleanSignal);
Você pode ver claramente que o espectro de frequência da forma de onda original não cortada é limpo e chega a zero fora da largura de banda (canto inferior esquerdo), enquanto no sinal cortado, há uma distorção geral menor do espectro (esperado se cortada) e a maioria importante, maiores harmônicos / picos / contribuições diferentes de zero no espectro fora da largura de banda do sinal (canto inferior direito).
Geralmente, essa pode ser uma abordagem melhor, porque detectar o recorte observando os valores geralmente não é preciso, a menos que você tenha projetado o equipamento e saiba exatamente o valor do limite.