
    Nj>                    <    d Z ddlmZ ddlZddlmZ  G d d      Zy)zCSilero VAD (v5 via onnxruntime, pysilero-vad) on 512-sample frames.    )annotationsN)SileroVoiceActivityDetectorc                  $    e Zd ZddZddZddZy)VADc                "    t               | _        y N)r   _vadselfs    7/Users/ahmed/devFolder/Ultron/claude-voice/voice/vad.py__init__zVAD.__init__
   s    /1	    c                    t        j                  |dd      dz  j                  t         j                        }t	        | j                  |j                                     S )z:frame: 512 float32 samples @ 16 kHz -> speech probability.g      g      ?i  )npclipastypeint16floatr	   tobytes)r   framepcm16s      r   probzVAD.prob   sB    c*U2::288DTYYu}}/00r   c                8    | j                   j                          y r   )r	   resetr
   s    r   r   z	VAD.reset   s    		r   N)returnNone)r   z
np.ndarrayr   r   )__name__
__module____qualname__r   r   r    r   r   r   r   	   s    21
r   r   )__doc__
__future__r   numpyr   pysilero_vadr   r   r    r   r   <module>r%      s    I "  4
 
r   