pyht ist ein Python-SDK für die AI Text-to-Speech-API von PlayHT. PlayHT erstellt Konversations-Sprach-KI-Modelle für Echtzeit-Anwendungsfälle. Mit pyht können Sie Text ganz einfach in hochwertige Audiostreams mit menschenähnlichen Stimmen umwandeln.
Derzeit unterstützt die Bibliothek nur das Streamen von Text-zu-Sprache. Den gesamten Funktionsumfang der PlayHT-API wie z. B. Voice Cloning finden Sie in den PlayHT-Dokumenten
aiohttp
filelock
grpc
requests
websockets
Sie können das pyht SDK mit pip installieren:
pip install pyht
Sie können das pyht SDK verwenden, indem Sie eine Client
Instanz erstellen und deren tts
-Methode aufrufen. Hier ist ein einfaches Beispiel:
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 ))
Es ist auch möglich, Text zu streamen, anstatt ihn auf einmal als Zeichenfolge zu übermitteln:
for chunk in client . stream_tts_input ( some_iterable_text_stream , options ):
# do something with the audio chunk
print ( type ( chunk ))
Eine Asyncio-Version des Clients ist ebenfalls verfügbar:
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 ))
Die tts
-Methode akzeptiert die folgenden Argumente:
text
: Der Text, der in Sprache umgewandelt werden soll.options
: Die für die TTS-Anfrage zu verwendenden Optionen.TTSOptions
Objekt (siehe unten).voice_engine
: Die Sprach-Engine, die für die TTS-Anfrage verwendet werden soll.Play3.0-mini-http
(Standard): Unser neuestes mehrsprachiges Modell, Audio-Streaming über HTTP. (BEACHTEN SIE, dass es sich Play
und nicht PlayHT
handelt, wie bei früheren Sprach-Engines.)Play3.0-mini-ws
: Unser neuestes mehrsprachiges Modell, Audio-Streaming über WebSockets. (BEACHTEN SIE, dass es sich Play
und nicht PlayHT
handelt, wie bei früheren Sprach-Engines.)Play3.0-mini-grpc
: Unser neuestes mehrsprachiges Modell, Audio-Streaming über gRPC. Verwenden Sie diese Sprach-Engine, wenn Sie Play On-Prem verwenden. (BEACHTEN SIE, dass es sich Play
und nicht PlayHT
handelt, wie bei früheren Sprach-Engines.)PlayHT2.0-turbo
: Unser altes, nur auf Englisch verfügbares Modell, das Audio über gRPC streamt. Die TTSOptions
-Klasse wird verwendet, um die Optionen für die TTS-Anfrage anzugeben. Es verfügt über die folgenden Mitglieder mit den folgenden unterstützten Werten:
voice
: Die Stimme, die für die TTS-Anfrage verwendet werden soll. eine Zeichenfolge.format
: Das Format des zurückzugebenden Audios; ein Format
Enum-Wert.FORMAT_MP3
(Standard)FORMAT_WAV
FORMAT_MULAW
FORMAT_FLAC
FORMAT_OGG
FORMAT_RAW
sample_rate
: Die Abtastrate des zurückzugebenden Audios; eine ganze Zahl.quality
: VERALTET (Verwenden Sie die Abtastrate, um die Audioqualität anzupassen)speed
: Die Geschwindigkeit des zurückzugebenden Audios, ein Float (Standard 1,0).seed
: Zufälliger Seed zur Verwendung für die Audiogenerierung, eine Ganzzahl (Standard: Keine, wird zufällig generiert).temperature
: Die Temperatur des Modells, ein Float.top_p
: Das top_p des Modells, ein Float.text_guidance
: Die text_guidance des Modells, ein Float.voice_guidance
Die voice_guidance des Modells, ein Float.style_guidance
(nur Play3.0-mini-http und Play3.0-mini-ws): Die style_guidance des Modells, ein Float.repetition_penalty
: Die repetition_penalty des Modells, ein Float.disable_stabilization
(nur PlayHT2.0-turbo): Deaktiviert den Audiostabilisierungsprozess, ein boolescher Wert (Standard: Falsch).language
(nur Play3.0-mini-http und Play3.0-mini-ws): Die Sprache des zu sprechenden Textes, ein Language
Enumerationswert oder None (Standard Englisch).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
Sie können die bereitgestellte Demo über die Befehlszeile ausführen.
Hinweis: Diese Demo ist von den folgenden Paketen abhängig:
pip install numpy soundfile
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! "
Verwenden Sie zur Ausführung mit dem Asyncio-Client das Flag --async
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --async
Um mit der HTTP-API zu arbeiten, die unser neuestes Play3.0-mini-Modell verwendet, verwenden Sie das Flag --http
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --http
Um mit der WebSockets-API zu arbeiten, die auch unser neuestes Play3.0-mini-Modell verwendet, verwenden Sie das Flag --ws
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --ws
Die HTTP- und WebSockets-APIs können auch mit dem asynchronen Client verwendet werden:
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
Alternativ können Sie die Demo im interaktiven Modus ausführen:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --interactive
Im interaktiven Modus können Sie Textzeilen eingeben, um Audio im laufenden Betrieb zu generieren und abzuspielen. Eine leere Zeile beendet die interaktive Sitzung.
Um mit dem pyht SDK zu beginnen, benötigen Sie Ihren API-Geheimschlüssel und Ihre Benutzer-ID. Befolgen Sie diese Schritte, um sie zu erhalten:
Greifen Sie auf die API-Seite zu : Navigieren Sie zur API-Zugriffsseite.
Generieren Sie Ihren geheimen API-Schlüssel :
Suchen Sie Ihre Benutzer-ID : Suchen und kopieren Sie Ihre Benutzer-ID, die Sie auf derselben Seite im Abschnitt „Benutzer-ID“ finden.
Behandeln Sie Ihren API-Geheimschlüssel vertraulich . Es ist wichtig, es nicht an Dritte weiterzugeben oder in öffentlich zugängliche Code-Repositories aufzunehmen.