This commit is contained in:
xsl
2026-05-24 10:40:33 +08:00
parent 9c02fbcd74
commit af3a23520d
520 changed files with 0 additions and 5816 deletions
-893
View File
@@ -1,893 +0,0 @@
# AI 音频生产 SOP · v1.0
> **适用项目**:《林夏》(林夏.md),同时可复用于本系列其他黑屏耳机项目。
> **使用对象**:项目主控 1 人 + 音频执行 1–2 人,无需专业录音棚。
> **预期产出**:约 25 分钟净时长的角色语音 + 4 段 BGM + 60+ 短音效 + 8 段环境底噪。
> **预期工时**:4 周(含 1 周返工窗口)。
> **预期音频成本**:¥8001200。
---
## 0. 文档使用方法
- 第 1–3 章是**总规约**:所有人开工前必读。
- 第 4 章是**项目专用配置**:每开新项目要复制一份重新填写。
- 第 5–8 章是**四类资产的生产 SOP**:执行人按章节对照操作即可。
- 第 9–10 章是**后期与验收**:产出每一批资产后强制走一遍。
- 第 11 章是**版权归档**:每个文件都要登记。
- 附录是**复用资源**:Prompt 模板库 / 命名词典 / 验收清单 PDF 版。
---
## 1. Pipeline 总览
```
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ T0 脚本定稿 │ → │ T1 音频拆条 │ → │ T2 生产排期 │
│ (编剧) │ │ (音频主控) │ │ (音频主控) │
└──────────────────┘ └──────────────────┘ └──────────────────┘
┌───────────────────────────┬───────────────────┬────────────────┐
↓ ↓ ↓ ↓
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ T3a TTS生产 │ │ T3b 音乐生产 │ │ T3c 音效生产 │ │ T3d 环境采样 │
│ MiniMax/豆包 │ │ Suno V4 │ │ ElevenLabs │ │ Freesound │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
↓ ↓ ↓ ↓
└───────────────────────────┴───────────────────┴────────────────┘
┌─────────────────────────┐
│ T4 后期统一处理 │
│ (响度/降噪/淡入淡出) │
└─────────────────────────┘
┌─────────────────────────┐
│ T5 QA 验收 │
│ (3 副耳机盲听) │
└─────────────────────────┘
┌─────────────────────────┐
│ T6 入库 + 交付 │
│ (Git LFS + 版权登记) │
└─────────────────────────┘
```
---
## 2. 工具栈与账号清单
### 2.1 必备工具表
| 用途 | 工具 | 版本/方案 | 月费 | 国内访问 | 备注 |
|---|---|---|---|---|---|
| **中文 TTS 主力** | MiniMax Speech 02 (HD) | API | 按字数 ¥200500 | ✅ 直连 | 中文情绪戏首选 |
| **中文 TTS 备用** | 字节豆包 Voice | API | ¥100300 | ✅ 直连 | 系统女声 + 男声补位 |
| **TTS 兜底** | 阿里通义听悟 / 腾讯云 TTS | API | ¥100200 | ✅ 直连 | 备选 |
| **海外 TTS** | ElevenLabs v3 | Creator $22/月 | ≈¥160 | ⚠️ 需出海 | 仅在 MiniMax 表现不够时备用 |
| **AI 音乐** | Suno V4 / V4.5 | Pro $10/月 | ≈¥75 | ⚠️ 需出海 | 国内备选:天工 SkyMusic |
| **AI 音效** | ElevenLabs Sound Effects | 含在上面套餐内 | — | ⚠️ 需出海 | 国内备选:阿里通义万相音效 |
| **环境采样** | Freesound | 免费(CC0/CC-BY | 0 | ✅ 直连 | 注意标注作者 |
| **环境采样补充** | Epidemic Sound | $15/月 个人版 | ≈¥110 | ✅ 直连 | 有 SFX/BGM 双库 |
| **音频后期** | iZotope RX 11 + REAPER | 一次性 | ≈¥2000 | ✅ 直连 | 团队共享一份 |
| **响度计** | Youlean Loudness Meter 2 | Free 版即可 | 0 | ✅ 直连 | LUFS 监控必备 |
| **格式转换** | FFmpeg | Free | 0 | ✅ 直连 | 命令行批处理 |
| **资源管理** | Git LFS + Notion | — | 0 | ✅ 直连 | 资产 + 版权登记表 |
### 2.2 账号准备清单(开工 D-7 完成)
- [ ] MiniMax 开发者账号 + 充值 ¥500 起
- [ ] 字节豆包账号 + 充值 ¥300 起
- [ ] ElevenLabs Creator 订阅(含 Sound Effects 100k credits/月)
- [ ] Suno Pro 订阅(500 首/月,足够)
- [ ] Freesound 注册账号(用于下载追踪)
- [ ] Epidemic Sound 个人订阅
- [ ] Git LFS 启用 + S3/OSS 备份桶
- [ ] Notion 中建好「音频版权登记表」模板(见 §11.2)
### 2.3 海外工具的合规访问方式
- 团队主控通过合规企业 VPN(如阿里云国际版、腾讯云海外节点)访问。
- 不在产品线上代码中嵌入任何海外 API key——所有 Suno / ElevenLabs 资源**全部线下生产、本地存储、入库后离线打包随 App 发布**。
- App 运行时**不调用任何海外服务**。
---
## 3. 文件命名与目录规范
### 3.1 顶层目录结构
```
audio/
├── 00_raw/ # 原始生成物,不进版本库
│ ├── tts/
│ ├── music/
│ ├── sfx/
│ └── ambience/
├── 01_processed/ # 后期处理后,进 Git LFS
│ ├── tts/
│ ├── music/
│ ├── sfx/
│ └── ambience/
├── 02_final/ # 打包入 App 的最终版
│ └── (按关卡组织)
├── 03_qa_reports/ # 每批 QA 报告
└── 99_legal/ # 版权登记表 + 授权证明
```
### 3.2 文件命名规范
**格式**`{关卡号}_{时间码}_{角色}_{形态}_{序号}_{版本}.{ext}`
| 字段 | 取值 | 说明 |
|---|---|---|
| 关卡号 | `lv11` 等 | 项目代号 |
| 时间码 | `2103``2245` | 剧内时间,HHMM |
| 角色 | `mom` `azhe` `xiaomei` `zhounan` `hr` `anan` `system` `delivery` `unknown` `dorm-a` `dorm-b` `dorm-c` `self-3y` | 见 §4.1 角色代号表 |
| 形态 | `call` `voice` `text` `sys` | 通话/微信语音/文字 TTS/系统提示 |
| 序号 | `01``02`… | 同角色同时间码下的多条消息 |
| 版本 | `v1``v2``final` | 迭代版本 |
**示例**
- `lv11_2103_mom_call_01_final.wav` — 妈妈 21:03 第一通电话最终版
- `lv11_2245_xiaomei_voice_01_v2.wav` — 小美 22:45 醉语音第二稿
**禁止**
- 中文文件名(避免编码与 Git 兼容问题)
- 空格、`(``)``#` 等特殊字符
- 大写字母(统一小写)
### 3.3 音频技术规格统一
| 字段 | 规格 | 说明 |
|---|---|---|
| **采样率** | 48 kHz | 全程统一,避免重采样杂音 |
| **位深** | 24-bit(生产)/ 16-bit(最终) | 后期保留 24-bit 头,导出降到 16-bit |
| **声道** | 单声道(角色语音)/ 立体声(音乐与环境) | 严格区分 |
| **格式** | `.wav`(生产中)/ `.ogg` Vorbis q=5(入包) | 入包再压缩,节省体积 |
| **响度** | -16 LUFS(角色语音)/ -18 LUFS(音乐)/ -22 LUFS(环境) | 详见 §9.1 |
| **峰值上限** | -1 dBTP | 避免溢出 |
---
## 4. 角色 Voice 配置表(项目专用)
> 本章是项目工程师的"配音演员花名册"。**每个角色的 voice id、参数、prompt 前缀全部在这里固定下来**,避免不同执行人产出风格漂移。
### 4.1 角色代号表
| 角色 | 代号 | 净时长估算 | 主语种 | 形态 |
|---|---|---|---|---|
| 妈妈 | `mom` | ~7 min | 中文 | 电话×2 + 微信文字×1 + 语音×14'17"长戏) |
| 阿哲(前任) | `azhe` | ~2 min | 中文 | 微信语音×1 + 电话×1 |
| 小美(闺蜜) | `xiaomei` | ~3 min | 中文 | 微信语音×3(含 1'20"醉戏) |
| HR 王姐 | `hr` | ~1 min | 中文 | 微信语音×1 |
| 室友安安 | `anan` | ~30 s | 中文 | 微信语音×1 |
| 寝室群 A/B/C | `dorm-a` `dorm-b` `dorm-c` | ~2 min 共 | 中文 | 群语音×5 |
| 周南(同桌) | `zhounan` | ~5 min | 中文 | 微信语音×5(含 4 段长讲述) |
| 外卖小哥 | `delivery` | ~10 s | 中文(北方腔) | 电话×1 |
| 系统 TTS | `system` | ~2 min | 中文 | 全局提示 |
| 未知号码 | `unknown` | 无台词 | — | 仅环境呼吸声 |
| 3 年前的自己 | `self-3y` | ~50s × 3 版 | 中文 | 备忘录录音(明朗/迷茫/温柔三版预录) |
| 林夏的笑(隐藏) | `self-laugh` | ~3s | — | 仅结局 E 播放,全片唯一林夏自己的声音 |
### 4.2 角色 Voice 配置卡
每张卡固定一个角色的所有参数。**生产时严格按卡操作**。
---
#### 卡 01 · `mom`(妈妈)
| 项 | 值 |
|---|---|
| 主用 TTS | MiniMax Speech 02 HD |
| Voice ID | `Chinese_Mandarin_Warm_Auntie_v3`(占位,待实际选定后回填) |
| Speed | 0.92(略慢) |
| Volume | 1.0 |
| Pitch | 0 |
| Emotion | `gentle` |
| 备用方案 | 第 16 条 4 分钟长戏改用**克隆方案**:找一位 50 岁左右真人录 30 秒原声,MiniMax Voice Cloneemotion 提到 `tender` |
| Prompt 前缀 | `<语气:温柔克制,不哭不闹,西北口音淡化,语速比常人慢半拍>` |
| SSML 控制 | 长句中段加 `<break time="500ms"/>`,结尾"晚安"前加 `<break time="1.2s"/>` |
| 后期处理 | 加 -3 dB 高频衰减(让"妈妈感"更柔),轻 reverb wet 8% 模拟客厅 |
---
#### 卡 02 · `azhe`(阿哲 / 前任)
| 项 | 值 |
|---|---|
| 主用 TTS | 字节豆包 Voice |
| Voice ID | `灿烂青年男声-v2`(北京口音淡,理性偏冷) |
| Speed | 1.05 |
| Volume | 0.95 |
| Pitch | -1 |
| Emotion | `neutral` |
| Prompt 前缀 | `<语气:礼貌但已抽离,像在跟同事说话,不带感情起伏>` |
| 后期处理 | -2 dB 中频,让声音"闷"一点,模拟"已经远了"的距离感 |
---
#### 卡 03 · `xiaomei`(小美 / 闺蜜)
| 项 | 值 |
|---|---|
| 主用 TTS | MiniMax Speech 02 |
| Voice ID | `Chinese_Mandarin_Lively_Girl_v2` |
| Speed | 1.10(前两条快)/ 0.95(醉语音慢) |
| Volume | 1.0 |
| Pitch | +1 |
| Emotion | `cheerful`(前两条)/ `melancholic + drunk`(第 9 条) |
| Prompt 前缀 | `<语气:北漂女孩,活泼略大大咧咧,会爆粗,醉酒段口齿模糊但不夸张>` |
| 醉戏特殊处理 | 在 SSML 中插入 `<break time="800ms"/>` 模拟停顿 + 末句故意拉长元音;后期再叠 5% 房间混响 + 微弱酒吧 BGM 底噪 |
---
#### 卡 04 · `hr`HR 王姐)
| 项 | 值 |
|---|---|
| 主用 TTS | 字节豆包 Voice |
| Voice ID | `知性女声-成熟款` |
| Speed | 1.00 |
| Pitch | 0 |
| Emotion | `gentle + apologetic` |
| Prompt 前缀 | `<语气:38 岁职场女性,疲惫的善意,公事公办里带一点点歉意>` |
---
#### 卡 05 · `anan`(室友安安)
| 项 | 值 |
|---|---|
| 主用 TTS | MiniMax Speech 02 |
| Voice ID | `Chinese_Mandarin_Cute_Girl_v2` |
| Speed | 1.15(兴奋) |
| Pitch | +2 |
| Emotion | `excited` |
| Prompt 前缀 | `<语气:23 岁,撒娇感比小美更重,背景嘈杂酒吧>` |
| 后期处理 | 必须叠酒吧环境底噪(见 §8 ambience 库 `bar_loud_03.wav`),干声 -3 dB |
---
#### 卡 06 · `dorm-a/b/c`(大学寝室群三女生)
| 项 | 值 |
|---|---|
| 主用 TTS | MiniMax Speech 02**三个不同 Voice ID 必须区分明显** |
| 候选 IDs | A: `Lively_Girl_v2` / B: `Sweet_Girl_v3` / C: `Mature_Young_Lady_v2` |
| Speed | A: 1.10 / B: 1.00 / C: 0.95 |
| Pitch | A: +1 / B: 0 / C: -1 |
| Emotion | A: `cheerful` / B: `gentle` / C: `neutral` |
| 备注 | A 是升职那位;B 是和事佬;C 是 @ 林夏的那位 |
---
#### 卡 07 · `zhounan`(周南 / 初中同桌)
| 项 | 值 |
|---|---|
| 主用 TTS | MiniMax Speech 02 |
| Voice ID | `Chinese_Mandarin_Gentleman_Young_v2` |
| Speed | 0.95 |
| Volume | 0.92(略轻,模拟拘谨) |
| Pitch | -1 |
| Emotion | `gentle + nervous` |
| Prompt 前缀 | `<语气:26 岁二三线男生,温和拘谨,明显紧张但克制,偶有自嘲>` |
| 4 段长戏 | 每段独立生成,段间留 800 ms 静音;句尾上扬避免"播音感" |
---
#### 卡 08 · `delivery`(外卖小哥)
| 项 | 值 |
|---|---|
| 主用 TTS | 字节豆包 Voice |
| Voice ID | `北方青年男声-v2` |
| Speed | 1.20(麻利) |
| Emotion | `neutral` |
| Prompt 前缀 | `<语气:30 岁,普通话+少许河南腔,工作语气,不寒暄>` |
| 后期处理 | 加 -6 dB 低频衰减 + 轻底噪,模拟手机听筒 |
---
#### 卡 09 · `system`(系统 TTS
| 项 | 值 |
|---|---|
| 主用 TTS | 字节豆包 Voice |
| Voice ID | `通用女声-柔` |
| Speed | 1.00 |
| Pitch | 0 |
| Emotion | `flat`(无情绪) |
| Prompt 前缀 | `<语气:中性 AI 助手,类似 Siri 但更轻,不带任何情感>` |
---
#### 卡 10 · `self-3y`3 年前的自己)
> ⚠️ **本作零麦克风权限**——本条不再使用玩家录音方案,改为**预录三版**按运行时玩家行为画像(PROFILE)动态选择。
| 项 | 值 |
|---|---|
| 主用 TTS | MiniMax Speech 02 HD(建议与林夏未来版本预留同一克隆音色,便于 IP 续作) |
| Voice ID | 与 `xiaomei` 同基底音色(暗示"她们曾是同类年轻女孩"),但 speed +0.05、pitch +1,模拟 3 年前更轻盈的语调 |
| 三个预录版本 | ①「**明朗版**」:3 年前刚来北京,对一切都新鲜<br>②「**迷茫版**」:3 年前其实已经累,只是没说<br>③「**温柔版**」:3 年前对未来的自己说"撑住" |
| 选择逻辑 | 按 PROFILE 标签匹配:<br>`engagement` → 明朗版(与今夜的投入呼应)<br>`avoidance` → 迷茫版(与今夜的回避呼应)<br>`nostalgia` → 温柔版(与今夜的怀旧呼应) |
| 时长 | 每版 ~50 秒 |
| 后期处理 | 加 -2 dB 高频衰减 + 微弱"录音笔底噪",模拟"3 年前用手机备忘录录的"质感 |
| Prompt 前缀(明朗版) | `<语气:23 岁,刚到北京半年,兴奋里带一点紧张,相信明天比今天好>` |
| Prompt 前缀(迷茫版) | `<语气:23 岁,独自在出租屋里,假装坚强,最后一句声音轻下去>` |
| Prompt 前缀(温柔版) | `<语气:23 岁,写给未来的自己,平静、有力、像在拥抱什么>` |
#### 卡 11 · `self-laugh`(隐藏结局 E 的笑声)
| 项 | 值 |
|---|---|
| 主用 TTS | MiniMax Speech 02 HD(同 `self-3y` 同一克隆音色) |
| 内容 | 一段 3 秒的轻笑——"噗"+ 一声短笑 + 一声轻轻的鼻息 |
| 制作方式 | TTS 难以直接生成自然笑声,**建议方案**:<br>① 找声线接近的 24 岁女声真人**录一次笑**(5 分钟搞定,零成本)<br>② 用 MiniMax Voice Clone 同款音色 + emotion `playful` 生成尝试,作为备选 |
| 用途 | 仅在结局 E 触发时播放——**全片唯一一次**林夏自己的声音 |
| 后期处理 | 与 `self-3y` 同款"录音笔底噪",让玩家感到"这是从 3 年前的备忘录里偶然飘出来的一段笑" |
---
## 5. TTS 生产 SOP
### 5.1 工作流(每条语音)
```
[1] 拿到脚本最终稿(编剧签字)
[2] 拆条 → 填入「拍摄场记表」(见 §5.5)
[3] 套用对应角色 Voice 配置卡
[4] 写 Prompt(含 SSML 标记)
[5] 一键生成 3 条候选 → 听
[6] 满意 → 进入 [7] / 不满意 → 调参/改 prompt 重生
[7] 命名归档到 00_raw/tts/
[8] 进入后期 (§9)
```
### 5.2 Prompt 模板(中文 TTS
**通用结构**
```
<voice_id>{角色 Voice ID}</voice_id>
<speed>{速度}</speed>
<emotion>{情绪标签}</emotion>
<prefix>{角色 prompt 前缀}</prefix>
[SSML 正文]
```
**SSML 关键标记速查**
| 标记 | 作用 | 用例 |
|---|---|---|
| `<break time="800ms"/>` | 停顿 | 长句中喘气、"她说……(停)后来呢" |
| `<emphasis level="strong">字</emphasis>` | 重读 | 关键词强调 |
| `<prosody rate="0.8">慢句</prosody>` | 局部变速 | 醉酒段、临终段 |
| `<prosody pitch="-2st">低声</prosody>` | 局部降调 | 内心戏 |
| `<say-as interpret-as="characters">XYZ</say-as>` | 字母逐字读 | "AirPods" 等英文词 |
### 5.3 长戏(≥1 分钟)特殊处理
**问题**:TTS 一次生成超过 60 秒会出现:
1. 末段质感衰减
2. 情绪曲线扁平
3. 偶发吞字
**对策**
1. **分段录制**:每段 ≤ 30 秒,按句号/段落切。
2. **段间留 200 ms 静音头尾**:方便后期对接。
3. **段间情绪渐变**:在 prompt 里手动写每段的 emotion 演进,例如妈妈 4'17" 长戏分 6 段:
- 段 1: `gentle, hesitant`
- 段 2: `gentle, nostalgic`
- 段 3: `gentle, sad but holding back`
- 段 4: `gentle, releasing`
- 段 5: `gentle, peaceful`
- 段 6: `gentle, tender, almost smiling`
4. **后期 crossfade 拼接**:每段间 50 ms 交叉淡化,听觉上无缝。
### 5.4 候选评审"三耳法则"
每条 TTS 出 3 条候选,必须用三种设备听过:
| 设备 | 检查重点 |
|---|---|
| AirPods Pro / 通用入耳式 | 主验收,模拟用户实际场景 |
| 头戴式监听耳机(如 ATH-M50x) | 听细节杂音、底噪、齿音 |
| 手机外放 | 兜底,确认离线场景下可懂 |
**通过标准**:3 副耳机里每副至少满意度 7/10 才入库。任意一副 ≤ 5/10 必须重做。
### 5.5 「拍摄场记表」模板(每条语音 1 行)
| ID | 关卡 | 时间码 | 角色 | 形态 | 文字稿 | 时长目标 | 情绪 | 出 prompt 人 | 评审人 | 状态 |
|---|---|---|---|---|---|---|---|---|---|---|
| 001 | lv11 | 2103 | mom | call | "今晚煮了你爱吃的排骨…" | 35s | gentle | A | B | ✅ |
| 002 | lv11 | 2115 | xiaomei | voice | "在吗" | 2s | cheerful | A | B | ✅ |
| ... | | | | | | | | | | |
> 该表用 Notion / 飞书表格维护,每条语音从立项到入库全周期可追。
---
## 6. 音乐生产 SOPSuno
### 6.1 工作流
```
[1] 编剧/导演给"音乐 brief"(场景+情绪+时长+段落结构)
[2] 翻译成 Suno Prompt(英文,带 BPM/instrument/mood
[3] 一次跑 4 首候选(Suno 一次给 2 首,跑 2 轮)
[4] 评审 → 选 1 首主稿 + 1 首备稿
[5] 用 Suno "Extend"功能延长到目标时长
[6] 用 Suno "Stem"功能(如开通)拆出干声/伴奏
[7] 后期:手动剪辑、loop 点处理、淡入淡出
[8] 导出 .wav 24-bit 入 00_raw/music/
```
### 6.2 Prompt 模板(《林夏》4 段曲)
#### M1 · 21:00 主题 / 全程低氛围 Loop
```
Style: lo-fi midnight bedroom, soft piano, light vinyl noise
Instruments: muted piano, subtle synth pad, occasional rain outside window
Tempo: 70 BPM
Mood: melancholy but warm, alone but not lonely
Structure: ambient loop, no drums, no clear melody peak
Duration: 90 seconds (extend to loopable)
Vocals: instrumental
```
**评审标准**
- 必须能 loop 30 分钟不觉得"在重复"
- 不能有任何强旋律压过 TTS
#### M2 · 22:30 悬疑过门
```
Style: subtle ambient suspense, cinematic tension
Instruments: low drone, single hanging piano note (high register), sparse strings
Tempo: 60 BPM
Mood: unsettling but not horror, like a question mark
Structure: 30 seconds, builds slowly, ends on unresolved chord
Vocals: instrumental
```
#### M3 · 23:45 周南段落
```
Style: gentle indie folk, intimate acoustic
Instruments: fingerpicked nylon guitar, soft male humming (no lyrics, just "mmm"), light shaker
Tempo: 75 BPM
Mood: hopeful nostalgic, like reading an old letter
Structure: 120 seconds, gradual build, soft climax at 0:80, gentle outro
Vocals: wordless humming only, very subtle
```
#### M4 · 02:00 结尾
```
Style: warm cinematic piano, dawn moment
Instruments: solo piano, soft string pad entering at 0:30
Tempo: 50 BPM
Mood: like the moment you realize you survived a hard night
Structure: 90 seconds, single melody line, no drums, fade out
Vocals: instrumental
```
### 6.3 角色铃声生成(9 个)
每个角色一个独立铃声,玩家"听铃辨人":
| 角色 | Suno Prompt | 时长 |
|---|---|---|
| mom | `老式诺基亚铃声风格, warm marimba, simple 4-note motif, 70bpm` | 4s loop |
| azhe | `cold minimal electronic ringtone, 2 notes only, 80bpm` | 4s loop |
| xiaomei | `cheerful pop ringtone, ukulele plucks, 4-bar phrase, 100bpm` | 4s loop |
| zhounan | `nostalgic 90s pager beep + soft chime, 70bpm` | 3s loop |
| hr | `corporate professional ringtone, neutral marimba, 90bpm` | 4s loop |
| anan | `bouncy J-pop intro, 2 seconds, 110bpm` | 3s loop |
| delivery | `standard Chinese delivery app push sound, 1 second` | 1s |
| unknown | `eerie low drone, no melody, 40bpm` | 4s loop |
| system | (不需要铃声,是震动) | — |
### 6.4 Suno 使用 Tips
1. **每次出双稿**:Suno 一次返回 2 首,第二首往往比第一首意外。
2. **用"Custom Mode"**:能精确填 Lyrics(留空)+ Style,避免随机。
3. **避免 vocal**:除非明确要 humming,否则 prompt 里加 `instrumental` `no vocals`
4. **Extend 不超 3 次**:第 4 次开始质感会断层。
5. **Stem 拆轨非常省事**:拆出后可以单独调音量,比从 mix 抠声好太多。
---
## 7. 音效生产 SOPElevenLabs Sound Effects
### 7.1 项目所需音效清单(约 60 个)
| 类别 | 数量 | 例 |
|---|---|---|
| **UI 音** | 12 | 微信咚、震动短/长、消息提示、来电铃响半秒、接通滴、挂断滴、撤回 swoosh、已读、未读、错误提示、菜单切换、确认 |
| **拟音** | 18 | 烧水壶哨响、水沸腾、键盘敲击 5 种节奏、外卖敲门 3 种、门关、钥匙、玻璃放下、椅子拉、纸张翻、笔写字、手机放在床上、手机震动桌面 |
| **角色化短音** | 8 | 阿哲消息撤回 swoosh、妈妈微信消息发出 woosh、群里@提示音、未知号码呼吸(轮询 3 段)、外卖结账提示、HR 邮件附件提示、电量 1% 警告、备忘录播放滴 |
| **过渡 / 转场** | 8 | 章节过渡轻 swell、时间流逝标记(22:00/23:00/00:00 等)、灯光熄灭暗示、心跳加速、深呼吸、玻璃碎一秒、雨势忽大、雨势忽小 |
| **结局专用** | 4 | 字幕浮现 chime、烧水壶滴一声、夜班车驶过、野猫叫一声 |
| **预留备用** | 10 | — |
### 7.2 ElevenLabs Sound Effects Prompt 模板
**通用结构**
```
{动作或物体}, {距离/视角}, {环境}, {时长建议}
```
**示例**
| 资产 ID | Prompt |
|---|---|
| `sfx_kettle_whistle` | `kettle whistling, close mic, small kitchen, 3 seconds, vintage` |
| `sfx_keyboard_typing` | `mechanical keyboard typing, soft, 5 seconds, intimate close mic` |
| `sfx_wechat_pop` | `short notification pop sound, soft, single high pitched 'tap', 0.5 seconds, original not WeChat` |
| `sfx_message_swoosh` | `quick whoosh of message sending, electronic, 0.3 seconds` |
| `sfx_door_knock_delivery` | `three knocks on apartment door, polite delivery, hallway echo, 2 seconds` |
| `sfx_glass_down` | `glass placed on wooden desk, soft clink, close mic, 1 second` |
| `sfx_phone_vibrate_table` | `phone vibrating on wooden bedside table, 2 seconds` |
| `sfx_cat_yowl_distant` | `single cat yowl in distance, alley, late night, 1.5 seconds` |
| `sfx_breath_unknown` | `human breathing through phone, slightly muffled, anonymous, 6 seconds` |
### 7.3 ElevenLabs SFX 使用 Tips
1. **每条 prompt 跑 3 次**:每次都不一样,多挑。
2. **时长别贪长**>10s 容易"漂"。需要长效果就做 loop。
3. **避免品牌词**:不能写 `WeChat sound` `iPhone ringtone` `Apple notification`,直接侵权。改写为 `Chinese-style messaging app soft pop`
4. **要用 mp3 时再转**:默认下载 mp3 192k,**生产中先转 wav 再处理**。
### 7.4 音效"哪类必须找真采样而非 AI"
| 音效 | 原因 | 采样源 |
|---|---|---|
| 30 秒以上的环境底噪 | AI 长 ambience 会"漂" | Freesound / Epidemic |
| 真实城市夜噪(远地铁、夜班车) | AI 太干净,缺真实空气感 | Freesound CC0 |
| 特定地域口音、街头叫卖 | AI 无地域性 | 自己录 |
| 情绪化的笑声、哭声、叹息 | AI SFX 还达不到 | TTS 角色化处理或真人录 |
---
## 8. 环境采样 SOPFreesound / Epidemic Sound
### 8.1 项目环境底噪清单
| ID | 用途 | 时长 | 描述 | 推荐源 |
|---|---|---|---|---|
| `amb_apartment_night_01` | 全程底噪 | 10 min loop | 合租屋夜晚,远处车声、冰箱嗡嗡、偶尔水管 | Freesound `apartment night ambience` |
| `amb_apartment_night_02` | 备用 | 5 min loop | 同上不同质感 | Freesound |
| `amb_bar_loud_01` | 室友安安电话背景 | 1 min loop | 拥挤酒吧,人声谈笑 + 电子音乐底 | Epidemic Sound |
| `amb_subway_distant` | 转场 | 30s | 远处地铁过站 | Freesound `subway distant` |
| `amb_kitchen_morning` | 结局 A | 1 min | 厨房环境,水龙头滴、冰箱嗡 | Freesound |
| `amb_rain_window` | M1 BGM 衬底 | 5 min loop | 窗外细雨 | Freesound `rain window soft` |
| `amb_late_night_bus` | 结局段 | 20s | 夜班公交驶过空街 | Epidemic Sound |
| `amb_dawn_birds` | 结局 D | 30s | 清晨鸟叫 | Freesound `dawn birds urban` |
### 8.2 Freesound 检索 SOP
1. 关键词搜索(英文优先)。
2. 过滤条件:
- License: `Creative Commons 0` 优先;`Attribution` 次之;不要 `Attribution NonCommercial`(商业项目)。
- Duration: 设最小值(避免短到没用)。
- Sample rate: 44.1kHz / 48kHz。
3. 听 → 下载 .wav 原始版本(不要 mp3)。
4. **立刻**在 §11 版权登记表里登记:URL / 作者 ID / License / 下载日期。
5.`00_raw/ambience/` 命名 `amb_xxx_freesoundXXXXX.wav`(保留 Freesound ID)。
### 8.3 Epidemic Sound 检索 SOP
1. Epidemic Sound 全部资源都是 Royalty-Free(订阅期内可商用)。
2. 直接下载 .wav 24-bit。
3. 在版权登记表登记 Track IDEpidemic 提供)。
4. **退订后已下载的资产仍可继续使用**,但需保留下载凭证(截图存档)。
### 8.4 环境采样的"假性立体声"处理
许多 Freesound 资源是单声道。处理成立体声:
```bash
# REAPER / Audition 操作:
# 1. 复制单声道到 L、R 两轨
# 2. R 轨延迟 815 ms
# 3. R 轨高频 EQ 微调 ±1 dB
# → 听感即获得"环境的宽度",但不影响 TTS 在中央的位置
```
**禁止**:用空间音效插件做 3D 定位——本作明确**不依赖空间音效定位**。
---
## 9. 后期统一处理 SOP
### 9.1 响度规范(关键)
| 资产类型 | 目标 LUFS(综合) | 峰值上限 |
|---|---|---|
| 角色语音(电话/微信语音) | -16 LUFS | -1 dBTP |
| 系统 TTS | -18 LUFS | -1 dBTP |
| 主题音乐(M1M4 | -18 LUFS | -1 dBTP |
| 环境底噪 | -22 LUFS | -3 dBTP |
| 短音效(UI 类) | -14 LUFS(短促能听清) | -1 dBTP |
**为什么角色语音 -16 LUFS**:移动端 + 耳机场景,比影视的 -23 LUFS 响度高 7 dB,让玩家在嘈杂环境(公交、宿舍)也能听清。
**测量工具**Youlean Loudness Meter 2 (Free)REAPER 内置即可。
### 9.2 处理链(每条 TTS 标准链)
```
原始 TTS (.wav, 24-bit, 48kHz, 单声道)
[1] iZotope RX · Mouth De-click(去 TTS 偶发咔嗒声)
[2] iZotope RX · Voice De-noise(轻档 -6 dB,去合成底噪)
[3] EQ · 高通滤波 80 Hz(去低频噪)
[4] EQ · 角色化频段调整(按 §4 配置卡)
[5] Compressor · 4:1, threshold -18 dB(控动态)
[6] 加听筒效果(仅"电话/语音"形态,详见 §9.3)
[7] Loudness Match · -16 LUFS
[8] Limiter · ceiling -1 dBTP
[9] 导出 .wav 16-bit 48kHz → 01_processed/tts/
```
### 9.3 「听筒效果」预设
模拟手机听筒/微信语音的窄频段感:
```
EQ:
HPF 300 Hz, 24 dB/oct
LPF 3.4 kHz, 24 dB/oct
+1 dB at 1.5 kHz(保留人声清晰度)
Saturation:
Soft tape saturation, 58% drive
Noise:
叠极轻底噪(-50 dB),可用 ambience 库 phone_noise_floor.wav
```
> **例外**`mom` 第 16 条 4 分钟长戏 **不加听筒效果** —— 这条是微信语音"完整音质版",是设计意图。
### 9.4 音乐处理链
```
Suno 原始 (.wav, 立体声, 48kHz)
[1] Trim 头尾静音
[2] Loop 点设计(找节拍重音对齐)
[3] Crossfade 50 msloop 接缝)
[4] EQ · 削掉 200500 Hz 的"AI 浊感"-2 dB
[5] Stereo Width · 控制在 70%(避免吃掉中央 TTS)
[6] Loudness Match · -18 LUFS
[7] Limiter · -1 dBTP
[8] 导出 .wav → 01_processed/music/
```
### 9.5 环境底噪处理链
```
Freesound 原始 (.wav)
[1] Trim 不需要的段
[2] iZotope RX · 去掉突兀的"事件"(突然的喊叫、关门)
[3] HPF 60 Hz(去隆隆声)
[4] LPF 12 kHz(去高频噪)
[5] Loop 点设计(必须找几乎静止的 1 秒做接缝)
[6] Crossfade 200 ms
[7] Loudness Match · -22 LUFS
[8] 假性立体声化(§8.4
[9] 导出 .wav → 01_processed/ambience/
```
### 9.6 批处理脚本(FFmpeg 示例)
格式批量转换 + 响度归一化:
```bash
# 把 01_processed 下所有 wav 转成最终 ogg + 响度归一化到 -16 LUFS
for f in 01_processed/tts/*.wav; do
ffmpeg -i "$f" \
-af "loudnorm=I=-16:TP=-1:LRA=11" \
-c:a libvorbis -q:a 5 \
"02_final/tts/$(basename "${f%.wav}.ogg")"
done
```
---
## 10. QA 验收清单(每批资产强制走一遍)
### 10.1 自检清单(执行人)
每条资产入 `01_processed/` 前自查:
- [ ] 文件命名符合 §3.2 规范
- [ ] 采样率 = 48 kHz
- [ ] 单/立体声符合 §3.3 规范
- [ ] 响度在 §9.1 目标范围内(±1 LUFS)
- [ ] 峰值不超过 -1 dBTP
- [ ] 无明显爆音、咔嗒、底噪
- [ ] 时长与场记表目标值偏差 ≤ 10%
### 10.2 评审清单(评审人,不同人)
每批 TTS 走"三耳法则"(§5.4):
- [ ] AirPods Pro 听 → 满意度 ≥ 7/10
- [ ] 监听耳机听 → 满意度 ≥ 7/10
- [ ] 手机外放听 → 可懂 ≥ 7/10
- [ ] 角色辨识度 → 与配置卡一致
- [ ] 情绪到位度 → 与脚本意图一致
### 10.3 上下文听感测试(关键)
**单条满意 ≠ 全场景满意**。每完成一个时间段(如 21:00–22:00 这一小时):
- [ ] 把这一小时所有资产按时间轴拼起来,戴耳机完整听一遍
- [ ] 检查:音量是否平稳?环境底噪有没有突然断层?两条 TTS 之间的"沉默"是否自然?
- [ ] 至少 3 名团队成员独立听完,给整体评分(1–10)
- [ ] 平均分 ≥ 7 才放行
### 10.4 玩家盲测(最终验收前)
- 招 5 位 2225 岁女性玩家
- **不告知任何剧情**,让她们戴耳机黑屏完整玩一遍
- 关键观测点:
- 哪条 TTS 让她们出戏(皱眉/摘耳机)→ 重做
- 哪条让她们流泪/微笑/屏息 → 标记为"金条",备份保留
- 哪个角色被说"听不出是谁" → 配置卡需调整辨识度
- 内测报告归档到 `03_qa_reports/`
---
## 11. 版权追踪与归档
### 11.1 强制原则
> **任何一条入库资产,在它被生成/下载的当天,必须登记。**
> **当天没登记的,第二天起视为不可用,必须返工补登。**
### 11.2 版权登记表模板(Notion / 飞书表格)
| 资产 ID | 类型 | 来源工具/平台 | URL/Track ID/Voice ID | License | 创建/下载日期 | 创建人 | 商用证明位置 | 备注 |
|---|---|---|---|---|---|---|---|---|
| `lv11_2103_mom_call_01` | TTS | MiniMax Speech 02 | voice: Warm_Auntie_v3 | MiniMax 商用许可 | 2026-05-15 | 张三 | `99_legal/minimax_terms_2026.pdf` | — |
| `amb_apartment_night_01` | ambience | Freesound | freesound.org/s/123456/ | CC0 | 2026-05-13 | 李四 | (CC0 无需) | 作者: user_xxx |
| `amb_bar_loud_01` | ambience | Epidemic Sound | track id: ES_8472993 | Epidemic 订阅 | 2026-05-14 | 李四 | `99_legal/epidemic_invoice_202605.pdf` | 订阅期内 |
| `m1_main_theme` | music | Suno V4 | song id: suno_xxx | Suno Pro 商用 | 2026-05-16 | 王五 | `99_legal/suno_pro_2026.pdf` | — |
| `sfx_wechat_pop` | sfx | ElevenLabs SFX | (SFX 不返回 ID,存 prompt) | ElevenLabs Creator 商用 | 2026-05-15 | 王五 | `99_legal/elevenlabs_terms.pdf` | prompt 存留 |
### 11.3 各 AI 平台商用授权要点(截至 2026-05)
> ⚠️ **每次开新项目前必须重新核对最新条款**。AI 平台条款变化频繁。
| 平台 | 商用许可 | 特殊条件 |
|---|---|---|
| **MiniMax Speech** | ✅ 包含在 API 服务中 | 不得用于生成深度伪造、政治敏感内容 |
| **字节豆包 Voice** | ✅ 企业 API 包含商用 | 个人版可能受限,必须开企业账户 |
| **ElevenLabs** | ✅ Creator 及以上套餐 | Free 套餐**不能商用**;TTS 需注明(部分场景) |
| **Suno** | ✅ Pro 及以上 | Free 不可商用;保留生成时的订阅状态截图 |
| **Freesound** | ⚠️ 看每条 license | CC0 自由用;CC-BY 必须署名;CC-NC 不可商用 |
| **Epidemic Sound** | ✅ 订阅期内全库商用 | 退订后已下载资产可继续用,必须存订阅凭证 |
### 11.4 归档与备份
- **Git LFS**:所有 `01_processed/``02_final/` 资产入库。
- **OSS 双备份**:每周自动同步到阿里云 OSS(主)+ AWS S3(备),保留 6 个月版本。
- **冷备**:项目结项时,全套 raw + processed + final + 法务文件刻盘归档(蓝光 50 GB ≈ ¥30 一张)。
---
## 12. 附录
### 12.1 命名词典
| 字段 | 缩写 |
|---|---|
| 关卡 | `lv` |
| TTS 角色语音 | `tts` |
| 音乐 | `mus` / `m1`/`m2`/`m3`/`m4` |
| 短音效 | `sfx` |
| 环境底噪 | `amb` |
| 来电 | `call` |
| 微信语音 | `voice` |
| 微信文字 | `text` |
| 系统提示 | `sys` |
### 12.2 项目专用术语
| 术语 | 含义 |
|---|---|
| **金条** | 玩家盲测中触发明显情感反应的语音条目,优先保留 |
| **听筒效果** | §9.3 的 EQ + saturation 处理预设 |
| **三耳法则** | §5.4 的三种设备评审标准 |
| **拍摄场记表** | §5.5 的全条目追踪表 |
### 12.3 突发情况预案
| 情况 | 处理 |
|---|---|
| MiniMax 临时服务中断 | 切豆包 Voice,按角色配置卡的"备用方案"行动 |
| ElevenLabs SFX 月度 credit 用完 | 走阿里通义万相音效;或下月重做 |
| Suno 出图风格全部不满意 | 用 Udio v2 重跑同一 prompt |
| Freesound 没有合适素材 | Epidemic Sound;再不行**临时找 1 名收音师外采**(预算预留 ¥2000) |
| 玩家盲测某条全员差评 | 优先级最高,必须返工,72 小时内重做 + 复测 |
### 12.4 工时估算(参考,单人执行)
| 资产类型 | 单条耗时 | 总耗时 |
|---|---|---|
| 短 TTS(≤ 10 s | 5 min(含 3 候选评审) | ~3 h35 条) |
| 长 TTS(≥ 1 min | 30 min(分段+拼接) | ~2 h4 条) |
| 单段音乐(含 extend | 40 min | ~3 h4 段) |
| 单条音效 | 3 min | ~3 h60 条) |
| 单段环境采样(含处理) | 20 min | ~3 h8 段) |
| 后期统一处理 | 5 min/条 | ~6 h |
| QA 与盲测 | — | ~12 h |
| **合计** | | **~32 工时**4 个工作日) |
> 实际项目预留 **2 倍**时间用于反复打磨。
---
## 13. 启动检查表(Day 0 之前)
- [ ] 所有 §2.2 账号已开通、付费、API key 已存安全位置(团队密码管理器)
- [ ] §3 文件夹结构已建好,Git LFS 已启用
- [ ] §4 角色 Voice 配置卡已在 Notion 立表,每个 voice id 跑过 1 条试音确认可用
- [ ] §5.5 拍摄场记表已建好,所有条目预填
- [ ] §11.2 版权登记表已建好
- [ ] 团队听过 1 个完整 reference 项目(推荐:《Mountain》《Florence》《Lifeline》音频部分)
- [ ] 玩家盲测候选 5 人已联系并约好测试日期
---
**文档状态**v1.0 · 2026-05-13 · 待团队评审
**维护人**:项目主控
**下次修订**:每完成一个项目后,回看实际数据更新本 SOP
-225
View File
@@ -1,225 +0,0 @@
#!/usr/bin/env python3
"""
《林夏》TTS v2 — VoxCPM2 Style Control 批量生成
输出:audio_2/tts/v2_styled/
用法:
VOXCPM_PORT=8002 bash /home/xsl/tts-server/start-voxcpm.sh
VOXCPM_PORT=8002 python audio_2/scripts/01_gen_tts_styled.py
python audio_2/scripts/01_gen_tts_styled.py --dry-run
python audio_2/scripts/01_gen_tts_styled.py --role linxia --test
"""
import argparse
import base64
import glob
import os
import subprocess
import sys
import tempfile
import time
import requests
PROJECT_DIR = "/home/xsl/blind"
VOICE_DIR = f"{PROJECT_DIR}/voice"
OUT_DIR = f"{PROJECT_DIR}/audio_2/tts/v2_styled"
HOST = os.environ.get("VOXCPM_HOST", "127.0.0.1")
PORT = os.environ.get("VOXCPM_PORT", "8002")
BASE_URL = f"http://{HOST}:{PORT}"
sys.path.insert(0, f"{PROJECT_DIR}/audio")
sys.path.insert(0, f"{PROJECT_DIR}/audio_2")
from batch_tts_voxcpm import ROLES, LINES # noqa: E402
from voice_style_prompts import get_style # noqa: E402
os.makedirs(OUT_DIR, exist_ok=True)
def find_ref_audio(role_key):
role_dir = os.path.join(VOICE_DIR, ROLES[role_key]["dir"])
for ext in ("*.wav", "*.mp3", "*.flac"):
files = sorted(glob.glob(os.path.join(role_dir, ext)))
if files:
return files[0]
return None
def convert_to_wav(src, dst):
subprocess.run(
["ffmpeg", "-y", "-i", src, "-ar", "16000", "-ac", "1", "-acodec", "pcm_s16le", dst],
check=True,
capture_output=True,
)
def wav_to_base64(path):
with open(path, "rb") as f:
return base64.b64encode(f.read()).decode()
def apply_speed(src, speed, dst):
if abs(speed - 1.0) < 0.01:
import shutil
shutil.copy2(src, dst)
return
subprocess.run(
["ffmpeg", "-y", "-i", src, "-filter:a", f"atempo={speed}", "-acodec", "pcm_s16le", dst],
check=True,
capture_output=True,
)
def wav_to_mp3(src, dst):
subprocess.run(
[
"ffmpeg", "-y", "-i", src,
"-codec:a", "libmp3lame", "-b:a", "128k", "-ar", "24000", "-ac", "1",
dst,
],
check=True,
capture_output=True,
)
def check_server():
try:
r = requests.get(f"{BASE_URL}/health", timeout=5)
if r.status_code != 200:
return False
data = r.json()
return data.get("status") == "ok"
except Exception:
return False
def register_voice(wav_path):
r = requests.post(
f"{BASE_URL}/v1/voices",
json={"wav_base64": wav_to_base64(wav_path)},
timeout=60,
)
r.raise_for_status()
return r.json()["voice_id"]
def synthesize_styled(voice_id, text, style, cfg=2.0, steps=10):
r = requests.post(
f"{BASE_URL}/v1/speech/styled",
json={
"text": text,
"style": style,
"voice_id": voice_id,
"cfg_value": cfg,
"inference_timesteps": steps,
},
timeout=180,
)
r.raise_for_status()
return r.content
def main():
parser = argparse.ArgumentParser(description="《林夏》Style Control 批量 TTS → audio_2")
parser.add_argument("--role", help="只合成指定角色")
parser.add_argument("--test", action="store_true", help="只合成第一条")
parser.add_argument("--dry-run", action="store_true", help="只打印 style 分配")
parser.add_argument("--force", action="store_true", help="覆盖已存在文件")
parser.add_argument("--cfg", type=float, default=2.0)
parser.add_argument("--steps", type=int, default=10)
args = parser.parse_args()
lines = LINES
if args.role:
lines = [(f, r, t) for f, r, t in lines if r == args.role or r.startswith(args.role)]
if args.test:
lines = lines[:1]
print(f"\n{'=' * 60}")
print(" 《林夏》TTS v2 — Style Control")
print(f" 服务: {BASE_URL}")
print(f" 输出: {OUT_DIR}")
print(f"{len(lines)}")
print(f"{'=' * 60}\n")
if args.dry_run:
for fname, role, text in lines:
style = get_style(fname, role, text)
out = os.path.join(OUT_DIR, f"{fname}_wav_v2.mp3")
mark = "" if os.path.exists(out) else "·"
print(f" [{mark}] {fname} [{role}]")
print(f" style: {style}")
print(f" text: {text[:50]}{'...' if len(text) > 50 else ''}\n")
return
if not check_server():
print(f"[错误] VoxCPM2 服务未就绪: {BASE_URL}/health")
print("请先启动:")
print(f" VOXCPM_PORT={PORT} bash /home/xsl/tts-server/start-voxcpm.sh")
sys.exit(1)
voice_ids = {}
tmp = tempfile.mkdtemp(prefix="voxcpm2_")
for role_key in sorted(set(r for _, r, _ in lines)):
ref = find_ref_audio(role_key)
if not ref:
print(f" [跳过] {role_key}: 未找到参考音频")
continue
wav = ref if ref.endswith(".wav") else os.path.join(tmp, f"{role_key}.wav")
if not ref.endswith(".wav"):
convert_to_wav(ref, wav)
print(f" 注册音色: {role_key} ... ", end="", flush=True)
voice_ids[role_key] = register_voice(wav)
print(f"ok ({voice_ids[role_key][:10]}...)")
ok = skip = fail = 0
manifest_path = os.path.join(OUT_DIR, "style_manifest.tsv")
manifest_lines = ["filename\trole\tstyle\ttext\n"]
for i, (fname, role, text) in enumerate(lines, 1):
out_mp3 = os.path.join(OUT_DIR, f"{fname}_wav_v2.mp3")
style = get_style(fname, role, text)
manifest_lines.append(
f"{fname}\t{role}\t{style.replace(chr(9), ' ')}\t{text.replace(chr(9), ' ')}\n"
)
if os.path.exists(out_mp3) and not args.force:
print(f" [{i:3d}/{len(lines)}] SKIP {fname}")
skip += 1
continue
if role not in voice_ids:
print(f" [{i:3d}/{len(lines)}] MISS {fname} (无音色)")
fail += 1
continue
print(f" [{i:3d}/{len(lines)}] {fname} ... ", end="", flush=True)
t0 = time.time()
try:
wav_bytes = synthesize_styled(
voice_ids[role], text, style, cfg=args.cfg, steps=args.steps
)
raw_wav = os.path.join(tmp, f"{fname}_raw.wav")
spd_wav = os.path.join(tmp, f"{fname}_spd.wav")
with open(raw_wav, "wb") as f:
f.write(wav_bytes)
apply_speed(raw_wav, ROLES[role]["speed"], spd_wav)
wav_to_mp3(spd_wav, out_mp3)
kb = os.path.getsize(out_mp3) // 1024
print(f"ok ({time.time() - t0:.1f}s, {kb}KB)")
ok += 1
except Exception as e:
print(f"FAIL: {e}")
fail += 1
with open(manifest_path, "w", encoding="utf-8") as f:
f.writelines(manifest_lines)
print(f"\n完成: {ok} ok, {skip} skip, {fail} fail")
print(f"输出: {OUT_DIR}")
print(f"清单: {manifest_path}")
if __name__ == "__main__":
main()
-168
View File
@@ -1,168 +0,0 @@
#!/usr/bin/env python3
"""
《林夏》TTS v3 — VoxCPM2 Voice Design 批量生成
纯提示词生成音色,不使用参考音频。
输出:audio_2/tts/v3_voice_design/
用法:
VOXCPM_PORT=8002 bash /home/xsl/tts-server/start-voxcpm.sh
VOXCPM_PORT=8002 python audio_2/scripts/02_gen_tts_voice_design.py
python audio_2/scripts/02_gen_tts_voice_design.py --dry-run
python audio_2/scripts/02_gen_tts_voice_design.py --role delivery --test
"""
import argparse
import os
import subprocess
import sys
import tempfile
import time
import requests
PROJECT_DIR = "/home/xsl/blind"
OUT_DIR = f"{PROJECT_DIR}/audio_2/tts/v3_voice_design"
HOST = os.environ.get("VOXCPM_HOST", "127.0.0.1")
PORT = os.environ.get("VOXCPM_PORT", "8002")
BASE_URL = f"http://{HOST}:{PORT}"
sys.path.insert(0, f"{PROJECT_DIR}/audio")
sys.path.insert(0, f"{PROJECT_DIR}/audio_2")
from batch_tts_voxcpm import ROLES, LINES # noqa: E402
from voice_style_prompts import get_voice_design # noqa: E402
os.makedirs(OUT_DIR, exist_ok=True)
def apply_speed(src, speed, dst):
if abs(speed - 1.0) < 0.01:
import shutil
shutil.copy2(src, dst)
return
subprocess.run(
["ffmpeg", "-y", "-i", src, "-filter:a", f"atempo={speed}", "-acodec", "pcm_s16le", dst],
check=True,
capture_output=True,
)
def wav_to_mp3(src, dst):
subprocess.run(
[
"ffmpeg", "-y", "-i", src,
"-codec:a", "libmp3lame", "-b:a", "128k", "-ar", "24000", "-ac", "1",
dst,
],
check=True,
capture_output=True,
)
def check_server():
try:
r = requests.get(f"{BASE_URL}/health", timeout=5)
return r.status_code == 200 and r.json().get("status") == "ok"
except Exception:
return False
def synthesize_design(text, style, cfg=2.0, steps=10):
"""Voice Design: 不传 voice_id。"""
r = requests.post(
f"{BASE_URL}/v1/speech/styled",
json={
"text": text,
"style": style,
"voice_id": None,
"cfg_value": cfg,
"inference_timesteps": steps,
},
timeout=180,
)
r.raise_for_status()
return r.content
def main():
parser = argparse.ArgumentParser(description="《林夏》Voice Design 批量 TTS → audio_2")
parser.add_argument("--role", help="只合成指定角色")
parser.add_argument("--test", action="store_true", help="只合成第一条")
parser.add_argument("--dry-run", action="store_true")
parser.add_argument("--force", action="store_true")
parser.add_argument("--cfg", type=float, default=2.0)
parser.add_argument("--steps", type=int, default=10)
args = parser.parse_args()
lines = LINES
if args.role:
lines = [(f, r, t) for f, r, t in lines if r == args.role or r.startswith(args.role)]
if args.test:
lines = lines[:1]
print(f"\n{'=' * 60}")
print(" 《林夏》TTS v3 — Voice Design(无参考音频)")
print(f" 服务: {BASE_URL}")
print(f" 输出: {OUT_DIR}")
print(f"{len(lines)}")
print(f"{'=' * 60}\n")
if args.dry_run:
for fname, role, text in lines:
style = get_voice_design(fname, role, text)
out = os.path.join(OUT_DIR, f"{fname}_wav_v3.mp3")
mark = "" if os.path.exists(out) else "·"
print(f" [{mark}] {fname} [{role}]")
print(f" design: {style}")
print(f" text: {text[:50]}{'...' if len(text) > 50 else ''}\n")
return
if not check_server():
print(f"[错误] VoxCPM2 服务未就绪: {BASE_URL}/health")
print(f" VOXCPM_PORT={PORT} bash /home/xsl/tts-server/start-voxcpm.sh")
sys.exit(1)
tmp = tempfile.mkdtemp(prefix="voxcpm3_")
ok = skip = fail = 0
manifest_path = os.path.join(OUT_DIR, "voice_design_manifest.tsv")
manifest_lines = ["filename\trole\tdesign_prompt\ttext\n"]
for i, (fname, role, text) in enumerate(lines, 1):
out_mp3 = os.path.join(OUT_DIR, f"{fname}_wav_v3.mp3")
style = get_voice_design(fname, role, text)
manifest_lines.append(
f"{fname}\t{role}\t{style.replace(chr(9), ' ')}\t{text.replace(chr(9), ' ')}\n"
)
if os.path.exists(out_mp3) and not args.force:
print(f" [{i:3d}/{len(lines)}] SKIP {fname}")
skip += 1
continue
print(f" [{i:3d}/{len(lines)}] {fname} [{role}] ... ", end="", flush=True)
t0 = time.time()
try:
wav_bytes = synthesize_design(text, style, cfg=args.cfg, steps=args.steps)
raw_wav = os.path.join(tmp, f"{fname}_raw.wav")
spd_wav = os.path.join(tmp, f"{fname}_spd.wav")
with open(raw_wav, "wb") as f:
f.write(wav_bytes)
apply_speed(raw_wav, ROLES[role]["speed"], spd_wav)
wav_to_mp3(spd_wav, out_mp3)
print(f"ok ({time.time() - t0:.1f}s, {os.path.getsize(out_mp3) // 1024}KB)")
ok += 1
except Exception as e:
print(f"FAIL: {e}")
fail += 1
with open(manifest_path, "w", encoding="utf-8") as f:
f.writelines(manifest_lines)
print(f"\n完成: {ok} ok, {skip} skip, {fail} fail")
print(f"输出: {OUT_DIR}")
print(f"清单: {manifest_path}")
if __name__ == "__main__":
main()
-177
View File
@@ -1,177 +0,0 @@
#!/usr/bin/env python3
"""
《林夏》Voice Design 试听样本 — 每角色 5 条约 10 秒音频
输出:audio_2/tts/v4_voice_samples/{role}/{role}_v01.mp3 … v05.mp3
用法:
VOXCPM_PORT=8002 python audio_2/scripts/03_gen_voice_samples.py
python audio_2/scripts/03_gen_voice_samples.py --role delivery
python audio_2/scripts/03_gen_voice_samples.py --dry-run
"""
import argparse
import os
import subprocess
import sys
import tempfile
import time
import requests
PROJECT_DIR = "/home/xsl/blind"
OUT_ROOT = f"{PROJECT_DIR}/audio_2/tts/v4_voice_samples"
os.makedirs(OUT_ROOT, exist_ok=True)
HOST = os.environ.get("VOXCPM_HOST", "127.0.0.1")
PORT = os.environ.get("VOXCPM_PORT", "8002")
BASE_URL = f"http://{HOST}:{PORT}"
sys.path.insert(0, f"{PROJECT_DIR}/audio_2")
from voice_sample_prompts import AUDITION_TEXT, ROLE_VOICE_VARIANTS # noqa: E402
def wav_to_mp3(src, dst):
subprocess.run(
[
"ffmpeg", "-y", "-i", src,
"-codec:a", "libmp3lame", "-b:a", "128k", "-ar", "24000", "-ac", "1",
dst,
],
check=True,
capture_output=True,
)
def wav_duration(path):
r = subprocess.run(
[
"ffprobe", "-v", "error", "-show_entries", "format=duration",
"-of", "default=noprint_wrappers=1:nokey=1", path,
],
capture_output=True,
text=True,
check=True,
)
return float(r.stdout.strip())
def check_server():
try:
r = requests.get(f"{BASE_URL}/health", timeout=5)
return r.status_code == 200 and r.json().get("status") == "ok"
except Exception:
return False
def synthesize_design(text, style, cfg=2.0, steps=10):
r = requests.post(
f"{BASE_URL}/v1/speech/styled",
json={
"text": text,
"style": style,
"voice_id": None,
"cfg_value": cfg,
"inference_timesteps": steps,
},
timeout=180,
)
r.raise_for_status()
return r.content
def main():
parser = argparse.ArgumentParser(description="生成每角色 5 条 Voice Design 试听样本")
parser.add_argument("--role", help="只生成指定角色")
parser.add_argument("--dry-run", action="store_true")
parser.add_argument("--force", action="store_true")
parser.add_argument("--cfg", type=float, default=2.0)
parser.add_argument("--steps", type=int, default=10)
args = parser.parse_args()
roles = sorted(ROLE_VOICE_VARIANTS.keys())
if args.role:
roles = [r for r in roles if r == args.role or r.startswith(args.role)]
if not roles:
print(f"[错误] 未知角色: {args.role}")
sys.exit(1)
total = sum(len(ROLE_VOICE_VARIANTS[r]) for r in roles)
print(f"\n{'=' * 60}")
print(" 《林夏》Voice Design 试听样本(每角色 5 条)")
print(f" 服务: {BASE_URL}")
print(f" 输出: {OUT_ROOT}")
print(f" 角色: {len(roles)} 样本: {total}")
print(f"{'=' * 60}\n")
if args.dry_run:
for role in roles:
text = AUDITION_TEXT[role]
print(f"[{role}] ({len(text)} 字) {text[:40]}...")
for i, prompt in enumerate(ROLE_VOICE_VARIANTS[role], 1):
print(f" v{i:02d}: {prompt}")
print()
return
if not check_server():
print(f"[错误] VoxCPM2 未就绪: {BASE_URL}/health")
sys.exit(1)
os.makedirs(OUT_ROOT, exist_ok=True)
tmp = tempfile.mkdtemp(prefix="voxcpm_sample_")
manifest_path = os.path.join(OUT_ROOT, "samples_manifest.tsv")
manifest = ["role\tvariant\tseconds\tprompt\ttext\tfile\n"]
ok = skip = fail = 0
n = 0
for role in roles:
role_dir = os.path.join(OUT_ROOT, role)
os.makedirs(role_dir, exist_ok=True)
text = AUDITION_TEXT[role]
variants = ROLE_VOICE_VARIANTS[role]
for i, prompt in enumerate(variants, 1):
n += 1
tag = f"v{i:02d}"
out_mp3 = os.path.join(role_dir, f"{role}_{tag}.mp3")
out_wav = os.path.join(role_dir, f"{role}_{tag}.wav")
if os.path.exists(out_mp3) and not args.force:
print(f" [{n}/{total}] SKIP {role}_{tag}")
skip += 1
continue
print(f" [{n}/{total}] {role}_{tag} ... ", end="", flush=True)
t0 = time.time()
try:
wav_bytes = synthesize_design(text, prompt, cfg=args.cfg, steps=args.steps)
raw_wav = os.path.join(tmp, f"{role}_{tag}.wav")
with open(raw_wav, "wb") as f:
f.write(wav_bytes)
subprocess.run(
["ffmpeg", "-y", "-i", raw_wav, "-acodec", "pcm_s16le", "-ar", "24000", "-ac", "1", out_wav],
check=True,
capture_output=True,
)
wav_to_mp3(out_wav, out_mp3)
dur = wav_duration(out_mp3)
manifest.append(
f"{role}\t{tag}\t{dur:.1f}\t{prompt.replace(chr(9), ' ')}\t"
f"{text.replace(chr(9), ' ')}\t{role}/{role}_{tag}.mp3\n"
)
print(f"ok ({time.time() - t0:.1f}s, {dur:.1f}s)")
ok += 1
except Exception as e:
print(f"FAIL: {e}")
fail += 1
with open(manifest_path, "w", encoding="utf-8") as f:
f.writelines(manifest)
print(f"\n完成: {ok} ok, {skip} skip, {fail} fail")
print(f"试听目录: {OUT_ROOT}")
print(f"清单: {manifest_path}")
print("\n选定样本后告诉我,例如: delivery v03, linxia v02")
print("我会把对应 wav 注册为参考音频,再跑全量克隆。")
if __name__ == "__main__":
main()
-271
View File
@@ -1,271 +0,0 @@
#!/usr/bin/env python3
"""
《林夏》TTS v5 — 选定试听样本克隆 + Style Control 表演
参考音频:audio_2/tts/v4_voice_samples/{role}/*.wav(每角色保留 1 条)
输出:audio_2/tts/v5_cloned/*_wav_v5.mp3
部署:audio/mp3/tts/*_wav_v1.mp3(游戏直接可用)
用法:
VOXCPM_PORT=8002 python audio_2/scripts/04_gen_tts_clone.py --force
python audio_2/scripts/04_gen_tts_clone.py --role delivery --test
python audio_2/scripts/04_gen_tts_clone.py --no-deploy
"""
import argparse
import base64
import glob
import os
import shutil
import subprocess
import sys
import tempfile
import time
import requests
PROJECT_DIR = "/home/xsl/blind"
SAMPLE_DIR = f"{PROJECT_DIR}/audio_2/tts/v4_voice_samples"
OUT_DIR = f"{PROJECT_DIR}/audio_2/tts/v5_cloned"
DEPLOY_DIR = f"{PROJECT_DIR}/audio/mp3/tts"
HOST = os.environ.get("VOXCPM_HOST", "127.0.0.1")
PORT = os.environ.get("VOXCPM_PORT", "8002")
BASE_URL = f"http://{HOST}:{PORT}"
sys.path.insert(0, f"{PROJECT_DIR}/audio")
sys.path.insert(0, f"{PROJECT_DIR}/audio_2")
from batch_tts_voxcpm import ROLES, LINES # noqa: E402
from voice_style_prompts import get_clone_style # noqa: E402
# story.js 引用但不在 LINES 中的台词
EXTRA_LINES = [
(
"lv11_0030_self3y_voice_01",
"self_3y",
"哦对,今天是我来北京的第一百天。妈,我没跟你说,我自己数的。"
"这个城市好大。我走了很多路,见了很多人。我觉得我还没准备好,"
"但我又觉得好像准备了很久很久了。你们不用担心我。我很好。"
"以后的我,如果你听到这条,记得要好好的。",
),
(
"lv11_0030_self3y_voice_02",
"self_3y",
"我今天又没睡好。不是失眠,就是睡不踏实。"
"北京这个地方,它会让你觉得你随时都要更好,随时都要更努力。"
"我在努力。但我不知道在努力什么。"
"我就想留下一条记录。今天,今天是……算了,就今天吧。",
),
(
"lv11_0030_self3y_voice_03",
"self_3y",
"是我。23岁的我。我设了三年后打开。"
"我不知道那时候的你怎么样了。如果你很好,就当我多虑了。"
"如果你不好——你看,你熬过来了对不对。"
"你23岁的时候,也觉得很难。但你还是过来了。"
"所以……撑住啊。",
),
("lv11_sys_memo_01", "linxia", "三年前今天,一条未听的录音"),
]
os.makedirs(OUT_DIR, exist_ok=True)
os.makedirs(DEPLOY_DIR, exist_ok=True)
def find_selected_ref(role_key):
role_dir = os.path.join(SAMPLE_DIR, role_key)
wavs = sorted(glob.glob(os.path.join(role_dir, "*.wav")))
if not wavs:
return None
if len(wavs) > 1:
print(f" [警告] {role_key} 有多条参考音频,使用: {os.path.basename(wavs[0])}")
return wavs[0]
def convert_to_wav(src, dst):
subprocess.run(
["ffmpeg", "-y", "-i", src, "-ar", "16000", "-ac", "1", "-acodec", "pcm_s16le", dst],
check=True,
capture_output=True,
)
def wav_to_base64(path):
with open(path, "rb") as f:
return base64.b64encode(f.read()).decode()
def apply_speed(src, speed, dst):
if abs(speed - 1.0) < 0.01:
shutil.copy2(src, dst)
return
subprocess.run(
["ffmpeg", "-y", "-i", src, "-filter:a", f"atempo={speed}", "-acodec", "pcm_s16le", dst],
check=True,
capture_output=True,
)
def wav_to_mp3(src, dst):
subprocess.run(
[
"ffmpeg", "-y", "-i", src,
"-codec:a", "libmp3lame", "-b:a", "128k", "-ar", "24000", "-ac", "1",
dst,
],
check=True,
capture_output=True,
)
def check_server():
try:
r = requests.get(f"{BASE_URL}/health", timeout=5)
return r.status_code == 200 and r.json().get("status") == "ok"
except Exception:
return False
def register_voice(wav_path):
r = requests.post(
f"{BASE_URL}/v1/voices",
json={"wav_base64": wav_to_base64(wav_path)},
timeout=60,
)
r.raise_for_status()
return r.json()["voice_id"]
def synthesize_styled(voice_id, text, style, cfg=2.0, steps=10):
payload = {
"text": text,
"style": style,
"voice_id": voice_id,
"cfg_value": cfg,
"inference_timesteps": steps,
}
r = requests.post(f"{BASE_URL}/v1/speech/styled", json=payload, timeout=180)
r.raise_for_status()
return r.content
def main():
parser = argparse.ArgumentParser(description="选定样本克隆 → v5 + 部署游戏目录")
parser.add_argument("--role", help="只合成指定角色")
parser.add_argument("--test", action="store_true", help="只合成第一条")
parser.add_argument("--dry-run", action="store_true")
parser.add_argument("--force", action="store_true")
parser.add_argument("--no-deploy", action="store_true", help="不复制到 audio/mp3/tts")
parser.add_argument("--cfg", type=float, default=2.0)
parser.add_argument("--steps", type=int, default=10)
args = parser.parse_args()
lines = LINES + EXTRA_LINES
if args.role:
lines = [(f, r, t) for f, r, t in lines if r == args.role or r.startswith(args.role)]
if args.test:
lines = lines[:1]
roles_needed = sorted(set(r for _, r, _ in lines))
print(f"\n{'=' * 60}")
print(" 《林夏》TTS v5 — 试听样本克隆")
print(f" 参考: {SAMPLE_DIR}")
print(f" 输出: {OUT_DIR}")
if not args.no_deploy:
print(f" 部署: {DEPLOY_DIR} (*_wav_v1.mp3)")
print(f" 台词: {len(lines)} 条 角色: {len(roles_needed)}")
print(f"{'=' * 60}\n")
refs = {}
for role in roles_needed:
ref = find_selected_ref(role)
if ref:
refs[role] = ref
print(f" [{role}] ← {os.path.basename(ref)}")
else:
print(f" [{role}] ✗ 未找到参考音频")
if args.dry_run:
print()
for fname, role, text in lines:
style = get_clone_style(fname, role, text) or "(无表演修饰)"
print(f" {fname} [{role}] style={style}")
print(f" ref={'yes' if role in refs else 'NO'} text={text[:40]}...")
return
missing = [r for r in roles_needed if r not in refs]
if missing:
print(f"\n[错误] 缺少参考音频: {', '.join(missing)}")
sys.exit(1)
if not check_server():
print(f"[错误] VoxCPM2 未就绪: {BASE_URL}/health")
sys.exit(1)
tmp = tempfile.mkdtemp(prefix="voxcpm5_")
voice_ids = {}
for role, ref_path in sorted(refs.items()):
wav = os.path.join(tmp, f"{role}_ref.wav")
convert_to_wav(ref_path, wav)
print(f" 注册音色: {role} ... ", end="", flush=True)
voice_ids[role] = register_voice(wav)
print(f"ok ({voice_ids[role][:10]}...)")
ok = skip = fail = 0
manifest_path = os.path.join(OUT_DIR, "clone_manifest.tsv")
manifest_lines = ["filename\trole\tref\tstyle\ttext\n"]
for i, (fname, role, text) in enumerate(lines, 1):
out_v5 = os.path.join(OUT_DIR, f"{fname}_wav_v5.mp3")
out_game = os.path.join(DEPLOY_DIR, f"{fname}_wav_v1.mp3")
style = get_clone_style(fname, role, text)
ref_name = os.path.basename(refs[role])
manifest_lines.append(
f"{fname}\t{role}\t{ref_name}\t{(style or '自然说话').replace(chr(9), ' ')}\t"
f"{text.replace(chr(9), ' ')}\n"
)
if os.path.exists(out_v5) and not args.force:
print(f" [{i:3d}/{len(lines)}] SKIP {fname}")
skip += 1
continue
if role not in voice_ids:
print(f" [{i:3d}/{len(lines)}] MISS {fname}")
fail += 1
continue
print(f" [{i:3d}/{len(lines)}] {fname} [{role}] ... ", end="", flush=True)
t0 = time.time()
try:
wav_bytes = synthesize_styled(
voice_ids[role], text, style, cfg=args.cfg, steps=args.steps
)
raw_wav = os.path.join(tmp, f"{fname}_raw.wav")
spd_wav = os.path.join(tmp, f"{fname}_spd.wav")
with open(raw_wav, "wb") as f:
f.write(wav_bytes)
speed = ROLES.get(role, {}).get("speed", 1.0)
apply_speed(raw_wav, speed, spd_wav)
wav_to_mp3(spd_wav, out_v5)
if not args.no_deploy:
shutil.copy2(out_v5, out_game)
kb = os.path.getsize(out_v5) // 1024
print(f"ok ({time.time() - t0:.1f}s, {kb}KB)")
ok += 1
except Exception as e:
print(f"FAIL: {e}")
fail += 1
with open(manifest_path, "w", encoding="utf-8") as f:
f.writelines(manifest_lines)
print(f"\n完成: {ok} ok, {skip} skip, {fail} fail")
print(f"输出: {OUT_DIR}")
print(f"清单: {manifest_path}")
if not args.no_deploy:
print(f"游戏目录: {DEPLOY_DIR}")
if __name__ == "__main__":
main()
-51
View File
@@ -1,51 +0,0 @@
# Voice Design 试听样本(v4
每角色 **5 条**约 **7–10 秒**试听,用不同提示词生成不同音色。
选定后注册为 `voice/{角色}/` 参考音频,再跑全量 Style Control 克隆。
## 试听目录
```
audio_2/tts/v4_voice_samples/
linxia/ linxia_v01.mp3 … v05.mp3
mom/
azhe/
xiaomei/
xiaomei_drunk/
zhounan/
hr/
anan/
dorm_a/ dorm_b/ dorm_c/
delivery/ ← 5 条均为男声,语速已调慢
self_3y/
```
完整清单(含时长与提示词):`samples_manifest.tsv`
## 外卖小哥(delivery)变体说明
| 编号 | 侧重点 |
|------|--------|
| v01 | 北方男声,中低音,**语速适中偏慢**,礼貌直接 |
| v02 | 偏低沉稳,**语速慢**,熟手外卖员 |
| v03 | 普通青年男声,语速正常 |
| v04 | 略粗中音,语速适中,不催促 |
| v05 | 清爽青年音,**语速偏慢**,清楚有条理 |
## 选定后告诉我
格式示例:
```
linxia v02, mom v01, azhe v03, delivery v02, ...
```
我会把对应 `.wav` 复制到 `voice/{角色}/`,再全量生成最终对白。
## 重新生成某角色样本
```bash
VOXCPM_PORT=8002 python audio_2/scripts/03_gen_voice_samples.py --role delivery --force
```
提示词配置:`audio_2/voice_sample_prompts.py`
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,66 +0,0 @@
role variant seconds prompt text file
anan v01 7.4 23岁中国女性,甜亮高音女声,语速快,比闺蜜更嗲,像在酒吧里喊,背景略吵 夏夏!我在海伦斯呢!要不要过来,我请客!才两杯……好吧三杯,对面那个我给你留了位置,赶紧赶紧! anan/anan_v01.mp3
anan v02 9.2 22岁中国女性,尖亮女声,兴奋,像在Helens里喊朋友 夏夏!我在海伦斯呢!要不要过来,我请客!才两杯……好吧三杯,对面那个我给你留了位置,赶紧赶紧! anan/anan_v02.mp3
anan v03 10.1 24岁中国女性,偏高女声,带醉意,活泼,像夜场里发语音 夏夏!我在海伦斯呢!要不要过来,我请客!才两杯……好吧三杯,对面那个我给你留了位置,赶紧赶紧! anan/anan_v03.mp3
anan v04 7.6 23岁中国女性,甜腻高音,快语速,像撒娇式喊话 夏夏!我在海伦斯呢!要不要过来,我请客!才两杯……好吧三杯,对面那个我给你留了位置,赶紧赶紧! anan/anan_v04.mp3
anan v05 9.8 22岁中国女性,明亮女声,能量很高,像在嘈杂环境里说话 夏夏!我在海伦斯呢!要不要过来,我请客!才两杯……好吧三杯,对面那个我给你留了位置,赶紧赶紧! anan/anan_v05.mp3
azhe v01 8.1 27岁中国男性,清朗偏低男声,城市口音,理性偏冷,语速平稳,用词克制,略带距离感 夏夏,我明天要出差。那个充电盒好像落你那儿了,你方便的时候帮我寄一下,地址我等下发你。 azhe/azhe_v01.mp3
azhe v02 7.6 28岁中国男性,中低音男声,冷静直接,不多废话,像同事发工作语音 夏夏,我明天要出差。那个充电盒好像落你那儿了,你方便的时候帮我寄一下,地址我等下发你。 azhe/azhe_v02.mp3
azhe v03 7.6 26岁中国男性,偏薄男声,语速正常,礼貌但疏离,都市青年 夏夏,我明天要出差。那个充电盒好像落你那儿了,你方便的时候帮我寄一下,地址我等下发你。 azhe/azhe_v03.mp3
azhe v04 6.9 29岁中国男性,低沉男中音,慢语速,克制,像鼓足勇气打电话 夏夏,我明天要出差。那个充电盒好像落你那儿了,你方便的时候帮我寄一下,地址我等下发你。 azhe/azhe_v04.mp3
azhe v05 8.5 27岁中国男性,清爽男声,平稳,略带紧张,真诚但不油 夏夏,我明天要出差。那个充电盒好像落你那儿了,你方便的时候帮我寄一下,地址我等下发你。 azhe/azhe_v05.mp3
delivery v01 7.9 30岁中国北方男性,男声,中低音,语速适中偏慢,北方口音,礼貌直接,像外卖小哥打电话 你好,您的麻辣烫到了,我现在在您楼下。方便的话我放门口,不方便您说一声,我马上上来。 delivery/delivery_v01.mp3
delivery v02 8.5 32岁中国北方男性,男声,偏低沉稳,语速慢,普通话带北方味,熟手外卖员通知取餐 你好,您的麻辣烫到了,我现在在您楼下。方便的话我放门口,不方便您说一声,我马上上来。 delivery/delivery_v02.mp3
delivery v03 7.1 28岁中国男性,男声,普通青年音,语速正常,清楚有条理,送餐到了打电话 你好,您的麻辣烫到了,我现在在您楼下。方便的话我放门口,不方便您说一声,我马上上来。 delivery/delivery_v03.mp3
delivery v04 6.3 35岁中国北方男性,男声,略粗中音,语速适中,直接但不催,外卖电话 你好,您的麻辣烫到了,我现在在您楼下。方便的话我放门口,不方便您说一声,我马上上来。 delivery/delivery_v04.mp3
delivery v05 7.6 30岁中国男性,男声,清爽青年音,语速偏慢,礼貌清楚,放门口前确认 你好,您的麻辣烫到了,我现在在您楼下。方便的话我放门口,不方便您说一声,我马上上来。 delivery/delivery_v05.mp3
dorm_a v01 7.1 22岁中国女性,兴奋尖亮女声,语速很快,像群里报喜,充满喜悦 夏夏我告诉你个好消息!我升职了!说来话长,我们老板走了我就顶上了,哈哈太厉害了真的! dorm_a/dorm_a_v01.mp3
dorm_a v02 7.7 21岁中国女性,高音女声,极快语速,像刚得知好消息 夏夏我告诉你个好消息!我升职了!说来话长,我们老板走了我就顶上了,哈哈太厉害了真的! dorm_a/dorm_a_v02.mp3
dorm_a v03 7.4 23岁中国女性,明亮女声,兴奋,像室友群里连发 夏夏我告诉你个好消息!我升职了!说来话长,我们老板走了我就顶上了,哈哈太厉害了真的! dorm_a/dorm_a_v03.mp3
dorm_a v04 8.2 22岁中国女性,清脆女声,快,带笑,报喜语气 夏夏我告诉你个好消息!我升职了!说来话长,我们老板走了我就顶上了,哈哈太厉害了真的! dorm_a/dorm_a_v04.mp3
dorm_a v05 7.4 20岁中国女性,年轻尖声,语速很快,像大学生群聊 夏夏我告诉你个好消息!我升职了!说来话长,我们老板走了我就顶上了,哈哈太厉害了真的! dorm_a/dorm_a_v05.mp3
dorm_b v01 7.1 23岁中国女性,普通随和女声,中音,语速正常,像室友起哄 真的啊恭喜恭喜!太厉害了!你是不是有事啊?没事可以跟我们说,夏夏在忙吧也别硬撑。 dorm_b/dorm_b_v01.mp3
dorm_b v02 5.5 22岁中国女性,平和女声,中等语速,像关心室友 真的啊恭喜恭喜!太厉害了!你是不是有事啊?没事可以跟我们说,夏夏在忙吧也别硬撑。 dorm_b/dorm_b_v02.mp3
dorm_b v03 7.7 24岁中国女性,随和中音,正常语速,像群里接话 真的啊恭喜恭喜!太厉害了!你是不是有事啊?没事可以跟我们说,夏夏在忙吧也别硬撑。 dorm_b/dorm_b_v03.mp3
dorm_b v04 10.6 23岁中国女性,略低女声,温和,像怕打扰又忍不住说 真的啊恭喜恭喜!太厉害了!你是不是有事啊?没事可以跟我们说,夏夏在忙吧也别硬撑。 dorm_b/dorm_b_v04.mp3
dorm_b v05 9.3 22岁中国女性,普通青年女声,自然,像宿舍闲聊 真的啊恭喜恭喜!太厉害了!你是不是有事啊?没事可以跟我们说,夏夏在忙吧也别硬撑。 dorm_b/dorm_b_v05.mp3
dorm_c v01 9.8 23岁中国女性,温柔低声女声,语速略慢,像注意到朋友沉默的室友 夏夏,你最近是不是有心事啊?我看你群里不怎么说话了。要是方便的话,可以跟我们聊聊,我们都在。 dorm_c/dorm_c_v01.mp3
dorm_c v02 11.4 22岁中国女性,轻声女声,慢语速,体贴,像悄悄关心 夏夏,你最近是不是有心事啊?我看你群里不怎么说话了。要是方便的话,可以跟我们聊聊,我们都在。 dorm_c/dorm_c_v02.mp3
dorm_c v03 8.2 24岁中国女性,温软中音,语速慢,像怕戳痛对方 夏夏,你最近是不是有心事啊?我看你群里不怎么说话了。要是方便的话,可以跟我们聊聊,我们都在。 dorm_c/dorm_c_v03.mp3
dorm_c v04 9.6 23岁中国女性,低柔女声,轻声,像宿舍熄灯后说话 夏夏,你最近是不是有心事啊?我看你群里不怎么说话了。要是方便的话,可以跟我们聊聊,我们都在。 dorm_c/dorm_c_v04.mp3
dorm_c v05 9.3 22岁中国女性,温柔女声,慢而稳,像递一杯水那样说话 夏夏,你最近是不是有心事啊?我看你群里不怎么说话了。要是方便的话,可以跟我们聊聊,我们都在。 dorm_c/dorm_c_v05.mp3
hr v01 8.9 38岁中国女性,成熟职场女声,中音区,知性干练,疲惫的善意,像HR发工作语音 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。 hr/hr_v01.mp3
hr v02 11.7 40岁中国女性,沉稳职场女声,语速正常,专业但不冷漠 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。 hr/hr_v02.mp3
hr v03 10.3 36岁中国女性,温和职场女声,像前辈善意提醒 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。 hr/hr_v03.mp3
hr v04 8.7 38岁中国女性,中低音职场女声,干脆,像办完离职手续的叮嘱 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。 hr/hr_v04.mp3
hr v05 7.6 42岁中国女性,略哑成熟女声,阅历感,疲惫但真诚 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。 hr/hr_v05.mp3
linxia v01 9.8 24岁中国女性,中低音女声,声线偏薄,疲惫但清醒,克制有温度,普通话,像深夜发微信语音 你刚才发的那句话,我看了很久。其实我不是不想回你,我只是……不知道该怎么开口。 linxia/linxia_v01.mp3
linxia v02 9.8 24岁中国女性,略带气声的中音,慢语速,柔软但有分寸,像刚下班躺床上回消息 你刚才发的那句话,我看了很久。其实我不是不想回你,我只是……不知道该怎么开口。 linxia/linxia_v02.mp3
linxia v03 6.8 25岁中国女性,稳而轻的中音女声,有距离感但不冷,都市年轻人,普通话标准 你刚才发的那句话,我看了很久。其实我不是不想回你,我只是……不知道该怎么开口。 linxia/linxia_v03.mp3
linxia v04 9.2 23岁中国女性,声线略低,清醒克制,字句短,像怕吵醒室友的轻声 你刚才发的那句话,我看了很久。其实我不是不想回你,我只是……不知道该怎么开口。 linxia/linxia_v04.mp3
linxia v05 7.4 24岁中国女性,清朗中音,疲惫里藏一点温度,语速偏慢,像对自己说话 你刚才发的那句话,我看了很久。其实我不是不想回你,我只是……不知道该怎么开口。 linxia/linxia_v05.mp3
mom v01 9.3 52岁中国女性,温厚中老年女声,音色略哑,轻微西部口音,说话慢而稳,像母亲打电话 女儿啊,妈妈今晚给你做了排骨。你在外面别总吃外卖,记得按时吃饭,累了就给家里打个电话。 mom/mom_v01.mp3
mom v02 9.0 50岁中国女性,柔和中音,带一点鼻音,语速慢,温柔试探,像怕打扰女儿 女儿啊,妈妈今晚给你做了排骨。你在外面别总吃外卖,记得按时吃饭,累了就给家里打个电话。 mom/mom_v02.mp3
mom v03 10.0 55岁中国女性,低沉温厚女声,轻微方言感,像回忆往事时说话 女儿啊,妈妈今晚给你做了排骨。你在外面别总吃外卖,记得按时吃饭,累了就给家里打个电话。 mom/mom_v03.mp3
mom v04 8.4 48岁中国女性,清亮一点的中老年女声,关切但不啰嗦,母亲语气 女儿啊,妈妈今晚给你做了排骨。你在外面别总吃外卖,记得按时吃饭,累了就给家里打个电话。 mom/mom_v04.mp3
mom v05 8.5 52岁中国女性,沙哑温声,情感克制,像深夜给女儿发长语音 女儿啊,妈妈今晚给你做了排骨。你在外面别总吃外卖,记得按时吃饭,累了就给家里打个电话。 mom/mom_v05.mp3
self_3y v01 9.0 21岁中国女性,比林夏更亮更高的女声,刚来北京,兴奋带紧张,声音更年轻 刚来北京的时候,地铁里人挤人,我还紧张得不敢说话。但是看见国贸的灯,真的觉得一切都值得。 self_3y/self_3y_v01.mp3
self_3y v02 7.7 20岁中国女性,明亮高音,年轻,带一点紧张,像初到北京 刚来北京的时候,地铁里人挤人,我还紧张得不敢说话。但是看见国贸的灯,真的觉得一切都值得。 self_3y/self_3y_v02.mp3
self_3y v03 7.7 22岁中国女性,清亮女声,兴奋,像第一次看见大城市 刚来北京的时候,地铁里人挤人,我还紧张得不敢说话。但是看见国贸的灯,真的觉得一切都值得。 self_3y/self_3y_v03.mp3
self_3y v04 8.9 21岁中国女性,偏高女声,语速快,紧张又期待,刚毕业 刚来北京的时候,地铁里人挤人,我还紧张得不敢说话。但是看见国贸的灯,真的觉得一切都值得。 self_3y/self_3y_v04.mp3
self_3y v05 8.7 20岁中国女性,少女音,亮而轻,像给闺蜜发语音报喜 刚来北京的时候,地铁里人挤人,我还紧张得不敢说话。但是看见国贸的灯,真的觉得一切都值得。 self_3y/self_3y_v05.mp3
xiaomei v01 7.1 24岁中国女性,明亮偏高的女声,语速快,活泼直接,像闺蜜连发语音,能量足 夏夏你怎么又不理我!我跟你说啊,今天公司发生一件超离谱的事,你必须得听,笑死我了真的! xiaomei/xiaomei_v01.mp3
xiaomei v02 7.4 23岁中国女性,甜亮高音,语速很快,兴奋,像群里@你 夏夏你怎么又不理我!我跟你说啊,今天公司发生一件超离谱的事,你必须得听,笑死我了真的! xiaomei/xiaomei_v02.mp3
xiaomei v03 6.9 25岁中国女性,明亮女声,语速中等偏快,直来直去,闺蜜语气 夏夏你怎么又不理我!我跟你说啊,今天公司发生一件超离谱的事,你必须得听,笑死我了真的! xiaomei/xiaomei_v03.mp3
xiaomei v04 9.2 24岁中国女性,偏高女声,带笑说话,活泼,像分享八卦 夏夏你怎么又不理我!我跟你说啊,今天公司发生一件超离谱的事,你必须得听,笑死我了真的! xiaomei/xiaomei_v04.mp3
xiaomei v05 6.8 22岁中国女性,清脆女声,快语速,热情,像连珠炮 夏夏你怎么又不理我!我跟你说啊,今天公司发生一件超离谱的事,你必须得听,笑死我了真的! xiaomei/xiaomei_v05.mp3
xiaomei_drunk v01 12.0 24岁中国女性,同闺蜜音色但喝醉了,口齿略含糊,情绪起伏大,时而哭时而笑 夏夏……我跟你说啊……今天我喝多了……你别嫌我烦,阿哲他……大三那年他还追过我呢…… xiaomei_drunk/xiaomei_drunk_v01.mp3
xiaomei_drunk v02 8.5 24岁中国女性,醉态女声,黏糊,语速忽快忽慢,带哭腔 夏夏……我跟你说啊……今天我喝多了……你别嫌我烦,阿哲他……大三那年他还追过我呢…… xiaomei_drunk/xiaomei_drunk_v02.mp3
xiaomei_drunk v03 6.3 25岁中国女性,喝醉的女声,舌头打结,情绪上来,委屈又笑 夏夏……我跟你说啊……今天我喝多了……你别嫌我烦,阿哲他……大三那年他还追过我呢…… xiaomei_drunk/xiaomei_drunk_v03.mp3
xiaomei_drunk v04 9.3 23岁中国女性,微醺女声,含混,像深夜酒后的语音 夏夏……我跟你说啊……今天我喝多了……你别嫌我烦,阿哲他……大三那年他还追过我呢…… xiaomei_drunk/xiaomei_drunk_v04.mp3
xiaomei_drunk v05 9.0 24岁中国女性,醉酒后女声,鼻音重,情绪不稳定,像倾诉秘密 夏夏……我跟你说啊……今天我喝多了……你别嫌我烦,阿哲他……大三那年他还追过我呢…… xiaomei_drunk/xiaomei_drunk_v05.mp3
zhounan v01 9.0 26岁中国男性,温和偏闷的男中音,略拘谨,语速偏慢,像很久没联系的老同学,真诚不油 今年第一次来北京出差。来之前我想着要不要找你,找了很久,才在一个校友群里看到你。你现在怎么样? zhounan/zhounan_v01.mp3
zhounan v02 12.5 27岁中国男性,低沉男声,慢语速,略带怀旧,像回忆往事 今年第一次来北京出差。来之前我想着要不要找你,找了很久,才在一个校友群里看到你。你现在怎么样? zhounan/zhounan_v02.mp3
zhounan v03 8.4 25岁中国男性,普通青年男声,真诚,略紧张,老同学语气 今年第一次来北京出差。来之前我想着要不要找你,找了很久,才在一个校友群里看到你。你现在怎么样? zhounan/zhounan_v03.mp3
zhounan v04 14.4 28岁中国男性,温厚男中音,语速慢,像生日夜独自说话 今年第一次来北京出差。来之前我想着要不要找你,找了很久,才在一个校友群里看到你。你现在怎么样? zhounan/zhounan_v04.mp3
zhounan v05 7.9 26岁中国男性,清爽男声,克制,小心翼翼,不想打扰对方 今年第一次来北京出差。来之前我想着要不要找你,找了很久,才在一个校友群里看到你。你现在怎么样? zhounan/zhounan_v05.mp3
1 role variant seconds prompt text file
2 anan v01 7.4 23岁中国女性,甜亮高音女声,语速快,比闺蜜更嗲,像在酒吧里喊,背景略吵 夏夏!我在海伦斯呢!要不要过来,我请客!才两杯……好吧三杯,对面那个我给你留了位置,赶紧赶紧! anan/anan_v01.mp3
3 anan v02 9.2 22岁中国女性,尖亮女声,兴奋,像在Helens里喊朋友 夏夏!我在海伦斯呢!要不要过来,我请客!才两杯……好吧三杯,对面那个我给你留了位置,赶紧赶紧! anan/anan_v02.mp3
4 anan v03 10.1 24岁中国女性,偏高女声,带醉意,活泼,像夜场里发语音 夏夏!我在海伦斯呢!要不要过来,我请客!才两杯……好吧三杯,对面那个我给你留了位置,赶紧赶紧! anan/anan_v03.mp3
5 anan v04 7.6 23岁中国女性,甜腻高音,快语速,像撒娇式喊话 夏夏!我在海伦斯呢!要不要过来,我请客!才两杯……好吧三杯,对面那个我给你留了位置,赶紧赶紧! anan/anan_v04.mp3
6 anan v05 9.8 22岁中国女性,明亮女声,能量很高,像在嘈杂环境里说话 夏夏!我在海伦斯呢!要不要过来,我请客!才两杯……好吧三杯,对面那个我给你留了位置,赶紧赶紧! anan/anan_v05.mp3
7 azhe v01 8.1 27岁中国男性,清朗偏低男声,城市口音,理性偏冷,语速平稳,用词克制,略带距离感 夏夏,我明天要出差。那个充电盒好像落你那儿了,你方便的时候帮我寄一下,地址我等下发你。 azhe/azhe_v01.mp3
8 azhe v02 7.6 28岁中国男性,中低音男声,冷静直接,不多废话,像同事发工作语音 夏夏,我明天要出差。那个充电盒好像落你那儿了,你方便的时候帮我寄一下,地址我等下发你。 azhe/azhe_v02.mp3
9 azhe v03 7.6 26岁中国男性,偏薄男声,语速正常,礼貌但疏离,都市青年 夏夏,我明天要出差。那个充电盒好像落你那儿了,你方便的时候帮我寄一下,地址我等下发你。 azhe/azhe_v03.mp3
10 azhe v04 6.9 29岁中国男性,低沉男中音,慢语速,克制,像鼓足勇气打电话 夏夏,我明天要出差。那个充电盒好像落你那儿了,你方便的时候帮我寄一下,地址我等下发你。 azhe/azhe_v04.mp3
11 azhe v05 8.5 27岁中国男性,清爽男声,平稳,略带紧张,真诚但不油 夏夏,我明天要出差。那个充电盒好像落你那儿了,你方便的时候帮我寄一下,地址我等下发你。 azhe/azhe_v05.mp3
12 delivery v01 7.9 30岁中国北方男性,男声,中低音,语速适中偏慢,北方口音,礼貌直接,像外卖小哥打电话 你好,您的麻辣烫到了,我现在在您楼下。方便的话我放门口,不方便您说一声,我马上上来。 delivery/delivery_v01.mp3
13 delivery v02 8.5 32岁中国北方男性,男声,偏低沉稳,语速慢,普通话带北方味,熟手外卖员通知取餐 你好,您的麻辣烫到了,我现在在您楼下。方便的话我放门口,不方便您说一声,我马上上来。 delivery/delivery_v02.mp3
14 delivery v03 7.1 28岁中国男性,男声,普通青年音,语速正常,清楚有条理,送餐到了打电话 你好,您的麻辣烫到了,我现在在您楼下。方便的话我放门口,不方便您说一声,我马上上来。 delivery/delivery_v03.mp3
15 delivery v04 6.3 35岁中国北方男性,男声,略粗中音,语速适中,直接但不催,外卖电话 你好,您的麻辣烫到了,我现在在您楼下。方便的话我放门口,不方便您说一声,我马上上来。 delivery/delivery_v04.mp3
16 delivery v05 7.6 30岁中国男性,男声,清爽青年音,语速偏慢,礼貌清楚,放门口前确认 你好,您的麻辣烫到了,我现在在您楼下。方便的话我放门口,不方便您说一声,我马上上来。 delivery/delivery_v05.mp3
17 dorm_a v01 7.1 22岁中国女性,兴奋尖亮女声,语速很快,像群里报喜,充满喜悦 夏夏我告诉你个好消息!我升职了!说来话长,我们老板走了我就顶上了,哈哈太厉害了真的! dorm_a/dorm_a_v01.mp3
18 dorm_a v02 7.7 21岁中国女性,高音女声,极快语速,像刚得知好消息 夏夏我告诉你个好消息!我升职了!说来话长,我们老板走了我就顶上了,哈哈太厉害了真的! dorm_a/dorm_a_v02.mp3
19 dorm_a v03 7.4 23岁中国女性,明亮女声,兴奋,像室友群里连发 夏夏我告诉你个好消息!我升职了!说来话长,我们老板走了我就顶上了,哈哈太厉害了真的! dorm_a/dorm_a_v03.mp3
20 dorm_a v04 8.2 22岁中国女性,清脆女声,快,带笑,报喜语气 夏夏我告诉你个好消息!我升职了!说来话长,我们老板走了我就顶上了,哈哈太厉害了真的! dorm_a/dorm_a_v04.mp3
21 dorm_a v05 7.4 20岁中国女性,年轻尖声,语速很快,像大学生群聊 夏夏我告诉你个好消息!我升职了!说来话长,我们老板走了我就顶上了,哈哈太厉害了真的! dorm_a/dorm_a_v05.mp3
22 dorm_b v01 7.1 23岁中国女性,普通随和女声,中音,语速正常,像室友起哄 真的啊恭喜恭喜!太厉害了!你是不是有事啊?没事可以跟我们说,夏夏在忙吧也别硬撑。 dorm_b/dorm_b_v01.mp3
23 dorm_b v02 5.5 22岁中国女性,平和女声,中等语速,像关心室友 真的啊恭喜恭喜!太厉害了!你是不是有事啊?没事可以跟我们说,夏夏在忙吧也别硬撑。 dorm_b/dorm_b_v02.mp3
24 dorm_b v03 7.7 24岁中国女性,随和中音,正常语速,像群里接话 真的啊恭喜恭喜!太厉害了!你是不是有事啊?没事可以跟我们说,夏夏在忙吧也别硬撑。 dorm_b/dorm_b_v03.mp3
25 dorm_b v04 10.6 23岁中国女性,略低女声,温和,像怕打扰又忍不住说 真的啊恭喜恭喜!太厉害了!你是不是有事啊?没事可以跟我们说,夏夏在忙吧也别硬撑。 dorm_b/dorm_b_v04.mp3
26 dorm_b v05 9.3 22岁中国女性,普通青年女声,自然,像宿舍闲聊 真的啊恭喜恭喜!太厉害了!你是不是有事啊?没事可以跟我们说,夏夏在忙吧也别硬撑。 dorm_b/dorm_b_v05.mp3
27 dorm_c v01 9.8 23岁中国女性,温柔低声女声,语速略慢,像注意到朋友沉默的室友 夏夏,你最近是不是有心事啊?我看你群里不怎么说话了。要是方便的话,可以跟我们聊聊,我们都在。 dorm_c/dorm_c_v01.mp3
28 dorm_c v02 11.4 22岁中国女性,轻声女声,慢语速,体贴,像悄悄关心 夏夏,你最近是不是有心事啊?我看你群里不怎么说话了。要是方便的话,可以跟我们聊聊,我们都在。 dorm_c/dorm_c_v02.mp3
29 dorm_c v03 8.2 24岁中国女性,温软中音,语速慢,像怕戳痛对方 夏夏,你最近是不是有心事啊?我看你群里不怎么说话了。要是方便的话,可以跟我们聊聊,我们都在。 dorm_c/dorm_c_v03.mp3
30 dorm_c v04 9.6 23岁中国女性,低柔女声,轻声,像宿舍熄灯后说话 夏夏,你最近是不是有心事啊?我看你群里不怎么说话了。要是方便的话,可以跟我们聊聊,我们都在。 dorm_c/dorm_c_v04.mp3
31 dorm_c v05 9.3 22岁中国女性,温柔女声,慢而稳,像递一杯水那样说话 夏夏,你最近是不是有心事啊?我看你群里不怎么说话了。要是方便的话,可以跟我们聊聊,我们都在。 dorm_c/dorm_c_v05.mp3
32 hr v01 8.9 38岁中国女性,成熟职场女声,中音区,知性干练,疲惫的善意,像HR发工作语音 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。 hr/hr_v01.mp3
33 hr v02 11.7 40岁中国女性,沉稳职场女声,语速正常,专业但不冷漠 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。 hr/hr_v02.mp3
34 hr v03 10.3 36岁中国女性,温和职场女声,像前辈善意提醒 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。 hr/hr_v03.mp3
35 hr v04 8.7 38岁中国女性,中低音职场女声,干脆,像办完离职手续的叮嘱 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。 hr/hr_v04.mp3
36 hr v05 7.6 42岁中国女性,略哑成熟女声,阅历感,疲惫但真诚 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。 hr/hr_v05.mp3
37 linxia v01 9.8 24岁中国女性,中低音女声,声线偏薄,疲惫但清醒,克制有温度,普通话,像深夜发微信语音 你刚才发的那句话,我看了很久。其实我不是不想回你,我只是……不知道该怎么开口。 linxia/linxia_v01.mp3
38 linxia v02 9.8 24岁中国女性,略带气声的中音,慢语速,柔软但有分寸,像刚下班躺床上回消息 你刚才发的那句话,我看了很久。其实我不是不想回你,我只是……不知道该怎么开口。 linxia/linxia_v02.mp3
39 linxia v03 6.8 25岁中国女性,稳而轻的中音女声,有距离感但不冷,都市年轻人,普通话标准 你刚才发的那句话,我看了很久。其实我不是不想回你,我只是……不知道该怎么开口。 linxia/linxia_v03.mp3
40 linxia v04 9.2 23岁中国女性,声线略低,清醒克制,字句短,像怕吵醒室友的轻声 你刚才发的那句话,我看了很久。其实我不是不想回你,我只是……不知道该怎么开口。 linxia/linxia_v04.mp3
41 linxia v05 7.4 24岁中国女性,清朗中音,疲惫里藏一点温度,语速偏慢,像对自己说话 你刚才发的那句话,我看了很久。其实我不是不想回你,我只是……不知道该怎么开口。 linxia/linxia_v05.mp3
42 mom v01 9.3 52岁中国女性,温厚中老年女声,音色略哑,轻微西部口音,说话慢而稳,像母亲打电话 女儿啊,妈妈今晚给你做了排骨。你在外面别总吃外卖,记得按时吃饭,累了就给家里打个电话。 mom/mom_v01.mp3
43 mom v02 9.0 50岁中国女性,柔和中音,带一点鼻音,语速慢,温柔试探,像怕打扰女儿 女儿啊,妈妈今晚给你做了排骨。你在外面别总吃外卖,记得按时吃饭,累了就给家里打个电话。 mom/mom_v02.mp3
44 mom v03 10.0 55岁中国女性,低沉温厚女声,轻微方言感,像回忆往事时说话 女儿啊,妈妈今晚给你做了排骨。你在外面别总吃外卖,记得按时吃饭,累了就给家里打个电话。 mom/mom_v03.mp3
45 mom v04 8.4 48岁中国女性,清亮一点的中老年女声,关切但不啰嗦,母亲语气 女儿啊,妈妈今晚给你做了排骨。你在外面别总吃外卖,记得按时吃饭,累了就给家里打个电话。 mom/mom_v04.mp3
46 mom v05 8.5 52岁中国女性,沙哑温声,情感克制,像深夜给女儿发长语音 女儿啊,妈妈今晚给你做了排骨。你在外面别总吃外卖,记得按时吃饭,累了就给家里打个电话。 mom/mom_v05.mp3
47 self_3y v01 9.0 21岁中国女性,比林夏更亮更高的女声,刚来北京,兴奋带紧张,声音更年轻 刚来北京的时候,地铁里人挤人,我还紧张得不敢说话。但是看见国贸的灯,真的觉得一切都值得。 self_3y/self_3y_v01.mp3
48 self_3y v02 7.7 20岁中国女性,明亮高音,年轻,带一点紧张,像初到北京 刚来北京的时候,地铁里人挤人,我还紧张得不敢说话。但是看见国贸的灯,真的觉得一切都值得。 self_3y/self_3y_v02.mp3
49 self_3y v03 7.7 22岁中国女性,清亮女声,兴奋,像第一次看见大城市 刚来北京的时候,地铁里人挤人,我还紧张得不敢说话。但是看见国贸的灯,真的觉得一切都值得。 self_3y/self_3y_v03.mp3
50 self_3y v04 8.9 21岁中国女性,偏高女声,语速快,紧张又期待,刚毕业 刚来北京的时候,地铁里人挤人,我还紧张得不敢说话。但是看见国贸的灯,真的觉得一切都值得。 self_3y/self_3y_v04.mp3
51 self_3y v05 8.7 20岁中国女性,少女音,亮而轻,像给闺蜜发语音报喜 刚来北京的时候,地铁里人挤人,我还紧张得不敢说话。但是看见国贸的灯,真的觉得一切都值得。 self_3y/self_3y_v05.mp3
52 xiaomei v01 7.1 24岁中国女性,明亮偏高的女声,语速快,活泼直接,像闺蜜连发语音,能量足 夏夏你怎么又不理我!我跟你说啊,今天公司发生一件超离谱的事,你必须得听,笑死我了真的! xiaomei/xiaomei_v01.mp3
53 xiaomei v02 7.4 23岁中国女性,甜亮高音,语速很快,兴奋,像群里@你 夏夏你怎么又不理我!我跟你说啊,今天公司发生一件超离谱的事,你必须得听,笑死我了真的! xiaomei/xiaomei_v02.mp3
54 xiaomei v03 6.9 25岁中国女性,明亮女声,语速中等偏快,直来直去,闺蜜语气 夏夏你怎么又不理我!我跟你说啊,今天公司发生一件超离谱的事,你必须得听,笑死我了真的! xiaomei/xiaomei_v03.mp3
55 xiaomei v04 9.2 24岁中国女性,偏高女声,带笑说话,活泼,像分享八卦 夏夏你怎么又不理我!我跟你说啊,今天公司发生一件超离谱的事,你必须得听,笑死我了真的! xiaomei/xiaomei_v04.mp3
56 xiaomei v05 6.8 22岁中国女性,清脆女声,快语速,热情,像连珠炮 夏夏你怎么又不理我!我跟你说啊,今天公司发生一件超离谱的事,你必须得听,笑死我了真的! xiaomei/xiaomei_v05.mp3
57 xiaomei_drunk v01 12.0 24岁中国女性,同闺蜜音色但喝醉了,口齿略含糊,情绪起伏大,时而哭时而笑 夏夏……我跟你说啊……今天我喝多了……你别嫌我烦,阿哲他……大三那年他还追过我呢…… xiaomei_drunk/xiaomei_drunk_v01.mp3
58 xiaomei_drunk v02 8.5 24岁中国女性,醉态女声,黏糊,语速忽快忽慢,带哭腔 夏夏……我跟你说啊……今天我喝多了……你别嫌我烦,阿哲他……大三那年他还追过我呢…… xiaomei_drunk/xiaomei_drunk_v02.mp3
59 xiaomei_drunk v03 6.3 25岁中国女性,喝醉的女声,舌头打结,情绪上来,委屈又笑 夏夏……我跟你说啊……今天我喝多了……你别嫌我烦,阿哲他……大三那年他还追过我呢…… xiaomei_drunk/xiaomei_drunk_v03.mp3
60 xiaomei_drunk v04 9.3 23岁中国女性,微醺女声,含混,像深夜酒后的语音 夏夏……我跟你说啊……今天我喝多了……你别嫌我烦,阿哲他……大三那年他还追过我呢…… xiaomei_drunk/xiaomei_drunk_v04.mp3
61 xiaomei_drunk v05 9.0 24岁中国女性,醉酒后女声,鼻音重,情绪不稳定,像倾诉秘密 夏夏……我跟你说啊……今天我喝多了……你别嫌我烦,阿哲他……大三那年他还追过我呢…… xiaomei_drunk/xiaomei_drunk_v05.mp3
62 zhounan v01 9.0 26岁中国男性,温和偏闷的男中音,略拘谨,语速偏慢,像很久没联系的老同学,真诚不油 今年第一次来北京出差。来之前我想着要不要找你,找了很久,才在一个校友群里看到你。你现在怎么样? zhounan/zhounan_v01.mp3
63 zhounan v02 12.5 27岁中国男性,低沉男声,慢语速,略带怀旧,像回忆往事 今年第一次来北京出差。来之前我想着要不要找你,找了很久,才在一个校友群里看到你。你现在怎么样? zhounan/zhounan_v02.mp3
64 zhounan v03 8.4 25岁中国男性,普通青年男声,真诚,略紧张,老同学语气 今年第一次来北京出差。来之前我想着要不要找你,找了很久,才在一个校友群里看到你。你现在怎么样? zhounan/zhounan_v03.mp3
65 zhounan v04 14.4 28岁中国男性,温厚男中音,语速慢,像生日夜独自说话 今年第一次来北京出差。来之前我想着要不要找你,找了很久,才在一个校友群里看到你。你现在怎么样? zhounan/zhounan_v04.mp3
66 zhounan v05 7.9 26岁中国男性,清爽男声,克制,小心翼翼,不想打扰对方 今年第一次来北京出差。来之前我想着要不要找你,找了很久,才在一个校友群里看到你。你现在怎么样? zhounan/zhounan_v05.mp3
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-178
View File
@@ -1,178 +0,0 @@
filename role ref style text
lv11_2103_mom_call_01 mom mom_v01.wav 自然说话 今晚煮了你爱吃的排骨,给你拍张照啊。下周五回来一趟,你高中物理老师的儿子,挺好的。
lv11_2115_xiaomei_voice_01 xiaomei xiaomei_v05.wav 自然说话 在吗
lv11_2115_xiaomei_voice_02 xiaomei xiaomei_v05.wav 自然说话 你被甩了我都听说了
lv11_2115_xiaomei_voice_03 xiaomei xiaomei_v05.wav 自然说话 明天晚上喝酒,海底捞旁边那家,不许放鸽子
lv11_2120_delivery_call_01 delivery delivery_v04.wav 自然说话 你好你的麻辣烫到了,放门口可以吗?
lv11_2130_azhe_voice_01 azhe azhe_v03.wav 自然说话 嗯……夏夏。我那个AirPods充电盒,好像落你抽屉里了。你方便的时候帮我寄一下吗,工位还要用。地址我等下发你。
lv11_2145_hr_voice_01 hr hr_v05.wav 自然说话 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。
lv11_2200_anan_voice_01 anan anan_v04.wav 自然说话 夏夏!我在helens!要不要过来!我请客!
lv11_2215_dorm_a_voice_01 dorm_a dorm_a_v03.wav 自然说话 哎你们看,我今天升职了!
lv11_2215_dorm_b_voice_01 dorm_b dorm_b_v02.wav 自然说话 真的啊!恭喜恭喜!太厉害了!
lv11_2215_dorm_c_voice_01 dorm_c dorm_c_v03.wav 自然说话 厉害!那要请客啊!
lv11_2215_dorm_a_voice_02 dorm_a dorm_a_v03.wav 自然说话 哈哈哈必须的!夏夏你怎么不说话呀
lv11_2215_dorm_b_voice_02 dorm_b dorm_b_v02.wav 自然说话 夏夏在忙吧,别打扰她了
lv11_2245_xiaomei_voice_01_seg1 xiaomei_drunk xiaomei_drunk_v05.wav 醉态开场,黏糊 夏夏夏夏夏。你睡了吗?我跟你说,我跟你说啊……今天我喝多了……
lv11_2245_xiaomei_voice_01_seg2 xiaomei_drunk xiaomei_drunk_v05.wav 醉态爆料,情绪上来 你别嫌我烦哈,我跟你说……其实啊……阿哲他,大三那年,他来追过我。我没答应他。我那时候就觉得他这人,呵,差点意思。
lv11_2245_xiaomei_voice_01_seg3 xiaomei_drunk xiaomei_drunk_v05.wav 醉态解释,委屈 你跟他在一起的时候,我没说,因为说了也没意义嘛对吧。现在他甩了你,我才敢说。
lv11_2245_xiaomei_voice_01_seg4 xiaomei_drunk xiaomei_drunk_v05.wav 醉态收尾,失落 夏夏,你听到了吗?你别恨我啊。……喂?算了。
lv11_2300_mom_text_01 mom mom_v01.wav 自然说话 睡了吗?
lv11_2315_azhe_call_01 azhe azhe_v03.wav 电话里略紧张,像鼓足勇气 我能过去拿吗?就5分钟
lv11_2330_zhounan_voice_01 zhounan zhounan_v05.wav 自然说话 林夏,是我,周南。你应该不记得我了吧,初三坐你后桌那个
lv11_2345_zhounan_voice_01 zhounan zhounan_v05.wav 自然说话 其实我一直想找机会跟你说声谢谢。初三那年你借我笔记,那次考试我才没挂科。
lv11_2345_zhounan_voice_02 zhounan zhounan_v05.wav 自然说话 后来高考,我没考好。复读了一年,去了一个二本。然后就回老家了,没什么好说的。
lv11_2345_zhounan_voice_03 zhounan zhounan_v05.wav 自然说话 今年第一次来北京出差。来之前我想着,要不要找你。找了很久,才在一个校友群里看到你。你现在过得怎么样?
lv11_2345_zhounan_voice_04 zhounan zhounan_v05.wav 自然说话 今天我生日。本来就想跟你说一声,对不起这么晚。
lv11_0015_mom_call_01 mom mom_v01.wav 担心女儿,语气轻但着急 夏夏,你不接电话我有点担心。妈妈知道你工作忙,你早点睡。
lv11_0200_mom_voice_01_seg1 mom mom_v01.wav 温柔试探,像怕打扰女儿 夏夏。妈妈知道你今天电话不接。妈妈不催你,就是想跟你说一件事。
lv11_0200_mom_voice_01_seg2 mom mom_v01.wav 平静追忆 你24了对吧。妈妈24那年——你应该没听我说过——
lv11_0200_mom_voice_01_seg3 mom mom_v01.wav 克制回忆痛苦 那时候妈妈在广州,给一个香港老板做秘书,1995年。那年我也被分手过。也被开除过。一模一样的春天。
lv11_0200_mom_voice_01_seg4 mom mom_v01.wav 释然 那年我哭得特别难看。后来呢?后来就没什么后来了。我回了老家,认识了你爸,生了你。
lv11_0200_mom_voice_01_seg5 mom mom_v01.wav 深沉情感,声音更轻 我跟你说这个不是想跟你说什么都会过去——我想跟你说,那年夏天我没死,是因为我外婆每天晚上都给我打一个电话。
lv11_0200_mom_voice_01_seg6 mom mom_v01.wav 极简温柔 她不说什么,就问我今天吃饭了没。
lv11_0200_mom_voice_01_seg7 mom mom_v01.wav 不要求回应的 tender 我现在打给你,你不接也没事。妈妈给你发个语音,你什么时候想听就听。你不用回我。
lv11_0200_mom_voice_01_seg8 mom mom_v01.wav 几乎微笑的晚安 你今天接了好多电话吧。妈妈不打扰你了。晚安。
v2_msg01_linxia_auto linxia linxia_v05.wav 疲惫克制,轻声 嗯……好。
v2_msg02_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 好啊,明天不见不散。
v2_msg02_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 再说吧。
v2_msg02_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你怎么知道的啊?
v2_msg02_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯。
v2_msg02_react_warm xiaomei xiaomei_v05.wav 语气更温暖积极 行!那我叫上安安!老地方见!别放鸽子啊!
v2_msg02_react_cold xiaomei xiaomei_v05.wav 语气更冷淡 ……好吧。你要是改主意了随时说。
v2_msg02_react_curious xiaomei xiaomei_v05.wav 语气好奇,略追问 还不是阿哲自己发朋友圈!你不知道吗?他发了又秒删……
v2_msg02_react_silent xiaomei xiaomei_v05.wav 语气犹豫,像等对方回应 ??你还活着吗哈哈。好了不烦你了,有事找我。
v2_msg02_react_tap xiaomei xiaomei_v05.wav 自然说话 嗯是什么意思啊哈哈!行吧你休息。
v2_msg02_r3_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 他……发了什么?
v2_msg02_r3_react xiaomei xiaomei_v05.wav 自然说话 就发了一张你们以前的照片,配了一句'值得'。两分钟就删了。
v2_msg03_linxia_auto linxia linxia_v05.wav 疲惫克制,轻声 好,我下来拿。
v2_msg04_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 你那边……还好吗。
v2_msg04_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 知道了。明天寄。
v2_msg04_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你怎么不自己来拿。
v2_msg04_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 好。
v2_msg04_react_warm azhe azhe_v03.wav 语气更温暖积极 我……挺好的。你呢?
v2_msg04_react_cold azhe azhe_v03.wav 语气更冷淡 嗯……谢了。
v2_msg04_react_curious azhe azhe_v03.wav 语气好奇,略追问 我……不太方便过去。
v2_msg04_react_silent azhe azhe_v03.wav 语气犹豫,像等对方回应 那……我晚点再说吧。
v2_msg04_react_tap azhe azhe_v03.wav 自然说话 谢谢。
v2_msg04_r3w_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 不太好。
v2_msg04_r3w_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 挺好的。
v2_msg04_r3w_react_warm azhe azhe_v03.wav 语气更温暖积极 ……对不起。
v2_msg04_r3w_react_cold azhe azhe_v03.wav 语气更冷淡 那就好。
v2_msg04_r3w_react_silent azhe azhe_v03.wav 语气犹豫,像等对方回应 ……那,晚安。
v2_msg04_r3c_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 为什么。
v2_msg04_r3c_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 算了,不问了。
v2_msg04_r3c_react_curious azhe azhe_v03.wav 语气好奇,略追问 我……没什么。你寄吧。
v2_msg05_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 谢谢王姐。
v2_msg05_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 好的,知道了。
v2_msg05_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 王姐……有什么建议吗?
v2_msg05_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 好。
v2_msg05_react_warm hr hr_v05.wav 语气更温暖积极 别客气。你还年轻,出去看看也好。这行业你知道的。
v2_msg05_react_curious hr hr_v05.wav 语气好奇,略追问 你想听真话?别在这行耗了。你有本事,去试试别的。
v2_msg06_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 在哪儿啊?我看看吧。
v2_msg06_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 不了,你们玩好。
v2_msg06_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你喝了多少了?
v2_msg06_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯。
v2_msg06_react_warm anan anan_v04.wav 语气更温暖积极 对面那个!我给你留了位置!赶紧赶紧!
v2_msg06_react_cold anan anan_v04.wav 语气更冷淡 好吧!那我给你寄一杯!
v2_msg06_react_curious anan anan_v04.wav 语气好奇,略追问 才两杯!我清醒得很!……好吧三杯。快来!
v2_msg06_react_silent anan anan_v04.wav 语气犹豫,像等对方回应 喂?信号不好吗?好吧以后再约!
v2_msg06_react_tap anan anan_v04.wav 自然说话 嗯是来还是不来啊!算了回头聊!
v2_msg07_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 恭喜恭喜!太厉害了!
v2_msg07_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 恭喜。
v2_msg07_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 怎么升的啊?讲讲!
v2_msg07_react_warm dorm_a dorm_a_v03.wav 语气更温暖积极 哈哈谢谢!我请客!你最近怎么样啊?
v2_msg07_react_curious dorm_a dorm_a_v03.wav 语气好奇,略追问 说来话长!我们老板走了我就顶上了哈哈
v2_msg07_react_tap dorm_b dorm_b_v02.wav 自然说话 林夏发表情了哈哈
v2_msg07_r3_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 挺好的~你请客我去!
v2_msg07_r3_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 还行。
v2_msg07_r3_react_cold dorm_b dorm_b_v02.wav 语气更冷淡 你是不是有事啊?没事可以跟我们说
v2_msg09_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 小美……你没事吧。
v2_msg09_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 我知道了。
v2_msg09_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你……为什么现在才说。
v2_msg09_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯。
v2_msg09_react_warm xiaomei_drunk xiaomei_drunk_v05.wav 语气更温暖积极 我没事……我就是喝多了想告诉你……你别怪我。
v2_msg09_react_curious xiaomei_drunk xiaomei_drunk_v05.wav 语气好奇,略追问 因为你今天……我怕你以后恨我……
v2_msg09_react_tap xiaomei_drunk xiaomei_drunk_v05.wav 自然说话 你不生气吗?算了……当我没说。
v2_msg09_r3_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 我不恨你。
v2_msg09_r3_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 我得想想。
v2_msg09_r3_react_warm xiaomei_drunk xiaomei_drunk_v05.wav 语气更温暖积极 谢谢你……谢谢你林夏。
v2_msg09_r3_react_cold xiaomei_drunk xiaomei_drunk_v05.wav 语气更冷淡 好……对不起。
v2_msg09_r3_react_silent_q xiaomei_drunk xiaomei_drunk_v05.wav 语气犹豫,像等对方回应 你还在吗?
v2_msg10_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 没有,怎么了?
v2_msg10_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 嗯,要睡了。
v2_msg10_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 妈……你能打电话给我吗?
v2_msg10_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯。
v2_msg10_react_warm mom mom_v01.wav 语气更温暖积极 没事,就是想起来问一下。今天怎么样?
v2_msg10_react_cold mom mom_v01.wav 语气更冷淡 好,早点睡。
v2_msg10_react_silent mom mom_v01.wav 语气犹豫,像等对方回应 看到了回一下。
v2_msg10_react_tap mom mom_v01.wav 自然说话 嗯就是睡了?晚安。
v2_msg10_call_mom mom mom_v01.wav 电话里听到女儿声音不对,担心但克制 怎么了夏夏?你声音不对。
v2_msg10_call_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 没什么……就是有点累。
v2_msg10_call_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 妈,我辞职了。
v2_msg10_call_react_warm mom mom_v01.wav 语气更温暖积极 累了就回家歇几天。妈煮了排骨。
v2_msg10_call_react_curious mom mom_v01.wav 语气好奇,略追问 辞了就辞了。回来再说。
v2_msg10_call_react_silent mom mom_v01.wav 语气犹豫,像等对方回应 不想说就不说。妈在这呢。
v2_msg10_rw_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 还好。
v2_msg10_rw_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 不太好。
v2_msg10_rw_react_warm mom mom_v01.wav 语气更温暖积极 那就好。别太晚了。
v2_msg10_rw_react_curious mom mom_v01.wav 语气好奇,略追问 怎么了?
v2_msg11_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 可以。但只有5分钟。
v2_msg11_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 不方便。我明天寄给你。
v2_msg11_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 为什么非要今天来?
v2_msg11_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 不了。
v2_msg11_react_warm azhe azhe_v03.wav 语气更温暖积极 好,我马上过来。谢谢。
v2_msg11_react_cold azhe azhe_v03.wav 语气更冷淡 好吧……那谢了。
v2_msg11_react_curious azhe azhe_v03.wav 语气好奇,略追问 我……明天要出差。就5分钟。
v2_msg11_react_tap azhe azhe_v03.wav 电话里略紧张,像鼓足勇气 好。
v2_msg12_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 周南!你还记得我啊!
v2_msg12_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 嗯,你好。
v2_msg12_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你怎么有我微信的?
v2_msg12_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯……好久不见。
v2_msg12_react_warm zhounan zhounan_v05.wav 语气更温暖积极 当然记得。你是我们班最安静的那个。
v2_msg12_react_cold zhounan zhounan_v05.wav 语气更冷淡 嗯……好久不见。你现在在哪呢?
v2_msg12_react_curious zhounan zhounan_v05.wav 语气好奇,略追问 你忘了吗?毕业那天你加的我。不过你可能早忘了哈哈。
v2_msg12_react_silent zhounan zhounan_v05.wav 语气犹豫,像等对方回应 你是不是不记得我了?没关系的。就是突然想说声嗨。
v2_msg12_react_tap zhounan zhounan_v05.wav 自然说话 是啊,好久不见。
v2_msg13_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 一个人在北京,还好吗?
v2_msg13_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 你讲了好多。
v2_msg13_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 ……生日快乐。
v2_msg13_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯,我都听到了。
v2_msg13_react_warm zhounan zhounan_v05.wav 语气更温暖积极 还行吧。习惯了。你呢?你在北京过得好吗?
v2_msg13_react_cold zhounan zhounan_v05.wav 语气更冷淡 是吗?不好意思,话太多了。
v2_msg13_react_curious zhounan zhounan_v05.wav 语气好奇,略追问 谢谢你。你是今天第一个跟我说的。
v2_msg13_react_silent zhounan zhounan_v05.wav 语气犹豫,像等对方回应 不好意思突然说这么多……那,晚安。
v2_msg13_react_tap zhounan zhounan_v05.wav 自然说话 嗯。谢谢你听我说。
v2_msg13_r3_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 不太好。今天也是我的坏日子。
v2_msg13_r3_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 还行吧。
v2_msg13_r3_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你为什么突然联系我?
v2_msg13_r3_react_warm zhounan zhounan_v05.wav 语气更温暖积极 那我们算是难兄难妹了。
v2_msg13_r3_react_cold zhounan zhounan_v05.wav 语气更冷淡 那就好。
v2_msg13_r3_react_curious zhounan zhounan_v05.wav 语气好奇,略追问 因为……今天生日嘛,想起以前的事。想起你。
v2_msg14_linxia_auto linxia linxia_v05.wav 疲惫克制,轻声 嗯,我没事。
v2_msg14_mom_ask mom mom_v01.wav 自然说话 真的没事?
v2_msg14_react_linked mom mom_v01.wav 自然说话 好。那早点睡。妈爱你。
v2_msg14_react_unlinked mom mom_v01.wav 自然说话 你今天怎么都不理妈妈?出什么事了吗?
v2_ending_e_zhounan zhounan zhounan_v05.wav 轻快一点,像看到希望 那我下次出差来北京,请你吃饭好不好。
v2_linxia_generic_hmm linxia linxia_v05.wav 自然说话 嗯。
v2_linxia_generic_ok linxia linxia_v05.wav 自然说话 好。
v2_linxia_generic_warm_ok linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 嗯~好啊。
v2_linxia_generic_cold_know linxia linxia_v05.wav 语气冷淡疏离,短促 知道了。
v2_linxia_generic_cold_fine linxia linxia_v05.wav 语气冷淡疏离,短促 行吧。
v2_linxia_generic_curious linxia linxia_v05.wav 语气好奇,略带追问 嗯?
v2_linxia_generic_then linxia linxia_v05.wav 自然说话 然后呢?
v2_ending_a_linxia linxia linxia_v05.wav 结局独白,轻声自语 明天再说。
v2_ending_b_linxia linxia linxia_v05.wav 结局独白,轻声自语 寄出去了。
v2_ending_c_linxia linxia linxia_v05.wav 结局独白,轻声自语 今晚就这样。
v2_ending_d_linxia linxia linxia_v05.wav 结局独白,轻声自语 早上好。
v2_ending_e_linxia linxia linxia_v05.wav 结局独白,轻声自语 好。
v2_sys_wait_reply linxia linxia_v05.wav 平静清晰,像对自己说话 等待回复。
v2_sys_paused linxia linxia_v05.wav 平静清晰,像对自己说话 游戏已暂停。单击继续,三指点击退出。
v2_sys_content_warning linxia linxia_v05.wav 平静清晰,像对自己说话 本游戏涉及孤独、家庭关系等情感话题,请在舒适的状态下体验。
v2_sys_hotline linxia linxia_v05.wav 平静清晰,像对自己说话 如需倾诉,全国心理援助热线,400-161-9995。
v2_msg10_rw_react_silent mom mom_v01.wav 语气犹豫,像等对方回应 那早点睡啊。
v2_msg10_call_react_down mom mom_v01.wav 电话里听到女儿声音不对,担心但克制 没事就好。早点睡。
v2_msg11_r3_react_silent azhe azhe_v03.wav 语气犹豫,像等对方回应 行吧,那我不来了。
lv11_0030_self3y_voice_01 self_3y self_3y_v03.wav 兴奋带紧张,像刚来北京 哦对,今天是我来北京的第一百天。妈,我没跟你说,我自己数的。这个城市好大。我走了很多路,见了很多人。我觉得我还没准备好,但我又觉得好像准备了很久很久了。你们不用担心我。我很好。以后的我,如果你听到这条,记得要好好的。
lv11_0030_self3y_voice_02 self_3y self_3y_v03.wav 疲惫但假装坚强 我今天又没睡好。不是失眠,就是睡不踏实。北京这个地方,它会让你觉得你随时都要更好,随时都要更努力。我在努力。但我不知道在努力什么。我就想留下一条记录。今天,今天是……算了,就今天吧。
lv11_0030_self3y_voice_03 self_3y self_3y_v03.wav 平静有力,像对未来的自己说话 是我。23岁的我。我设了三年后打开。我不知道那时候的你怎么样了。如果你很好,就当我多虑了。如果你不好——你看,你熬过来了对不对。你23岁的时候,也觉得很难。但你还是过来了。所以……撑住啊。
lv11_sys_memo_01 linxia linxia_v05.wav 平静清晰,像对自己说话 三年前今天,一条未听的录音
1 filename role ref style text
2 lv11_2103_mom_call_01 mom mom_v01.wav 自然说话 今晚煮了你爱吃的排骨,给你拍张照啊。下周五回来一趟,你高中物理老师的儿子,挺好的。
3 lv11_2115_xiaomei_voice_01 xiaomei xiaomei_v05.wav 自然说话 在吗
4 lv11_2115_xiaomei_voice_02 xiaomei xiaomei_v05.wav 自然说话 你被甩了我都听说了
5 lv11_2115_xiaomei_voice_03 xiaomei xiaomei_v05.wav 自然说话 明天晚上喝酒,海底捞旁边那家,不许放鸽子
6 lv11_2120_delivery_call_01 delivery delivery_v04.wav 自然说话 你好你的麻辣烫到了,放门口可以吗?
7 lv11_2130_azhe_voice_01 azhe azhe_v03.wav 自然说话 嗯……夏夏。我那个AirPods充电盒,好像落你抽屉里了。你方便的时候帮我寄一下吗,工位还要用。地址我等下发你。
8 lv11_2145_hr_voice_01 hr hr_v05.wav 自然说话 夏夏啊,离职流程你下周三之前办完哈,公积金那边记得跟进。辛苦啦,外面有合适的工作我帮你留意。
9 lv11_2200_anan_voice_01 anan anan_v04.wav 自然说话 夏夏!我在helens!要不要过来!我请客!
10 lv11_2215_dorm_a_voice_01 dorm_a dorm_a_v03.wav 自然说话 哎你们看,我今天升职了!
11 lv11_2215_dorm_b_voice_01 dorm_b dorm_b_v02.wav 自然说话 真的啊!恭喜恭喜!太厉害了!
12 lv11_2215_dorm_c_voice_01 dorm_c dorm_c_v03.wav 自然说话 厉害!那要请客啊!
13 lv11_2215_dorm_a_voice_02 dorm_a dorm_a_v03.wav 自然说话 哈哈哈必须的!夏夏你怎么不说话呀
14 lv11_2215_dorm_b_voice_02 dorm_b dorm_b_v02.wav 自然说话 夏夏在忙吧,别打扰她了
15 lv11_2245_xiaomei_voice_01_seg1 xiaomei_drunk xiaomei_drunk_v05.wav 醉态开场,黏糊 夏夏夏夏夏。你睡了吗?我跟你说,我跟你说啊……今天我喝多了……
16 lv11_2245_xiaomei_voice_01_seg2 xiaomei_drunk xiaomei_drunk_v05.wav 醉态爆料,情绪上来 你别嫌我烦哈,我跟你说……其实啊……阿哲他,大三那年,他来追过我。我没答应他。我那时候就觉得他这人,呵,差点意思。
17 lv11_2245_xiaomei_voice_01_seg3 xiaomei_drunk xiaomei_drunk_v05.wav 醉态解释,委屈 你跟他在一起的时候,我没说,因为说了也没意义嘛对吧。现在他甩了你,我才敢说。
18 lv11_2245_xiaomei_voice_01_seg4 xiaomei_drunk xiaomei_drunk_v05.wav 醉态收尾,失落 夏夏,你听到了吗?你别恨我啊。……喂?算了。
19 lv11_2300_mom_text_01 mom mom_v01.wav 自然说话 睡了吗?
20 lv11_2315_azhe_call_01 azhe azhe_v03.wav 电话里略紧张,像鼓足勇气 我能过去拿吗?就5分钟
21 lv11_2330_zhounan_voice_01 zhounan zhounan_v05.wav 自然说话 林夏,是我,周南。你应该不记得我了吧,初三坐你后桌那个
22 lv11_2345_zhounan_voice_01 zhounan zhounan_v05.wav 自然说话 其实我一直想找机会跟你说声谢谢。初三那年你借我笔记,那次考试我才没挂科。
23 lv11_2345_zhounan_voice_02 zhounan zhounan_v05.wav 自然说话 后来高考,我没考好。复读了一年,去了一个二本。然后就回老家了,没什么好说的。
24 lv11_2345_zhounan_voice_03 zhounan zhounan_v05.wav 自然说话 今年第一次来北京出差。来之前我想着,要不要找你。找了很久,才在一个校友群里看到你。你现在过得怎么样?
25 lv11_2345_zhounan_voice_04 zhounan zhounan_v05.wav 自然说话 今天我生日。本来就想跟你说一声,对不起这么晚。
26 lv11_0015_mom_call_01 mom mom_v01.wav 担心女儿,语气轻但着急 夏夏,你不接电话我有点担心。妈妈知道你工作忙,你早点睡。
27 lv11_0200_mom_voice_01_seg1 mom mom_v01.wav 温柔试探,像怕打扰女儿 夏夏。妈妈知道你今天电话不接。妈妈不催你,就是想跟你说一件事。
28 lv11_0200_mom_voice_01_seg2 mom mom_v01.wav 平静追忆 你24了对吧。妈妈24那年——你应该没听我说过——
29 lv11_0200_mom_voice_01_seg3 mom mom_v01.wav 克制回忆痛苦 那时候妈妈在广州,给一个香港老板做秘书,1995年。那年我也被分手过。也被开除过。一模一样的春天。
30 lv11_0200_mom_voice_01_seg4 mom mom_v01.wav 释然 那年我哭得特别难看。后来呢?后来就没什么后来了。我回了老家,认识了你爸,生了你。
31 lv11_0200_mom_voice_01_seg5 mom mom_v01.wav 深沉情感,声音更轻 我跟你说这个不是想跟你说什么都会过去——我想跟你说,那年夏天我没死,是因为我外婆每天晚上都给我打一个电话。
32 lv11_0200_mom_voice_01_seg6 mom mom_v01.wav 极简温柔 她不说什么,就问我今天吃饭了没。
33 lv11_0200_mom_voice_01_seg7 mom mom_v01.wav 不要求回应的 tender 我现在打给你,你不接也没事。妈妈给你发个语音,你什么时候想听就听。你不用回我。
34 lv11_0200_mom_voice_01_seg8 mom mom_v01.wav 几乎微笑的晚安 你今天接了好多电话吧。妈妈不打扰你了。晚安。
35 v2_msg01_linxia_auto linxia linxia_v05.wav 疲惫克制,轻声 嗯……好。
36 v2_msg02_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 好啊,明天不见不散。
37 v2_msg02_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 再说吧。
38 v2_msg02_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你怎么知道的啊?
39 v2_msg02_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯。
40 v2_msg02_react_warm xiaomei xiaomei_v05.wav 语气更温暖积极 行!那我叫上安安!老地方见!别放鸽子啊!
41 v2_msg02_react_cold xiaomei xiaomei_v05.wav 语气更冷淡 ……好吧。你要是改主意了随时说。
42 v2_msg02_react_curious xiaomei xiaomei_v05.wav 语气好奇,略追问 还不是阿哲自己发朋友圈!你不知道吗?他发了又秒删……
43 v2_msg02_react_silent xiaomei xiaomei_v05.wav 语气犹豫,像等对方回应 ??你还活着吗哈哈。好了不烦你了,有事找我。
44 v2_msg02_react_tap xiaomei xiaomei_v05.wav 自然说话 嗯是什么意思啊哈哈!行吧你休息。
45 v2_msg02_r3_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 他……发了什么?
46 v2_msg02_r3_react xiaomei xiaomei_v05.wav 自然说话 就发了一张你们以前的照片,配了一句'值得'。两分钟就删了。
47 v2_msg03_linxia_auto linxia linxia_v05.wav 疲惫克制,轻声 好,我下来拿。
48 v2_msg04_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 你那边……还好吗。
49 v2_msg04_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 知道了。明天寄。
50 v2_msg04_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你怎么不自己来拿。
51 v2_msg04_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 好。
52 v2_msg04_react_warm azhe azhe_v03.wav 语气更温暖积极 我……挺好的。你呢?
53 v2_msg04_react_cold azhe azhe_v03.wav 语气更冷淡 嗯……谢了。
54 v2_msg04_react_curious azhe azhe_v03.wav 语气好奇,略追问 我……不太方便过去。
55 v2_msg04_react_silent azhe azhe_v03.wav 语气犹豫,像等对方回应 那……我晚点再说吧。
56 v2_msg04_react_tap azhe azhe_v03.wav 自然说话 谢谢。
57 v2_msg04_r3w_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 不太好。
58 v2_msg04_r3w_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 挺好的。
59 v2_msg04_r3w_react_warm azhe azhe_v03.wav 语气更温暖积极 ……对不起。
60 v2_msg04_r3w_react_cold azhe azhe_v03.wav 语气更冷淡 那就好。
61 v2_msg04_r3w_react_silent azhe azhe_v03.wav 语气犹豫,像等对方回应 ……那,晚安。
62 v2_msg04_r3c_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 为什么。
63 v2_msg04_r3c_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 算了,不问了。
64 v2_msg04_r3c_react_curious azhe azhe_v03.wav 语气好奇,略追问 我……没什么。你寄吧。
65 v2_msg05_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 谢谢王姐。
66 v2_msg05_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 好的,知道了。
67 v2_msg05_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 王姐……有什么建议吗?
68 v2_msg05_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 好。
69 v2_msg05_react_warm hr hr_v05.wav 语气更温暖积极 别客气。你还年轻,出去看看也好。这行业你知道的。
70 v2_msg05_react_curious hr hr_v05.wav 语气好奇,略追问 你想听真话?别在这行耗了。你有本事,去试试别的。
71 v2_msg06_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 在哪儿啊?我看看吧。
72 v2_msg06_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 不了,你们玩好。
73 v2_msg06_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你喝了多少了?
74 v2_msg06_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯。
75 v2_msg06_react_warm anan anan_v04.wav 语气更温暖积极 对面那个!我给你留了位置!赶紧赶紧!
76 v2_msg06_react_cold anan anan_v04.wav 语气更冷淡 好吧!那我给你寄一杯!
77 v2_msg06_react_curious anan anan_v04.wav 语气好奇,略追问 才两杯!我清醒得很!……好吧三杯。快来!
78 v2_msg06_react_silent anan anan_v04.wav 语气犹豫,像等对方回应 喂?信号不好吗?好吧以后再约!
79 v2_msg06_react_tap anan anan_v04.wav 自然说话 嗯是来还是不来啊!算了回头聊!
80 v2_msg07_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 恭喜恭喜!太厉害了!
81 v2_msg07_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 恭喜。
82 v2_msg07_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 怎么升的啊?讲讲!
83 v2_msg07_react_warm dorm_a dorm_a_v03.wav 语气更温暖积极 哈哈谢谢!我请客!你最近怎么样啊?
84 v2_msg07_react_curious dorm_a dorm_a_v03.wav 语气好奇,略追问 说来话长!我们老板走了我就顶上了哈哈
85 v2_msg07_react_tap dorm_b dorm_b_v02.wav 自然说话 林夏发表情了哈哈
86 v2_msg07_r3_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 挺好的~你请客我去!
87 v2_msg07_r3_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 还行。
88 v2_msg07_r3_react_cold dorm_b dorm_b_v02.wav 语气更冷淡 你是不是有事啊?没事可以跟我们说
89 v2_msg09_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 小美……你没事吧。
90 v2_msg09_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 我知道了。
91 v2_msg09_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你……为什么现在才说。
92 v2_msg09_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯。
93 v2_msg09_react_warm xiaomei_drunk xiaomei_drunk_v05.wav 语气更温暖积极 我没事……我就是喝多了想告诉你……你别怪我。
94 v2_msg09_react_curious xiaomei_drunk xiaomei_drunk_v05.wav 语气好奇,略追问 因为你今天……我怕你以后恨我……
95 v2_msg09_react_tap xiaomei_drunk xiaomei_drunk_v05.wav 自然说话 你不生气吗?算了……当我没说。
96 v2_msg09_r3_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 我不恨你。
97 v2_msg09_r3_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 我得想想。
98 v2_msg09_r3_react_warm xiaomei_drunk xiaomei_drunk_v05.wav 语气更温暖积极 谢谢你……谢谢你林夏。
99 v2_msg09_r3_react_cold xiaomei_drunk xiaomei_drunk_v05.wav 语气更冷淡 好……对不起。
100 v2_msg09_r3_react_silent_q xiaomei_drunk xiaomei_drunk_v05.wav 语气犹豫,像等对方回应 你还在吗?
101 v2_msg10_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 没有,怎么了?
102 v2_msg10_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 嗯,要睡了。
103 v2_msg10_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 妈……你能打电话给我吗?
104 v2_msg10_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯。
105 v2_msg10_react_warm mom mom_v01.wav 语气更温暖积极 没事,就是想起来问一下。今天怎么样?
106 v2_msg10_react_cold mom mom_v01.wav 语气更冷淡 好,早点睡。
107 v2_msg10_react_silent mom mom_v01.wav 语气犹豫,像等对方回应 看到了回一下。
108 v2_msg10_react_tap mom mom_v01.wav 自然说话 嗯就是睡了?晚安。
109 v2_msg10_call_mom mom mom_v01.wav 电话里听到女儿声音不对,担心但克制 怎么了夏夏?你声音不对。
110 v2_msg10_call_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 没什么……就是有点累。
111 v2_msg10_call_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 妈,我辞职了。
112 v2_msg10_call_react_warm mom mom_v01.wav 语气更温暖积极 累了就回家歇几天。妈煮了排骨。
113 v2_msg10_call_react_curious mom mom_v01.wav 语气好奇,略追问 辞了就辞了。回来再说。
114 v2_msg10_call_react_silent mom mom_v01.wav 语气犹豫,像等对方回应 不想说就不说。妈在这呢。
115 v2_msg10_rw_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 还好。
116 v2_msg10_rw_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 不太好。
117 v2_msg10_rw_react_warm mom mom_v01.wav 语气更温暖积极 那就好。别太晚了。
118 v2_msg10_rw_react_curious mom mom_v01.wav 语气好奇,略追问 怎么了?
119 v2_msg11_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 可以。但只有5分钟。
120 v2_msg11_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 不方便。我明天寄给你。
121 v2_msg11_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 为什么非要今天来?
122 v2_msg11_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 不了。
123 v2_msg11_react_warm azhe azhe_v03.wav 语气更温暖积极 好,我马上过来。谢谢。
124 v2_msg11_react_cold azhe azhe_v03.wav 语气更冷淡 好吧……那谢了。
125 v2_msg11_react_curious azhe azhe_v03.wav 语气好奇,略追问 我……明天要出差。就5分钟。
126 v2_msg11_react_tap azhe azhe_v03.wav 电话里略紧张,像鼓足勇气 好。
127 v2_msg12_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 周南!你还记得我啊!
128 v2_msg12_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 嗯,你好。
129 v2_msg12_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你怎么有我微信的?
130 v2_msg12_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯……好久不见。
131 v2_msg12_react_warm zhounan zhounan_v05.wav 语气更温暖积极 当然记得。你是我们班最安静的那个。
132 v2_msg12_react_cold zhounan zhounan_v05.wav 语气更冷淡 嗯……好久不见。你现在在哪呢?
133 v2_msg12_react_curious zhounan zhounan_v05.wav 语气好奇,略追问 你忘了吗?毕业那天你加的我。不过你可能早忘了哈哈。
134 v2_msg12_react_silent zhounan zhounan_v05.wav 语气犹豫,像等对方回应 你是不是不记得我了?没关系的。就是突然想说声嗨。
135 v2_msg12_react_tap zhounan zhounan_v05.wav 自然说话 是啊,好久不见。
136 v2_msg13_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 一个人在北京,还好吗?
137 v2_msg13_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 你讲了好多。
138 v2_msg13_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 ……生日快乐。
139 v2_msg13_linxia_tap linxia linxia_v05.wav 极简回应,中性敷衍 嗯,我都听到了。
140 v2_msg13_react_warm zhounan zhounan_v05.wav 语气更温暖积极 还行吧。习惯了。你呢?你在北京过得好吗?
141 v2_msg13_react_cold zhounan zhounan_v05.wav 语气更冷淡 是吗?不好意思,话太多了。
142 v2_msg13_react_curious zhounan zhounan_v05.wav 语气好奇,略追问 谢谢你。你是今天第一个跟我说的。
143 v2_msg13_react_silent zhounan zhounan_v05.wav 语气犹豫,像等对方回应 不好意思突然说这么多……那,晚安。
144 v2_msg13_react_tap zhounan zhounan_v05.wav 自然说话 嗯。谢谢你听我说。
145 v2_msg13_r3_linxia_warm linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 不太好。今天也是我的坏日子。
146 v2_msg13_r3_linxia_cold linxia linxia_v05.wav 语气冷淡疏离,短促 还行吧。
147 v2_msg13_r3_linxia_curious linxia linxia_v05.wav 语气好奇,略带追问 你为什么突然联系我?
148 v2_msg13_r3_react_warm zhounan zhounan_v05.wav 语气更温暖积极 那我们算是难兄难妹了。
149 v2_msg13_r3_react_cold zhounan zhounan_v05.wav 语气更冷淡 那就好。
150 v2_msg13_r3_react_curious zhounan zhounan_v05.wav 语气好奇,略追问 因为……今天生日嘛,想起以前的事。想起你。
151 v2_msg14_linxia_auto linxia linxia_v05.wav 疲惫克制,轻声 嗯,我没事。
152 v2_msg14_mom_ask mom mom_v01.wav 自然说话 真的没事?
153 v2_msg14_react_linked mom mom_v01.wav 自然说话 好。那早点睡。妈爱你。
154 v2_msg14_react_unlinked mom mom_v01.wav 自然说话 你今天怎么都不理妈妈?出什么事了吗?
155 v2_ending_e_zhounan zhounan zhounan_v05.wav 轻快一点,像看到希望 那我下次出差来北京,请你吃饭好不好。
156 v2_linxia_generic_hmm linxia linxia_v05.wav 自然说话 嗯。
157 v2_linxia_generic_ok linxia linxia_v05.wav 自然说话 好。
158 v2_linxia_generic_warm_ok linxia linxia_v05.wav 语气温暖开放,柔软但有分寸 嗯~好啊。
159 v2_linxia_generic_cold_know linxia linxia_v05.wav 语气冷淡疏离,短促 知道了。
160 v2_linxia_generic_cold_fine linxia linxia_v05.wav 语气冷淡疏离,短促 行吧。
161 v2_linxia_generic_curious linxia linxia_v05.wav 语气好奇,略带追问 嗯?
162 v2_linxia_generic_then linxia linxia_v05.wav 自然说话 然后呢?
163 v2_ending_a_linxia linxia linxia_v05.wav 结局独白,轻声自语 明天再说。
164 v2_ending_b_linxia linxia linxia_v05.wav 结局独白,轻声自语 寄出去了。
165 v2_ending_c_linxia linxia linxia_v05.wav 结局独白,轻声自语 今晚就这样。
166 v2_ending_d_linxia linxia linxia_v05.wav 结局独白,轻声自语 早上好。
167 v2_ending_e_linxia linxia linxia_v05.wav 结局独白,轻声自语 好。
168 v2_sys_wait_reply linxia linxia_v05.wav 平静清晰,像对自己说话 等待回复。
169 v2_sys_paused linxia linxia_v05.wav 平静清晰,像对自己说话 游戏已暂停。单击继续,三指点击退出。
170 v2_sys_content_warning linxia linxia_v05.wav 平静清晰,像对自己说话 本游戏涉及孤独、家庭关系等情感话题,请在舒适的状态下体验。
171 v2_sys_hotline linxia linxia_v05.wav 平静清晰,像对自己说话 如需倾诉,全国心理援助热线,400-161-9995。
172 v2_msg10_rw_react_silent mom mom_v01.wav 语气犹豫,像等对方回应 那早点睡啊。
173 v2_msg10_call_react_down mom mom_v01.wav 电话里听到女儿声音不对,担心但克制 没事就好。早点睡。
174 v2_msg11_r3_react_silent azhe azhe_v03.wav 语气犹豫,像等对方回应 行吧,那我不来了。
175 lv11_0030_self3y_voice_01 self_3y self_3y_v03.wav 兴奋带紧张,像刚来北京 哦对,今天是我来北京的第一百天。妈,我没跟你说,我自己数的。这个城市好大。我走了很多路,见了很多人。我觉得我还没准备好,但我又觉得好像准备了很久很久了。你们不用担心我。我很好。以后的我,如果你听到这条,记得要好好的。
176 lv11_0030_self3y_voice_02 self_3y self_3y_v03.wav 疲惫但假装坚强 我今天又没睡好。不是失眠,就是睡不踏实。北京这个地方,它会让你觉得你随时都要更好,随时都要更努力。我在努力。但我不知道在努力什么。我就想留下一条记录。今天,今天是……算了,就今天吧。
177 lv11_0030_self3y_voice_03 self_3y self_3y_v03.wav 平静有力,像对未来的自己说话 是我。23岁的我。我设了三年后打开。我不知道那时候的你怎么样了。如果你很好,就当我多虑了。如果你不好——你看,你熬过来了对不对。你23岁的时候,也觉得很难。但你还是过来了。所以……撑住啊。
178 lv11_sys_memo_01 linxia linxia_v05.wav 平静清晰,像对自己说话 三年前今天,一条未听的录音
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More