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
: 모델의 반복_페널티, 부동소수점입니다.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 비밀 키를 기밀로 유지하세요 . 다른 사람과 공유하지 않거나 공개적으로 액세스 가능한 코드 저장소에 포함하지 않는 것이 중요합니다.