Dev Tools
在 Linux 中使用 Ventoy 制作 Windows 启动盘
Ventoy 是一个开源的多系统启动 U 盘解决方案,支持直接从 ISO/WIM/VHD(x)/EFI 文件启动,无需反复格式化 U 盘。
1. 准备工作
1.1 获取 Windows ISO 镜像
三选一,建议使用非官方源(Microsoft 官网可能会有神秘报错):
- OS.click(推荐):https://os.click/en
- UUP dump:https://uupdump.net/
- Microsoft 官网:https://www.microsoft.com/software-download/windows11
下载完成后校验文件:
sha256sum windows11.iso
2. 安装 Ventoy
2.1 下载 Ventoy
访问 Ventoy 官网 下载 Linux 版本安装包,例如 ventoy-1.0.00-linux.tar.gz。
解压安装包:
tar -xzf ventoy-1.0.00-linux.tar.gz
cd ventoy-1.0.00
2.2 使用 WebUI 制作 Windows 启动盘
Ventoy 提供了 WebUI 图形化界面,推荐使用此方式安装,GUI 版本可能导致未响应。
- 启动 WebUI 服务器:
sudo ./VentoyWeb.sh
启动后会显示以下提示信息:
===============================================================
Ventoy Server 1.1.07 is running ...
Please open your browser and visit http://127.0.0.1:24680
===============================================================
################## Press Ctrl + C to exit #####################
- 打开浏览器访问:
在浏览器中打开 http://127.0.0.1:24680。
- 在 WebUI 中安装:
WebUI 界面如下图所示:

界面说明:
- 设备选择:
Device下拉框选择目标 U 盘设备,右侧绿色刷新按钮可重新扫描设备 - 版本信息:
- Ventoy In Package:显示安装包中的 Ventoy 版本(如 1.1.07)和分区格式(MBR/GPT)
- Ventoy In Device:显示设备中已安装的 Ventoy 版本,如果为空则表示未安装
- Option 菜单:
- Secure Boot Support:启用安全启动支持,建议勾选以兼容支持 UEFI Secure Boot 的计算机,在一些品牌笔记本电脑安装中,如果不启用安全会导致无法安装系统
- Partition Style:选择分区格式,可选择
MBR(Legacy BIOS)或GPT(UEFI) - Partition Configuration:分区配置选项,可设置在U盘内的保留空间
- Clear Ventoy:清除设备中的 Ventoy
- Show All Devices:显示所有设备
- 状态显示:
Status - READY表示准备就绪 - 操作按钮:
Install:安装 Ventoy 到 U 盘Update:升级设备中的 Ventoy 版本
在 WebUI 中执行以下操作:
- 选择目标 U 盘设备
- 选择分区格式(MBR 或 GPT)
- 选择文件系统类型(exFAT, NTFS, FAT32 等)
- 点击
安装按钮
注意: 安装会格式化 U 盘,清除所有数据。普通 U 盘建议使用 exFAT 文件系统,大容量移动硬盘或 SSD 建议使用 NTFS 文件系统。
3. 拷贝镜像文件
安装完成后,U 盘会被分成两个分区:
- 第 1 个分区(镜像分区):容量较大,用于存放 ISO 文件
- 第 2 个分区(VTOYEFI 分区):32MB,存放 Ventoy 启动文件
将下载的 Windows ISO 镜像文件直接拷贝到第 1 个分区(大一点的分区)中即可。可以将文件放在任意目录及子目录下,Ventoy 会自动遍历所有目录,按字母顺序显示在启动菜单中。
注意: 安装完成后,镜像分区也可以手动重新格式化为其他支持的文件系统(exFAT/FAT32/NTFS/UDF/XFS/Ext2/3/4),不影响 Ventoy 功能。
4. 启动安装
4.1 设置启动顺序
- 重启计算机,进入 BIOS/UEFI 设置
- 将 U 盘设置为第一启动项
- 保存并退出
4.2 选择镜像启动
从 U 盘启动后,Ventoy 会显示镜像文件列表,选择要安装的 Windows ISO 文件即可开始安装。
4.3 目标分区格式要求
重要提示: 如果目标安装位置(通常是系统盘)使用 GPT 分区表且格式为 NTFS,安装过程中可能会出现错误。建议在安装 Windows 前,将目标安装位置格式化为 GPT 格式,以避免安装失败。
5. 注意事项
- 安装 Ventoy 会格式化 U 盘,清除所有数据,请提前备份重要文件
- U 盘容量需至少 8GB(推荐 16GB 或更大)
- 可以将 U 盘当作普通存储设备使用,存放普通文件不影响 Ventoy 功能
- 支持同时存放多个 ISO 文件,启动时可以选择
- MBR/GPT 分区格式选项只在安装时有效,升级不会改变现有分区格式
参考文档
使用 Whisper Tiny 模型实现快速语音转文字:Python 部署与实践指南
1. 环境准备
1.1 系统要求
- 操作系统:Ubuntu / Debian / WSL / macOS / Windows
- Python:3.10 或更高版本
- 系统依赖:
ffmpeg(Whisper 处理音频文件必需)
1.2 安装系统依赖
Ubuntu/Debian:
sudo apt-get update
sudo apt-get install -y ffmpeg
macOS:
brew install ffmpeg
Windows: 从 ffmpeg.org 下载并安装
1.3 安装 Python 依赖
pip install openai-whisper
或者使用项目 requirements.txt:
pip install -r requirements.txt
2. Whisper 模型选择
Whisper 提供多种模型,可根据需求选择:
| 模型 | 参数量 | 速度 | 准确度 | 推荐场景 |
|---|---|---|---|---|
tiny | 3900万 | 最快 | 较低 | 实时交互、低延迟需求 |
base | 7400万 | 较快 | 中等 | 平衡速度和准确度 |
small | 2.44亿 | 中等 | 较好 | 一般应用 |
medium | 7.69亿 | 较慢 | 较高 | 高准确度需求 |
large | 15.5亿 | 最慢 | 最高 | 专业转录 |
本项目使用 tiny 模型,适合实时语音交互场景。
3. 核心功能实现
3.1 模型管理(单例模式)
import whisper
import warnings
_whisper_model = None
def get_whisper_model():
"""获取或加载Whisper模型(单例模式)"""
global _whisper_model
if _whisper_model is None:
with warnings.catch_warnings():
warnings.filterwarnings("ignore", message="FP16 is not supported on CPU")
_whisper_model = whisper.load_model("tiny", device="cpu")
return _whisper_model
特点:
- 延迟加载:首次使用时才加载模型
- 单例模式:全局只加载一次,节省内存
- 自动处理 CPU/GPU:根据设备自动选择
注意:首次运行时会自动下载模型文件(tiny 模型约 75MB),下载完成后会缓存到本地,后续运行会直接使用缓存,无需重新下载。
3.2 音频文件处理
async def process_audio_file(audio_content: bytes, filename: str):
"""处理音频文件并转写"""
# 1. 验证文件格式
validate_audio_file(filename, audio_content)
# 2. 保存到临时文件
temp_path = create_temp_file(audio_content, filename)
# 3. 转写音频
result = transcribe_audio_file(temp_path, filename)
# 4. 清理临时文件
cleanup_temp_file(temp_path)
return result
支持的音频格式:
.mp3,.wav,.flac,.m4a,.ogg,.webm,.mpeg,.mp4
注意:Whisper 会自动通过 ffmpeg 处理各种音频格式,无需手动转换。确保系统已安装 ffmpeg。
3.3 API 接口
可以使用 FastAPI 等 Web 框架封装 Whisper 功能,提供 HTTP API 接口。典型的接口设计包括:
语音转文字接口示例:
from fastapi import FastAPI, File, UploadFile
import whisper
app = FastAPI()
model = whisper.load_model("tiny")
@app.post("/transcribe")
async def transcribe_audio(audio: UploadFile = File(...)):
"""语音转文字接口"""
# 保存上传的音频文件
temp_path = save_temp_file(audio)
# 转写音频
result = model.transcribe(temp_path, language="zh")
# 清理临时文件
cleanup_temp_file(temp_path)
return {
"text": result["text"],
"language": result["language"]
}
4. 快速开始
4.1 最小示例
import whisper
# 加载模型(首次会自动下载)
model = whisper.load_model("tiny")
# 转写音频文件
result = model.transcribe("audio.wav", language="zh")
print(result["text"])
4.2 使用 FastAPI 接口
启动服务:
uvicorn main:app --reload
测试接口:
# 转写接口示例
curl -X POST \
-F "audio=@test.wav" \
http://localhost:8000/transcribe
4.3 Python 代码调用
import whisper
# 加载模型
model = whisper.load_model("tiny")
# 转写音频文件
result = model.transcribe("audio.wav", language="zh")
# 输出结果
print(f"转写结果: {result['text']}")
print(f"检测语言: {result['language']}")
print(f"处理时间: {result.get('processing_time', 'N/A')}")
5. 配置说明
5.1 修改模型类型
修改模型名称:
# 使用 tiny 模型(推荐,速度快)
_whisper_model = whisper.load_model("tiny", device="cpu")
# 或使用其他模型
_whisper_model = whisper.load_model("base", device="cpu")
_whisper_model = whisper.load_model("small", device="cpu")
注意:如需提高转写准确度,可以:
- 使用更大的模型(small/medium/large),但速度会变慢
- 确保音频质量良好,减少背景噪音
- 指定正确的语言参数,避免自动检测带来的延迟
5.2 设备选择
# CPU 推理(默认)
model = whisper.load_model("tiny", device="cpu")
# GPU 推理(需要 CUDA)
model = whisper.load_model("tiny", device="cuda")
注意:Tiny 模型在 CPU 上运行速度已经很快,适合大多数场景。如需进一步提升速度,可以考虑:
- 使用 GPU 推理(需要安装 CUDA 版本的 PyTorch)
- 使用更小的模型(但准确度会降低)
5.3 语言指定
# 自动检测语言(默认)
result = model.transcribe("audio.wav")
# 指定语言(更快)
result = model.transcribe("audio.wav", language="zh") # 中文
result = model.transcribe("audio.wav", language="en") # 英文
参考文档
使用fuck-u-code优化代码质量
fuck-u-code 是一款专门揭露屎山代码的质量分析工具,能够评估代码的"屎山等级"并输出美观的报告,可以输出md格式报告,供大模型分析使用。
项目介绍
项目地址: https://github.com/Done-0/fuck-u-code
项目描述: Legacy-Mess Detector – assess the “legacy-mess level” of your code and output a beautiful report | 屎山代码检测器,评估代码的"屎山等级"并输出美观的报告
核心特性
- 多语言支持: Go、JS/TS、Python、Java、C/C++
- 屎山指数: 0~100 分,越高越烂
- 七维度检测: 复杂度 / 函数长度 / 注释率 / 错误处理 / 命名 / 重复度 / 结构
- 彩色终端报告: 批评也能笑着听
- Markdown 输出: 方便 AI 分析与文档集成
- 灵活配置: 摘要 / 详细模式,多语言报告
- 全程本地运行: 不上传代码,安全无忧
安装方法
方法一:Go 安装(推荐)
go install github.com/Done-0/fuck-u-code/cmd/fuck-u-code@latest
方法二:源码构建
git clone https://github.com/Done-0/fuck-u-code.git
cd fuck-u-code && go build -o fuck-u-code ./cmd/fuck-u-code
方法三:Docker 构建
docker build -t fuck-u-code .
基本使用方法
分析本地项目
# 基本分析 - 本地项目
fuck-u-code analyze /path/to/project
# 或
fuck-u-code /path/to/project
# 默认分析当前目录
fuck-u-code analyze
分析 Git 仓库
# 分析 Git 仓库(自动克隆)
fuck-u-code analyze https://github.com/user/repo.git
# 或
fuck-u-code https://github.com/user/repo
Docker 运行
docker run --rm -v "/path/to/project:/build" fuck-u-code analyze
常用选项
| 选项 | 简写 | 描述 |
|---|---|---|
--verbose | -v | 显示详细报告 |
--top N | -t | 最烂的前 N 个文件 |
--issues N | -i | 每文件显示 N 个问题 |
--summary | -s | 只看总结,不看过程 |
--markdown | -m | 输出 Markdown 格式报告 |
--lang | -l | 报告语言 (zh-CN/en-US/ru-RU) |
--exclude | -e | 排除指定目录或文件 |
--skipindex | -x | 跳过 index.js/ts 文件 |
使用示例
fuck-u-code analyze --verbose
fuck-u-code analyze --top 3
fuck-u-code analyze --lang en-US
fuck-u-code analyze --summary
fuck-u-code analyze --exclude "**/test/**"
fuck-u-code analyze --markdown > report.md
代码质量分析脚本
基于 fuck-u-code 工具,我编写了一个简单的代码质量分析脚本,用于自动生成 Markdown 格式的代码质量报告。
脚本内容
创建 analyze_code_quality.sh 文件:
#!/bin/bash
# 代码质量分析脚本
fuck-u-code analyze --markdown --lang zh-CN --skipindex --exclude "**/tests/**" > code_quality_report.md
echo "代码质量分析完成,报告已生成:code_quality_report.md"
使用方法
# 1. 创建脚本文件
nano analyze_code_quality.sh
# 将上述脚本内容复制到文件中
# 2. 赋予执行权限
chmod +x analyze_code_quality.sh
# 3. 运行脚本
./analyze_code_quality.sh
脚本参数说明
--markdown: 输出 Markdown 格式报告--lang zh-CN: 使用中文语言--skipindex: 跳过 index.js/ts 文件--exclude "**/tests/**": 排除测试目录
输出文件
code_quality_report.md- 代码质量分析报告
Markdown 输出
适合 AI 分析、文档集成、CI/CD、团队协作
fuck-u-code analyze --markdown
fuck-u-code analyze --markdown > report.md
fuck-u-code analyze --markdown --top 10 --lang en-US > report.md
默认排除路径
- 前端:
node_modules,dist,build,*.min.js等 - 后端:
vendor,bin,target,logs,migrations等
疑难解答
常见问题
command not found错误
# 把 Go bin 路径加到 PATH
export PATH="$PATH:$(go env GOPATH)/bin"
# 并写入 .bash_profile / .zshrc 等
- 权限错误
chmod +x analyze_code_quality.sh
chmod +x quick_analyze.sh
- fuck-u-code 未安装
go install github.com/Done-0/fuck-u-code/cmd/fuck-u-code@latest
- 不在项目根目录
- 确保在包含
requirements.txt和app/目录的根目录运行
- 分析失败
- 检查
logs/analysis_error.log文件 - 确保项目代码没有语法错误
报告解读
评分系统
- 分数范围: 0~100 分
- 分数含义: 越高越烂,欢迎"高分大佬"上榜
- 七维度检测:
- 复杂度分析
- 函数长度检查
- 注释率统计
- 错误处理评估
- 命名规范检查
- 重复度检测
- 代码结构分析
生成的 Markdown 报告包含
- 📊 整体质量评分
- 📈 各项指标详情
- 🔍 问题文件列表
- 💡 改进建议
改进重点
根据报告中的优先级进行代码改进,重点关注:
- 高复杂度函数
- 重复代码
- 缺少注释
- 错误处理
Markdown 转 PDF 加水印工具
一个功能强大的Markdown转PDF工具,支持GitHub风格的Markdown语法、代码文档、Mermaid图表等,并自动添加水印。专为技术文档和代码项目设计,支持中文字体渲染和批量处理。
功能特性
- Markdown → PDF(GitHub样式):表格、代码块、链接、图片;多语言代码高亮
- Mermaid 支持:流程图、时序图、甘特图自动渲染
- 水印能力:文本/图片水印、透明度/角度/密度可调,亦可输出无水印
- 中文字体:自动识别常见中文字体,渲染稳定
- 批量处理:
input/全目录一键处理,结果输出至output/ - 交互/默认双模式:交互式最少参数配置;快速模式开箱即用
- 多语言界面:中英自动/手动切换
适用:README/设计与架构(Mermaid)/API与代码文档、技术博客归档、项目报告与教学讲义;支持批量加水印或生成纯净PDF,便于团队分发协作。
快速开始
运行项目
git clone https://github.com/pinyinjj/Markdown-to-PDF-Tool.git
cd md-pdf-watermark
python main.py
程序会引导您选择操作模式:
1. 处理PDF文件(添加水印)
- 为现有PDF文件添加水印
- 支持批量处理多个PDF文件
2. 转换Markdown到PDF(添加水印)
- 将Markdown文件转换为PDF并添加水印
- 支持Mermaid图表和代码高亮
- 自动检测中文字体
3. 仅生成图片水印
- 只生成水印图片,不处理任何文件
- 适合批量生成水印素材
- 支持文本和图片两种水印类型
4. 转换Markdown到PDF(无水印)
- 将Markdown文件转换为PDF,不添加水印
- 支持Mermaid图表和代码高亮
- 适合需要纯净PDF的场景
详细安装说明
Windows 安装
安装Python
- 从 python.org 下载Python 3.8+
- 安装时勾选"Add Python to PATH"
安装依赖
pip install -r requirements.txt playwright install系统依赖(如果需要)
playwright install-deps
Linux 安装
安装Python
# Ubuntu/Debian sudo apt update sudo apt install python3 python3-pip python3-venv # CentOS/RHEL sudo yum install python3 python3-pip安装依赖
pip install -r requirements.txt playwright install系统依赖
sudo playwright install-deps
国际化支持
语言设置
程序支持英文和中文两种界面语言:
自动语言检测
程序会自动检测系统语言环境:
- 检测系统
locale设置 - 检查环境变量
LANG - 默认使用英文作为后备语言
手动语言设置
# 使用英文界面
python main.py --lang en --interactive
# 使用中文界面
python main.py --lang zh --interactive
# 自动检测(默认)
python main.py --interactive
语言切换
- 在交互式模式中,语言设置会影响所有界面文本
- 包括菜单选项、提示信息、错误消息等
- 不影响处理的文件内容
配置说明
水印配置
程序使用WatermarkConfig类管理所有配置:
class WatermarkConfig:
# 文本水印设置
GENERATE_IMAGE_FROM_TEXT = True # 是否从文本生成图片水印
TEXT_WATERMARK_FILE = "watermarks/text_watermark.png" # 文本水印图片文件名
FONT_SIZE = 36 # 字体大小
TEXT_COLOR = (68, 68, 68, 220) # 文本颜色RGBA
PADDING = 20 # 内边距
# PDF水印参数
WATERMARK_TYPE = "grid" # 水印类型:grid/insert
OPACITY = 0.2 # 透明度
ANGLE = 45 # 旋转角度
IMAGE_SCALE = 1.0 # 图片缩放
HORIZONTAL_BOXES = 3 # 水平网格数
VERTICAL_BOXES = 6 # 垂直网格数
字体配置
程序会自动检测系统中文字体,支持:
- Windows: 微软雅黑、黑体、宋体、楷体、仿宋等
- Linux: Noto Sans CJK等
如需指定字体,可设置环境变量:
export WATERMARK_FONT="/path/to/your/font.ttf"
使用方法
基本使用
- 准备文件:将PDF或Markdown文件放入
input/目录 - 运行程序:执行
python main.py - 查看结果:处理后的文件在
output/目录
调整水印样式
修改WatermarkConfig中的相关参数:
# 调整透明度
OPACITY = 0.3
# 调整角度
ANGLE = 30
# 调整网格密度
HORIZONTAL_BOXES = 4
VERTICAL_BOXES = 8
故障排除
常见问题
- Playwright浏览器未安装
playwright install
- 中文字体未找到
- 确保系统已安装中文字体
- 或设置
WATERMARK_FONT环境变量
- watermark命令未找到
- 确保已安装
pdf-watermark包 - 检查虚拟环境是否正确激活
- 确保已安装
- 权限问题
# Linux
sudo playwright install-deps
调试模式
程序会输出详细的处理信息,包括:
- 文件处理状态
- 水印生成过程
- 错误信息
依赖包说明
| 包名 | 版本 | 用途 |
|---|---|---|
| Pillow | >=9.0.0 | 图像处理,生成文本水印图片 |
| markdown | >=3.4.0 | Markdown文件处理 |
| playwright | >=1.30.0 | 浏览器自动化,PDF渲染 |
| pdf-watermark | >=0.1.0 | PDF水印添加 |
许可证
本项目采用 GPL-3.0-or-later 许可证发布。
注意:首次运行可能需要下载Playwright浏览器,请确保网络连接正常。