lobehub/lobe-tts

🎤 Lobe TTS - A high-quality & reliable TTS/STT library for Server and Browser

Lobe TTS – 面向 JavaScript/TypeScript 的文本转语音与语音转文本

它是什么

  • 一个小型纯 JavaScript 库(@lobehub/tts),可将文本转换为语音音频,并将语音音频转录回文本。
  • 既可在服务器端(Node.js / Bun)运行,也可在浏览器中运行,并附带现成的 React hooks 和 UI 组件,便于快速集成。

为什么你可能使用它

  • 统一 API – 相同的函数调用可与多个提供商(Microsoft Edge、Microsoft Speech、OpenAI 或浏览器内置的语音合成)配合使用。无需更改应用代码即可切换后端。
  • 服务器端生成 – 在后端创建 MP3 文件并发送给客户端,适用于预渲染的播客、语音通知或无障碍功能。
  • 客户端播放 – 在 React 应用中,您可以立即开始说话,内置的 <AudioPlayer> 显示进度、允许用户暂停,并提供下载按钮。
  • 长文本处理 – 库会流式传输音频,因此长段落可以在整个文件准备好之前开始播放,提供更流畅的用户体验。
  • AI 友好文档 – 它发布 skills.md 和 llms.txt 文件,使 AI 编码助手(Claude、Cursor、Copilot 等)能够读取 API 并自动生成代码。

如何开始

# 安装核心包(仅 ESM)
pnpm i @lobehub/tts
  • 对于 React,您还需要 @lobehub/ui、react@^19 和 react-dom@^19。

服务器端示例(Bun / Node 22+)

import { EdgeSpeechTTS } from '@lobehub/tts';
import fs from 'node:fs';

const tts = new EdgeSpeechTTS({ locale: 'en-US' });
const response = await tts.create({
  input: 'This is a speech demonstration',
  options: { voice: 'en-US-GuyNeural' }
});
fs.writeFileSync('./speech.mp3', Buffer.from(await response.arrayBuffer()));

(如果您在较旧的 Node 上运行,请提供全局 WebSocket 实现。)

React 用法

import { AudioPlayer, useEdgeSpeech } from '@lobehub/tts/react';
import { Button, Flexbox } from '@lobehub/ui';

export default function Demo() {
  const { isGlobalLoading, start, stop, audio } = useEdgeSpeech('Hello from Lobe TTS', {
    options: { voice: 'en-US-GuyNeural' }
  });
  return (
    <Flexbox gap={8}>
      <Button loading={isGlobalLoading} ? stop : start}>
        Speak
      </Button>
      <AudioPlayer audio={audio} isLoading={isGlobalLoading} />
    </Flexbox>
  );
}

如有需要,在 Next.js 配置中添加 transpilePackages: ['@lobehub/tts']。

包结构

包 用途
@lobehub/tts 核心 API – 生成语音或转录音频,可在任何 JS 环境中使用。
@lobehub/tts/server 通过您自己的 API 路由代理 OpenAI 语音/转录的辅助工具。
@lobehub/tts/react React hooks(useEdgeSpeech、useOpenAISpeech 等)和 <AudioPlayer> 组件。

文档与社区

  • 完整文档、实时演示和 API 参考位于 tts.lobehub.com。
  • 该项目是开源的(MIT),欢迎通过 GitHub Issues 和 Pull Requests 贡献。
  • 可通过 OpenCollective 进行赞助。

谁可能受益

  • 构建需要语音反馈或语音命令的 Web 应用的前端开发者。
  • 需要按需生成音频文件的后端服务(例如,自动公告、无障碍工具)。
  • 已经使用 Lobe 的 UI 组件库并希望获得一致、即插即用的语音解决方案的团队。

以上所有细节均直接取自仓库的 README;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目