o
    i:	                     @   sl   d dl Z d dlmZ d dlmZ d dlZd dlmZ d dl	m
Z
 G dd de jjZG dd	 d	e jjZdS )
    N)Path)Union)check_argument_types)load_num_sequence_textc                   @   s^   e Zd ZdZ		ddeeef deeejf defddZ	d	d
 Z
dd ZdejfddZdS )FloatRandomGenerateDatasetaO  Generate float array from shape.txt.

    Examples:
        shape.txt
        uttA 123,83
        uttB 34,83
        >>> dataset = FloatRandomGenerateDataset("shape.txt")
        >>> array = dataset["uttA"]
        >>> assert array.shape == (123, 83)
        >>> array = dataset["uttB"]
        >>> assert array.shape == (34, 83)

    float32csv_int
shape_filedtypeloader_typec                 C   s.   t  sJ t|}t||| _t|| _d S N)r   r   r   	utt2shapenpr
   )selfr	   r
   r    r   S/home/ubuntu/.local/lib/python3.10/site-packages/espnet2/fileio/rand_gen_dataset.py__init__   s   
z#FloatRandomGenerateDataset.__init__c                 C   
   t | jS r   iterr   r   r   r   r   __iter__%      
z#FloatRandomGenerateDataset.__iter__c                 C   r   r   lenr   r   r   r   r   __len__(   r   z"FloatRandomGenerateDataset.__len__returnc                 C   s   | j | }tjj| | jS r   )r   r   randomrandnastyper
   r   itemshaper   r   r   __getitem__+   s   
z&FloatRandomGenerateDataset.__getitem__N)r   r   )__name__
__module____qualname____doc__r   r   strr   r
   r   r   r   ndarrayr#   r   r   r   r   r      s    

r   c                   @   sh   e Zd ZdZ			ddeeef dededeeej	f d	ef
d
dZ
dd Zdd ZdejfddZdS )IntRandomGenerateDataseta\  Generate float array from shape.txt

    Examples:
        shape.txt
        uttA 123,83
        uttB 34,83
        >>> dataset = IntRandomGenerateDataset("shape.txt", low=0, high=10)
        >>> array = dataset["uttA"]
        >>> assert array.shape == (123, 83)
        >>> array = dataset["uttB"]
        >>> assert array.shape == (34, 83)

    Nint64r   r	   lowhighr
   r   c                 C   s:   t  sJ t|}t||| _t|| _|| _|| _d S r   )r   r   r   r   r   r
   r,   r-   )r   r	   r,   r-   r
   r   r   r   r   r   ?   s   

z!IntRandomGenerateDataset.__init__c                 C   r   r   r   r   r   r   r   r   N   r   z!IntRandomGenerateDataset.__iter__c                 C   r   r   r   r   r   r   r   r   Q   r   z IntRandomGenerateDataset.__len__r   c                 C   s$   | j | }tjj| j| j|| jdS )N)sizer
   )r   r   r   randintr,   r-   r
   r    r   r   r   r#   T   s   
z$IntRandomGenerateDataset.__getitem__)Nr+   r   )r$   r%   r&   r'   r   r   r(   intr   r
   r   r   r   r)   r#   r   r   r   r   r*   0   s&    

r*   )collectionspathlibr   typingr   numpyr   	typeguardr   espnet2.fileio.read_textr   abcMappingr   r*   r   r   r   r   <module>   s    %