基础安装
基于SSFRPA开发的语音控制
特性介绍
- 支持唤醒,使用海棠海棠唤醒
- 支持热词增加,例如新出的游戏名称无法识别,可以自己添加进去
- 支持语音触发自定义快捷键、打开任意应用程序、定位桌面的按钮、操控浏览器 结合rpa可以最大化实现控制电脑的功能
- 支持自定义语音命令后打包发布,打包发布后代码不可见,发布后拷贝exe和相关文件即可使用
- 使用的语音识别模型也可以自己训练,真正做到从模型到应用全方位可自定义
- 基于ssfrpa2.x api稳定可靠,官网后续会增加官方语音控制指令
- 提供丰富的基础指令例子,依葫芦画瓢可以自定义出自己的语音助手
安装与入门
- 从github下载 [https://github.com/SSFRPA/SpeakControl] 最新语音控制版本 或者到[https://hf-mirror.com/lugof/ssfrpa/tree/main] 选择一个新版本进行下载
- 解压缩后在根目录下,运行ssf_ui.exe
直接运行:
将直接运行语音控制不带界面反馈,一般用于快速测试指令启动开发环境:
用于自定义指令,执行完会自动下载vscode 并配置好开发环境,此选项适用于有一定简单的编程基础使用打包程序:
修改程序后可以直接运行打包变成自己的app发布给别人使用,第一次体验语音控制程序建议直接使用此功能,打包好后运行bin目录下 语音控制.exe录制坐标:
类似按键精灵,可以录制你所点击的坐标和键盘输入,录制完会在records目录下生成一个脚本(比如202505291634.js) 运行此脚本可以重现你刚才的鼠标键盘操作录制元素:
雷同录制坐标功能,但是录制坐标是根据绝对位置进行录制,有时候你所点击的目标会有所变动,比如一个按钮,可能随着窗口变动就发生变动了,这种时候推荐使用元素录制,元素录制对窗口元素较为敏感。
如何开始使用
- 运行ssf_ui.exe 后点击打包程序
- 运行打包程序后,在bin目录下执行语音控制.exe 启动成功如图
- 使用海棠海棠唤醒语音助手(你可以使用 "海棠海棠" "海棠同学" "小棠小棠" 进行唤醒) 唤醒后会一直监听你的语音输入,此时你可以念 打开记事本,如果运行正常将会打开记事本,默认我们集成了一些常用命令,可见末尾的命令列表,或者打开modules目录下查看命令列表
- 如果需要控制浏览器,例如使用指令"搜索天气预报",那么你需要额外安装浏览器插件,插件可以从google商店下载 [https://chromewebstore.google.com/detail/ssf-%E8%87%AA%E5%8A%A8%E5%8C%96%E6%8F%92%E4%BB%B6/nlpkochpdcicaiogdlbionoheneabnom]
或者在根目录底下找到nlpkochpdcicaiogdlbionoheneabnom.crx拖入浏览器扩展里面进行安装,
5分钟快速速了解命令
模式介绍
你可以通过念 海棠唤醒模式、海棠输入模式、海棠翻译模式、海棠命令模式进行模式切换,每一种模式都有特殊用途
海棠唤醒模式
目前默认的模式,此模式下,任何指令执行都需要先进行唤醒后生效,你可以念"海棠海棠" 当听到叮的一声,代表唤醒成功,此时你可以继续下达指令,比如打开记事本
海棠命令模式
此模式下,将会持续监听麦克风输入,此时需要按capslock才会开启监听,大小写灯灭的情况下不会监听语音输入, 此命令用于连续下达指令,不用每次唤醒海棠,注意要切换到唤醒模式,此时只能念" 模式切换唤醒模式 " 不能念" 海棠唤醒模式 "去切换
海棠输入模式
同样此模式需要大小写灯为点亮时有效,可以将语音输入的内容完全转为文本输入,用于实时语音输入
海棠翻译模式
同样此模式需要大小写灯为点亮时有效,
如何自定义命令
- 在modules目录下任意文件夹下(也可以是新建的文件夹),新建一个类似 测试.js的文件,里面输入如下代码
export function run(text) {
console.log("你好,你已经成功触发一个语音控制命令")
}
- 双击main.js 按ctrl+f5 后 念 "测试" 此时将在控制台打印出你好,你已经成功触发一个语音控制命令
直接匹配命令
这种命令是需要你完整念指令,比如"打开计算器" "打开记事本"等等,而语音控制是会自动读取module下的所有文件名,匹配符合"打开计算器"指令的文件
比如念 "打开计算器" 将匹配
会自动运行打开计算器.js里面的代码,并自动调用run方法,而run方法里面则是写的打开计算器的代码,通过此种命令可以打开任意应用程序,并给应用程序传递参数
export function run(text) {
ssf.Windows.run("calc.exe", []);
}
前缀命令
这种命令适用于一些前缀的组合词语,比如搜索百度 搜索天气预报,前缀都是搜索,只是后面的词语不一样,可以通过前缀命令大大减少命令的自定义数量
为方便演示,我们以按键回退_.js为例,这个命令是用于触发回退按键,而我们回退有可能要连续删除指定数量的字符,比如 输入的字符串是 abcdefg,我们念按键回退3,会自动删除三个字符,念按键回退5,则会回退5次
export function run(text) {
if (isNumeric(text)) {
//删除指定数量的字符
for (let index = 0; index < parseInt(text); index++) {
ssf.Input.key(ssf.enums.KeyCode.Backspace, ssf.enums.Direction.Click)
}
} else {
console.log("回退的只能是数字,比如回退5")
}
}
//判断是否是数字
function isNumeric(str) {
const num = parseFloat(str);
return !isNaN(num) && Number.isFinite(num);
}
独占命令
此模式需要硬编码,不能只靠modules下增加指令来运作 独占命令指的类似翻译模式和输入模式这种需要持续输入的命令,这些命令需要使用模式切换去使用 比如念"模式切换翻译模式",此时语音的中文输入结果将自动翻译为英文,独占命令会导致一直处于输入模式, 需要念 "模式切换命令模式"回退命令模式才可以执行其他命令