You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在自定义VS Code扩展中访问speech-to-text API以自定义标点规则?

自定义VS Code语音转文本的标点控制方案

实现思路

通过VS Code官方提供的语音识别API,关闭默认的自动标点插入功能,完全通过口述指令(如“逗号”“句号”)来手动控制标点位置,解决停顿被误判为句子结束的问题。

具体步骤

  • 启用自定义语音识别会话:使用vscode.speech命名空间创建会话时,显式关闭自动标点选项:
    import * as vscode from 'vscode';
    
    async function initCustomSpeechRecognition() {
      // 创建禁用自动标点的识别会话
      const session = await vscode.speech.createSpeechRecognitionSession({
        autoPunctuation: false,
        language: 'zh-CN' // 按需切换目标语言
      });
    
      // 监听识别结果
      session.on('result', (event) => {
        if (event.resultType === vscode.SpeechRecognitionResultType.Final) {
          let processedText = event.text;
          // 将口述的标点指令替换为实际标点
          processedText = processedText.replace(/逗号/g, ',').replace(/句号/g, '.');
          // 插入到当前编辑器
          const activeEditor = vscode.window.activeTextEditor;
          if (activeEditor) {
            activeEditor.edit(editBuilder => {
              editBuilder.insert(activeEditor.selection.active, processedText);
            });
          }
        }
      });
    
      // 启动识别
      await session.start();
    }
    
  • 注册扩展命令:在package.json中声明触发命令:
    "contributes": {
      "commands": [
        {
          "command": "custom-speech.start",
          "title": "启动自定义语音识别"
        }
      ]
    }
    
    并在扩展激活时绑定命令:
    export function activate(context: vscode.ExtensionContext) {
      const commandDisposable = vscode.commands.registerCommand('custom-speech.start', initCustomSpeechRecognition);
      context.subscriptions.push(commandDisposable);
    }
    
  • 优化指令匹配:根据实际识别效果调整指令替换规则,比如处理口音导致的指令识别偏差(如“逗点”替代“逗号”)。

版本要求

需要VS Code 1.84或更高版本,因为vscode.speechAPI是在该版本正式引入的。

内容的提问来源于stack exchange,提问作者ᴇʟᴇvᴀтᴇ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 10:02:11