WorkBuddy文本朗读助手:从想法到开源全流程
说实话,有个长期困扰我的痛点:工作上需要用英语查阅资料,浏览英文网页时,比起“看”文字,更想“听”读音。一直想找一款选中文本就能朗读的轻量级工具。搜了一圈,要么功能臃肿,要么不支持中文,要么操作步骤繁琐。索性自己动手造一个。

一、起因:一个极简需求
需求其实很纯粹,只四点:选中任意文字,自动浮现朗读按钮,点击即读,再点即停。全程不弹窗、不绕弯子。就这点功能,市面上愣是找不到顺手的产品。
二、求助AI:WorkBuddy全程代劳
这次没有从零硬啃代码,而是借助了WorkBuddy——一款本地运行的AI编程助手,能理解自然语言指令,负责写代码、调试,甚至帮我把项目推到GitHub。
开门见山地跟它说:我想给电脑加个功能,选中文本后鼠标右上角出现一个声音图标,按Enter就能朗读。这个能实现吗?
回答很干脆:不难,完全可以做!
三、第一版:键盘触发方案(踩坑实录)
WorkBuddy迅速给出第一版:选中文字后,右上角弹出图标,按Enter键朗读。听起来挺顺,但一上手就暴露问题——Enter键冲突了。
在任何输入框内选中文字后按Enter,要么编辑文字,要么换行,朗读功能根本没法正常触发。这并非换一个按键就能解决的,而是底层设计缺陷。
???? AI的灵活之处在这里体现得淋漓尽致——它没有固执地建议“换个按键试试”,而是主动提出:直接点击图标朗读,零冲突。
四、第二版:点击触发 + 系统托盘
改版后的逻辑很清晰:选中文字,松开鼠标,右上角浮现图标,点击图标开始朗读,再点一下停止。同时集成系统托盘图标,程序运行状态一目了然,右键即可退出。
这一步WorkBuddy搞定了几个关键点:用tkinter构建悬浮图标窗口,用pystray实现系统托盘,最关键的是借助Windows原生的System.Speech PowerShell命令做语音合成——原生支持中文,无需额外下载模型,干净利落。
五、打包开源:WorkBuddy帮我推到GitHub
功能跑通后,下一步自然是开源。跟WorkBuddy说了句:把这个项目开源到GitHub吧,顺便写个README。
结果它一口气干了几件事:自动生成README.md,涵盖功能介绍、使用说明和技术原理;补上LICENSE(MIT协议);写.gitignore;用GitHub Token初始化本地仓库;最后直接git push推送上去。全程只需要提供用户名和Token,剩下的全部自动完成。
六、最终效果
从功能清单看,基本覆盖了最初设想的所有能力:选中文字弹出图标、点击图标朗读、支持中英文、系统托盘常驻,而且完全没有键盘冲突的问题。
七、技术细节(开发者视角)
核心依赖很轻量:keyboard用于模拟Ctrl+C获取选中文字,pyperclip处理剪贴板读写,pystray配合Pillow做系统托盘图标,tkinter是Python内置的,用来做悬浮图标窗口,ctypes则调用Windows API获取鼠标位置。
TTS的实现也很有巧思,不依赖任何第三方语音包,直接调用Windows原生API:通过PowerShell命令加载System.Speech程序集,新建SpeechSynthesizer实例,设置语速,然后直接Speak。中英文都支持,代码只有寥寥几行。
检测选中文字的原理也很巧妙:鼠标左键松开后,模拟Ctrl+C,对比剪贴板内容的变化来判断是否有选中文字。简单,但确实管用。
八、总结:AI辅助开发的实际体验
这次从想法到可用程序再到开源发布,全程用自然语言跟AI对话完成。有几个感受值得分享。
适合的场景很明确:有明确需求但不想从零写代码,功能相对独立且逻辑不复杂,需要快速出原型验证想法。这是AI辅助开发的甜区。
但也需要注意几个问题:AI写的代码一定要自己测试验证,比如Enter键冲突就是在实际使用中才暴露的;Token、密码这类敏感信息不要直接发给AI,事后要及时撤销;归根结底,还是要理解代码在干什么,完全当甩手掌柜是不行的。
九、试试看?
项目完全开源,代码不到200行,对Python新手来说是个不错的练习素材。如果你想用AI做小工具,WorkBuddy这类工具确实值得一试——它不只是“回答问题”,而是真的能帮你把想法落地成可用的东西。