Skip to main content

Python SDK for the Tsetsen Text-to-Speech API

Project description

TsetsenAI - Mongolian TTS Python SDK

A powerful, user-friendly Python client for the Tsetsen Mongolian Text-to-Speech API, enabling developers to easily integrate high-quality Mongolian language text-to-speech capabilities into their applications.

Монгол хэл дээрх гарын авлага доор байгаа болно.

Features

  • Mongolian Language Support: High-quality Mongolian text-to-speech synthesis
  • Simple API: Clean, intuitive interfaces for all API operations
  • Strongly Typed: Type annotations throughout for better IDE support
  • Robust Error Handling: Detailed error messages and proper exception hierarchy
  • Automatic Retries: Built-in retry mechanism for transient failures
  • Async Support: Asynchronous methods for concurrent operations
  • Comprehensive Documentation: Full API documentation with examples

Note: Streaming functionality is not yet supported but will be added very soon.

Installation

pip install tsetsen

Prerequisites

Quick Start

Initialize the Client

from tsetsen import Client

# Initialize with API key
client = Client(api_key="your-api-key")

# Or set the TSETSEN_API_KEY environment variable and initialize without arguments
# client = Client()

List Available Voices

# Get all available voices (specify version beta-v0.1 or beta-v0.2)
voices = client.list_voices(version="beta-v0.1")

# Print voice details
for voice in voices.voices:
    print(f"ID: {voice.id}, Name: {voice.name}, Gender: {voice.gender.name}")

Generate Speech

# Request speech generation with Mongolian text
response = client.generate_speech(
    text="Сайн байна уу? Энэ бол Монгол хэл дээрх жишээ текст юм.",
    voice_id="voice-id",  # Use an ID from list_voices
    version="beta-v0.1"   # Specify version beta-v0.1 or beta-v0.2
)

# Get the request ID for status checking
request_id = response.request_id
print(f"Request ID: {request_id}")

Check Status and Get Audio URL

# Check status immediately
status = client.check_status(request_id=request_id)
print(f"Status: {status.status.name}")

# Or wait for completion
final_status = client.wait_for_completion(
    request_id=request_id,
    timeout=60,  # Optional timeout in seconds
    poll_interval=1.0  # Time between status checks in seconds
)

if final_status.status.name == "COMPLETED":
    print(f"Audio URL: {final_status.audio_url}")
else:
    print(f"Error: {final_status.error_message}")

# View metrics
if final_status.metrics:
    print(f"Audio length: {final_status.metrics.audio_length} seconds")
    print(f"Credits used: {final_status.metrics.credits_used}")

Check User Balance

# Get user credit balance
balance = client.get_user_balance()
print(f"Available credits: {balance.credits}")

Proper Resource Cleanup

# Using a context manager
with Client(api_key="your-api-key") as client:
    voices = client.list_voices(version="beta-v0.1")
    # Use client...

# Or manually close
client = Client(api_key="your-api-key")
try:
    voices = client.list_voices(version="beta-v0.1")
    # Use client...
finally:
    client.close()

Error Handling

The SDK uses a rich exception hierarchy for proper error handling:

from tsetsen import Client, ResourceNotFoundError, AuthenticationError

client = Client(api_key="your-api-key")

try:
    status = client.check_status(request_id="non-existent-id")
except ResourceNotFoundError as e:
    print(f"Request not found: {e}")
except AuthenticationError as e:
    print(f"Authentication error: {e}")
except Exception as e:
    print(f"Other error: {e}")

Advanced Usage

Custom Timeouts and Retries

client = Client(
    api_key="your-api-key",
    timeout=60.0,  # Timeout in seconds
    secure=True,   # Use secure channel (TLS)
    max_retries=5  # Maximum number of retries
)

Testing Your Setup

Here's a simple test script to verify your setup:

from tsetsen import Client

def test_connection():
    # Initialize client
    client = Client(api_key="your-api-key")
    
    try:
        # Test voice listing
        voices = client.list_voices(version="beta-v0.1")
        print(f"Successfully connected! Found {len(voices.voices)} voices.")
        
        # Test balance check
        balance = client.get_user_balance()
        print(f"Your balance: {balance.credits} credits")
        
        return True
    except Exception as e:
        print(f"Test failed: {e}")
        return False
    finally:
        client.close()

if __name__ == "__main__":
    test_connection()

Environment Variables

You can set this environment variable for configuration:

  • TSETSEN_API_KEY: Your API key

Terms of Use

This SDK is provided for use with the Tsetsen AI text-to-speech service according to the terms and conditions specified in your service agreement. All rights reserved.


TsetsenAI - Монгол Хэлний TTS Python SDK

Цэцэн Монгол хэлний текст уншуулах API-д зориулсан хэрэглэхэд хялбар Python клиент бөгөөд хөгжүүлэгчид өөрсдийн аппликейшнд өндөр чанартай Монгол хэлний текст-аудио хөрвүүлэх боломжийг хялбархан холбох боломжийг олгоно.

Онцлогууд

  • Монгол хэлний дэмжлэг: Өндөр чанартай Монгол хэлний текст-аудио хөрвүүлэлт
  • Энгийн API: Бүх API үйлдлүүдэд зориулсан цэвэр, ойлгомжтой интерфейсүүд
  • Хүчтэй төрөлжүүлэлт: IDE дэмжлэгийг сайжруулахын тулд бүх кодод төрлийн тодорхойлолтууд
  • Найдвартай алдааны удирдлага: Дэлгэрэнгүй алдааны мессежүүд ба зөв бүтэцтэй алдааны ангилал
  • Автомат дахин оролдлогууд: Түр зуурын алдаануудад зориулсан дахин оролдох механизм
  • Асинхрон дэмжлэг: Зэрэгцээ үйлдлүүдэд зориулсан асинхрон методууд
  • Иж бүрэн баримтжуулалт: Жишээнүүдтэй бүрэн API баримтжуулалт

Анхааруулга: Стриминг функц одоогоор дэмжигдээгүй байгаа боловч, удахгүй нэмэгдэх болно.

Суулгах

pip install tsetsen

Шаардлагууд

  • Python 3.8 буюу түүнээс дээш
  • Цэцэн API түлхүүр (developer.tsetsen.ai дээр бүртгүүлнэ)

Эхлэх

Клиентийг эхлүүлэх

from tsetsen import Client

# API түлхүүрээр эхлүүлэх
client = Client(api_key="таны-api-түлхүүр")

# Эсвэл TSETSEN_API_KEY орчны хувьсагчийг тохируулаад аргументгүйгээр эхлүүлэх
# client = Client()

Байгаа хоолойнуудыг харах

# Бүх байгаа хоолойнуудыг авах (beta-v0.1 эсвэл beta-v0.2 хувилбарыг зааж өгөх)
voices = client.list_voices(version="beta-v0.1")

# Хоолойн дэлгэрэнгүй мэдээллийг харах
for voice in voices.voices:
    print(f"ID: {voice.id}, Нэр: {voice.name}, Хүйс: {voice.gender.name}")

Яриа хөрвүүлэх

# Монгол хэл дээрх яриа үүсгэх хүсэлт
response = client.generate_speech(
    text="Сайн байна уу? Энэ бол Монгол хэл дээрх жишээ текст юм.",
    voice_id="хоолой-id",  # list_voices-оос авсан ID ашиглах
    version="beta-v0.1"     # beta-v0.1 эсвэл beta-v0.2 хувилбарыг заах
)

# Статус шалгахад зориулж хүсэлтийн ID-г авах
request_id = response.request_id
print(f"Хүсэлтийн ID: {request_id}")

Статус шалгаж аудио URL авах

# Статусыг шууд шалгах
status = client.check_status(request_id=request_id)
print(f"Статус: {status.status.name}")

# Эсвэл дуусахыг хүлээх
final_status = client.wait_for_completion(
    request_id=request_id,
    timeout=60,  # Хүлээх хугацаа (секундээр)
    poll_interval=1.0  # Статус шалгах хоорондын хугацаа (секундээр)
)

if final_status.status.name == "COMPLETED":
    print(f"Аудио URL: {final_status.audio_url}")
else:
    print(f"Алдаа: {final_status.error_message}")

# Метрик үзэх
if final_status.metrics:
    print(f"Аудионы урт: {final_status.metrics.audio_length} секунд")
    print(f"Ашигласан кредит: {final_status.metrics.credits_used}")

Хэрэглэгчийн балансыг шалгах

# Хэрэглэгчийн кредит үлдэгдлийг шалгах
balance = client.get_user_balance()
print(f"Үлдэгдэл кредит: {balance.credits}")

Дуусгах

# Context менежер ашиглах
with Client(api_key="таны-api-түлхүүр") as client:
    voices = client.list_voices(version="beta-v0.1")
    # Клиент ашиглах...

# Эсвэл өөрөө хаах
client = Client(api_key="таны-api-түлхүүр")
try:
    voices = client.list_voices(version="beta-v0.1")
    # Клиент ашиглах...
finally:
    client.close()

Алдаа Зохьцуулалт

SDK нь зөв алдааны зохьцуулалтад зориулж дараах алдааны ангиллыг олгодог:

from tsetsen import Client, ResourceNotFoundError, AuthenticationError

client = Client(api_key="таны-api-түлхүүр")

try:
    status = client.check_status(request_id="байхгүй-id")
except ResourceNotFoundError as e:
    print(f"Хүсэлт олдсонгүй: {e}")
except AuthenticationError as e:
    print(f"Нэвтрэлтийн алдаа: {e}")
except Exception as e:
    print(f"Бусад алдаа: {e}")

Нэмэлт хэрэглээ

Тусгай хүлээлт ба дахин оролдлогууд

client = Client(
    api_key="таны-api-түлхүүр",
    timeout=60.0,  # Хүлээх хугацаа (секундээр)
    secure=True,   # Аюулгүй сувгийг ашиглах (TLS)
    max_retries=5  # Дахин оролдлогын дээд тоо
)

Тохиргоогоо тестлэх

Энд тохиргоогоо шалгах энгийн тест скрипт байна:

from tsetsen import Client

def test_connection():
    # Клиент эхлүүлэх
    client = Client(api_key="таны-api-түлхүүр")
    
    try:
        # Хоолой жагсаалтыг тестлэх
        voices = client.list_voices(version="beta-v0.1")
        print(f"Амжилттай холбогдлоо! {len(voices.voices)} хоолой олдлоо.")
        
        # Баланс шалгалтыг тестлэх
        balance = client.get_user_balance()
        print(f"Таны баланс: {balance.credits} кредит")
        
        return True
    except Exception as e:
        print(f"Тест амжилтгүй: {e}")
        return False
    finally:
        client.close()

if __name__ == "__main__":
    test_connection()

Орчны хувьсагчууд

Тохиргоонд дараах орчны хувьсагчийг ашиглаж болно:

  • TSETSEN_API_KEY: Таны API түлхүүр

Ашиглалтын нөхцөл

Энэхүү SDK нь таны үйлчилгээний гэрээнд заасан нөхцөл, болзолын дагуу Цэцэн AI текст-хэл хөрвүүлэх үйлчилгээтэй ашиглахад зориулагдсан болно. Бүх эрх хамгаалагдсан.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tsetsen-0.1.0.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tsetsen-0.1.0-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file tsetsen-0.1.0.tar.gz.

File metadata

  • Download URL: tsetsen-0.1.0.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.14

File hashes

Hashes for tsetsen-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6abc9f1ce893e51d51b67d96e93cbd26a0ea3d48ce4e2ce59db2b8c63d0073df
MD5 c3b93361cb51e24ae849b6f9455a502f
BLAKE2b-256 32af8ce817fab664ef0baddbd6ab9f301a4442958fc8c6dc028b3788c4dec29b

See more details on using hashes here.

File details

Details for the file tsetsen-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tsetsen-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.14

File hashes

Hashes for tsetsen-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f1cc402eda26ad572d066a44f84f5f389e9cb22a71ecc6dde5157e66ad57254
MD5 0eafa4a70ac0f9d037e6f3c76b2bf9b7
BLAKE2b-256 bcd6dc65c96355a5616b4e08a0e4bacf104ba5fdc0c02192f59cb6d38b507b3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page