我们构建了完全在终端中运行的 Voice Chat(真的)
Source: Dev.to
这是对 GitHub Copilot CLI Challenge 的提交
我们构建的
VoiceSync — 因为谁需要 GUI,当你可以拥有黑客氛围时? 😎
我们构建了一个完全功能的语音聊天应用,完全在终端运行。它就像 Discord 和 Zoom 的结合体,拥有命令行美学。
亮点
- 🎙️ 实时语音聊天,带有实时波形可视化(你真的可以 看到 声波)
- 🔐 端到端加密(AES‑256‑GCM + Diffie‑Hellman,因为我们不是野蛮人)
- 💬 文字聊天 + 桌面通知(让你知道朋友何时吐槽你)
- 🌍 通过 ngrok 隧道在互联网工作
- 🤖 内置 AI 助手,由 GitHub Copilot CLI 提供支持(是的,Copilot 里还有 Copilot)
- 📊 音频质量指示器,实时显示延迟、比特率和数据包抖动
- 👥 加入/离开通知,让你知道谁在潜伏
技术栈: Node.js、WebSockets、SoX(用于音频)、Blessed.js(用于终端 UI),以及大量令人担忧的能量饮料。
致谢我的团队: @muhammedameen_enesiibrah 和 @thecodedaniel — 没有你们我根本无法调试那场音频回声噩梦 🙏
演示
截图
Source: …
我使用 GitHub Copilot CLI 的体验
好的方面
使用 Copilot 前: “我该怎么再次加密 WebSocket 音频流?”
使用 Copilot 后:
gh copilot suggest "encrypt websocket audio stream nodejs"……瞬间得到答案。
Copilot CLI 基本上是我们的第三只大脑。我们把它 集成 到应用内部,这样用户在使用 VoiceSync 时真的可以直接提问:
[You]: @copilot 这个应用的加密是怎么实现的?
[Copilot]: VoiceSync 使用 AES‑256‑GCM 加密并配合 Diffie‑Hellman 密钥交换…元编程?是的。实用?绝对。
Copilot 为我们解决的真实场景
来自地狱的音频回声 Bug
我们花了三天时间让主持人听到自己的声音两遍。Copilot 建议检查服务器是否在向自己广播。只需一行代码即可修复。痛苦 = 结束。
gh copilot explain "websocket server broadcasting to sender"SoX 跨平台噩梦
Windows 使用 -t waveaudio,macOS 使用 -d,Linux 使用……别的东西。Copilot 帮我们写了一个配置模块,能够检测平台并使用正确的参数。
gh copilot suggest "detect platform and use correct audio device args nodejs"终端 UI 渲染问题
文字像被诅咒的 PowerPoint 一样在面板之间渗透。向 Copilot 询问 Blessed.js 的批量渲染后发现我们调用 screen.render() 过多。啪,一下子修好了。
“哦,糟糕”时刻
最酷的部分?我们在开发期间使用 Copilot 如此频繁,以至于我们想到:“如果用户也能这样做呢?”
于是我们将 @copilot 添加为 应用内命令。现在使用 VoiceSync 的任何人都可以在不离开终端的情况下提问。就像有一个随时待命的开发团队。
Productivity Boost
老实说,我们大概节省了 40–50 小时:
- 再也不用在 Stack Overflow 上切换标签页
- 再也不用说“等一下,我去 Google 一下”
- 再也不用独自破解晦涩的错误信息
Copilot CLI 成为了我们的调试伙伴、文档搜索引擎和橡皮鸭三位一体。
我们学到了什么
GitHub Copilot CLI 不仅用于编写代码——它还能用于理解代码。当我们遇到错误时,我们不会愤怒地去 Google,而是运行:
gh copilot explain "SyntaxError: Unexpected token in JSON"它告诉我们我们正尝试将二进制音频帧解析为 JSON(这…是的,现在终于明白了)。
亲自尝试
# Install
git clone https://github.com/Boweii22/Copilot
cd Copilot
npm install
# Host a room
npm run host
# Join from another terminal/machine
npm run join -- localhost ABC123 YourName进入全屏模式
退出全屏模式
完整说明请参阅 README。支持 Windows、macOS 和 Linux。需要 Node.js 和 SoX(我们记录了所有细节,因为我们不是怪物)。
最后的想法
我们在极短的时间内完成了这个项目,这期间伴随着大量令人不安的压力 😭😅,并且要兼顾睡眠不足。GitHub Copilot CLI 成了我们第四位团队成员——我们之前根本不知道自己需要它。
如果你曾经想过,“我真希望能向终端求助,” 现在可以实现了。
另外,如果你仍在使用 Discord 与朋友进行语音通话,那你就错过了更出色的终端体验。快来 @ 我们吧。 😤
构建使用的技术: 过量的甜食、GitHub Copilot CLI、友谊的力量以及 WebSockets 😅
P.S. — 是的,我们知道 P2P 会更酷。这是 v2.0 的计划。现在,请享受真正可用的自托管语音聊天。
团队
[@_boweii](https://dev.to/_boweii), [@muhammedameen_enesiibrah](https://dev.to/muhammedameen_enesiibrah), [@thecodedaniel](https://dev.to/thecodedaniel)

