o
    Rh%                     @  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 ddl	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 ddl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   )_legacy_response)	NOT_GIVENBodyQueryHeadersNotGiven)maybe_transformasync_maybe_transform)cached_property)SyncAPIResourceAsyncAPIResource)StreamedBinaryAPIResponseAsyncStreamedBinaryAPIResponse#to_custom_streamed_response_wrapper)async_to_custom_streamed_response_wrapper)speech_create_params)make_request_options)SpeechModelSpeechAsyncSpeechc                   @  D   e Zd Zed!ddZed"ddZeeeddded	d#dd ZdS )$r   returnSpeechWithRawResponsec                 C     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/openai/openai-python#accessing-raw-response-data-eg-headers
        )r   self r!   _/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/openai/resources/audio/speech.pywith_raw_response       zSpeech.with_raw_responseSpeechWithStreamingResponsec                 C  r   z
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/openai/openai-python#with_streaming_response
        )r%   r   r!   r!   r"   with_streaming_response*      zSpeech.with_streaming_responseNinstructionsresponse_formatspeedextra_headersextra_query
extra_bodytimeoutinputstrmodelUnion[str, SpeechModel]voicesUnion[str, Literal['alloy', 'ash', 'ballad', 'coral', 'echo', 'fable', 'onyx', 'nova', 'sage', 'shimmer', 'verse']]r*   str | NotGivenr+   >Literal['mp3', 'opus', 'aac', 'flac', 'wav', 'pcm'] | NotGivenr,   float | NotGivenr-   Headers | Noner.   Query | Noner/   Body | Noner0   'float | httpx.Timeout | None | NotGiven+_legacy_response.HttpxBinaryResponseContentc       
      
   C  sF   ddi|pi }| j dt||||||dtjt|||	|
dtjdS )b  
        Generates audio from the input text.

        Args:
          input: The text to generate audio for. The maximum length is 4096 characters.

          model:
              One of the available [TTS models](https://platform.openai.com/docs/models#tts):
              `tts-1`, `tts-1-hd` or `gpt-4o-mini-tts`.

          voice: The voice to use when generating the audio. Supported voices are `alloy`, `ash`,
              `ballad`, `coral`, `echo`, `fable`, `onyx`, `nova`, `sage`, `shimmer`, and
              `verse`. Previews of the voices are available in the
              [Text to speech guide](https://platform.openai.com/docs/guides/text-to-speech#voice-options).

          instructions: Control the voice of your generated audio with additional instructions. Does not
              work with `tts-1` or `tts-1-hd`.

          response_format: The format to audio in. Supported formats are `mp3`, `opus`, `aac`, `flac`,
              `wav`, and `pcm`.

          speed: The speed of the generated audio. Select a value from `0.25` to `4.0`. `1.0` is
              the default.

          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application/octet-stream/audio/speechr1   r3   r5   r*   r+   r,   r-   r.   r/   r0   bodyoptionscast_to)_postr   r   SpeechCreateParamsr   r   HttpxBinaryResponseContentr    r1   r3   r5   r*   r+   r,   r-   r.   r/   r0   r!   r!   r"   create3   s$   2zSpeech.create)r   r   )r   r%   r1   r2   r3   r4   r5   r6   r*   r7   r+   r8   r,   r9   r-   r:   r.   r;   r/   r<   r0   r=   r   r>   __name__
__module____qualname__r   r#   r'   r   rM   r!   r!   r!   r"   r          	c                   @  r   )$r   r   AsyncSpeechWithRawResponsec                 C  r   r   )rT   r   r!   r!   r"   r#   {   r$   zAsyncSpeech.with_raw_response AsyncSpeechWithStreamingResponsec                 C  r   r&   )rU   r   r!   r!   r"   r'      r(   z#AsyncSpeech.with_streaming_responseNr)   r1   r2   r3   r4   r5   r6   r*   r7   r+   r8   r,   r9   r-   r:   r.   r;   r/   r<   r0   r=   r>   c       
      
     sT   ddi|pi }| j dt||||||dtjI dH t|||	|
dtjdI dH S )r?   r@   rA   rB   rC   NrD   rE   )rI   r   r   rJ   r   r   rK   rL   r!   r!   r"   rM      s&   2zAsyncSpeech.create)r   rT   )r   rU   rN   rO   r!   r!   r!   r"   r   z   rS   c                   @     e Zd ZdddZdS )	r   speechr   r   Nonec                 C     || _ t|j| _d S N)_speechr   to_raw_response_wrapperrM   r    rW   r!   r!   r"   __init__      
zSpeechWithRawResponse.__init__NrW   r   r   rX   rP   rQ   rR   r^   r!   r!   r!   r"   r          r   c                   @  rV   )	rT   rW   r   r   rX   c                 C  rY   rZ   )r[   r   async_to_raw_response_wrapperrM   r]   r!   r!   r"   r^      r_   z#AsyncSpeechWithRawResponse.__init__NrW   r   r   rX   ra   r!   r!   r!   r"   rT      rb   rT   c                   @  rV   )	r%   rW   r   r   rX   c                 C     || _ t|jt| _d S rZ   )r[   r   rM   r   r]   r!   r!   r"   r^      
   
z$SpeechWithStreamingResponse.__init__Nr`   ra   r!   r!   r!   r"   r%      rb   r%   c                   @  rV   )	rU   rW   r   r   rX   c                 C  re   rZ   )r[   r   rM   r   r]   r!   r!   r"   r^      rf   z)AsyncSpeechWithStreamingResponse.__init__Nrd   ra   r!   r!   r!   r"   rU      rb   rU   ))
__future__r   typingr   typing_extensionsr   httpx r   _typesr   r   r	   r
   r   _utilsr   r   _compatr   	_resourcer   r   	_responser   r   r   r   types.audior   _base_clientr   types.audio.speech_modelr   __all__r   r   r   rT   r%   rU   r!   r!   r!   r"   <module>   s(   [[		
