pyht は、 PlayHT の AI Text-to-Speech API 用の Python SDK です。 PlayHT は、リアルタイムのユースケース向けに会話型音声 AI モデルを構築します。 pyhtを使用すると、テキストを人間のような声で高品質のオーディオ ストリームに簡単に変換できます。
現在、ライブラリはストリーミング テキスト読み上げのみをサポートしています。音声クローン作成など、PlayHT API によって提供される機能の完全なセットについては、PlayHT のドキュメントを参照してください。
aiohttp
filelock
grpc
requests
websockets
pip を使用してpyht SDK をインストールできます。
pip install pyht
Client
インスタンスを作成し、そのtts
メソッドを呼び出すことで、 pyht SDK を使用できます。簡単な例を次に示します。
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 ))
テキストを文字列として一度に送信するのではなく、ストリーミングすることもできます。
for chunk in client . stream_tts_input ( some_iterable_text_stream , options ):
# do something with the audio chunk
print ( type ( chunk ))
クライアントの asyncio バージョンも利用できます。
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 ))
tts
メソッドは次の引数を受け取ります。
text
: 音声に変換されるテキスト。options
: TTS リクエストに使用するオプション。TTSOptions
オブジェクト (以下を参照)。voice_engine
: TTS リクエストに使用する音声エンジン。Play3.0-mini-http
(デフォルト): 最新の多言語モデル、HTTP 経由でオーディオをストリーミングします。 (以前の音声エンジンのようなPlayHT
ではなくPlay
あることに注意してください)Play3.0-mini-ws
: WebSocket 経由でオーディオをストリーミングする最新の多言語モデル。 (以前の音声エンジンのようなPlayHT
ではなくPlay
あることに注意してください)Play3.0-mini-grpc
: 最新の多言語モデル、gRPC 経由でオーディオをストリーミングします。 Play On-Prem を使用している場合は、この音声エンジンを使用してください。 (以前の音声エンジンのようなPlayHT
ではなくPlay
あることに注意してください)PlayHT2.0-turbo
: 従来の英語専用モデルで、gRPC 経由でオーディオをストリーミングします。TTSOptions
クラスは、TTS リクエストのオプションを指定するために使用されます。これには次のメンバーがあり、サポートされている値は次のとおりです。
voice
: TTS リクエストに使用する音声。文字列。format
: 返されるオーディオの形式。 Format
列挙値。FORMAT_MP3
(デフォルト)FORMAT_WAV
FORMAT_MULAW
FORMAT_FLAC
FORMAT_OGG
FORMAT_RAW
sample_rate
: 返されるオーディオのサンプル レート。整数。quality
: 非推奨 (サンプルレートを使用してオーディオ品質を調整します)speed
: 返されるオーディオの速度、浮動小数点数 (デフォルトは 1.0)。seed
: オーディオ生成に使用するランダム シード、整数 (デフォルトはなし、ランダムに生成されます)。temperature
: モデル、浮動小数点の温度。top_p
: モデルの top_p、float。text_guidance
: モデルの text_guidance、float。voice_guidance
モデルの voice_guidance、float。style_guidance
(Play3.0-mini-http および Play3.0-mini-ws のみ): モデルの style_guidance、float。repetition_penalty
: モデルの repetition_penalty (浮動小数点数)。disable_stabilization
(PlayHT2.0-turbo のみ): オーディオ安定化プロセスを無効にします。ブール値 (デフォルトは False)。language
(Play3.0-mini-http および Play3.0-mini-ws のみ): 読み上げられるテキストの言語、 Language
列挙値、または None (デフォルトは英語)。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
提供されたデモはコマンド ラインから実行できます。
注:このデモは次のパッケージに依存しています。
pip install numpy soundfile
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! "
asyncio クライアントで実行するには、 --async
フラグを使用します。
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --async
最新の Play3.0-mini モデルを使用する HTTP API で実行するには、 --http
フラグを使用します。
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --http
最新の Play3.0-mini モデルも使用する WebSockets API で実行するには、 --ws
フラグを使用します。
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --ws
HTTP および WebSockets API は、非同期クライアントでも使用できます。
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
あるいは、対話モードでデモを実行することもできます。
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --interactive
インタラクティブ モードでは、テキスト行を入力して、その場でオーディオを生成および再生できます。空の行は対話型セッションを終了します。
pyht SDK の使用を開始するには、API シークレット キーとユーザー ID が必要です。これらを入手するには、次の手順に従います。
API ページにアクセスする: API アクセス ページに移動します。
API 秘密キーを生成します。
ユーザー ID を見つける: ユーザー ID を見つけてコピーします。これは、同じページの「ユーザー ID」セクションにあります。
API 秘密キーは機密として保管してください。誰とも共有したり、公的にアクセス可能なコード リポジトリに含めたりしないことが重要です。