o
    }oi                     @   sn   d dl Z d dlZd dlmZ d dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ G dd dZdS )	    N)Path)EnglishPhonemesTokenizer)
TTSDataset)
EnglishG2p)get_base_dirc                
   @   s   e Zd Zejjejddd Zejjejddd Zejjejddd Z	ejjejdej
dd	d
gdd Zejjejdej
dg dg dfd	dgddgfdd
gddgfdgdgfgdd ZdS )TestTTSDatasetCPUc                 C   sv   t j|d}t j|d}t|ddg|tddddddt dd}tjjj	|d	|j
d
}tt|\}}}}}}d S )Ntts/mini_ljspeech/manifest.jsontts/mini_ljspeech/sup"V  pitchT punctstressescharsspace
apostrophepad_with_spaceg2pmanifest_filepathsample_ratesup_data_typessup_data_pathtext_tokenizer   )
collate_fn)ospathjoinr   r   r   torchutilsdata
DataLoader_collate_fnnextiter)selftest_data_dirmanifest_pathsup_pathdataset
dataloaderr#   _ r/   X/home/ubuntu/.local/lib/python3.10/site-packages/tests/collections/tts/test_torch_tts.pytest_dataset   s&   zTestTTSDataset.test_datasetc                 C   st   t j|d}t j|d}tt t|ddg|tddddddt dd}W d    d S 1 s3w   Y  d S )	Nr	   r
   r   not_supported_sup_data_typeTr   r   r   	r   r   r    pytestraisesNotImplementedErrorr   r   r   r(   r)   r*   r+   r,   r/   r/   r0   4test_raise_exception_on_not_supported_sup_data_types6   s&   "zCTestTTSDataset.test_raise_exception_on_not_supported_sup_data_typesc                 C   sv   t j|d}t j|d}tt t|ddg|dtddddddt dd	}W d    d S 1 s4w   Y  d S )
Nr	   r
   r   r   not_supported_windowTr   r   r   r   r   r   windowr   r3   r7   r/   r/   r0   ,test_raise_exception_on_not_supported_windowL   s(   "z;TestTTSDataset.test_raise_exception_on_not_supported_windowsup_data_typevoiced_maskp_voicedc                 C   sv   t j|d}t j|d}tt t|d|g|dtddddddt dd}W d    d S 1 s4w   Y  d S )	Nr	   r
   r   hannTr   r   r:   )	r   r   r    r4   r5   
ValueErrorr   r   r   )r(   r)   r=   r*   r+   r,   r/   r/   r0   Atest_raise_exception_on_missing_pitch_sup_data_type_if_use_voicedc   s(   "zPTestTTSDataset.test_raise_exception_on_missing_pitch_sup_data_type_if_use_voicedzsup_data_types, output_indices)r?   r   r>   )r   rD   rE   c                 C   s  t j|d}|d }td|  t|d||tddddddt dd}g }t|d	d
d}	|	D ]}
|t	
|
d  q1W d    n1 sHw   Y  t|}tjjj|d|jd}t||D ]\}}t||d}t|dd}t||D ]<\}}|| }|d}|d usJ t|t| d| d| dsJ |dkr||d  }|d}|d usJ q|t|dkrt| d|d  d| d}t| d|d  d| d}t| d|d  d| d}t||rJ t||rJ qad S )Nr	   sup_dataz	sup_path=r   Tr   r   r   rzutf-8)encodingaudio_filepath   )r,   
batch_sizer    /r.   r   z.ptr      r   )r   r   r    printr   r   r   openappendjsonloadsr   r!   r"   r#   r$   r%   zipr   relative_towith_suffixstrreplacesqueezeequalloadlen)r(   r)   r   output_indicestmp_pathr*   r+   r,   audio_filepathsfjsonlinebase_data_dirr-   batchrJ   rel_audio_pathrel_audio_path_as_text_idr=   output_indexrG   pitch_lengthsxyzr/   r/   r0   +test_save_voiced_items_if_pt_file_not_exist{   s^   
(
   z:TestTTSDataset.test_save_voiced_items_if_pt_file_not_existN)__name__
__module____qualname__r4   markunitrun_only_onr1   r8   r<   parametrizerB   rl   r/   r/   r/   r0   r      s2    





	r   )rS   r   pathlibr   r4   r!   @nemo.collections.common.tokenizers.text_to_speech.tts_tokenizersr   !nemo.collections.tts.data.datasetr   -nemo.collections.tts.g2p.models.en_us_arpabetr   2nemo.collections.tts.parts.utils.tts_dataset_utilsr   r   r/   r/   r/   r0   <module>   s   