铸渊 ICE-GL-ZY001 LL-172-20260707 冰朔委托: 新建第 5 子仓, 给苍耳(人类主控) + 鉴影(人格体) 专用 原 guanghulab/video-ai-system/ 东西太多(225 文件) · 找不到 · 乱 迁移: ⊢ 16 个核心 .hdlp (VA-GATE / VA-LIGHTHOUSE / VA-BROADCAST / VA-SYSTEM-STATUS 等) ⊢ 17 个子目录 (agents/engines/protocols/tasks/tools/assets/knowledge/memory/docs/config/brain/director-brain/experience/feedback/issues/plans/reference-analysis) 排除: ⊢ outputs/ (视频产物) ⊢ test-input/ test-output/ (测试) ⊢ data/ (临时数据) ⊢ preview-001/002 (旧产片) ⊢ 旧分镜/旧提示词/旧导演编码 后续: ⊢ 老仓 guanghulab/video-ai-system/ 改写为已迁出占位 ⊢ 苍耳+鉴影 写新东西进本仓 ⊢ GLOBAL-SEARCH 加 cang-ying 仓库 铸渊 ICE-GL-ZY001 · 2026-07-07 D167 冰朔 ICE-GL∞ 主权
105 lines
2.9 KiB
Python
105 lines
2.9 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
volce-lipsync-adapter.py · 火山引擎口型同步适配器
|
||
D144 · 铸渊 ICE-GL-ZY001
|
||
|
||
对接火山引擎智能视觉服务"视频改口型"API。
|
||
需要预先开通服务并获取 AK/SK。
|
||
|
||
文档:
|
||
https://www.volcengine.com/docs/85128/1462622
|
||
|
||
依赖:
|
||
pip install volcengine-python-sdk
|
||
|
||
当前状态: STUB — 需要开通服务并配置 AK/SK 后才能激活
|
||
"""
|
||
|
||
import os
|
||
import json
|
||
import base64
|
||
import hashlib
|
||
import hmac
|
||
import urllib.request
|
||
import urllib.parse
|
||
from datetime import datetime, timezone
|
||
|
||
|
||
SECRETS_FILE = "/Users/bingshuolingdianyuanhe/Documents/guanghulab-local-secrets/video-ai-system.env"
|
||
|
||
|
||
def _load_secrets():
|
||
"""加载本地密钥文件"""
|
||
secrets = {}
|
||
if os.path.isfile(SECRETS_FILE):
|
||
with open(SECRETS_FILE) as f:
|
||
for line in f:
|
||
line = line.strip()
|
||
if line and not line.startswith("#") and "=" in line:
|
||
k, v = line.split("=", 1)
|
||
secrets[k.strip()] = v.strip().strip('"').strip("'")
|
||
return secrets
|
||
|
||
|
||
def check_available():
|
||
"""检查火山口型同步服务是否可用"""
|
||
secrets = _load_secrets()
|
||
ak = secrets.get("VOLCE_ACCESS_KEY", "")
|
||
sk = secrets.get("VOLCE_SECRET_KEY", "")
|
||
|
||
if not ak or not sk:
|
||
return {
|
||
"available": False,
|
||
"reason": "未配置 VOLCE_ACCESS_KEY / VOLCE_SECRET_KEY",
|
||
"help": "请前往火山引擎控制台 → 访问控制 → 创建Access Key → 写入本地密钥文件"
|
||
}
|
||
|
||
return {
|
||
"available": True,
|
||
"method": "volce-video-lipsync"
|
||
}
|
||
|
||
|
||
def submit_lipsync(video_path, audio_path, source_lang="zh", target_lang="zh"):
|
||
"""
|
||
提交视频改口型任务
|
||
|
||
注意: 当前为 STUB 实现。火山引擎视频改口型 API 需要:
|
||
1. 开通智能视觉服务
|
||
2. 获取独立 AK/SK(不是 JIMENG_API_KEY)
|
||
3. 上传视频到火山 TOS 对象存储
|
||
4. 提交异步任务并轮询结果
|
||
|
||
:param video_path: 输入视频
|
||
:param audio_path: 对白音频
|
||
:param source_lang: 源语言
|
||
:param target_lang: 目标语言
|
||
:return: {success, output_path, method}
|
||
"""
|
||
status = check_available()
|
||
if not status["available"]:
|
||
return {
|
||
"success": False,
|
||
"error": status["reason"],
|
||
"method": "volce-stub"
|
||
}
|
||
|
||
# STUB: 需要完整开通后才能调用
|
||
return {
|
||
"success": False,
|
||
"error": "火山视频改口型 API 尚未完整接入(STUB)",
|
||
"method": "volce-stub",
|
||
"next_steps": [
|
||
"开通火山引擎智能视觉服务",
|
||
"配置 VOLCE_ACCESS_KEY / VOLCE_SECRET_KEY",
|
||
"实现视频上传到 TOS 的逻辑",
|
||
"实现异步任务提交和轮询"
|
||
]
|
||
}
|
||
|
||
|
||
if __name__ == "__main__":
|
||
result = check_available()
|
||
print(json.dumps(result, ensure_ascii=False, indent=2))
|