Cross-platform, framework-agnostic voice services monorepo for TTS, STT, AI chat, and storage.
- Multi-provider support - ElevenLabs, OpenAI Whisper, Claude, Gemini, OpenAI, xAI, and browser-native APIs
- TypeScript strict mode - 14+ compiler flags including
exactOptionalPropertyTypes - Branded types - Type-safe validation for Temperature, Confidence, MaxTokens, and more
- Cross-platform - Works in Node.js and browsers
- Automatic fallback - Graceful degradation between providers
- Zero dependencies on UI frameworks - Use with React, Vue, Svelte, or vanilla JS
| Package | Description |
|---|---|
@lnflash/voice-services |
Unified voice service with TTS, STT, AI, and storage |
@lnflash/voice-services-core |
Core types, interfaces, and branded types |
@lnflash/voice-services-tts |
Text-to-Speech providers (ElevenLabs, Browser Native) |
@lnflash/voice-services-stt |
Speech-to-Text providers (Whisper, Browser Native) |
@lnflash/voice-services-ai |
AI chat providers (Claude, Gemini, OpenAI, xAI) |
@lnflash/voice-services-storage |
Storage adapters (Memory, LocalStorage, IndexedDB) |
pnpm add @lnflash/voice-servicesimport { VoiceService } from '@lnflash/voice-services';
const voice = new VoiceService({
tts: 'elevenlabs',
stt: 'whisper',
ai: 'claude',
});
await voice.initialize({
tts: { apiKey: process.env.ELEVENLABS_API_KEY },
stt: { apiKey: process.env.OPENAI_API_KEY },
ai: { apiKey: process.env.ANTHROPIC_API_KEY },
});
// Text to speech
const audio = await voice.speak('Hello, world!');
// Speech to text
const transcription = await voice.transcribe(audioData);
// AI chat
const response = await voice.chat('What is the weather like?');
await voice.dispose();For more control, use individual packages:
import { TTSFactory } from '@lnflash/voice-services-tts';
import { AIFactory } from '@lnflash/voice-services-ai';
const tts = new TTSFactory().create('elevenlabs', { apiKey: '...' });
const ai = new AIFactory().create('claude', { apiKey: '...' });# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm test
# Run tests with coverage
pnpm test:coverage
# Type check, lint, and build
pnpm verify- Node.js >= 18.0.0
- pnpm >= 8.0.0
MIT