项目整理:重写主文档、归档过时文档、清理死代码、新增音频制作手册
文档整理: - 重写 game/操作说明.md 为项目主文档(6游戏/6手势/旁白/模型生成音频/TTS两步流程) - 归档过时文档至 other_docs/(林夏原始设计、旧执行文档) - 新增 docs/音频制作执行手册.md(从零制作游戏音频的完整流程) - docs/ 下保留旁白音色提示词、音频脚本 代码清理: - 删除旧架构死代码: story.js / gestures.js / profile.js - 删除耦合旧架构的过时测试目录 game/tests/ 脚本配置修正: - check_tts_env.sh: 启动脚本路径 AutoVideo → tts-server(实际位置) - gen_narrator_samples.py: 硬编码地址改为环境变量,默认对齐 tts-server 端口 8000
This commit is contained in:
+483
@@ -0,0 +1,483 @@
|
||||
# 盲游 · 旁白音色提示词文档
|
||||
|
||||
> 本文档为六个游戏旁白的音色定向文件。
|
||||
> 用途:根据此文档寻找参考音频,或向 TTS 模型输入提示词,生成样本后人工筛选。
|
||||
> 每个游戏的旁白声音独立,风格、质感、情绪基调均不同。
|
||||
|
||||
---
|
||||
|
||||
## 通用技术要求
|
||||
|
||||
生成的样本音频需满足:
|
||||
|
||||
- 格式:WAV,16kHz,单声道(作为参考音色注册用)
|
||||
- 最终产出:MP3,44100Hz,单声道,128kbps,-18 LUFS
|
||||
- 首尾静音:开头 100ms,结尾 200ms
|
||||
- 无背景音乐,无混响(干声)
|
||||
|
||||
---
|
||||
|
||||
## 一、《林夏》旁白 — 纪录片叙述者
|
||||
|
||||
### 角色定位
|
||||
|
||||
她是一个旁观者,不是林夏本人,也不是林夏的朋友。她只是在记录。她知道今晚发生了什么,但她不评价,不安慰,不引导。像一部安静的纪录片里的解说词。
|
||||
|
||||
### 声音特征
|
||||
|
||||
| 维度 | 描述 |
|
||||
|------|------|
|
||||
| 性别 | 女声 |
|
||||
| 年龄感 | 30-38岁 |
|
||||
| 音色底质 | 中低女声,有一点点气声,但不是耳语。清晰,不尖锐 |
|
||||
| 共鸣位置 | 胸腔共鸣为主,不是头声 |
|
||||
| 语速 | 慢,比正常对话语速慢约15%。每个短句之间有自然停顿 |
|
||||
| 音调 | 标准普通话音调,不夸张,没有朗诵腔 |
|
||||
| 气息 | 平稳,每句话起头不会有明显换气声 |
|
||||
|
||||
### 情感基调
|
||||
|
||||
**克制的悲悯**。她知道林夏今晚过得不容易,但她不会在语气上表现出来。那种情绪藏在语速和停顿里,不在音调变化里。
|
||||
|
||||
**不该有的感觉**:同情、叹息、戏剧性、新闻播报腔、心理咨询语气。
|
||||
|
||||
### TTS 提示词(英文,适用于支持风格描述的模型)
|
||||
|
||||
```
|
||||
Voice: Adult Chinese female, 30-38 years old. Documentary narrator style.
|
||||
Tone: Calm, observational, restrained compassion. Never dramatic.
|
||||
Delivery: Slow pace (85% of normal speed), natural pauses between clauses.
|
||||
Timbre: Mid-low register, slight chest resonance, not breathy, not sharp.
|
||||
Emotion: Neutral on the surface, with a barely perceptible weight underneath.
|
||||
Language: Standard Mandarin Chinese, no regional accent, no theatrical intonation.
|
||||
Do NOT sound like: news anchor, audiobook reader, customer service, therapist.
|
||||
Reference: Like a quiet documentary about ordinary people, late at night.
|
||||
```
|
||||
|
||||
### TTS 提示词(中文)
|
||||
|
||||
```
|
||||
声音风格:中国女性旁白,年龄感在三十岁出头。纪录片叙述者风格。
|
||||
语气:平静、观察性的,有克制的悲悯,但绝不戏剧化。
|
||||
语速:慢,约正常语速的85%,句与句之间有自然停顿。
|
||||
音色:中低女声,以胸腔共鸣为主,略有气声但不是耳语,吐字清晰。
|
||||
情感:表面中性,但语速和停顿里带着一点重量。
|
||||
语言:标准普通话,无地方口音,无朗诵腔。
|
||||
不要像:新闻主播、有声书朗读、客服提示音、心理咨询师。
|
||||
参考感受:像一部关于普通人日常的安静纪录片,深夜播出。
|
||||
```
|
||||
|
||||
### 样例句子及朗读标注
|
||||
|
||||
```
|
||||
「晚上九点零三分。手机震动,铃声响起。屏幕显示:妈妈。」
|
||||
|
||||
朗读提示:
|
||||
- 「晚上九点零三分。」— 陈述,轻,后面停顿约 0.5 秒
|
||||
- 「手机震动,铃声响起。」— 音量略低,描述动作,不强调
|
||||
- 「屏幕显示:」— 停顿,然后
|
||||
- 「妈妈。」— 非常平,两个字,不带任何情感色彩
|
||||
```
|
||||
|
||||
```
|
||||
「铃声响了又停。妈妈没再打来。」
|
||||
|
||||
朗读提示:
|
||||
- 整句语速偏慢,结尾「没再打来」后留出3秒的静默感
|
||||
- 不要读出遗憾或心疼,只是陈述事实
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、《一念》旁白 — 内心独白
|
||||
|
||||
### 角色定位
|
||||
|
||||
她就是你自己。不是外部的声音,是你坐在黑暗里,自己在心里说话的声音。像半梦半醒之间,对自己说的那些不会说出口的话。
|
||||
|
||||
### 声音特征
|
||||
|
||||
| 维度 | 描述 |
|
||||
|------|------|
|
||||
| 性别 | 女声 |
|
||||
| 年龄感 | 25-32岁 |
|
||||
| 音色底质 | 略有气声,不是正常说话声而是「心里的声音」。比林夏更柔,更近 |
|
||||
| 共鸣位置 | 偏向头腔和鼻腔,不是胸腔 |
|
||||
| 语速 | 很慢,约正常语速的80%,每个词之间都有微小的停顿,像在慢慢想 |
|
||||
| 音调 | 比标准说话略低半个音阶,平稳,很少起伏 |
|
||||
| 气息 | 有轻微的气声底色,每句开头偶尔有一点呼气感,但不是叹气 |
|
||||
| 距离感 | 非常近,像贴着耳朵说话,但不是低吼,是轻而有质感 |
|
||||
|
||||
### 情感基调
|
||||
|
||||
**亲密与重量**。这个声音不是在讲述,是在陪伴。她知道你在想什么,她不急着说完,每一句都给你留足了空间去感受。
|
||||
|
||||
**不该有的感觉**:治愈系播客腔、催眠音频的夸张柔和、冥想引导语气。
|
||||
|
||||
### TTS 提示词(英文)
|
||||
|
||||
```
|
||||
Voice: Chinese female, 25-32 years old. Inner monologue, the voice inside your own head.
|
||||
Tone: Intimate, slow, weighted. Like whispering to yourself in the dark.
|
||||
Delivery: Very slow (80% speed), micro-pauses between phrases, thoughtful cadence.
|
||||
Timbre: Slightly breathy, soft head resonance, close and present — not distant.
|
||||
Emotion: Quiet tenderness, not sad but carrying weight. Like someone who knows.
|
||||
Distance: Very close mic presence, like speaking directly into the listener's ear.
|
||||
Do NOT sound like: meditation app, ASMR, therapy podcast, bedtime story reader.
|
||||
Reference: The internal voice you hear when reading something that moved you deeply.
|
||||
```
|
||||
|
||||
### TTS 提示词(中文)
|
||||
|
||||
```
|
||||
声音风格:中国女性,年龄感25-32岁。内心独白,就是你自己脑海中的声音。
|
||||
语气:亲密、缓慢、有重量。像在黑暗中对自己说话。
|
||||
语速:很慢,约正常语速的80%,词与词之间有细小停顿,像在慢慢思考。
|
||||
音色:略有气声,偏头腔共鸣,声音贴近,不是从远处传来的。
|
||||
情感:安静的温柔,不悲伤但有分量,像一个懂你的人。
|
||||
距离感:非常近,像直接说在耳边,但不是低吼。
|
||||
不要像:冥想App引导词、ASMR、心理播客、睡眠故事。
|
||||
参考感受:读一本让你动容的书时,脑海中浮现的那个声音。
|
||||
```
|
||||
|
||||
### 样例句子及朗读标注
|
||||
|
||||
```
|
||||
「你坐在黑暗里,独自一人。今晚你必须做一个决定——你自己知道是什么。」
|
||||
|
||||
朗读提示:
|
||||
- 「你坐在黑暗里,」— 极轻,像呼气
|
||||
- 「独自一人。」— 停顿感,留白约 0.8 秒
|
||||
- 「今晚你必须做一个决定——」— 稍慢,破折号处停顿约 1 秒
|
||||
- 「你自己知道是什么。」— 最轻,几乎是说给自己听的
|
||||
```
|
||||
|
||||
```
|
||||
「你在黑暗里,说了那句对不起。没有人听见,但你说了。有什么东西松开了。」
|
||||
|
||||
朗读提示:
|
||||
- 「有什么东西松开了。」— 这是最重要的一句,但要说得最轻,
|
||||
像呼出一口气,结尾略微延长「了」的尾音
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 三、《守夜》旁白 — 对讲机留言
|
||||
|
||||
### 角色定位
|
||||
|
||||
他是一个老保安,在你入职之前就在这栋楼里工作了很多年。他提前录好了这些提示音,放在对讲机系统里,帮助新来的保安在夜班时做判断。他见过很多事,不大惊小怪,但他认真负责。
|
||||
|
||||
### 声音特征
|
||||
|
||||
| 维度 | 描述 |
|
||||
|------|------|
|
||||
| 性别 | 男声 |
|
||||
| 年龄感 | 45-55岁 |
|
||||
| 音色底质 | 中低男声,略带沙哑,像抽了很多年烟但已经戒了。不是醇厚的磁性男声,是有点磨损的质感 |
|
||||
| 共鸣位置 | 以胸腔为主,厚实但不夸张 |
|
||||
| 语速 | 接近正常,约90%语速,但字与字之间咬字清楚,不含糊 |
|
||||
| 音调 | 标准偏低,不高亢,像在做记录而不是在讲故事 |
|
||||
| 录音质感 | 可以有轻微的对讲机感(略带中频突出),但要保持清晰 |
|
||||
| 气息 | 平稳,带一点疲惫,但是那种习惯了疲惫的人,不是撑不住的那种 |
|
||||
|
||||
### 情感基调
|
||||
|
||||
**实务与温和**。他的语气像在交接班,说清楚情况,给你判断,但他不会给你施压。他见过太多了,什么情况他都经历过,所以他的语气里有一种稳定的疲惫,不是焦虑的那种疲惫。
|
||||
|
||||
**不该有的感觉**:权威、命令、惊慌、新闻播报腔、机械警报感。
|
||||
|
||||
### TTS 提示词(英文)
|
||||
|
||||
```
|
||||
Voice: Middle-aged Chinese male, 45-55 years old. Pre-recorded walkie-talkie message.
|
||||
Tone: Matter-of-fact, mildly tired, steady. Like a veteran security guard giving handover notes.
|
||||
Delivery: Near-normal pace (90% speed), clear diction, slight deliberateness.
|
||||
Timbre: Mid-low male voice, slightly gravelly/worn texture, chest resonance dominant.
|
||||
Emotion: Calm fatigue. Not stressed, not urgent. Seen it all before.
|
||||
Audio texture: Slight mid-frequency presence (like walkie-talkie), but still clear.
|
||||
Do NOT sound like: military commander, news anchor, emergency alert, thriller narrator.
|
||||
Reference: An experienced night-shift worker leaving a recorded message for the next shift.
|
||||
```
|
||||
|
||||
### TTS 提示词(中文)
|
||||
|
||||
```
|
||||
声音风格:中年中国男性,年龄感45-55岁。预录的对讲机提示音。
|
||||
语气:实务、略带疲惫、稳定。像一个经验丰富的保安在交班时留下的提示。
|
||||
语速:接近正常,约90%,吐字清楚,有一点郑重但不沉重。
|
||||
音色:中低男声,略带沙哑/磨损感,以胸腔共鸣为主。
|
||||
情感:平静的疲惫。不紧张,不急迫,什么都见过了。
|
||||
音频质感:轻微的中频突出(对讲机感),但保持清晰可辨。
|
||||
不要像:军事指挥官、新闻主播、紧急广播、惊悚片旁白。
|
||||
参考感受:一个在这栋楼工作了二十年的老保安,录了一批提示音留给新来的年轻人。
|
||||
```
|
||||
|
||||
### 样例句子及朗读标注
|
||||
|
||||
```
|
||||
「凌晨零点十分。地下室传来水声,不大,但是持续的,一直在响。」
|
||||
|
||||
朗读提示:
|
||||
- 「凌晨零点十分。」— 像在说时间记录,平,有点像报时
|
||||
- 「地下室传来水声,」— 陈述,不强调
|
||||
- 「不大,」— 略停,「但是」
|
||||
- 「持续的,一直在响。」— 这三个字是关键信息,稍重,但不夸张
|
||||
```
|
||||
|
||||
```
|
||||
「五点整。接班的人进来了,你们交接了几句,递了记录本,你背上包走出去。外面已经有一点点亮了。」
|
||||
|
||||
朗读提示:
|
||||
- 前半部分正常陈述
|
||||
- 「外面已经有一点点亮了。」— 这里语气应该有一丝松动,
|
||||
不是高兴,是那种熬完一夜之后的轻,但他说的时候还是很平
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、《候诊》旁白 — 时间本身
|
||||
|
||||
### 角色定位
|
||||
|
||||
这个声音没有性格,没有情绪,没有立场。它就是时间在说话。精确,中性,像一个永远不会犯错的计时器,或者一个医院里的叫号系统升级版。它不在意你的感受,它只在意事实。
|
||||
|
||||
### 声音特征
|
||||
|
||||
| 维度 | 描述 |
|
||||
|------|------|
|
||||
| 性别 | 女声或男声均可,推荐女声(更贴近中性)|
|
||||
| 年龄感 | 难以判断年龄,像是AI生成的那种无年龄感 |
|
||||
| 音色底质 | 非常干净,没有气声,没有磨损,没有个人质感。标准播音腔,但去掉情感成分 |
|
||||
| 共鸣位置 | 中性共鸣,不特别强调胸腔或头腔 |
|
||||
| 语速 | 接近正常,约95%,每个数字、每个名词都精确清晰 |
|
||||
| 音调 | 几乎完全平,句末不做语气下沉或上扬 |
|
||||
| 气息 | 完全平稳,机械般的平稳 |
|
||||
|
||||
### 情感基调
|
||||
|
||||
**零情感,精确**。不冷漠(冷漠也是一种情感),就是没有情感。像GPS语音导航,但更安静,更精准,没有任何「友好感」。
|
||||
|
||||
**不该有的感觉**:温暖、关怀、急迫、权威感、新闻感、AI助手的那种刻意亲切。
|
||||
|
||||
### TTS 提示词(英文)
|
||||
|
||||
```
|
||||
Voice: Chinese female (preferred) or male, genderless age quality.
|
||||
Tone: Completely neutral. Zero emotion. Not cold — simply emotionless.
|
||||
Delivery: Near-normal pace (95%), extremely precise diction, especially for numbers and names.
|
||||
Timbre: Clean, no breathiness, no texture, no warmth — pure phonation.
|
||||
Emotion: None. This is time itself speaking. It does not care.
|
||||
Intonation: Nearly flat. Minimal sentence-final variation.
|
||||
Do NOT sound like: friendly AI assistant, GPS voice, news anchor, customer service bot.
|
||||
Reference: A hospital queue number system, but more articulate and slower.
|
||||
```
|
||||
|
||||
### TTS 提示词(中文)
|
||||
|
||||
```
|
||||
声音风格:中国女声(推荐)或男声,无年龄感。
|
||||
语气:完全中性。零情感。不是冷漠,而是没有情感这件事本身。
|
||||
语速:接近正常,约95%,数字和名词发音极其精确清晰。
|
||||
音色:干净,无气声,无质感,无温度——纯粹的发声。
|
||||
情感:无。这是时间本身在说话,它不在乎任何人。
|
||||
语调:近乎完全平,句末几乎没有语调变化。
|
||||
不要像:友好的AI助手、GPS导航语音、新闻主播、客服机器人的刻意亲切。
|
||||
参考感受:医院的叫号系统,但更清晰,更慢,句子更长。
|
||||
```
|
||||
|
||||
### 样例句子及朗读标注
|
||||
|
||||
```
|
||||
「叫号机叫到了八十五号。你的号是九十四。等待的时间被切成了一小块一小块的,每一块都很结实。」
|
||||
|
||||
朗读提示:
|
||||
- 「叫号机叫到了八十五号。」— 像读数据
|
||||
- 「你的号是九十四。」— 完全平,不带任何「所以你还要等」的暗示
|
||||
- 后面的描述性句子:同样平,但语速可以微微放慢,因为句子更长
|
||||
- 整句没有任何起伏,连「结实」也不强调
|
||||
```
|
||||
|
||||
```
|
||||
「九十四号。是你。你站起来,整理了一下衣服,走向那扇门。」
|
||||
|
||||
朗读提示:
|
||||
- 「九十四号。」— 像报号,平
|
||||
- 「是你。」— 两个字,无任何情感,不是「终于是你了」,只是确认
|
||||
- 后面的动作描述:陈述,像摄像头记录下的画面
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、《遗声》旁白 — 手机系统语音
|
||||
|
||||
### 角色定位
|
||||
|
||||
她是这部手机的语音助手,被主人调教过,用来播报录音元数据。她有一点点温度,但本质上还是机器——她不知道这些录音是什么内容,她只负责读出文件信息。如果说《候诊》的旁白是零温度,她大约是温度计刚刚能感应到体温的那一格。
|
||||
|
||||
### 声音特征
|
||||
|
||||
| 维度 | 描述 |
|
||||
|------|------|
|
||||
| 性别 | 女声 |
|
||||
| 年龄感 | 25-30岁的感觉,但带一点点机械感 |
|
||||
| 音色底质 | 偏年轻的女声,咬字非常清晰,字字分明,但没有过度的感情投入 |
|
||||
| 共鸣位置 | 偏头腔,亮而清晰 |
|
||||
| 语速 | 约92%正常语速,读数字和文件名时会自然地慢下来一点 |
|
||||
| 音调 | 略高于标准说话音调,但只高一点点 |
|
||||
| 气息 | 完全清晰,无气声,像数字合成人声 |
|
||||
| 节奏感 | 元数据的各个部分之间有固定的小停顿,像在读表格 |
|
||||
|
||||
### 情感基调
|
||||
|
||||
**冷静、有礼、略机械**。她不是真的无情,但她的情感是预设的,是「礼貌」这个程序的一部分,而不是真正感受到了什么。像一个很专业的前台,完全不会失礼,但你知道她下班之后不会想起你。
|
||||
|
||||
**不该有的感觉**:人类的共情感、悲伤(即使读到沉重的文件名也不会)、夸张的热情、恶意的冷漠。
|
||||
|
||||
### TTS 提示词(英文)
|
||||
|
||||
```
|
||||
Voice: Young Chinese female, 25-30 years old. Phone voice assistant style.
|
||||
Tone: Calm, polite, slightly mechanical — but with a tiny hint of warmth (not cold, not human).
|
||||
Delivery: 92% speed, very precise diction, slight deliberate pauses between metadata fields.
|
||||
Timbre: Bright head resonance, clean, no breathiness — digital synthesis quality.
|
||||
Emotion: Programmed politeness. Not sad reading sad file names. Not happy reading happy ones.
|
||||
Rhythm: Consistent, like reading a form — date, duration, filename as separate units.
|
||||
Do NOT sound like: warm human narrator, empathetic counselor, cold robot, customer service.
|
||||
Reference: Apple's Siri or a refined voice assistant, but quieter and slower.
|
||||
```
|
||||
|
||||
### TTS 提示词(中文)
|
||||
|
||||
```
|
||||
声音风格:年轻中国女性,年龄感25-30岁。手机语音助手风格。
|
||||
语气:冷静、有礼、轻微的机械感——有一点点温度,但不是人类的温度。
|
||||
语速:约92%,咬字极其清晰,元数据各字段之间有固定小停顿。
|
||||
音色:偏头腔共鸣,明亮清晰,无气声——接近数字合成人声的质感。
|
||||
情感:程序化的礼貌。读到沉重的文件名不会悲伤,读到轻松的也不会高兴。
|
||||
节奏:稳定,像在读表格——日期、时长、文件名分别是独立的信息单元。
|
||||
不要像:温暖的人类旁白、有共情的叙述者、冷酷的机器、客服话务员。
|
||||
参考感受:Apple Siri或精调后的语音助手,但更安静、更慢。
|
||||
```
|
||||
|
||||
### 样例句子及朗读标注
|
||||
|
||||
```
|
||||
「第一条录音。录制时间:三月五日,早上八点。时长:二十二秒。文件名:买橙子。」
|
||||
|
||||
朗读提示:
|
||||
- 「第一条录音。」— 轻,像索引号
|
||||
- 「录制时间:」— 停顿,然后读出日期,日期之后停顿
|
||||
- 「三月五日,早上八点。」— 数字精确,停顿
|
||||
- 「时长:」— 同样格式
|
||||
- 「二十二秒。」— 精确,停顿
|
||||
- 「文件名:」— 停顿
|
||||
- 「买橙子。」— 读文件名时没有任何情感色彩,就算是再奇怪的文件名也一样平
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 六、《浮》旁白 — 梦里的声音
|
||||
|
||||
### 角色定位
|
||||
|
||||
这个声音几乎不存在。它是梦里的,不知道从哪里来,没有身份,没有位置。它不是在"说话",是在"飘"。像你半睡半醒时听到的窗外风声,你以为自己听到了什么词,但你不确定。
|
||||
|
||||
### 声音特征
|
||||
|
||||
| 维度 | 描述 |
|
||||
|------|------|
|
||||
| 性别 | 女声 |
|
||||
| 年龄感 | 难以判断,可能是任何年龄 |
|
||||
| 音色底质 | 大量气声,几乎一半是气一半是声。不是正常的气声,是那种声音里大部分是呼吸的质感 |
|
||||
| 共鸣位置 | 几乎没有共鸣,声音不集中,是「散」的 |
|
||||
| 语速 | 很慢,约75%正常语速,某些词会自然地拖长 |
|
||||
| 音调 | 比正常说话略低,非常平,起伏极小,像水面微微荡漾 |
|
||||
| 气息 | 这个角色的声音本身就是气息。每句话开头都有轻微的吸气或呼气 |
|
||||
| 空间感 | 有一点点远,像从很远的地方传来,或者像在一个大的空旷空间里 |
|
||||
| 混响 | 可以有轻微的自然混响(不是KTV那种),像在一个大房间里或水边 |
|
||||
|
||||
### 情感基调
|
||||
|
||||
**飘渺与悬浮**。这个声音没有紧迫感,没有目的感,它只是在漂,说了什么它自己也不在意是否被听到。但每一句话都有它的重量,只是那个重量是用气息而不是用音量表现的。
|
||||
|
||||
**不该有的感觉**:ASMR(太刻意)、冥想引导(太有目的性)、鬼魂感(不是恐怖的)、梦境里的哲学大师。
|
||||
|
||||
### TTS 提示词(英文)
|
||||
|
||||
```
|
||||
Voice: Chinese female, age indeterminate. The voice of a dream — barely present.
|
||||
Tone: Floating, weightless, present but not insistent. It does not need to be heard.
|
||||
Delivery: Very slow (75% speed), some words naturally elongated, long pauses between sentences.
|
||||
Timbre: High breathy ratio — the voice is mostly breath with a thin thread of tone.
|
||||
Resonance: Minimal, diffuse — not focused, like sound in an open space or on water.
|
||||
Emotion: Serene vacancy. Aware but not attached. Like mist.
|
||||
Space: Slightly distant, with subtle natural reverb (not studio dry, not echoey).
|
||||
Do NOT sound like: ASMR content creator, meditation guide, horror movie ghost, poetic sage.
|
||||
Reference: The voice you think you hear right before falling asleep, uncertain if it was real.
|
||||
```
|
||||
|
||||
### TTS 提示词(中文)
|
||||
|
||||
```
|
||||
声音风格:中国女性,无法判断年龄。梦里的声音,几乎不存在。
|
||||
语气:漂浮、无重力、在场但不坚持。它不在意自己有没有被听到。
|
||||
语速:很慢,约75%正常语速,某些词会自然地拖长,句与句之间停顿很长。
|
||||
音色:气声比例极高——声音大部分是呼吸,带着一缕细细的音调。
|
||||
共鸣:极少,声音是散的,不集中,像在开阔空间或水面上的声音。
|
||||
情感:宁静的空洞。有意识但不执着,像雾。
|
||||
空间感:略远,带轻微的自然混响(不是录音棚的干声,也不是大回声)。
|
||||
不要像:ASMR创作者、冥想引导、恐怖片鬼声、诗意的哲学家。
|
||||
参考感受:将睡未睡时,你以为听到了什么声音,但不确定是不是真的。
|
||||
```
|
||||
|
||||
### 样例句子及朗读标注
|
||||
|
||||
```
|
||||
「你漂浮在某处。不知道是水,还是梦,还是别的什么。声音会漂过来。」
|
||||
|
||||
朗读提示:
|
||||
- 几乎每个逗号后都停顿 1 秒以上
|
||||
- 「不知道是水,」— 语速拖长,「水」字尾音延长
|
||||
- 「还是梦,」— 更轻,再延长
|
||||
- 「还是别的什么。」— 最轻,像消失前的最后一丝声音
|
||||
- 「声音会漂过来。」— 新的一句,但不重,像是在说梦话
|
||||
```
|
||||
|
||||
```
|
||||
「第一个。像夏天傍晚的风,带着草的气味,你说不清是哪年夏天的。它停在你身边了。」
|
||||
|
||||
朗读提示:
|
||||
- 「第一个。」— 很轻,像梦里的报数
|
||||
- 「像夏天傍晚的风,」— 语速极慢,「风」字略微拖长
|
||||
- 「带着草的气味,」— 继续慢,像真的闻到了什么
|
||||
- 「你说不清是哪年夏天的。」— 这句有一点感慨,但要控制,气声增加
|
||||
- 「它停在你身边了。」— 最轻,最气声
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 附:音色对比速查表
|
||||
|
||||
| 游戏 | 关键词 | 最像 | 最不像 |
|
||||
|------|--------|------|--------|
|
||||
| 林夏 | 克制、观察、平静 | 深夜纪录片 | 心理咨询、有声书 |
|
||||
| 一念 | 亲密、缓慢、有重量 | 你自己的内心声音 | 冥想App、ASMR |
|
||||
| 守夜 | 实务、疲惫、稳定 | 老同事交班提示 | 军事指挥、新闻主播 |
|
||||
| 候诊 | 精确、中性、零情感 | 医院叫号系统 | AI助手的亲切感 |
|
||||
| 遗声 | 有礼、清晰、略机械 | 精调版Siri | 温暖人类旁白 |
|
||||
| 浮 | 气声、飘渺、悬浮 | 将睡未睡时的幻听 | ASMR创作者 |
|
||||
|
||||
---
|
||||
|
||||
## 样本评估标准
|
||||
|
||||
收到生成样本后,按以下维度打分(每项 1-5 分):
|
||||
|
||||
1. **音色符合度** — 和提示词描述的质感是否匹配
|
||||
2. **情感准确度** — 情感基调是否正确(不多也不少)
|
||||
3. **语速节奏** — 是否有自然的停顿,不赶场
|
||||
4. **清晰度** — 中文吐字是否清晰,特别是数字、专有名词
|
||||
5. **辨识度** — 六个旁白之间是否有足够的声音差异
|
||||
|
||||
优先确保林夏(主游戏)和浮(风格最特殊)的样本质量。
|
||||
@@ -0,0 +1,315 @@
|
||||
# 盲游 · 音频制作执行手册
|
||||
|
||||
> 本手册是**从零制作一款游戏音频**的操作指南,覆盖配音、音乐、音效三类。
|
||||
> 所有音频均由本机 AI 模型本地生成,不依赖任何真人录音或网络素材。
|
||||
> 林夏项目将按本手册完全重头制作。
|
||||
|
||||
---
|
||||
|
||||
## 〇、环境速查(已就绪,无需再装)
|
||||
|
||||
| 类别 | 工具 | 路径 / 环境 | 用途 |
|
||||
|------|------|------------|------|
|
||||
| 基础 | FFmpeg 7.0 | `/usr/local/bin/ffmpeg` | 格式转换、响度归一化、听筒效果 |
|
||||
| 基础 | Python 3.13 + conda | `/home/xsl/miniconda3` | 脚本运行 |
|
||||
| GPU | RTX 5090 32GB | — | 模型推理 |
|
||||
| **配音** | **VoxCPM2** | `/home/xsl/tts-server` · 端口 **8000** | TTS 主链路(Voice Design + 克隆) |
|
||||
| 配音-备 | CosyVoice 2.0 | `/home/xsl/tools/CosyVoice` · conda `cosyvoice` | TTS 备用 |
|
||||
| 配音-备 | GPT-SoVITS | `/home/xsl/tools/GPT-SoVITS` · conda `gptsovits` | TTS 备用 |
|
||||
| 配音-备 | fish-speech | `/home/xsl/tools/fish-speech` · conda `fishspeech` | TTS 备用 |
|
||||
| **音乐** | **ACE-Step 1.5** | `/home/xsl/tools/ACE-Step-1.5` · conda `acestep` | BGM + 铃声生成 |
|
||||
| **音效** | ACE-Step 1.5 | 同上 | 氛围类音效(≥5s) |
|
||||
| 音效-补 | Stable Audio Open | `/home/xsl/tools/stable-audio-tools` · conda `stableaudio` | 高品质音效补充 |
|
||||
| UI 音效 | Web Audio API | 浏览器端 `audio.js` 合成 | 短促反馈音(无文件) |
|
||||
|
||||
**模型权重**:VoxCPM2 @ `/home/xsl/models/VoxCPM2`
|
||||
|
||||
> 端口说明:VoxCPM2 服务固定使用 **8000**(`/home/xsl/tts-server` 不动)。项目脚本通过 `VOXCPM_HOST`/`VOXCPM_PORT` 环境变量读取,默认 8000,已全部对齐。
|
||||
|
||||
---
|
||||
|
||||
## 一、总体流程(三类音频统一节奏)
|
||||
|
||||
```
|
||||
准备内容(音色提示词 + 台词表 + BGM/音效 caption)
|
||||
│
|
||||
├── 配音 ─→ 启动TTS ─→ 生成音色样本 ─→ 选定音色 ─→ 克隆生成台词 ─→ 归一化
|
||||
├── 音乐 ─→ 启动ACE-Step ─→ 生成 ─→ 归一化
|
||||
└── 音效 ─→ 启动ACE-Step ─→ 生成 ─→ 归一化
|
||||
│
|
||||
└── 统一归一化(process_audio.sh)──→ 部署到 audio/mp3/
|
||||
```
|
||||
|
||||
**关键原则——TTS 配音两步走**:先用提示词生成音色样本 → 人工筛选 → 再用选定音色克隆生成正式配音。不要跳过选音色这一步。
|
||||
|
||||
---
|
||||
|
||||
## 二、配音制作(TTS / VoxCPM2)
|
||||
|
||||
### 2.1 启动 TTS 服务
|
||||
|
||||
```bash
|
||||
# 方式一:直接启动
|
||||
bash /home/xsl/tts-server/start-voxcpm.sh
|
||||
# 验证
|
||||
curl http://127.0.0.1:8000/health
|
||||
# 预期: {"status":"ok","model":"VoxCPM2","styled_speech":true}
|
||||
|
||||
# 方式二:环境检查 + 自动启动(含降噪模型回退)
|
||||
bash /home/xsl/blind/audio/check_tts_env.sh
|
||||
bash /home/xsl/blind/audio/check_tts_env.sh --full # 含全链路测试合成
|
||||
```
|
||||
|
||||
> 若降噪模型下载失败,脚本会自动回退到 `VOXCPM_ENABLE_DENOISER=0` 重试(更稳,降噪关闭)。
|
||||
|
||||
### 2.2 第一步:生成音色样本(Voice Design)
|
||||
|
||||
**输入**:角色的音色提示词(风格描述)。
|
||||
**参考文档**:`docs/旁白音色提示词.md`(旁白)、`other_docs/林夏_原始设计.md` §7.3(角色音色配置表)。
|
||||
|
||||
```bash
|
||||
# 生成六个旁白的音色样本(无需参考音频,纯 Voice Design)
|
||||
cd /home/xsl/blind
|
||||
python3 audio/gen_narrator_samples.py
|
||||
# 输出: audio/narrator_samples/{game_id}/sample_*.wav
|
||||
```
|
||||
|
||||
若要为新游戏/新角色生成样本,修改 `gen_narrator_samples.py` 中的 `NARRATORS` 字典:填入 `style`(音色提示词)、`speed`(语速)、`samples`(代表性台词)。
|
||||
|
||||
### 2.3 人工筛选音色
|
||||
|
||||
1. 试听 `audio/narrator_samples/{game_id}/` 下的 WAV
|
||||
2. 按 `docs/旁白音色提示词.md` 末尾的"样本评估标准"打分(音色符合度、情感准确度、语速节奏、清晰度、辨识度)
|
||||
3. 选定一个样本,作为该角色/旁白的**音色锚点**
|
||||
|
||||
### 2.4 第二步:克隆生成正式配音
|
||||
|
||||
**将选定音色放入参考目录**:
|
||||
|
||||
```
|
||||
voice_mp3/narrator/{game_id}/ # 或 voice/narrator/{game_id}/(WAV)
|
||||
└── 选定的音色样本文件
|
||||
```
|
||||
|
||||
**批量生产旁白配音**:
|
||||
|
||||
```bash
|
||||
# 生产所有游戏旁白
|
||||
python3 audio/batch_narrator_tts.py --source voice_mp3
|
||||
|
||||
# 只生产指定游戏
|
||||
python3 audio/batch_narrator_tts.py --source voice_mp3 --game linxia
|
||||
|
||||
# 只生产 P0(narrate/tap/dt/intro,核心体验)
|
||||
python3 audio/batch_narrator_tts.py --source voice_mp3 --priority p0
|
||||
|
||||
# 干跑(先看任务列表,不实际合成)
|
||||
python3 audio/batch_narrator_tts.py --source voice_mp3 --dry-run
|
||||
```
|
||||
|
||||
输出:`audio/00_raw/narrator/{game_id}/{game_id}_{scene_id}_{type}.wav`
|
||||
|
||||
**批量生产角色配音(林夏角色台词)**:
|
||||
|
||||
```bash
|
||||
# 林夏角色台词(需在脚本 LINES 中维护台词表)
|
||||
python3 audio/batch_tts_voxcpm.py --source voice_mp3 --dry-run # 先看任务
|
||||
python3 audio/batch_tts_voxcpm.py --source voice_mp3 # 正式生产
|
||||
python3 audio/batch_tts_voxcpm.py --source voice_mp3 --role mom # 只生产某角色
|
||||
```
|
||||
|
||||
输出:`audio/00_raw/tts/{filename}_wav_v1.wav`
|
||||
|
||||
> 台词表在 `batch_tts_voxcpm.py` 的 `LINES` 变量中维护;参考音色在 `voice_mp3/{角色}/` 或 `voice/{角色}/` 下。重做林夏时需重新整理台词表。
|
||||
|
||||
### 2.5 VoxCPM2 API(手动单条合成时用)
|
||||
|
||||
| 接口 | 用途 |
|
||||
|------|------|
|
||||
| `POST /v1/voices` | 注册参考音频(wav_base64)→ 返回 voice_id |
|
||||
| `POST /v1/speech` | 纯克隆合成(text + voice_id)→ WAV |
|
||||
| `POST /v1/speech/styled` | Style Control(有 voice_id=克隆+表演;无=Voice Design) |
|
||||
|
||||
参数:`cfg_value`(默认 2.0)、`inference_timesteps`(默认 10);输出 48kHz 16-bit PCM WAV。
|
||||
|
||||
---
|
||||
|
||||
## 三、音乐制作(BGM + 铃声 / ACE-Step 1.5)
|
||||
|
||||
### 3.1 启动环境
|
||||
|
||||
```bash
|
||||
conda activate acestep
|
||||
```
|
||||
|
||||
### 3.2 生成
|
||||
|
||||
修改 `audio/gen_music_acestep.py` 中的 `BGM_TRACKS`(每段填 `filename`、`duration`、`caption`、`seed`),然后:
|
||||
|
||||
```bash
|
||||
# 生成全部(BGM + 铃声)
|
||||
python3 audio/gen_music_acestep.py
|
||||
|
||||
# 只生成 BGM
|
||||
python3 audio/gen_music_acestep.py --category bgm
|
||||
|
||||
# 只生成铃声
|
||||
python3 audio/gen_music_acestep.py --category ringtone
|
||||
|
||||
# 干跑
|
||||
python3 audio/gen_music_acestep.py --dry-run
|
||||
```
|
||||
|
||||
输出:`audio/00_raw/music/{filename}.wav`
|
||||
|
||||
> RTX 5090 已在脚本顶部做了 cuBLAS 修复:`torch.backends.cuda.preferred_blas_library("cublaslt")`,无需额外处理。
|
||||
|
||||
### 3.3 BGM caption 示例(参考林夏已有)
|
||||
|
||||
```python
|
||||
{
|
||||
"filename": "bgm_main_loop",
|
||||
"duration": 90,
|
||||
"caption": "lo-fi midnight bedroom, soft piano, light vinyl crackle, muted piano, subtle synth pad, occasional distant rain, melancholy but warm, ambient loop, no drums, 70 bpm",
|
||||
"lyrics": "",
|
||||
"steps": 20,
|
||||
"seed": 2103,
|
||||
}
|
||||
```
|
||||
|
||||
caption 越具体,生成质量越稳定。建议包含:风格、乐器、情绪、节奏、是否带人声、bpm。
|
||||
|
||||
---
|
||||
|
||||
## 四、音效制作(ACE-Step 1.5)
|
||||
|
||||
### 4.1 适用范围
|
||||
|
||||
- **ACE-Step 可生成**:≥5s 的氛围类音效(呼吸、心跳、转场 swell、环境底噪等)
|
||||
- **需另行处理**:短促 UI 音效(叮、咚、点击)—— 由 `audio.js` 的 Web Audio 合成,无需文件
|
||||
- **补充**:可用 Stable Audio Open 生成 ACE-Step 不擅长的音效
|
||||
|
||||
### 4.2 生成
|
||||
|
||||
修改 `audio/gen_sfx_acestep.py` 中的 `SFX_TRACKS`(填 `filename`、`duration`、`caption`、`seed`),然后:
|
||||
|
||||
```bash
|
||||
conda activate acestep
|
||||
python3 audio/gen_sfx_acestep.py # 正式生成
|
||||
python3 audio/gen_sfx_acestep.py --dry-run # 干跑
|
||||
```
|
||||
|
||||
输出:
|
||||
- 音效 → `audio/00_raw/sfx/{filename}.wav`
|
||||
- 环境音 → `audio/00_raw/ambience/{filename}.wav`
|
||||
|
||||
---
|
||||
|
||||
## 五、后期归一化(统一处理)
|
||||
|
||||
所有原始音频生成后,用 `process_audio.sh` 统一做响度归一化、听筒效果、格式转换:
|
||||
|
||||
```bash
|
||||
cd /home/xsl/blind
|
||||
bash audio/process_audio.sh tts # 配音(含电话/语音听筒效果)
|
||||
bash audio/process_audio.sh music # BGM + 铃声
|
||||
bash audio/process_audio.sh sfx # 音效
|
||||
bash audio/process_audio.sh ambience # 环境音
|
||||
bash audio/process_audio.sh all # 全部
|
||||
```
|
||||
|
||||
### 各类响度标准
|
||||
|
||||
| 类别 | 响度 | 额外处理 |
|
||||
|------|------|---------|
|
||||
| TTS 配音 | -16 LUFS | 电话/语音类加听筒效果(highpass+lowpass+EQ);长语音分段拼接 |
|
||||
| BGM | -18 LUFS | — |
|
||||
| 音效 | -14 LUFS | — |
|
||||
| 环境音 | -22 LUFS | highpass 60Hz + lowpass 12kHz |
|
||||
|
||||
处理流程:`audio/00_raw/{type}/` → `audio/01_processed/{type}/`
|
||||
|
||||
> 最终部署到 `audio/mp3/` 的文件应为 44100Hz、单声道、128kbps MP3。从 `01_processed` 拷贝/转码到 `mp3/` 时确认格式。
|
||||
|
||||
---
|
||||
|
||||
## 六、文件命名规范
|
||||
|
||||
### 配音(角色台词)
|
||||
|
||||
```
|
||||
audio/mp3/tts/{role}_{scene}_{type}_wav_v1.mp3
|
||||
```
|
||||
林夏项目约定带 `_wav_v1` 后缀(历史命名,沿用)。
|
||||
|
||||
### 旁白
|
||||
|
||||
```
|
||||
audio/mp3/narrator/{game_id}/{game_id}_{scene_id}_{type}.mp3
|
||||
```
|
||||
|
||||
`{type}` 取值:`intro`(开场)/ `narrate`(描述)/ `tap`(单击旁白)/ `dt`(双击旁白)/ `ending_{id}`(结局)等。
|
||||
|
||||
### 音乐 / 音效 / 环境音
|
||||
|
||||
```
|
||||
audio/mp3/music/{name}_v1.mp3
|
||||
audio/mp3/sfx/sfx_{name}_v1.mp3
|
||||
audio/mp3/ambience/amb_{name}_v1.mp3
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 七、生成优先级(生产顺序建议)
|
||||
|
||||
按以下顺序生产,优先保证核心体验可玩:
|
||||
|
||||
1. **P0(必须)**:每个游戏 `intro` + 所有 `narrate` + 所有 `tap`/`dt` 旁白
|
||||
2. **P1(重要)**:所有 `ending` 结局配音
|
||||
3. **P2(重要)**:角色主台词(NPC Round 1)
|
||||
4. **P3(次要)**:角色反应台词(Round 2/3)、BGM
|
||||
5. **P4(可选)**:条件分支变体(`_a`/`_b`)、环境音、叙事音效
|
||||
|
||||
> 旁白和 intro 优先级最高——它们决定玩家能否理解游戏。即使角色台词还没生成,引擎会用浏览器 TTS 兜底旁白文本,游戏也能跑起来。
|
||||
|
||||
---
|
||||
|
||||
## 八、完整生产清单(林夏重做时按此打勾)
|
||||
|
||||
### 配音
|
||||
- [ ] 整理角色台词表(写入 `batch_tts_voxcpm.py` 的 `LINES`)
|
||||
- [ ] 整理旁白脚本(对照 `docs/音频脚本.md`,写入 `batch_narrator_tts.py`)
|
||||
- [ ] 为每个角色/旁白写音色提示词(对照 `docs/旁白音色提示词.md`)
|
||||
- [ ] 启动 VoxCPM2:`bash /home/xsl/tts-server/start-voxcpm.sh`
|
||||
- [ ] 生成音色样本:`python3 audio/gen_narrator_samples.py`
|
||||
- [ ] 试听 + 选定音色,放入 `voice_mp3/narrator/{game}/`、`voice_mp3/{角色}/`
|
||||
- [ ] 生产旁白:`python3 audio/batch_narrator_tts.py --source voice_mp3 --priority p0`
|
||||
- [ ] 生产角色:`python3 audio/batch_tts_voxcpm.py --source voice_mp3`
|
||||
- [ ] 归一化:`bash audio/process_audio.sh tts`
|
||||
|
||||
### 音乐
|
||||
- [ ] 写 BGM caption(写入 `gen_music_acestep.py` 的 `BGM_TRACKS`)
|
||||
- [ ] `conda activate acestep && python3 audio/gen_music_acestep.py --category bgm`
|
||||
- [ ] 归一化:`bash audio/process_audio.sh music`
|
||||
|
||||
### 音效
|
||||
- [ ] 写音效 caption(写入 `gen_sfx_acestep.py` 的 `SFX_TRACKS`)
|
||||
- [ ] `conda activate acestep && python3 audio/gen_sfx_acestep.py`
|
||||
- [ ] 归一化:`bash audio/process_audio.sh sfx && bash audio/process_audio.sh ambience`
|
||||
|
||||
### 部署
|
||||
- [ ] 确认 `audio/mp3/` 下文件齐全、格式正确(44100Hz/单声道/128kbps MP3)
|
||||
- [ ] 启动游戏验证:`python3 -m http.server 8765 --bind 0.0.0.0`,手机访问 `http://<IP>:8765/game/`
|
||||
|
||||
---
|
||||
|
||||
## 九、常见问题
|
||||
|
||||
| 问题 | 对策 |
|
||||
|------|------|
|
||||
| TTS 服务起不来 | 看 `/tmp/voxcpm-server.log`;若降噪模型下载失败,用 `VOXCPM_ENABLE_DENOISER=0 bash /home/xsl/tts-server/start-voxcpm.sh` |
|
||||
| 端口 8000 被占 | `ss -lnt \| grep 8000` 查占用;如需换端口,`VOXCPM_PORT=xxxx bash start-voxcpm.sh`,并把 `gen_narrator_samples.py` 等脚本的 `VOXCPM_PORT` 一并设 |
|
||||
| 某角色音色不满意 | 重新调 `style` 提示词,重跑 `gen_narrator_samples.py`,换样本 |
|
||||
| 响度不统一 | 确认走了 `process_audio.sh`,别直接用 `00_raw` 的文件 |
|
||||
| 长文本 TTS 质量下降 | 分段生成,`process_audio.sh` 会自动拼接(见脚本中分段处理逻辑) |
|
||||
| ACE-Step 报 cuBLAS 错 | 脚本已内置修复;若仍报错,确认 `conda activate acestep` 后再跑 |
|
||||
+555
@@ -0,0 +1,555 @@
|
||||
# 盲游 · 音频脚本总文档
|
||||
|
||||
> 本文档是 TTS 生成的唯一依据。所有旁白台词、情绪标注、文件命名均在此定义。
|
||||
> 代码中的 `scene.narrate` 文本与本文档保持一致。
|
||||
> 凡标注「动态,浏览器TTS」的行不需要预先生成文件。
|
||||
|
||||
---
|
||||
|
||||
## 一、技术规格
|
||||
|
||||
| 项目 | 规格 |
|
||||
|------|------|
|
||||
| 格式 | MP3,128kbps |
|
||||
| 采样率 | 44100 Hz |
|
||||
| 声道 | 单声道 |
|
||||
| 响度标准 | -18 LUFS(与角色语音一致) |
|
||||
| 首尾静音 | 开头 100ms,结尾 200ms |
|
||||
|
||||
---
|
||||
|
||||
## 二、文件命名规范
|
||||
|
||||
```
|
||||
audio/mp3/narrator/{game_id}/{game_id}_{scene_id}_{type}.mp3
|
||||
```
|
||||
|
||||
- `{game_id}`:linxia / yinian / shouye / houzhen / yisheng / fu
|
||||
- `{scene_id}`:如 msg01、s02、v03、h04、r10、f05
|
||||
- `{type}`:
|
||||
- `intro` 开场白
|
||||
- `narrate` 场景描述(无条件分支)
|
||||
- `narrate_a/b` 场景描述(有条件分支,a=条件成立,b=不成立)
|
||||
- `tap` 单击后旁白
|
||||
- `tap_a/b` 单击后旁白(条件分支)
|
||||
- `dt` 双击后旁白
|
||||
- `ending_{id}` 结局旁白
|
||||
|
||||
---
|
||||
|
||||
## 三、各游戏旁白声音设定
|
||||
|
||||
| 游戏 | 旁白定位 | 语速 | 音调 | 情感基调 | TTS 音色建议 |
|
||||
|------|---------|------|------|---------|------------|
|
||||
| **林夏** | 纪录片旁白——克制、观察、不评判 | 0.85 | 标准 | 平静中带一丝悲悯 | 女声,成熟,普通话标准 |
|
||||
| **一念** | 内心独白——像你自己的声音 | 0.80 | 略低 | 亲密、缓慢、有重量 | 女声,接近耳语但清晰 |
|
||||
| **守夜** | 对讲机预录提示——老同事留的消息 | 0.90 | 标准偏低 | 实务、疲惫、温和 | 男声,中年感,略带沙哑 |
|
||||
| **候诊** | 时间本身的声音——无情感 | 0.95 | 标准 | 完全中性,精确 | 女声或男声均可,播音腔 |
|
||||
| **遗声** | 手机系统语音——像 Siri 但更温 | 0.92 | 略高 | 冷静,有礼,略机械 | 女声,偏年轻,咬字清晰 |
|
||||
| **浮** | 梦里的声音——几乎不存在 | 0.75 | 略低,柔 | 极轻,近乎飘渺 | 女声,气声成分多,偏空灵 |
|
||||
|
||||
---
|
||||
|
||||
## 四、《林夏》旁白脚本
|
||||
|
||||
> 旁白定位:纪录片旁白。不替林夏说话,只描述发生了什么、房间里的状态。
|
||||
|
||||
### 开场
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_intro.mp3` | 今晚九点。你是林夏,二十四岁,在北京独居。手机屏幕碎了,但还能用。今晚有十六条消息,你来决定接谁,不接谁。单击接听或回复,双击拒接或忽略。 | 整个游戏唯一一次说明操作,语气平稳 |
|
||||
|
||||
### 消息01 · 妈妈来电
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg01_narrate.mp3` | 晚上九点零三分。手机震动,铃声响起。屏幕显示:妈妈。 | 平静陈述,稍有停顿感 |
|
||||
| `linxia_msg01_tap.mp3` | 你接了。妈妈的声音从电话里传来,带着一点日常的关心,问你今天怎么样,吃了没有。你说还好。挂掉之后,房间里又安静了。 | 温和,轻描淡写 |
|
||||
| `linxia_msg01_dt.mp3` | 铃声响了又停。妈妈没再打来。 | 简短,留白 |
|
||||
|
||||
### 消息02 · 小美语音×3
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg02_notify.mp3` | 九点一刻。微信震了两下。小美给你发来三条语音消息。 | — |
|
||||
| `linxia_msg02_notify_dt.mp3` | 你把手机屏幕朝下放着。消息还在那里,但你不想听。 | — |
|
||||
| `linxia_msg02_play_narrate.mp3` | 小美说了很多,大意是关于上次那件事,她一直想跟你说清楚,她说她只是太担心你了。最后她问:你最近还好吗? | 概括式,不朗读原话 |
|
||||
| `linxia_msg02_play_tap.mp3` | 你回了消息。小美很快回说:谢谢你愿意回我。 | — |
|
||||
| `linxia_msg02_play_dt.mp3` | 你听完了,但没有回。消息就这样放着。 | — |
|
||||
|
||||
### 消息03 · 外卖来电
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg03_narrate.mp3` | 九点二十分。来电话了,是一个陌生号码——是外卖小哥,说你的外卖到了,问你在哪层。 | — |
|
||||
| `linxia_msg03_tap.mp3` | 你接了,告诉他楼层,外卖放门口就好。过了一会儿,门铃响了,外卖到了。 | — |
|
||||
| `linxia_msg03_dt.mp3` | 你没接。不知道外卖最后怎么样了。 | — |
|
||||
|
||||
### 消息04 · 阿哲语音
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg04_notify.mp3` | 九点半。微信震了一下。阿哲——你的前男友——给你发来一条语音。 | "前男友"三字平静说出,不带评判 |
|
||||
| `linxia_msg04_notify_dt.mp3` | 你没有打开。阿哲的消息放在那里。 | — |
|
||||
| `linxia_msg04_play_narrate.mp3` | 阿哲说,他有一件东西落在你这里了,问你方便不方便他过来拿一下。语气很平,不像是有别的意思。 | — |
|
||||
| `linxia_msg04_play_tap.mp3` | 你回了条消息说可以。阿哲说谢谢,说到时候再联系。你放下手机,有点说不清的感觉。 | — |
|
||||
| `linxia_msg04_play_dt.mp3` | 你没有回。消息就这样。 | — |
|
||||
|
||||
### 消息05 · HR王姐
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg05_notify.mp3` | 九点四十五分。HR王姐发来语音,是关于下个月调岗的事,问你有没有空聊一聊。 | — |
|
||||
| `linxia_msg05_notify_dt.mp3` | 你把消息标记了已读,回头再说。 | — |
|
||||
| `linxia_msg05_play_narrate.mp3` | 王姐说有个岗位的变动,你可能会受到影响,想提前跟你说一声,让你有个准备。语气是友善的,像是帮你。 | — |
|
||||
| `linxia_msg05_play_tap.mp3` | 你回了消息说谢谢告知,改天约时间聊。王姐说好的。 | — |
|
||||
| `linxia_msg05_play_dt.mp3` | 你没有回。这件事先放一放。 | — |
|
||||
|
||||
### 消息06 · 安安邀约
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg06_notify.mp3` | 晚上十点。安安发来语音,她说她们今晚在酒吧,问你要不要过来,说来了就是了,不用提前说。 | — |
|
||||
| `linxia_msg06_notify_dt.mp3` | 你没有打开消息。今晚不想动。 | — |
|
||||
| `linxia_msg06_play_narrate.mp3` | 安安的声音很热闹,背景里有音乐。她说来嘛来嘛,好久没见了,就几个人,很轻松的那种。 | — |
|
||||
| `linxia_msg06_play_tap.mp3` | 你回了条消息说行,等等到。安安说耶!你站起来换了件外套,但后来不知道为什么又坐下了。 | 后半句稍慢,有一点停顿 |
|
||||
| `linxia_msg06_play_dt.mp3` | 你回了消息说今晚状态不太好,下次吧。安安说没事,下次一定。 | — |
|
||||
|
||||
### 消息07 · 寝室群×5
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg07_notify.mp3` | 晚上十点一刻。寝室群活了,连着震了好几下,是大学室友们在聊。你们已经很久没联系了。 | — |
|
||||
| `linxia_msg07_notify_dt.mp3` | 你把群消息静音了。不是今晚。 | — |
|
||||
| `linxia_msg07_play_narrate.mp3` | 她们在聊上周聚会的事,有人说想你了,有人问你最近怎么样,有人说快来啊。那种熟悉的语气,你有点想念。 | — |
|
||||
| `linxia_msg07_play_tap.mp3` | 你发了一条消息,说最近还好,想你们了。群里一下子热闹起来,大家说你终于出现了。你看着那些消息,嘴角动了一下。 | 结尾"嘴角动了一下"轻描淡写 |
|
||||
| `linxia_msg07_play_dt.mp3` | 你看完了,但没有回复。你把手机放下。那种热闹是她们的,你在这边。 | — |
|
||||
|
||||
### 消息08 · 未知号码
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg08_narrate.mp3` | 晚上十点半。手机响了,来电显示:未知号码。铃声有点不一样,低沉的那种。 | "低沉"略重 |
|
||||
| `linxia_msg08_tap.mp3` | 你接了。里面没有声音,只有轻微的呼吸声,然后断了。你不知道是谁,心跳加快了一下。 | 节奏略慢,有悬疑感 |
|
||||
| `linxia_msg08_dt.mp3` | 未知号码,不接。铃声停了。 | 简短 |
|
||||
|
||||
### 消息09 · 小美醉酒×4
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg09_notify.mp3` | 十点四十五分。小美又发来消息,连续四条。语音很长,而且发送时间是一条接一条。 | 语速可略快,传递焦虑感 |
|
||||
| `linxia_msg09_notify_dt.mp3` | 消息放那里,你没有打开。 | — |
|
||||
| `linxia_msg09_play_narrate.mp3` | 小美喝多了,说话有点不清楚,但每一句都很认真。她说她一直有件事想跟你说:那年她告诉了别人,是她不对,她知道,她一直很愧疚,她说她怕你恨她。 | 这段要有重量,不急 |
|
||||
| `linxia_msg09_play_tap.mp3` | 你打了几个字发过去。小美隔了很久才回,说谢谢你,然后说她要先睡了,明天聊。你把手机放下。 | — |
|
||||
| `linxia_msg09_play_dt.mp3` | 你没有回。这件事太重了,不是今晚能说清楚的。 | — |
|
||||
|
||||
### 消息10 · 妈妈文字
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg10_narrate.mp3` | 深夜十一点刚过。妈妈发来一条文字消息,就五个字:睡了吗,夏夏。 | "夏夏"两字稍软 |
|
||||
| `linxia_msg10_tap.mp3` | 你回了:还没呢,妈你睡吧。妈妈说好,早点睡,然后发了个晚安的表情。你盯着那个表情看了一会儿。 | — |
|
||||
| `linxia_msg10_dt.mp3` | 你没有回妈妈的消息。她那边大概以为你已经睡了。 | — |
|
||||
|
||||
### 消息11 · 阿哲关键来电
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg11_narrate.mp3` | 十一点一刻。手机响了,专属铃声——是阿哲打来的。 | — |
|
||||
| `linxia_msg11_tap.mp3` | 阿哲说他就在附近,问你方不方便他上来取一下那件东西。他的声音平静,但停顿了一下。 | — |
|
||||
| `linxia_msg11_dt.mp3` | 铃声停了。阿哲没再打来。 | — |
|
||||
| `linxia_msg11_choice_narrate.mp3` | 他在等你说行不行。 | 非常短,有留白 |
|
||||
| `linxia_msg11_choice_tap.mp3` | 你说好,上来吧。阿哲说谢谢,说马上到。你放下手机,在房间里站了一会儿。 | — |
|
||||
| `linxia_msg11_choice_dt.mp3` | 你说今晚不太方便。阿哲沉默了一秒,说行,那之后再说。挂掉了。 | "沉默了一秒"前后要有停顿 |
|
||||
|
||||
### 消息12 · 周南初次语音
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg12_notify.mp3` | 十一点半。一个名字出现在屏幕上:周南。你有三年没联系了,他突然发来一条语音。 | — |
|
||||
| `linxia_msg12_notify_dt.mp3` | 你没有打开周南的消息。三年了,不急这一会儿。 | — |
|
||||
| `linxia_msg12_play_narrate.mp3` | 周南说:林夏你好,是我周南,不知道你还记不记得,就是突然想起你,也不知道你还在不在这个号,就发一条。他的声音还是老样子,只是低沉了一些。 | 转述口吻,温和 |
|
||||
| `linxia_msg12_play_tap.mp3` | 你回了:记得,你好啊。消息发出去了,你盯着那两个字,觉得说多说少都不对,就这样。 | — |
|
||||
| `linxia_msg12_play_dt.mp3` | 你听完了,没有回。也许三年的空白不是一条消息能填上的。 | — |
|
||||
|
||||
### 消息13 · 周南长语音×4
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg13_notify.mp3` | 深夜十一点四十五分。周南又发来四条,比刚才长很多。 | — |
|
||||
| `linxia_msg13_notify_dt.mp3` | 你把手机放到一边了。今晚已经够多了。 | — |
|
||||
| `linxia_msg13_play_narrate.mp3` | 周南说了他这十年:换了几个城市,做了几份工作,有一段感情,然后结束了。他说他今晚喝了一点酒,就想到你,想到你们高中的那些事,说他一直不知道当年为什么就断了联系。然后他问:你在北京过得好吗? | 这段较长,语速可略缓 |
|
||||
| `linxia_msg13_play_tap.mp3` | 你想了很久,然后把这段时间的事告诉了周南。说不上好不好,就是在过。他说谢谢你告诉我这些。你们聊了很久。 | — |
|
||||
| `linxia_msg13_play_dt.mp3` | 你回了说还好,然后问了他现在在哪里。你们就这样聊着,没有太深入,但很平静。 | — |
|
||||
|
||||
### 消息14 · 妈妈第二次来电
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg14_narrate.mp3` | 凌晨零点一刻。妈妈又打来电话了,这么晚——她还没睡。 | "这么晚"后有停顿 |
|
||||
| `linxia_msg14_tap_a.mp3` | 你接了。妈妈说:我就是想再听到你的声音。你们聊了一会儿,说了一些很日常的话,但你都记住了。 | 条件:mom_link≥1 |
|
||||
| `linxia_msg14_tap_b.mp3` | 你接了。妈妈说:没事,就是问问你睡了没。你说没呢,妈你睡吧。她说想听你的声音。 | 条件:mom_link=0 |
|
||||
| `linxia_msg14_dt.mp3` | 太晚了,挂掉了。妈妈没有再打来。 | — |
|
||||
|
||||
### 消息15 · 时光胶囊
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg15_narrate.mp3` | 凌晨零点半。手机弹出一个系统通知:三年前的今天,你给三年后的自己录了一条语音,今天到了。 | — |
|
||||
| `linxia_msg15_tap.mp3` | 你听到了三年前的自己的声音。她说:如果你在听这条消息,说明你撑过来了。不管现在怎么样,你撑过来了。然后她停顿了很久,说:辛苦了。 | 最后"辛苦了"三字要有分量,停顿后说 |
|
||||
| `linxia_msg15_dt.mp3` | 你把那个通知划掉了。也许不是现在。 | — |
|
||||
|
||||
### 消息16 · 结局触发点
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_msg16_narrate_a.mp3` | 凌晨两点。妈妈发来一段很长的语音,她说她一直有些话想说给你听。 | 条件:mom_link≥2 |
|
||||
| `linxia_msg16_narrate_b.mp3` | 凌晨两点。房间很安静,窗外偶尔有车声。今晚就这样了。 | 条件:mom_link<2 |
|
||||
| `linxia_msg16_tap_a.mp3` | 妈妈说了很多——关于你小时候,关于她一直担心的事,关于她说不出口但一直想说的话。你把手机贴在耳边,听完了。 | 条件:mom_link≥2 |
|
||||
| `linxia_msg16_tap_b.mp3` | 你就这样坐着,今晚的声音慢慢变少了。 | 条件:mom_link<2 |
|
||||
| `linxia_msg16_dt.mp3` | 你把手机放到床头,闭上眼睛。今晚就这样了。 | — |
|
||||
|
||||
### 结局
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `linxia_ending_return.mp3` | 《回归》。阿哲来了,或者你们说好了见面。不管那个门开不开,今晚你做了一个决定。 | — |
|
||||
| `linxia_ending_link.mp3` | 《连接》。今晚你和妈妈说了话,不止一次。那种联系很细,但是在。也许明天你会想打电话回去。 | — |
|
||||
| `linxia_ending_past.mp3` | 《旧路》。周南在深夜找到了你,你们聊了很久。那条从高中就断掉的线,今晚接上了一点点。 | — |
|
||||
| `linxia_ending_self.mp3` | 《自省》。今晚你听了三年前自己的声音。她说辛苦了,你接受了这句话。这不算小事。 | — |
|
||||
| `linxia_ending_island.mp3` | 《孤岛》。今晚大部分的消息,你都没有回应。你一个人度过了这个夜晚。这也是一种选择,你心里清楚。 | — |
|
||||
|
||||
---
|
||||
|
||||
## 五、《一念》旁白脚本
|
||||
|
||||
> 旁白定位:你自己的内心独白。不是外部叙述者,是你在黑暗中自己的声音,和七个声音对话。
|
||||
|
||||
### 开场
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `yinian_intro.mp3` | 你坐在黑暗里,独自一人。今晚你必须做一个决定——你自己知道是什么。七个声音在等着和你说话。单击,让它说完。双击,让它走。 | 慢,像从睡梦中说话 |
|
||||
|
||||
### 7个声音
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `yinian_v01_narrate.mp3` | 第一个声音来了。是三年前的你。那时候你刚做了一个选择,你觉得那是对的。那时候的你说:我们当时想要的,你还记得吗? | — |
|
||||
| `yinian_v01_tap.mp3` | 你让三年前的自己说完了。她说,你当时很想要那件事。你知道那是真的。 | — |
|
||||
| `yinian_v01_dt.mp3` | 三年前的声音淡去了。你选择了不看它。 | — |
|
||||
| `yinian_v02_narrate.mp3` | 第二个声音。是一个你很久没联系的朋友,她留了条语音。她说:你最近怎么样,我有点担心你。很久了,你一直没回。 | — |
|
||||
| `yinian_v02_tap.mp3` | 你把这份担心收进来了。她还在关心你,这件事是真实的。 | — |
|
||||
| `yinian_v02_dt.mp3` | 留言消失了。你没有听完。 | — |
|
||||
| `yinian_v03_narrate.mp3` | 第三个声音。是关于钱的恐惧。它说:你知道你现在能撑多久吗?如果这件事不成,你怎么办?它问得很具体,很冷静。 | 这段可以稍冷、稍急 |
|
||||
| `yinian_v03_tap.mp3` | 你承认了:这份恐惧是真实的。你带着它,而不是假装它不存在。 | — |
|
||||
| `yinian_v03_dt.mp3` | 恐惧的声音淡下去了。你知道它还在,但今晚先不看。 | — |
|
||||
| `yinian_v04_narrate.mp3` | 第四个声音。是一种渴望——想要被人理解,想要有人在身边,想要不那么孤独。它来得轻,但是很深。 | — |
|
||||
| `yinian_v04_tap.mp3` | 你承认了这份渴望。它是真实的,不是软弱。 | — |
|
||||
| `yinian_v04_dt.mp3` | 渴望漂走了。你告诉自己,一个人也没什么。 | — |
|
||||
| `yinian_v05_narrate.mp3` | 第五个声音。是一个你一直没有说出口的道歉。你知道是对谁的,你知道说的是什么。这个声音只是在等你。 | 停顿感,等待感 |
|
||||
| `yinian_v05_tap.mp3` | 你在黑暗里,说了那句对不起。没有人听见,但你说了。有什么东西松开了。 | "松开了"要有呼吸感 |
|
||||
| `yinian_v05_dt.mp3` | 道歉的声音还在那里。你没有说。它等着。 | — |
|
||||
| `yinian_v06_narrate.mp3` | 第六个声音。是今晚那个决定本身。它把两种可能都摆在你面前,不说话,只是等着你看清楚。 | — |
|
||||
| `yinian_v06_tap.mp3` | 你看了。两条路都有代价,你知道了。这不让选择变得更容易,但让它变得更真实。 | — |
|
||||
| `yinian_v06_dt.mp3` | 你把眼睛闭上了。还没准备好看那两条路。 | — |
|
||||
| `yinian_v07_narrate_a.mp3` | 第七个声音,是现在的你。她说:你今晚接住了很多,你没有回避它们。这需要力气。 | 条件:accepted≥5 |
|
||||
| `yinian_v07_narrate_b.mp3` | 第七个声音,是现在的你。她沉默了很久,然后说:你把它们都推走了。也许你需要的不是答案,是喘息。 | 条件:accepted≤1 |
|
||||
| `yinian_v07_narrate_c.mp3` | 第七个声音,是现在的你。她说:你把恐惧留下了,但把渴望推走了。你知道这意味着什么吗? | 条件:kept_fear&&!kept_longing |
|
||||
| `yinian_v07_narrate_d.mp3` | 第七个声音,是现在的你。她说:你接住了一些,放走了一些。这就是你今晚的状态。 | 默认情况 |
|
||||
| `yinian_v07_tap.mp3` | 你听完了现在的自己说话。她说:不管你今晚做什么决定,你都已经在这里待过了。这算数。 | — |
|
||||
| `yinian_v07_dt.mp3` | 你没有听完。你觉得你已经知道了你需要知道的。 | — |
|
||||
|
||||
### 结局
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `yinian_ending_accept.mp3` | 《接纳》。你今晚接住了很多,你没有选择只是轻装。也许你的决定,就是带着这些往前走。 | — |
|
||||
| `yinian_ending_release.mp3` | 《出发》。你今晚把大部分都放走了。你想要的也许是轻。轻装,也是一种勇气。 | — |
|
||||
| `yinian_ending_stuck.mp3` | 《困住》。你接受了恐惧,但推走了渴望。你知道风险,但忘了你想要的是什么。这个决定,也许需要再等一等。 | — |
|
||||
| `yinian_ending_reconcile.mp3` | 《和解》。你说出了那声道歉。不管今晚的决定是什么,你和自己和解了一点点。这很重要。 | — |
|
||||
| `yinian_ending_between.mp3` | 《悬在中间》。你接住了一些,放走了一些。你还悬在两个答案之间。也许这就是你今晚真实的状态。 | — |
|
||||
|
||||
---
|
||||
|
||||
## 六、《守夜》旁白脚本
|
||||
|
||||
> 旁白定位:老同事提前录好的对讲机提示。语气像一个见过很多夜班的人在告诉你怎么判断情况。实务、不煽情。
|
||||
|
||||
### 开场
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `shouye_intro.mp3` | 凌晨零点。你是这栋楼的夜班保安,独自坐在一楼监控室。你不能离开座位,但你有一部对讲机和一部电话。今晚五点交班。单击,去查那个声音。双击,按兵不动。 | — |
|
||||
|
||||
### 8个事件
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `shouye_s01_narrate.mp3` | 凌晨零点十分。地下室传来水声,不大,但是持续的,一直在响。 | — |
|
||||
| `shouye_s01_tap.mp3` | 你拨了地下室的内线。没人接。你下去看了一眼,是一根管子在漏水,用旧布堵住了。回到监控室,零点二十三分。 | 实务口吻,记录感 |
|
||||
| `shouye_s01_dt.mp3` | 你听了一会儿。应该不碍事。你把注意力放回到监控屏幕上。 | — |
|
||||
| `shouye_s02_narrate.mp3` | 零点四十七分。四楼传来争吵声,一男一女,断断续续,能听出来语气很激动,但听不清说什么。 | — |
|
||||
| `shouye_s02_tap.mp3` | 你拨了四楼的号码。男的接了,说没事,就是聊天,让你别担心。声音还是有点紧,但他们关掉了。你记下来了:四楼,零点五十二分,双方均在场。 | — |
|
||||
| `shouye_s02_dt.mp3` | 家务事,你管不着。你转过身去继续盯着屏幕。争吵后来停了,你不知道是什么时候。 | — |
|
||||
| `shouye_s03_narrate.mp3` | 凌晨一点十七分。三楼有脚步声,很轻,走走停停。监控记录:三楼只有七零二亮着灯,住户是老陈,八十岁,独居。 | — |
|
||||
| `shouye_s03_tap.mp3` | 电话通了,老陈说他在找眼镜,眼镜掉床底下了。你说没事我就是例行确认一下。他说谢谢你小伙子,然后你们聊了几句,关于他年轻时候也做过工程。你挂掉电话,一点二十八分。 | 这段可以稍温暖 |
|
||||
| `shouye_s03_dt.mp3` | 老人家睡不好,很正常。你记了一笔,继续监控。脚步声后来停了。 | — |
|
||||
| `shouye_s04_narrate.mp3` | 凌晨两点零三分。大门门铃响了,不是访客系统,是有人在外面按了手动铃,按了两下,然后停了。没有人应答。监控画面:门口没有人了。 | — |
|
||||
| `shouye_s04_tap.mp3` | 你走到门口,什么都没有,只有一个快递包裹靠在墙边,大概是外卖或者什么。也许是送错了。你把包裹推到角落,拍了张照,两点一刻回到座位。 | — |
|
||||
| `shouye_s04_dt.mp3` | 无应答,无入侵,记录在案,按流程忽略。你回到屏幕前。 | — |
|
||||
| `shouye_s05_narrate_a.mp3` | 凌晨两点五十五分。你不知道从什么时候开始,眼皮变得很重……你睡着了一会儿。醒来的时候,你看到监控里,四楼门口放着一个箱子,不知道是谁的,不知道什么时候放的。 | 条件:missed_fight=true |
|
||||
| `shouye_s05_narrate_b.mp3` | 凌晨两点五十五分。你不知道从什么时候开始,眼皮变得很重……你睡着了一会儿。醒来的时候,监控里一切正常。你记录:三点十二分,短暂失守。 | 条件:missed_fight=false |
|
||||
| `shouye_s06_narrate.mp3` | 凌晨三点半。你的私人手机响了。是家里的人打来的。这么晚打来——可能是什么事,也可能只是弄错时间了。 | — |
|
||||
| `shouye_s06_tap.mp3` | 是你妈,她说睡不着,看见你今天发的朋友圈,就想打个电话。你们聊了十分钟,说了些不重要的事。挂掉之后,监控室比之前暖了一点点。 | 结尾"暖了一点点"轻说 |
|
||||
| `shouye_s06_dt.mp3` | 这么晚不方便。你把手机调成静音,准备待会儿发条消息。你没有发。 | — |
|
||||
| `shouye_s07_narrate.mp3` | 凌晨四点十二分。屋顶传来动静,断断续续,不像是机械设备,更像是有什么东西在走动。 | — |
|
||||
| `shouye_s07_tap.mp3` | 你拿着手电上了顶层,推开屋顶的铁门,风吹过来,你看见了天边刚刚开始发白的颜色——还不是黎明,但是快了。然后你看见了一只流浪猫,坐在水箱上看着你。你们看了对方一会儿,然后你下来了。你是今晚唯一上了屋顶的人。 | 这段稍慢,有空间感 |
|
||||
| `shouye_s07_dt.mp3` | 你记了一笔,继续监控。动静后来停了。 | — |
|
||||
| `shouye_s08_narrate.mp3` | 五点整。接班的人进来了,你们交接了几句,递了记录本,你背上包走出去。外面已经有一点点亮了。 | — |
|
||||
|
||||
### 结局
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `shouye_ending_dawn.mp3` | 《你看到了什么》。今晚你一个人上了屋顶,你看到了那只猫,你看到了天边开始变色。只有你看到了。这算不上什么,但只有你知道。 | — |
|
||||
| `shouye_ending_solid.mp3` | 《平凡守夜》。你今晚查了应该查的,接了应该接的电话。没有大事,没有遗漏。这栋楼平安了一夜,有一部分是因为你在。 | — |
|
||||
| `shouye_ending_detached.mp3` | 《这不是我的事》。你今晚保持了距离。声音来了,你记录,你不动。你守住了一夜,但不知道楼里发生了什么。这也是一种守夜的方式。 | — |
|
||||
| `shouye_ending_oversight.mp3` | 《疏忽》。你今晚漏掉了四楼的事。那个女人在凌晨两点多拎着箱子离开了,你没有注意到。也许和你没有关系。也许有。你不知道。 | — |
|
||||
| `shouye_ending_ordinary.mp3` | 《普通的夜班》。你做了你能做的,漏掉了一些,照顾到了一些。和所有普通的夜班一样。 | — |
|
||||
|
||||
---
|
||||
|
||||
## 七、《候诊》旁白脚本
|
||||
|
||||
> 旁白定位:时间本身的声音。无任何情感,只陈述事实。播音腔,精确到分钟。
|
||||
|
||||
### 开场
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `houzhen_intro.mp3` | 下午一点半,你坐在医院候诊室,等一个检查结果。叫号机已经叫到了八十四号。你是九十四号。单击,把注意力放到外面。双击,退回到自己里面。 | — |
|
||||
|
||||
### 9个时间切片
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `houzhen_h01_narrate.mp3` | 叫号机叫到了八十五号。你的号是九十四。等待的时间被切成了一小块一小块的,每一块都很结实。 | — |
|
||||
| `houzhen_h02_narrate.mp3` | 你左边坐着一个老人。他在看窗外,窗外是停车场,没有什么特别的。但他看得很专注。 | — |
|
||||
| `houzhen_h02_tap.mp3` | 你看了他一会儿。他感觉到了,朝你点了点头。你也点了点头。没有说话,但有什么东西发生了。 | — |
|
||||
| `houzhen_h02_dt.mp3` | 你低下头,看手机。屏幕亮着,什么都有,但你没有真的看进去什么。 | — |
|
||||
| `houzhen_h03_wait.mp3` | 叫号机叫到了八十八号。 | 极短 |
|
||||
| `houzhen_h03_narrate.mp3` | 你手机上有一条两天前的消息,你当时看到了,但没有回。那个人说:最近怎么样。 | — |
|
||||
| `houzhen_h03_tap.mp3` | 你打开来,打了几个字。发出去了。不知道他会不会在意这么晚才回。 | — |
|
||||
| `houzhen_h03_dt.mp3` | 你把手机翻过去,屏幕朝下放在大腿上。等等再说。 | — |
|
||||
| `houzhen_h04_wait.mp3` | 护士从走廊那头走过来,叫了一个名字,不是你。 | — |
|
||||
| `houzhen_h04_narrate.mp3` | 对面有个小孩在哭,大约三四岁,蹲在椅子旁边哭。旁边的大人在轻声说什么,但他还是哭。 | — |
|
||||
| `houzhen_h04_tap.mp3` | 你看着那个孩子。他哭了一会儿就停了,大概是哭够了。你们没有交流,但你陪着他哭完了。 | — |
|
||||
| `houzhen_h04_dt.mp3` | 你把视线移开了。每个人都有自己的事,你也有你的。 | — |
|
||||
| `houzhen_h05_wait.mp3` | 叫号机叫到了九十号。还有四个人。 | — |
|
||||
| `houzhen_h05_narrate.mp3` | 窗外的光线变了。下午的阳光斜进来,在地板上画了一块长方形的亮。你注意到了。 | — |
|
||||
| `houzhen_h05_tap.mp3` | 你盯着那块光看了一会儿。它在慢慢移动,非常慢,但是在动。时间在过。 | — |
|
||||
| `houzhen_h05_dt.mp3` | 你闭上眼睛,想了想别的事。 | — |
|
||||
| `houzhen_h06_wait.mp3` | 叫号机叫到了九十一号。 | — |
|
||||
| `houzhen_h06_narrate.mp3` | 你的手机响了。是一个你不常打电话的人——是你家里的人。也许只是普通的问候。 | — |
|
||||
| `houzhen_h06_tap.mp3` | 你接了。对方说:你在哪啊,吃了吗。你说在外面,没事。就这样。挂掉之后候诊室里还是那么安静。 | — |
|
||||
| `houzhen_h06_dt.mp3` | 你看着屏幕亮了又暗。现在不是时候。等会儿再说。 | — |
|
||||
| `houzhen_h07_wait.mp3` | 叫号机叫到了九十二号。 | — |
|
||||
| `houzhen_h07_narrate.mp3` | 你右边的人一直在看同一页的杂志,翻来翻去都是那页。你不确定她在看,还是只是拿着。 | — |
|
||||
| `houzhen_h07_tap.mp3` | 你朝她看了一眼。你们的眼神碰了一下,然后都移开了。没有什么,就是两个陌生人在等待。 | — |
|
||||
| `houzhen_h07_dt.mp3` | 你没有看。你在想等会儿检查结果会说什么。 | — |
|
||||
| `houzhen_h08_narrate.mp3` | 九十三号。就差一个了。 | — |
|
||||
| `houzhen_h09_narrate.mp3` | 九十四号。是你。你站起来,整理了一下衣服,走向那扇门。 | — |
|
||||
| `houzhen_h09_tap.mp3` | 你推开门走进去了。门关上了。等待结束了。 | — |
|
||||
| `houzhen_h09_dt.mp3` | 你停了一秒,深呼吸,然后走进去了。门关上了。 | — |
|
||||
|
||||
### 结局(动态,建议浏览器TTS)
|
||||
|
||||
> 候诊的结局根据统计数据动态生成,文本每次都不同,**建议保留浏览器TTS**,或预录所有组合(共约8种)。
|
||||
|
||||
若要预录所有组合,按以下模板生成:
|
||||
|
||||
```
|
||||
你等了很久。
|
||||
在这段时间里,你向外走了N次——看向别人,接了电话,留意窗外。 (N=1~5)
|
||||
/ 你向内走了N次——退回到自己里,先不管别的。 (N=1~5)
|
||||
/ 你向外走了X次,也向内走了Y次,差不多一半一半。 (X=Y)
|
||||
你记住了:[事件列表]。
|
||||
这就是你今天等待的方式。
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 八、《遗声》旁白脚本
|
||||
|
||||
> 旁白定位:手机系统语音,像 Siri。每条录音用元数据(日期、时长、文件名)介绍,然后玩家决定听不听。
|
||||
|
||||
### 开场
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `yisheng_intro.mp3` | 你收到了一部手机。手机的主人去世了,一个月前。他留下了很多录音,按时间排列。你不认识他。或者你以为你不认识他。单击,听这条录音。双击,跳过,永远不知道这条说了什么。 | — |
|
||||
|
||||
### 15条录音的元数据播报
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `yisheng_r01_narrate.mp3` | 第一条录音。录制时间:三月五日,早上八点。时长:二十二秒。文件名:买橙子。 | 系统感,读出元数据 |
|
||||
| `yisheng_r02_narrate.mp3` | 第二条录音。三月十二日,下午。时长:三十八秒。文件名:发工资了。 | — |
|
||||
| `yisheng_r03_narrate.mp3` | 第三条录音。三月十八日,晚上。时长:一分零七秒。文件名:说说工作的事。 | — |
|
||||
| `yisheng_r04_narrate.mp3` | 第四条录音。四月二日。时长:四十九秒。文件名:吵了一架。 | — |
|
||||
| `yisheng_r05_narrate.mp3` | 第五条录音。四月十五日,深夜。时长:二十六秒。文件名:电影。 | — |
|
||||
| `yisheng_r06_narrate.mp3` | 第六条录音。五月三日。时长:一分二十秒。文件名:小林的事。 | — |
|
||||
| `yisheng_r07_narrate.mp3` | 第七条录音。五月二十日。时长:三十三秒。文件名:小林说的。 | — |
|
||||
| `yisheng_r08_narrate.mp3` | 第八条录音。六月八日,凌晨。时长:两分十四秒。文件名:结束了。 | — |
|
||||
| `yisheng_r09_narrate.mp3` | 第九条录音。六月二十日。时长:一分五十秒。文件名:在反思。 | — |
|
||||
| `yisheng_r10_narrate.mp3` | 第十条录音。七月四日。时长:四十二秒。文件名:有人问起你。 | — |
|
||||
| `yisheng_r11_narrate.mp3` | 第十一条录音。七月十一日。时长:一分零八秒。文件名:我查了一下。 | — |
|
||||
| `yisheng_r12_narrate.mp3` | 第十二条录音。八月二日。时长:五十七秒。文件名:给不认识我的人(草稿)。 | — |
|
||||
| `yisheng_r13_narrate.mp3` | 第十三条录音。九月一日。时长:两分三十八秒。文件名:我有一件事想说。 | — |
|
||||
| `yisheng_r14_narrate.mp3` | 第十四条录音。十月十五日,录制时间是他去世前三天。时长:三分二十秒。文件名:最后一条,我想讲完整。 | — |
|
||||
| `yisheng_r15_narrate.mp3` | 还有一条录音,没有标日期。文件名:给不认识我的人(正式版)。这条需要你听了很多条才能解锁。你解锁了。 | — |
|
||||
|
||||
### 听完后的旁白(转述录音内容)
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `yisheng_r01_tap.mp3` | 他说:今天买了一袋橙子,是脐橙,比上次的甜很多。建议大家有机会可以试试。就这些。录音结束。 | — |
|
||||
| `yisheng_r02_tap.mp3` | 他说:今天发工资了。然后列了他这个月的支出清单,很详细——房租、电费、手机月供、还有给他妈买了一件外套。他说最后剩了不多,但够。录音结束。 | — |
|
||||
| `yisheng_r03_tap.mp3` | 他说他们组里来了个新同事,总是在会议上抢着发言,说了很多他本来准备说的话。他说他当时没说话,他不确定那是不是对的选择。他在录音里问自己:我是懦弱了,还是留有余地?他没有答案。录音结束。 | — |
|
||||
| `yisheng_r04_tap.mp3` | 他说他今天和那个新同事正面冲突了,是在走廊,两个人都没控制住。他说他说了一句话,事后觉得说得太重了。他在录音里把那句话又说了一遍,想听听是不是真的太重。录音里他沉默了一会儿,然后说:是的,是太重了。录音结束。 | — |
|
||||
| `yisheng_r05_tap.mp3` | 他说他去看了一部很老的电影,黑白的,在一个小影院,观众只有六个人。他说他中途哭了,但他不确定是因为电影,还是因为电影院里那种空荡荡的感觉。录音结束。 | — |
|
||||
| `yisheng_r06_tap.mp3` | 他开始讲一个叫小林的朋友。他说小林是他认识最久的人,从小一起长大的,后来各自去了不同的城市,联系越来越少。他说他最近一直在想,那种联系的稀薄,是谁的责任?还是说这就是长大的代价?录音结束。 | — |
|
||||
| `yisheng_r07_tap.mp3` | 他说小林打电话来了。小林在电话里说了一句话,让他很难受。小林说:感觉你现在不太一样了,变得……不知道,挺难接近的。他说他当时说了没什么,你想多了。他说他那时候应该说:我只是最近状态不好。但他没说。录音结束。 | — |
|
||||
| `yisheng_r08_tap.mp3` | 他说一段感情结束了,他没有细说是谁,说了有多久,只说:结束了,是我提的,我觉得这是对的,但今晚我睡不着。他说他在厨房坐着,泡了杯茶,但茶凉了也没喝。他说:我只是想把今晚的感觉记下来,不想让它消失。录音结束。 | — |
|
||||
| `yisheng_r09_tap.mp3` | 他说他一直在想那段感情里他做错了什么。他列了很多条,每一条都很具体。然后他说:但是我说不清,这些错是因为我是这样的人,还是因为那时候我在经历别的事情,所以才这样。他说:这个问题很重要,但我没有答案。录音结束。 | — |
|
||||
| `yisheng_r10_tap.mp3` | 他说:今天有人跟我提到了你的名字。我以为我早就忘了,但我发现我还记得很多细节。他没有解释"你"是谁。他说:我觉得我应该把这件事录下来,因为我发现我不想忘记。录音结束。 | — |
|
||||
| `yisheng_r11_tap.mp3` | 他说:我查了你现在在哪里,在做什么。不是恶意,就是想知道。他说他找到了一些信息,知道了你现在的大致状态。他说:你好像过得还不错,我很高兴,也有一点……他停了,然后说:没什么。录音结束。 | — |
|
||||
| `yisheng_r12_tap.mp3` | 他说:如果你听到这条,你肯定不认识我。我在想,把这些录音留给一个陌生人,有什么意义。然后他说:也许是因为我希望有人知道我活过,而不是认识我的人,而是真正陌生的人——你不需要对我有感情,你只是听了。录音结束。 | — |
|
||||
| `yisheng_r13_tap.mp3` | 他深吸一口气,说:有一件事我从没对任何人说过。他停了很久,然后说:我有时候觉得活着的意义我不太找得到,不是说我要做什么,只是我不知道我在这里有什么用。他说:我知道这句话很沉,但我必须把它说出来,因为放在心里太久了。然后他说:我今天状态还可以,就是今天有这个力气把它说出来。录音结束。 | 这段台词有情绪重量,需要留白 |
|
||||
| `yisheng_r14_tap.mp3` | 他说:我知道这是最后一条了。我不是悲观,我只是知道。他说:我想对听这些录音的人说,我不后悔我活过的大多数时候。橙子是甜的,老电影是值得哭的,小林的声音我还记得,那个人,不管怎样,我不后悔爱过。他说:如果你听了很多条,谢谢你。你是陌生人,但你陪着我说完了。录音结束。 | — |
|
||||
| `yisheng_r15_tap.mp3` | 他说:你好。你不认识我,我也不认识你。但你坐在那里,听完了我这些年说的话。我不知道你是谁,我不知道你们那边现在是白天还是夜晚。我只是想说:谢谢你愿意听一个陌生人说话。这很重要,比你知道的还要重要。录音结束。这是最后一条了。 | — |
|
||||
|
||||
### 跳过时的旁白
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `yisheng_skip_generic.mp3` | 你跳过了这条。你永远不会知道这条说了什么了。 | 第1条用,带说明 |
|
||||
| `yisheng_skip_short.mp3` | 你跳过了。 | 第2-9条用,简短 |
|
||||
| `yisheng_skip_last.mp3` | 你跳过了第十四条,也就是最后一条。手机里没有更多录音了。 | 第14条跳过专用 |
|
||||
| `yisheng_skip_r15.mp3` | 你连最后这条也跳过了。 | 第15条跳过专用 |
|
||||
|
||||
### 结局
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `yisheng_ending_known.mp3` | 《我认识你》。你听完了他大部分的录音,你听到了那条隐藏的最后一条。你不认识他,但你陪他把该说的都说完了。这已经足够了。 | — |
|
||||
| `yisheng_ending_stranger.mp3` | 《陌生人》。你跳过了所有关于他和你之间联系的录音。他对你来说,还是一个完全的陌生人。也许这样也好。 | — |
|
||||
| `yisheng_ending_passing.mp3` | 《路过》。你路过了他的大部分录音,只停留了几条。你知道他存在过,但你不知道他是谁。 | — |
|
||||
| `yisheng_ending_outline.mp3` | 《轮廓》。你听了他生活的碎片,知道了一个大致的形状。你不知道他所有的事,但你知道了一个人活着的样子。 | — |
|
||||
| `yisheng_ending_brief.mp3` | 《简短的相遇》。你听了几条,然后停下了。也许你听到了你需要听的,也许你还没准备好听更多。这也是一种结果。 | — |
|
||||
|
||||
---
|
||||
|
||||
## 九、《浮》旁白脚本
|
||||
|
||||
> 旁白定位:梦里的声音。几乎不存在。每个句子都像是从很远的地方说来的,有点延迟。
|
||||
|
||||
### 开场
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `fu_intro.mp3` | 你漂浮在某处。不知道是水,还是梦,还是别的什么。声音会漂过来。单击,把手伸过去。双击,看着它走。 | 极慢,像说给将睡未睡的人听 |
|
||||
|
||||
### 12个漂流物
|
||||
|
||||
| 文件名 | 台词 | 备注 |
|
||||
|--------|------|------|
|
||||
| `fu_f01_narrate.mp3` | 第一个。像夏天傍晚的风,带着草的气味,你说不清是哪年夏天的。它停在你身边了。 | — |
|
||||
| `fu_f01_tap.mp3` | 它停在你手心里,有点暖。 | 短,轻 |
|
||||
| `fu_f01_dt.mp3` | 你看着它慢慢飘走了。 | — |
|
||||
| `fu_f02_narrate.mp3` | 第二个。某人的笑声。你认识这个笑,但你说不清是谁的。 | — |
|
||||
| `fu_f02_tap.mp3` | 笑声停在你耳边,还在回响。 | — |
|
||||
| `fu_f02_dt.mp3` | 笑声远了。 | 极短 |
|
||||
| `fu_f03_narrate.mp3` | 第三个。一种说不清楚的遗憾。它没有形状,但是很重。 | — |
|
||||
| `fu_f03_tap.mp3` | 你把遗憾抱在怀里了。它很重,但你没有放开。 | — |
|
||||
| `fu_f03_dt.mp3` | 遗憾漂过去了。你呼了口气。 | — |
|
||||
| `fu_f04_narrate.mp3` | 第四个。很久没有过的安全感。轻轻的,像一床旧被子的气味。 | — |
|
||||
| `fu_f04_tap.mp3` | 你把它裹在身上了。 | — |
|
||||
| `fu_f04_dt.mp3` | 安全感飘走了。你看着它走。 | — |
|
||||
| `fu_f05_narrate.mp3` | 第五个。想哭但没哭出来的那种感觉。像喉咙里卡着什么。 | — |
|
||||
| `fu_f05_tap.mp3` | 你承认了。那个东西松动了一点点。 | — |
|
||||
| `fu_f05_dt.mp3` | 它漂走了。喉咙还是有点紧。 | — |
|
||||
| `fu_f06_narrate.mp3` | 第六个。一首旋律,只有开头几个音,后面的你想不起来了。 | — |
|
||||
| `fu_f06_tap.mp3` | 你在心里哼了那几个音。后面的还是想不起来,但这几个音够了。 | — |
|
||||
| `fu_f06_dt.mp3` | 旋律消失了。 | — |
|
||||
| `fu_f07_narrate.mp3` | 第七个。被需要的感觉。有人曾对你说过你很重要,你还记得那句话。 | — |
|
||||
| `fu_f07_tap.mp3` | 你把那句话放进口袋里了。 | — |
|
||||
| `fu_f07_dt.mp3` | 那句话漂走了。 | — |
|
||||
| `fu_f08_narrate.mp3` | 第八个。一个人的时候的自在。没人看着,没人要你做什么,只是你自己。 | — |
|
||||
| `fu_f08_tap.mp3` | 你把这份自在收进来了。 | — |
|
||||
| `fu_f08_dt.mp3` | 它漂走了。也许你现在不需要。 | — |
|
||||
| `fu_f09_narrate.mp3` | 第九个。害怕。不知道怕什么,就是有点怕。 | — |
|
||||
| `fu_f09_tap.mp3` | 你承认了:我有点害怕。说出来之后,它小了一点。 | — |
|
||||
| `fu_f09_dt.mp3` | 你没有看它,害怕漂走了。也许。 | — |
|
||||
| `fu_f10_narrate.mp3` | 第十个。好奇心。对某件事、某个人、某个地方,你还有好奇。 | — |
|
||||
| `fu_f10_tap.mp3` | 好奇心跳进你手里了,很活跃。 | — |
|
||||
| `fu_f10_dt.mp3` | 好奇心漂走了,也许它去找别人了。 | — |
|
||||
| `fu_f11_narrate.mp3` | 第十一个。疲惫。真实的、身体里的疲惫,它已经跟了你很久了。 | — |
|
||||
| `fu_f11_tap.mp3` | 你说:我累了。疲惫点了点头,说我知道。 | — |
|
||||
| `fu_f11_dt.mp3` | 疲惫漂走了。你感觉稍微轻了一点点。 | — |
|
||||
| `fu_f12_narrate.mp3` | 最后一个。它没有名字。是你漂浮在这里时特有的某种感觉,说不清,但它在。 | 比前面更慢 |
|
||||
| `fu_f12_tap.mp3` | 你把它揣在怀里了,连同它的没有名字。 | — |
|
||||
| `fu_f12_dt.mp3` | 你看着它留在了这片水里,这片梦里。 | — |
|
||||
|
||||
### 结局(动态,建议浏览器TTS或预录组合)
|
||||
|
||||
> 浮的结局文本完全动态(读出玩家保留/放走的清单),共约 2^12=4096 种组合,**建议保留浏览器TTS**。
|
||||
>
|
||||
> 若要预录,只需录以下固定句子,运行时拼接:
|
||||
|
||||
| 文件名 | 台词 |
|
||||
|--------|------|
|
||||
| `fu_ending_open.mp3` | 你漂回来了。 |
|
||||
| `fu_ending_kept_prefix.mp3` | 你带走了: |
|
||||
| `fu_ending_released_prefix.mp3` | 你放走了: |
|
||||
| `fu_ending_close.mp3` | 这就是今天的你。 |
|
||||
| `fu_item_wind.mp3` | 夏天的风 |
|
||||
| `fu_item_laugh.mp3` | 笑声 |
|
||||
| `fu_item_regret.mp3` | 遗憾 |
|
||||
| `fu_item_safe.mp3` | 安全感 |
|
||||
| `fu_item_tears.mp3` | 没哭出来的眼泪 |
|
||||
| `fu_item_melody.mp3` | 那段旋律 |
|
||||
| `fu_item_needed.mp3` | 被需要的感觉 |
|
||||
| `fu_item_alone.mp3` | 独处的自在 |
|
||||
| `fu_item_fear.mp3` | 害怕 |
|
||||
| `fu_item_curious.mp3` | 好奇心 |
|
||||
| `fu_item_tired.mp3` | 疲惫 |
|
||||
| `fu_item_nameless.mp3` | 无名之物 |
|
||||
| `fu_sep.mp3` | 、(顿号停顿,约200ms静音) |
|
||||
|
||||
---
|
||||
|
||||
## 十、统计
|
||||
|
||||
| 游戏 | 固定台词条数 | 条件分支条数 | 动态/TTS条数 | 合计 |
|
||||
|------|------------|------------|------------|------|
|
||||
| 林夏 | 38 | 5 | 0 | **43** |
|
||||
| 一念 | 16 | 4 | 0 | **20** |
|
||||
| 守夜 | 20 | 2 | 0 | **22** |
|
||||
| 候诊 | 22 | 0 | 1(结局) | **22+动态** |
|
||||
| 遗声 | 34 | 0 | 0 | **34** |
|
||||
| 浮 | 37 | 0 | 1(结局) | **37+动态** |
|
||||
| **合计** | **167** | **11** | **2** | **~178** |
|
||||
|
||||
---
|
||||
|
||||
## 十一、TTS 生成优先级
|
||||
|
||||
建议按以下顺序生成,优先保证核心体验:
|
||||
|
||||
1. **P0(必须)**:intro、所有 narrate、所有 tap/dt 旁白
|
||||
2. **P1(重要)**:所有 ending
|
||||
3. **P2(可选)**:条件分支变体(_a/_b)
|
||||
4. **P3(可选)**:浮的动态结局分片
|
||||
Reference in New Issue
Block a user