AI 语音写作

VS Code 语音编程实战指南:代码注释、文档、Prompt 的语音输入技巧

VS Code 语音编程实战指南

作为开发者,你每天要写大量的代码注释、文档、Git 提交信息、Pull Request 描述。这些"非代码"的文字输入占据了相当多的时间。如果能用语音快速完成这些任务,开发效率会显著提升。

本文将详细介绍如何在 VS Code 中使用语音输入,包含多个实战场景和具体技巧。

为什么开发者需要语音输入?

开发中的文字输入场景

一个典型的开发日,你可能要写:

  • 代码注释:解释函数用途、参数说明、使用示例
  • README 文档:项目介绍、安装指南、使用方法
  • API 文档:接口说明、参数描述、返回值格式
  • Git 提交信息:描述本次改动的目的和内容
  • Pull Request 描述:说明改动的原因、影响范围、测试方法
  • 代码审查评论:提出问题、给出建议
  • GitHub Copilot / Cursor Prompt:向 AI 描述你需要的代码

这些文字输入可能占据你 20-30% 的工作时间。用语音输入,这些时间可以缩短到原来的 1/3。

语音输入的核心价值

  1. 速度快:说话比打字快 3-5 倍
  2. 思路连贯:说话时思路不会被打断
  3. 更详细的描述:语音让你能轻松说出更多细节
  4. 减少疲劳:减少打字对手指和手腕的压力

VS Code 语音输入的实现方案

方案对比

方案优点缺点适用场景
VS Code 语音扩展集成度高功能有限、需联网简单场景
系统语音输入免费、简单需联网、准确率一般偶尔使用
桌面语音输入工具功能强大、离线可选需要额外安装高频使用

推荐方案:桌面语音输入工具

使用桌面语音输入工具(如 Voconly),可以将语音转文字后直接插入到 VS Code 的编辑器中。

优势:

  • 不依赖 VS Code 扩展
  • 可以在任意应用中使用(不仅限于 VS Code)
  • 支持离线运行
  • 功能更强大

本文以 Voconly 为例,介绍如何在 VS Code 中使用语音输入。

详细步骤:在 VS Code 中设置语音输入

步骤 1:安装 Voconly

  1. 访问 Voconly 官网
  2. 下载并安装适合你系统的版本

步骤 2:配置模型

选择适合编程场景的语音识别模型:

推荐:Qwen-ASR-1.7B

  • 中英文混合识别能力强
  • 技术术语识别准确
  • 适合代码注释、技术文档

备选:SenseVoice Small

  • 纯中文场景更精准
  • 模型轻量,CPU 也能流畅运行

步骤 3:设置快捷键

选择一个方便的快捷键:

推荐:Ctrl + Shift + V(Windows)或 Cmd + Shift + V(macOS)

  • 易于记忆
  • 不与 VS Code 常用快捷键冲突

步骤 4:在 VS Code 中测试

  1. 打开 VS Code
  2. 打开任意代码文件
  3. 将光标放在你想插入文字的位置
  4. 按下 Voconly 快捷键
  5. 说话测试
  6. 再次按下快捷键停止
  7. 检查文字是否正确插入

实战场景 1:代码注释

函数注释

场景:为一个函数添加详细的 docstring

语音输入示例:

计算两个日期之间的工作日数。

参数:
start_date:开始日期,格式为 YYYY-MM-DD 字符串
end_date:结束日期,格式为 YYYY-MM-DD 字符串
holidays:可选,节假日日期列表

返回:
整数,表示工作日数量(排除周末和节假日)

示例:
calculate_workdays("2026-01-01", "2026-01-31") 返回 22

注意:
如果开始日期晚于结束日期,返回 0

生成的注释:

def calculate_workdays(start_date: str, end_date: str, holidays: list = None) -> int:
    """
    计算两个日期之间的工作日数。
    
    参数:
        start_date: 开始日期,格式为 YYYY-MM-DD 字符串
        end_date: 结束日期,格式为 YYYY-MM-DD 字符串
        holidays: 可选,节假日日期列表
    
    返回:
        整数,表示工作日数量(排除周末和节假日)
    
    示例:
        calculate_workdays("2026-01-01", "2026-01-31") 返回 22
    
    注意:
        如果开始日期晚于结束日期,返回 0
    """
    # 函数实现...

行内注释

场景:解释复杂的代码逻辑

语音输入示例:

这里使用二分查找而不是遍历,因为数据已排序,时间复杂度可以从 O(n) 降到 O(log n)

模块说明

场景:为文件或模块添加顶部说明

语音输入示例:

用户认证模块

提供用户登录、注册、权限验证功能。
依赖:数据库连接、JWT 库、密码加密工具
作者:开发团队
创建日期:2026 年 1 月

实战场景 2:文档编写

README 文档

场景:为项目编写 README

语音输入示例:

FastDateUtil - 高性能日期处理工具

简介:
FastDateUtil 是一个用 Rust 编写的高性能日期处理库,提供 Python 绑定。
比纯 Python 实现快 10 倍,零依赖,支持离线使用。

安装:
pip install fast-date-util

功能:
- 工作日计算
- 节假日判断
- 日期格式化
- 时间区间计算

快速开始:
from fast_date_util import calculate_workdays
result = calculate_workdays("2026-01-01", "2026-01-31")
print(result)  # 输出 22

性能:
在 100 万次计算测试中,FastDateUtil 比 Python 标准库快 12 倍。

许可证:
MIT

API 文档

场景:编写 API 接口文档

语音输入示例:

获取用户列表

端点:GET /api/v1/users

请求参数:
page:页码,默认 1
page_size:每页数量,默认 20,最大 100
status:用户状态筛选,可选值 active、inactive、all

响应格式:
{
  "data": [
    {
      "id": 1,
      "username": "user1",
      "email": "user1@example.com",
      "status": "active"
    }
  ],
  "total": 100,
  "page": 1,
  "page_size": 20
}

错误码:
400:参数错误
401:未授权
500:服务器错误

实战场景 3:Git 提交信息

功能开发提交

语音输入示例:

添加用户认证功能

新增:
- 用户登录接口,支持用户名密码登录
- JWT token 生成和验证
- 登录状态中间件

修改:
- 更新路由配置,添加认证相关路由
- 数据库添加 users 表

测试:
- 新增登录接口单元测试
- 测试覆盖率 95%

Bug 修复提交

语音输入示例:

修复工作日计算错误

问题:
在跨年计算工作日时,会出现重复计算 1 月 1 日的问题

原因:
日期循环的边界条件处理错误

解决:
修正循环的终止条件,确保不会重复计算

影响范围:
仅影响 calculate_workdays 函数

测试:
添加跨年测试用例,验证修复

实战场景 4:Pull Request 描述

语音输入示例:

添加用户权限管理功能

背景:
项目需要支持多用户协作,不同用户有不同的操作权限。

改动内容:
1. 新增权限模型:viewer、editor、admin
2. 数据库添加 permissions 表
3. 实现权限检查中间件
4. API 接口添加权限验证

测试:
- 单元测试:新增 15 个测试用例
- 集成测试:验证权限控制正确性
- 手动测试:在开发环境验证所有场景

影响范围:
- 新增文件 5 个
- 修改文件 12 个
- 数据库迁移脚本 1 个

文档:
- 更新 API 文档
- 添加权限配置说明

后续工作:
- 前端添加权限管理界面
- 添加权限日志记录

部署注意事项:
需要执行数据库迁移脚本

实战场景 5:GitHub Copilot Prompt

GitHub Copilot 可以根据你的注释生成代码。语音输入让你能快速提供详细的注释。

快速生成函数

语音输入注释:

异步获取用户数据,支持缓存和重试

参数:
user_id:用户 ID
use_cache:是否使用缓存,默认 True
max_retries:最大重试次数,默认 3

返回:
用户数据字典,如果用户不存在返回 None

行为:
1. 如果启用缓存且缓存存在,直接返回缓存数据
2. 否则从 API 获取数据
3. 如果请求失败,自动重试,最多 max_retries 次
4. 成功获取后更新缓存

Copilot 会根据注释生成相应的代码。

复杂逻辑描述

语音输入注释:

实现一个速率限制器,支持滑动窗口算法

要求:
1. 使用 Redis 存储计数
2. 窗口大小可配置,默认 60 秒
3. 每个用户独立计数
4. 支持自定义限制阈值
5. 返回剩余请求数和重置时间

实战场景 6:Cursor AI Prompt

Cursor 是一个 AI 原生的代码编辑器,语音输入可以让你更高效地与 AI 交互。

代码生成

语音输入 Prompt:

创建一个 React 组件,名为 UserCard,显示用户头像、用户名和简介

要求:
- 使用 TypeScript
- 支持 props 类型定义
- 头像显示为圆形
- 响应式布局,移动端自适应
- 添加悬停效果
- 支持点击事件

代码重构

语音输入 Prompt:

重构这个函数,将数据库查询和业务逻辑分离

当前问题:
- 函数太长,超过 100 行
- 数据库查询和业务逻辑混在一起,难以测试
- 没有错误处理

重构目标:
1. 创建单独的数据访问层
2. 创建业务逻辑层
3. 添加错误处理和日志
4. 保持原有功能不变

提高语音编程效率的技巧

技巧 1:使用代码片段模板

为常见的注释类型创建模板:

函数注释模板:

[函数名]:[简短描述]

参数:
[param_name]:[类型] - [描述]

返回:
[类型] - [描述]

示例:
[代码示例]

技巧 2:语音 + 键盘配合

  • 语音:负责大量文字输入(注释、文档、提交信息)
  • 键盘:负责精确修改和格式调整
  • 快捷键:快速在语音和键盘之间切换

技巧 3:分段输入

对于长文档,分段输入更容易管理:

  1. 先用语音输入框架和标题
  2. 再逐段补充详细内容
  3. 最后用键盘调整格式

技巧 4:技术术语的正确发音

为了提高识别准确率:

术语推荐说法
APIA P I(分开发音)
async/awaitasync await
JSONJ S O N 或 Jason
SQLS Q L 或 sequel
URLU R L

常见问题

Q1:语音输入会影响编程思路吗?

不会。相反,语音输入让思路更连贯。你不需要在说话时担心打字速度,可以专注于要表达的内容。

Q2:代码中的特殊符号怎么处理?

两种方式:

  1. 语音输入文字内容,然后用键盘添加代码和符号
  2. 语音输入整个内容,包括描述符号(如"括号")

推荐第一种方式,更高效。

Q3:在嘈杂的办公室环境怎么办?

建议:

  • 使用降噪好的 USB 耳机
  • 或者使用带有降噪功能的麦克风
  • Voconly 等工具可以设置麦克风灵敏度

Q4:识别错误怎么处理?

  • 先用语音快速输入主体内容
  • 然后用键盘快速修正错误
  • 识别准确率通常在 95% 以上,修正时间很少

总结

在 VS Code 中使用语音输入,可以显著提升你的开发效率,特别是对于代码注释、文档编写、Git 提交信息等大量文字输入的场景。

推荐使用离线语音输入工具(如 Voconly),它免费开源、支持离线运行、对技术术语识别准确,非常适合开发场景。

掌握语音编程后,你可以:

  • 用 20 秒说出原本需要 3 分钟打字的代码注释
  • 快速编写详细的 README 和 API 文档
  • 轻松描述复杂的 Git 提交和 PR 内容
  • 高效地与 GitHub Copilot 或 Cursor 交互


相关文章:

开始用语音写 Prompt

Voconly 可以让你用语音快速输入 ChatGPT、Claude 等 AI 工具的 Prompt,大幅提升你的 AI 辅助工作效率。

每天省下 30 分钟打字时间

本地运行,离线可用,数据安全

下载更多

Windows · macOS 双平台通用