U
    &Jj                      @  s   d dl mZ d dlmZ d dlmZ d dlZddlmZm	Z	m
Z
mZmZmZmZ ddlmZmZ ddlmZ dd	lmZmZ dd
lmZmZmZmZmZmZmZmZ ddl m!Z! ddl"m#Z# ddgZ$G dd deZ%G dd deZ&G dd dZ'G dd dZ(G dd dZ)G dd dZ*dS )    )annotations)Union)LiteralN   )BodyOmitQueryHeadersNotGivenomit	not_given)maybe_transformasync_maybe_transform)cached_property)SyncAPIResourceAsyncAPIResource)BinaryAPIResponseAsyncBinaryAPIResponseStreamedBinaryAPIResponseAsyncStreamedBinaryAPIResponseto_custom_raw_response_wrapper#to_custom_streamed_response_wrapper$async_to_custom_raw_response_wrapper)async_to_custom_streamed_response_wrapper)speech_create_params)make_request_optionsSpeechAsyncSpeechc                   @  sd   e Zd ZeddddZeddddZeeeddded	d
dd
dddddddddddZdS )r   SpeechWithRawResponsereturnc                 C  s   t | S a  
        This property can be used as a prefix for any HTTP method call to return
        the raw response object instead of the parsed content.

        For more information, see https://www.github.com/groq/groq-python#accessing-raw-response-data-eg-headers
        )r   self r$   |/var/www/api.dyntland.com/public_html/python_social_comments/venv/lib/python3.8/site-packages/groq/resources/audio/speech.pywith_raw_response   s    zSpeech.with_raw_responseSpeechWithStreamingResponsec                 C  s   t | S z
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/groq/groq-python#with_streaming_response
        )r'   r"   r$   r$   r%   with_streaming_response)   s    zSpeech.with_streaming_responseNresponse_formatsample_ratespeedextra_headersextra_query
extra_bodytimeoutstr8Union[str, Literal[('playai-tts', 'playai-tts-arabic')]]6Literal[('flac', 'mp3', 'mulaw', 'ogg', 'wav')] | Omit@Literal[(8000, 16000, 22050, 24000, 32000, 44100, 48000)] | Omitfloat | OmitHeaders | NoneQuery | NoneBody | None'float | httpx.Timeout | None | NotGivenr   inputmodelvoicer+   r,   r-   r.   r/   r0   r1   r    c       
      
   C  sD   ddi|pi }| j dt||||||dtjt|||	|
dtdS )L  
        Generates audio from the input text.

        Args:
          input: The text to generate audio for.

          model: One of the [available TTS models](/docs/text-to-speech).

          voice: The voice to use when generating the audio. List of voices can be found
              [here](/docs/text-to-speech).

          response_format: The format of the generated audio. Supported formats are
              `flac, mp3, mulaw, ogg, wav`.

          sample_rate: The sample rate for generated audio

          speed: The speed of the generated audio.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        Accept	audio/wav/openai/v1/audio/speechr<   r=   r>   r+   r,   r-   r.   r/   r0   r1   bodyoptionsZcast_to)_postr   r   SpeechCreateParamsr   r   r#   r<   r=   r>   r+   r,   r-   r.   r/   r0   r1   r$   r$   r%   create2   s*    *   zSpeech.create	__name__
__module____qualname__r   r&   r)   r   r   rK   r$   r$   r$   r%   r      s   	c                   @  sd   e Zd ZeddddZeddddZeeeddded	d
dd
dddddddddddZdS )r   AsyncSpeechWithRawResponser   c                 C  s   t | S r!   )rP   r"   r$   r$   r%   r&   r   s    zAsyncSpeech.with_raw_response AsyncSpeechWithStreamingResponsec                 C  s   t | S r(   )rQ   r"   r$   r$   r%   r)   |   s    z#AsyncSpeech.with_streaming_responseNr*   r2   r3   r4   r5   r6   r7   r8   r9   r:   r   r;   c       
      
     sP   ddi|pi }| j dt||||||dtjI dH t|||	|
dtdI dH S )r?   r@   rA   rB   rC   NrD   rE   )rH   r   r   rI   r   r   rJ   r$   r$   r%   rK      s*    *   zAsyncSpeech.createrL   r$   r$   r$   r%   r   q   s   	c                   @  s   e Zd ZdddddZdS )r   r   Nonespeechr    c                 C  s   || _ t|jt| _d S N)_speechr   rK   r   r#   rT   r$   r$   r%   __init__   s
    zSpeechWithRawResponse.__init__NrM   rN   rO   rX   r$   r$   r$   r%   r      s   r   c                   @  s   e Zd ZdddddZdS )rP   r   rR   rS   c                 C  s   || _ t|jt| _d S rU   )rV   r   rK   r   rW   r$   r$   r%   rX      s
    z#AsyncSpeechWithRawResponse.__init__NrY   r$   r$   r$   r%   rP      s   rP   c                   @  s   e Zd ZdddddZdS )r'   r   rR   rS   c                 C  s   || _ t|jt| _d S rU   )rV   r   rK   r   rW   r$   r$   r%   rX      s
    z$SpeechWithStreamingResponse.__init__NrY   r$   r$   r$   r%   r'      s   r'   c                   @  s   e Zd ZdddddZdS )rQ   r   rR   rS   c                 C  s   || _ t|jt| _d S rU   )rV   r   rK   r   rW   r$   r$   r%   rX      s
    z)AsyncSpeechWithStreamingResponse.__init__NrY   r$   r$   r$   r%   rQ      s   rQ   )+
__future__r   typingr   typing_extensionsr   Zhttpx_typesr   r   r   r	   r
   r   r   Z_utilsr   r   Z_compatr   Z	_resourcer   r   	_responser   r   r   r   r   r   r   r   Ztypes.audior   Z_base_clientr   __all__r   r   r   rP   r'   rQ   r$   r$   r$   r%   <module>   s"   $(
SS


