{"_id":"@bjelser/tts-openai","_rev":"2-be8322d824b98d982a1caae65b32dd8f","name":"@bjelser/tts-openai","dist-tags":{"latest":"3.0.1"},"versions":{"3.0.0":{"name":"@bjelser/tts-openai","version":"3.0.0","license":"MIT","_id":"@bjelser/tts-openai@3.0.0","maintainers":[{"name":"bjelser","email":"belser@elsersmusings.com"}],"homepage":"https://github.com/benelser/docent","bugs":{"url":"https://github.com/benelser/docent/issues"},"dist":{"shasum":"2d76b07daf8bf88bfd5aa70bc86422930149745d","tarball":"https://registry.npmjs.org/@bjelser/tts-openai/-/tts-openai-3.0.0.tgz","fileCount":4,"integrity":"sha512-khMIpR0ON3Jwii+eoP9YeaArPdcMqKOFf5Ugcvj/vcTWPpeY881lMFPwTxE0SmNgPgRwxqSuj3AvY1GvVOsthQ==","signatures":[{"sig":"MEQCIDQtvaWGvL1OLUnLLuMK+f3Pl6/a6L0q81eJ2EJilOVwAiAfoY2/0NygW3sUxr1WdkKNth7JV3r8DIn0DzTbF5iY+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8647},"type":"module","exports":{".":"./src/index.ts"},"gitHead":"46532c5a73d005eb80e9300c522eb50e7d5c6037","_npmUser":{"name":"bjelser","email":"belser@elsersmusings.com"},"repository":{"url":"git+https://github.com/benelser/docent.git","type":"git","directory":"packages/tts-openai"},"_npmVersion":"10.9.2","description":"The OpenAI TTS provider plugin for docent. Wraps the official `openai` npm package's `audio.speech.create()` and exposes it through @bjelser/kit's TtsProviderPlugin contract.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@bjelser/kit":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"openai":"^6.39.0","typescript":"^6.0.3","@types/node":"^25.0.0"},"peerDependencies":{"openai":"^6.39.0"},"peerDependenciesMeta":{"openai":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/tts-openai_3.0.0_1779993987647_0.6282008339309255","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@bjelser/tts-openai","version":"3.0.1","description":"The OpenAI TTS provider plugin for docent. Wraps the official `openai` npm package's `audio.speech.create()` and exposes it through @bjelser/kit's TtsProviderPlugin contract.","type":"module","license":"MIT","homepage":"https://github.com/benelser/docent","repository":{"type":"git","url":"git+https://github.com/benelser/docent.git","directory":"packages/tts-openai"},"exports":{".":"./src/index.ts"},"dependencies":{"@bjelser/kit":"^3.0.0"},"peerDependencies":{"openai":"^6.39.0"},"peerDependenciesMeta":{"openai":{"optional":false}},"devDependencies":{"@types/node":"^25.0.0","openai":"^6.39.0","typescript":"^6.0.3"},"_id":"@bjelser/tts-openai@3.0.1","gitHead":"87c82d7ebdabc8956af008cf7c7091ad42f09b6b","bugs":{"url":"https://github.com/benelser/docent/issues"},"_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-6VjISVVIOZXn7oFrnXbLzU5b6/oEeatmKV3LeMIjdDTeYNAP+OyUzWQ+yuI7AVvdNhXiL5lrsdHUjXIrUiqvfQ==","shasum":"301ba57c806cbcda84233003a29e737d119a7fb0","tarball":"https://registry.npmjs.org/@bjelser/tts-openai/-/tts-openai-3.0.1.tgz","fileCount":5,"unpackedSize":15520,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCHItPR9RNWB+4cyPeB/rZ0KwVQb3G7lVDJiwl1/+rjmAIgK+V7ZEHyR6DlBYH7KHV0rvCvYlcjRv9CynDkSYn6tcY="}]},"_npmUser":{"name":"bjelser","email":"belser@elsersmusings.com"},"directories":{},"maintainers":[{"name":"bjelser","email":"belser@elsersmusings.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tts-openai_3.0.1_1780078280054_0.9502269841884905"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-28T18:46:27.511Z","modified":"2026-05-29T18:11:20.308Z","3.0.0":"2026-05-28T18:46:27.788Z","3.0.1":"2026-05-29T18:11:20.206Z"},"bugs":{"url":"https://github.com/benelser/docent/issues"},"license":"MIT","homepage":"https://github.com/benelser/docent","repository":{"type":"git","url":"git+https://github.com/benelser/docent.git","directory":"packages/tts-openai"},"description":"The OpenAI TTS provider plugin for docent. Wraps the official `openai` npm package's `audio.speech.create()` and exposes it through @bjelser/kit's TtsProviderPlugin contract.","maintainers":[{"name":"bjelser","email":"belser@elsersmusings.com"}],"readme":"# @bjelser/tts-openai\n\nOpenAI TTS provider for `@bjelser/kit`. Synthesizes per-beat narration audio against OpenAI's `tts-1` / `tts-1-hd` / `gpt-4o-mini-tts` models.\n\n## Install\n\n```bash\nnpm install @bjelser/tts-openai openai\n# or\nbun add @bjelser/tts-openai openai\n```\n\n`openai` is a **peer dependency** — bring your own SDK version.\n\n## Use\n\nRegister the provider with the engine, set `OPENAI_API_KEY`, and reference it from your film's `meta.voice` block.\n\n```ts\n// docent.config.ts\nimport {corePlugins} from '@bjelser/core';\nimport {openaiTtsProvider} from '@bjelser/tts-openai';\n\nexport default {\n  plugins: [...corePlugins, openaiTtsProvider],\n};\n```\n\n```json\n// films/my-film.json\n{\n  \"meta\": {\n    \"voice\": {\n      \"provider\": \"openai\",\n      \"voice\": \"alloy\",\n      \"model\": \"tts-1-hd\"\n    }\n  }\n}\n```\n\n## Capabilities\n\n- `nativeAlignment`: `null` (chunk-level only — no native word timings)\n- `voiceCloning`: `false`\n- `languages`: per OpenAI's published list\n\nIf your scene declares `requiresTtsCapabilities: { nativeAlignment: 'word' }`, this provider will fail the cross-bind check at validation. Use a provider that supports word alignment (or remove the requirement).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}