Skip to main content

Official Python SDK for Lokutor - Real-time AI voice and TTS

Project description

Lokutor Python SDK

Lokutor Hero

Python Version License PyPI Version

The official Python SDK for Lokutor - High-performance, real-time AI voice and TTS. Seamlessly transcribe speech, generate intelligent responses, and synthesize natural speech—all through a unified, production-grade interface.

Features

  • 🎤 Real-time Voice Input - Automatic microphone recording with low-latency voice activity detection
  • 🔊 Natural Speech Output - High-quality text-to-speech synthesis (44.1kHz)
  • 🧠 Intelligent Conversations - LLM-powered responses with context awareness
  • Streaming TTS - Ultra-fast synthesis with raw binary WebSocket streaming
  • 🛡️ Production-Ready - Connects directly to Lokutor's secure cloud infrastructure
  • 📚 Simple API - Go from code to conversation in 3 lines

Installation

pip install lokutor

Or from source (for development):

git clone https://github.com/lokutor-ai/lokutor-sdk
cd sdk/python
pip install -e .

Requires PyAudio and websocket-client.

Quick Start

Voice Conversation (Start Speaking!)

from lokutor import VoiceAgentClient
from lokutor.config import VoiceStyle, Language

client = VoiceAgentClient(api_key="your-api-key")
client.start_conversation()

Standalone Text-to-Speech

from lokutor import TTSClient, VoiceStyle

client = TTSClient(api_key="your-api-key")
client.synthesize(
    text="Hello world, this is a test of Lokutor streaming TTS.",
    voice=VoiceStyle.F1,
    play=True
)

Core APIs

1. VoiceAgentClient

Full conversational interface that handles VAD, STT, LLM, and TTS orchestration.

client = VoiceAgentClient(
    api_key="your-key",
    prompt="You are a helpful customer service agent",
    voice=VoiceStyle.F2,
    language=Language.ENGLISH
)
client.start_conversation()

Callbacks:

  • on_transcription(text): Called when your speech is transcribed.
  • on_response(text): Called when the agent's text response is ready.
  • on_error(error): Called when a connection or server error occurs.

2. TTSClient

For converting text to high-quality streaming audio.

client = TTSClient(api_key="your-key")
client.synthesize(
    text="Welcome to our platform",
    voice=VoiceStyle.M2,
    play=True,
    block=True
)

Configuration

Voice Styles

Female Voices Male Voices
VoiceStyle.F1 VoiceStyle.M1
VoiceStyle.F2 VoiceStyle.M2
VoiceStyle.F3 VoiceStyle.M3
VoiceStyle.F4 VoiceStyle.M4
VoiceStyle.F5 VoiceStyle.M5

Supported Languages

  • Language.ENGLISH
  • Language.SPANISH
  • Language.FRENCH
  • Language.PORTUGUESE
  • Language.KOREAN

Usage Examples

Full Conversation with Callbacks

from lokutor import VoiceAgentClient, VoiceStyle

def handle_user_text(text):
    print(f"User said: {text}")

def handle_agent_text(text):
    print(f"Agent replied: {text}")

client = VoiceAgentClient(
    api_key="demo",
    prompt="You are a friendly pirate assistant",
    on_transcription=handle_user_text,
    on_response=handle_agent_text
)

client.start_conversation()

Scripted TTS with Visemes

from lokutor import TTSClient

def handle_visemes(visemes):
    # Perfect for syncing 3D character lip-sync
    print(f"Syncing lips: {visemes}")

client = TTSClient(api_key="demo")
client.synthesize(
    text="Look at my lips moving!",
    visemes=True,
    on_visemes=handle_visemes
)

Troubleshooting

Connection Issues

The SDK connects to wss://api.lokutor.com. Ensure you have an active internet connection and a valid API key. If you encounter authentication errors, double-check your credentials in the Lokutor Dashboard.

PyAudio Installation

If you encounter issues installing pyaudio, you may need to install portaudio first:

  • macOS: brew install portaudio
  • Linux: sudo apt-get install python3-pyaudio or sudo apt-get install portaudio19-dev

License

MIT License

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

lokutor-1.1.30.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

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

lokutor-1.1.30-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file lokutor-1.1.30.tar.gz.

File metadata

  • Download URL: lokutor-1.1.30.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for lokutor-1.1.30.tar.gz
Algorithm Hash digest
SHA256 77fe690f415fbc4c367b894bb12457512b8453fa0484a5f49209d414cc1c5f44
MD5 9cb5f1f11f57a1441fbed73e1bee935a
BLAKE2b-256 330100bc7e37869700740aa4008f1c11dd0652aef9c614379a6dbf52828bf124

See more details on using hashes here.

File details

Details for the file lokutor-1.1.30-py3-none-any.whl.

File metadata

  • Download URL: lokutor-1.1.30-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for lokutor-1.1.30-py3-none-any.whl
Algorithm Hash digest
SHA256 b16ec7fb7ee86530a27304585f5f363161fa36314f1b65601f81aa9a7bd7971a
MD5 405883b6bce226c221e2ed1203634a87
BLAKE2b-256 08fc45bdd91e1207a73548f6ed22a68f47e27d9befa673344c88d5db7e8ddd19

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