§
    @Äjë  ã                   óô   — d dl Z d dlmZ d dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ dZd	Zd
Zg d¢ZddddddddœZd„ Zdedededededee         deeeeeeef         fd„Z G d„ de
¦  «        ZdS )é    N)ÚPath)ÚListÚTupleÚUnion)ÚTensor)ÚDataset)Údownload_url_to_file)Ú_extract_tarÚ_load_waveformútrain-clean-100ÚLibriSpeechi€>  )z	dev-cleanz	dev-otherz
test-cleanz
test-otherr   ztrain-clean-360ztrain-other-500Ú@76f87d090650617fca0cac8f88b9416e0ebf80350acb97b343a85fa903728ab3Ú@12661c48e8c3fe1de2c1caa4c3e135193bfb1811584f11f569dd12645aa84365Ú@39fde525e59672dc6d1551919b1478f724438a95aa55f874b576be21967e6c23Ú@d09c181bba5cf717b3dee7d4d592af11a3ee3a09e08ae025c5506f6ebe961c29Ú@d4ddd1d5a6ab303066f14971d768ee43278a5f2a0aa43dc716b0e64ecbbbf6e2Ú@146a56496217e96c14334a160df97fffedd6e0a04e66b9c5af0d40be3c792ecfÚ@ddb22f27f96ec163645d53215559df6aa36515f26e01dd70798188350adcb6d2)z4http://www.openslr.org/resources/12/dev-clean.tar.gzz4http://www.openslr.org/resources/12/dev-other.tar.gzz5http://www.openslr.org/resources/12/test-clean.tar.gzz5http://www.openslr.org/resources/12/test-other.tar.gzz:http://www.openslr.org/resources/12/train-clean-100.tar.gzz:http://www.openslr.org/resources/12/train-clean-360.tar.gzz:http://www.openslr.org/resources/12/train-other-500.tar.gzc                 óN  — d}d}||z   }t           j                             | |¦  «        }t           j                             ||¦  «        }t           j                             |¦  «        s-t                               |d ¦  «        }t          |||¬¦  «         t          |¦  «         d S )Nz$http://www.openslr.org/resources/12/z.tar.gz)Úhash_prefix)ÚosÚpathÚjoinÚisfileÚ
_CHECKSUMSÚgetr	   r
   )ÚrootÚurlÚbase_urlÚext_archiveÚfilenameÚarchiveÚdownload_urlÚchecksums           úXC:\Projects\Historical\venv\Lib\site-packages\torchaudio/datasets/librispeech_biasing.pyÚ_download_librispeechr&   !   s“   € Ø5€HØ€Kà�[Ñ €HÝŒg�lŠl˜4 Ñ*Ô*€GÝ”7—<’< ¨(Ñ3Ô3€LÝŒ7�>Š>˜'Ñ"Ô"ð JÝ—>’> ,°Ñ5Ô5ˆÝ˜\¨7ÀÐIÑIÔIÐIÝ�ÑÔÐÐÐó    Úfileidr   ÚfolderÚ	ext_audioÚext_txtÚblistÚreturnc                 ó®  — |pg }|                       d¦  «        \  }}}|› d|› d|› �}	t          j                             ||||	› |› �¦  «        }
|› d|› |› �}t          j                             |||||¦  «        }g }t	          |¦  «        5 }|D ]i}|                     ¦   «                               dd¦  «        \  }}|	|k    r6|                      ¦   «         D ]}||v r||vr|                     |¦  «         Œ  nŒjt          d|	› �¦  «        ‚	 d d d ¦  «         n# 1 swxY w Y   |
t          |t          |¦  «        t          |¦  «        t          |¦  «        |fS )Nú-ú é   zTranslation not found for )
Úsplitr   r   r   ÚopenÚstripÚappendÚFileNotFoundErrorÚSAMPLE_RATEÚint)r(   r   r)   r*   r+   r,   Ú
speaker_idÚ
chapter_idÚutterance_idÚfileid_audioÚfilepathÚ	file_textÚuttblistÚftÚlineÚfileid_textÚ
transcriptÚwords                     r%   Ú_get_librispeech_metadatarE   .   sê  € ð ˆK�R€EØ+1¯<ª<¸Ñ+<Ô+<Ñ(€J�
˜Lð !Ð>Ð> :Ð>Ð>°Ð>Ð>€LÝŒw�|Š|˜F J°
¸|Ð<XÈYÐ<XÐ<XÑYÔY€Hð Ð5Ð5 
Ð5¨GÐ5Ð5€IÝ”—’˜T 6¨:°zÀ9ÑMÔM€IØ€HÝ	ˆi‰Œð Q˜BØð 
	Qð 
	QˆDØ&*§j¢j¡l¤l×&8Ò&8¸¸aÑ&@Ô&@Ñ#ˆK˜Ø˜{Ò*Ð*à&×,Ò,Ñ.Ô.ð .ð .�DØ˜u�}�}¨°XÐ)=Ð)=Ø Ÿš¨Ñ-Ô-Ð-øØ�ð +õ $Ð$OÀÐ$OÐ$OÑPÔPÐPð ðQð Qð Qñ Qô Qð Qð Qð Qð Qð Qð Qøøøð Qð Qð Qð Qð 	ÝØÝˆJ‰ŒÝˆJ‰ŒÝˆLÑÔØðð s   ÂA?DÄDÄDc                   ó¼   — e Zd ZdZdZdZeeddfdee	e
f         de	de	d	ed
ee	         ddfd„Zdedee	ee	eeef         fd„Zdedeeee	eeef         fd„Zdefd„ZdS )ÚLibriSpeechBiasinga€  *LibriSpeech* :cite:`7178964` dataset with prefix-tree construction and biasing support.

    Args:
        root (str or Path): Path to the directory where the dataset is found or downloaded.
        url (str, optional): The URL to download the dataset from,
            or the type of the dataset to dowload.
            Allowed type values are ``"dev-clean"``, ``"dev-other"``, ``"test-clean"``,
            ``"test-other"``, ``"train-clean-100"``, ``"train-clean-360"`` and
            ``"train-other-500"``. (default: ``"train-clean-100"``)
        folder_in_archive (str, optional):
            The top-level directory of the dataset. (default: ``"LibriSpeech"``)
        download (bool, optional):
            Whether to download the dataset if it is not found at root path. (default: ``False``).
        blist (list, optional):
            The list of biasing words (default: ``[]``).
    z
.trans.txtz.flacFNr   r   Úfolder_in_archiveÚdownloadr,   r-   c                 ó\  — || _         |t          vrt          d|› dt          › d�¦  «        ‚t          j        |¦  «        }t          j                             ||¦  «        | _        t          j                             |||¦  «        | _        t          j         	                    | j        ¦  «        s+|rt          ||¦  «         nt          d| j        › d�¦  «        ‚t          d„ t          | j        ¦  «                             d| j        z   ¦  «        D ¦   «         ¦  «        | _        || _        d S )NzInvalid url 'z' given; please provide one of ú.zDataset not found at z5. Please set `download=True` to download the dataset.c              3   ó>   K  — | ]}t          |j        ¦  «        V — Œd S ©N)ÚstrÚstem)Ú.0Úps     r%   ú	<genexpr>z.LibriSpeechBiasing.__init__.<locals>.<genexpr>�   s*   è è € ÐdÐd¨a�c !¤&™kœkÐdÐdÐdÐdÐdÐdr'   z*/*/*)Ú_urlÚ_DATA_SUBSETSÚ
ValueErrorr   Úfspathr   r   Ú_archiveÚ_pathÚisdirr&   ÚRuntimeErrorÚsortedr   ÚglobÚ
_ext_audioÚ_walkerr,   )Úselfr   r   rH   rI   r,   s         r%   Ú__init__zLibriSpeechBiasing.__init__i   s  € ð ˆŒ	Ø•mÐ#Ð#ÝÐa¨SÐaÐaÕQ^ÐaÐaÐaÑbÔbÐbåŒy˜‰ŒˆÝœŸš TÐ+<Ñ=Ô=ˆŒÝ”W—\’\ $Ð(9¸3Ñ?Ô?ˆŒ
åŒw�}Š}˜TœZÑ(Ô(ð 	Øð Ý% d¨CÑ0Ô0Ð0Ð0å"Øm¨D¬JÐmÐmÐmñô ð õ ÐdÐdµ4¸¼
Ñ3CÔ3C×3HÒ3HÈÐSWÔSbÑIbÑ3cÔ3cÐdÑdÔdÑdÔdˆŒØˆŒ
ˆ
ˆ
r'   Únc                 óv   — | j         |         }t          || j        | j        | j        | j        | j        ¦  «        S )a‡  Get metadata for the n-th sample from the dataset. Returns filepath instead of waveform,
        but otherwise returns the same fields as :py:func:`__getitem__`.

        Args:
            n (int): The index of the sample to be loaded

        Returns:
            Tuple of the following items;

            str:
                Path to audio
            int:
                Sample rate
            str:
                Transcript
            int:
                Speaker ID
            int:
                Chapter ID
            int:
                Utterance ID
            list:
                List of biasing words in the utterance
        )r^   rE   rW   rS   r]   Ú_ext_txtr,   )r_   ra   r(   s      r%   Úget_metadatazLibriSpeechBiasing.get_metadata„   s5   € ð2 ”˜a”ˆÝ(¨°´ÀÄ	È4Ì?Ð\`Ô\iÐkoÔkuÑvÔvÐvr'   c                 óŒ   — |                       |¦  «        }t          | j        |d         |d         ¦  «        }|f|dd…         z   S )a
  Load the n-th sample from the dataset.

        Args:
            n (int): The index of the sample to be loaded

        Returns:
            Tuple of the following items;

            Tensor:
                Waveform
            int:
                Sample rate
            str:
                Transcript
            int:
                Speaker ID
            int:
                Chapter ID
            int:
                Utterance ID
            list:
                List of biasing words in the utterance
        r   r1   N)rd   r   rW   )r_   ra   ÚmetadataÚwaveforms       r%   Ú__getitem__zLibriSpeechBiasing.__getitem__    sG   € ð0 ×$Ò$ QÑ'Ô'ˆÝ! $¤-°¸!´¸hÀq¼kÑJÔJˆØˆ{˜X a b bœ\Ñ)Ð)r'   c                 ó*   — t          | j        ¦  «        S rM   )Úlenr^   )r_   s    r%   Ú__len__zLibriSpeechBiasing.__len__¼   s   € Ý�4”<Ñ Ô Ð r'   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rc   r]   ÚURLÚFOLDER_IN_ARCHIVEr   rN   r   Úboolr   r`   r8   r   rd   r   rh   rk   © r'   r%   rG   rG   T   s!  € € € € € ðð ð" €HØ€Jð
 Ø!2ØØðð à�C˜�IÔðð ðð ð	ð
 ðð �CŒyðð 
ðð ð ð ð6w˜cð w e¨C°°c¸3ÀÀSÐ,HÔ&Ið wð wð wð wð8*˜Sð * U¨6°3¸¸SÀ#ÀsÐ+JÔ%Kð *ð *ð *ð *ð8!˜ð !ð !ð !ð !ð !ð !r'   rG   )r   Úpathlibr   Útypingr   r   r   Útorchr   Útorch.utils.datar   Útorchaudio._internalr	   Útorchaudio.datasets.utilsr
   r   rp   rq   r7   rT   r   r&   rN   r8   rE   rG   rs   r'   r%   ú<module>rz      sŽ  ðØ 	€	€	€	Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà€Ø!Ð Ø€ðð ð €ð =Ø<~Ø=Ø=ð CEð CEð CEðð €
ð
ð 
ð 
ð#Øð#Øð#Ø$'ð#Ø47ð#ØBEð#ØNRÐSVÌið#à
ˆ3��S˜#˜s CÐ'Ô(ð#ð #ð #ð #ðLi!ð i!ð i!ð i!ð i!˜ñ i!ô i!ð i!ð i!ð i!r'   