dsh-boot-suite 0.0.0-stage → 2.13.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AUDIO-FIELDS.md +121 -0
- package/CHANGELOG.md +731 -0
- package/DESKTOP.md +142 -0
- package/INSTALL.md +75 -0
- package/LICENSE +21 -0
- package/README.en.md +79 -0
- package/README.md +239 -2
- package/cordis.patch.yml +10 -0
- package/lib/assets/default-background.jpg +0 -0
- package/lib/assets/line-1.mp3 +0 -0
- package/lib/assets/line-2.mp3 +0 -0
- package/lib/assets/line-3.mp3 +0 -0
- package/lib/assets/line-4.mp3 +0 -0
- package/lib/assets/line-5.mp3 +0 -0
- package/lib/assets/line-6.mp3 +0 -0
- package/lib/assets/sfx-tick.mp3 +0 -0
- package/lib/assets/sfx-ticks-run.mp3 +0 -0
- package/lib/client.js +2889 -0
- package/lib/host-startup.js +1610 -0
- package/lib/host-wallpaper.js +723 -0
- package/lib/index.js +37 -0
- package/lib/splash.css +1629 -0
- package/lib/splash.js +3617 -0
- package/open-preview.sh +34 -0
- package/package.json +70 -4
- package/preview/index.html +568 -0
- package/templates/550c-homage/assets/earth-rings.json +1 -0
- package/templates/550c-homage/template.json +10961 -0
- package/templates/archive-warm/template.json +90 -0
- package/templates/chars-globe/assets/land-dots.json +1 -0
- package/templates/chars-globe/template.json +1 -0
- package/templates/deep-sonar/assets/line-1.wav +0 -0
- package/templates/deep-sonar/assets/line-2.wav +0 -0
- package/templates/deep-sonar/assets/line-3.wav +0 -0
- package/templates/deep-sonar/assets/line-4.wav +0 -0
- package/templates/deep-sonar/assets/line-5.wav +0 -0
- package/templates/deep-sonar/assets/line-6.wav +0 -0
- package/templates/deep-sonar/preview.gif +0 -0
- package/templates/deep-sonar/preview.png +0 -0
- package/templates/deep-sonar/template.json +104 -0
- package/templates/dsh-intro/assets/bgchars-dots.json +1 -0
- package/templates/dsh-intro/assets/sfx-click.wav +0 -0
- package/templates/dsh-intro/assets/sfx-hum.wav +0 -0
- package/templates/dsh-intro/assets/sfx-progress.wav +0 -0
- package/templates/dsh-intro/assets/sfx-run.mp3 +0 -0
- package/templates/dsh-intro/assets/sfx-switch.wav +0 -0
- package/templates/dsh-intro/assets/sfx-thump.wav +0 -0
- package/templates/dsh-intro/assets/sfx-tick.mp3 +0 -0
- package/templates/dsh-intro/assets/sphere-dots.json +1 -0
- package/templates/dsh-intro/assets/voice-main.wav +0 -0
- package/templates/dsh-intro/assets//345/217/260/350/257/215-/347/264/247/345/207/221.wav +0 -0
- package/templates/dsh-intro/assets//346/250/241/344/273/277550c/346/250/241/346/235/277/347/232/204/345/217/260/350/257/215.wav +0 -0
- package/templates/dsh-intro/template.json +1 -0
- package/templates/dsh-intro-act2/assets/bgchars-dots.json +1 -0
- package/templates/dsh-intro-act2/assets/fake-qr.png +0 -0
- package/templates/dsh-intro-act2/assets/sfx-click.wav +0 -0
- package/templates/dsh-intro-act2/assets/sfx-hum.wav +0 -0
- package/templates/dsh-intro-act2/assets/sfx-progress.wav +0 -0
- package/templates/dsh-intro-act2/assets/sfx-run.mp3 +0 -0
- package/templates/dsh-intro-act2/assets/sfx-switch.wav +0 -0
- package/templates/dsh-intro-act2/assets/sfx-thump.wav +0 -0
- package/templates/dsh-intro-act2/assets/sfx-tick.mp3 +0 -0
- package/templates/dsh-intro-act2/assets/sphere-dots.json +1 -0
- package/templates/dsh-intro-act2/assets/voice-main.wav +0 -0
- package/templates/dsh-intro-act2/template.json +745 -0
- package/templates/dsh-intro-act3/assets/bgchars-dots.json +1 -0
- package/templates/dsh-intro-act3/assets/fake-qr.png +0 -0
- package/templates/dsh-intro-act3/assets/sfx-click.wav +0 -0
- package/templates/dsh-intro-act3/assets/sfx-hum.wav +0 -0
- package/templates/dsh-intro-act3/assets/sfx-progress.wav +0 -0
- package/templates/dsh-intro-act3/assets/sfx-run.mp3 +0 -0
- package/templates/dsh-intro-act3/assets/sfx-switch.wav +0 -0
- package/templates/dsh-intro-act3/assets/sfx-thump.wav +0 -0
- package/templates/dsh-intro-act3/assets/sfx-tick.mp3 +0 -0
- package/templates/dsh-intro-act3/assets/sphere-dots.json +1 -0
- package/templates/dsh-intro-act3/assets/voice-main.wav +0 -0
- package/templates/dsh-intro-act3/template.json +387 -0
- package/templates/dsh-intro-full/assets/bgchars-dots.json +1 -0
- package/templates/dsh-intro-full/assets/fake-qr.png +0 -0
- package/templates/dsh-intro-full/assets/sfx-beep.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-clack.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-click.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-data.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-dong.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-hum.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-progress.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-run.mp3 +0 -0
- package/templates/dsh-intro-full/assets/sfx-sweep-down.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-sweep-up.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-switch.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-thump.wav +0 -0
- package/templates/dsh-intro-full/assets/sfx-tick.mp3 +0 -0
- package/templates/dsh-intro-full/assets/sphere-dots.json +1 -0
- package/templates/dsh-intro-full/assets/voice-main.wav +0 -0
- package/templates/dsh-intro-full/assets//345/217/260/350/257/215-/347/264/247/345/207/221.wav +0 -0
- package/templates/dsh-intro-full/assets//346/250/241/344/273/277550c/346/250/241/346/235/277/347/232/204/345/217/260/350/257/215.wav +0 -0
- package/templates/dsh-intro-full/template.json +2376 -0
- package/templates/dsh-intro-two/assets/bgchars-dots.json +1 -0
- package/templates/dsh-intro-two/assets/fake-qr.png +0 -0
- package/templates/dsh-intro-two/assets/sfx-beep.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-clack.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-click.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-data.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-dong.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-hum.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-progress.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-run.mp3 +0 -0
- package/templates/dsh-intro-two/assets/sfx-sweep-down.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-sweep-up.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-switch.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-thump.wav +0 -0
- package/templates/dsh-intro-two/assets/sfx-tick.mp3 +0 -0
- package/templates/dsh-intro-two/assets/sphere-dots.json +1 -0
- package/templates/dsh-intro-two/assets/voice-main.wav +0 -0
- package/templates/dsh-intro-two/assets//345/217/260/350/257/215-/347/264/247/345/207/221.wav +0 -0
- package/templates/dsh-intro-two/assets//346/250/241/344/273/277550c/346/250/241/346/235/277/347/232/204/345/217/260/350/257/215.wav +0 -0
- package/templates/dsh-intro-two/template.json +2472 -0
- package/templates/dsh-intro-welcome/assets/bgchars-dots.json +1 -0
- package/templates/dsh-intro-welcome/assets/fake-qr.png +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-beep.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-clack.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-click.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-data.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-dong.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-hum.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-progress.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-run.mp3 +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-sweep-down.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-sweep-up.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-switch.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-thump.wav +0 -0
- package/templates/dsh-intro-welcome/assets/sfx-tick.mp3 +0 -0
- package/templates/dsh-intro-welcome/assets/sphere-dots.json +1 -0
- package/templates/dsh-intro-welcome/assets/voice-main.wav +0 -0
- package/templates/dsh-intro-welcome/assets//345/217/260/350/257/215-/347/264/247/345/207/221.wav +0 -0
- package/templates/dsh-intro-welcome/assets//346/250/241/344/273/277550c/346/250/241/346/235/277/347/232/204/345/217/260/350/257/215.wav +0 -0
- package/templates/dsh-intro-welcome/template.json +1212 -0
- package/templates/earth-globe/assets/earth-rings.json +1 -0
- package/templates/earth-globe/template.json +137 -0
- package/templates/effects-gallery/template.json +186 -0
- package/templates/pos-test/template.json +1714 -0
- package/templates/terminal-phosphor/assets/avatar.png +0 -0
- package/templates/terminal-phosphor/template.json +116 -0
- package/templates/timeline-demo/template.json +200 -0
- package/templates/whale-girl-scan/NOTICE.md +7 -0
- package/templates/whale-girl-scan/assets/whale-girl-scan.mp4 +0 -0
- package/templates/whale-girl-scan/template.json +104 -0
- package/templates/wipe-demo/template.json +1 -0
- package/templates/wipe-tutorial/template.json +1 -0
- package/templates/world-line/template.json +712 -0
- package/test/smoke-client.mjs +502 -0
- package/test/smoke-coords.mjs +30 -0
- package/test/smoke-desktop-boot.mjs +370 -0
- package/test/smoke-host.mjs +443 -0
- package/test/smoke-import.mjs +534 -0
- package/test/smoke-merge.mjs +139 -0
- package/test/smoke-package.mjs +27 -0
- package/test/smoke-splash-tl.mjs +256 -0
- package/test/smoke-splash.mjs +518 -0
- package/test/smoke-wallpaper-apply.mjs +535 -0
- package/test/smoke-wallpaper-client.mjs +472 -0
- package/test/smoke-wallpaper-host.mjs +587 -0
- package/test/smoke-wallpaper-panel.mjs +378 -0
- package/tools/README.md +27 -0
- package/tools/build-release.mjs +68 -0
- package/tools/doctor.ps1 +95 -0
- package/tools/editor.html +2415 -0
- package/tools/emergency-uninstall.cmd +5 -0
- package/tools/emergency-uninstall.ps1 +93 -0
- package/tools/export-frames.mjs +117 -0
- package/tools/install.ps1 +386 -0
- package/tools/make-backup.ps1 +42 -0
- package/tools/make-upgrade-helper.mjs +87 -0
- package/tools/motion-check.mjs +147 -0
- package/tools/rollback-version.ps1 +116 -0
- package/tools/rollback.cmd +5 -0
- package/tools/rollback.ps1 +98 -0
- package/tools/update-apply.ps1 +153 -0
- package//345/256/211/350/243/205.cmd +20 -0
- package//346/211/223/345/274/200/351/242/204/350/247/210.cmd +27 -0
package/AUDIO-FIELDS.md
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# 需要音频的字段清单
|
|
2
|
+
|
|
3
|
+
本文件列出启动动画里**所有会出声的槽位**,以及每个槽位当前用的是哪份素材。
|
|
4
|
+
数值与文件名直接从 `lib/splash.js` 抓取。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、语音台词 —— 5 个槽位,全部用真声素材(终幕不出人声)
|
|
9
|
+
|
|
10
|
+
素材来自你提供的 `52xo4-igqdo-001.aac`,一一对应如下:
|
|
11
|
+
|
|
12
|
+
| 槽位 | 中文主字 | 英文副标题 | 素材文件 | 源素材 | 素材时长 | 出声时机 |
|
|
13
|
+
|---|---|---|---|---|---|---|
|
|
14
|
+
| `line-1` | 需要访问许可 | `ACCESS PERMISSION REQUIRED` | `lib/assets/line-1.mp3` | V1 (7.40–9.36s) | **1.96s** | 洗白后第一步,与文字渐显同时 |
|
|
15
|
+
| `line-2` | 身份资料确认 | `IDENTITY VERIFICATION` | `lib/assets/line-2.mp3` | V2 (11.29–12.45s) | **1.16s** | 第二步(身份卡 + 等确认) |
|
|
16
|
+
| `line-3` | 接收访问需求 | `ACCESS REQUEST RECEIVED` | `lib/assets/line-3.mp3` | V4 (14.76–15.83s) | **1.07s** | 第三步(鲸鱼标识一笔画成) |
|
|
17
|
+
| `line-4` | 开始读取权限 | `PERMISSION READ STARTED` | `lib/assets/line-4.mp3` | V5 (17.11–18.29s) | **1.18s** | 第四步(十六进制瀑布) |
|
|
18
|
+
| `line-5` | 读取完毕 · 核验通过 | `READ COMPLETE · VERIFIED` | `lib/assets/line-5.mp3` | V6 (19.71–21.41s) | **1.70s** | 第五步(环形准星扫描) |
|
|
19
|
+
|
|
20
|
+
**V3(13.04–14.09s)是用户名字独白,按你的要求不使用。**
|
|
21
|
+
|
|
22
|
+
### 素材取不到时
|
|
23
|
+
|
|
24
|
+
`voiceSource = 'asset'`(默认)时优先用素材;**素材缺失或解码失败会自动回落到 TTS**
|
|
25
|
+
(`say` 字段就是回落用的文本)。设置页可强制 `tts`。
|
|
26
|
+
|
|
27
|
+
### 终幕不出人声
|
|
28
|
+
|
|
29
|
+
按你的要求,**终幕「欢迎 `<身份名称>` 访问」只有画面与和声钟,不播人声**。
|
|
30
|
+
`finale()` 里调用 `voice.stop()` 收尾,源码中已无 `voice.tts(` 调用
|
|
31
|
+
(`test/smoke-splash.mjs` 第 8 节有回归断言钉住这条)。
|
|
32
|
+
|
|
33
|
+
将来的备选:如果想把终幕也配上人声,可以
|
|
34
|
+
① 让名字固定死 → 做成素材;② 补一条「欢迎访问」的通用素材(不含名字)。
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 二、界面音效 —— 8 个槽位
|
|
39
|
+
|
|
40
|
+
| # | 槽位 | 出声时机 | 素材 | 状态 |
|
|
41
|
+
|---|---|---|---|---|
|
|
42
|
+
| 1 | `cue` | **每次念台词之前**的两声轻提示 | 合成(1046.5 + 1568 Hz) | 合成 |
|
|
43
|
+
| 2 | `tick` | 文字逐字渐显 | `lib/assets/sfx-tick.mp3` | ✅ 真素材 |
|
|
44
|
+
| 3 | `step` | 每个阶段推进 | 同上 | ✅ 真素材 |
|
|
45
|
+
| 4 | `confirm` | 点按钮 / 按 Enter 确认 | 同上 | ✅ 真素材 |
|
|
46
|
+
| 5 | `tickRun` | 十六进制瀑布开始滚动 | `lib/assets/sfx-ticks-run.mp3` | ✅ 真素材 |
|
|
47
|
+
| 6 | `sweep` | 黑幕 → 暖白底板的洗白过场 | 合成(带通噪声扫频) | 合成 |
|
|
48
|
+
| 7 | `rise` | 黑幕上 DeepSeek 标识出现 | 合成(220→990 Hz 上行) | 合成 |
|
|
49
|
+
| 8 | `chime` | 终幕揭幕 | 合成(三音和声钟) | 合成 |
|
|
50
|
+
|
|
51
|
+
`tick` / `step` / `confirm` 目前**共用同一个「哒」**(音量不同)。
|
|
52
|
+
如果想让它们各用不同音效,补素材即可。
|
|
53
|
+
|
|
54
|
+
### 为什么 4 个还是合成
|
|
55
|
+
|
|
56
|
+
你给的音频里 **0–6.90s 是纯静音**:
|
|
57
|
+
|
|
58
|
+
- `rise` 对应原片约 3.9–5.5s → **原音频那里没有声音**
|
|
59
|
+
- `sweep` 对应原片约 6.2–6.7s → **同上**
|
|
60
|
+
- `chime` 对应 22.62–27.40s,但那是**配乐**不是音效
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 三、素材清单
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
lib/assets/
|
|
68
|
+
├─ line-1.mp3 40.3 KB V1 需要访问许可
|
|
69
|
+
├─ line-2.mp3 24.5 KB V2 身份资料确认
|
|
70
|
+
├─ line-3.mp3 23.0 KB V4 接收访问需求
|
|
71
|
+
├─ line-4.mp3 25.0 KB V5 开始读取权限
|
|
72
|
+
├─ line-5.mp3 35.2 KB V6 读取完毕 · 核验通过
|
|
73
|
+
├─ sfx-tick.mp3 2.1 KB 单声「哒」(20ms,质心 7.5kHz)
|
|
74
|
+
└─ sfx-ticks-run.mp3 10.2 KB 整串 10 个「哒」,每 45ms 一个
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Host 经 `/dsh-startup/asset/<文件名>` 只读下发(正则白名单 + 防目录穿越)。
|
|
78
|
+
6 段真声素材的 40–120Hz 能量都在 −25 ~ −34 dB(片尾配乐是 −1.3 dB),
|
|
79
|
+
**素材本身干净,没有配乐底**。
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 四、时长怎么定
|
|
84
|
+
|
|
85
|
+
**不再写死。** 每一步的停留时间 = `max(视觉基准, 实际音频时长 + 240ms 收尾)`:
|
|
86
|
+
|
|
87
|
+
```js
|
|
88
|
+
var spoke = voice.line(step.say, step.zh, step.audio) // Promise<这一句实际播了多久>
|
|
89
|
+
function holdFor(spoken) {
|
|
90
|
+
var target = Math.max(ms(step.hold), (spoken || 0) + ms(240))
|
|
91
|
+
return wait(Math.max(0, target - (spoken || 0)))
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
素材播多长,动画就等多久;**用户点得快也不掐断语音**。
|
|
96
|
+
只有「跳过 / 揭幕」才真的 `cancel()`。
|
|
97
|
+
|
|
98
|
+
按素材时长,五步的语音段落约:
|
|
99
|
+
`1.96s → 1.16s → 1.07s → 1.18s → 1.70s`(另加每次 240ms 的开头留白)。
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 五、有字但故意不配音的字段
|
|
104
|
+
|
|
105
|
+
`en`(中央大字)· `log` / `logEn`(底部日志)· `btnZh` / `btnEn`(按钮)· `badge`(阶段计数)·
|
|
106
|
+
`brand1/2/3`、`orgZh/orgEn/orgSub`、`welcomeBox`、`footer`(品牌与页脚)
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 六、相关设置项
|
|
111
|
+
|
|
112
|
+
| 设置项 | 作用 |
|
|
113
|
+
|---|---|
|
|
114
|
+
| `voice` | 语音播报总开关 |
|
|
115
|
+
| `voiceSource` | `asset`=优先真声素材 / `tts`=全 TTS |
|
|
116
|
+
| `voiceLang` | `en` / `zh` / `both`(只影响 TTS 回落时念什么) |
|
|
117
|
+
| `voiceName` / `voiceRate` / `voicePitch` / `voiceVolume` | TTS 音色与语调 |
|
|
118
|
+
| `voiceCue` | 念台词前的提示音开关 |
|
|
119
|
+
| `voiceLead` | 提示音之后留多久再开口(默认 240ms) |
|
|
120
|
+
| `sound` / `soundVolume` | 界面音效总开关与音量(**不连坐语音素材**) |
|
|
121
|
+
| `sfx` | 音效来源:`audio`=真素材 / `synth`=全合成 |
|