项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1290
使用教程
环境要求
- Node.js 与 yarn 包管理器(用于执行 yarn && yarn start)
- Docker(用于启动 textract 和 ffmpeg-api 依赖服务,或使用 Docker 一键启动)
- PostgreSQL 数据库,需手动创建名为 twocast 的库
- Fish Audio API Key(TTS 必填),可选 Minimax、Google Gemini
- OpenRouter 的 LLM API Key 与 x.ai 的 Search API Key
安装与启动步骤
-
1克隆项目代码
从 GitHub 拉取 Twocast 源码到本地,之后所有命令都在项目根目录执行。
git clone https://github.com/panyanyany/Twocast.git cd Twocast -
2启动依赖服务
用 Docker 启动 textract(文档解析,映射 8080)与 ffmpeg-api(音频处理,映射 8081)两个容器。
docker run -t -d --restart always -p 8080:8080 -e PORT=8080 --name textract bespaloff/textract-rest-api:v4.0.2 docker run -d --restart always --name ffmpeg-api -p 8081:3000 kazhar/ffmpeg-api -
3配置环境变量
复制示例文件生成 .env,然后按下方配置项填写 TTS 与 LLM 的密钥。
cp .env.example .env -
4初始化数据库
先手动创建名为 twocast 的数据库,修改 .env 中 DATABASE_URL 指向它,再推送表结构。
npx drizzle-kit push -
5启动项目
安装依赖并启动服务,首次会下载较多 npm 包,请耐心等待。
yarn && yarn start -
6Docker 一键启动
不想本地配置依赖时,改用 Docker 方式启动;README 提示遇到问题应优先回到本地安装。
cp .env.docker .env docker compose up
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
FISH_AUDIO_TOKEN | 是 | Fish Audio 的 TTS API Key,语音合成主通道 | your_fish_audio_token |
LLM_API_KEY | 是 | OpenRouter 的对话模型 API Key,用于生成播客脚本 | sk-or-v1-xxxxxxxx |
LLM_SEARCH_API_KEY | 否 | x.ai 的搜索 API Key,用于话题/链接检索 | xai-xxxxxxxx |
DATABASE_URL | 是 | PostgreSQL 连接串,需指向已创建的 twocast 库 | postgres://user:pass@localhost:5432/twocast |
MINIMAX_TOKEN | 否 | Minimax 平台 API Key,启用后可作为 TTS 备选 | your_minimax_token |
GEMINI_TOKEN | 否 | Google Gemini API Key,可选且成本更高 | your_gemini_token |
如何确认成功
docker ps 能看到 textract 与 ffmpeg-api 容器在运行,且 yarn start 终端输出无报错,即视为启动成功。
常见问题
Q:Docker 一键启动报错怎么办?
A:README 明确建议:如果使用 Docker 方式遇到问题,请优先改用 Method 1 本地安装方式部署。
Q:如何生成 5-9 分钟的长播客?
A:选择 List Page(列表页)生成方式即可,普通话题、链接、文档方式生成的是 3-5 分钟节目。
Q:必须配置三种 TTS 平台吗?
A:不必。Fish Audio 的 FISH_AUDIO_TOKEN 填入即可,Minimax 和 Gemini 为可选,需分别设置 MINIMAX_ENABLED=1、GEMINI_ENABLED=1 才生效。
Q:npx drizzle-kit push 报数据库错误?
A:确认 PostgreSQL 中已创建 twocast 数据库,并且 .env 里的 DATABASE_URL 指向正确的主机、端口与库名后再执行。
注意事项
- 项目支持 Fish Audio、Minimax、Google Gemini 三种语音合成平台,可多语言输出。
- 生成结果包含音频、大纲和脚本三部分,音频支持下载。
- Gemini 方案成本更高,属于可选配置。
- 官方在线版为 twocast.app,可先体验效果再决定自托管。
核心亮点
- 直接对标 NotebookLM,但开源可自托管,数据隐私可控
- 支持多语言混合生成,适合双语学习或国际内容创作
- 提供多种 AI 音色,对话自然度较高,生成流程自动化
不足之处
- 文档和社区生态尚在早期,示例和教程不够丰富
- 音色和语言覆盖有限,部分小众语言支持可能不完善
适用场景
- 将博客文章或报告快速转化为双语播客,用于内容分发
- 语言学习者通过 AI 对话音频练习听力与口语
- 自媒体创作者批量生成音频内容,降低制作成本
替代项目
NotebookLM、Podcastly、AudioPen
下一篇:GenVC
同类项目推荐
wavegrad
开源
几步生成高保真语音,比 WaveNet 快几十倍
A fast, high-quality neural vocoder.
opencode-smart-voice-notify
开源
编码时用语音播报任务结果,不错过任何关键状态。
Smart voice notification plugin for OpenCode with multiple TTS engines (ElevenLabs, ···
ng2-pdfjs-viewer
开源
在 Angular 里快速嵌入 PDF 查看器,支持表单和自定义
#1 Angular PDF viewer
metavoice-src
开源
几秒样本克隆音色,生成有情感的真人级语音
Foundational model for human-like, expressive TTS
用 C# 快速接入 ElevenLabs,实现高质量语音合成。
A Non-Official ElevenLabs RESTful API Client for dotnet
riffusion-hobby
开源
用 Stable Diffusion 实时生成音乐,输入文字即出旋律
Stable diffusion for real-time music generation
ComfyUI-VoxCPM
开源
在 ComfyUI 里拖拽节点,即可生成高表现力语音并克隆任意声音。
ComfyUI node for highly expressive speech and realistic zero-shot voice cloning
TTS
开源
Java 项目直接调用的文本转语音工具
voicefixer
开源
一键修复受损语音,去噪去混响去削波,让声音更清晰
General Speech Restoration
