
    :Shj                        d dl mZmZmZmZ d dlZd dlmZ d dlmZ	 d dl
mZ  e	j        d          rd dlZg dZ	 dd	ed
ededeeeef                  fdZe e	j        dd          d	edeeeef                  fd                        Ze e	j        dd          d	edeeeef                  fd                        Ze e	j        dd          d	edeeeef                  fd                        Ze e	j        dd          d	edeeeef                  fd                        Ze e	j        dd          d	edeeeef                  fd                        ZdS )    )AnyCallableIterableTupleN)Tensor)module_utils)dropping_supportnumpy)read_vec_int_arkread_vec_flt_scpread_vec_flt_arkread_mat_scpread_mat_arkF
file_or_fdfnconvert_contiguousreturnc              #      K    ||           D ]3\  }}|rt          j        |          }|t          j        |          fV  4dS )a  Takes a method invokes it. The output is converted to a tensor.

    Args:
        file_or_fd (str/FileDescriptor): File name or file descriptor
        fn (Callable): Function that has the signature (file name/descriptor) and converts it to
            Iterable[Tuple[str, Tensor]].
        convert_contiguous (bool, optional): Determines whether the array should be converted into a
            contiguous layout. (Default: ``False``)

    Returns:
        Iterable[Tuple[str, Tensor]]: The string is the key and the tensor is vec/mat
    N)npascontiguousarraytorch
from_numpy)r   r   r   keynp_arrs        Y/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/torchaudio/kaldi_io.py _convert_method_output_to_tensorr      sd       r*~~ , ,V 	2)&11F5#F+++++++, ,    kaldi_ioc                 8    ddl }t          | |j        d          S )a  Create generator of (key,vector<int>) tuples, which reads from the ark file/stream.

    Args:
        file_or_fd (str/FileDescriptor): ark, gzipped ark, pipe or opened file descriptor

    Returns:
        Iterable[Tuple[str, Tensor]]: The string is the key and the tensor is the vector read from file

    Example
        >>> # read ark to a 'dictionary'
        >>> d = { u:d for u,d in torchaudio.kaldi_io.read_vec_int_ark(file) }
    r   NT)r   )r   r   r   r   r   s     r   r   r   -   s(      OOO
 ,J8Qfjkkkkr   c                 4    ddl }t          | |j                  S )a  Create generator of (key,vector<float32/float64>) tuples, read according to Kaldi scp.

    Args:
        file_or_fd (str/FileDescriptor): scp, gzipped scp, pipe or opened file descriptor

    Returns:
        Iterable[Tuple[str, Tensor]]: The string is the key and the tensor is the vector read from file

    Example
        >>> # read scp to a 'dictionary'
        >>> # d = { u:d for u,d in torchaudio.kaldi_io.read_vec_flt_scp(file) }
    r   N)r   r   r   r    s     r   r   r   E          OOO+J8QRRRr   c                 4    ddl }t          | |j                  S )a  Create generator of (key,vector<float32/float64>) tuples, which reads from the ark file/stream.

    Args:
        file_or_fd (str/FileDescriptor): ark, gzipped ark, pipe or opened file descriptor

    Returns:
        Iterable[Tuple[str, Tensor]]: The string is the key and the tensor is the vector read from file

    Example
        >>> # read ark to a 'dictionary'
        >>> d = { u:d for u,d in torchaudio.kaldi_io.read_vec_flt_ark(file) }
    r   N)r   r   r   r    s     r   r   r   Z   r"   r   c                 4    ddl }t          | |j                  S )a  Create generator of (key,matrix<float32/float64>) tuples, read according to Kaldi scp.

    Args:
        file_or_fd (str/FileDescriptor): scp, gzipped scp, pipe or opened file descriptor

    Returns:
        Iterable[Tuple[str, Tensor]]: The string is the key and the tensor is the matrix read from file

    Example
        >>> # read scp to a 'dictionary'
        >>> d = { u:d for u,d in torchaudio.kaldi_io.read_mat_scp(file) }
    r   N)r   r   r   r    s     r   r   r   o          OOO+J8MNNNr   c                 4    ddl }t          | |j                  S )a  Create generator of (key,matrix<float32/float64>) tuples, which reads from the ark file/stream.

    Args:
        file_or_fd (str/FileDescriptor): ark, gzipped ark, pipe or opened file descriptor

    Returns:
        Iterable[Tuple[str, Tensor]]: The string is the key and the tensor is the matrix read from file

    Example
        >>> # read ark to a 'dictionary'
        >>> d = { u:d for u,d in torchaudio.kaldi_io.read_mat_ark(file) }
    r   N)r   r   r   r    s     r   r   r      r%   r   )F)typingr   r   r   r   r   r   torchaudio._internalr   
_mod_utils!torchaudio._internal.module_utilsr	   is_module_availabler
   r   __all__boolstrr   requires_moduler   r   r   r   r    r   r   <module>r1      s   2 1 1 1 1 1 1 1 1 1 1 1        ; ; ; ; ; ; > > > > > >!:!'**    ?D, ,,!,7;,eCK !, , , ,* J00l l%V2D)E l l l 10 l, J00S S%V2D)E S S S 10 S& J00S S%V2D)E S S S 10 S& J00OS OXeCK.@%A O O O 10 O& J00OS OXeCK.@%A O O O 10 O O Or   