{"id":29014018,"url":"https://github.com/ark018/multi-voice-sdk","last_synced_at":"2026-05-11T07:34:13.639Z","repository":{"id":300390640,"uuid":"997333710","full_name":"ARK018/multi-voice-sdk","owner":"ARK018","description":"A universal Text-to-Speech (TTS) SDK . Easily generate and manage audio content with a unified API.","archived":false,"fork":false,"pushed_at":"2025-06-21T11:51:35.000Z","size":46,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-21T12:31:56.377Z","etag":null,"topics":["deepgram","gemini","npm-package","openai","tts","tts-api"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/multi-voice-sdk","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ARK018.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-06T10:55:11.000Z","updated_at":"2025-06-21T11:51:38.000Z","dependencies_parsed_at":"2025-06-21T12:42:47.307Z","dependency_job_id":null,"html_url":"https://github.com/ARK018/multi-voice-sdk","commit_stats":null,"previous_names":["ark018/multi-voice-sdk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ARK018/multi-voice-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARK018%2Fmulti-voice-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARK018%2Fmulti-voice-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARK018%2Fmulti-voice-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARK018%2Fmulti-voice-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ARK018","download_url":"https://codeload.github.com/ARK018/multi-voice-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARK018%2Fmulti-voice-sdk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266424025,"owners_count":23926124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deepgram","gemini","npm-package","openai","tts","tts-api"],"created_at":"2025-06-25T20:12:36.804Z","updated_at":"2026-05-11T07:34:13.565Z","avatar_url":"https://github.com/ARK018.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi-Voice SDK\n\nA universal Text-to-Speech (TTS) and Speech-to-Text (STT) SDK that supports multiple providers including Google Gemini, Deepgram, OpenAI, Groq PlayAI, Cartesia, and AssemblyAI. Easily generate audio content, transcribe speech, and manage audio files with a unified API.\n\n## Features\n\n- 🎵 **Multi-Provider TTS**: Gemini, Deepgram, OpenAI, Groq PlayAI, and Cartesia TTS\n- 🎙️ **Speech-to-Text**: Deepgram and AssemblyAI STT with advanced features\n- 🔧 **Audio Merging**: Combine multiple audio files seamlessly\n- 🎯 **Simple API**: Easy-to-use functions with consistent interface\n- 📦 **ESM Ready**: Modern ES modules support\n\n## Installation\n\n```bash\nnpm install multi-voice-sdk\n```\n\n## Quick Start\n\n```javascript\nimport { tts, stt, merge } from \"multi-voice-sdk\";\n\n// Generate speech with OpenAI\ntts({\n  provider: \"openai\",\n  apiKey: \"your-api-key\",\n  text: \"Hello, world!\",\n  voice: \"nova\",\n  outputFile: \"output.mp3\",\n});\n\n// Transcribe audio with Deepgram\nstt({\n  apiKey: \"your-deepgram-key\",\n  audioFile: \"https://example.com/audio.wav\", // Can be URL or local file\n});\n\n// Merge multiple audio files\nmerge({\n  inputFiles: [\"file1.mp3\", \"file2.mp3\"],\n  outputFile: \"combined.mp3\",\n});\n```\n\n## API Reference\n\n### `tts(options)`\n\nGenerate speech from text using various TTS providers.\n\n#### Parameters\n\n| Parameter    | Type     | Required | Description                                                                   |\n| ------------ | -------- | -------- | ----------------------------------------------------------------------------- |\n| `provider`   | `string` | ✅       | TTS provider: `\"gemini\"`, `\"deepgram\"`, `\"openai\"`, `\"groq\"`, or `\"cartesia\"` |\n| `apiKey`     | `string` | ✅       | API key for the chosen provider                                               |\n| `text`       | `string` | ✅       | Text to convert to speech                                                     |\n| `voice`      | `string` | ✅       | Voice identifier (provider-specific, for Cartesia use voice ID)               |\n| `outputFile` | `string` | optional | Output file path (default: `\"output.mp3\"`)                                    |\n| `model`      | `string` | optional | Model to use (provider-specific)                                              |\n| `prompt`     | `string` | optional | Additional instructions for speech generation                                 |\n\n#### Examples\n\n**OpenAI TTS**\n\n```javascript\ntts({\n  provider: \"openai\",\n  apiKey: process.env.OPENAI_API_KEY,\n  model: \"gpt-4o-mini-tts\",\n  text: \"Hello from OpenAI!\",\n  voice: \"nova\",\n  prompt: \"Speak in a cheerful tone\",\n  outputFile: \"openai_output.mp3\",\n});\n```\n\n**Google Gemini TTS**\n\n```javascript\ntts({\n  provider: \"gemini\",\n  apiKey: process.env.GEMINI_API_KEY,\n  text: \"Hello from Gemini!\",\n  voice: \"iapetus\",\n  prompt: \"In a pleasant and calm tone\",\n  outputFile: \"gemini_output.mp3\",\n});\n```\n\n**Deepgram TTS**\n\n```javascript\ntts({\n  provider: \"deepgram\",\n  apiKey: process.env.DEEPGRAM_API_KEY,\n  text: \"Hello from Deepgram!\",\n  voice: \"aura-2-luna-en\",\n  outputFile: \"deepgram_output.mp3\",\n});\n```\n\n**Groq PlayAI TTS**\n\n```javascript\ntts({\n  provider: \"groq\",\n  apiKey: process.env.GROQ_API_KEY,\n  text: \"Hello from Groq PlayAI!\",\n  voice: \"Arista-PlayAI\",\n  outputFile: \"groq_output.wav\",\n});\n```\n\n**Cartesia TTS**\n\n```javascript\ntts({\n  provider: \"cartesia\",\n  apiKey: process.env.CARTESIA_API_KEY,\n  text: \"Hello from Cartesia!\",\n  voice: \"694f9389-aac1-45b6-b726-9d9369183238\", // Voice ID\n  outputFile: \"cartesia_output.mp3\",\n});\n```\n\n### `stt(options)`\n\nTranscribe audio to text using Speech-to-Text providers.\n\n#### Parameters\n\n| Parameter         | Type      | Required | Description                                                               |\n| ----------------- | --------- | -------- | ------------------------------------------------------------------------- |\n| `provider`        | `string`  | ✅       | STT provider: `\"deepgram\"` or `\"assemblyai\"`                              |\n| `apiKey`          | `string`  | ✅       | API key for the chosen provider                                           |\n| `audioFile`       | `string`  | ✅       | Path to local audio file or URL of remote audio file to transcribe        |\n| `outputFile`      | `string`  | optional | Output file path for results (default: `\"transcription.json\"`)            |\n| `model`           | `string`  | optional | Model to use (default: `\"nova-3\"`)                                        |\n| `smartFormat`     | `boolean` | optional | Enable smart formatting (default: `true`)                                 |\n| `detect_language` | `boolean` | optional | Automatic language detection (default: `true`)                            |\n| `punctuate`       | `boolean` | optional | Enable punctuation (default: `true`)                                      |\n| `diarize`         | `boolean` | optional | Enable speaker diarization (default: `false`)                             |\n| `channels`        | `number`  | optional | Number of audio channels (default: `1`)                                   |\n| `fullResponse`    | `boolean` | optional | Return full response object instead of just transcript (default: `false`) |\n\n#### Returns\n\n- **Default**: Returns transcript as a string\n- **With `fullResponse: true`**: Returns object with transcript, confidence, words, and metadata\n\n#### Examples\n\n### `Deepgram : Basic Transcription (Remote URL)`\n\n```javascript\nstt({\n  provider: \"deepgram\",\n  apiKey: process.env.DEEPGRAM_API_KEY,\n  audioFile: \"https://example.com/audio.wav\", // Remote URL\n});\n```\n\n### `Deepgram : Local File Transcription`\n\n```javascript\nstt({\n  provider: \"deepgram\",\n  apiKey: process.env.DEEPGRAM_API_KEY,\n  audioFile: \"./my-audio.mp3\", // Local file path\n  outputFile: \"transcription.json\",\n});\n```\n\n### `AssemblyAI : Basic Transcription (Remote URL)`\n\n```javascript\nstt({\n  provider: \"assemblyai\",\n  apiKey: process.env.ASSEMBLYAI_API_KEY,\n  audioFile: \"https://example.com/audio.wav\", // Remote URL\n  outputFile: \"transcription.json\",\n});\n```\n\n### `AssemblyAI : Local File Transcription`\n\n```javascript\nstt({\n  provider: \"assemblyai\",\n  apiKey: process.env.ASSEMBLYAI_API_KEY,\n  audioFile: \"./my-audio.mp3\", // Local file path\n  outputFile: \"transcription.json\",\n  fullResponse: true, // Get detailed response\n});\n```\n\n### `merge(options)`\n\nMerge multiple audio files into a single file.\n\n#### Parameters\n\n| Parameter    | Type       | Required | Description               |\n| ------------ | ---------- | -------- | ------------------------- |\n| `inputFiles` | `string[]` | ✅       | Array of input file paths |\n| `outputFile` | `string`   | ✅       | Output file path          |\n\n#### Example\n\n```javascript\nmerge({\n  inputFiles: [\"intro.mp3\", \"main.mp3\", \"outro.mp3\"],\n  outputFile: \"complete_audio.mp3\",\n});\n```\n\n## Supported Voices\n\n### OpenAI\n\n- `alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `onyx`, `nova`, `sage`, `shimmer`, `verse`\n\n### Gemini\n\n- `zephyr` (Bright), `puck` (Upbeat), `charon` (Informative), `kore` (Firm), `fenrir` (Excitable), `leda` (Youthful), `orus` (Firm), `aoede` (Breezy), `autonoe` (Bright), `enceladus` (Breathy), `iapetus` (Clear)\n\nFor a complete list of available Gemini voices, see: [Gemini Speech Generation Documentation](https://ai.google.dev/gemini-api/docs/speech-generation#voices)\n\n### Deepgram\n\n- `aura-2-luna-en`, `aura-2-stella-en`, `aura-2-arcas-en`, and more\n\nFor a complete list of available Deepgram voices, see: [Deepgram TTS Models Documentation](https://developers.deepgram.com/docs/tts-models#featured-voices)\n\n### Groq PlayAI\n\n- `Atlas-PlayAI`, `Arista-PlayAI`, `Basil-PlayAI`, `Briggs-PlayAI`, and more\n\nFor a complete list of available Groq PlayAI voices, see: [Groq TTS Documentation](https://console.groq.com/docs/text-to-speech)\n\n### Cartesia\n\nCartesia uses voice IDs instead of voice names. Example voice IDs:\n\n- `694f9389-aac1-45b6-b726-9d9369183238` (Default voice)\n- Use the Cartesia console to find available voice IDs for your account\n\nFor more information about Cartesia voices, see: [Cartesia Console](https://play.cartesia.ai/voices)\n\n## Environment Variables\n\nCreate a `.env` file in your project root:\n\n```env\nOPENAI_API_KEY=your_openai_api_key\nGEMINI_API_KEY=your_gemini_api_key\nDEEPGRAM_API_KEY=your_deepgram_api_key\nGROQ_API_KEY=your_groq_api_key\nCARTESIA_API_KEY=your_cartesia_api_key\n```\n\n## Requirements\n\n- Node.js 16.x or higher\n\n## License\n\nISC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fark018%2Fmulti-voice-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fark018%2Fmulti-voice-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fark018%2Fmulti-voice-sdk/lists"}