o
    lWi[                     @  s   d dl mZ d dlZddl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 ejr7dd
lmZmZ G dd dZG dd dZdS )    )annotationsN   )AsyncClientWrapperSyncClientWrapper)RequestOptions)SpeakerSeparationResponseModel)#StartSpeakerSeparationResponseModel   )AsyncRawSpeakersClientRawSpeakersClient)AsyncAudioClientAudioClientc                   @  P   e Zd ZdddZedddZd	d
dddZd	d
dddZedd Zd	S )SpeakersClientclient_wrapperr   c                C     t |d| _|| _d | _d S Nr   )r   _raw_client_client_wrapper_audioselfr    r   q/var/www/html/asistente-voz-ia/venv/lib/python3.10/site-packages/elevenlabs/voices/pvc/samples/speakers/client.py__init__      
zSpeakersClient.__init__returnr   c                 C     | j S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawSpeakersClient
        r   r   r   r   r   with_raw_response      	z SpeakersClient.with_raw_responseNrequest_optionsvoice_idstr	sample_idr$   typing.Optional[RequestOptions]r   c                C     | j j|||d}|jS )a^  
        Retrieve the status of the speaker separation process and the list of detected speakers if complete.

        Parameters
        ----------
        voice_id : str
            Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.

        sample_id : str
            Sample ID to be used

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SpeakerSeparationResponseModel
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.voices.pvc.samples.speakers.get(
            voice_id="21m00Tcm4TlvDq8ikWAM",
            sample_id="VW7YKqPnjY4h39yTbx2L",
        )
        r#   r   getdatar   r%   r'   r$   	_responser   r   r   r+   "      "zSpeakersClient.getr   c                C  r)   )a1  
        Start speaker separation process for a sample

        Parameters
        ----------
        voice_id : str
            Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.

        sample_id : str
            Sample ID to be used

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        StartSpeakerSeparationResponseModel
            Successful Response

        Examples
        --------
        from elevenlabs import ElevenLabs

        client = ElevenLabs(
            api_key="YOUR_API_KEY",
        )
        client.voices.pvc.samples.speakers.separate(
            voice_id="21m00Tcm4TlvDq8ikWAM",
            sample_id="VW7YKqPnjY4h39yTbx2L",
        )
        r#   r   separater,   r-   r   r   r   r1   G   r/   zSpeakersClient.separatec                 C  *   | j d u rddlm} || jd| _ | j S )Nr	   )r   r   )r   audio.clientr   r   )r   r   r   r   r   audiol      
zSpeakersClient.audio)r   r   )r   r   r%   r&   r'   r&   r$   r(   r   r   r%   r&   r'   r&   r$   r(   r   r   	__name__
__module____qualname__r   propertyr!   r+   r1   r4   r   r   r   r   r      s    
&%r   c                   @  r   )AsyncSpeakersClientr   r   c                C  r   r   )r
   r   r   r   r   r   r   r   r   v   r   zAsyncSpeakersClient.__init__r   r
   c                 C  r   )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawSpeakersClient
        r   r    r   r   r   r!   {   r"   z%AsyncSpeakersClient.with_raw_responseNr#   r%   r&   r'   r$   r(   r   c                      | j j|||dI dH }|jS )a  
        Retrieve the status of the speaker separation process and the list of detected speakers if complete.

        Parameters
        ----------
        voice_id : str
            Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.

        sample_id : str
            Sample ID to be used

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        SpeakerSeparationResponseModel
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.voices.pvc.samples.speakers.get(
                voice_id="21m00Tcm4TlvDq8ikWAM",
                sample_id="VW7YKqPnjY4h39yTbx2L",
            )


        asyncio.run(main())
        r#   Nr*   r-   r   r   r   r+         *zAsyncSpeakersClient.getr   c                  r>   )a  
        Start speaker separation process for a sample

        Parameters
        ----------
        voice_id : str
            Voice ID to be used, you can use https://api.elevenlabs.io/v1/voices to list all the available voices.

        sample_id : str
            Sample ID to be used

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        StartSpeakerSeparationResponseModel
            Successful Response

        Examples
        --------
        import asyncio

        from elevenlabs import AsyncElevenLabs

        client = AsyncElevenLabs(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.voices.pvc.samples.speakers.separate(
                voice_id="21m00Tcm4TlvDq8ikWAM",
                sample_id="VW7YKqPnjY4h39yTbx2L",
            )


        asyncio.run(main())
        r#   Nr0   r-   r   r   r   r1      r?   zAsyncSpeakersClient.separatec                 C  r2   )Nr	   )r   r   )r   r3   r   r   )r   r   r   r   r   r4      r5   zAsyncSpeakersClient.audio)r   r   )r   r
   r6   r7   r8   r   r   r   r   r=   u   s    
.-r=   )
__future__r   typingcore.client_wrapperr   r   core.request_optionsr   'types.speaker_separation_response_modelr   -types.start_speaker_separation_response_modelr   
raw_clientr
   r   TYPE_CHECKINGr3   r   r   r   r=   r   r   r   r   <module>   s   d