o
    h                     @   sZ   U d dl mZ d dlmZ d dlmZ ddlmZmZ dZ	ed e
d< G dd	 d	eZd
S )    )AsyncIterator)Literal)AsyncOpenAI   )TTSModelTTSModelSettingsashDEFAULT_VOICEc                   @   sN   e Zd ZdZdedefddZedefddZd	ed
e	de
e fddZdS )OpenAITTSModelz"A text-to-speech model for OpenAI.modelopenai_clientc                 C   s   || _ || _dS )zCreate a new OpenAI text-to-speech model.

        Args:
            model: The name of the model to use.
            openai_client: The OpenAI client to use.
        N)r   _client)selfr   r    r   _/var/www/html/openai_agents/venv/lib/python3.10/site-packages/agents/voice/models/openai_tts.py__init__   s   
zOpenAITTSModel.__init__returnc                 C   s   | j S )N)r   )r   r   r   r   
model_name   s   zOpenAITTSModel.model_nametextsettingsc              	   C  s   | j jjjj| j|jpt|dd|jid}|4 I dH }|j	dd2 z	3 dH W }|V  q#6 W d  I dH  dS 1 I dH s?w   Y  dS )zRun the text-to-speech model.

        Args:
            text: The text to convert to speech.
            settings: The settings to use for the text-to-speech model.

        Returns:
            An iterator of audio chunks.
        pcminstructions)r   voiceinputresponse_format
extra_bodyNi   )
chunk_size)
r   audiospeechwith_streaming_responsecreater   r   r	   r   
iter_bytes)r   r   r   responsestreamchunkr   r   r   run    s   

.zOpenAITTSModel.runN)__name__
__module____qualname____doc__strr   r   propertyr   r   r   bytesr%   r   r   r   r   r
      s    
r
   N)collections.abcr   typingr   openair   r   r   r   r	   __annotations__r
   r   r   r   r   <module>   s    