elevenlabs-node
v2.0.3
Published
This is an open source Eleven Labs NodeJS package for converting text to speech using the Eleven Labs API
Downloads
7,801
Maintainers
Readme
About
This is an open source Eleven Labs NodeJS package for converting text to speech using the Eleven Labs API.
Features
| Function | Parameters | Endpoint |
| --------------------------------------- | --------------------------------------------------------------------------- | -------------------------------------- |
| textToSpeech
| ({voiceId, fileName, textInput, stability, similarityBoost, modelId, style, speakerBoost}) | /v1/text-to-speech/{voice_id}
|
| textToSpeechStream
| ({voiceId, textInput, stability, similarityBoost, modelId, responseType, style, speakerBoost}) | /v1/text-to-speech/{voice_id}/stream
|
| editVoiceSettings
| ({voiceId, stability, similarityBoost}) | /v1/voices/{voice_id}/settings/edit
|
| getVoiceSettings
| ({voiceId}) | /v1/voices/{voice_id}/settings
|
| deleteVoice
| ({voiceId}) | /v1/voices/{voice_id}
|
| getVoice
| ({voiceId}) | /v1/voices/{voice_id}
|
| getVoices
| N/A | /v1/voices
|
| getModels
| N/A | /v1/models
|
| getUserInfo
| N/A | /v1/user
|
| getUserSubscription
| N/A | /v1/user/subscription
|
| getDefaultVoiceSettings
| N/A | /v1/voices/settings/default
|
Parameters
| Variable | Description | Type |
| --------------------------------------- | --------------------------------------------------------------------------- | -------------------------------------- |
| fileName
| Name and file path for your audio file e.g (./gen/hello
) | String
|
| textInput
| Text to be converted into audio e.g (Hello
) | String
|
| stability
| Stability for Text to Speech default (0
) | Float
|
| similarityBoost
| Similarity Boost for Text to Speech default (0
) | Float
|
| voiceId
| ElevenLabs Voice ID e.g (pNInz6obpgDQGcFmaJgB
) | String
|
| modelId
| ElevenLabs Model ID e.g (eleven_multilingual_v2
) | String
|
| responseType
| Streaming response type e.g (stream
) | String
|
| speakerBoost
| Speaker Boost for Text to Speech e.g (true
) | Boolean
|
| style
| Style Exaggeration for Text to Speech (0-100) default (0
) | Integer
|
Requirements
Get Started
To install the Elevenlabs package, run the following command:
npm install elevenlabs-node
Setup
Setup the ElevenLabs configurations for your project.
| Variable | Description | Default |
| --------------------------------------- | --------------------------------------------------------------------------- | -------------------------------------- |
| apiKey
| (Required
) Your API key from Elevenlabs | N/A |
| voiceId
| (Optional
) A Voice ID from Elevenlabs | Adam (pNInz6obpgDQGcFmaJgB
) |
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
voiceId: "pNInz6obpgDQGcFmaJgB", // A Voice ID from Elevenlabs
}
);
Usage
Text To Speech
Generating an audio file from text.
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
voiceId: "pNInz6obpgDQGcFmaJgB", // A Voice ID from Elevenlabs
}
);
voice.textToSpeech({
// Required Parameters
fileName: "audio.mp3", // The name of your audio file
textInput: "mozzy is cool", // The text you wish to convert to speech
// Optional Parameters
voiceId: "21m00Tcm4TlvDq8ikWAM", // A different Voice ID from the default
stability: 0.5, // The stability for the converted speech
similarityBoost: 0.5, // The similarity boost for the converted speech
modelId: "eleven_multilingual_v2", // The ElevenLabs Model ID
style: 1, // The style exaggeration for the converted speech
speakerBoost: true // The speaker boost for the converted speech
}).then((res) => {
console.log(res);
});
Text To Speech Stream
Generating an audio stream from text.
const ElevenLabs = require("elevenlabs-node");
const fs = require("fs-extra");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
voiceId: "pNInz6obpgDQGcFmaJgB", // A Voice ID from Elevenlabs
}
);
const voiceResponse = voice.textToSpeechStream({
// Required Parameters
textInput: "mozzy is cool", // The text you wish to convert to speech
// Optional Parameters
voiceId: "21m00Tcm4TlvDq8ikWAM", // A different Voice ID from the default
stability: 0.5, // The stability for the converted speech
similarityBoost: 0.5, // The similarity boost for the converted speech
modelId: "eleven_multilingual_v2", // The ElevenLabs Model ID
style: 1, // The style exaggeration for the converted speech
responseType: "stream", // The streaming type (arraybuffer, stream, json)
speakerBoost: true // The speaker boost for the converted speech
}).then((res) => {
res.pipe(fs.createWriteStream(fileName));
});
Edit Voice Settings
Editing voice settings.
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
}
);
const voiceResponse = voice.editVoiceSettings({
// Required Parameters
voiceId: "pNInz6obpgDQGcFmaJgB", // The ID of the voice you want to edit
stabilityBoost: 0.5, // The Stability Boost for the voice
similarityBoost: 0.5, // The Similarity Boost for the voice
}).then((res) => {
console.log(res);
});
Get Voice Settings
Getting voice settings.
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
}
);
const voiceResponse = voice.getVoiceSettings({
// Required Parameters
voiceId: "pNInz6obpgDQGcFmaJgB" // The ID of the voice you want to get
}).then((res) => {
console.log(res);
});
Delete Voice
Delete voice.
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
}
);
const voiceResponse = voice.deleteVoice({
// Required Parameters
voiceId: "pNInz6obpgDQGcFmaJgB" // The ID of the voice you want to delete
}).then((res) => {
console.log(res);
});
Get Voice
Getting voice details.
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
}
);
const voiceResponse = voice.getVoice({
// Required Parameters
voiceId: "pNInz6obpgDQGcFmaJgB" // The ID of the voice you want to get
}).then((res) => {
console.log(res);
});
Get Voices
Getting all voice details.
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
}
);
const voiceResponse = voice.getVoices().then((res) => {
console.log(res);
});
Get Models
Getting all model details.
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
}
);
const voiceResponse = voice.getModels().then((res) => {
console.log(res);
});
Get User Info
Getting user info associated with the API Key.
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
}
);
const voiceResponse = voice.getUserInfo().then((res) => {
console.log(res);
});
Get User Subscription
Getting user subscription info associated with the API Key.
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
}
);
const voiceResponse = voice.getUserSubscription().then((res) => {
console.log(res);
});
Get Default Voice Settings
Getting default voice settings.
const ElevenLabs = require("elevenlabs-node");
const voice = new ElevenLabs(
{
apiKey: "0e2c037kl8561005671b1de345s8765c", // Your API key from Elevenlabs
}
);
const voiceResponse = voice.getDefaultVoiceSettings().then((res) => {
console.log(res);
});
Contributing
Contributions are welcome :)
Read our CONTRIBUTING.md to learn more.