elevenlabs-python

GitHub
2.9k 408 简单 1 次阅读 昨天MIT音频
AI 解读 由 AI 自动生成,仅供参考

elevenlabs-python 是 ElevenLabs 官方推出的 Python 开发工具包,旨在让开发者通过几行代码即可调用世界顶尖的语音合成技术。它主要解决了在应用中集成高质量、拟人化语音功能时面临的技术门槛高、延迟大及多语言支持复杂等难题。

这款工具非常适合软件开发者、AI 研究人员以及需要为产品添加语音交互功能的技术团队使用。通过简单的 pip 安装,用户就能轻松实现文本转语音、实时音频流传输以及高保真声音克隆等核心功能。

其技术亮点在于提供了多种针对不同场景优化的模型:既有支持 70 多种语言、擅长戏剧化表演的 Eleven v3 模型,也有专为低延迟实时交互设计的 Flash 和 Turbo 系列,后者在保持出色音质的同时大幅降低了成本与响应时间。此外,它还支持自定义声音风格设置和即时声音克隆,允许用户上传少量音频样本即可复刻独特音色。无论是构建有声读物应用、智能客服系统,还是开发多语言内容创作平台,elevenlabs-python 都能提供稳定且灵活的底层支持,帮助创作者将生动的声音快速融入各类数字产品中。

使用场景

一家初创教育科技公司正在开发一款支持多语言学习的互动有声故事应用,需要为不同角色快速生成高质量且情感丰富的语音内容。

没有 elevenlabs-python 时

  • 开发者必须手动调用复杂的 HTTP REST API,编写大量样板代码来处理认证、请求构建和错误重试,开发效率极低。
  • 难以实现实时流式播放,用户必须等待整个音频文件生成完毕才能听到声音,导致互动体验卡顿且不自然。
  • 无法灵活切换多种高拟真模型(如 Eleven v3 或 Multilingual v2),导致非英语角色的发音生硬,缺乏情感起伏。
  • 声音克隆功能集成困难,需自行处理音频分片上传和参数配置,难以快速为特定角色定制专属音色。
  • 缺乏统一的 Python 客户端管理语音列表和设置,每次调整语速或稳定性都需要查阅繁琐的官方文档并重新构造请求。

使用 elevenlabs-python 后

  • 仅需几行代码即可初始化客户端并调用 text_to_speech.convert,自动处理底层通信细节,将语音集成时间从数天缩短至几小时。
  • 直接利用内置的 stream 模块实现低延迟音频流传输,用户能几乎同步听到生成的语音,大幅提升故事互动的流畅度。
  • 通过简单修改 model_id 参数即可无缝切换至支持 70+ 语言的 Eleven v3 模型,让多国角色对话充满戏剧张力和地道口音。
  • 调用 voices.ivc.create 方法并传入样本文件,即可瞬间完成声音克隆,轻松为故事中的旁白或特定角色创建独一无二的嗓音。
  • 使用 voices.search 和设置接口可程序化地管理和微调语音风格,开发者能像操作本地对象一样轻松定制每个角色的说话方式。

elevenlabs-python 将复杂的语音合成技术转化为简洁的 Python 接口,让开发者能专注于内容创作而非底层工程实现。

运行环境要求

操作系统
  • 未说明
GPU

不需要本地 GPU

内存

未说明

依赖
notes该工具是 ElevenLabs API 的 Python SDK,所有语音合成和 AI 处理均在云端服务器运行,因此对本地硬件(CPU/GPU/内存)无特殊要求。用户只需安装库并配置有效的 API Key 即可使用。支持同步和异步调用,包含实时音频流处理和对话式 AI 代理功能。
python未说明
elevenlabs
python-dotenv
elevenlabs-python hero image

快速开始

ElevenLabs Python 库

LOGO

fern shield Discord Twitter PyPI - Python Version Downloads

这是 ElevenLabs 的官方 Python SDK。通过几行代码,ElevenLabs 就能为创作者和开发者带来最具吸引力、最丰富且栩栩如生的语音。

📖 API 与文档

请查看 HTTP API 文档

安装

pip install elevenlabs

使用方法

主要模型

  1. Eleven v3 (eleven_v3)

    • 戏剧化的表达和演绎
    • 支持 70 多种语言
    • 适用于自然的多说话人对话场景
  2. Eleven Multilingual v2 (eleven_multilingual_v2)

    • 在稳定性、语言多样性和口音准确性方面表现出色
    • 支持 29 种语言
    • 推荐用于大多数使用场景
  3. Eleven Flash v2.5 (eleven_flash_v2_5)

    • 超低延迟
    • 支持 32 种语言
    • 模型速度更快,每字符价格降低 50%
  4. Eleven Turbo v2.5 (eleven_turbo_v2_5)

    • 在质量和延迟之间取得良好平衡
    • 非常适合对速度要求较高的开发场景
    • 支持 32 种语言

有关这些模型及其他模型的详细信息,请访问 ElevenLabs 模型文档

from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
from elevenlabs.play import play

load_dotenv()

elevenlabs = ElevenLabs()

audio = elevenlabs.text_to_speech.convert(
    text="第一步决定了后续的一切。",
    voice_id="JBFqnCBsd6RMkjVDRZzb",
    model_id="eleven_v3",
    output_format="mp3_44100_128",
)

play(audio)
播放

🎧 立即试听! 想亲自体验我们的语音效果吗?请访问 ElevenLabs Voice Lab,尝试不同的语音、语言和设置。

语音列表

使用 search() 列出所有可用的语音。

from elevenlabs.client import ElevenLabs

elevenlabs = ElevenLabs(
  api_key="YOUR_API_KEY",
)

response = elevenlabs.voices.search()
print(response.voices)

关于语音输出结构的信息,请参阅 ElevenLabs 官方 API 文档中的获取语音接口

您可以使用自定义设置构建语音对象来个性化语音风格,或者调用 elevenlabs.voices.settings.get("your-voice-id") 来获取该语音的默认设置。

克隆语音

瞬间克隆您的声音。请注意,语音克隆需要 API 密钥,详情见下文。

from elevenlabs.client import ElevenLabs
from elevenlabs.play import play

elevenlabs = ElevenLabs(
  api_key="YOUR_API_KEY",
)

voice = elevenlabs.voices.ivc.create(
    name="Alex",
    description="一位年长的美国男性嗓音,略带沙哑,非常适合新闻播报", # 可选
    files=["./sample_0.mp3", "./sample_1.mp3", "./sample_2.mp3"],
)

流式传输

实时流式传输正在生成的音频。

from elevenlabs import stream
from elevenlabs.client import ElevenLabs

elevenlabs = ElevenLabs(
  api_key="YOUR_API_KEY",
)

audio_stream = elevenlabs.text_to_speech.stream(
    text="这是一次测试",
    voice_id="JBFqnCBsd6RMkjVDRZzb",
    model_id="eleven_multilingual_v2"
)

# 选项 1:在本地播放流式音频
stream(audio_stream)

# 选项 2:手动处理音频字节
for chunk in audio_stream:
    if isinstance(chunk, bytes):
        print(chunk)

异步客户端

如果您希望异步进行 API 调用,请使用 AsyncElevenLabs

import asyncio

from elevenlabs.client import AsyncElevenLabs

elevenlabs = AsyncElevenLabs(
  api_key="MY_API_KEY"
)

async def print_models() -> None:
    models = await elevenlabs.models.list()
    print(models)

asyncio.run(print_models())

ElevenAgents

使用 ElevenAgents 构建具有实时音频功能的交互式 AI 助手。

基本用法

from elevenlabs.client import ElevenLabs
from elevenlabs.conversational_ai.conversation import Conversation, ClientTools
from elevenlabs.conversational_ai.default_audio_interface import DefaultAudioInterface

elevenlabs = ElevenLabs(
  api_key="YOUR_API_KEY",
)

# 创建用于实时音频输入输出的音频接口
audio_interface = DefaultAudioInterface()

# 创建对话会话
conversation = Conversation(
    client=elevenlabs,
    agent_id="your-agent-id",
    requires_auth=True,
    audio_interface=audio_interface,
)

# 开始会话
conversation.start_session()

# 对话将在后台持续运行,直到您调用:
conversation.end_session()

自定义事件循环支持

对于涉及上下文传播、资源复用或特定事件循环管理的高级用例,ClientTools 支持自定义 asyncio 事件循环:

import asyncio
from elevenlabs.conversational_ai.conversation import ClientTools

elevenlabs = ElevenLabs(
  api_key="YOUR_API_KEY",
)

async def main():
    # 获取当前事件循环
    custom_loop = asyncio.get_running_loop()

    # 使用自定义循环创建 ClientTools,以避免“不同事件循环”错误
    client_tools = ClientTools(loop=custom_loop)

    # 注册你的工具
    async def get_weather(params):
        location = params.get("location", "Unknown")
        # 你的异步逻辑在这里
        return f"{location} 的天气:晴朗,72°F"

    client_tools.register("get_weather", get_weather, is_async=True)

    # 在对话中使用
    conversation = Conversation(
        client=elevenlabs,
        agent_id="your-agent-id",
        requires_auth=True,
        audio_interface=audio_interface,
        client_tools=client_tools
    )

asyncio.run(main())

自定义事件循环的优势:

  • 上下文传播:在异步操作中保持请求范围的状态
  • 资源复用:共享现有的异步资源,如 HTTP 会话或数据库连接池
  • 循环管理:防止“任务被附加到不同的事件循环”的错误
  • 性能:更好地控制异步任务的调度和执行

重要提示: 使用自定义循环时,你需要负责其生命周期。请勿在 ClientTools 仍在使用该循环时关闭它。

工具注册

注册 AI 代理在对话过程中可以调用的自定义工具:

client_tools = ClientTools()

# 同步工具
def calculate_sum(params):
    numbers = params.get("numbers", [])
    return sum(numbers)

# 异步工具
async def fetch_data(params):
    url = params.get("url")
    # 你的异步 HTTP 请求逻辑
    return {"data": "fetched"}

client_tools.register("calculate_sum", calculate_sum, is_async=False)
client_tools.register("fetch_data", fetch_data, is_async=True)

支持的语言

探索 所有模型与语言

贡献

我们非常重视对本 SDK 的开源贡献,但请注意,此库是通过程序化方式生成的。直接对该库进行的任何修改都需要迁移到我们的生成代码中,否则在下一次生成发布时会被覆盖。欢迎提交 PR 作为概念验证,但我们无法直接合并这些更改。建议您先提交一个问题,与我们讨论后再行动!

另一方面,对 README 的贡献始终受到热烈欢迎!

版本历史

v2.42.02026/04/07
v2.41.02026/04/01
v2.40.02026/03/23
v2.39.12026/03/12
v2.39.02026/03/12
v2.38.12026/03/06
v2.38.02026/03/05
v2.37.02026/02/27
v2.36.12026/02/19
v2.36.02026/02/16
v2.35.02026/02/09
v2.34.02026/02/02
v2.33.12026/01/30
v2.33.02026/01/29
v2.32.02026/01/26
v2.31.02026/01/19
v2.30.02026/01/13
v2.29.02026/01/09
v2.28.02026/01/05
v2.27.02025/12/15

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|昨天
图像数据工具视频

GPT-SoVITS

GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具,旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点,实现了“零样本”和“少样本”的快速建模:用户只需提供 5 秒参考音频即可即时生成语音,或使用 1 分钟数据进行微调,从而获得高度逼真且相似度极佳的声音效果。 该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能,极大地降低了数据准备和模型训练的技术门槛,让非专业人士也能轻松上手。 在技术亮点方面,GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成,还具备卓越的推理速度,在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音,还是进行多语言语音交互研究,GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。

56.4k|★★★☆☆|5天前
音频

TTS

🐸TTS 是一款功能强大的深度学习文本转语音(Text-to-Speech)开源库,旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点,让高质量的语音生成变得触手可及。 无论是希望快速集成语音功能的开发者,还是致力于探索前沿算法的研究人员,亦或是需要定制专属声音的数据科学家,🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型,让用户能够即刻上手,还提供了完善的工具链,支持用户利用自有数据训练新模型或对现有模型进行微调,轻松实现特定风格的声音克隆。 在技术亮点方面,🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言,并在整体性能上大幅提升,实现了低于 200 毫秒的超低延迟流式输出,极大提升了实时交互体验。此外,它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型,并支持调用上千个 Fairseq 模型,展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具,🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。

45k|★★★☆☆|1周前
音频开发框架图像

LocalAI

LocalAI 是一款开源的本地人工智能引擎,旨在让用户在任意硬件上轻松运行各类 AI 模型,包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛,无需昂贵的专用 GPU,仅凭普通 CPU 或常见的消费级显卡(如 NVIDIA、AMD、Intel 及 Apple Silicon)即可部署和运行复杂的 AI 任务。 对于担心数据隐私的用户而言,LocalAI 提供了“隐私优先”的解决方案,确保所有数据处理均在本地基础设施内完成,无需上传至云端。同时,它完美兼容 OpenAI、Anthropic 等主流 API 接口,这意味着开发者可以无缝迁移现有应用,直接利用本地资源替代云服务,既降低了成本又提升了可控性。 LocalAI 内置了超过 35 种后端支持(如 llama.cpp、vLLM、Whisper 等),并集成了自主 AI 代理、工具调用及检索增强生成(RAG)等高级功能,且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员,还是想要在个人电脑上体验最新 AI 技术的极客玩家,都能通过 LocalAI 获

44.8k|★★★☆☆|1周前
图像音频语言模型

bark

Bark 是由 Suno 推出的开源生成式音频模型,能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同,Bark 基于 Transformer 架构,不仅能模拟说话,还能生成笑声、叹息、哭泣等非语言声音,甚至能处理带有情感色彩和语气停顿的复杂文本,极大地丰富了音频表达的可能性。 它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点,让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员,还是希望快速原型设计的开发者,都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。 技术亮点方面,Bark 支持商业使用(MIT 许可),并在近期更新中实现了显著的推理速度提升,同时提供了适配低显存 GPU 的版本,降低了使用门槛。此外,社区还建立了丰富的提示词库,帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码,即可将创意文本转化为高质量音频,是连接文字与声音世界的强大桥梁。

39.1k|★★★☆☆|1周前
音频

ChatTTS

ChatTTS 是一款专为日常对话场景打造的生成式语音模型,特别适用于大语言模型助手等交互式应用。它主要解决了传统文本转语音(TTS)技术在对话中缺乏自然感、情感表达单一以及难以处理停顿、笑声等细微语气的问题,让机器生成的语音听起来更像真人在聊天。 这款工具非常适合开发者、研究人员以及希望为应用增添自然语音交互功能的设计师使用。普通用户也可以通过社区开发的衍生产品体验其能力。ChatTTS 的核心亮点在于其对对话任务的深度优化:它不仅支持中英文双语,还能精准控制韵律细节,自动生成自然的 laughter(笑声)、pauses(停顿)和 interjections(插入语),从而实现多说话人的互动对话效果。在韵律表现上,ChatTTS 超越了大多数开源 TTS 模型。目前开源版本基于 4 万小时数据预训练而成,虽主要用于学术研究与教育目的,但已展现出强大的潜力,并支持流式音频生成与零样本推理,为后续的多情绪控制等进阶功能奠定了基础。

39k|★★★☆☆|2天前
语言模型Agent开发框架