Official Python SDK for Lokutor - Real-time AI voice and TTS
Project description
Lokutor Python SDK
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.ENGLISHLanguage.SPANISHLanguage.FRENCHLanguage.PORTUGUESELanguage.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-pyaudioorsudo apt-get install portaudio19-dev
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lokutor-1.1.28.tar.gz.
File metadata
- Download URL: lokutor-1.1.28.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a5486a1b166682150605d84e3b98c935157d05b19c6f40c0d8180c15e897fab
|
|
| MD5 |
6e521555f20ba9f549509b50263ddc6b
|
|
| BLAKE2b-256 |
19ec720236943ebff4d7682d78543c29863469265f2c53a816f1afe9e7094565
|
File details
Details for the file lokutor-1.1.28-py3-none-any.whl.
File metadata
- Download URL: lokutor-1.1.28-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0467ce2f0333a2dc5181c5a20fc38b127584a714fcd4574b10c9ee2edb26da53
|
|
| MD5 |
6830c29f9009cfc857576425ed7a41ab
|
|
| BLAKE2b-256 |
c3b80d6a30ae38452f21e22575678e0e2d8e9caf954066787dd879afcb461364
|