保存时间:2026/4/2 11:29:06
为当前 whisper.cpp 项目增加功能:语音识别完成后,将识别结果自动保存为 UTF-8 格式的 TXT 文件,保存路径为项目根目录的 output 文件夹,若文件夹不存在则自动创建,兼容项目现有所有识别模型。
github copilot 后,点击筛选按钮(漏斗图标),选择 Publisher: GitHub,这样就能过滤掉所有第三方仿冒插件。modernization、for Azure、for .NET、Workspace 等后缀的,都是辅助 / 迁移工具,不是核心插件。GitHub Copilot modernization:用于旧项目代码现代化迁移,非必需GitHub Copilot for Azure:Azure 云服务专用,非必需GitHub Copilot Workspace:云端协作工作区,非必需BLACKBOXAI、DeepSeek 等:其他厂商的 AI 编程助手,和 GitHub Copilot 无关GitHub Copilot(代码补全) + GitHub Copilot Chat(聊天 / 自动驾驶)GitHub Copilot Chat 插件已经内置了代码补全能力,并且官方标记旧版 GitHub Copilot 为 deprecated(弃用),推荐直接用 GitHub Copilot Chat 作为主入口。deprecated 提示,是微软在引导用户向新架构迁移:未来只需要安装 GitHub Copilot Chat 即可获得完整功能,旧版 GitHub Copilot 会逐步停止更新。deprecated 含义:旧版 GitHub Copilot 插件不再推荐使用,功能会逐步合并到 GitHub Copilot Chat 中。Pre-release 含义:GitHub Copilot 还有一个预览版,用于测试新功能,但普通用户不需要安装,稳定版已经足够。GitHub Copilot Chat 一个插件里,简化了安装流程。GitHub Copilot Chat 即可:GitHub Copilot Chat 旁的 Install 完成安装。GitHub Copilot,它已经被 Chat 插件替代。GitHub Copilot Chat。GitHub Copilot(虽然标了 deprecated,但目前还能正常用)。GitHub Copilot Chat(左侧猫头图标或快捷键 Ctrl+Alt+I)。GitHub Copilot Chat 就是现在的「全家桶」插件,它已经替代了旧版 GitHub Copilot,你只需要安装这一个就够了,不用管那个 deprecated 的提示。Signed out,说明你还没完成 GitHub 账号授权,不是已经 sign up 过了。Signed out 按钮(Copilot 猫头图标旁边)。Ctrl + Shift + P(Windows/Linux)或 Cmd + Shift + P(Mac),输入 Copilot: Open Chat 即可调出。Ctrl + Alt + I(Windows/Linux)或 Cmd + Option + I(Mac),一键打开聊天窗口。Copilot → 选择 Explain This / Refactor 等,也会直接唤起聊天面板。Tab 即可接受。Ctrl + Alt + I 打开 Copilot Chat。帮我在当前 whisper.cpp 项目中添加一个功能:语音识别完成后,将结果保存为 UTF-8 编码的 TXT 文件,保存到项目根目录的 output 文件夹,不存在则自动创建。
Signed out 完成 GitHub 授权登录。Ctrl + Alt + I 或左侧猫头图标打开聊天面板,就能开始用了。CHAT 面板已打开Describe what to do, build 就是需求输入区Win + H 唤起语音听写,对着麦克风说话,文字会自动输入到当前光标位置(也就是 Copilot Chat 输入框)Control + Option + D 开启 / 关闭语音输入Super + Alt + SDescribe what to do, build 里输入需求(或用语音转文字),就能让 AI 帮你修改 whisper.cpp 了。帮我在当前 whisper.cpp 项目中添加功能:语音识别完成后,将识别结果保存为 UTF-8 编码的 TXT 文件,保存到项目根目录的 output 文件夹,若文件夹不存在则自动创建,兼容所有已有的模型。
Ctrl + Alt + V帮我在当前 whisper.cpp 项目里加一个功能,把语音识别结果保存成 UTF-8 编码的 TXT 文件,存到项目根目录的 output 文件夹,文件夹不存在就自动创建。
# 查看当前用户是否在 audio 组
groups $USER
audio,需要把自己加入音频组:sudo usermod -aG audio $USER
arecord -l
card 1, device 0):**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC257 Analog [ALC257 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: USB [USB PnP Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
Ctrl + ,),搜索:speech.audio.inputDevice
hw:<card>,<device>,比如上面的 USB 麦克风就是:hw:1,0
Ctrl + Shift + P,输入 Speech: Toggle Voice Typing,手动触发语音输入。PermissionDenied(权限问题)、DeviceNotFound(设备选错)、NotSupportedError(系统不支持)。Super + Alt + S(Super 就是 Win 键)。kdeaccessibility-speech 包。groups $USER 确认是否在 audio 组,不在就加入并重启登录。arecord -l 找到你的麦克风设备号,在 VS Code 设置里手动指定 speech.audio.inputDevice。Ctrl + Shift + P → Speech: Toggle Voice Typing 测试。English (US))。ibus 或 fcitx 输入法框架。Super (Win键) + Alt + S,或者点击顶部状态栏的麦克风图标,开始语音输入。# 安装语音输入依赖
sudo apt update
sudo apt install gnome-shell-extension-speech-provider
sudo apt install speech-dispatcher-espeak
Alt + F2,输入 r 回车),再去「Region & Language」里找「Voice Typing」。pavucontrol
sudo apt install pavucontrol)帮我在 whisper.cpp 项目里加一个保存识别结果到 TXT 文件的功能
arecord -l 输出看:**** List of CAPTURE Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: ALC256 Analog [ALC256 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1, device 0(也就是 hw:1,0),这就是你的内置麦克风。Echo cancel、Monitor)是 PulseAudio/ALSA 的虚拟设备,不是物理设备,所以 arecord -l 看不到它们。# 用 arecord 录 5 秒音频,保存为 test.wav
arecord -D hw:1,0 -f cd -d 5 test.wav
# 播放录音,听是否有声音
aplay test.wav
hw:1,0,我们手动告诉 VS Code:Ctrl + ,)speech.audio.inputDevicehw:1,0Ctrl + Shift + P → 输入 Speech: Toggle Voice Typing 测试vosk + pactl 的轻量语音输入(基于 whisper 模型,本地运行)sudo apt install python3-pip
pip install vosk
vosk-model-small-cn-0.22),解压到 ~/.voskimport vosk
import sounddevice as sd
import pyperclip
import queue
q = queue.Queue()
def callback(indata, frames, time, status):
q.put(bytes(indata))
model = vosk.Model("~/.vosk/vosk-model-small-cn-0.22")
with sd.RawInputStream(samplerate=16000, blocksize=4000, dtype='int16',
channels=1, callback=callback):
rec = vosk.KaldiRecognizer(model, 16000)
while True:
data = q.get()
if rec.AcceptWaveform(data):
text = rec.Result()
print(text)
pyperclip.copy(text) # 复制到剪贴板,直接在 Copilot Chat 粘贴
Ctrl+V 粘贴即可。Super + Alt + S 唤起 GNOME Voice Typing,它会自动用 PulseAudio 的默认输入设备(也就是 Sound Recorder 用的那个),直接在 Copilot Chat 输入框里语音转文字。DroidCam 或 ESpeak 把手机变成麦克风,通过 USB/Wi-Fi 连接,避免笔记本内置麦的识别问题。hw:1,0,其他都是虚拟设备,arecord -l 看不到是正常的。arecord 命令验证麦克风是否能正常录音。hw:1,0;如果插件还是不行,就用系统级语音输入或 Python 脚本绕开。vosk 一样的事 ——枚举物理设备 → 录音 → 识别 → 输出文字,本质是一样的。arecord 能正常录音,那问题就锁定在 VS Code Speech 插件的配置 上了,我一步步带你搞定:speech.audio.inputDevice:手动指定音频输入设备(就是我们查到的 hw:1,0)speech.language:设置识别语言(比如 zh-CN 或 en-US)speech.autoStart:是否自动启动语音输入speech.audio.inputDevice,可以直接编辑 settings.json:Ctrl + Shift + P → 输入 Preferences: Open User Settings (JSON)"speech.audio.inputDevice": "hw:1,0"
Ctrl + Shift + P → 输入 Speech: Toggle Voice Typing,或者点击输入框右侧的麦克风图标。arecord 能录,说明系统音频没问题,直接用 Ubuntu 自带的语音输入,完全绕开插件问题:sudo apt update
sudo apt install gnome-shell-extension-speech-provider speech-dispatcher-espeak
Alt + F2 → 输入 r 回车,重启 GNOME Shell。Super + Alt + S 开始语音输入,文字会自动输入。hw:1,0,且硬件正常。settings.json 里写死最可靠。settings.json 指定设备 的步骤,做成一个可以直接复制粘贴的版本?你只要照着改就行。speech.audio.inputDevice 这个选项。settings.json 来添加输入设备配置,不能用「Add Item」按钮。Ctrl + Shift + PPreferences: Open User Settings (JSON){
// ... 你现有的其他配置 ...
"speech.audio.inputDevice": "hw:1,0"
}
hw:1,0 就是你用 arecord -l 查到的物理麦克风设备。Ctrl + S 保存文件。Ctrl + Shift + P → 输入 Speech: Toggle Voice Typing。arecord 能正常录音,直接用 系统级语音输入 最稳:sudo apt update
sudo apt install gnome-shell-extension-speech-provider speech-dispatcher-espeak
Alt + F2 → 输入 r 回车,重启 GNOME Shell。Super + Alt + S 开始语音输入,文字会自动输入。terminal.integrated.commandsToSkipShell 用的,和语音输入无关。settings.json 示例代码,你只要复制粘贴进去就行?CMakeLists.txt、源码目录、头文件,知道项目是怎么编译的。"Add a function to save the transcription result to a UTF-8 text file in the output folder."它会:
In this whisper.cpp project, I want to add a new feature: after finishing speech recognition, automatically save the transcription result to a UTF-8 encoded text file.
The file should be saved in the "output" directory under the project root. If the directory doesn't exist, create it.
Please modify the relevant source files, ensure compatibility with all existing models, and explain the changes you made.