🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

鲸语桌宠语音 2177302423qqcom-byte/whale-voice

DeepSeek Harness
2177302423qqcom-byte14 天前有提交已提供中文文档扫描:无法判定

让桌宠用情感语音说话并翻唱歌曲

32.5/100
综合分
4
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 2177302423qqcom-byte/whale-voice
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · other
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/25) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/2(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

🐋 让桌宠拥有自己的声音:情感说话(IndexTTS2+R6)+ 唱歌翻唱(RVC 五步管线)。含三个 RVC 模型、软糯标尺与自动收敛工具。MIT

README

由 DeepSeek 最新模型翻译生成
🐋 Whale Voice — 让桌宠拥有自己的声音 给 AI 桌宠一套完整的本地语音系统:情感说话、唱歌翻唱、服务化接入。 全部本地推理,无云 API,零订阅费。 新来的小肥鱼 👉 先看 小肥鱼指南.md —— 那里写清了「你需要准备什么」和「怎么用」,不用读完全部文档。 ✨ 它能做什么 | 能力 | 引擎 | 延迟 | 离线 | 文档 | | 情感说话(10 种预设) | IndexTTS2 | ~2-5s/句 | ✅ | docs/speaking.md | | 唱歌翻唱(音色转换) | RVC | 3-8 分钟/首 | ✅ | docs/sing-pipeline.md | | 音色克隆(备选) | GPT-SoVITS | ~2-5s/句 | ✅ | docs/engines.md | | HTTP 服务(给桌宠接) | FastAPI 风格 daemon | 常驻 | ✅ | docs/daemon.md | 硬件:RTX 4060 Laptop 8GB 可跑(说话要 8GB,唱歌推理 4.3GB 起)。
展开完整文档(README 剩余 1 节)
🐋 Whale Voice — 让桌宠拥有自己的声音

给 AI 桌宠一套完整的本地语音系统:情感说话、唱歌翻唱、服务化接入。
全部本地推理,无云 API,零订阅费。

新来的小肥鱼 👉 先看 小肥鱼指南.md —— 那里写清了「你需要准备什么」和「怎么用」,不用读完全部文档。

✨ 它能做什么

| 能力 | 引擎 | 延迟 | 离线 | 文档 |
| 情感说话(10 种预设) | IndexTTS2 | ~2-5s/句 | ✅ | docs/speaking.md |
| 唱歌翻唱(音色转换) | RVC | 3-8 分钟/首 | ✅ | docs/sing-pipeline.md |
| 音色克隆(备选) | GPT-SoVITS | ~2-5s/句 | ✅ | docs/engines.md |
| HTTP 服务(给桌宠接) | FastAPI 风格 daemon | 常驻 | ✅ | docs/daemon.md |

硬件:RTX 4060 Laptop 8GB 可跑(说话要 8GB,唱歌推理 4.3GB 起)。

🎁 本仓自带的东西

| 内容 | 位置 | 说明 |
| 3 个 RVC 模型 | models/ | ★ MIT 许可,可直接用(说明) |
| 检索索引 | models/.index | 配 RVC 用的 FAISS 索引 |
| 实测知识库 | docs/learned/ | ★ 翻唱管线的踩坑与判据(翻唱实测知识) |
| 唱歌管线 | whale_sing/ + scripts/ | 6 个 CLI + 核心库,端到端验证过 |
| 软糯标尺 | scripts/measure_softness.py | 量任何音频离「软糯」多远(定义) |
| 自动收敛 | scripts/tune_softness.py | 自动调到标尺(迭代法) |

本仓不附带任何音色样本 —— 音色要你自己录,那样才是你的桌宠。
引擎本体(RVC / IndexTTS2 / Demucs)也不打包,都从官方仓库免费下载。
具体见 小肥鱼指南.md 的「你需要准备什么」。

🎯 三十秒上手

git clone https://github.com/<you>/whale-voice.git
cd whale-voice

── 说话 ──
pip install -r requirements.txt
python scripts/speak.py --text "主人你回来啦!" --emotion tender --out hello.wav
python scripts/tts_daemon.py --port 7864 # 起服务给桌宠接

── 唱歌 ──
pip install -r requirements-sing.txt
export RVC_DIR=/path/to/Retrieval-based-Voice-Conversion-WebUI
python scripts/separate.py --in song.wav --out work/
python scripts/source_fix.py --in work//vocals.wav --out work/clean.wav
python scripts/sing.py --in work/clean.wav --out work/rvc.wav \
--model models/whale_ft_e35_s1295.pth \
--index models/whale_added_IVF450_Flat_nprobe_1_whale_v2.index --pitch 0
python scripts/layers.py --in work/rvc.wav --src work/clean.wav --out work/vocal.wav
python scripts/mixdown.py --vocal work/vocal.wav --inst work/*/other.wav --out final.mp3 --scan

卡住了先跑诊断(它会告诉你差在哪一带):

python scripts/diagnose.py --src 源人声.wav --mine 我的人声.wav

📚 文档地图

| 你想做什么 | 看哪个 |
| 第一次用,想知道要准备什么 | ★ 小肥鱼指南.md |
| 把说话调好(情感/音色/显存) | docs/speaking.md |
| 让桌宠唱歌(五步流程) | docs/sing-pipeline.md |
| 训练自己的 RVC 模型 | docs/sing-training.md |
| 三个模型分别干什么 | docs/三个模型说明.md |
| 把服务接到桌宠 | docs/daemon.md |
| 报错了 | docs/troubleshooting.md |
| 想看实测数据与踩坑 | docs/learned/翻唱实测知识.md |

📐 架构

┌──────────────────────────────────┐
文本 ─────────────────►│ whale_indextts.py │ 情感(8 维向量)───────►│ · IndexTTS2 推理 │──► wav 音色参考 wav ─────────►│ · 情感向量 → emo_alpha 强度 │ └──────────────────────────────────┘ │ ┌───────────────▼──────────────────┐ 桌宠 ──── HTTP ────────►│ whale_tts_daemon.py :7864 │ (WPF / 浏览器) │ · 缓存命中(静态台词 100%) │ │ · 串行锁(防并发吃满内存) │ │ · edge-tts 兜底 │ └──────────────────────────────────┘

🎭 情感是怎么做的

核心思路:把情感作为独立输入,而不是靠参考音频「暗示」。

8 维情感向量

IndexTTS2 接受一个 8 维向量(顺序固定):

[happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]
开心 生气 难过 害怕 厌恶 忧郁 惊讶 平静

本项目内置 10 种预设(见 scripts/speak.py 的 EMOTIONS):

| 预设 | 向量 | 听感 |
| tender | happy .20 + calm .40 | 温柔贴耳 |
| happy | happy .55 + surp .10 + calm .15 | 开心 |
| excited | happy .60 + surp .30 | 兴奋 |
| shy | happy .25 + afraid .15 + surp .20 | 害羞 |
| sad | sad .55 + mel .15 | 难过 |
| sleepy | mel .30 + calm .45 | 困困 |
| curious | happy .15 + surp .45 | 好奇 |
| proud | happy .40 + calm .30 | 得意 |
| wronged | sad .35 + afraid .10 + mel .25 | 委屈 |
| neutral | calm .30 | 平静 |

⚠️ 向量会被自动缩放到 ≤ 0.8 —— 单项不要给太大,否则会被压缩掉。

为什么不用 GPT-SoVITS 做情感

踩过的坑:GPT-SoVITS 的情感完全来自参考音频。
我们手头只有「唱歌」素材 → 说话既没起伏、又洗不掉唱腔。

IndexTTS2 把情感独立出来,不再受参考素材情绪限制。

⚡ 8GB 显存优化

RTX 4060 Laptop 只有 8GB,IndexTTS2 默认会 OOM。三个措施:

| 措施 | 参数 | 省显存 |
| 权重加载后移到 GPU | --move-to-gpu | IndexTTS2 默认建在 CPU 上 |
| w2v-bert 用 FP16 | --w2v-fp16 | ~1GB |
| 扩散模型 FP16 | --s2mel-fp16 | 更快(略损质量,默认关)|

tts = IndexTTS2(cfg_path=..., model_dir=...,
use_fp16=True,
use_w2v_fp16=True, # 省 ~1GB
use_s2mel_fp16=False)
tts.to("cuda:0") # 关键:搬到 GPU

🚀 服务化(给桌宠接)

tts_daemon.py 是一个常驻 HTTP 服务:

| 特性 | 做法 |
| 缓存 | tts-cache/idx-{hash(text+emotion)}.wav,静态台词命中率 100%(90/90) |
| 串行锁 | SemaphoreSlim —— 防止多个大模型同时加载吃满内存 |
| 兜底 | IndexTTS2 失败 → edge-tts 在线合成 |
| 按需合成 | 只对动态句(带变量、运行时拼接)才合成 |

启动
python scripts/tts_daemon.py --port 7864

调用
curl -X POST http://127.0.0.1:7864/tts \
-H "Content-Type: application/json" \
-d '{"text":"主人你回来啦~","emotion":"tender"}' \
--output reply.wav

📂 项目结构

whale-voice/
├── README.md
├── LICENSE # MIT
├── requirements.txt
├── docs/
│ ├── speaking.md # 情感 TTS 详解 │ ├── daemon.md # 服务化与桌宠接入 │ ├── engines.md # 引擎选型(IndexTTS2 vs GPT-SoVITS vs edge-tts) │ └── troubleshooting.md # 排错手册 ├── scripts/ │ ├── speak.py # 情感说话(核心) │ ├── tts_daemon.py # HTTP 服务 │ ├── gsv_speak.py # GPT-SoVITS 备选 │ └── emotion_filter.py # 音频层情感后期(edge-tts 兜底用) ├── models/ # ★ 三个 RVC 模型 + 检索索引(自带) └── (音色样本请自备,本仓不附带) my_voice/ └── ref.wav # 你自己录的 3-10 秒干净人声

为什么不自带音色样本:用别人的音色做出来的是别人家的孩子。
录 3-10 秒你自己的声音,跑出来的才是你的桌宠 🐋

🚨 已知限制(诚实说明)

| 限制 | 原因 |
| 输出 22050Hz | IndexTTS2 声码器上限(bigvgan_v2_22khz_80band)—— 改采样率无效 |
| 首次加载 ~250 秒 | 模型较大;之后每句 2~5 秒 |
| GPT-SoVITS 参考音频必须 3~10 秒 | 超过会报错 |
| GPT-SoVITS 的 prompt_text 必须提供 | 为空会导致语速混乱 |

📜 许可与致谢

- 本项目:MIT
- 依赖引擎:IndexTTS2 · GPT-SoVITS · edge-tts
- 音色素材:用户自行提供(本项目不附带任何音色模型)

⚠️ 使用须知:请勿用本项目未经授权模仿他人声音。
预览分享卡片长什么样 ↓2177302423qqcom-byte/whale-voice
分享 · DeepSeek Harness Hub
2177302423qqcom-byte/whale-voice

让桌宠用情感语音说话并翻唱歌曲

这是你的仓库?认领条目

回到顶部