# AI游戏口播视频剪辑 **Repository Path**: caodaimin/aiyxspjj ## Basic Information - **Project Name**: AI游戏口播视频剪辑 - **Description**: 专注于AI技术在游戏口播视频剪辑中的应用,提供自动化剪辑、智能配音等功能,助力开发者高效创作高质量游戏视频内容。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-02-03 - **Last Updated**: 2026-02-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AIYXSPJJ - AI 语音视频生成工具 一个基于 Python 的 AI 语音视频生成工具,支持语音合成、声音克隆、视频处理和字幕生成。 ## 功能特性 - **语音合成 (TTS)**: 支持多种 TTS 引擎,包括讯飞和智谱 AI - **声音克隆**: 基于参考音频复刻个性化音色 - **视频处理**: 智能生成竖屏短视频,支持多视频片段拼接 - **字幕生成**: 自动生成 ASS 格式字幕文件,支持关键词高亮 - **音频处理**: 语音变速、音量调整、背景音乐混音 ## 目录结构 ``` ├── assets/ # 资源文件目录 │ ├── bgm.mp3 # 背景音乐 │ ├── my_voice.mp3 # 参考音频(用于声音克隆) │ └── *.mp3 # 其他音频资源 ├── input/ # 输入视频目录 ├── output/ # 输出文件目录 │ └── _work/ # 临时工作文件 ├── templates/ # 模板文件 │ └── subtitle.ass.tpl # ASS 字幕模板 ├── utils/ # 工具模块 │ ├── manbo_tts.py # 满车 TTS 引擎 │ └── zhipu_tts.py # 智谱 AI TTS 引擎 ├── jj.py # 主程序入口 └── *.py # 调试脚本和测试文件 ``` ## 快速开始 ### 环境要求 - Python 3.8+ - FFmpeg - 必要的 Python 依赖包 ### 安装依赖 ```bash pip install -r requirements.txt ``` 确保系统已安装 [FFmpeg](https://ffmpeg.org/),并将其添加到系统 PATH。 ### 配置说明 在 `jj.py` 中配置 API Key: ```python # 设置智谱 AI API Key os.environ["ZHIPU_API_KEY"] = "your_api_key_here" ``` ### 使用方法 #### 1. 声音克隆 使用参考音频复刻音色: ```python from utils.zhipu_tts import ZhipuTTS tts = ZhipuTTS(api_key="your_api_key") tts.create_voice_from_file( ref_audio_path="assets/my_voice.mp3", voice_name="my_voice", voice_text="这是一个测试音频,用于音色复刻。" ) ``` #### 2. 生成语音 ```python from utils.zhipu_tts import ZhipuTTS tts = ZhipuTTS(api_key="your_api_key") audio_bytes = tts.generate_speech("你好,这是测试文本", voice="my_voice") ``` #### 3. 完整视频生成流程 ```python from jj import ( split_sentences, build_voice_and_timings, render_ass, make_vertical_clip, mux_with_voice_bgm_and_subtitles ) # 1. 分割文本 sentences = split_sentences("你的文本内容") # 2. 生成语音和字幕时间轴 voice_wav, timings = build_voice_and_timings( sentences=sentences, keywords=["关键词1", "关键词2"], work="output/_work" ) # 3. 渲染字幕文件 render_ass(timings, "templates/subtitle.ass.tpl", "output/_work/sub.ass") # 4. 生成竖屏视频 make_vertical_clip( in_videos=["input/video1.mp4", "input/video2.mp4"], out_video="output/_work/vertical.mp4" ) # 5. 混流最终视频 mux_with_voice_bgm_and_subtitles( vertical_video="output/_work/vertical.mp4", voice_wav="output/_work/voice.wav", ass_path="output/_work/sub.ass", out_mp4="output/final.mp4" ) ``` ## 核心 API ### 语音合成模块 #### `ZhipuTTS` 智谱 AI 语音合成引擎。 - `__init__(api_key: str)` - 初始化引擎 - `generate_speech(text: str, voice: str = "tongtong", model: str = "glm-tts") -> bytes` - 生成语音 - `create_voice_from_file(ref_audio_path: str, voice_name: str = "my_voice", voice_text: str = "...")` - 创建克隆音色 #### `ManboTTS` 满车语音合成引擎。 - `generate_speech(text: str) -> bytes` - 生成语音 ### 视频处理模块 | 函数 | 功能 | |------|------| | `ffprobe_duration(video_path: str) -> float` | 获取视频时长 | | `make_vertical_clip(in_videos: List[str], out_video: str)` | 生成竖屏视频 | | `make_vertical_clip_wrapper(videos: List[str], out_video: str)` | 包装函数,确保 60 秒时长 | | `mux_with_voice_bgm_and_subtitles(...)` | 混流视频、语音、字幕 | ### 字幕处理模块 | 函数 | 功能 | |------|------| | `split_sentences(text: str) -> List[str]` | 智能断句 | | `highlight_keywords(line: str, keywords: List[str]) -> str` | 关键词高亮 | | `render_ass(timings: List[Tuple[float, float, str]], ...)` | 渲染 ASS 字幕 | ### 音频处理模块 | 函数 | 功能 | |------|------| | `process_audio_speed(in_file: str, out_file: str, speed: float) -> bool` | 变速处理 | | `check_audio_streams(video_path: str)` | 检查音频流 | | `check_wav_volume(wav_path: str)` | 检测音量 | ## 调试工具 | 文件 | 用途 | |------|------| | `debug_transcribe.py` | 音频转写测试 | | `debug_tts.py` | TTS 功能调试 | | `debug_voice_params.py` | 语音参数调试 | | `test_clone_and_speak.py` | 声音克隆测试 | | `test_full_flow.py` | 完整流程测试 | | `inspect_speech.py` | 音频分析工具 | | `try_formats.py` | 格式测试 | ## 常见问题 **Q: 视频生成时间太长?** A: 确保 FFmpeg 已正确安装,检查网络连接(API 调用)。 **Q: 声音克隆效果不佳?** A: 提供清晰的参考音频(无背景音、音量适中),语音文本与参考音频内容匹配。 **Q: 字幕时间轴不对?** A: 检查 TTS 返回的音频时长与文本长度的匹配度。 ## 许可证 本项目仅供学习和研究使用。 ## 贡献指南 欢迎提交 Issue 和 Pull Request。