pyht es un SDK de Python para la API AI Text-to-Speech de PlayHT. PlayHT crea modelos de IA de voz conversacional para casos de uso en tiempo real. Con pyht , puedes convertir fácilmente texto en transmisiones de audio de alta calidad con voces humanas.
Actualmente, la biblioteca solo admite la transmisión de texto a voz. Para conocer el conjunto completo de funcionalidades proporcionadas por la API de PlayHT, como la clonación de voz, consulte los documentos de PlayHT.
aiohttp
filelock
grpc
requests
websockets
Puede instalar el SDK de pyht usando pip:
pip install pyht
Puede utilizar el SDK de pyht creando una instancia Client
y llamando a su método tts
. He aquí un ejemplo sencillo:
from pyht import Client
from dotenv import load_dotenv
from pyht . client import TTSOptions
import os
load_dotenv ()
client = Client (
user_id = os . getenv ( "PLAY_HT_USER_ID" ),
api_key = os . getenv ( "PLAY_HT_API_KEY" ),
)
options = TTSOptions ( voice = "s3://voice-cloning-zero-shot/775ae416-49bb-4fb6-bd45-740f205d20a1/jennifersaad/manifest.json" )
for chunk in client . tts ( "Hi, I'm Jennifer from Play. How can I help you today?" , options ):
# do something with the audio chunk
print ( type ( chunk ))
También es posible transmitir texto en lugar de enviarlo como una cadena de una sola vez:
for chunk in client . stream_tts_input ( some_iterable_text_stream , options ):
# do something with the audio chunk
print ( type ( chunk ))
También está disponible una versión asíncio del cliente:
from pyht import AsyncClient
client = AsyncClient (
user_id = os . getenv ( "PLAY_HT_USER_ID" ),
api_key = os . getenv ( "PLAY_HT_API_KEY" ),
)
options = TTSOptions ( voice = "s3://voice-cloning-zero-shot/775ae416-49bb-4fb6-bd45-740f205d20a1/jennifersaad/manifest.json" )
async for chunk in client . tts ( "Hi, I'm Jennifer from Play. How can I help you today?" , options ):
# do something with the audio chunk
print ( type ( chunk ))
El método tts
toma los siguientes argumentos:
text
: El texto que se convertirá en voz.options
: las opciones que se utilizarán para la solicitud TTS.TTSOptions
(ver más abajo).voice_engine
: el motor de voz que se utilizará para la solicitud TTS.Play3.0-mini-http
(predeterminado): nuestro último modelo multilingüe, transmisión de audio a través de HTTP. (TENGA EN CUENTA que es Play
no PlayHT
como los motores de voz anteriores)Play3.0-mini-ws
: nuestro último modelo multilingüe, transmisión de audio a través de WebSockets. (TENGA EN CUENTA que es Play
no PlayHT
como los motores de voz anteriores)Play3.0-mini-grpc
: nuestro último modelo multilingüe, transmisión de audio a través de gRPC. Utilice este motor de voz si utiliza Play On-Prem. (TENGA EN CUENTA que es Play
no PlayHT
como los motores de voz anteriores)PlayHT2.0-turbo
: nuestro modelo heredado solo en inglés, transmisión de audio a través de gRPC. La clase TTSOptions
se utiliza para especificar las opciones para la solicitud TTS. Tiene los siguientes miembros, con estos valores soportados:
voice
: La voz que se utilizará para la solicitud TTS; una cuerda.format
: El formato del audio que se devolverá; un valor de enumeración Format
.FORMAT_MP3
(predeterminado)FORMAT_WAV
FORMAT_MULAW
FORMAT_FLAC
FORMAT_OGG
FORMAT_RAW
sample_rate
: la frecuencia de muestreo del audio que se devolverá; un número entero.quality
: DEPRECADO (use frecuencia de muestreo para ajustar la calidad del audio)speed
: La velocidad del audio que se devolverá, un valor flotante (predeterminado 1.0).seed
: semilla aleatoria que se utilizará para la generación de audio, un número entero (el valor predeterminado es Ninguno, se generará aleatoriamente).temperature
: La temperatura del modelo, un flotador.top_p
: El top_p del modelo, un flotante.text_guidance
: El text_guidance del modelo, un flotador.voice_guidance
La guía de voz del modelo, un flotador.style_guidance
(solo Play3.0-mini-http y Play3.0-mini-ws): la guía de estilo del modelo, un flotador.repetition_penalty
: La repetición_penalty del modelo, un flotador.disable_stabilization
(solo PlayHT2.0-turbo): deshabilita el proceso de estabilización de audio, un valor booleano (falso predeterminado).language
(solo Play3.0-mini-http y Play3.0-mini-ws): el idioma del texto que se va a pronunciar, un valor de enumeración Language
o Ninguno (inglés predeterminado).AFRIKAANS
ALBANIAN
AMHARIC
ARABIC
BENGALI
BULGARIAN
CATALAN
CROATIAN
CZECH
DANISH
DUTCH
ENGLISH
FRENCH
GALICIAN
GERMAN
GREEK
HEBREW
HINDI
HUNGARIAN
INDONESIAN
ITALIAN
JAPANESE
KOREAN
MALAY
MANDARIN
POLISH
PORTUGUESE
RUSSIAN
SERBIAN
SPANISH
SWEDISH
TAGALOG
THAI
TURKISH
UKRAINIAN
URDU
XHOSA
Puede ejecutar la demostración proporcionada desde la línea de comando.
Nota: Esta demostración depende de los siguientes paquetes:
pip install numpy soundfile
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! "
Para ejecutar con el cliente asyncio, use el indicador --async
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --async
Para ejecutar con la API HTTP, que utiliza nuestro último modelo Play3.0-mini, use el indicador --http
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --http
Para ejecutar con la API WebSockets, que también utiliza nuestro último modelo Play3.0-mini, use el indicador --ws
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --ws
Las API HTTP y WebSockets también se pueden utilizar con el cliente asíncrono:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --http --async
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --ws --async
Alternativamente, puede ejecutar la demostración en modo interactivo:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --interactive
En el modo interactivo, puede ingresar líneas de texto para generar y reproducir audio sobre la marcha. Una línea vacía saldrá de la sesión interactiva.
Para comenzar con el SDK de pyht , necesitará su clave secreta de API y su ID de usuario. Sigue estos pasos para obtenerlos:
Acceda a la página API : navegue a la página Acceso API.
Genere su clave secreta API :
Localice su ID de usuario : busque y copie su ID de usuario, que se puede encontrar en la misma página en la sección "ID de usuario".
Mantenga su clave secreta API confidencial . Es fundamental no compartirlo con nadie ni incluirlo en repositorios de código de acceso público.