lobe-tts

GitHub
783 100 简单 1 次阅读 4天前MIT数据工具插件音频
AI 解读 由 AI 自动生成,仅供参考

Lobe TTS 是一款专为服务器端和浏览器环境打造的高质量语音合成(TTS)与语音识别(STT)开源库。它源自 Lobe Chat 项目的实战需求,旨在解决开发者在构建对话式应用时,缺乏统一、可靠且功能丰富的前端语音处理方案的痛点。

过去,实现自然的语音交互往往需要自行处理复杂的数据转换、音频进度管理及可视化展示。Lobe TTS 将这些繁琐工作封装为易用的工具,让开发者仅需少量代码即可集成媲美 OpenAI 的语音生成能力。目前,它已支持 Edge Speech、Microsoft Azure 及 OpenAI 等多种主流服务接口。

这款工具非常适合前端工程师、全栈开发者以及希望为应用添加语音交互功能的研究人员。其独特亮点在于“两端通吃”的架构:在服务器端,它能以极简的代码快速生成语音文件;在浏览器端,则提供了完善的 React Hooks 和可视化音频组件,轻松实现播放、暂停、拖拽进度条及自定义波形样式等功能。无论你是想快速原型验证,还是构建生产级语音应用,Lobe TTS 都能提供稳定且灵活的技术支持,帮助你轻松打造如真人般自然的语音交互体验。

使用场景

某在线教育团队正在开发一款支持多语言互动的 AI 口语陪练应用,需要让用户能实时听到流畅自然的语音反馈。

没有 lobe-tts 时

  • 集成成本极高:开发者需分别对接 Azure、OpenAI 等不同厂商的 API,处理复杂的鉴权、数据格式转换及错误重试逻辑,后端代码冗长且难以维护。
  • 前端交互简陋:浏览器端缺乏现成的音频可视化组件,用户只能看到单调的“播放/暂停”按钮,无法直观感知语音进度或进行拖拽跳转,体验割裂。
  • 多端适配困难:服务端生成与浏览器端播放的逻辑完全割裂,难以统一音频流的管理标准,导致在不同设备上出现加载延迟或播放不同步的问题。
  • 声音选择受限:切换不同语种或音色需要重写大量底层逻辑,难以快速响应产品对“拟人化”声音多样性的需求。

使用 lobe-tts 后

  • 极速服务部署:仅需约 15 行代码即可在服务端调用 EdgeSpeechTTS 或 OpenAITTS,自动处理缓冲与格式转换,迅速获得媲美商业级的高清语音输出。
  • 沉浸式交互体验:直接复用其提供的 React Hooks 与可视化组件,轻松实现带有动态波形图、可拖拽进度条的播放器,让用户感觉在与真人对话。
  • 全链路统一管理:一套库同时覆盖 Server 与 Browser 场景,统一了音频流的生成、加载与控制逻辑,显著降低了多端适配的测试与维护成本。
  • 灵活音色切换:通过简单的配置对象即可动态切换全球多种语言及音色(如 en-US-GuyNeural),快速满足个性化教学场景需求。

lobe-tts 通过一站式解决从后端合成到前端可视化的全链路难题,让开发者能以极低成本为应用注入高质量的自然语音交互能力。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes该工具是基于 TypeScript 开发的库,支持服务端(Node.js/Bun)和浏览器端(React)运行。纯 JavaScript/TypeScript 实现,无需 Python 环境或 GPU 加速。服务端若在 Node.js 环境下运行,需安装 'ws' 包以补充 WebSocket 支持;若使用 Next.js SSR,需在配置中添加 transpilePackages。推荐使用 Bun、pnpm 或 npm 进行安装。
python未说明
ws (Node.js WebSocket polyfill)
lobe-tts hero image

快速开始

Lobe TTS

一款高质量且可靠的服务器端与浏览器端TTS/STT库



文档 · 更新日志 · 报告问题 · 请求功能

目录

目录

📖 简介

🤖 Lobe Chat 支持文本转语音(TTS)和语音转文本(STT)技术,使我们的应用能够将文本消息转换为清晰的语音输出, 让用户可以像与真人交谈一样与我们的对话代理进行互动。用户还可以从多种声音中选择与代理搭配。

在实现这一功能的过程中,我们发现市场上并没有令人满意的前端 TTS 库。 因此,我们投入了大量精力,包括数据转换、音频进度管理以及语音可视化等工作。

[!NOTE]

因此,我们决定将我们的实现进一步完善并开源,希望能帮助那些希望实现 TTS 的开发者。 @lobehub/tts 是一个用 TypeScript 开发的高质量 TTS 工具包,支持在服务器端和浏览器端使用。

  • 服务器端: 只需 15 行代码,即可实现与 OpenAI 的 TTS 服务相媲美的高质量语音生成能力。目前支持 EdgeSpeechTTS、MicrosoftTTS、OpenAITTS 和 OpenAISTT。
  • 浏览器端: 提供高质量的 React Hooks 和可视化音频组件,支持加载、播放、暂停、拖动时间轴等常用功能。此外,还提供了非常丰富的音频轨道样式调整功能。

📦 使用方法

在服务器上生成语音

使用 Bun 运行以下脚本:bun index.js

// index.js
import { EdgeSpeechTTS } from '@lobehub/tts';
import { Buffer } from 'buffer';
import fs from 'fs';
import path from 'path';

// 实例化 EdgeSpeechTTS
const tts = new EdgeSpeechTTS({ locale: 'en-US' });

// 创建语音合成请求载荷
const payload = {
  input: '这是一个语音演示',
  options: {
    voice: 'en-US-GuyNeural',
  },
};

// 调用 create 方法进行语音合成
const response = await tts.create(payload);

// 生成语音文件
const mp3Buffer = Buffer.from(await response.arrayBuffer());
const speechFile = path.resolve('./speech.mp3');

fs.writeFileSync(speechFile, mp3Buffer);

https://github.com/lobehub/lobe-tts/assets/28616219/3ab68c5a-2745-442e-8d66-ca410192ace1

[!IMPORTANT]
在 Node.js 上运行

由于 Node.js 环境缺少 WebSocket 实例,我们需要对 WebSocket 进行 polyfill。可以通过导入 ws 包来实现。

// 在文件顶部引入
import WebSocket from 'ws';

global.WebSocket = WebSocket;

使用 React 组件

import { AudioPlayer, AudioVisualizer, useAudioPlayer } from '@lobehub/tts/react';

export default () => {
  const { ref, isLoading, ...audio } = useAudioPlayer(url);

  return (
    <Flexbox align={'center'} gap={8}>
      <AudioPlayer audio={audio} isLoading={isLoading} style={{ width: '100%' }} />
      <AudioVisualizer audioRef={ref} isLoading={isLoading} />
    </Flexbox>
  );
};

https://github.com/lobehub/lobe-tts/assets/28616219/c2638383-314f-44c3-b358-8fbbd3028d61

📦 安装

[!IMPORTANT]
本包仅支持 ESM 格式(https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c)。

要安装 @lobehub/tts,请运行以下命令:

$ pnpm i @lobehub/tts

$ bun add @lobehub/tts

与 Next.js 集成

[!NOTE]
为了正确地与 Next.js 的 SSR 配合使用,请在 next.config.js 中添加 transpilePackages: ['@lobehub/tts']。例如:

const nextConfig = {
  transpilePackages: ['@lobehub/tts'],
};

⌨️ 本地开发

你可以使用 Github Codespaces 进行在线开发:

或者克隆仓库进行本地开发:

$ git clone https://github.com/lobehub/lobe-tts.git
$ cd lobe-tts
$ bun install
$ bun dev

🤝 贡献

我们欢迎各种形式的贡献。如果你有兴趣参与代码贡献,不妨查看我们的 GitHub Issues,加入其中,向我们展示你的实力吧。

🩷 赞助

每一份支持都至关重要,你的一次性捐赠就像夜空中闪耀的流星,为我们的支持星河增添了一抹亮色!你是那颗划破天际的流星,以迅捷而明亮的光芒照亮我们的前行之路。感谢你对我们的信任——你的慷慨正引领我们一步步实现使命,每一次闪耀都是我们前进的动力。

🔗 链接

更多产品

  • 🤯 LobeHub - 一个开源、可扩展(支持函数调用)、高性能的聊天机器人框架。它支持一键免费部署你的私有 ChatGPT/LLM Web 应用。
  • 🅰️ Lobe Theme - Stable Diffusion WebUI 的现代主题,拥有精致的界面设计、高度可定制的 UI 以及提升效率的功能。
  • 🧸 Lobe Vidol - 使用 Lobe Vidol 体验虚拟偶像创作的魔力,享受我们精美的 UI 设计,借助 MMD 舞蹈支持一起舞动,并进行流畅的对话。

设计资源

  • 🍭 Lobe UI - 用于构建 AIGC Web 应用的开源 UI 组件库。
  • 🥨 Lobe Icons - 热门 AI/LLM 模型品牌的 SVG Logo 和图标合集。
  • 📊 Lobe Charts - 基于 recharts 构建的 React 现代化图表组件。

开发资源

  • 🎤 Lobe TTS - 一款高质量且可靠的 TTS/STT 库,适用于服务器端和浏览器端。
  • 🌏 Lobe i18n - 用于国际化翻译流程的自动化 AI 工具。

更多资源


📝 许可证

版权所有 © 2023 LobeHub
本项目采用 MIT 许可证。

版本历史

v5.1.22026/03/02
v5.1.12026/03/02
v4.0.22025/12/27
v4.0.12025/12/27
v4.0.02025/12/25
v3.0.22025/12/22
v3.0.12025/12/22
v3.0.02025/12/20
v2.0.12025/05/15
v2.0.02025/04/28
v1.28.42025/04/05
v1.28.32025/03/05
v1.28.22025/03/03
v1.28.12025/03/03
v1.28.02025/01/07
v1.27.02025/01/07
v1.26.02025/01/06
v1.25.82024/11/25
v1.25.8-beta.22024/11/25
v1.25.72024/11/24

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|昨天
Agent开发框架图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|今天
插件开发框架

ML-For-Beginners

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

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

OpenHands

OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。

70.7k|★★★☆☆|今天
语言模型Agent开发框架

gpt4free

gpt4free 是一个由社区驱动的开源项目,旨在聚合多种可访问的大型语言模型(LLM)和媒体生成接口,让用户能更灵活、便捷地使用前沿 AI 能力。它解决了直接调用各类模型时面临的接口分散、门槛高或成本昂贵等痛点,通过统一的标准将不同提供商的资源整合在一起。 无论是希望快速集成 AI 功能的开发者、需要多模型对比测试的研究人员,还是想免费体验最新技术的普通用户,都能从中受益。gpt4free 提供了丰富的使用方式:既包含易于上手的 Python 和 JavaScript 客户端库,也支持部署本地图形界面(GUI),更提供了兼容 OpenAI 标准的 REST API,方便无缝替换现有应用后端。 其技术亮点在于强大的多提供商支持架构,能够动态调度包括 Opus、Gemini、DeepSeek 等多种主流模型资源,并支持 Docker 一键部署及本地推理。项目秉持社区优先原则,在降低使用门槛的同时,也为贡献者提供了扩展新接口的便利框架,是探索和利用多样化 AI 资源的实用工具。

66k|★★☆☆☆|3天前
插件语言模型Agent

scikit-learn

scikit-learn 是一个基于 Python 构建的开源机器学习库,依托于 SciPy、NumPy 等科学计算生态,旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口,涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具,内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。 对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言,scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点,让用户无需重复造轮子,只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。 其核心技术亮点在于高度一致的 API 设计风格,所有估算器(Estimator)均遵循相同的调用逻辑,极大地降低了学习成本并提升了代码的可读性与可维护性。此外,它还提供了强大的模型选择与评估工具,如交叉验证和网格搜索,帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目,scikit-learn 以其稳定性、详尽的文档和活跃的社区支持,成为连接理论学习与工业级应用的最

65.6k|★☆☆☆☆|昨天
开发框架其他数据工具