教员1 v2
+
+
+
+ 720 × 960 · 25 FPS · 502 帧
原编号:a1000000000000000000000000000005
diff --git a/.gitignore b/.gitignore index a145aeb..e73f483 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ artifacts/runs/ artifacts/deploy-smoke/ playwright-report/ test-results/ +reports/**/*.log +**/__pycache__/ diff --git a/reports/instructors-v2-20260914/ROLLBACK.md b/reports/instructors-v2-20260914/ROLLBACK.md new file mode 100644 index 0000000..d17b2ff --- /dev/null +++ b/reports/instructors-v2-20260914/ROLLBACK.md @@ -0,0 +1,17 @@ +# 三位教员 v2 更新与旧版备份 + +更新于 2026-09-15,报告目录沿用任务开始日期 20260914。 + +- 本机旧形象包:本目录 `backup-local/`,按三个原编号保存。 +- 本机旧封面:本目录 `backup-covers/`。 +- 本机新形象包:本目录 `generated/`;已复制到 `ai_person/ai_person_service/builtin_avatars/` 中相同编号目录。 +- 服务器旧形象包与元数据:`/home/digital-human-service/data/backups/instructors-v2-20260914/`,包括 `builtin/`、`runtime/`、`before-metadata.json`。 +- 服务器源码与已发布封面备份:`/home/digital-human-service/releases/instructors-v2-20260914/backup-host/`、`backup-covers/`。 +- 旧服务镜像:`digital-human-service:before-instructors-v2-20260914`。 +- 新服务镜像:`digital-human-service:instructors-v2-20260914`;`digital-human-service:cpu` 同样指向新镜像。 + +需要恢复时,分别恢复三个原编号下的源码包、运行包与封面,并将服务镜像标签切回旧镜像;元数据通过 `app.database.upsert_builtin_avatar` 按备份参数恢复。不要删除或重新创建平台形象记录。 + +本次沿用既有平台记录,没有调用全量“同步服务资源”:该接口还会重新导入服务中保留的旧样例。平台维度、帧数、时长仍与新资源一致,默认教员2和声音配置保持不变。临时生成的三个资源已通过服务 DELETE 接口清理,生成日志、任务号、源文件摘要与最终资源均保留在报告中。 + +核验了三个原入口的 Viewer、约8秒语音播放起止、嘴部驱动、运行包与镜像包哈希、原平台记录及默认配置;未把这些检查当成逐音节口型质量验收。已生成的39个讲解视频与原有WAV没有改动。 diff --git a/reports/instructors-v2-20260914/after-platform.json b/reports/instructors-v2-20260914/after-platform.json new file mode 100644 index 0000000..3292185 --- /dev/null +++ b/reports/instructors-v2-20260914/after-platform.json @@ -0,0 +1,128 @@ +{ + "code": 0, + "message": "success", + "data": { + "items": [ + { + "id": "a1000000000000000000000000000007", + "dataVersion": 9, + "name": "教员3", + "status": "ready", + "bundleReady": true, + "engineAuthorized": true, + "owner": "系统管理员", + "ownerId": "1", + "ownerName": "系统管理员", + "sourceType": "built_in", + "role": "装备维修教员", + "specialty": "装备维修教学", + "gender": "男", + "visibility": "internal", + "builtIn": true, + "default": false, + "voiceCapabilityId": "builtin-voice-male-gentle", + "voice": { + "capabilityId": "builtin-voice-male-gentle", + "speaker": 1, + "speed": 0.8, + "name": "温和男声" + }, + "frameCount": 502, + "width": 720, + "height": 960, + "duration": 20080, + "errorMessage": null, + "coverFileCode": null, + "coverUrl": "/avatars/builtin/equipment-instructor-3.png", + "previewFileCode": null, + "previewUrl": null, + "viewerUrl": "/human/viewer/a1000000000000000000000000000007", + "manifestUrl": "/human/api/v1/avatars/a1000000000000000000000000000007/assets/manifest.json", + "createdAt": "2026-08-29T13:42:19", + "updatedAt": "2026-08-29T17:09:14" + }, + { + "id": "a1000000000000000000000000000006", + "dataVersion": 10, + "name": "教员2", + "status": "ready", + "bundleReady": true, + "engineAuthorized": true, + "owner": "系统管理员", + "ownerId": "1", + "ownerName": "系统管理员", + "sourceType": "built_in", + "role": "装备维修教员", + "specialty": "装备维修教学", + "gender": "男", + "visibility": "internal", + "builtIn": true, + "default": true, + "voiceCapabilityId": "builtin-voice-male-gentle", + "voice": { + "capabilityId": "builtin-voice-male-gentle", + "speaker": 1, + "speed": 0.8, + "name": "温和男声" + }, + "frameCount": 502, + "width": 720, + "height": 960, + "duration": 20080, + "errorMessage": null, + "coverFileCode": null, + "coverUrl": "/avatars/builtin/equipment-instructor-2.png", + "previewFileCode": null, + "previewUrl": null, + "viewerUrl": "/human/viewer/a1000000000000000000000000000006", + "manifestUrl": "/human/api/v1/avatars/a1000000000000000000000000000006/assets/manifest.json", + "createdAt": "2026-08-29T13:42:17", + "updatedAt": "2026-08-29T17:09:14" + }, + { + "id": "a1000000000000000000000000000005", + "dataVersion": 8, + "name": "教员1", + "status": "ready", + "bundleReady": true, + "engineAuthorized": true, + "owner": "系统管理员", + "ownerId": "1", + "ownerName": "系统管理员", + "sourceType": "built_in", + "role": "装备维修教员", + "specialty": "装备维修教学", + "gender": "男", + "visibility": "internal", + "builtIn": true, + "default": false, + "voiceCapabilityId": "builtin-voice-male-gentle", + "voice": { + "capabilityId": "builtin-voice-male-gentle", + "speaker": 1, + "speed": 0.8, + "name": "温和男声" + }, + "frameCount": 502, + "width": 720, + "height": 960, + "duration": 20080, + "errorMessage": null, + "coverFileCode": null, + "coverUrl": "/avatars/builtin/equipment-instructor-1.png", + "previewFileCode": null, + "previewUrl": null, + "viewerUrl": "/human/viewer/a1000000000000000000000000000005", + "manifestUrl": "/human/api/v1/avatars/a1000000000000000000000000000005/assets/manifest.json", + "createdAt": "2026-08-29T13:42:15", + "updatedAt": "2026-08-29T17:09:14" + } + ], + "page": 1, + "pageSize": 200, + "total": 3, + "pages": 1 + }, + "timestamp": 1789402143513, + "requestId": "3b9595df92c9459999719604d49bbac7" +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/after-service.json b/reports/instructors-v2-20260914/after-service.json new file mode 100644 index 0000000..f94bf61 --- /dev/null +++ b/reports/instructors-v2-20260914/after-service.json @@ -0,0 +1,59 @@ +[ + { + "id": "a1000000000000000000000000000005", + "name": "教员1", + "status": "ready", + "source_filename": "built_in:equipment-instructor-1", + "resize": true, + "matting_mode": "off", + "device": "cpu", + "frame_count": 502, + "width": 720, + "height": 960, + "duration": 20.08, + "error": "", + "created_at": "2026-08-30T16:30:15.680802+00:00", + "updated_at": "2026-09-14T16:05:16.360768+00:00", + "thumbnail_url": "/api/v1/avatars/a1000000000000000000000000000005/assets/thumbnail.jpg", + "viewer_url": "/viewer/a1000000000000000000000000000005", + "manifest_url": "/api/v1/avatars/a1000000000000000000000000000005/assets/manifest.json" + }, + { + "id": "a1000000000000000000000000000006", + "name": "教员2", + "status": "ready", + "source_filename": "built_in:equipment-instructor-2", + "resize": true, + "matting_mode": "off", + "device": "cpu", + "frame_count": 502, + "width": 720, + "height": 960, + "duration": 20.08, + "error": "", + "created_at": "2026-08-30T16:30:15.688395+00:00", + "updated_at": "2026-09-14T16:05:16.388739+00:00", + "thumbnail_url": "/api/v1/avatars/a1000000000000000000000000000006/assets/thumbnail.jpg", + "viewer_url": "/viewer/a1000000000000000000000000000006", + "manifest_url": "/api/v1/avatars/a1000000000000000000000000000006/assets/manifest.json" + }, + { + "id": "a1000000000000000000000000000007", + "name": "教员3", + "status": "ready", + "source_filename": "built_in:equipment-instructor-3", + "resize": true, + "matting_mode": "off", + "device": "cpu", + "frame_count": 502, + "width": 720, + "height": 960, + "duration": 20.08, + "error": "", + "created_at": "2026-08-30T16:30:15.696651+00:00", + "updated_at": "2026-09-14T16:05:16.422542+00:00", + "thumbnail_url": "/api/v1/avatars/a1000000000000000000000000000007/assets/thumbnail.jpg", + "viewer_url": "/viewer/a1000000000000000000000000000007", + "manifest_url": "/api/v1/avatars/a1000000000000000000000000000007/assets/manifest.json" + } +] \ No newline at end of file diff --git a/reports/instructors-v2-20260914/backup-covers/equipment-instructor-1.png b/reports/instructors-v2-20260914/backup-covers/equipment-instructor-1.png new file mode 100644 index 0000000..c9372e1 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-covers/equipment-instructor-1.png differ diff --git a/reports/instructors-v2-20260914/backup-covers/equipment-instructor-2.png b/reports/instructors-v2-20260914/backup-covers/equipment-instructor-2.png new file mode 100644 index 0000000..4576bbe Binary files /dev/null and b/reports/instructors-v2-20260914/backup-covers/equipment-instructor-2.png differ diff --git a/reports/instructors-v2-20260914/backup-covers/equipment-instructor-3.png b/reports/instructors-v2-20260914/backup-covers/equipment-instructor-3.png new file mode 100644 index 0000000..2e8aab3 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-covers/equipment-instructor-3.png differ diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/01.mp4 b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/01.mp4 new file mode 100644 index 0000000..557a092 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/01.mp4 differ diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/combined_data.json.gz b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/combined_data.json.gz new file mode 100644 index 0000000..95a7b55 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/combined_data.json.gz differ diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/manifest.json b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/manifest.json new file mode 100644 index 0000000..6910825 --- /dev/null +++ b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/manifest.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "created_at": "2026-08-29T08:35:53.172587+00:00", + "device": "cpu", + "matting_mode": "off", + "resize": true, + "source_frame_count": 251, + "width": 720, + "height": 960, + "fps": 25.0, + "frame_count": 502, + "duration": 20.08, + "files": { + "01.mp4": 4291902, + "combined_data.json.gz": 154401, + "thumbnail.jpg": 34112 + } +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/thumbnail.jpg b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/thumbnail.jpg new file mode 100644 index 0000000..dd1cf75 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000005/assets/thumbnail.jpg differ diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/01.mp4 b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/01.mp4 new file mode 100644 index 0000000..0d832c6 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/01.mp4 differ diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/combined_data.json.gz b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/combined_data.json.gz new file mode 100644 index 0000000..60cd2f5 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/combined_data.json.gz differ diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/manifest.json b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/manifest.json new file mode 100644 index 0000000..a0b676b --- /dev/null +++ b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/manifest.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "created_at": "2026-08-29T08:37:30.778752+00:00", + "device": "cpu", + "matting_mode": "off", + "resize": true, + "source_frame_count": 251, + "width": 720, + "height": 960, + "fps": 25.0, + "frame_count": 502, + "duration": 20.08, + "files": { + "01.mp4": 3568366, + "combined_data.json.gz": 179829, + "thumbnail.jpg": 33782 + } +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/thumbnail.jpg b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/thumbnail.jpg new file mode 100644 index 0000000..2078530 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000006/assets/thumbnail.jpg differ diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/01.mp4 b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/01.mp4 new file mode 100644 index 0000000..261fdc8 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/01.mp4 differ diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/combined_data.json.gz b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/combined_data.json.gz new file mode 100644 index 0000000..6c7bbc7 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/combined_data.json.gz differ diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/manifest.json b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/manifest.json new file mode 100644 index 0000000..f9117a6 --- /dev/null +++ b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/manifest.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "created_at": "2026-08-29T08:39:03.216895+00:00", + "device": "cpu", + "matting_mode": "off", + "resize": true, + "source_frame_count": 251, + "width": 720, + "height": 960, + "fps": 25.0, + "frame_count": 502, + "duration": 20.08, + "files": { + "01.mp4": 4593812, + "combined_data.json.gz": 165007, + "thumbnail.jpg": 34187 + } +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/thumbnail.jpg b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/thumbnail.jpg new file mode 100644 index 0000000..bdef3b2 Binary files /dev/null and b/reports/instructors-v2-20260914/backup-local/a1000000000000000000000000000007/assets/thumbnail.jpg differ diff --git a/reports/instructors-v2-20260914/before-platform.json b/reports/instructors-v2-20260914/before-platform.json new file mode 100644 index 0000000..3bd3aba --- /dev/null +++ b/reports/instructors-v2-20260914/before-platform.json @@ -0,0 +1,128 @@ +{ + "code": 0, + "message": "success", + "data": { + "items": [ + { + "id": "a1000000000000000000000000000007", + "dataVersion": 9, + "name": "教员3", + "status": "ready", + "bundleReady": true, + "engineAuthorized": true, + "owner": "系统管理员", + "ownerId": "1", + "ownerName": "系统管理员", + "sourceType": "built_in", + "role": "装备维修教员", + "specialty": "装备维修教学", + "gender": "男", + "visibility": "internal", + "builtIn": true, + "default": false, + "voiceCapabilityId": "builtin-voice-male-gentle", + "voice": { + "capabilityId": "builtin-voice-male-gentle", + "speaker": 1, + "speed": 0.8, + "name": "温和男声" + }, + "frameCount": 502, + "width": 720, + "height": 960, + "duration": 20080, + "errorMessage": null, + "coverFileCode": null, + "coverUrl": "/avatars/builtin/equipment-instructor-3.png", + "previewFileCode": null, + "previewUrl": null, + "viewerUrl": "/human/viewer/a1000000000000000000000000000007", + "manifestUrl": "/human/api/v1/avatars/a1000000000000000000000000000007/assets/manifest.json", + "createdAt": "2026-08-29T13:42:19", + "updatedAt": "2026-08-29T17:09:14" + }, + { + "id": "a1000000000000000000000000000006", + "dataVersion": 10, + "name": "教员2", + "status": "ready", + "bundleReady": true, + "engineAuthorized": true, + "owner": "系统管理员", + "ownerId": "1", + "ownerName": "系统管理员", + "sourceType": "built_in", + "role": "装备维修教员", + "specialty": "装备维修教学", + "gender": "男", + "visibility": "internal", + "builtIn": true, + "default": true, + "voiceCapabilityId": "builtin-voice-male-gentle", + "voice": { + "capabilityId": "builtin-voice-male-gentle", + "speaker": 1, + "speed": 0.8, + "name": "温和男声" + }, + "frameCount": 502, + "width": 720, + "height": 960, + "duration": 20080, + "errorMessage": null, + "coverFileCode": null, + "coverUrl": "/avatars/builtin/equipment-instructor-2.png", + "previewFileCode": null, + "previewUrl": null, + "viewerUrl": "/human/viewer/a1000000000000000000000000000006", + "manifestUrl": "/human/api/v1/avatars/a1000000000000000000000000000006/assets/manifest.json", + "createdAt": "2026-08-29T13:42:17", + "updatedAt": "2026-08-29T17:09:14" + }, + { + "id": "a1000000000000000000000000000005", + "dataVersion": 8, + "name": "教员1", + "status": "ready", + "bundleReady": true, + "engineAuthorized": true, + "owner": "系统管理员", + "ownerId": "1", + "ownerName": "系统管理员", + "sourceType": "built_in", + "role": "装备维修教员", + "specialty": "装备维修教学", + "gender": "男", + "visibility": "internal", + "builtIn": true, + "default": false, + "voiceCapabilityId": "builtin-voice-male-gentle", + "voice": { + "capabilityId": "builtin-voice-male-gentle", + "speaker": 1, + "speed": 0.8, + "name": "温和男声" + }, + "frameCount": 502, + "width": 720, + "height": 960, + "duration": 20080, + "errorMessage": null, + "coverFileCode": null, + "coverUrl": "/avatars/builtin/equipment-instructor-1.png", + "previewFileCode": null, + "previewUrl": null, + "viewerUrl": "/human/viewer/a1000000000000000000000000000005", + "manifestUrl": "/human/api/v1/avatars/a1000000000000000000000000000005/assets/manifest.json", + "createdAt": "2026-08-29T13:42:15", + "updatedAt": "2026-08-29T17:09:14" + } + ], + "page": 1, + "pageSize": 200, + "total": 3, + "pages": 1 + }, + "timestamp": 1789401373462, + "requestId": "a1f1fb85dcc44405be3c0971fc59131c" +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/before-service.json b/reports/instructors-v2-20260914/before-service.json new file mode 100644 index 0000000..646bd54 --- /dev/null +++ b/reports/instructors-v2-20260914/before-service.json @@ -0,0 +1,59 @@ +[ + { + "id": "a1000000000000000000000000000005", + "name": "教员1", + "status": "ready", + "source_filename": "built_in:equipment-instructor-1", + "resize": true, + "matting_mode": "off", + "device": "cpu", + "frame_count": 502, + "width": 720, + "height": 960, + "duration": 20.08, + "error": "", + "created_at": "2026-08-30T16:30:15.680802+00:00", + "updated_at": "2026-09-01T14:18:39.459243+00:00", + "thumbnail_url": "/api/v1/avatars/a1000000000000000000000000000005/assets/thumbnail.jpg", + "viewer_url": "/viewer/a1000000000000000000000000000005", + "manifest_url": "/api/v1/avatars/a1000000000000000000000000000005/assets/manifest.json" + }, + { + "id": "a1000000000000000000000000000006", + "name": "教员2", + "status": "ready", + "source_filename": "built_in:equipment-instructor-2", + "resize": true, + "matting_mode": "off", + "device": "cpu", + "frame_count": 502, + "width": 720, + "height": 960, + "duration": 20.08, + "error": "", + "created_at": "2026-08-30T16:30:15.688395+00:00", + "updated_at": "2026-09-01T14:18:39.494195+00:00", + "thumbnail_url": "/api/v1/avatars/a1000000000000000000000000000006/assets/thumbnail.jpg", + "viewer_url": "/viewer/a1000000000000000000000000000006", + "manifest_url": "/api/v1/avatars/a1000000000000000000000000000006/assets/manifest.json" + }, + { + "id": "a1000000000000000000000000000007", + "name": "教员3", + "status": "ready", + "source_filename": "built_in:equipment-instructor-3", + "resize": true, + "matting_mode": "off", + "device": "cpu", + "frame_count": 502, + "width": 720, + "height": 960, + "duration": 20.08, + "error": "", + "created_at": "2026-08-30T16:30:15.696651+00:00", + "updated_at": "2026-09-01T14:18:39.543021+00:00", + "thumbnail_url": "/api/v1/avatars/a1000000000000000000000000000007/assets/thumbnail.jpg", + "viewer_url": "/viewer/a1000000000000000000000000000007", + "manifest_url": "/api/v1/avatars/a1000000000000000000000000000007/assets/manifest.json" + } +] \ No newline at end of file diff --git a/reports/instructors-v2-20260914/catalog-preview-1.png b/reports/instructors-v2-20260914/catalog-preview-1.png new file mode 100644 index 0000000..a44bf92 Binary files /dev/null and b/reports/instructors-v2-20260914/catalog-preview-1.png differ diff --git a/reports/instructors-v2-20260914/catalog-preview-2.png b/reports/instructors-v2-20260914/catalog-preview-2.png new file mode 100644 index 0000000..5e8745c Binary files /dev/null and b/reports/instructors-v2-20260914/catalog-preview-2.png differ diff --git a/reports/instructors-v2-20260914/catalog-preview-3.png b/reports/instructors-v2-20260914/catalog-preview-3.png new file mode 100644 index 0000000..7ae5bfd Binary files /dev/null and b/reports/instructors-v2-20260914/catalog-preview-3.png differ diff --git a/reports/instructors-v2-20260914/catalog-v2.png b/reports/instructors-v2-20260914/catalog-v2.png new file mode 100644 index 0000000..4e9fd46 Binary files /dev/null and b/reports/instructors-v2-20260914/catalog-v2.png differ diff --git a/reports/instructors-v2-20260914/catalog-validation.json b/reports/instructors-v2-20260914/catalog-validation.json new file mode 100644 index 0000000..854b5f4 --- /dev/null +++ b/reports/instructors-v2-20260914/catalog-validation.json @@ -0,0 +1,22 @@ +{ + "count": 3, + "defaultInstructor": 2, + "previews": [ + { + "number": 1, + "viewer": "/human/viewer/a1000000000000000000000000000005", + "ready": true + }, + { + "number": 2, + "viewer": "/human/viewer/a1000000000000000000000000000006", + "ready": true + }, + { + "number": 3, + "viewer": "/human/viewer/a1000000000000000000000000000007", + "ready": true + } + ], + "errors": [] +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/final-validation.json b/reports/instructors-v2-20260914/final-validation.json new file mode 100644 index 0000000..8b38c44 --- /dev/null +++ b/reports/instructors-v2-20260914/final-validation.json @@ -0,0 +1,16 @@ +{ + "identitiesPreserved": true, + "defaultInstructor": 2, + "voicesPreserved": true, + "platformCount": 3, + "runtimeAssetHashesMatch": true, + "imageAssetHashesMatch": true, + "localAndPublishedCoversUpdated": true, + "temporaryAvatarsRemoved": [ + "b11e725a21c44b8a8499ee76cfbc8737", + "73339bc579334a8abf2696d9c4944b87", + "15606bd2b60a4d11951c21907968c3dc" + ], + "oldLectureVideosAndAudioPreserved": true, + "scope": "Resource regeneration and runtime playback verified; phoneme-level lip sync quality not accepted by this check." +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/generated-1-idle.png b/reports/instructors-v2-20260914/generated-1-idle.png new file mode 100644 index 0000000..31ebe77 Binary files /dev/null and b/reports/instructors-v2-20260914/generated-1-idle.png differ diff --git a/reports/instructors-v2-20260914/generated-1-speaking.png b/reports/instructors-v2-20260914/generated-1-speaking.png new file mode 100644 index 0000000..e3af984 Binary files /dev/null and b/reports/instructors-v2-20260914/generated-1-speaking.png differ diff --git a/reports/instructors-v2-20260914/generated-2-idle.png b/reports/instructors-v2-20260914/generated-2-idle.png new file mode 100644 index 0000000..fa23da1 Binary files /dev/null and b/reports/instructors-v2-20260914/generated-2-idle.png differ diff --git a/reports/instructors-v2-20260914/generated-2-speaking.png b/reports/instructors-v2-20260914/generated-2-speaking.png new file mode 100644 index 0000000..45a45e9 Binary files /dev/null and b/reports/instructors-v2-20260914/generated-2-speaking.png differ diff --git a/reports/instructors-v2-20260914/generated-3-idle.png b/reports/instructors-v2-20260914/generated-3-idle.png new file mode 100644 index 0000000..697e24f Binary files /dev/null and b/reports/instructors-v2-20260914/generated-3-idle.png differ diff --git a/reports/instructors-v2-20260914/generated-3-speaking.png b/reports/instructors-v2-20260914/generated-3-speaking.png new file mode 100644 index 0000000..0483812 Binary files /dev/null and b/reports/instructors-v2-20260914/generated-3-speaking.png differ diff --git a/reports/instructors-v2-20260914/generated-validation.json b/reports/instructors-v2-20260914/generated-validation.json new file mode 100644 index 0000000..14f98b6 --- /dev/null +++ b/reports/instructors-v2-20260914/generated-validation.json @@ -0,0 +1,92 @@ +[ + { + "number": 1, + "stable_id": "a1000000000000000000000000000005", + "generated_id": "b11e725a21c44b8a8499ee76cfbc8737", + "manifest": { + "version": 1, + "created_at": "2026-09-14T15:57:38.109202+00:00", + "device": "cpu", + "matting_mode": "off", + "resize": true, + "source_frame_count": 251, + "width": 720, + "height": 960, + "fps": 25.0, + "frame_count": 502, + "duration": 20.08, + "files": { + "01.mp4": 3959109, + "combined_data.json.gz": 147484, + "thumbnail.jpg": 31865 + } + }, + "geometry_type": "dict", + "sha256": { + "01.mp4": "001912f1bfd2242b22adb473d3e94ce1c5781085c43ca1184db0660adc26c521", + "combined_data.json.gz": "7b00847d2ed6eacebe58fe5b43a8e27fb6efea252af743c2aebaaa1cfe430d79", + "thumbnail.jpg": "67a5e13059a48b06b0a6e7b80cd7d9b72d0bb6afc6aba449432a51190e6e7733", + "manifest.json": "8155a21af68b60ea024c7591c8ad454aa9884a2c7d22cb069c16bb192bc4e122" + } + }, + { + "number": 2, + "stable_id": "a1000000000000000000000000000006", + "generated_id": "73339bc579334a8abf2696d9c4944b87", + "manifest": { + "version": 1, + "created_at": "2026-09-14T15:58:35.155627+00:00", + "device": "cpu", + "matting_mode": "off", + "resize": true, + "source_frame_count": 251, + "width": 720, + "height": 960, + "fps": 25.0, + "frame_count": 502, + "duration": 20.08, + "files": { + "01.mp4": 3644994, + "combined_data.json.gz": 171386, + "thumbnail.jpg": 34436 + } + }, + "geometry_type": "dict", + "sha256": { + "01.mp4": "2f6b0d0302d6e87db20f71e2a76449a69834f66290795af3655348b920fb9197", + "combined_data.json.gz": "b347b72949430d72299a1d2333a6c215ec759c6091144569b5c21f9938e64c6b", + "thumbnail.jpg": "a8ee39c0f0e96ef8878f1218527513b3fb1b675fd46fcc3109197d1b65fdadc2", + "manifest.json": "a508cf8af21db8148509d6c64667d1dce3587a57fcce4a4d5e66ab1062a9d522" + } + }, + { + "number": 3, + "stable_id": "a1000000000000000000000000000007", + "generated_id": "15606bd2b60a4d11951c21907968c3dc", + "manifest": { + "version": 1, + "created_at": "2026-09-14T15:59:28.067630+00:00", + "device": "cpu", + "matting_mode": "off", + "resize": true, + "source_frame_count": 251, + "width": 720, + "height": 960, + "fps": 25.0, + "frame_count": 502, + "duration": 20.08, + "files": { + "01.mp4": 4111377, + "combined_data.json.gz": 156012, + "thumbnail.jpg": 33681 + } + }, + "geometry_type": "dict", + "sha256": { + "01.mp4": "e7a0df84b35faba46605d26f3d6ca83e682e964f4f63561d4d370d7a3ce528f1", + "combined_data.json.gz": "2c313f2a22ae0a8a2848ef6576fba1ac77491fc26c9f0f9dbff72f0660cd46cc", + "thumbnail.jpg": "fc9848fac6afba7ac4f7f9462abf82a4b97a08416fd7c23fdfed9a224f8dccfe", + "manifest.json": "7bf78941670b418f003b370ca804c0df89412902bb48996e59a1ec36bd5f7491" + } + } +] \ No newline at end of file diff --git a/reports/instructors-v2-20260914/generated-viewer-validation.json b/reports/instructors-v2-20260914/generated-viewer-validation.json new file mode 100644 index 0000000..4f38b59 --- /dev/null +++ b/reports/instructors-v2-20260914/generated-viewer-validation.json @@ -0,0 +1,104 @@ +[ + { + "number": 1, + "avatarId": "b11e725a21c44b8a8499ee76cfbc8737", + "driver": { + "frames": 231, + "active": 231, + "maxBlend": 53.525753021240234 + }, + "events": [ + { + "type": "digital-human.ready", + "avatarId": "b11e725a21c44b8a8499ee76cfbc8737" + }, + { + "type": "digital-human.speaking-start", + "avatarId": "b11e725a21c44b8a8499ee76cfbc8737", + "requestId": "v2-validation", + "duration": 8.256 + }, + { + "type": "digital-human.command-accepted", + "avatarId": "b11e725a21c44b8a8499ee76cfbc8737", + "requestId": "v2-validation", + "command": "digital-human.play-audio" + }, + { + "type": "digital-human.speaking-end", + "avatarId": "b11e725a21c44b8a8499ee76cfbc8737", + "requestId": "v2-validation", + "reason": "ended" + } + ], + "errors": [] + }, + { + "number": 2, + "avatarId": "73339bc579334a8abf2696d9c4944b87", + "driver": { + "frames": 221, + "active": 221, + "maxBlend": 53.525753021240234 + }, + "events": [ + { + "type": "digital-human.ready", + "avatarId": "73339bc579334a8abf2696d9c4944b87" + }, + { + "type": "digital-human.speaking-start", + "avatarId": "73339bc579334a8abf2696d9c4944b87", + "requestId": "v2-validation", + "duration": 8.256 + }, + { + "type": "digital-human.command-accepted", + "avatarId": "73339bc579334a8abf2696d9c4944b87", + "requestId": "v2-validation", + "command": "digital-human.play-audio" + }, + { + "type": "digital-human.speaking-end", + "avatarId": "73339bc579334a8abf2696d9c4944b87", + "requestId": "v2-validation", + "reason": "ended" + } + ], + "errors": [] + }, + { + "number": 3, + "avatarId": "15606bd2b60a4d11951c21907968c3dc", + "driver": { + "frames": 213, + "active": 213, + "maxBlend": 53.52582931518555 + }, + "events": [ + { + "type": "digital-human.ready", + "avatarId": "15606bd2b60a4d11951c21907968c3dc" + }, + { + "type": "digital-human.speaking-start", + "avatarId": "15606bd2b60a4d11951c21907968c3dc", + "requestId": "v2-validation", + "duration": 8.256 + }, + { + "type": "digital-human.command-accepted", + "avatarId": "15606bd2b60a4d11951c21907968c3dc", + "requestId": "v2-validation", + "command": "digital-human.play-audio" + }, + { + "type": "digital-human.speaking-end", + "avatarId": "15606bd2b60a4d11951c21907968c3dc", + "requestId": "v2-validation", + "reason": "ended" + } + ], + "errors": [] + } +] \ No newline at end of file diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/01.mp4 b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/01.mp4 new file mode 100644 index 0000000..4a94ab2 Binary files /dev/null and b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/01.mp4 differ diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/combined_data.json.gz b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/combined_data.json.gz new file mode 100644 index 0000000..9a252ac Binary files /dev/null and b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/combined_data.json.gz differ diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/manifest.json b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/manifest.json new file mode 100644 index 0000000..b493687 --- /dev/null +++ b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/manifest.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "created_at": "2026-09-14T15:57:38.109202+00:00", + "device": "cpu", + "matting_mode": "off", + "resize": true, + "source_frame_count": 251, + "width": 720, + "height": 960, + "fps": 25.0, + "frame_count": 502, + "duration": 20.08, + "files": { + "01.mp4": 3959109, + "combined_data.json.gz": 147484, + "thumbnail.jpg": 31865 + } +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/thumbnail.jpg b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/thumbnail.jpg new file mode 100644 index 0000000..b02c90c Binary files /dev/null and b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000005/assets/thumbnail.jpg differ diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/01.mp4 b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/01.mp4 new file mode 100644 index 0000000..c6a160a Binary files /dev/null and b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/01.mp4 differ diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/combined_data.json.gz b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/combined_data.json.gz new file mode 100644 index 0000000..f5d7eb6 Binary files /dev/null and b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/combined_data.json.gz differ diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/manifest.json b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/manifest.json new file mode 100644 index 0000000..21d1e2a --- /dev/null +++ b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/manifest.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "created_at": "2026-09-14T15:58:35.155627+00:00", + "device": "cpu", + "matting_mode": "off", + "resize": true, + "source_frame_count": 251, + "width": 720, + "height": 960, + "fps": 25.0, + "frame_count": 502, + "duration": 20.08, + "files": { + "01.mp4": 3644994, + "combined_data.json.gz": 171386, + "thumbnail.jpg": 34436 + } +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/thumbnail.jpg b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/thumbnail.jpg new file mode 100644 index 0000000..9987430 Binary files /dev/null and b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000006/assets/thumbnail.jpg differ diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/01.mp4 b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/01.mp4 new file mode 100644 index 0000000..75a778d Binary files /dev/null and b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/01.mp4 differ diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/combined_data.json.gz b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/combined_data.json.gz new file mode 100644 index 0000000..b683b83 Binary files /dev/null and b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/combined_data.json.gz differ diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/manifest.json b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/manifest.json new file mode 100644 index 0000000..66608d0 --- /dev/null +++ b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/manifest.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "created_at": "2026-09-14T15:59:28.067630+00:00", + "device": "cpu", + "matting_mode": "off", + "resize": true, + "source_frame_count": 251, + "width": 720, + "height": 960, + "fps": 25.0, + "frame_count": 502, + "duration": 20.08, + "files": { + "01.mp4": 4111377, + "combined_data.json.gz": 156012, + "thumbnail.jpg": 33681 + } +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/thumbnail.jpg b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/thumbnail.jpg new file mode 100644 index 0000000..c6d8b7b Binary files /dev/null and b/reports/instructors-v2-20260914/generated/a1000000000000000000000000000007/assets/thumbnail.jpg differ diff --git a/reports/instructors-v2-20260914/image-validation.json b/reports/instructors-v2-20260914/image-validation.json new file mode 100644 index 0000000..18b9fae --- /dev/null +++ b/reports/instructors-v2-20260914/image-validation.json @@ -0,0 +1,20 @@ +{ + "a1000000000000000000000000000005": { + "01.mp4": "001912f1bfd2242b22adb473d3e94ce1c5781085c43ca1184db0660adc26c521", + "combined_data.json.gz": "7b00847d2ed6eacebe58fe5b43a8e27fb6efea252af743c2aebaaa1cfe430d79", + "thumbnail.jpg": "67a5e13059a48b06b0a6e7b80cd7d9b72d0bb6afc6aba449432a51190e6e7733", + "manifest.json": "8155a21af68b60ea024c7591c8ad454aa9884a2c7d22cb069c16bb192bc4e122" + }, + "a1000000000000000000000000000006": { + "01.mp4": "2f6b0d0302d6e87db20f71e2a76449a69834f66290795af3655348b920fb9197", + "combined_data.json.gz": "b347b72949430d72299a1d2333a6c215ec759c6091144569b5c21f9938e64c6b", + "thumbnail.jpg": "a8ee39c0f0e96ef8878f1218527513b3fb1b675fd46fcc3109197d1b65fdadc2", + "manifest.json": "a508cf8af21db8148509d6c64667d1dce3587a57fcce4a4d5e66ab1062a9d522" + }, + "a1000000000000000000000000000007": { + "01.mp4": "e7a0df84b35faba46605d26f3d6ca83e682e964f4f63561d4d370d7a3ce528f1", + "combined_data.json.gz": "2c313f2a22ae0a8a2848ef6576fba1ac77491fc26c9f0f9dbff72f0660cd46cc", + "thumbnail.jpg": "fc9848fac6afba7ac4f7f9462abf82a4b97a08416fd7c23fdfed9a224f8dccfe", + "manifest.json": "7bf78941670b418f003b370ca804c0df89412902bb48996e59a1ec36bd5f7491" + } +} \ No newline at end of file diff --git a/reports/instructors-v2-20260914/index.html b/reports/instructors-v2-20260914/index.html new file mode 100644 index 0000000..5caffc7 --- /dev/null +++ b/reports/instructors-v2-20260914/index.html @@ -0,0 +1,25 @@ + +
2026-09-15 · 已替换共享生成服务、镜像、源码资源包与封面。原有三条形象记录、默认教员2、声音配置保持不变。
+
+
+ 720 × 960 · 25 FPS · 502 帧
原编号:a1000000000000000000000000000005
+
+
+ 720 × 960 · 25 FPS · 502 帧
原编号:a1000000000000000000000000000006
+
+
+ 720 × 960 · 25 FPS · 502 帧
原编号:a1000000000000000000000000000007
三位原编号均已完成实时加载、语音开始/结束、嘴部驱动与资源哈希核验,未出现运行错误。本次检查不代表“嘴型与每个音节完全吻合”已验收。
约10秒的原始视频会生成正放/倒放循环底片,时长20.08秒。本报告中的实时形象预览展示无声底片;语音驱动测试的截图及记录已保留。之前生成的讲解 MP4 和 WAV 均保留,没有自动重新生成。
本次用于驱动验证的讲解音频(单独试听,不联动上方预览):
+
+
+ 720 × 960 · 25 FPS · 502 帧
原编号:{ident}
2026-09-15 · 已替换共享生成服务、镜像、源码资源包与封面。原有三条形象记录、默认教员2、声音配置保持不变。
三位原编号均已完成实时加载、语音开始/结束、嘴部驱动与资源哈希核验,未出现运行错误。本次检查不代表“嘴型与每个音节完全吻合”已验收。
约10秒的原始视频会生成正放/倒放循环底片,时长20.08秒。本报告中的实时形象预览展示无声底片;语音驱动测试的截图及记录已保留。之前生成的讲解 MP4 和 WAV 均保留,没有自动重新生成。
本次用于驱动验证的讲解音频(单独试听,不联动上方预览):