【免费下载链接】vocotype-cli
VocoType 是一款运行在本地端侧的隐私安全语音输入工具,通过快捷键即可将语音实时转换为文字并自动输入到当前应用。支持语音转文字MCP、AI 优化文本、自定义替换词典、录音视频转文字等功能,让语音输入更高效、更安全。
VocoType 是一款完全本地离线的隐私安全语音输入工具,支持通过快捷键将语音实时转换为文字并自动输入到当前应用。而它内置的--save-dataset参数,能让这套语音输入法"顺手"把每一段录音和转写文本持久化保存下来,帮你在日常使用中悄悄积累一份专属语音数据集(audio + text 配对语料),为后续评估识别效果、训练定制模型提供宝贵原料。本文带你完整拆解这个 AOP 风格录音插件的实现原理与使用技巧。
一、一条命令开启:--save-dataset 使用步骤
启用数据集记录只需要在启动命令后追加一个参数:
git clone https://gitcode.com/gh_mirrors/vo/vocotype-cli cd vocotype-cli uv venv --python 3.12 uv pip install -r requirements.txt # 保存数据集运行 python main.py --save-dataset📌 常用参数说明(定义于 main.py):
| 参数 | 作用 | 默认值 |
|---|---|---|
--save-dataset | 开启数据集记录开关 | 关闭 |
--dataset-dir | 数据集输出目录 | dataset |
--config | 指定配置文件路径 | 内置配置 |
比如你想把语料存到桌面,只需:
python main.py --save-dataset --dataset-dir ~/my_voice_dataset之后正常按F2录音、说话、转文字即可——每次转写完成后,对应的音频和文本会自动落盘,完全不打断你的输入流程。完整环境搭建可参考项目自带的 脚本.md。
二、积累下来的数据长什么样?
启用后,VocoType 会在数据集目录下自动创建如下结构:
dataset/ ├── audio/ # 每段录音的 WAV 音频文件 │ ├── 20250101_103000_123456-ab12cd34.wav │ └── 20250101_103015_654321-ef56ab78.wav └── dataset.jsonl # 与音频一一对应的文本记录dataset.jsonl中每一行是一条 JSON 记录,核心字段如下:
| 字段 | 含义 |
|---|---|
id | 唯一样本 ID(时间戳 + 8 位随机 hex,防重名) |
audio | 音频相对路径,如audio/xxxx.wav |
text | 最终输出的识别文本(含标点) |
raw_text | 模型原始输出(未加标点),便于对比纠错效果 |
duration | 音频时长(秒) |
sample_rate | 采样率,默认 16000 Hz |
inference_latency | 本地推理耗时(秒),可用来统计性能 |
confidence | 置信度 |
timestamp | UTC 采集时间戳(ISO 格式) |
这种"JSONL 索引 + 音频文件"的分离式设计是业界做语音数据集的常见做法:文本元数据轻量、易于流式读取,音频则独立存放,方便后续按需加载。
三、它如何工作:AOP 风格的 handler 包装器
这个插件的核心代码不到 110 行,全部位于 app/plugins/dataset_recorder.py,实现思路非常值得借鉴。
1. 环绕式包装,零侵入主流程
在 main.py 中可以看到装配过程:
worker.on_result = _make_result_handler(output_method, append_newline, worker) if args.save_dataset: worker.on_result = wrap_result_handler(worker.on_result, worker, args.dataset_dir)这正是 AOP(面向切面编程)的思想:不改动原始"输入文字"逻辑,而是用一个wrapped函数把原始 handler 包一层。执行顺序是:
- 先调用原始 handler,保证语音正常输入到当前应用;
- 再异步执行"保存数据集"这一切面逻辑。
2. 三处细节设计保障健壮性
- 容错吞异常:保存逻辑整体包在
try/except中,任何失败只会打日志(见 dataset_recorder.py),绝不影响正常的语音输入体验; - 原子拷贝:音频通过"先写
.tmp再os.replace"的方式复制(_atomic_copy),避免程序中途退出时产生损坏的半截文件; - 自动过滤无效样本:转写出错(
result.error)、找不到音频路径等场景会被静默跳过,保证数据集中只存有效样本。
3. 音频从哪来?
每次录音停止后,TranscriptionWorker 会把最近一段录音写入recent.wav调试文件并更新last_segment_path(见 _write_recent_wav)。AOP 包装器正是从这个路径读取原始音频,复制进数据集目录——录音、识别、存储三者共享同一条数据流,天然对齐。
四、积累的数据能做什么?
日积月累后,你手里就有一份自带时间线、带原始/最终文本双标注的私有语音语料,典型玩法:
- 📊识别效果自评:用
inference_latency、confidence统计各场景(安静、嘈杂、长句)的表现; - 🎯定制热词表:从识别错误的样本中提炼高频错词,加入 VocoType 的自定义替换词典提升准确率;
- 🤖训练/评测定制 ASR:JSONL 格式与主流语音识别评测流程兼容,可清洗后用于微调或构建个人评测集;
- 🗂️建立个人语音档案:会议记录、口述笔记的原始音频永久留档,随时回溯。
五、使用建议与注意事项
- 磁盘空间:16 kHz 单声道 16-bit WAV 约为0.12 MB/秒,一小时的录音约 430 MB,长期开启建议定期归档;
- 隐私再确认:所有数据仅保存在本机
--dataset-dir指定目录,不会上传;若使用volcengine云端后端,音频本身会经过云端识别,请按需选择; - 目录独立:
--dataset-dir建议指向独立磁盘或目录,避免混入版本库; - 样本清洗:JSONL 是追加写入的,若某条记录异常可手动删除对应行及音频,不影响其他样本。
总结
--save-dataset是 VocoType CLI 中一个轻量却实用的"隐形插件":它以 AOP 环绕包装的方式挂在结果处理链路上,把日常语音输入过程顺带转化成了数据集生产流程。一条命令、零学习成本,让你在安全离线的同时,悄悄沉淀一份完全属于自己的语音语料资产。
【免费下载链接】vocotype-cli
VocoType 是一款运行在本地端侧的隐私安全语音输入工具,通过快捷键即可将语音实时转换为文字并自动输入到当前应用。支持语音转文字MCP、AI 优化文本、自定义替换词典、录音视频转文字等功能,让语音输入更高效、更安全。
相关推荐
插件冲突、钩子失败、Token 悄悄暴涨:Claude 插件实战三大坑实录
插件冲突、钩子失败、Token 悄悄暴涨:Claude 插件实战三大坑实录 Claude Code 的插件生态正处在一个"人人都在装、个个都在踩坑"的阶段:官方
AI 插件开发工具插件系统AuK 已进 SGLang-Omni:开箱即用的语音模型,正在悄悄长成新的开源生态
AuK 已进 SGLang Omni:开箱即用的语音模型,正在悄悄长成新的开源生态 2026 年 9 月 9 日,腾讯混元开源了 1.5B 参数的语音基础模型
人工智能基础模型语音音频媒体生成Vector 隐私政策解读:透明数据管道与"绝不悄悄收集数据"的工程承诺
Vector 隐私政策解读:透明数据管道与"绝不悄悄收集数据"的工程承诺 导读 Vector 是一套高性能的可观测性数据管道(observability dat
可观测性数据集成日志分析后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考