技术选型系列文章(一):项目背景与需求分析
我为什么决定做一个“让电视听懂人话”的系统
一、缘起:从同学的 AI 中台说起
事情要从今年年初说起。
我同学在做毕业设计,题目叫“企业级多智能体数据分析与报告生成系统”。技术栈是 Go + Python 微服务分层架构,核心功能是接收用户的模糊自然语言指令,通过自主任务拆解、多步推理和工具调用,自动化进行数据检索并生成深度报告。
听起来很酷,对吧?
那段时间他天天跟我聊 ReAct、LangChain、向量数据库。我一度被带节奏,开始焦虑:我要不要也学 Go?要不要也做一个类似的“企业级 AI 中台”?
但我问了自己一个问题:我真正喜欢的是什么?
答案很快浮出水面——我翻了一下自己的 CSDN 账号,100 多篇文章,其中 60 多篇是硬件折腾。从路由器刷 OpenWrt,到机顶盒救砖,再到风枪烙铁换内存芯片,我乐此不疲。我享受的不是写 CRUD,而是 “让物理世界听我的话”。
同时,我还有一个真实痛点。
我妈看电视,总是遇到问题:
-
这个要会员
-
那个找不到
-
操作太复杂
-
网速卡了怎么办
每次她打电话问我,我远程指导半天,她更糊涂了。我心里想:如果电视能听懂人话,该多好。
于是,我决定放弃“追风口”的念头,做一个真正属于我的项目——让电视听懂人话。
二、我的技术积累
在做这个决定之前,我有这些底牌:
| 能力 | 具体经验 |
|---|---|
| 后端开发 | Java + Spring Cloud,做过仿 B 站微服务项目,熟悉微服务架构、网关、服务发现 |
| 音视频处理 | B 站项目里用过 FFmpeg 转码、推流,熟悉音视频基础 |
| 硬件折腾 | 60+ CSDN 硬件帖,刷过 20+ 路由器、机顶盒,会风枪烙铁,懂 Linux 底层 |
| 网络基础 | OpenWrt、SSH、ADB、内网穿透,家里有软路由、NAS |
| AI 入门 | 学过 Spring AI、DeepSeek API,了解 RAG 和 Agent 基础概念 |
这些技能,单独看每一项都不算顶尖。但组合在一起,我发现一个事实:市面上几乎没有人同时懂 Java 后端、硬件折腾、音视频处理、AI 入门。
这是我的差异化。
三、需求分析
3.1 核心用户
我项目的第一个用户,是我妈。
她不是技术用户,不懂什么叫“开发者选项”,更不会用命令行。她需要的是:说一句话,电视就听话。
3.2 核心需求
从她的使用场景出发,我列出 MVP 必须满足的功能:
| 需求 | 优先级 | 说明 |
|---|---|---|
| 语音控制电视 | P0 | 说“打开 B 站”,电视真的打开 |
| 搜索播放内容 | P0 | 说“我想听周杰伦”,自动搜播放 |
| 控制米家设备 | P1 | 说“关灯”,蓝牙灯泡灭 |
| 记住偏好 | P2 | “小孩 9 点后不能看电视” |
| 控制路由器 | P3 | 说“限速小孩的 iPad” |
3.3 约束条件
除了功能,还有硬性约束:
| 约束 | 说明 |
|---|---|
| 隐私优先 | 电视截图、家庭设备信息不能上传云端,必须本地存储 |
| 设备性能有限 | 家里机顶盒只有 1GB 内存,跑不了大模型 |
| 成本可控 | 不想每月花几十美元订阅 API,优先用免费/低成本方案 |
| 小爱音箱无法劫持 | Secure Boot 锁死,刷不了机,只能当蓝牙网关 |
| 现有设备优先 | 不买新硬件,用家里的 NAS、机顶盒、路由器、旧手机 |
这些约束,逼着我不能“拿个云 API 套壳”,必须做真正的软硬结合。
四、项目目标
4.1 MVP 目标(一个月内)
手机录音 → 边缘端转码 → 云端决策 → 电视执行
具体来说:
-
手机 App 录音(AAC)
-
NAS 接收,FFmpeg 转成 WAV
-
云端 Agent 理解意图,返回操作步骤
-
边缘端执行 ADB 命令,电视响应
-
手机实时显示执行进度
4.2 终极愿景
一个跑在机顶盒上的家庭 AI 感知系统,越用越聪明
-
本地优先,隐私数据不出门
-
支持电视、手机、电脑、路由器、米家设备
-
记住用户偏好,自动执行规则
-
人机协同,危险操作需确认
五、这个项目能成吗?
说实话,刚开始我也怀疑。
市面上没有现成的产品——NAS 厂商不做 AI,智能音箱厂商不做本地存储,大厂不做这种“缝合怪”。但反过来想:正因为没人做,才是我的机会。
我有的不是“技术多牛”,而是:
-
真实需求(我妈的痛点)
-
跨领域经验(后端 + 硬件 + 音视频 + AI)
-
动手能力(60+ 硬件帖,能焊电路板)
-
热爱(折腾本身就是乐趣)
这四样东西,比任何技术栈都值钱。
六、下一篇预告
选定了方向,下一步就是技术选型。
从 1GB 机顶盒到云端 Agent,从 SQLite 到 sqlite-vec,从 Java 到 Go 到 TypeScript——每一个选择背后,都是反复对比和真实约束下的决策。
下一篇文章,我将详细拆解 HomeSense 的技术选型全记录,包括:
-
为什么边缘端用 Go 而不是 Java?
-
为什么数据库选 SQLite 而不是 PostgreSQL?
-
为什么云端 Agent 用 TypeScript 而不是 Python?
-
为什么通信用 HTTP 而不是 WebSocket?
欢迎持续关注,也欢迎在评论区讨论你的技术选型经验。
后记:这篇文章写完后,我把它发给同学看。他说:“你这不是在做项目,是在做产品。” 我回他:“不管项目还是产品,能让我妈看电视更爽,就够了。”
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)