o
    }oi"%                     @   sZ  d dl mZmZmZ d dlmZmZmZmZm	Z	 eG dd dZ
eG dd dZeG dd dZeG d	d
 d
e
ZeG dd de
ZeG dd de
ZeG dd de
ZeG dd de
ZeG dd de
ZeG dd de
ZeG dd de
ZeG dd de
ZeG dd de
ZeG dd de
ZeG dd  d e
Zd!S )"    )asdict	dataclassfield)AnyDictOptionalTupleUnionc                   @   s>   e Zd ZdZddedee fddZdd Zd	e	fd
dZ
dS )DiarizerComponentConfigz@Dataclass to imitate HydraConfig dict when accessing parameters.Nnamedefaultc                 C   s   t | ||S N)getattr)selfr   r    r   g/home/ubuntu/.local/lib/python3.10/site-packages/nemo/collections/asr/models/configs/diarizer_config.pyget   s   zDiarizerComponentConfig.getc                 c   s    t | D ]}|V  qd S r   r   )r   keyr   r   r   __iter__   s   z DiarizerComponentConfig.__iter__returnc                 C   s   t | S r   r   )r   r   r   r   dict   s   zDiarizerComponentConfig.dictr   )__name__
__module____qualname____doc__strr   r   r   r   r   r   r   r   r   r   r
      s
    r
   c                   @   sB   e Zd ZU dZee ed< dZeed< dZ	e
ed< dZe
ed< dS )	ASRDiarizerCTCDecoderParamsNpretrained_language_model    
beam_width      ?alphag      @beta)r   r   r   r   r   r   __annotations__r    intr"   floatr#   r   r   r   r   r   "   s
   
 r   c                   @   sB   e Zd ZU dZee ed< dZeed< dZ	eed< dZ
eed< dS )	ASRRealigningLMParamsNarpa_language_model   min_number_of_words
   max_number_of_wordsg333333?logprob_diff_threshold)r   r   r   r(   r   r   r$   r*   r%   r,   r-   r&   r   r   r   r   r'   *   s
   
 r'   c                   @   s   e Zd ZU dZeed< dZeed< dZe	e
 ed< dZe	e ed< dZe	e ed< d	Zeed
< dZeed< dZeed< dZeed< dZeed< dS )ASRDiarizerParamsFasr_based_vad      ?asr_based_vad_thresholdNasr_batch_sizedecoder_delay_in_secword_ts_anchor_offsetstartword_ts_anchor_posfix_word_ts_with_VADcolored_textT
print_timebreak_lines)r   r   r   r/   boolr$   r1   r&   r2   r   r%   r3   r4   r6   r   r7   r8   r9   r:   r   r   r   r   r.   6   s   
 r.   c                   @   s`   e Zd ZU dZee ed< edd dZe	ed< edd dZ
eed< ed	d dZeed
< dS )ASRDiarizerConfigstt_en_conformer_ctc_large
model_pathc                   C      t  S r   )r.   r   r   r   r   <lambda>Q       zASRDiarizerConfig.<lambda>default_factory
parametersc                   C   r?   r   )r   r   r   r   r   r@   R   rA   ctc_decoder_parametersc                   C   r?   r   )r'   r   r   r   r   r@   S   rA   realigning_lm_parametersN)r   r   r   r>   r   r   r$   r   rD   r.   rE   r   rF   r'   r   r   r   r   r<   N   s
   
 r<   c                   @   s   e Zd ZU dZeed< dZeed< dZee	e
f ed< dZeed< d	Zeed
< d	Zeed< d	Zeed< dZeed< dZeed< dZeed< dZe
ed< dS )	VADParamsg333333?window_length_in_secg{Gz?shift_length_in_secmedian	smoothingr!   overlapg?onsetoffset	pad_onsetr   
pad_offsetmin_duration_ong?min_duration_offTfilter_speech_firstN)r   r   r   rH   r&   r$   rI   rK   r	   r   r;   rL   rM   rN   rO   rP   rQ   rR   rS   r   r   r   r   rG   V   s   
 rG   c                   @   s@   e Zd ZU dZeed< dZee ed< edd dZ	e
ed< dS )		VADConfigvad_multilingual_marblenetr>   Nexternal_vad_manifestc                   C   r?   r   )rG   r   r   r   r   r@   i   rA   zVADConfig.<lambda>rB   rD   )r   r   r   r>   r   r$   rV   r   r   rD   rG   r   r   r   r   rT   e   s   
 rT   c                   @   sJ   e Zd ZU dZee ed< dZee ed< dZee ed< dZ	e
ed< d	S )
SpeakerEmbeddingsParams)g      ?g      ?r0         ?r!   rH   )rX   g      ?r!   g      ?      ?rI   )   rZ   rZ   rZ   rZ   multiscale_weightsTsave_embeddingsN)r   r   r   rH   r   r&   r$   rI   r[   r\   r;   r   r   r   r   rW   l   s
   
 rW   c                   @   s4   e Zd ZU dZee ed< edd dZe	ed< dS )SpeakerEmbeddingsConfigNr>   c                   C   r?   r   )rW   r   r   r   r   r@   |   rA   z SpeakerEmbeddingsConfig.<lambda>rB   rD   )
r   r   r   r>   r   r   r$   r   rD   rW   r   r   r   r   r]   x   s   
 r]   c                   @   sV   e Zd ZU dZeed< dZeed< dZeed< dZ	e
ed< d	Zeed
< dZeed< dS )ClusteringParamsForacle_num_speakers   max_num_speakersP   enhanced_count_thresrY   max_rp_threshold   sparse_search_volumemaj_vote_spk_countN)r   r   r   r_   r;   r$   ra   r%   rc   rd   r&   rf   rg   r   r   r   r   r^      s   
 r^   c                   @   s$   e Zd ZU edd dZeed< dS )ClusteringConfigc                   C   r?   r   )r^   r   r   r   r   r@      rA   zClusteringConfig.<lambda>rB   rD   N)r   r   r   r   rD   r^   r$   r   r   r   r   rh      s   
 rh   c                   @   sf   e Zd ZU dZeed< dZeed< dZe	e
 ed< dZeed< dZeed	< d
Zeed< dZeed< dS )
MSDDParamsTuse_speaker_model_from_ckpt   infer_batch_size)gffffff?sigmoid_thresholdFseq_eval_modesplit_infer2   diar_window_length   overlap_infer_spk_limitN)r   r   r   rj   r;   r$   rl   r%   rm   r   r&   rn   ro   rq   rs   r   r   r   r   ri      s   
 ri   c                   @   s4   e Zd ZU dZee ed< edd dZe	ed< dS )
MSDDConfigdiar_msdd_telephonicr>   c                   C   r?   r   )ri   r   r   r   r   r@      rA   zMSDDConfig.<lambda>rB   rD   N)
r   r   r   r>   r   r   r$   r   rD   ri   r   r   r   r   rt      s   
 rt   c                   @   s   e Zd ZU dZee ed< dZee ed< dZe	ed< dZ
eed< dZe	ed	< ed
d dZeed< edd dZeed< edd dZeed< edd dZeed< edd dZeed< dS )DiarizerConfigNmanifest_filepathout_dirF
oracle_vadrY   collarTignore_overlapc                   C   r?   r   )rT   r   r   r   r   r@      rA   zDiarizerConfig.<lambda>rB   vadc                   C   r?   r   )r]   r   r   r   r   r@      rA   speaker_embeddingsc                   C   r?   r   )rh   r   r   r   r   r@      rA   
clusteringc                   C   r?   r   )rt   r   r   r   r   r@      rA   
msdd_modelc                   C   r?   r   )r<   r   r   r   r   r@      rA   asr)r   r   r   rw   r   r   r$   rx   ry   r;   rz   r&   r{   r   r|   rT   r}   r]   r~   rh   r   rt   r   r<   r   r   r   r   rv      s   
 rv   c                	   @   s   e Zd ZU edd dZeed< dZeed< dZ	e
ed< d	Zeed
< dZeed< dZeed< dZeed< edededede
fddZdS )NeuralDiarizerInferenceConfigc                   C   r?   r   )rv   r   r   r   r   r@      rA   z&NeuralDiarizerInferenceConfig.<lambda>rB   diarizercpudeviceFverbose@   
batch_sizerZ   num_workersi>  sample_rate r   diar_model_pathvad_model_pathmap_locationc                 C   s"   t tt|dt|dd||dS )N)r>   )r|   r   )r   r   )r   rv   rT   rt   )clsr   r   r   r   r   r   r   init_config   s   z)NeuralDiarizerInferenceConfig.init_configN)r   r   r   r   r   rv   r$   r   r   r   r;   r   r%   r   r   r   classmethodr   r   r   r   r   r      s   
  r   N)dataclassesr   r   r   typingr   r   r   r   r	   r
   r   r'   r.   r<   rG   rT   rW   r]   r^   rh   ri   rt   rv   r   r   r   r   r   <module>   s@   