{"_id":"@caleblawson/voice-murf","name":"@caleblawson/voice-murf","dist-tags":{"latest":"0.10.3"},"versions":{"0.10.3":{"name":"@caleblawson/voice-murf","version":"0.10.3","description":"Mastra Murf voice 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":{"ky":"^1.8.1","zod":"^3.25.57"},"devDependencies":{"@microsoft/api-extractor":"^7.52.8","@types/node":"^20.19.0","eslint":"^9.28.0","tsup":"^8.5.0","typescript":"^5.8.3","vitest":"^2.1.9","@internal/lint":"0.0.13","@mastra/core":"npm:@caleblawson/core@0.10.7-alpha.0"},"peerDependencies":{"@mastra/core":"^0.10.0-alpha.0"},"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 ."},"gitHead":"c31e90130a5c9765c23f688ecea70adc6164543d","_id":"@caleblawson/voice-murf@0.10.3","_integrity":"sha512-dJ31ijKIX6sIdbSW2hRQrrmgCr3rQ3HrduCan7ROwGlgW2XkCi8QI9mMk0ejzTOPSHkfT+ktb1KHWXGMxAgYlA==","_resolved":"C:\\Users\\caleb\\AppData\\Local\\Temp\\d395f021aca2be5722f772f78522ded3\\caleblawson-voice-murf-0.10.3.tgz","_from":"file:caleblawson-voice-murf-0.10.3.tgz","_nodeVersion":"21.2.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-dJ31ijKIX6sIdbSW2hRQrrmgCr3rQ3HrduCan7ROwGlgW2XkCi8QI9mMk0ejzTOPSHkfT+ktb1KHWXGMxAgYlA==","shasum":"a8315711a1b34263fb7dacd7b840976371217a84","tarball":"https://registry.npmjs.org/@caleblawson/voice-murf/-/voice-murf-0.10.3.tgz","fileCount":9,"unpackedSize":35442,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDWW1pRzM7qxuV3f1wnHtSv595kwRYdfroyICTBjdXb5AiBrlN45sjYyviKv3DlwAvB0sSHXV+JvQu8IV0VbDPaWtw=="}]},"_npmUser":{"name":"caleblawson","email":"caleb.lawson@dynapt.com","actor":{"name":"caleblawson","email":"caleb.lawson@dynapt.com","type":"user"}},"directories":{},"maintainers":[{"name":"caleblawson","email":"caleb.lawson@dynapt.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/voice-murf_0.10.3_1750741053886_0.35883641737629035"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-24T04:57:33.786Z","0.10.3":"2025-06-24T04:57:34.084Z","modified":"2025-06-24T04:57:34.350Z"},"maintainers":[{"name":"caleblawson","email":"caleb.lawson@dynapt.com"}],"description":"Mastra Murf voice integration","license":"Elastic-2.0","readme":"# @mastra/voice-murf\r\n\r\nMurf Voice integration for Mastra, providing Text-to-Speech (TTS) capabilities using Murf's AI voice technology.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @mastra/voice-murf\r\n```\r\n\r\n## Configuration\r\n\r\nThe module requires the following environment variable:\r\n\r\n```bash\r\nMURF_API_KEY=your_api_key\r\n```\r\n\r\n## Usage\r\n\r\n```typescript\r\nimport { MurfVoice } from '@mastra/voice-murf';\r\n// Or generate speech from a text stream\r\nimport { Readable } from 'stream';\r\n\r\n// Initialize with configuration\r\nconst voice = new MurfVoice({\r\n  speechModel: {\r\n    name: 'GEN2', // Optional, defaults to 'GEN2'\r\n    apiKey: 'your-api-key', // Optional, can use MURF_API_KEY env var\r\n  },\r\n  speaker: 'en-US-natalie', // Optional, defaults to first available voice\r\n});\r\n\r\n// Or use with defaults (using env vars)\r\nconst defaultVoice = new MurfVoice();\r\n\r\n// List available speakers\r\nconst speakers = await voice.getSpeakers();\r\n\r\n// Generate speech from text\r\nconst stream = await voice.speak('Hello from Mastra!');\r\n\r\nconst textStream = Readable.from(['Hello', ' from', ' stream', ' input!']);\r\nconst audioStream = await voice.speak(textStream);\r\n\r\n// Speech recognition is not supported\r\ntry {\r\n  await voice.listen(audioStream);\r\n} catch (error) {\r\n  console.error(error); // \"Murf does not support speech recognition\"\r\n}\r\n```\r\n\r\n## Features\r\n\r\n- High-quality Text-to-Speech synthesis\r\n- Multiple voice options\r\n- Streaming support for both input and output\r\n- Natural-sounding voice synthesis\r\n- Voice customization options\r\n- Default configuration support\r\n\r\n## Voice Options\r\n\r\nMurf provides a variety of voices with different accents and styles:\r\n\r\n- en-US-natalie (Female, American)\r\n- en-US-marcus (Male, American)\r\n- en-GB-oliver (Male, British)\r\n- en-GB-emma (Female, British)\r\n- en-AU-lucas (Male, Australian)\r\n- en-AU-sophia (Female, Australian)\r\n\r\nView the complete list in the `voices.ts` file or [Murf's documentation](https://murf.ai/docs/api).\r\n","readmeFilename":"README.md","_rev":"1-de4fbbd5e85b5af8f84a7e90d6825823"}