@elizaos/plugin-elevenlabs 1.0.0-beta.4 → 1.0.0-beta.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Shaw Walters, aka Moon aka @lalalune
3
+ Copyright (c) 2025 Shaw Walters and elizaOS Contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/dist/index.js CHANGED
@@ -1,44 +1,11 @@
1
1
  // src/index.ts
2
+ import {
3
+ ModelType,
4
+ logger,
5
+ prependWavHeader,
6
+ parseBooleanFromText
7
+ } from "@elizaos/core";
2
8
  import { Readable } from "node:stream";
3
- import { ModelType, logger } from "@elizaos/core";
4
-
5
- // src/utils.ts
6
- import { PassThrough } from "node:stream";
7
- function getWavHeader(audioLength, sampleRate, channelCount = 1, bitsPerSample = 16) {
8
- const wavHeader = Buffer.alloc(44);
9
- wavHeader.write("RIFF", 0);
10
- wavHeader.writeUInt32LE(36 + audioLength, 4);
11
- wavHeader.write("WAVE", 8);
12
- wavHeader.write("fmt ", 12);
13
- wavHeader.writeUInt32LE(16, 16);
14
- wavHeader.writeUInt16LE(1, 20);
15
- wavHeader.writeUInt16LE(channelCount, 22);
16
- wavHeader.writeUInt32LE(sampleRate, 24);
17
- wavHeader.writeUInt32LE(sampleRate * bitsPerSample * channelCount / 8, 28);
18
- wavHeader.writeUInt16LE(bitsPerSample * channelCount / 8, 32);
19
- wavHeader.writeUInt16LE(bitsPerSample, 34);
20
- wavHeader.write("data", 36);
21
- wavHeader.writeUInt32LE(audioLength, 40);
22
- return wavHeader;
23
- }
24
- function prependWavHeader(readable, audioLength, sampleRate, channelCount = 1, bitsPerSample = 16) {
25
- const wavHeader = getWavHeader(audioLength, sampleRate, channelCount, bitsPerSample);
26
- let pushedHeader = false;
27
- const passThrough = new PassThrough();
28
- readable.on("data", (data) => {
29
- if (!pushedHeader) {
30
- passThrough.push(wavHeader);
31
- pushedHeader = true;
32
- }
33
- passThrough.push(data);
34
- });
35
- readable.on("end", () => {
36
- passThrough.end();
37
- });
38
- return passThrough;
39
- }
40
-
41
- // src/index.ts
42
9
  function getVoiceSettings(runtime) {
43
10
  const getSetting = (key, fallback = "") => process.env[key] || runtime.getSetting(key) || fallback;
44
11
  return {
@@ -50,7 +17,7 @@ function getVoiceSettings(runtime) {
50
17
  outputFormat: getSetting("ELEVENLABS_OUTPUT_FORMAT", "pcm_16000"),
51
18
  similarity: getSetting("ELEVENLABS_VOICE_SIMILARITY_BOOST", "0.75"),
52
19
  style: getSetting("ELEVENLABS_VOICE_STYLE", "0"),
53
- speakerBoost: getSetting("ELEVENLABS_VOICE_USE_SPEAKER_BOOST", "true")
20
+ speakerBoost: parseBooleanFromText(getSetting("ELEVENLABS_VOICE_USE_SPEAKER_BOOST", "true"))
54
21
  };
55
22
  }
56
23
  async function fetchSpeech(runtime, text) {
@@ -97,12 +64,14 @@ var elevenLabsPlugin = {
97
64
  description: "ElevenLabs plugin",
98
65
  models: {
99
66
  [ModelType.TEXT_TO_SPEECH]: async (runtime, text) => {
67
+ const settings = getVoiceSettings(runtime);
68
+ logger.log(`[ElevenLabs] Using TEXT_TO_SPEECH model: ${settings.model}`);
100
69
  try {
101
70
  const stream = await fetchSpeech(runtime, text);
102
- return getVoiceSettings(runtime).outputFormat.startsWith("pcm_") ? prependWavHeader(
71
+ return settings.outputFormat.startsWith("pcm_") ? prependWavHeader(
103
72
  stream,
104
73
  1024 * 1024 * 100,
105
- Number.parseInt(getVoiceSettings(runtime).outputFormat.slice(4)),
74
+ Number.parseInt(settings.outputFormat.slice(4)),
106
75
  1,
107
76
  16
108
77
  ) : stream;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/utils.ts"],"sourcesContent":["import { Readable } from 'node:stream';\nimport { type IAgentRuntime, ModelType, type Plugin, logger } from '@elizaos/core';\nimport { prependWavHeader } from './utils';\n\n/**\n * Function to retrieve voice settings based on runtime and environment variables.\n * @param {IAgentRuntime} runtime - The agent runtime object.\n * @returns {Object} - Object containing various voice settings.\n */\nfunction getVoiceSettings(runtime: IAgentRuntime) {\n const getSetting = (key: string, fallback = '') =>\n process.env[key] || runtime.getSetting(key) || fallback;\n\n return {\n apiKey: getSetting('ELEVENLABS_API_KEY') || getSetting('ELEVENLABS_XI_API_KEY'),\n voiceId: getSetting('ELEVENLABS_VOICE_ID', 'EXAVITQu4vr4xnSDxMaL'),\n model: getSetting('ELEVENLABS_MODEL_ID', 'eleven_monolingual_v1'),\n stability: getSetting('ELEVENLABS_VOICE_STABILITY', '0.5'),\n latency: getSetting('ELEVENLABS_OPTIMIZE_STREAMING_LATENCY', '0'),\n outputFormat: getSetting('ELEVENLABS_OUTPUT_FORMAT', 'pcm_16000'),\n similarity: getSetting('ELEVENLABS_VOICE_SIMILARITY_BOOST', '0.75'),\n style: getSetting('ELEVENLABS_VOICE_STYLE', '0'),\n speakerBoost: getSetting('ELEVENLABS_VOICE_USE_SPEAKER_BOOST', 'true'),\n };\n}\n\n/**\n * Fetch speech from Eleven Labs API using given text and runtime settings.\n * @param {IAgentRuntime} runtime - The runtime interface containing necessary data for the API call.\n * @param {string} text - The text to be converted into speech.\n * @returns {Promise<Readable>} A promise resolving to a readable stream of the fetched speech.\n */\nasync function fetchSpeech(runtime: IAgentRuntime, text: string) {\n const settings = getVoiceSettings(runtime);\n try {\n const response = await fetch(\n `https://api.elevenlabs.io/v1/text-to-speech/${settings.voiceId}/stream?optimize_streaming_latency=${settings.latency}&output_format=${settings.outputFormat}`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xi-api-key': settings.apiKey,\n },\n body: JSON.stringify({\n model_id: settings.model,\n text,\n voice_settings: {\n similarity_boost: settings.similarity,\n stability: settings.stability,\n style: settings.style,\n use_speaker_boost: settings.speakerBoost,\n },\n }),\n }\n );\n if (response.status !== 200) {\n const errorBodyString = await response.text();\n const errorBody = JSON.parse(errorBodyString);\n\n if (response.status === 401 && errorBody.detail?.status === 'quota_exceeded') {\n logger.log('ElevenLabs quota exceeded');\n throw new Error('QUOTA_EXCEEDED');\n }\n throw new Error(\n `Received status ${response.status} from Eleven Labs API: ${JSON.stringify(errorBody)}`\n );\n }\n return Readable.fromWeb(response.body);\n } catch (error) {\n throw new Error(error);\n }\n}\n\n/**\n * Represents the ElevenLabs plugin.\n * This plugin provides functionality related to ElevenLabs API, including text to speech conversion.\n * @type {Plugin}\n */\nexport const elevenLabsPlugin: Plugin = {\n name: 'elevenLabs',\n description: 'ElevenLabs plugin',\n models: {\n [ModelType.TEXT_TO_SPEECH]: async (runtime, text) => {\n try {\n const stream = await fetchSpeech(runtime, text);\n return getVoiceSettings(runtime).outputFormat.startsWith('pcm_')\n ? prependWavHeader(\n stream,\n 1024 * 1024 * 100,\n Number.parseInt(getVoiceSettings(runtime).outputFormat.slice(4)),\n 1,\n 16\n )\n : stream;\n } catch (error) {\n throw new Error(\n `Failed to fetch speech from Eleven Labs API: ${error.message || 'Unknown error occurred'}`\n );\n }\n },\n },\n tests: [\n {\n name: 'test eleven labs',\n tests: [\n {\n name: 'Eleven Labs API key validation',\n fn: async (runtime: IAgentRuntime) => {\n if (!getVoiceSettings(runtime).apiKey) {\n throw new Error('Missing API key: Please provide a valid Eleven Labs API key.');\n }\n },\n },\n {\n name: 'Eleven Labs API response',\n fn: async (runtime: IAgentRuntime) => {\n try {\n await fetchSpeech(runtime, 'test');\n } catch (error) {\n throw new Error(\n `Failed to fetch speech from Eleven Labs API: ${error.message || 'Unknown error occurred'}`\n );\n }\n },\n },\n ],\n },\n ],\n};\nexport default elevenLabsPlugin;\n","import { PassThrough } from 'node:stream';\nimport type { Readable } from 'node:stream';\n\n/**\n * Generates a WAV file header based on the provided audio parameters.\n * @param {number} audioLength - The length of the audio data in bytes.\n * @param {number} sampleRate - The sample rate of the audio.\n * @param {number} [channelCount=1] - The number of channels (default is 1).\n * @param {number} [bitsPerSample=16] - The number of bits per sample (default is 16).\n * @returns {Buffer} The WAV file header as a Buffer object.\n */\nexport function getWavHeader(\n audioLength: number,\n sampleRate: number,\n channelCount = 1,\n bitsPerSample = 16\n): Buffer {\n const wavHeader = Buffer.alloc(44);\n wavHeader.write('RIFF', 0);\n wavHeader.writeUInt32LE(36 + audioLength, 4); // Length of entire file in bytes minus 8\n wavHeader.write('WAVE', 8);\n wavHeader.write('fmt ', 12);\n wavHeader.writeUInt32LE(16, 16); // Length of format data\n wavHeader.writeUInt16LE(1, 20); // Type of format (1 is PCM)\n wavHeader.writeUInt16LE(channelCount, 22); // Number of channels\n wavHeader.writeUInt32LE(sampleRate, 24); // Sample rate\n wavHeader.writeUInt32LE((sampleRate * bitsPerSample * channelCount) / 8, 28); // Byte rate\n wavHeader.writeUInt16LE((bitsPerSample * channelCount) / 8, 32); // Block align ((BitsPerSample * Channels) / 8)\n wavHeader.writeUInt16LE(bitsPerSample, 34); // Bits per sample\n wavHeader.write('data', 36); // Data chunk header\n wavHeader.writeUInt32LE(audioLength, 40); // Data chunk size\n return wavHeader;\n}\n\n/**\n * Prepends a WAV header to a readable stream of audio data.\n *\n * @param {Readable} readable - The readable stream containing the audio data.\n * @param {number} audioLength - The length of the audio data in seconds.\n * @param {number} sampleRate - The sample rate of the audio data.\n * @param {number} [channelCount=1] - The number of channels in the audio data (default is 1).\n * @param {number} [bitsPerSample=16] - The number of bits per sample in the audio data (default is 16).\n * @returns {Readable} A new readable stream with the WAV header prepended to the audio data.\n */\nexport function prependWavHeader(\n readable: Readable,\n audioLength: number,\n sampleRate: number,\n channelCount = 1,\n bitsPerSample = 16\n): Readable {\n const wavHeader = getWavHeader(audioLength, sampleRate, channelCount, bitsPerSample);\n let pushedHeader = false;\n const passThrough = new PassThrough();\n readable.on('data', (data) => {\n if (!pushedHeader) {\n passThrough.push(wavHeader);\n pushedHeader = true;\n }\n passThrough.push(data);\n });\n readable.on('end', () => {\n passThrough.end();\n });\n return passThrough;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n type IAgentRuntime,\n ModelType,\n type Plugin,\n logger,\n prependWavHeader,\n parseBooleanFromText,\n} from '@elizaos/core';\nimport { Readable } from 'node:stream';\n\n/**\n * Function to retrieve voice settings based on runtime and environment variables.\n * @param {IAgentRuntime} runtime - The agent runtime object.\n * @returns {Object} - Object containing various voice settings.\n */\nfunction getVoiceSettings(runtime: IAgentRuntime) {\n const getSetting = (key: string, fallback = '') =>\n process.env[key] || runtime.getSetting(key) || fallback;\n\n return {\n apiKey: getSetting('ELEVENLABS_API_KEY') || getSetting('ELEVENLABS_XI_API_KEY'),\n voiceId: getSetting('ELEVENLABS_VOICE_ID', 'EXAVITQu4vr4xnSDxMaL'),\n model: getSetting('ELEVENLABS_MODEL_ID', 'eleven_monolingual_v1'),\n stability: getSetting('ELEVENLABS_VOICE_STABILITY', '0.5'),\n latency: getSetting('ELEVENLABS_OPTIMIZE_STREAMING_LATENCY', '0'),\n outputFormat: getSetting('ELEVENLABS_OUTPUT_FORMAT', 'pcm_16000'),\n similarity: getSetting('ELEVENLABS_VOICE_SIMILARITY_BOOST', '0.75'),\n style: getSetting('ELEVENLABS_VOICE_STYLE', '0'),\n speakerBoost: parseBooleanFromText(getSetting('ELEVENLABS_VOICE_USE_SPEAKER_BOOST', 'true')),\n };\n}\n\n/**\n * Fetch speech from Eleven Labs API using given text and runtime settings.\n * @param {IAgentRuntime} runtime - The runtime interface containing necessary data for the API call.\n * @param {string} text - The text to be converted into speech.\n * @returns {Promise<Readable>} A promise resolving to a readable stream of the fetched speech.\n */\nasync function fetchSpeech(runtime: IAgentRuntime, text: string) {\n const settings = getVoiceSettings(runtime);\n try {\n const response = await fetch(\n `https://api.elevenlabs.io/v1/text-to-speech/${settings.voiceId}/stream?optimize_streaming_latency=${settings.latency}&output_format=${settings.outputFormat}`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'xi-api-key': settings.apiKey,\n },\n body: JSON.stringify({\n model_id: settings.model,\n text,\n voice_settings: {\n similarity_boost: settings.similarity,\n stability: settings.stability,\n style: settings.style,\n use_speaker_boost: settings.speakerBoost,\n },\n }),\n }\n );\n if (response.status !== 200) {\n const errorBodyString = await response.text();\n const errorBody = JSON.parse(errorBodyString);\n\n if (response.status === 401 && errorBody.detail?.status === 'quota_exceeded') {\n logger.log('ElevenLabs quota exceeded');\n throw new Error('QUOTA_EXCEEDED');\n }\n throw new Error(\n `Received status ${response.status} from Eleven Labs API: ${JSON.stringify(errorBody)}`\n );\n }\n return Readable.fromWeb(response.body);\n } catch (error) {\n throw new Error(error);\n }\n}\n\n/**\n * Represents the ElevenLabs plugin.\n * This plugin provides functionality related to ElevenLabs API, including text to speech conversion.\n * @type {Plugin}\n */\nexport const elevenLabsPlugin: Plugin = {\n name: 'elevenLabs',\n description: 'ElevenLabs plugin',\n models: {\n [ModelType.TEXT_TO_SPEECH]: async (runtime, text) => {\n const settings = getVoiceSettings(runtime);\n logger.log(`[ElevenLabs] Using TEXT_TO_SPEECH model: ${settings.model}`);\n try {\n const stream = await fetchSpeech(runtime, text);\n return settings.outputFormat.startsWith('pcm_')\n ? prependWavHeader(\n stream,\n 1024 * 1024 * 100,\n Number.parseInt(settings.outputFormat.slice(4)),\n 1,\n 16\n )\n : stream;\n } catch (error) {\n throw new Error(\n `Failed to fetch speech from Eleven Labs API: ${error.message || 'Unknown error occurred'}`\n );\n }\n },\n },\n tests: [\n {\n name: 'test eleven labs',\n tests: [\n {\n name: 'Eleven Labs API key validation',\n fn: async (runtime: IAgentRuntime) => {\n if (!getVoiceSettings(runtime).apiKey) {\n throw new Error('Missing API key: Please provide a valid Eleven Labs API key.');\n }\n },\n },\n {\n name: 'Eleven Labs API response',\n fn: async (runtime: IAgentRuntime) => {\n try {\n await fetchSpeech(runtime, 'test');\n } catch (error) {\n throw new Error(\n `Failed to fetch speech from Eleven Labs API: ${error.message || 'Unknown error occurred'}`\n );\n }\n },\n },\n ],\n },\n ],\n};\nexport default elevenLabsPlugin;\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/plugin-elevenlabs",
3
- "version": "1.0.0-beta.4",
3
+ "version": "1.0.0-beta.40",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "dist"
23
23
  ],
24
24
  "dependencies": {
25
- "@elizaos/core": "^1.0.0-beta.4",
25
+ "@elizaos/core": "^1.0.0-beta.40",
26
26
  "tsup": "8.4.0"
27
27
  },
28
28
  "scripts": {
@@ -77,7 +77,7 @@
77
77
  }
78
78
  }
79
79
  },
80
- "gitHead": "55e5f31e3f9920fce14c57f149e185aa128e335b",
80
+ "gitHead": "fc75473bb1535968d0c473ec6ae614b86feec202",
81
81
  "devDependencies": {
82
82
  "prettier": "3.5.3"
83
83
  }