
    v-jG                    b    d dl mZ d dlZd dlZd dlZddlmZmZ dd	ZddZ	ddZ
ddZddZdS )    )annotationsN   )backendwave_backendversionstrreturnboolc                    |                      d          }t          |d                   }t          |d                   }t          |d                   }|dk     rdS |dk    r|dk    r|dk    rdS dS )N.r   r      FT)splitint)r   ver_arrv0v1v2s        b/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddle/audio/backends/init_backend.py_check_versionr      sq    mmC  G	WQZB	WQZB	WQZB	Avvu	Qww277rQwwu4    	list[str]c                 B   g } 	 ddl }n/# t          $ r" d}d| d| d}t          j        |           Y nw xY wdt          j        v rD|j        }t          |          sd| d}t          |          |j        	                                } | 
                    d	           | S )
ak  List available backends, the backends in paddleaudio and the default backend.

    Returns:
        list[str]: The list of available backends.

    Examples:
        .. code-block:: python

            >>> import paddle

            >>> sample_rate = 16000
            >>> wav_duration = 0.5
            >>> num_channels = 1
            >>> num_frames = sample_rate * wav_duration
            >>> wav_data = paddle.linspace(-1.0, 1.0, int(num_frames)) * 0.1
            >>> waveform = wav_data.tile([num_channels, 1])
            >>> wav_path = "./test.wav"

            >>> current_backend = paddle.audio.backends.get_current_backend()
            >>> print(current_backend)
            wave_backend

            >>> backends = paddle.audio.backends.list_available_backends()
            >>> # default backends is ['wave_backend']
            >>> # backends is ['wave_backend', 'soundfile'], if have installed paddleaudio >= 1.0.2
            >>> if 'soundfile' in backends:
            ...     paddle.audio.backends.set_backend('soundfile')
            ...
            >>> paddle.audio.save(wav_path, waveform, sample_rate)

    r   NpaddleaudiozFailed importing z. 
only wave_backend(only can deal with PCM16 WAV) supported.
if want soundfile_backend(more audio type supported),
please manually installed (usually with `pip install z >= 1.0.2`). z(the version of paddleaudio installed is z),
please ensure the paddleaudio >= 1.0.2.r   )r   ImportErrorwarningswarnsysmodules__version__r   backendslist_audio_backendsappend)r    r   packagewarn_msgr   err_msgs         r   list_available_backendsr&   &   s   @ H
       [ [ [ EL[ [ [ 	 	h  ##)g&& 	':7 : : :  g&&&';;==OON###Os   	 )55c                     d} dt           j        v r9ddl}|j                                        } t
          j        j        |j        k    r| S dS )a  Get the name of the current audio backend

    Returns:
        str: The name of the current backend,
        the wave_backend or backend imported from paddleaudio

    Examples:
        .. code-block:: python

            >>> import paddle

            >>> sample_rate = 16000
            >>> wav_duration = 0.5
            >>> num_channels = 1
            >>> num_frames = sample_rate * wav_duration
            >>> wav_data = paddle.linspace(-1.0, 1.0, int(num_frames)) * 0.1
            >>> waveform = wav_data.tile([num_channels, 1])
            >>> wav_path = "./test.wav"

            >>> current_backend = paddle.audio.backends.get_current_backend()
            >>> print(current_backend)
            wave_backend

            >>> backends = paddle.audio.backends.list_available_backends()
            >>> # default backends is ['wave_backend']
            >>> # backends is ['wave_backend', 'soundfile'], if have installed paddleaudio >= 1.0.2

            >>> if 'soundfile' in backends:
            ...     paddle.audio.backends.set_backend('soundfile')
            ...
            >>> paddle.audio.save(wav_path, waveform, sample_rate)

    Nr   r   r   )r   r   r   r    get_audio_backendpaddleaudioload)current_backendr   s     r   get_current_backendr-   `   sU    D O##%.@@BB< 000"">r   backend_nameNonec           	     4   | t                      vrt          | dk    rt          }n ddl}|j                            |            |}dD ]O}t          t          |t          ||                     t          t          j
        |t          ||                     PdS )a  Set the backend by one of the list_audio_backend return.

    Args:
        backend (str): one of the list_audio_backend. "wave_backend" is the default. "soundfile" imported from paddleaudio.

    Returns:
        None

    Examples:
        .. code-block:: python

            >>> import paddle

            >>> sample_rate = 16000
            >>> wav_duration = 0.5
            >>> num_channels = 1
            >>> num_frames = sample_rate * wav_duration
            >>> wav_data = paddle.linspace(-1.0, 1.0, int(num_frames)) * 0.1
            >>> waveform = wav_data.tile([num_channels, 1])
            >>> wav_path = "./test.wav"

            >>> current_backend = paddle.audio.backends.get_current_backend()
            >>> print(current_backend)
            wave_backend

            >>> backends = paddle.audio.backends.list_available_backends()
            >>> # default backends is ['wave_backend']
            >>> # backends is ['wave_backend', 'soundfile'], if have installed paddleaudio >= 1.0.2

            >>> if 'soundfile' in backends:
            ...     paddle.audio.backends.set_backend('soundfile')
            ...
            >>> paddle.audio.save(wav_path, waveform, sample_rate)

    r   r   Nsaver+   info)r&   NotImplementedErrorr   r   r    set_audio_backendsetattrr   getattrr)   r*   )r.   moduler   funcs       r   set_backendr:      s    H 24444!!~%%..|<<<( ; ;wvt44555dGFD$9$9::::; ;r   c            	     b    dD ]+} t          t          | t          t          |                      ,d S )Nr1   )r6   r   r7   r   )r9   s    r   _init_set_audio_backendr<      s:    ( < <w|T::;;;;< <r   )r   r   r	   r
   )r	   r   )r	   r   )r.   r   r	   r/   )r	   r/   )
__future__r   r   r   r)    r   r   r   r&   r-   r:   r<    r   r   <module>r@      s    # " " " " " 



   # # # # # # # #
 
 
 
7 7 7 7t) ) ) )X1; 1; 1; 1;h< < < < < <r   