Project Icon

elevenlabs-node

适用于NodeJS的开源文本转语音API封装

elevenlabs-node封装了Eleven Labs的文本转语音API,提供了一套简洁的NodeJS接口。开发者可以通过该包轻松实现文本到语音的转换、语音流生成、语音设置调整等功能。它支持自定义语音ID和多种参数配置,便于在NodeJS项目中快速集成高质量的语音合成能力。

Eleven Labs 标志

Eleven Labs Node

Eleven Labs NodeJS 包,用于将文本转换为语音!

GitHub 贡献者 问题 GitHub 拉取请求

NPM 包构建

报告错误 · 请求功能

在 GitHub 上给我们一个 ⭐ 来帮助项目改进!

星标

关于

这是一个开源的 Eleven Labs NodeJS 包,用于使用 Eleven Labs API 将文本转换为语音。

功能

函数
参数端点
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}
getVoicesN/A/v1/voices
getModelsN/A/v1/models
getUserInfoN/A/v1/user
getUserSubscriptionN/A/v1/user/subscription
getDefaultVoiceSettingsN/A/v1/voices/settings/default

参数

变量
描述类型
fileName音频文件的名称和文件路径,例如(./gen/helloString
textInput要转换为音频的文本,例如(HelloString
stability文本转语音的稳定性,默认值(0Float
similarityBoost文本转语音的相似度提升,默认值(0Float
voiceIdElevenLabs 语音 ID,例如(pNInz6obpgDQGcFmaJgBString
modelIdElevenLabs 模型 ID,例如(eleven_multilingual_v2String
responseType流式响应类型,例如(streamString
speakerBoost文本转语音的说话者增强,例如(trueBoolean
style文本转语音的风格夸张度(0-100),默认值(0Integer

要求

开始使用

要安装 Elevenlabs 包,请运行以下命令:

npm install elevenlabs-node

设置

为您的项目设置 ElevenLabs 配置。

变量
描述默认值
apiKey必填)您的 Elevenlabs API 密钥不适用
voiceId可选)Elevenlabs 的语音 IDAdam (pNInz6obpgDQGcFmaJgB)
const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey: "0e2c037kl8561005671b1de345s8765c", // 您的 Elevenlabs API 密钥
        voiceId: "pNInz6obpgDQGcFmaJgB",            // Elevenlabs 的语音 ID
    }
);

使用方法

文本转语音

从文本生成音频文件。

const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey: "0e2c037kl8561005671b1de345s8765c", // 您的 Elevenlabs API 密钥
        voiceId: "pNInz6obpgDQGcFmaJgB",            // Elevenlabs 的语音 ID
    }
);

voice.textToSpeech({
    // 必填参数
    fileName: "audio.mp3",                   // 您的音频文件名
    textInput: "mozzy is cool",              // 您希望转换为语音的文本

    // 可选参数
    voiceId: "21m00Tcm4TlvDq8ikWAM",         // 与默认不同的语音 ID
    stability: 0.5,                          // 转换语音的稳定性
    similarityBoost: 0.5,                    // 转换语音的相似度提升
    modelId: "eleven_multilingual_v2",       // ElevenLabs 模型 ID
    style: 1,                                // 转换语音的风格夸张度
    speakerBoost: true                       // 转换语音的说话者增强
  }).then((res) => {
    console.log(res);
});

文本转语音流

从文本生成音频流。

const ElevenLabs = require("elevenlabs-node");
const fs = require("fs-extra");

const voice = new ElevenLabs(
    {
        apiKey: "0e2c037kl8561005671b1de345s8765c", // 您的 Elevenlabs API 密钥
        voiceId: "pNInz6obpgDQGcFmaJgB",            // Elevenlabs 的语音 ID
    }
);

const voiceResponse = voice.textToSpeechStream({
    // 必填参数
    textInput: "mozzy is cool",              // 您希望转换为语音的文本

    // 可选参数
    voiceId: "21m00Tcm4TlvDq8ikWAM",         // 与默认不同的语音 ID
    stability: 0.5,                          // 转换语音的稳定性
    similarityBoost: 0.5,                    // 转换语音的相似度提升
    modelId: "eleven_multilingual_v2",       // ElevenLabs 模型 ID
    style: 1,                                // 转换语音的风格夸张度
    responseType: "stream",                  // 流式类型(arraybuffer、stream、json)
    speakerBoost: true                       // 转换语音的说话者增强
  }).then((res) => {
    res.pipe(fs.createWriteStream(fileName));
});

编辑语音设置

编辑语音设置。

const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey:  "0e2c037kl8561005671b1de345s8765c", // 您的Elevenlabs API密钥
    }
);

const voiceResponse = voice.editVoiceSettings({
    // 必需参数
    voiceId:         "pNInz6obpgDQGcFmaJgB",         // 您想要编辑的语音ID
    stabilityBoost:  0.5,                            // 语音的稳定性提升
    similarityBoost: 0.5,                            // 语音的相似度提升
  }).then((res) => {
    console.log(res);
});

获取语音设置

获取语音设置。

const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey:  "0e2c037kl8561005671b1de345s8765c", // 您的Elevenlabs API密钥
    }
);

const voiceResponse = voice.getVoiceSettings({
    // 必需参数
    voiceId:         "pNInz6obpgDQGcFmaJgB"          // 您想要获取的语音ID
  }).then((res) => {
    console.log(res);
});

删除语音

删除语音。

const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey:  "0e2c037kl8561005671b1de345s8765c", // 您的Elevenlabs API密钥
    }
);

const voiceResponse = voice.deleteVoice({
    // 必需参数
    voiceId:         "pNInz6obpgDQGcFmaJgB"          // 您想要删除的语音ID
  }).then((res) => {
    console.log(res);
});

获取语音

获取语音详情。

const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey:  "0e2c037kl8561005671b1de345s8765c", // 您的Elevenlabs API密钥
    }
);

const voiceResponse = voice.getVoice({
    // 必需参数
    voiceId:         "pNInz6obpgDQGcFmaJgB"          // 您想要获取的语音ID
  }).then((res) => {
    console.log(res);
});

获取所有语音

获取所有语音详情。

const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey:  "0e2c037kl8561005671b1de345s8765c", // 您的Elevenlabs API密钥
    }
);

const voiceResponse = voice.getVoices().then((res) => {
  console.log(res);
});

获取模型

获取所有模型详情。

const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey:  "0e2c037kl8561005671b1de345s8765c", // 您的Elevenlabs API密钥
    }
);

const voiceResponse = voice.getModels().then((res) => {
  console.log(res);
});

获取用户信息

获取与API密钥关联的用户信息。

const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey:  "0e2c037kl8561005671b1de345s8765c", // 您的Elevenlabs API密钥
    }
);

const voiceResponse = voice.getUserInfo().then((res) => {
  console.log(res);
});

获取用户订阅

获取与API密钥关联的用户订阅信息。

const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey:  "0e2c037kl8561005671b1de345s8765c", // 您的Elevenlabs API密钥
    }
);

const voiceResponse = voice.getUserSubscription().then((res) => {
  console.log(res);
});

获取默认语音设置

获取默认语音设置。

const ElevenLabs = require("elevenlabs-node");

const voice = new ElevenLabs(
    {
        apiKey:  "0e2c037kl8561005671b1de345s8765c", // 您的Elevenlabs API密钥
    }
);

const voiceResponse = voice.getDefaultVoiceSettings().then((res) => {
    console.log(res);
});

贡献

欢迎贡献 :)

阅读我们的CONTRIBUTING.md以了解更多信息。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号