背景
最近了解到有一款语音转文字的本地运行的一个软件非常的火爆(闪电说)。
在这个软件里面呢,你可以导入语音识别的模型,语音识别模型可以在本地运行;转换你的这个语音输入,然后效果呢非常好,识别很准确,识别速度极快。
但是我遇到一个问题,就是使用这个软件,输入一句话之后,界面上只输出一个V字母。
然而,在闪电说的history里面。是可以发现它是已经被准确识别了。
定位原因
原因是我使用了2AHK的这个脚本。 脚本作用是让电脑的左alt键映射成ctrl键,左ctrl键映射成alt键。 实际代码就1行,如下:
LAlt::Ctrl
这个两个脚本对应的代码分别是他们的作用是使用管理员权限,打开1个AHK的脚本。因为如果使用管理员权限的话,他在有一些特殊情况会用不了。
代码
@echo off
PowerShell -Command "Start-Process 'C:\Program Files\AutoHotkey\AutoHotkey.exe' -ArgumentList 'C:\Users\xlu\Desktop\com-ctrl.ahk' -Verb RunAs"
实际上这个代码也非常简单,例如这个
LAlt::Ctrl
但是运行这两个脚本之后,能实现这个alt和ctrl映射的问题。
但是还存在一个问题,如标题说的那样。
键盘按键映射解决方案
- 微软出品的powertoys工具箱。 2. 这个工具箱功能非常强大,可以自定义一些按键的映射。但是它的权限似乎不高。通过这个映射修改之后呢,依然存在和之前一样的问题。
- 使用一个在github上收藏的一个开源仓库SharpKeys,它的github的star数有将近7K。
推荐的注册表修改工具:SharpKeys
SharpKeys 的主要功能是图形化地修改 Windows 注册表中的 Scancode Map 键值,从而实现按键重映射。
SharpKeys 的优点:
- 轻量且免费: 软件本身很小巧。
- 系统级生效: 修改是直接写入注册表的,一旦设置并重启电脑后,映射就会在系统底层生效,不需要常驻后台运行(不像 PowerToys 需要后台运行)。
- 永久性:,因为系统级别的修改,所以呢最后无论是换什么键盘,加什么软件,它最后输出的结果都是一样的。
操作步骤(与 PowerToys 类似):
-
下载并安装 SharpKeys。
-
打开 SharpKeys,点击下方的 Add (添加) 按钮。
-
第一次映射:
- 再次点击 Add (添加) 按钮。
- 在左侧选择 Left Alt (00_38) 。
- 在右侧选择 Left Control (00_1D) 。
-
第二次映射:
- 在左侧的 **Map this Key (映射此键)** 列表中选择 **Left Control (00_1D)** 。
- 在右侧的 **To this Key (到此键)** 列表中选择 **Left Alt (00_38)** 。
-
点击底部的 Write to Registry (写入注册表) 按钮。
-
SharpKeys 会提示您需要 重启 (Reboot) 电脑才能使更改生效。