简洁优雅的ASMR转录与润色工具 🥵🥵🥵
一款简洁优雅的语音识别与文本润色工具,支持音频文件上传、从 asmrgay.com 及备用站在线导入/下载音频。
- 🎤 语音识别 - 支持上传音频文件或粘贴 asmrgay.com 及备用站 URL,调用硅基流动 ASR API 进行高精度语音转文字
- ✨ 智能润色 - 支持 OpenAI 兼容 LLM 润色,自动纠错、添加标点、分段排版(不再内置免费 Key)
- 🎯 自定义润色指令 - 可自定义润色规则,适配不同场景(会议记录、采访整理、翻译等)
- 💾 设置持久化 - 默认从服务器
.env读取,WebUI 修改后点击「保存」写回.env - 📊 实时进度 - 详细的上传进度、处理状态和运行日志
- 🎨 清新蓝调 UI - 匹配 Logo 的蓝色调配色,圆润卡片、流畅动画
# 克隆项目
git clone https://github.com/makoMakoGo/ASMR-Transformer.git
cd ASMR-Transformer
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 或指定端口
npm run dev -- -p 3092打开浏览器访问 http://localhost:3045 (或自定义端口)
- 复制模板并创建本地配置文件:
cp .env.example .env- 两种配置方式二选一:
- 直接编辑
.env - 打开 WebUI → 「设置」面板修改并点击「保存」写回
.env - 设置页顶部提供「保存 / 重新加载 / 放弃改动」用于管理未保存改动
- 直接编辑
可选环境变量:APP_SETTINGS_ENV_FILE(指定 WebUI 读写的 .env 文件路径,默认 ./.env)
使用硅基流动提供的免费 ASR 服务:
- 访问 硅基流动官网 注册账号
- 在控制台获取 API Key
- 在工具设置中填入 API Key
默认配置:
- API URL:
https://api.siliconflow.cn/v1/audio/transcriptions - 模型:
TeleAI/TeleSpeechASR
如需使用自己的 LLM API:
- 支持任何 OpenAI 兼容的 API(如 OpenAI、DeepSeek、通义千问等)
- 在设置中填写 API URL、模型名称和 API Key(如果你的服务不需要 Key,可留空)
可在设置中修改润色指令,例如:
- 默认:纠错、添加标点、分段排版
- 会议记录:提取要点、整理成会议纪要格式
- 翻译:将内容翻译成英文
仅支持以下站点的播放页面 URL / 直链:
www.asmrgay.com(主站)www.asmr.pw/www.asmr.loan/www.asmr.party/www.asmr.stream(备用站)
说明:播放页通过 AList API 解析后,真实下载链接可能会跳到 asmr.121231234.xyz(已允许)。其它域名会被直接拒绝。
- 在主界面"在线链接"输入框粘贴链接
- 选择操作:
- 下载到本地 - 仅下载音频到
./audio/目录,不转录 - 直接转录 - 下载并立即转录(需先配置 ASR API Key)
- 下载到本地 - 仅下载音频到
- 服务器会自动解析播放页面、跟随跳转、校验格式与大小(默认 100MB 内)
可选环境变量:FETCH_AUDIO_MAX_BYTES(单位字节,默认 104857600)
|
|
🎮 把聊天窗口变成 GalGame!
配合本项目食用更佳~ ASMR 转文字 → GalGame 对话框,二次元浓度拉满!
├── app/
│ ├── api/
│ │ ├── polish/route.ts # LLM 润色(SSE 流式)
│ │ ├── check-audio/route.ts # 检查在线音频元信息(支持 AList 播放页面解析)
│ │ ├── proxy-audio/route.ts # 流式代理在线音频(前端显示下载进度)
│ │ └── settings/route.ts # WebUI 设置读写(写入 .env)
│ ├── globals.css # 全局样式(清新蓝调设计系统)
│ ├── layout.tsx # 根布局
│ └── page.tsx # 主页面组件
├── lib/
│ ├── alist-utils.ts # AList 解析工具
│ ├── env-file.ts # .env 读写工具(WebUI 保存设置)
│ └── url-utils.ts # URL 校验/白名单/私网拦截/扩展名 MIME 映射
├── docs/images/ # 图片资源
├── tests/ # 测试文件
│ ├── fixtures/ # 测试资源
│ └── unit/ # 单元测试
└── package.json
1️⃣ 点击设置图标,填入硅基流动 API Key
↓
2️⃣ 粘贴在线链接 或 选择本地音频文件
↓
3️⃣ 点击「直接转录」或「开始转录」
↓
4️⃣ 查看原始结果,点击「润色」进行智能排版
↓
5️⃣ 复制润色后的文本使用
重要:本工具采用「即时中断」策略——当你刷新或关闭浏览器页面时,所有进行中的后端请求(音频下载、ASR 转录、LLM 润色)会立即中止,不会在后台继续运行。
| 操作 | 结果 |
|---|---|
| 刷新页面 | 当前任务中止,已完成的结果丢失 |
| 关闭标签页 | 当前任务中止,已完成的结果丢失 |
| 网络断开 | 当前任务中止 |
设计理由:
- 避免用户离开后 API 调用继续消耗资源/配额
- 行为可预测:关闭即停止,不会有「幽灵任务」在后台运行
- 如需保留结果,请在任务完成后再离开页面
# 运行单元测试
npm run test:unit
# 运行所有测试
npm test本项目以 Web 界面为主,接口路由仅用于页面内部功能(在线链接导入、润色等),不再提供对外 API 文档。
欢迎提交 Issue 和 Pull Request!
MIT © 2025 makoMakoGo


