KeyTone

LuSrackhall/KeyTone: KeyTone is a ready-to-use software that can simulate the sound of keyboard strokes in real-time.「KeyTone 是一款即用型软件,可以实时模拟按键敲击的声音。」

如果工作或学习的公共场所需要保持安静, 而自身又不反感甚至习惯了按键敲击的声音, 通常只能二者取其一。为缓解这种矛盾, 出现了一批用于模拟按键敲击声音的软件, 以结合静音键盘+耳机来达到多方满意。

KeyTone 也是因此而产生的, 一开始它只是个go语言开发供自己使用的二进制程序, 但为了满足更深度的使用需求与自己的分享欲, 我进一步利用Electron为其制作了UI界面----使其脱离了配置文件的束缚, 成为了一个真正简单易用的软件。

个人认为, 它的优势不止于简单易用。在日常使用中, 我基于自身需求逐步为其添加了许多自认为不可或缺的功能, 例如允许音量调节至超过100%、设置是否开机自启动、设置启动时是否隐藏窗口等。当然, 为其开发UI的最核心原因在于, 我想实现自己所设想的 高级键音 功能, 并让用户能够尽可能便捷地自定义键音。

高级键音的说明参见文档中的此部分内容, 本文不过多介绍。

KeyTone 不提供任何音频文件, 未来也不会提供。

我没有专业的录制设备, 并且自身只有笔记本自带的薄膜键盘和一个外置的静音键盘, 我没有资格更没有能力提供这些。

大家可以上传自制或收集的音频至KeyTone中使用。如果您用于创造键音专辑的原始音频文件是自制的, 可以考虑将其导出并分享给他人使用。

考虑到自行录制的音频容易存在音量不一的现象, KeyTone在创建声音时, 提供了单独调整每个声音的音量的设置, 以保证声音专辑制作使用和分享时的音量一致性。----这些音量设置独立于全局的音量调节, 仅作用于键音专辑内部的具体声音中, 具体可参见文档中的此部分内容

作为一名业余开发者, 我可能不太擅长性能的优化或打包体积的优化, 更加关注功能实现的成本和软件长期使用的稳定性, 开发KeyTone的部分原因是实现自己对按键音模拟应用的独特想法。

获取方式

  1. GitHub Releases 免费获取
    作为开源项目,您可以从项目的 GitHub Releases 页面获取。

    也可以通过访问 KeyTone 的 官方网站 来获取最新版本。----此官网的下载链接走的仍是 GitHub Releases 的下载渠道。

  2. itch平台 免费获取

    通过itch网站进行下载, 点此进入发布页面

  3. 应用商店

    注: 此渠道仅作为支持本项目的主要赞助渠道之一。

    通过各平台的官方渠道商店获取 KeyTone 的最新版本。

更新内容

4 个赞

比之于功能来说,体积有些过于巨大了。我知道Electron空包就差不多这么大了。

所以其实你可以考虑使用其他的UI框架。比如你使用 Golang 编写功能的话,个人可以推荐你 Golang+Wails+Svelte 的组合,个人常用,开发环境易于搭建,开发体验也比较顺畅。

ps. 如果有需要的话,我也可以为你录制一些真实的按键音,供大家免费使用。

1 个赞

选型时, 一开始也是优先考虑的wails, wails2生成系统调用代码的速度有些慢, 想着先electron求稳, 功能先行, 直接舍弃系统调用, 后续等wails3发布了再考虑同步进度(KeyTone中舍弃了系统调用, 几乎可无痛迁移至wails3, 但开机自启动的功能可能会受影响), 结果wails3到现在还没正式发布, 据说wails3改了好多写法, 长期看下来等其发布了再引入比较好。

electron的空包应该比我这个项目的包小不少 :rofl: (项目中光 go 的二进制包就占了近乎12M, 后续如果换成wails的话, 预计整体项目能控制在30M之内)

前端框架我接触的那两年正好vue比较火, 就用下来了。

ps. 如果有需要的话,我也可以为你录制一些真实的按键音,供大家免费使用。

如果可以的话, 那就太好了, 感谢您对项目的支持!!!

可以内置一些CC协议的录音

1 个赞

感谢大佬推荐的网站!

内置的话, 感觉只要不是自己制作的, 终归是不好界定原始出处。

并且内置太多的声音, 会进一步增大软件的体积(项目采用多语言杂交结构, 本身尺寸就已经大于常规项目了 :sob:)

目前采取的策略是鼓励用户在第三方网站相互分享创意, 而我自己仅针对软件本身进行长期维护

比如我自己为KeyTone制作的分享示例
Keytone-Custom-Album-Example by LuSrackhall

创造这些示例所依赖的音频源文件来自于另一个开源的键音模拟应用mechvibes中的内置音频文件, mechvibes作者最近正在用rust重构它。

image.png

@LuSrackhall
这次录制选用Superlux S241这个小振膜电容麦。会录制一款类似青轴质感的轴体声音,包括不同力度的按压,按下、触底和弹起的声音。

1 个赞

@LuSrackhall 第一个轴体录音已完成。放置于如上仓库中,以CC BY-NC 4.0许可证免费共享。

包含了三种力度的click声各5条,以及分别录制的触发、触底和释放声各6条。总共33条录音。

2 个赞

这是个好东西啊

和这个差别大么
https://www.yingdev.com/projects/tickeys

老哥用心了, 这不仅仅是几个录音, 这背后是您花费的时间和精力, 这份支持太珍贵了! 这对我和这个工具都是巨大的鼓励和帮助!

我打算这样使用它们

在这之前请容许我澄清一些事情

  • 由于市面上的键盘 并没有 按压力度传感器以及触底传感器 (硬件层面受限), KeyTone源码所依赖的事件库中, 也只能获取到按键被按下或释放的事件(软件依赖受限), 因此:
    • 对于三种不同力度的click声, 我只能将其作为独立的三个声音使用。
    • 对于您所录制的按键触底声, 我可能需要将其和您录制的按压声音重新合并后, 作为新的按压声使用。但这样的合成我不知道是否会影响原有音质——如果您保留有录制过程中的源文件, 您可以不用单独裁出触底声, 而是可以将其作为按压声的一部分。

当然, 为了可以尽可能减少您所花费的时间, 我推荐您可以仅做录制部分, 然后把裁剪的工作交给KeyTone软件中的声音裁剪步骤。

  • 我的想法是, 您直接将包含多个按压/释放声音的音频文件上传到仓库即可(每个按键音之间有明显间隔即可)。
    • 当然, 对于此步骤, 我们可以在您仓库中打开一个issues以详细讨论如何更节省时间精力的录制, 以及如何确保您所努力录制的每一个声音都可以用到之后我们将要制作的键音包中——避免出现像我澄清的部分那样--这会白白浪费掉您的时间。
    • 而且我们讨论的结果, 可能帮助到更多想要使用 KeyTone 软件制作 个性化键音专辑 的人。 (虽然目前KeyTone没太多用户)
  • 然后, 我会协助制作出KeyTone软件所支持的键音包, 并通过pr提交到您录制按键音的仓库中。
  • 在我们的努力下不断迭代此仓库, 最终我们对某个键音包满意后, 可以在您的仓库中发布对应的release版本。
  • 我在KeyTone的仓库注意readme文档中, 链接您的仓库, 以分享由您录制的可在KeyTone中直接导入使用的按键声音, 以让更多使用KeyTone的用户可以使用它们。

不过, 我们合作过程可能并不是实时的, 因为我只有在下班后或者周六日才能有整块的时间做这些事情。

再次衷心感谢您的大力支持!

捕捉佬友 :melting_face:

1 个赞

录制多条的意义不仅仅在于随机使用每一条来增加随机性和真实感,更可以通过微调EQ和音量来产生更多的随机性,让耳朵不至于太快疲劳。

对于不同类型的按键音,你可以按照自己需求来自由使用。

click音为一次完整按下释放的过程,仅在不需要区分按下与释放两个声音时使用。

按下与释放的声音无需解释。触底的声音可以不使用,或者按我的设想,可以在按下按键并超过一定随机时间 (t+rand(dt)) 未释放时播放。具体舒服的时长可能需要经过测试来确定一个合理的范围。这样可以为每次按键的声音增加更多的随机性。

由于完整录音音频时长较长,无损的wav格式体积会较大,个人对体积比较在意,所以不考虑在仓库中放置完整原始档。可以考虑在Release时包含原始录音文件,仓库中包含的应当只有可以直接使用的音效。

我详细看了下, Tickeys应该是个支持MacOS系统下使用的开源软件, windows版本是闭源的。

不过具体差别我不清楚 :joy:, 但从其官网看,

  • 这是个巨佬前辈好多年前做的(开源的MacOS版是rust+苹果原生o-c写的, 体积肯定小, 这对于在乎的用户来说是个巨大的优势。
  • 单tickeys软件的介绍图来看, 此软件似乎提供的有自带的多种按键音(但看不出其是否支持用户自定义按键声音)
    • 这一点上不同的是, KeyTone是不在软件内集成按键声音的(仅有一个用于测试软件功能是否正常的声音), 更倾向于提供丰富的个性化定制功能, 所使用的键音专辑, 需要通过网友的分享或是自己制作。(当然, 我在官网中分享的有一些制作好的 示例键音专辑, 可以作为参考或是直接使用)
    • 如果用户愿意, 可以利用KeyTone的键音专辑制作功能, 几分钟内轻松的复刻tickeys上自带的这些按键音。(按照其仓库的开源协议, 如果仓库中有这些按键音的原始音频文件, 就可以做到。否则, 不可能也不要尝试。)
  • linux系统上, KeyTone目前并不支持。 但Tickeys似乎有个由社区开发的Liunx版本。

好的,

您仓库的目的是为了提供裁剪好的可直接供大家使用的轴体声音源文件。

我会在介绍您仓库的时候提到。

已更新KeyTone仓库的README文档。感谢您的付出和奉献精神。

下一步我会尝试看能不能建立一个能够试听和试用的网页。

试听试用功能也许可以围绕声音展开, 这样应该可以面向更多类似功能的软件, 而不是仅针对KeyTone, 而且以声音为主或许能够碰撞出更多的可能性。

基于ai生成asmr键盘的音频, 做了个新键音包的系列。

又新发现了不少键音专辑制作过程中的崩溃bug, 周末有空的话再修。(软件的常见后台使用场景, 是没有崩溃bug的, 至少我这个重度用户目前没发现——仅指崩溃bug。)

不过我似乎确实没啥艺术细胞…怎么做都不理想。

但是总体思路我感觉没啥问题, 反正目的就是为了推广给更多用户, 让大家一起发挥。

最近, wails3 的 alpha.10 发布了, 又是一大堆api的名称重构。

不知何时能进入beta测试, 更无法判断其正式发布的日期。
记得v2的发布, 光在alpha里面就预发布了六七十次, beta中也有几十次预发布。