CoolFace
Apppublic

multimodalart/ZONOS2

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
33likes
app.cpython-312.pyc84 linesDownload Raw Back to __pycache__
1�

2Bz,j6)���ddlZejjdd�ejjdd�ddlZddlZddlZd�Ze�ddlZddlZddl	Z	ddl3Z4ddlZddl
ZddlZddlmZdZd	Zd5ZedzZeegd��
�Zee�ddlZej2j5d��ddlmZmZddlmZddl m!Z!ddddddddddd�6Z"gd�Z#dge#zZ$ejJejL�jNZ(e�Z)e7jTe)jVd �!�jY�Gd"�d#e!�Z-iZ.iZ/d$�Z0d%�Z1d&�Z2ejfd'�(�ejh�fd)��Z5d*Z6ejne6d+�,�5Z8ejrd-�ejt�5ejv�5ejxd.d/d0�1�Z=ej|e?e"j���d2d3�4�ZAej�d5d6d7d8gd9�:�ZCej�d9gd;gd<ggeCgd=�>�ej�d?d@�A�ZFddd�ejv�5ej�dBd6�C�ZGej�dDdE�F�5ej�d dGdH�I�ZJej�dEdJdK�I�ZKej�d dLdM�I�ZLej|e$ddN�4�ZMej�dOdPdQdRdS�T�ZOej�dUdVdWdXdY�T�ZPej�dRdZd[dRd\�T�ZQej�d]d^d_d`da�T�ZRej�d^dVdbdXdc�T�ZSej�dddde�f�ZUej�d dg�h�ZVddd�ddd�ddd�ej�di�ZXej�djd2gdkd2gdldmgdndogdpdqgge=eAgdr�>�eFj�e2e=eAeLgeXg�s�j�e5eXeCeJeKeMeOeUeVePeQeReSgeGeUg�s�ddd�e8j��y#1swY���xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY�KxYw)t�N�NUMBA_DISABLE_CUDA�1�PYTORCH_CUDA_ALLOC_CONFzexpandable_segments:Truec���tj�D]Q}ttj|�d�d���D])}t	j8|tj��y�Sy)Nz/nvidia/**/libcudart.so.13*T)�	recursive)�mode)�site�getsitepackages�sorted�glob�ctypes�CDLL�RTLD_GLOBAL)�sp�libs  �/tmp/zonos2-space/app.py�_preload_cudart13rsR���"�"�$���$�)�)�r�d�*E�$F�RV�W�X�C��K�K��&�"4�"4�5��Y�%�)�snapshot_downloadz
Zyphra/ZONOS2z,marksverdhei/Qwen3-Voice-Embedding-12Hz-1.7BiD�i)z*.jsonz*.pthz*.ptz*.yaml)�allow_patterns�44khz)�9model_type)�TTSSamplingParams�10TTSUserMsg)�TTSTextNormalizer)�TTSLLM�en_us�en_gb�fr_fr�de�es�it�pt_br�ja�cmn�ko)11�English (US)zEnglish (UK)�French�German�Spanish�ItalianzPortuguese (BR)�Japanese�Mandarin�Korean)z0-8z8-11z11-14z14-17z17-21z21-28z28-40z40+�AutoT)�target�daemonc�4��eZdZdZ�fd�Zddef�fd�
Z�xZS)�ZonosTTSLLMzITTSLLM with speaker-embedding conditioning plumbed into the offline path.c�N��t�|�|i|��d|_d|_d|_y)NFT)�super�__init__�speaker_embedding�clean_speaker_background�
accurate_mode)�self�args�kwargs�	__class__s   �rr6zZonosTTSLLM.__init__Js-���
���$�)�&�)�!%���(-��%�!��r�blockingc���t�|�|�}|D]F}t|t�s�|j|_|j12|_|j|_�H|S)N)r5�offline_receive_msg�13isinstancerr7r8r9)r:r>�msgs�msgr=s    �rr@zZonosTTSLLM.offline_receive_msgPsW����w�*�8�4���C��#�z�*�(,�(>�(>��%�/3�/L�/L��,�$(�$6�$6��!�	�14�r)F)�__name__�15__module__�__qualname__�__doc__r6�boolr@�
__classcell__)r=s@rr3r3Gs���S�"��D��rr3c�|�dtvr/ddlm}|d��td<ttdd�	�td<tS)16N�ttsr��Qwen3SpeakerEmbedding�cuda)�device�embedder�i)�17model_path�cuda_graph_max_bs�num_page_override)�MODELS�zonos2.models.speaker_cloningrMr3�18MODEL_PATHrLs r�_get_modelsrX^s:���F��G�2�&�A��z��#�!��#�19��u�
�20�Mrc��|\}}tj|j�t|�j	�z�j�}|tvr	t|Stj|�}|jtjk(r#|jtj�dz}n_|jtjk(r#|jtj�dz}n|jtj�}|jdk(r|j}t!j"|�}|d}t!j$�5|||�}ddd�t't(�r|n|f}|D]c}	|	j+d�j-t jd��}	|	j/�dk(s�G|	j1d�}21|22t|<|23cSt3j4d	��#1swY��xYw)24Ng�@g�A�rPr�cpu)�dtyperOiz?Could not compute a speaker embedding from the reference audio.)�hashlib�sha256�tobytes�str�encode�	hexdigest�EMBEDDING_CACHE�np�asarrayr\�int16�astype�float32�int32�ndim�T�torch�25from_numpy�inference_moderA�tuple�squeeze�to�numel�reshape�gr�Error)�models�
speaker_audio�sr�wav�key�wav_trP�output�26candidates�	candidate�	embeddings           r�_embed_speakerr�ks����G�B��27�.�.������R����)9�9�28:�29D�30D�31F�C�32�o���s�#�#�33�*�*�S�/�C�34�y�y�B�H�H���j�j����$�w�.��	���b�h�h�	��j�j����$�|�3���j�j����$��35�x�x�1�}��e�e�����S�!�E��j�!�H�	�	�	�	��%��$��36 �&�f�e�4��6�)�J��	��%�%�a�(�+�+�%�-�-��+�N�	��?�?���$�!�)�)�$�/�I�#,�O�C� ��� �
�(�(�T�37U�U�38 �	�s�39H�Hc���|xsdj�}|stjd��t|�dkDrtjd��|s|Stj|t|�S)N�z%Please enter some text to synthesize.i�u:Text is too long — please keep it under 5000 characters.)�striprtru�len�40NORMALIZER�	normalize�	LANGUAGES)�text�language�apply_normalizations   r�normalize_textr��sc���J�B����D���h�h�>�?�?�41�4�y�4���h�h�S�T�T��������i��&9�:�:r��)�durationc
��t�}
|
d}|rtjdt�}t	|�}|dd��|�t|
|�nd}||_t|�|_t|�|_	tt|�t	|	�t|42�t|�t	t|�tz�|��}|dk(rdntj|�}|dd	��|j|||�43�}|dst!j"d��t%j&|dt$j(�
�j+�}t,|f|fS)NrKr皙�����?zEmbedding reference voice...)�desc)�temperature�topk�min_p�repetition_penalty�44max_tokens�seedr/g333333�?zGenerating speech...)�speaking_rate_bucket�audiouFGeneration produced no audio — try a different seed or shorter text.)r\)rX�random�randint�MAX_SEED�intr�r7rHr8r9r�float�FRAMES_PER_SECOND�SPEAKING_RATE_BUCKETS�index�generate_onertrurd�45frombufferrh�copy�SAMPLE_RATE)�normalized_textrwr9�clean_background�
speaking_rate�max_secondsr��randomize_seedr��top_kr�r��progressrvrKr�sampling_params�rate_bucket�resultr�s                    r�generater��sA�� �]�F�46��-�C���~�~�a��*���t�9�D��S�5�6�9F�9R��v�}�5�X\�I�%�C��#'�(8�#9�C� ��]�+�C��'��+�&�
��Z��E�l� �!3�4��u�[�)�,=�=�>�
�
�O�(�6�1�$�7L�7R�7R�S`�7a�K��S�-�.�
�
�
���(���F��'�?��h�h�_�`�`��M�M�&��/����<�A�A�C�E�����%�%rzM47.gradio-container {max-width: 960px !important; margin: 0 auto !important;}48zZonos 2)�css�titleu�49        # 🗣️ Zonos 250 51        [Zyphra's ZONOS2](https://huggingface.co/Zyphra/ZONOS2) — an expressive multilingual52        text-to-speech model with high-fidelity voice cloning, trained on 6M+ hours of speech.53        Upload or record a few seconds of a voice and it will speak your text.54        [Blog](https://www.zyphra.com/our-work/zonos2) · [Code](https://github.com/Zyphra/ZONOS2)55        �TextrQzsHello! I am Zonos 2, a text to speech model by Zyphra. I can clone anyone's voice from just a few seconds of audio.)�label�lines�valuer'�Language)�choicesr�r�z"Reference voice (upload or record)�numpy�upload�56microphonezvoices/AmericanFemale.mp3)r��type�sourcesr�zvoices/AmericanMale.mp3zvoices/BritishFemale.mp3zDefault voices)�examples�inputsr��Generate�primary)�variantzGenerated speech)r�r�zAdvanced settingsF)�openz
Accurate modez3Disable for more expressive (less literal) delivery)r�r��infozClean reference audioz9Mark the reference recording as having a clean backgroundzNormalize textu?Convert written forms to spoken forms ("$5" → "five dollars")zSpeaking rate (phonemes/sec)rZ�<��zMax audio length (seconds))�minimum�maximumr��stepr�r�g@gffffff�?g�������?�Temperaturei�jzTop-kgg�?g57ףp=58�?g{�G�z�?zMin-pg333333�?zRepetition penalty�*�Seed)r��	precisionr�zRandomize seed)r�r�r�uiDid you know? The sun is actually a giant ball of plasma — over one million Earths could fit inside it!z2On the 3rd of March 2026, tickets cost $5.32 each.zQBonjour ! Je peux parler plusieurs langues avec une voix naturelle et expressive.r(uB私は数秒の音声からどんな声でも再現できます。r,uC¡Hola! Puedo clonar cualquier voz con solo unos segundos de audio.r*z
Example texts)�fnr��outputs)\�os�environ�59setdefaultr
rr	r�spacesr]r��	threading�gradiortr�rdrl�huggingface_hubr�60MODEL_REPO�SPEAKER_REPOr�r�rW�dac�_dac�utils�download�zonos2.message.ttsrr�zonos2.tokenizer.textnormr�61zonos2.ttsrr�r��RATE_CHOICES�iinfori�maxr�r��Thread�warmup�startr3rUrcrXr�r��GPU�Progressr�r��Blocks�demo�Markdown�Row�Column�Textboxr��Dropdown�list�keysr��Audiorw�Examples�Button�generate_btn�	audio_out�	Accordion�Checkboxr9r��
normalize_chkr��Sliderr�r�r�r�r��Numberr�r��Stater��click�then�launch�rr�<module>rs���	��62�63���*�C�0��64�65���/�1K�L�
������
��
�����-�
�66�=�����#�%��
�z�:_�
`�67��,����68�69���w��'�<�7������������
�	�\���x�/�/���2�8�8�B�H�H��!�!��
�
 �70��	���71�)�)�$�7�=�=�?��&��&72����73�V�@;�����S���R�[�[�]�2&��2&�j���R�Y�Y�3�i�(�D��B�K�K�	�	�74�����
�R�Y�Y�[��2�:�:���L��D�75#�r�{�{��Y�^�^�-�.�n�J��H�%�B�H�H�:��!�<�0�1�	�M�
�B�K�K�0�1�.�/�/�0��76&��&�
�%�2�9�9�Z��C�L�1�4�R�Y�Y�[� ����'9��H�I�����1��>� +�����)�N�!�
�77$/�2�;�;��1�T�$� �78!,�����*�Z�!�
�79!,����(��>\�!�
�(�b�i�i��r��!�C_���(�b�i�i���D�t�=���"��	�	�!�T��1�T[�\��!��	�	�#�s�$�T�Y`�a��%.�R�Y�Y���C�d�J^�&�"�!�r�y�y�r�Q�f�E��!,����4�?O�!P��??��780�|�b�h�h�r�l�O��B�K�K�
x�{I�
J�
A�>�R�
`�bj�k�
Q�S]�^�
R�T]�^�81��h���82������h�
�.� �!����d��������������
83��D�!�!��y)�^���
�E�[��8?�>���[��784���)�(�so�$Q�4Q�BP!�
Q�&)P:�C1P.	�P:�Q�A8Q�!P+�&Q�.P7
�3P:�:Q�?Q�Q	�Q�Q