pyht adalah SDK Python untuk AI Text-to-Speech API PlayHT. PlayHT membuat model AI suara percakapan untuk kasus penggunaan waktu nyata. Dengan pyht , Anda dapat dengan mudah mengonversi teks menjadi aliran audio berkualitas tinggi dengan suara mirip manusia.
Saat ini perpustakaan hanya mendukung streaming text-to-speech. Untuk serangkaian fungsi lengkap yang disediakan oleh API PlayHT seperti Kloning Suara, lihat dokumen PlayHT
aiohttp
filelock
grpc
requests
websockets
Anda dapat menginstal pyht SDK menggunakan pip:
pip install pyht
Anda dapat menggunakan pyht SDK dengan membuat instance Client
dan memanggil metode tts
-nya. Berikut ini contoh sederhananya:
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 ))
Dimungkinkan juga untuk melakukan streaming teks alih-alih mengirimkannya sebagai string sekaligus:
for chunk in client . stream_tts_input ( some_iterable_text_stream , options ):
# do something with the audio chunk
print ( type ( chunk ))
Versi klien asyncio juga tersedia:
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 ))
Metode tts
mengambil argumen berikut:
text
: Teks yang akan diubah menjadi ucapan.options
: Opsi yang digunakan untuk permintaan TTS.TTSOptions
(lihat di bawah).voice_engine
: Mesin suara yang digunakan untuk permintaan TTS.Play3.0-mini-http
(default): Model multibahasa terbaru kami, streaming audio melalui HTTP. (CATATAN bahwa ini Play
bukan PlayHT
seperti mesin suara sebelumnya)Play3.0-mini-ws
: Model multibahasa terbaru kami, streaming audio melalui WebSockets. (CATATAN bahwa ini Play
bukan PlayHT
seperti mesin suara sebelumnya)Play3.0-mini-grpc
: Model multibahasa terbaru kami, streaming audio melalui gRPC. Gunakan mesin suara ini jika Anda menggunakan Play On-Prem. (CATATAN bahwa ini Play
bukan PlayHT
seperti mesin suara sebelumnya)PlayHT2.0-turbo
: Model lama kami yang hanya berbahasa Inggris, mengalirkan audio melalui gRPC. Kelas TTSOptions
digunakan untuk menentukan opsi untuk permintaan TTS. Ia memiliki anggota berikut, dengan nilai-nilai yang didukung berikut:
voice
: Suara yang digunakan untuk permintaan TTS; sebuah string.format
: Format audio yang akan dikembalikan; a Format
nilai enum.FORMAT_MP3
(bawaan)FORMAT_WAV
FORMAT_MULAW
FORMAT_FLAC
FORMAT_OGG
FORMAT_RAW
sample_rate
: Kecepatan sampel audio yang akan dikembalikan; bilangan bulat.quality
: TIDAK DIGUNAKAN LAGI (gunakan laju sampel untuk menyesuaikan kualitas audio)speed
: Kecepatan audio yang akan dikembalikan, float (default 1.0).seed
: Seed acak yang akan digunakan untuk pembuatan audio, bilangan bulat (default Tidak Ada, akan dibuat secara acak).temperature
: Suhu model, pelampung.top_p
: Top_p model, pelampung.text_guidance
: text_guidance model, sebuah float.voice_guidance
Panduan_suara model, pelampung.style_guidance
(khusus Play3.0-mini-http dan Play3.0-mini-ws): style_guidance model, float.repetition_penalty
: repetisi_penalti model, float.disable_stabilization
(hanya PlayHT2.0-turbo): Menonaktifkan proses stabilisasi audio, boolean (default Salah).language
(khusus Play3.0-mini-http dan Play3.0-mini-ws): Bahasa teks yang akan diucapkan, nilai enum Language
atau Tidak Ada (default Bahasa Inggris).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
Anda dapat menjalankan demo yang disediakan dari baris perintah.
Catatan: Demo ini bergantung pada paket berikut:
pip install numpy soundfile
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! "
Untuk menjalankan dengan klien asyncio, gunakan flag --async
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --async
Untuk menjalankan dengan API HTTP, yang menggunakan model Play3.0-mini terbaru kami, gunakan tanda --http
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --http
Untuk menjalankan dengan WebSockets API, yang juga menggunakan model Play3.0-mini terbaru kami, gunakan flag --ws
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --ws
API HTTP dan WebSockets juga dapat digunakan dengan klien async:
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
Alternatifnya, Anda dapat menjalankan demo dalam mode interaktif:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --interactive
Dalam mode interaktif, Anda dapat memasukkan baris teks untuk menghasilkan dan memutar audio dengan cepat. Baris kosong akan keluar dari sesi interaktif.
Untuk memulai dengan pyht SDK, Anda memerlukan Kunci Rahasia API dan ID Pengguna Anda. Ikuti langkah-langkah berikut untuk mendapatkannya:
Akses Halaman API : Navigasikan ke halaman Akses API.
Hasilkan Kunci Rahasia API Anda :
Temukan ID Pengguna Anda : Temukan dan salin ID Pengguna Anda, yang dapat ditemukan di halaman yang sama di bawah bagian "ID Pengguna".
Jaga kerahasiaan Kunci Rahasia API Anda . Sangat penting untuk tidak membaginya dengan siapa pun atau memasukkannya ke dalam repositori kode yang dapat diakses publik.