说真的,我被AI辅助编程这个话题搞烦了。
打开任何一个技术社区,要么是「DeepSeek太牛了,代码一键生成」,要么是「ChatGPT完胜一切,国内模型都是垃圾」。你真信了任何一个,跑过去一用,血压蹭蹭往上涨。
作为一个在石家庄写代码的程序员,我不信邪。上周我专门拿一个真实项目需求,分别喂给DeepSeek和ChatGPT,看看到底谁能帮我干活,谁只会帮我添堵。
选FunASR,是因为我真的在用
很多人测试AI喜欢用那种toy project,写个快速排序、做个洗牌算法,跑通了截图发出来,看着挺唬人,但屁用没有——这些东西你闭着眼都能写,用AI测什么。
我选FunASR是因为我们项目真在用这个。FunASR是阿里出的语音识别库,能做VAD(语音活动检测)、说话人分离、ASR这些功能。
在FunASR已有的长音频处理流程基础上,新增一个「分说话人段落标注」的功能。
老实说,我对两个模型都没抱太大期望。之前用AI写代码被坑的次数,比我成功用AI写代码的次数还多。
先测的DeepSeek
我先测的DeepSeek。为什么?因为它便宜,响应快,而且据说中文理解能力很强。
DeepSeek响应确实快,大概三五秒就出来一长串。我一看,心里咯噔一下——感觉不错,框架很完整,注释也详细,甚至还有使用示例。
然后我仔细看代码。
好的地方:
- 代码框架确实完整,import、结构体、函数基本都有
- 对FunASR的基础调用方式是对的,知道用哪些模块
- 注释写得真详细,连「这一步是在做xxx」都给你标出来了,对新手非常友好
坑的地方:
第一个坑:它直接给我新建了一个类SpeakerDiarization。问题在哪?FunASR项目本身不是这样写的。项目里用的是函数式流程,一气呵成。我这个新类塞进去,跟原有代码完全不兼容,根本跑不起来。
第二个坑:说话人聚类部分全是「此处调用聚类算法」。说人话就是,它写了个clustering_result = self.clustering(audio),然后没了。聚类算法呢?没写。你得自己补。
第三个坑:时间戳格式是[start, end],但FunASR原生输出用的是字典格式。我跑了一下,输出跟项目里其他模块的格式完全对不上,没法直接用。
一句话评价: 能跑,但得自己收拾。像是给你打了个地基,但墙歪的、窗户没装、门也是歪的,还得你自己找木头修。
我当时心情挺复杂的。一方面,确实有可用的东西;另一方面,大部分还得我自己来。这算帮上忙了吗?算,但没完全算。
再测ChatGPT
DeepSeek测完之后,我心里其实有点倾向它了——至少它让我看懂了这个功能应该怎么做。抱着试试看的心态,我又把同样的Prompt扔给了ChatGPT。
这次响应慢了点,大概十来秒。
出来的东西,乍一看没有DeepSeek那么「热情」——注释少,很多地方就一句# do something,看着冷冰冰的。
然后我仔细看代码。
好的地方:
- 代码结构完全符合FunASR的项目风格,直接复用现有函数,
vad_model()、sv_model()调得贼准 - 异常处理考虑得很周全。文件不存在?网络超时?参数非法?都写了,而且处理方式还挺合理
- 输出了完整的CLI接口,
python script.py --input audio.wav直接跑 - 还给了一个测试用例,虽然简陋,但能验证功能是否正常
坑的地方:
第一个坑:没有解释。DeepSeek会告诉你「这里我们在做xxx」,ChatGPT直接就是embedding = self.extract_embedding(audio)。你想搞清楚它怎么实现的?自己读代码去。
第二个坑:说话人识别用的是通用方案。它的聚类算法是K-means,但FunASR本身有专门的说话人识别模型。通用方案能跑,效果一般,如果你对精度要求高,得自己换。
一句话评价: 拿来就能用,但你得知道自己在干什么。像是给你一辆组装好的车,发动机声音好听,但你得自己研究仪表盘上每个按钮是干嘛的。
我直接上个对比
直观感受:DeepSeek像是一个热情的实习生,态度很好,交代的事都做了,但做得粗糙;ChatGPT像是一个冷淡的老手,不多废话,东西给你整利索了,但你得自己消化。
我的结论
测完这两个,我最大的感受是:没有哪个模型能完全替代你。
你得知道自己在做什么,知道代码要干什么,知道FunASR的流程是什么。AI给的是加速器,不是替代品。你啥都不懂,拿AI写出来的代码,十有八九是定时炸弹。
DeepSeek适合:
ChatGPT适合:
我现在的用法是这样:
先用DeepSeek快速出原型,反正快,反正有解释,搞懂这个功能「应该怎么做」。
然后换成ChatGPT,把我的理解重新描述给它,让它出一版生产级的代码。这版代码不用改,直接能用。
这两个结合着来,效率是真的高。纯用DeepSeek,你会被那些坑磨死;纯用ChatGPT,你可能不知道自己写的代码到底在干嘛。
作为一个石家庄程序员,我的建议是:别吊死在任何一棵树上。工具是拿来用的,不是拿来信的。两个都备着,按场景切换。
最后
AI辅助编程这个话题还会继续吵下去,但对我来说不重要。重要的是我能不能用它省时间,能不能用它解决实际问题。
能,那就是好工具;不能,那就是扯淡。
下期想看什么,评论区告诉我。