Akshay Kambli

Open Source · Developer Tools

Multi-Voice SDK

A published npm package giving one typed API to six TTS and STT providers — OpenAI, Gemini, Deepgram, Groq PlayAI, Cartesia and AssemblyAI — with audio merging built in.

Multi-Voice SDK

Organisation

Published on npm

Role

Author and maintainer

Timeline

2025

Stack

Node.js ESM TypeScript definitions OpenAI Google GenAI Deepgram Cartesia AssemblyAI ffmpeg
View repository

Overview

Every speech provider has its own SDK, its own argument names and its own idea of what a voice is. Multi-Voice SDK collapses that into three functions — tts, stt and merge — and lets the provider be a string you change. It is published on npm as multi-voice-sdk and is the library I reach for whenever a project needs audio.

Key Features

  • Six TTS providers behind one signature — Gemini, Deepgram, OpenAI, Groq PlayAI and Cartesia, selected by a provider field, with per-provider model, voice and prompt options passed through rather than flattened away.
  • Speech-to-text across Deepgram and AssemblyAI, accepting either a local file path or a remote URL for the same call, and writing structured transcription output.
  • Audio merging over ffmpeg, so multi-speaker or multi-chunk output assembles into a single deliverable file without a separate tool.
  • Hand-written TypeScript definitions shipped alongside the ESM build, with an exports map pointing at both, so consumers get autocomplete on provider names and options rather than a bare any.
  • Published and versioned on npm at v1.1.1 under an ISC licence, with a files allowlist so only the runtime surface gets shipped.

Impact

The SDK is the piece that makes voice work cheap to start. Swapping OpenAI for Cartesia to compare latency, or Deepgram for AssemblyAI to compare transcription accuracy, is a one-word change instead of a rewrite — which is exactly how the voice pipelines in CrackIt and Wave got tuned.

← Back to work