@lokutortts/sdk
v1.0.9
Published
Official Lokutor JavaScript SDK for TTS and Voice Chat
Downloads
17
Readme
Lokutor JavaScript SDK
The official JavaScript/TypeScript SDK for interacting with the Lokutor API. Optimized for ultra-low latency text-to-speech and real-time voice chat.
Features
- Ultra-Low Latency: Built-in jitter buffering and scheduling for smooth audio playback.
- Voice Chat: High-level API for bidirectional voice communication with automatic interruption handling.
- Viseme Support: Synchronize 3D avatar animations with real-time viseme events.
- Cross-Environment: Works in modern Browsers and Node.js.
- Type Safe: First-class TypeScript support.
Installation
npm install @lokutortts/sdkQuick Start
Initialize the Client
import { LokutorClient } from '@lokutortts/sdk';
const lokutor = new LokutorClient({
apiKey: 'your_api_key'
});Text-to-Speech (TTS)
// Standard Synthesis
const { audio, visemes } = await lokutor.tts.synthesize("Hello world", {
voiceId: 'F1',
quality: 'high'
});
// Stream Synthesis (NDJSON)
for await (const chunk of lokutor.tts.stream("Hello world", { includeVisemes: true })) {
console.log("Received chunk with visemes:", chunk.visemes);
}Voice Chat (Web/Browser Only)
const session = lokutor.voiceChat.createSession({
voiceId: 'M1',
quality: 'ultra_fast',
includeVisemes: true
});
session.on('connected', () => console.log("Connected to Lokutor!"));
session.on('agentSpeaking', () => console.log("Agent started speaking"));
session.on('viseme', (v) => animateAvatar(v.id));
session.on('interrupted', () => stopAnimations());
await session.start();
await session.startTranscription(); // Starts mic and sending audio to LokutorAudio Utilities
The SDK includes LokutorPlayer and LokutorRecorder to handle the heavy lifting of Web Audio API.
import { LokutorPlayer, LokutorRecorder } from '@lokutor/sdk';
const player = new LokutorPlayer();
const recorder = new LokutorRecorder();
// Player handles PCM chunks and jitter buffering automatically
await player.playChunk(pcmData, 22050);