o
    Xi
                     @   s   d dl Z d dlmZmZ dd Zdd Zdd Zd	d
 ZdefddZ	ddede
defddZdee defddZdee defddZdee defddZdS )    N)IteratorTextIOc                 C   s   | | dksJ | | S )Nr    )xyr   r   A/home/ubuntu/.local/lib/python3.10/site-packages/whisper/utils.py	exact_div   s   r   c                 C   s6   ddd}| |v r||  S t dt|  d|  )NTF)TrueFalsezExpected one of z, got )
ValueErrorsetkeys)stringstr2valr   r   r   str2bool
   s   
r   c                 C      | dkrd S t | S NNone)intr   r   r   r   optional_int      r   c                 C   r   r   )floatr   r   r   r   optional_float   r   r   returnc                 C   s    |  d}t|tt| S )Nzutf-8)encodelenzlibcompress)text
text_bytesr   r   r   compression_ratio   s   
r!   F.secondsalways_include_hoursdecimal_markerc                 C   s   | dksJ dt | d }|d }||d 8 }|d }||d 8 }|d } || d 8 }|s2|dkr8|ddnd	}| |dd| d| |d
S )Nr   znon-negative timestamp expectedg     @@i6 i`  i  02d: 03d)round)r#   r$   r%   millisecondshoursminuteshours_markerr   r   r   format_timestamp   s    r/   
transcriptfilec                 C   s$   | D ]}t |d  |dd qd S )Nr   Tr1   flush)printstripr0   r1   segmentr   r   r   	write_txt0   s   r8   c              
   C   sZ   t d|d | D ]"}t t|d  dt|d  d|d  dd	 d|d
d qd S )NzWEBVTT
)r1   start --> end
r   -->->Tr2   )r4   r/   r5   replacer6   r   r   r   	write_vtt5   s   r@   c                 C   sl   t | ddD ]-\}}t| dt|d ddd dt|d	 ddd d|d
  dd d|dd qdS )a  
    Write a transcript to a file in SRT format.

    Example usage:
        from pathlib import Path
        from whisper.utils import write_srt

        result = transcribe(model, audio_path, temperature=temperature, **args)

        # save SRT
        audio_basename = Path(audio_path).stem
        with open(Path(output_dir) / (audio_basename + ".srt"), "w", encoding="utf-8") as srt:
            write_srt(result["segments"], file=srt)
       )r9   r<   r9   T,)r$   r%   r:   r;   r   r=   r>   r2   N)	enumerater4   r/   r5   r?   )r0   r1   ir7   r   r   r   	write_srt@   s   rE   )Fr"   )r   typingr   r   r   r   r   r   r   r!   boolstrr/   dictr8   r@   rE   r   r   r   r   <module>   s    