{"_id":"@cogito.ai/voice-openai","name":"@cogito.ai/voice-openai","dist-tags":{"latest":"0.1.19"},"versions":{"0.1.19":{"name":"@cogito.ai/voice-openai","version":"0.1.19","description":"Cogito.ai OpenAI speech integration","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"license":"Elastic-2.0","dependencies":{"@mastra/core":"^0.9.3","openai":"^4.89.0","zod":"^3.24.3"},"devDependencies":{"@changesets/cli":"^2.29.3","@microsoft/api-extractor":"^7.52.5","@types/node":"^20.17.27","eslint":"^9.23.0","eslint-plugin-import-x":"^4.11.1","tsup":"^8.4.0","typescript":"^5.8.2","vitest":"^2.1.9"},"scripts":{"build":"tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake=smallest --splitting","build:watch":"pnpm build --watch","test":"vitest run","lint":"eslint .","changesets":"npm changesets","release":"npm run build && changeset publish"},"_id":"@cogito.ai/voice-openai@0.1.19","_integrity":"sha512-zQjcoRiM2L775D/C+fHNttKQd+0edo87e7XJQwINiRk1QDElZju+EuKUkWXsjP+gMEkVSKP/mQEaIqxJ0eoQ6A==","_resolved":"/private/var/folders/70/x0nk_t0s2m93xbzq4x7px0t40000gn/T/f492c0fd1c4555f99b51cb9dce054735/cogito.ai-voice-openai-0.1.19.tgz","_from":"file:cogito.ai-voice-openai-0.1.19.tgz","_nodeVersion":"22.14.0","_npmVersion":"11.2.0","dist":{"integrity":"sha512-zQjcoRiM2L775D/C+fHNttKQd+0edo87e7XJQwINiRk1QDElZju+EuKUkWXsjP+gMEkVSKP/mQEaIqxJ0eoQ6A==","shasum":"6a9456c73417cafae0e39b5a05daa97e0e39383c","tarball":"https://registry.npmjs.org/@cogito.ai/voice-openai/-/voice-openai-0.1.19.tgz","fileCount":9,"unpackedSize":28235,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC7ppz4PYwUay+UJkLW53zV8hFJ34xjaowGtmAatfv8+AiAH8ds/rZ5r5AP7X5PTZfIxW4ic80P82IrGule4G3pgtg=="}]},"_npmUser":{"name":"sunnyfu","email":"fujia.site@outlook.com"},"directories":{},"maintainers":[{"name":"sunnyfu","email":"fujia.site@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/voice-openai_0.1.19_1747035309032_0.3494248411727572"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-12T07:35:08.882Z","0.1.19":"2025-05-12T07:35:09.207Z","modified":"2025-05-12T07:35:09.541Z"},"maintainers":[{"name":"sunnyfu","email":"fujia.site@outlook.com"}],"description":"Cogito.ai OpenAI speech integration","license":"Elastic-2.0","readme":"# @cogito.ai/voice-openai\n\n> IMPORTANT! This package fork from [@mastra/voice-openai](https://github.com/mastra-ai/mastra/tree/main/voice/openai)\n\nOpenAI Voice integration for Mastra, providing both Text-to-Speech (TTS) and Speech-to-Text (STT) capabilities using OpenAI's advanced models.\n\n## Installation\n\n```bash\nnpm install @cogito.ai/voice-openai\n```\n\n## Configuration\n\nThe module requires an OpenAI API key, which can be provided through environment variables or directly in the configuration:\n\n```bash\nOPENAI_API_KEY=your_api_key\n```\n\n## Usage\n\n```typescript\nimport { OpenAIVoice } from '@cogito.ai/voice-openai';\n\n// Create voice with both speech and listening capabilities\nconst voice = new OpenAIVoice({\n  speechModel: {\n    name: 'tts-1', // or 'tts-1-hd' for higher quality\n    apiKey: 'your-api-key', // Optional, can use OPENAI_API_KEY env var\n  },\n  listeningModel: {\n    name: 'whisper-1',\n    apiKey: 'your-api-key', // Optional, can use OPENAI_API_KEY env var\n  },\n  speaker: 'alloy', // Default voice\n});\n\n// Or create speech-only voice\nconst speechVoice = new OpenAIVoice({\n  speechModel: {\n    name: 'tts-1',\n    apiKey: 'your-api-key',\n  },\n  speaker: 'nova',\n});\n\n// Or create listening-only voice\nconst listeningVoice = new OpenAIVoice({\n  listeningModel: {\n    name: 'whisper-1',\n    apiKey: 'your-api-key',\n  },\n});\n\n// List available voices\nconst speakers = await voice.getSpeakers();\n\n// Generate speech\nconst audioStream = await voice.speak('Hello from Mastra!', {\n  speaker: 'nova', // Optional: override default speaker\n  speed: 1.0, // Optional: adjust speech speed\n});\n\n// Convert speech to text\nconst text = await voice.listen(audioStream, {\n  filetype: 'wav',\n});\n```\n\n## Features\n\n- High-quality Text-to-Speech synthesis\n- Accurate Speech-to-Text transcription\n- Multiple voice options\n- Natural and expressive speech output\n- Fast processing times\n\n## Voice Options\n\nOpenAI provides several high-quality voices:\n\n- alloy (Neutral)\n- echo (Male)\n- fable (Male)\n- onyx (Male)\n- nova (Female)\n- shimmer (Female)\n- ash (Male)\n- coral (Female)\n- sage (Male)\n\nView the complete list in OpenAI's [Text to Speech documentation](https://platform.openai.com/docs/guides/text-to-speech).\n","readmeFilename":"README.md","_rev":"1-2c0d8e950143676538422731d5e8d1a7"}