joenb33/spectraglyph

GitHub: joenb33/spectraglyph

将徽标隐藏在音频高频段并在频谱图中显现的 Windows 桌面工具。

Stars: 0 | Forks: 0

SpectraGlyph logo # SpectraGlyph **将徽标隐藏在声音中。在频谱图中揭示它。** 一款 Windows 桌面应用程序,将图像和文本绘制到音频文件的顶部频谱中——人耳听不到,但 Audacity、Spek 或 Sonic Visualiser 看得一清二楚。 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/23d123c45d003340.svg)](https://github.com/joenb33/spectraglyph/actions/workflows/ci.yml) [![Release](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/3b93b41195003341.svg)](https://github.com/joenb33/spectraglyph/actions/workflows/release.yml) [![Latest release](https://img.shields.io/github/v/release/joenb33/spectraglyph?sort=semver&display_name=tag&label=release)](https://github.com/joenb33/spectraglyph/releases/latest) [![Downloads](https://img.shields.io/github/downloads/joenb33/spectraglyph/total?color=%233a7bd5)](https://github.com/joenb33/spectraglyph/releases) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-3776AB?logo=python&logoColor=white)](pyproject.toml) [![Qt](https://img.shields.io/badge/UI-PySide6-41CD52?logo=qt&logoColor=white)](https://doc.qt.io/qtforpython-6/) [![Platform](https://img.shields.io/badge/platform-Windows-0078D4?logo=windows&logoColor=white)](#download-windows-exe) [![Languages](https://img.shields.io/badge/UI-English%20%7C%20Swedish-cccccc)](#localization) Spectrogram of an audio file with the word 'SpectraGlyph' painted into the 17–21 kHz band
## 为什么它很酷 人类语音和大多数音乐的频谱能量集中在 **~8 kHz 以下**。SpectraGlyph 将图像绘制到 **高频谱**(经典“隐形”模式:**15–20 kHz**),日常扬声器、麦克风和听力几乎察觉不到——这样混合后**听起来依然干净**,但图像在频谱图中**清晰可见**。与游戏配乐中的隐藏艺术同源,这里你可以控制时间、频段和强度。 ## 功能 | | | |---|---| | **双模式** | **隐形(>15 kHz)** — 水印位于人声/乐器主体之上;**全频谱** — 使用整个频谱以实现更 bold 的视觉效果(高强度时可能影响听感)。 | | **图像或文本** | 拖入 PNG/JPG/WebP 或直接在应用中输入文字 — 你的信息会成为频谱的一部分。 | | **掩码工具包** | Alpha、背景自动检测、移除白/黑、色键(任意颜色)、亮度、反色 — 无需离开界面即可获得清晰掩码。 | | **实时频谱图** | 平移并缩放 **时间 × 频率** 区域;编辑操作会实时更新预览。 | | **播放后再分享** | **▶ 播放** 频谱图视图(原始或加水印版本),通过扬声器确认其确实不可闻。 | | **导出** | 导出为 **WAV**、**FLAC** 或 **MP3**(当编解码器影响水印保真度时会有提示);导出后可一键 **在 Audacity 中打开** 或 **显示文件夹**。 | | **最近文件** | **文件 → 最近文件** 会记住最近加载的 8 个音频文件。 | | **预设 + 查看指南** | 保存配方;**复制 FFT 设置** 到剪贴板,以便观众粘贴相同视图到 Audacity,看到你预期的效果。 | | **语言** | **瑞典语** 和 **英语** — **视图 → 语言**(设置保存在 [本地化路径](#localization) 中)。 | | **快捷键与帮助** | **Ctrl+O** / **Ctrl+I** / **Ctrl+E** / **空格**;**帮助 → 键盘快捷键…** 列出全部。 | | **数据存储位置** | 紧邻 **`SpectraGlyph.exe`**:`SpectraGlyph_data\`(可写时保存设置与预设);否则使用 `%APPDATA%\SpectraGlyph`。运行 **source**(`python main.py`)始终使用 `%APPDATA%\SpectraGlyph`。 | | **长音频处理** | 文件 **> ~2 分钟** 或 **> ~40 MB** 时会提示选择:加载全部或仅加载 **时间范围**(更快)。处理与构建频谱图时会显示进度。 | ## 下载(Windows `.exe`) 从 [最新发布](https://github.com/joenb33/spectraglyph/releases/latest) 获取由 GitHub Actions 签名验证的二进制文件。每个稳定版本都以 `SpectraGlyph--Windows-x64.exe` 形式提供。预发布版本在向 `release` 分支推送或手动触发工作流时以 **预发布** 形式出现。 ## 查看者如何揭示水印 1. 在 **Audacity**、**Spek** 或 **Sonic Visualiser** 中打开导出的文件。 2. 切换到 **频谱图** 视图(例如 Audacity:Track → Spectrogram)。 3. 推荐参数:**FFT 大小 4096**,**Hann 窗**,**约 80 dB** 动态范围。 4. 滚动到导出时所选的时间范围与频段(使用应用内的 **查看指南** 可复制粘贴作弊单)。 ## 系统要求 - **Windows**(主要目标;Qt + 音频栈已在该平台测试) - **Python 3.10+**(仅从源码运行时需要) ## 快速启动(从源码) ``` python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt python main.py ``` 运行测试: ``` pytest -q ``` ## 构建独立 `.exe` ``` pyinstaller pyinstaller.spec ``` 输出:`dist\SpectraGlyph.exe` ## 本地化 桌面 UI 提供 **瑞典语** 和 **英语**(**视图 → 语言**)。代码注释与 README 以 **英语** 为主,以保持项目对全球贡献者友好。 **设置存储位置:** 运行 **内置 `.exe`** 时,预设与语言保存在可执行文件旁边的文件夹:`SpectraGlyph_data\`(删除该文件夹会同时移除应用设置)。如果应用无法创建该文件夹(例如在 `Program Files` 下无写入权限),则回退到 `%APPDATA%\SpectraGlyph`。从 **源码运行**(`python main.py`)始终使用 `%APPDATA%\SpectraGlyph`。 ## 项目结构 - `main.py` — 应用入口 - `src/spectraglyph/` — GUI、DSP、音频 I/O、水印核心 - `assets/` — 图标、徽标以及构建所需的捆绑资源 - `docs/` — README 图像(频谱图主视觉、未来截图) - `scripts/generate_branding.py` — 重新生成 `assets/icon.*` 和 `docs/hero_spectrogram.png` - `tests/` — 使用 pytest 进行掩码/文本、水印嵌入与音频 I/O 的覆盖率测试 ## 代码仓库 - **产品名称:** **SpectraGlyph** - **上游:** [github.com/joenb33/spectraglyph](https://github.com/joenb33/spectraglyph) - **安全:** 参考 [SECURITY.md](SECURITY.md) - **贡献与发布流程:** 参考 [CONTRIBUTING.md](CONTRIBUTING.md) - **更新日志:** 参考 [CHANGELOG.md](CHANGELOG.md) ## 许可证 MIT — 参考 [LICENSE](LICENSE)。
标签:15-20kHz, Audacity, NumPy, PySide6, Python GUI, SciPy, Sonic Visualiser, SpectraGlyph, Spectrogram, Spek, Windows应用, 上边带, 不可听音频, 二进制发布, 图像嵌入, 开源工具, 数字隐写, 数据隐藏, 文本嵌入, 桌面应用, 逆向工具, 音频水印, 音频隐写, 频谱分析, 频谱水印, 频谱编码