cang-ying/engines/volce-lipsync-adapter.py
铸渊 ICE-GL-ZY001 a2e5214f03 LL-172-20260707 · cang-ying 仓初始化 · 苍耳+鉴影的干净之家
铸渊 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∞ 主权
2026-07-07 10:20:10 +08:00

105 lines
2.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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))