mac 豆包的划词功能实现很牛 x, 估计是用 accessibility api? electron 做的程序它也能很精准获取到, 甚至是微信(我看微信用 appium 出来也就一坨), 那豆包是怎么做到的, 找 cluade/chatgpt...写了好多个版本都不能获取得到(用的是 vscode 的 debug 模式启动一个 electron 程序)
我去参考 https://github.com/openai-translator/openai-translator 发现它这一个模块的实现是依赖了作者自己写的 https://github.com/yetone/get-selected-text, 问题在于, 它可能会调用剪贴板, 而且性能很差, 一次执行要几百毫秒(执行过程中系统会卡住)
有这方面经验的大佬解惑一下吗?
1
zzlove 11 天前
我记得豆包的划词后,也是会先复制到剪贴板的
|
2
cryptovae 11 天前
|
![]() |
3
musi 11 天前
其实 accessibility 有些 app 是获取不到的,electron 因为是 chromium 系有现成的方案,那些获取不到的一般都用剪切板做兜底。
另外,你让 AI 写就别让他写 electron 程序,你告诉他用 C++给你调 mac 的 api ,然后再让他把 c++打包成 node 的插件让 electron 去调用。我去年用 AI 写过 win/mac 的划词功能(并且我没有任何 c++的背景) |
![]() |
6
jackple OP @musi 我是好奇为什么豆包没有剪贴板兜底(至少在我的机器上没用上剪贴板兜底)的情况下, 它能做的性能和准确度都很好, 还有就是微信也能获取到, 那哥们你的程序能获取到微信的 selection 么?
|
![]() |
7
stone9527 11 天前
我 win 用豆包划词有时会卡住不动,遇到好几次了
|
![]() |
8
lukeluke 11 天前
用 accessibility 的 AXUIElement 去获取其他应用的文本得把 sandbox 关了,但关了之后就没法上架了。我自己软件的划词功能也是依赖剪切板实现的。把剪切板原有的文字先保存下来,然后模拟键盘的拷贝按键,读取剪切板内容,再把原有的文字放回去。这一整套流程其实用时不多,基本上是同步的,可能剪切板监控软件感知不到?
|
![]() |
10
Danfi 11 天前
貌似是会有剪切板兜底的,像图书里有版权的书籍,选中翻译的话会有版权信息一起出来的
|
![]() |
11
SakuraYuki 11 天前
不使用剪贴板的软件里,bob 的比较好用,绝大多数情况下都能获取内容,不过要额外装一个 helper
|
![]() |
12
jackple OP @SakuraYuki 刚刚试了一下, 它的获取不准, 失败率有点高
|
![]() |
13
SakuraYuki 11 天前
@jackple #12 请问是什么样的情形,我用 bob 基本没遇到过获取不到的情况
|
![]() |
14
skiy 11 天前 via iPhone
豆包 chrome 扩展下架了。
感觉它太主动了,我一选择,它就跳框出来,有时我只想复制而已。不太好用。 |
![]() |
15
jackple OP @SakuraYuki #13 我再试又好像不会了
|
![]() |
16
jackple OP @SakuraYuki #13 应该我的快捷键冲突了导致
|