> 项目地址:https://github.com/zskr-at-ladge/text-reader

一、起因:一个小小的需求

一直有个小痛点:工作需要英语,网上看一段英文文章来学习,有时候想"听"读音而不是只"看",想找一个**选中文字就能朗读**的小工具,找了一圈没找到满意的——要么太重,要么不支持中文,要么操作麻烦。

于是我想:**能不能自己做一个?**

需求很简单:

1. 选中任意文字

2. 出现一个朗读按钮

3. 点击朗读,再点停止

4. 不要弹窗,不要复杂操作

二、求助AI:WorkBuddy全程代劳

我用的工具是 **WorkBuddy**——一个本地运行的AI编程助手,可以理解自然语言指令、写代码、调试、甚至帮你推代码到GitHub。

我跟它说:

> *"我想给我电脑加一个功能:选中文本后,鼠标右上角出现一个声音标志,按Enter朗读选中文本,这个难吗?"*

它说:**不难,完全可以做!**

三、第一版:键盘触发方案(踩坑)

WorkBuddy很快写出了第一版:选中文字 → 右上角弹出🔊图标 → 按**Enter**朗读。

但马上发现问题:**Enter键冲突!**

在任何输入框里选中文字后按Enter,文字会被编辑/换行,根本没法正常朗读。这是**根本性的设计问题**,换按键也没用。

> 💡 **AI的优势在这里体现**:它没有固执地让我"换个按键",而是主动提出:**直接点击图标朗读,零冲突!**

四、第二版:点击触发 + 系统托盘

改版后的方案:

- 选中文字 → 松开鼠标 → 右上角出现🔊图标

- **点击图标**朗读,再点停止

- 加入**系统托盘图标**,随时可以看到程序在运行,右键可退出

这一步WorkBuddy帮我:

1. 用`tkinter`做了悬浮图标窗口

2. 用`pystray`做了系统托盘

3. 用Windows原生的`System.Speech` PowerShell命令做TTS(**原生支持中文,无需额外模型**)

五、打包开源:WorkBuddy帮我推到GitHub

功能完成后,我想开源。我跟WorkBuddy说:

> *"把这个功能开源到我的GitHub吧,写好README"*

它做了这些事:

1. 自动写了`README.md`(包含功能介绍、使用说明、技术原理)

2. 写了`LICENSE`(MIT协议)

3. 写了`.gitignore`

4. 用我的GitHub Token初始化了git仓库

5. 直接`git push`到了我的GitHub

**全程我只需要提供GitHub用户名和Token,其他全部自动完成。**

六、最终效果

| 功能 | 状态 |

|--------------------------|------|

| 选中文字弹出图标 | ✅ |

| 点击图标朗读        | ✅ |

| 支持中英文            | ✅(Windows原生TTS) |

| 系统托盘常驻        | ✅ |

| 零键盘冲突            | ✅ |

| 开源到GitHub        | ✅ |

---

七、技术细节(给开发者看)

核心依赖

keyboard          # 模拟Ctrl+C获取选中文字

pyperclip        # 剪贴板读写

pystray + Pillow # 系统托盘图标

tkinter          # 悬浮图标窗口(Python内置)

ctypes           # 调用Windows API获取鼠标位置

```

### TTS实现(支持中文)

不依赖任何第三方语音包,直接调用Windows原生API:

```python

powershell -Command "Add-Type -AssemblyName System.Speech;

$s = New-Object System.Speech.Synthesis.SpeechSynthesizer;

$s.Rate = 1;

$s.Speak('你好世界');"

```

### 检测选中文字的原理

鼠标左键松开后,模拟`Ctrl+C`,对比剪贴板内容变化来判断是否有选中文字——简单有效。

---

八、总结:AI辅助开发的实际体验

这次从**想法**到**可用程序**到**开源发布**,全程用自然语言跟AI对话完成,有几个感受:

**✅ 适合的场景:**

- 有明确需求但不想从零写代码

- 功能相对独立、逻辑不复杂

- 需要快速出原型验证想法

**⚠️ 需要注意的:**

- AI写的代码需要你自己测试验证(我的Enter键冲突就是例子)

- Token、密码等敏感信息不要直接发给AI(事后要及时撤销)

- 最终还是要理解代码在干什么,不能完全当甩手掌柜

---

九、试试看?

项目完全开源,代码不到200行,适合Python新手学习:

🔗 **https://github.com/zskr-at-ladge/text-reader**

如果你也想用AI做小工具,强烈推荐试试**WorkBuddy**——它不只是"回答问题",而是真的能帮你把想法落地成可用的东西。

*如果你觉得这个项目有用,欢迎Star⭐、Fork🍴、提Issue!*

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐