fredyfx/DEFCON-LaVilla-TranslationProject

GitHub: fredyfx/DEFCON-LaVilla-TranslationProject

DEFCON-LaVilla-TranslationProject是一个用于视频字幕翻译和语义搜索的工具。

Stars: 4 | Forks: 1

# DEFCON-LaVilla-翻译项目 让我们通过提供字幕来将 DEFCON 的覆盖范围扩展到其他语言。该项目是创建语义搜索引擎的核心,也是一个用于存储类似 imdb.com Imaigne 这样的信息的仓库,您可以通过内容搜索视频,而不仅仅是标题或作者,想象一下您可以用您自己的语言观看视频。 # 逻辑: 视频 -> 提取音频 -> WhisperX -> 生成 VTT 文件(字幕)-> 使用 OpenAI 翻译该文本 -> 生成目标语言的新 VTT。 请记住安装 FFMPEG https://ffmpeg.org/ ## Español: 要使这个笔记工作,需要相当多的耐心,特别是由于使用了 CUDA。 首先,我们创建一个虚拟环境: ``` python -m venv whisperx311 ``` 注意,311 只是一个名称。 然后,我们激活刚刚创建的虚拟环境: ``` cd whisperx311 cd Scripts activate ``` 返回初始文件夹并安装 whisperx: ``` pip install whisperx ``` 我们继续覆盖库,使其工作得尽可能好(当前日期 2025 年 7 月 26 日) ``` pip install torch torchaudio torchvision --index-url https://download.pytorch.org/whl/nightly/cu128 --force-reinstall --no-cache-dir ``` 现在,是复杂的部分... 当运行时,它会给我们一个严重的错误。为了解决这个问题: https://developer.nvidia.com/cudnn-downloads 前往存档:https://developer.nvidia.com/cudnn-archive cudnn-windows-x86_64-8.9.7.29_cuda12-archive.zip 从该 zip 文件和 "bin" 文件夹中提取内容 将以下两个文件复制到以下路径: ``` C:\Dev\DEFCON-LaVillaProject\whisperx311\Lib\site-packages\torch\lib ``` 现在,运行它,它应该可以正常工作。 ## English Getting this to work requires a fair amount of patience, especially since it uses CUDA. First, we create a virtual environment: ``` python -m venv whisperx311 ``` NOTE: 311 is just the name. Then, we activate the virtual environment that we just created: ``` cd whisperx311 cd Scripts activate ``` Let's return to the initial folder and install whisperx ``` pip install whisperx ``` We proceed to overwrite the libraries so that it works exactly as it should (current date July 26 - 2025) ``` pip install torch torchaudio torchvision --index-url https://download.pytorch.org/whl/nightly/cu128 --force-reinstall --no-cache-dir ``` Now comes the tricky part... When running, it gives us a major error. In order to fix it: https://developer.nvidia.com/cudnn-downloads Go to the archive: https://developer.nvidia.com/cudnn-archive cudnn-windows-x86_64-8.9.7.29_cuda12-archive.zip We extract the contents of that zip and the "bin" folder Copy these two files: - cudnn_ops_infer64_8 - cudnn_cnn_infer64_8 to the following path: ``` C:\Dev\DEFCON-LaVillaProject\whisperx311\Lib\site-packages\torch\lib ``` Now, run it and it should work fine. # 总体想法 首先,从 DEFCON 的 FTP 服务器获取所有文件,这将有助于能够对文件进行哈希处理。然后我会解释原因。 那么,这怎么做到? 我们创建一个名为 `cons` 的文件夹,并在其中创建一个名为 `DEF CON` 的另一个文件夹。 考虑到在完成 DEFCON 之后,我们可以用 `InfoCon` https://infocon.org/ 中的其他内容来扩展项目,因此保持 `"cons/DEF CON"` 的结构很重要。 考虑到您正在使用某种 Linux 发行版或从 Windows 使用 WSL,请执行以下命令: ``` wget -r -N -np --cut-dirs=0 -A "*.pdf,*.PDF,*.pDF,*.pdF,*pDF,*.PDf,*.mp4,*.MP4,*.Mp4,*.mP4,*.srt,*.Srt,*.SRt,*.SRT,*.sRT,*.srT" --directory-prefix=. --no-host-directories media.defcon.org ``` 此命令仅下载 PDF、mp4 和 srt 文件(对于项目的目标,.zip、.rar、.7zip 等文件是不必要的)。 解释: `-r`(递归) `-N` 这是对时间戳的,比较本地文件与远程文件,并仅下载新文件或如果本地不存在,则从远程下载,同样,避免下载未更改的文件。 `-np`(无父级)这避免了进入“上方”文件夹,即从 `"/files/docs"` 到 `"files"`,我们确保 `wget` 保持特定路径。 `--cut-dirs=X` 其中 X 是一个数字,在这种情况下是 `0`,这很复杂,为了简单起见,举一个例子: ``` ftp://server.com/dir1/dir2/dir3/ ↑ ↑ ↑ 1 2 3 = --cut-dirs=3 ``` `-A` Accept/download 仅下载与模式匹配的文件。在代码中我们有 PDF、MP4 和 SRT 文件。 `--directory-prefix=` 这告诉您文件将下载到何处。没有这个,它将记录在您工作的确切位置。 `--no-host-directories` 通过这个,我们忘记了有一个以服务器名称命名的新文件夹。 现在,我们已经下载了服务器,我们将所有文件组织到一个数据库中,以便可以查看: - 完整路径。 - 文件名。 - 文件类型。 - 哈希。 - 状态(进行中、已完成、未开始)。 现在,让我们来做些有趣的事情: - 创建一个具有用户令牌的 Web API。 - 这是为了识别合作者。 - 了解合作者后,发布一份荣誉名单,以表彰他们对这次冒险的支持。 那么,计划是什么? 1. 在支持项目的网站上注册。 2. 获取令牌(一个简单的 GUID)。 3. 在网站上查看,视频列表(进行中、已完成、未开始)。 4. 通过 DEFCON 的 FTP 下载视频。这样我们就可以标准化路径和圣药。 5. 将令牌添加到(尚未编写的)代码中,并开始处理。 6. 处理的结果是发送包含视频哈希的 txt/md/json/vtt/src 文件。 结果? 1. 拥有一个西班牙语、葡萄牙语或其他语言的字幕视频列表。 2. 拥有材料后,我们就可以进行下一步,即创建视频摘要(可能是类似 netflix 的类型!!! DEFCONFLIX xD!!!!)。 3. 我们可以创建材料的投票排名,不仅仅是 +1 或 -1,我们可以评估技术级别(1-5),以及其他变量。 4. 人类验证合作者对翻译和其他文本的验证,这对于下一步至关重要。 5. 由于我们有每个视频的全部文本,我们可以将其与 LLM 集成并执行语义搜索。 # VTT 文件编辑工具 这是我一直在努力工作的东西,以便更方便地编辑 VTT 文件,而且,我也想分享它,我相信更多的人会从中受益。 此外,我确信,如果我们能将所有内容集中起来,这将使我们能够更快地进行视频文本的验证。 这个项目部分是用 Angular 实现的,想法是让它在一个服务器上运行,或者简单地执行 `ng server` 并出发! # 语义搜索 想象一下搜索 ESP32 并显示所有与该术语相关的视频? 然后,如果您想包含 "Flipper Zero" 这个术语呢? 搜索越来越精确,生成越来越符合术语的结果,这不仅仅是一个 `"like %term%"`。 对于 UI: - 一个文本框,用于输入术语。 - 一个包含已进入搜索的标签列表。 - 一个包含视频的列表,按与术语的排名顺序排列。 # 联系方式 如果您对此感兴趣,想要合作,无论是代码、想法、处理、还是某种类型的赞助,您知道如何找到我(`@fredyfx` 在 Twitter、Telegram、Linkedin、IG)。
标签:Vectored Exception Handling, 逆向工具