Skip to content

Cross-platform voice services: TTS, STT, AI providers, and storage

Notifications You must be signed in to change notification settings

lnflash/voice-services

Repository files navigation

@lnflash/voice-services

TypeScript License: MIT

Cross-platform, framework-agnostic voice services monorepo for TTS, STT, AI chat, and storage.

Features

  • 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

Packages

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)

Quick Start

pnpm add @lnflash/voice-services
import { 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();

Individual Package Usage

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: '...' });

Development

# 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

Requirements

  • Node.js >= 18.0.0
  • pnpm >= 8.0.0

License

MIT

About

Cross-platform voice services: TTS, STT, AI providers, and storage

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published