鼠标支持功能已经基本实现了, 支持5个常用的鼠标按键 {左键, 右键, 中键, 返回键, 前进键} 的测试键音以及与现有键音专辑功能的设置集成。
目前还没有发版 —— 想用上却等不及的朋友可以通过仓库中开放的源码运行起来体验鼠标按键的支持效果。
暂时没发版的原因:
-
下个版本我决定发1.0.0, 因此想尽可能修复一些遗留的bug。
-
各自独立这一步没实现(原因是我还没有想好UI界面该怎么分布 —— 毕竟我给软件设计的固定尺寸比较小, 但又不想改变这个初始设计, 以至于主页面相对紧凑, 选择多个键音专辑的话位置不够用。)
-
想找一些志同道合的伙伴共同维护项目代码 —— 前段时间迎来了项目的第一个fork让我很开心(总感觉要迎来本项目的第一个来自社区的pr), 因此我想着放慢更新节奏(本身也不快哈哈), 让项目的第一个pr来的更早一些。不过最近看开了, 有些事情还是顺其自然吧 !
总之, 我会努力修复现有bug、尽力实现新功能, 加速更新。 尽可能使KeyTone的1.0.0版本更快的到来。
由于遇到了一些上游依赖项的问题, 因此1.0.0的发布时间可能会推迟。
不过我已就相关问题作出了修复, 目前正在等待上游仓库进行合并。
即使上游仓库不合并相关修复, 也不影响我通过依赖自己的分支解决相关问题, 因此, 我会在1.0.0版本之前, 先发布一个0.6.0的版本, 并在继续使用一段时间测试没问题后, 与一些新功能一并的通过1.0.0版本正式发布。
已更新版本0.6.0。
此版本初步引入了常用鼠标按键的支持, 使 KeyTone 能够播放鼠标点击的声效。
此外, 还修复了键音专辑自定义创建过程中的众多核心问题, 显著提高了软件的稳定性和用户体验。
在 8月 1 日使用 AI 总结 start
KeyTone (键音模拟) 是一款由 LuSrackhall 开发的开源应用,旨在通过模拟按键声音,解决在公共安静场所工作或学习时,仍能享受按键敲击声的需求。该应用最初由 Go 语言开发,后利用 Electron 制作 UI 界面,使其操作更简单便捷,并具备音量调节(可超 100%)、开机自启动、启动时隐藏窗口等自定义功能。它不提供内置音频文件,而是鼓励用户上传或收集自制或收集的音频至 KeyTone 中使用,并在 itch.io 平台建立了键音专辑分享社区。
关于开发技术选型,LuSrackhall 曾考虑使用 Wails,但最终为了功能稳定性和UI界面的快速实现选择了 Electron,尽管这导致软件体积相对较大,但他仍希望未来能迁移到 Wails 3 以减小体积。社区成员 Nigh 建议改用 Golang+Wails+Svelte 组合,并主动表示可录制真实的按键音供项目使用。随后,Nigh 在 GitHub 上提供了首批青轴质感的按键录音(CC BY-NC 4.0 许可证),LuSrackhall 对此表示感谢,并详述了将这些录音整合到 KeyTone 的合作计划。对于内置 CC 协议录音的建议,LuSrackhall 基于版权界定和软件体积考虑予以婉拒。
在与同类软件 Tickyes 的对比中,LuSrackhall 强调 KeyTone 更侧重于提供丰富的个性化定制功能,不内置按键声音,且其键音专辑需由用户自行制作或分享。目前 KeyTone 支持 Windows 和 macOS 平台。
项目持续更新,LuSrackhall 已初步实现了对常用鼠标按键(左键、右键、中键、返回键、前进键)的支持。近期,KeyTone 发布了 0.6.0 版本,引入了鼠标点击音效支持,并修复了键音专辑自定义创建过程中的多项核心问题,显著提升了软件的稳定性和用户体验 LuSrackhall。开发者表示正努力修复现有 bug 并加速新功能开发,以尽快发布 1.0.0 版本,同时也在尝试利用 AI 生成键盘 ASMR 音频制作新的键音包系列 LuSrackhall。
在 8月 1 日使用 AI 总结 end
刚刚用github的编码代理为KeyTone贡献了一个新功能pr · Pull Request #96, 我已经将其合并了, Ai远程编码的体验真不错! 看来以后真的要拥抱Ai了~~
kat
(kat)
26
下了几个音效包试了一下,效果还不错!不过自己做音效的教程完全没看懂……算了,反正我手残党,还是乖乖用现成的吧
补充说一点使用体验吧,就是每个按键都有按下音和弹起音两个声音,就是说按一下会响两次,打字一快,声音密集得像机关枪。
现实中,敲键盘可能每个按键的轻重不一样,声音大小也不同,给人的感觉声音没有这么密集,这个软件就差了这点儿真实感。
要是能加点随机性,让按键声有点大小变化,应该会更「真实」一些。试了好几个音效包,最后我选了个黑轴的,它的按下声明显,弹起音小,整体听起来就没那么密。
有些人可能就喜欢这种很忙很快的感觉。但如果追求的是贴近真实,那就还是有点距离。
1 个赞
非常感谢您能针对KeyTone的日常使用体验作出真实反馈~~
您的真实反馈以及我们的交流可能帮助更多使用它的用户 —— 我也许会针对你的反馈对KeyTone作出一定程度的变更 —— 只不过具体落地时间可能在遥远的未来。
我认真阅读了您的反馈, 实际上, 您的所有需求(除按压力度外)都可在现有的KeyTone中得到解决。
-
开发KeyTone的初衷, 为的就是让不同用户可以个性化的制作/修改出自己所需的键音专辑。 也因此有了键音专辑的制作/编辑页面。KeyTone的键音专辑功能是我经过精心设计的, 能满足您所能想到的几乎一切需求。(说实话, 键音专辑页面的设计与开发时长, 几乎占用了此软件设计开发总时长的95%以上, 也是这个软件的特别之处。毕竟除此之外的其它功能, 无非是监听按键事件后播放个对应的声音, 几小时就能出个cli的demo以及配套的ui。因此, 如果您对我设计的键音专辑页面感兴趣, 我很乐意帮忙, 希望我的本次回复能够帮助到你。)
-
您所下载的示例中 的 专辑, 只初步的使用了KeyTone键音专辑页面的有限功能, 并没有使用到全部的键音专辑功能——也就是说, 您的现有需求完全可以通过键音专辑页面中提供的功能来解决。
考虑到我的教程您没看懂, 我会在下面仔细的针对您的具体问题进行仔细的回答。
- 您可以尝试结合我所作出的回答, 以及根据您已经下载并载入KeyTone中的示例, 来尝试着修改这些示例专辑 —— 最终修改出您所需的个性化键音专辑的效果。
下了几个音效包试了一下,效果还不错!不过自己做音效的教程完全没看懂……算了,反正我手残党,还是乖乖用现成的吧
关于这点, 我先说声抱歉, 可能我不太会写文章
, 造成了理解困难。不过这个文档水平确实算是我的极限了
。
补充说一点使用体验吧,就是每个按键都有按下音和弹起音两个声音,就是说按一下会响两次,打字一快,声音密集得像机关枪。
现有的键音专辑页面可以解决你的需求(可惜我的教程没能帮助到您
) —— 即
- 通过 步骤四(按键联动声效) 移除按键抬起时绑定的
音效。 (在keytone中, 这里的音效可能指的是所绑定的 音频源文件、裁剪定义好的声音 、至臻按键音。)
- 将此步骤中的
抬起测试音关闭。( 播放优先级: 单键配置>全键配置>抬起测试音。依次全部为空后, 就没有声音了)
- 此时, 这个被你修改过的键音专辑, 就只会播放按下声音了。
- 不过, 若是 不了解 音效包 的制作的话(可能是我文档的锅), 这确实有难度。 —— 但现在您可以大胆尝试下, 搞坏了音效包删除后重新导入就好了, keytone的音效包导入是拷贝性质的, 不会破坏原始的下载。
— 如果仍感到困难的话, 请反馈。这将对如下issue的优先级产生关键影响。
当然, 也可以选择直接选择只有按下声音的示例音效包, 记得似乎是这个示例 ——> NK Cream (original by Ryan).ktalbum。
- KeyTone目前的发展在起步阶段, 因此几乎没有太多可供用户选择的音效包, 不过我相信, 未来会逐渐丰富起来的
现实中,敲键盘可能每个按键的轻重不一样,声音大小也不同,给人的感觉声音没有这么密集,这个软件就差了这点儿真实感。
- 关于轻重不一样这一点, 我确实无能为力(毕竟真实的键盘中不具备力度传感器, 我无法在脱离硬件的软件层面识别到真实的按压力度), 最多只能获取系统默认提供的按键的按下或抬起信号。除非有键盘厂商能够推出具备力度传感器和配套软件驱动的键盘, 这样我可以实现个插件功能以载入厂商提供的对应键盘型号驱动, 最终完成并提供更加具有想象力的按键音专辑的创作功能。—— 不过这些显然是不现实的
。
要是能加点随机性,让按键声有点大小变化,应该会更「真实」一些。试了好几个音效包,最后我选了个黑轴的,它的按下声明显,弹起音小,整体听起来就没那么密。
有些人可能就喜欢这种很忙很快的感觉。但如果追求的是贴近真实,那就还是有点距离。
现有的键音专辑页面可以解决你的需求(可惜我的教程没能帮助到您
) —— 即
- 在 步骤二(裁剪定义声音) 中, 裁剪定义多个音效相同但音量不同的声音
- 在 步骤三(铸造至臻键音) 中, 通过
随机播放模式 , 选择多个您刚刚裁剪定义好的音效相同但音量不同的声音(至臻键音的随机播放模式, 是支持多选的)。
- 在 步骤四(按键联动声效) 中, 为具体按键绑定您刚刚通过 步骤三(铸造至臻键音) 所制作的
能够随机播放音效相同但音量不同的至臻键音。
- 此时, 当您按下按键时, 就能够通过 步骤三(铸造的至臻键音) 中增加的随机性,让按键声有点大小变化了, 或许能够满足您所说的 —— 应该会更「真实」一些。
- 不过, 若是 不了解 音效包 的制作的话(可能是我文档的锅), 这确实有难度。 —— 但现在您可以大胆尝试下, 搞坏了音效包删除后重新导入就好了, keytone的音效包导入是拷贝性质的, 不会破坏原始的下载。
— 如果仍感到困难的话, 请反馈。这将对如下issue的优先级产生关键影响。
kat
(kat)
28
感谢你的耐心指导,上午摸索着制作一个音效包。现在我已经基本搞懂了音效包的制作流程,也明白了「至臻键音」是如何用来实现随机效果的。
不过,在自己动手从录音里提取单个按键音时还是碰到一个无法解决的问题:我试着截取一个短的音频片段,希望能得到一个干净的单次按键声,但得到的音频最终却变成一长串的连击声。软件明明支持毫秒级裁剪,但是截取出来的片段却过长了。请看下面录屏:
我尝试把截取片段设为1毫秒、2毫秒,裁减结果却还是一连串声音,时长明显失控。
另外,借此机会也想跟你分享一点我作为纯新手的感受。
1、 关于UI。
初次上手的时候,首先四部走的设计是很容易理解的,一看就知道跟着步骤走下去就行了,这个好评。可是,当我顺着引导走到第三步「铸造至臻键音」时,一下就懵了。这个名字看起来很高大上,但也让我下意识觉得这是个专业且无法绕开的核心步骤。当时我还完全没到搞懂「随机效果」是怎么回事,面对一个看似复杂的高级功能,第一反应就是「这个好难,我可能搞不定」,然后就默默关掉了。今天上午重新走步骤,走完第四步才终于明白第三步的作用,跳过它也可以制作音效包的。
如果把「至臻键音」从主流程里剥离出来,比如放到第四步的二级菜单里,作为一个「想让音效更随机?试试这个!」的进阶功能,会不会让上手门槛更低一点?
2、关于使用教程
教程过于偏重解释概念,而不是讲解作用和使用方法了,比如上面这个至臻键音的教程页面,前面这么大的篇幅,只有这一句是有用的:「更进一步、更高级、更富于变化的按键使用体验」,但这个说的还是很抽象,看完还是比较模糊的,读到这里心里面就一句话:「很好,快告诉我怎么个富于变化法,具体怎么做吧」。可是后面话锋一转,开始解释「……一个按键的完整活动周期……定义一个部分,或者都不定义……」,瞬间懵逼,耐着性子看了一下下面的独立、随机、顺序,字能看懂,但是怎么用则毫无头绪,关闭撤退。
整个教程给我的感觉就是,我去驾校学开车,教练给我讲方向盘是什么、转向灯是什么,刹车是什么,油门是什么,但就是不讲怎么开车。
建议: 直接一点,截图,旁边标注步骤,配上一句大白话:「想实现更真实的随机打字音?跟着这三步,把多个声音文件绑定到一个按键上就行。使用时会随机播放其中一个,模拟真实的打字音效……」
UI界面上已经有按下音和抬起音的设置,结合截图讲解的时候,基本上一看就懂。没有必要先用纯文字进行非常清晰的定义和解说,这反而给用户的理解徒增难度。先帮助用户用起来,后面在讲进阶的音量定义,高级玩法。
以上不一定都对,希望能有一点帮助。
1 个赞
kat
(kat)
29
我尝试用至臻键音做一个随机效果,但是失败了,按键的时候始终只有1个声音。可否帮我看看是哪里操作不对,音效包在这:suit08-2.zip - 蓝奏云
1 个赞
TecNico
(xianii)
30
.jpg)
OpenClickSound 的第二次录制已结束。
录制的相关 RAW 文件已存放至项目 raw 分支。请随意取用。
@LuSrackhall
1 个赞
关于这个问题, 您能否向我分享您的原始音频文件, 我来进行下测试, 看看是否是bug。当然, 我也会使用其它的源文件做测试, 因为从视频片段来看, 这明显是KeyTone存在bug, 因为1ms、2ms的声音显然是短暂甚至听不见才是正常的。
-
测试之前说下我的猜测, 完全ms级别的音频处理可能存在困难, 考虑到现实中的按键音时长大概是大于50ms的, 因此我在使用中一般会让这个差值大于50, 确实没尝试过太小的值, 因此这很有可能是我测试范围之外的潜在的bug。(您可以暂时的拉大这个差值试试)
-
还有就是, 对于这个需求, 我一般会使用一个工具——在KeyTone的开源代码仓库中可以找到, 我的一般差值大于50的论断, 就是从这个工具得来的 (
虽然可能并不准确)。
点击下载图标进行下载, 打开时会在浏览器中展示, 他可以预处理一段音频, 分析出大概的音频段的开始和结束时间(但并不完美, 存在一定的误差, 因此仍需要手动调整, 不过可以作为一个很必要的参考范围, 结合此范围不到一分钟就能找到一个单独的音的时间段)
我昨天晚上, 使用了很多手里已有的音频源文件, 企图设置秒数为很接近(只间隔几毫秒那种)来复现bug, 但没能复现成功, 定位此问题可能存在困难。 我会继续思考可能的原因, 以尽可能地复现然后修复。
我发现你的三个音频源文件在实际播放时, 几乎听不出来差别(这是你最终听不出随机效果的原因——这三个音频源文件的播放声音几乎一样) (您可以通过右键托盘图标对KeyTone执行静音, 以在裁剪定义声音步骤对话框中, 使用预览声音功能——这样可避免实时的按键音对预览造成影响)
-
首先, 由于这三个音频源文件都一样, 因此我选择你的 源文件 普通按键01.ogg, 来 裁剪定义 三个全新的、仅音量不同的声音(如下图, 分别为声音 —— test0、声音 —— test1、声音 —— test2 )。
-
然后, 制作至臻键音 —— test, 我只配置按下声音为随机模式, 然后绑定刚刚制作的三个声音。
-
最后, 绑定至臻键音到按下声音到全键按下声效的配置。
当然, 这只是简单的随机示例, 如果您希望某个音量的声音的随机播放的概率更大, 可以利用 步骤二(裁剪定义声音) 制作多个相同配置的(你所需要提升概率的)声音。 然后将其添加到 步骤三(铸造至臻键音) 对应 高级按键音 的选择声音列表中。
-
比如, 针对 声音 —— test0 制作多份(如拷贝3份声音 —— test0 (0)、声音 —— test0 (1)、声音 —— test0 (2))。
-
然后它们其添加到刚刚的至臻键音中, 就能使得音量 声音 —— test0 所代表的音量配置为0的(这里的0代表原始音量) 声音的随机权重, 从1/3 变为 2/3。(添加并关闭对话框后, 记得点击确认修改使其生效)
-
最后, 不用再去修改 全键按下声效的配置(因为这个步骤的逻辑依赖没有变化), 直接使用即可。
这是最终结果 —— https://wwxe.lanzoub.com/itF1Z369bz4j
- 话说蓝奏云是什么, 可以专门用于国内软件分发吗? 我刚注册了下, 用于回复你的诉求。
当然, 您可以按照以上套路, 裁剪定义更多不同音量的声音, 并将其添加到至臻键音的随机播放列表中, 来变相的模拟所谓按压力度的差值音量(以上示例可能并无法达到预期的体验需求, 但进一步微调打磨应该是可以的)(当然, 体验肯定是无法达到真实的, 毕竟有可能出现实际按的很用力, 但却随机到了音量较小的声音效果)
这种图文教程, 更适合对单一的需求场景做文档讲解, 但不同用户的需求显然不可能相同, 因此我的文档无法像您说的那样有针对性。—— 不过我们当前的对话, 就可以算是一个对于官方文档教程的最佳实践~~ 总之, 需求不同, 对文档的方向就会有不同的思考(不过需要承认的是, 我的写作水平确实不太够
)
在KeyTone中, 如果名称太长显示不全时, 可以通过shift+鼠标滚轮 来左右滚动, 以查看全部内容。
感谢您的付出! 相信这些音频源文件一定会在未来帮助到更多有个性化定制需求的用户!
kat
(kat)
34
好消息,在你的帮助下,我打造出了自己的音效包,效果超预期。
先同步一下之前提的几个问题:
关于短音频截取
说来也怪,换了新文件后我再也没能复现。的确一个标准的按键音的长度通常在是几十到一百多毫秒之间,当时我是拿几十毫秒到几毫秒这种极限情况在测试软件。由于那个有问题的文件已经删除,目前一切正常,这个问题就先翻篇了,若再次遇到,我再带着文件来向你反馈!
音频检测工具
感谢分享,它可以自动识别带有静音间隔的素材,已收藏
随机按键音问题
我检查了一下那 3 个声音,确实极为相似,记不清是导出时除了差错,还是素材本身就雷同。由于我的疏忽让你多花了时间,实在不好意思!
制作音效的技巧
截取同一音源再微调音量的技巧,瞬间让我打通了任督二脉,顿悟了 KeyTone 的精髓。现在算是初步掌握了 KeyTone 的用法,可以随心打造自己想要的音效包了。
第一个音效包
今天诞生的这套音效包,可以说完美契合我「既真实、又有细微变化」的构想。经过一番精细调整,声音清脆利落又富于变化,比之前下载的所有音效包都更合我的胃口。
我使用的键盘是电容键盘,敲击声比较小,启用 KeyTone 键盘音效的后,我发现这些恰到好处的键盘声,能让打字时的我更专注于当下。
以后想要什么音效都能自己动手做,丰衣足食,想想都觉得过瘾。千言万语汇成一句话:太感谢你了!
最后我用蓝奏云网盘是因为它的非会员分享文件不限速,不用登录即可下载,唯一限制是单个文件100M以内,分享小文件比较方便。
收到您的这次反馈,我反复读了好几遍。这简直是我能收到的最好的礼物!非常感谢您花费如此宝贵的时间,写下这么详细、真诚的分享。您的快乐和成功,就是我开发这款软件最大的意义所在。
首先, 恭喜您能成功打造出了自己心目中“完美契合”的音效包
!“既真实、又有细微变化”这个描述太精准了,能听到您能够通过自己的调整实现了这个构想,并且效果超预期(实际上我之前一直担心最终效果会不理想
),真的为您感到无比高兴。
也非常感谢您还专门同步了之前几个问题的后续情况。
- 关于短音频和文件的问题,非常感谢您能理解那是我之前没能测试到的极限场景。当然, 也随时欢迎您未来带着任何文件来反馈,这将能够帮助我让软件变得更健壮, 我也会继续探究可能造成此问题的原因。
- 音频检测工具能帮上忙就太好了!
- 随机按键音的问题请千万别放在心上,能一起排查并最终找到原因,本身就是一件有成就感的事, 我也经常会疏忽一些细节, 这些没什么大不了的。而且, 您的细致和认真确实有可能帮助我排除一些软件本身的潜在问题,谢谢您!
其次, 您提到KeyTone能让您“更专注于当下”,这句话对我来说是最好的褒奖。这说明软件不仅是一个工具,更成为了您沉浸式体验的一部分。这也正是我想象中它应该起到的作用
。
最后,再次感谢您的信任、耐心以及这份令人振奋的反馈。您的满意是我前进的最大动力。请尽情享受您独一无二的键盘声音吧!
祝您创作愉快!
1 个赞
kat
(kat)
36
当选项数量很多的时候,列表的排序没有规律,比如我命名的声音片段名称如下:letter01、letter02……letter10
结果是 Letter01 在列表最上面,而 Letter02 则离它很远,甚至跑到列表末端,这样毫无章法地查找令人抓狂。
是否可以考虑加高列表,并让列表自动按照声音名称进行拼音/字母排序?这样能显著提升用户体验,让查找过程更高效。谢谢!
好的, 我会将此问题加入里程碑中, 并在未来尝试解决这个问题!
当选项数量很多的时候,列表的排序没有规律 · Issue #104 · LuSrackhall/KeyTone
在真正实施之前, 或许我们可以在github的相关问题中 尽情探索解决此问题的最佳方案。(如果您使用github的话)
字母排序的方案确实不错, 但会不会因此限制用户的命名规范。(字母排序似乎并没有那么的智能, 这会限制不同用户的命名习惯——有些命名习惯是用不上字母排序功能的——或者说不够通用)
我之前的想法是等待Ai大模型的成本降低后, 直接通过大模型的语义理解能力, 进行符合用户习惯的排序(用户可以直接通过Ai对话框来调整软件中的排序内容, 只需要在对话时告知ai自己的命名习惯和希望的排序规则即可), 但由于目前来说的话成本确实太高, 因此搁置了。
总之, 我非常认同, 这确实是一个问题, 我会尝试解决的, 但也许需要很久。
我刚才又考虑了下, 目前的情况来说, 加入字母和数字的常用顺序排序做为默认的排序规则, 似乎也是不错的方式, 毕竟没有什么事情是完美且一步到位的, 有点规律的排序总比目前的完全乱序要好得多。
或许, 还可以在此基础上进一步增加搜索功能, 以帮助用户更加快速的定位。
kat
(kat)
40
好的,后续有问题会往 GitHub 提交
AI 方案可能是理想终局。但面对到眼下的燃眉之急,先用按照字母或数字序号进行排序,保住基本的便捷性,再图长远。
搜索功能是极好的,因为我使用的时候,每个声音片段命名都会考虑到后面调用,都会进行语义化的命名,所以搜索起来会有的放矢。