
    2iJ)                    r   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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e          Z% G d de          Z& G d d          Z' G d d          Z( G d d          Z) G d d          Z*dS )    )annotations)Union)LiteralN   )_legacy_response)BodyOmitQueryHeadersNotGivenomit	not_given)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            	      ^    e Zd ZdZed!d            Zed"d            Zeeeedddedd#d Z	dS )$r   (Turn audio into text or text into audio.returnSpeechWithRawResponsec                     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    selfs    d/root/.openclaw/workspace/.venv-openai/lib/python3.11/site-packages/openai/resources/audio/speech.pywith_raw_responsezSpeech.with_raw_response   s     %T***    SpeechWithStreamingResponsec                     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/openai/openai-python#with_streaming_response
        )r(   r#   s    r%   with_streaming_responsezSpeech.with_streaming_response)   s     +4000r'   Ninstructionsresponse_formatspeedstream_formatextra_headersextra_query
extra_bodytimeoutinputstrmodelUnion[str, SpeechModel]voicespeech_create_params.Voicer-   
str | Omitr.   :Literal['mp3', 'opus', 'aac', 'flac', 'wav', 'pcm'] | Omitr/   float | Omitr0   Literal['sse', 'audio'] | Omitr1   Headers | Noner2   Query | Noner3   Body | Noner4   'float | httpx.Timeout | None | NotGiven+_legacy_response.HttpxBinaryResponseContentc                   ddi|pi }|                      dt          |||||||dt          j                  t	          ||	|
|          t
          j                  S )  
        Generates audio from the input text.

        Returns the audio file content, or a stream of audio events.

        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`, `gpt-4o-mini-tts`, or `gpt-4o-mini-tts-2025-12-15`.

          voice: The voice to use when generating the audio. Supported built-in voices are
              `alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `onyx`, `nova`, `sage`,
              `shimmer`, `verse`, `marin`, and `cedar`. You may also provide a custom voice
              object with an `id`, for example `{ "id": "voice_1234" }`. 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.

          stream_format: The format to stream the audio in. Supported formats are `sse` and `audio`.
              `sse` is not supported for `tts-1` or `tts-1-hd`.

          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r5   r7   r9   r-   r.   r/   r0   r1   r2   r3   r4   bodyoptionscast_to)_postr   r   SpeechCreateParamsr   r   HttpxBinaryResponseContentr$   r5   r7   r9   r-   r.   r/   r0   r1   r2   r3   r4   s               r%   createzSpeech.create2   s    p "#=W-BUSUWzz """$0'6"%2  %7  )+Q[el   %?#  
 
 	
r'   )r   r    )r   r(   r5   r6   r7   r8   r9   r:   r-   r;   r.   r<   r/   r=   r0   r>   r1   r?   r2   r@   r3   rA   r4   rB   r   rC   
__name__
__module____qualname____doc__r   r&   r+   r   r   rS    r'   r%   r   r      s        22+ + + _+ 1 1 1 _1 $(VZ"8< )-$("&;DK
 K
 K
 K
 K
 K
 K
 K
r'   c            	      ^    e Zd ZdZed!d            Zed"d            Zeeeedddedd#d Z	dS )$r   r   r   AsyncSpeechWithRawResponsec                     t          |           S r"   )r\   r#   s    r%   r&   zAsyncSpeech.with_raw_response   s     *$///r'    AsyncSpeechWithStreamingResponsec                     t          |           S r*   )r^   r#   s    r%   r+   z#AsyncSpeech.with_streaming_response   s     0555r'   Nr,   r5   r6   r7   r8   r9   r:   r-   r;   r.   r<   r/   r=   r0   r>   r1   r?   r2   r@   r3   rA   r4   rB   rC   c                  K   ddi|pi }|                      dt          |||||||dt          j                   d{V t	          ||	|
|          t
          j                   d{V S )rE   rF   rG   rH   rI   NrJ   rK   )rO   r   r   rP   r   r   rQ   rR   s               r%   rS   zAsyncSpeech.create   s      p "#=W-BUSUWZZ,"""$0'6"%2  %7        )+Q[el   %?#   
 
 
 
 
 
 
 
 	
r'   )r   r\   )r   r^   rT   rU   rZ   r'   r%   r   r      s        220 0 0 _0 6 6 6 _6 $(VZ"8< )-$("&;DK
 K
 K
 K
 K
 K
 K
 K
r'   c                      e Zd ZddZdS )r    speechr   r   Nonec                P    || _         t          j        |j                  | _        d S N)_speechr   to_raw_response_wrapperrS   r$   rb   s     r%   __init__zSpeechWithRawResponse.__init__   s&    &>M
 
r'   Nrb   r   r   rc   rV   rW   rX   ri   rZ   r'   r%   r    r       (        
 
 
 
 
 
r'   r    c                      e Zd ZddZdS )r\   rb   r   r   rc   c                P    || _         t          j        |j                  | _        d S re   )rf   r   async_to_raw_response_wrapperrS   rh   s     r%   ri   z#AsyncSpeechWithRawResponse.__init__   s&    &DM
 
r'   Nrb   r   r   rc   rk   rZ   r'   r%   r\   r\      rl   r'   r\   c                      e Zd ZddZdS )r(   rb   r   r   rc   c                R    || _         t          |j        t                    | _        d S re   )rf   r   rS   r   rh   s     r%   ri   z$SpeechWithStreamingResponse.__init__   s&    9M%
 
r'   Nrj   rk   rZ   r'   r%   r(   r(      (        
 
 
 
 
 
r'   r(   c                      e Zd ZddZdS )r^   rb   r   r   rc   c                R    || _         t          |j        t                    | _        d S re   )rf   r   rS   r   rh   s     r%   ri   z)AsyncSpeechWithStreamingResponse.__init__  s&    ?M*
 
r'   Nrp   rk   rZ   r'   r%   r^   r^      rs   r'   r^   )+
__future__r   typingr   typing_extensionsr   httpx r   _typesr   r	   r
   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    r\   r(   r^   rZ   r'   r%   <module>r      s_   # " " " " "       % % % % % %              K K K K K K K K K K K K K K K K K K < < < < < < < < & & & & & & : : : : : : : :            0 / / / / / 0 0 0 0 0 0 3 3 3 3 3 3]
#a
 a
 a
 a
 a
_ a
 a
 a
Ha
 a
 a
 a
 a
" a
 a
 a
H
 
 
 
 
 
 
 

 
 
 
 
 
 
 

 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
r'   