pyht — это Python SDK для AI-интерфейса преобразования текста в речь PlayHT. PlayHT создает модели разговорного голосового искусственного интеллекта для сценариев использования в реальном времени. С помощью pyht вы можете легко конвертировать текст в высококачественные аудиопотоки с человеческими голосами.
В настоящее время библиотека поддерживает только потоковую передачу текста в речь. Полный набор функций, предоставляемых PlayHT API, таких как клонирование голоса, см. в документации PlayHT.
aiohttp
filelock
grpc
requests
websockets
Вы можете установить pyht SDK с помощью pip:
pip install pyht
Вы можете использовать pyht SDK, создав экземпляр Client
и вызвав его метод tts
. Вот простой пример:
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 ))
Также доступна асинхронная версия клиента:
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. (ОБРАТИТЕ ВНИМАНИЕ, что это Play
, а не PlayHT
как предыдущие голосовые движки)Play3.0-mini-ws
: наша новейшая многоязычная модель, обеспечивающая потоковую передачу звука через WebSockets. (ОБРАТИТЕ ВНИМАНИЕ, что это Play
, а не PlayHT
как предыдущие голосовые движки)Play3.0-mini-grpc
: наша новейшая многоязычная модель, обеспечивающая потоковую передачу звука через gRPC. Используйте этот голосовой движок, если вы используете Play On-Prem. (ОБРАТИТЕ ВНИМАНИЕ, что это Play
, а не PlayHT
как предыдущие голосовые движки)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 модели, число с плавающей запятой.text_guidance
: text_guidance модели, число с плавающей запятой.voice_guidance
Voice_guidance модели, плавающее значение.style_guidance
(только для Play3.0-mini-http и Play3.0-mini-ws): style_guidance модели, число с плавающей запятой.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
Для работы с HTTP API, который использует нашу последнюю модель Play3.0-mini, используйте флаг --http
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --http
Для работы с API WebSockets, который также использует нашу последнюю модель Play3.0-mini, используйте флаг --ws
:
python demo/main.py --user $PLAY_HT_USER_ID --key $PLAY_HT_API_KEY --text " Hello from Play! " --ws
API HTTP и WebSockets также можно использовать с асинхронным клиентом:
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 и идентификатор пользователя. Чтобы получить их, выполните следующие действия:
Доступ к странице API : перейдите на страницу доступа к API.
Создайте секретный ключ API :
Найдите свой идентификатор пользователя : найдите и скопируйте свой идентификатор пользователя, который можно найти на той же странице в разделе «Идентификатор пользователя».
Сохраняйте конфиденциальность вашего секретного ключа API . Крайне важно не делиться им с кем-либо и не включать его в общедоступные репозитории кода.