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;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目