
    ͑iG                    j    S SK Jr  S SKrS SKrS SKrSSKJrJr  S
S jrSS jr	SS jr
SS jrSS	 jrg)    )annotationsN   )backendwave_backendc                    U R                  S5      n[        US   5      n[        US   5      n[        US   5      nUS:  a  gUS:X  a  US:X  a  US::  a  gg)N.r   r      FT)splitint)versionver_arrv0v1v2s        b/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/audio/backends/init_backend.py_check_versionr      sZ    mmC G	WQZB	WQZB	WQZB	Av	Qw27rQw    c                 N   / n  SSK nS[        R
                  ;   aG  WR                  n[        U5      (       d  SU S3n[        U5      eUR                  R                  5       n U R                  S	5        U $ ! [         a$    SnSU SU S3n[        R                  " U5         Nf = f)
a  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
  #))g&&:7) D: :  g&&'';;=OON#O)   y )D EL9M[ 	 	h s   A6 6+B$#B$c                     Sn S[         R                  ;   aH  SSKnUR                  R	                  5       n [
        R                  R                  UR                  :X  a  U $ g)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)   `   sN    D O#%..@@B<< 0 00""r   c           	        U [        5       ;  a  [        eU S:X  a  [        nO!SSKnUR                  R                  U 5        UnS HA  n[        [        U[        X5      5        [        [        R                  U[        X5      5        MC     g)aT  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&   )backend_namemoduler   funcs       r   set_backendr5      sp    H 244!!~%..|<(wv45dGF$9: )r   c            	     T    S H"  n [        [        U [        [        U 5      5        M$     g )Nr+   )r0   r   r1   r   )r4   s    r   _init_set_audio_backendr7      s    (w|T:; )r   )r   strreturnbool)r9   z	list[str])r9   r8   )r2   r8   r9   None)r9   r;   )
__future__r   r   r   r%    r   r   r   r"   r)   r5   r7    r   r   <module>r?      s2    # 
   #
7t)X1;h<r   