硬件和软件工程师的职责能力要求有哪些?-八维教育

01、硬件和软件工程师的职责

能力要求是一个相对抽象的概念,需要结合行业和职位进行形象化。

1)在传统制造业中,经常讨论工程设计和工程制造。例如,零部件制造厂的研发工程师必须根据客户需求和行业标准,经过结构选型、绘图、模拟计算、物理测试、生产设计等一系列环节。工程师应灵活运用结构力学知识设计产品,分析优化设计方案。应掌握行业辅助设计软件和结构力计算软件的使用,熟悉行业标准、生产工具和工艺流程。在工作中,工程师会与需求方、质量部、生产部等相关人员打交道。产品完成后,

2)互联网和软件行业也存在工程设计和工程实施问题。例如,软件开发工程师需要根据产品需求和设计规范设计应用软件的架构,然后对实现程序进行编码,检查测试,打包集成。工程师应灵活运用软件工程相关知识进行产品设计,分析优化设计方案。掌握常用的编程语言、框架和软件,熟悉行业规范、软件集成和部署。在工作中,工程师将与产品经理、测试、服务器和客户端开发运维人员打交道。产品上线后,

3)信息制造包括两者。例如,大多数手机和物联网设备公司除了生产设计部门外,还设有软件研发部门。工程师的类型也相对多样化。有人说软件工程师不能算工程师。我个人的看法是,软件工程和硬件工程只是不同的行业,不同的产品形态。在实际工作中,对工程师的工作流程和方法的要求是类似的。数字经济的高速发展,使得软件工程产品与人们生活的联系越来越紧密,软件工程师的作用也越来越大。

02、语音识别算法工程师职责

从工作内容来看,语音识别算法工程师负责软件产品开发的一个模块,工作输出是为软件集成商提供一个高效的ASR算法库。那么什么是高效的 ASR 算法呢?如何开发高效的算法?效率可以从几个维度来看:

贴合用户场景,即ASR算法能否满足用户在功能上的使用,例如用户是否需要流式传输、实时语音交互、命令词识别、用户频繁使用八卦、搜索词等。

效果更好,在不同的噪声环境、用户口音、专有词汇等条件下,准确率应尽可能高。

高性能,例如响应速度快,移动ASR要求尽可能少的资源占用和功耗,云ASR要求尽可能多的并发。

运行稳定c语言实现神经网络算法,算法崩溃少,问题能及时发现并修复。

扩展性好,对未来新功能的兼容性好,算法符合技术发展趋势。

实现高效的 ASR 算法需要工程师做几件事:

熟悉产品需求,了解用户需求,选择合适的算法方案。

熟悉ASR算法,能够处理数据,实现算法进行实验,并对算法进行相应改进以适应功能需求,优化不同场景的识别精度。

了解 ASR 的实现细节,如数据处理、声学模型、语言模型、解码参数优化等。

选择的算法方案应该足够成熟,并且应该有合理的监控和容错机制。

了解 ASR 的技术开发和行业解决方案。

与上下游良好的合作。

等等…

03、语音识别算法工程师能力要求

你需要什么技能来做这些事情?我的观点是,它可以分为四种能力,包括:知识体系、工程能力、业务能力和行业思维。其中前三个是基础,最后一个是助推器。

3.1 知识体系

知识体系包括一般知识和领域知识。一般知识是指基础学科知识,如微积分、统计学、计算机体系结构、机器学习等。领域知识是指涉及语音识别及相关研发工具的知识,如信号处理理论、GMM-HMM原理、语言模型和端到端语音识别算法。一般来说,一般知识基础越扎实,掌握领域知识的速度就越快。

知识体系有两个维度,广度和深度。广度是指掌握的知识种类的数量,既懂语音信号处理又懂语音识别,比只懂语音识别的人要广。深度是指对某一知识的详细理解,如语音识别知识的深度。可以看到你是否熟悉传统和前沿的算法原理、算法适用场景、算法适配和改进思路、技术发展历史和趋势。

图片[1]-硬件和软件工程师的职责能力要求有哪些?-八维教育-老王博客

3.2 工程能力

工程能力这个词可能并不严谨,因为工程师的能力应该叫做工程能力。这里有一点细化。工程能力是工程师能力的维度之一。是指根据业务需求实现算法解决方案的能力。可以说,就是将自己的知识体系应用到业务中的能力。这里主要讨论两个方面:

1)研发工具的使用:主要是指编程语言和框架的使用和修改,比如服务器和客户端引擎开发选择C/C++或者Java,使用开源tf的神经网络推理lite, mace or auto 研究框架,pytorch是否会更方便算法实验的数据处理,模型训练和模型导出,语音识别解码器是否复用Kaldi的faster-decoder,如何添加自己改进的解码算法等等.

2)工程实践经验:包括数据的收集和处理是否合理,代码风格是否规范,文档是否齐全,算法复杂度和数据结构是否合理,设计的选择是否模式会影响代码的可读性和可伸缩性。影响,数据和训练结果是否可以方便的可视化,算法崩溃后能否快速调试等等。

3.3 业务能力

顾名思义,业务能力是指算法工程师处理好项目相关任务所需的能力。在语音识别算法工程师的日常项目中,经常做的事情包括:沟通项目需求、定义算法场景、效果和性能指标、项目时间节点等;研究、设计和开发算法解决方案;与开发者对接算法、整合工作、配合排查问题等;与测试人员交流算法测试细节等。

算法开发在工程能力部分描述,其他可分为以下两类:

1)业务理解能力:指算法工程师能否准确把握用户的需求,创造出来的东西是否是用户需要的。这在算法研发中更为重要。目前,用户对人工智能的期望普遍较高,对语音产品的期望也较高。但是,语音识别技术还有很多难点没有解决c语言实现神经网络算法,在很多场景下并没有达到用户预期的效果。. 如何达到用户满意的效果,需要工程师在定义需求时充分考虑场景的特点,站在用户的角度,用产品的思维来看待问题。

2)项目开发能力:包括流程规范、方案设计、团队协作等。流程规范是指项目需求和技术评审、开发、测试、部署、评审等环节要合理。方案设计要求算法工程师设计的方案必须符合要求,方案必须成熟稳定,具有可扩展性,完善的监控和告警机制。团队协作是指与上下游和团队内部的协作。有一些模式,如瀑布和敏捷。

3.4 行业思维

语音识别的研究历史比较长,但直到最近十年才出现重大突破并进入市场。也就是说,语音识别产品乃至语音行业还很年轻,还有很大的探索空间。语音识别算法工程师是开发人员,他们想为市场制造产品,研究人员是语音技术和行业发展的火花。如果说最初的几个能力是解决当前的问题,那么行业思维就是帮助解决未来的问题。

在这个层面,我们需要了解语音识别技术的发展趋势、产品形态、竞品、用户行为、商业模式等。一方面,这对个人开阔眼界、完善格局有很大帮助. 另一方面,也有助于上述三项能力的提升。只有登高望远,才知道自己的知识体系需要补充什么,未来的工程开发形式是什么,如何提高业务效率,如何让自己设计的技术方案不落伍.

04、如何提升能力

我们需要明确我们想要加强哪些能力。一方面,我们需要计划并专注于改进。个人通常没有那么多精力同时改进。另一方面,如果我们为一切做好准备,我们就会拥有一切。大部分工作对业务人员的能力要求都有不同的侧重点。

我国提倡知行合一的教育方式一、“产学研”。我觉得这个模式也很适合个人能力的提升。语音识别算法工程师自己是业内人士,或多或少做算法研究工作,系统知识学习的时间可能比较少。你可以从这三个方面作为切入点来规划自己的能力提升。

具体到措施,我个人认为:

1)在知识体系上,阅读更多经典书籍和论文,以及精彩的博客文章。工具的使用可以很快掌握,但知识体系的建立却不可能在三五天之内完成。当我们在学校学习时,很大程度上是在构建自己的知识体系。

2)工程能力方面,需要在研发工具的研究中多多实践和总结;在提升工程体验方面,需要看行业的最佳实践,比如谷歌编程规范、阿里Java开发规范等;如果出现crash问题,需要多问如果出现crash问题怎么办,是否有更低复杂度的算法,这段代码的可读性如何等等。

3)在业务理解上,应该把自己当成用户,体验自己的产品,从中发现问题。应与公司团队讨论流程规范和团队协作。

4)行业思维方面,可以阅读更多行业分享。我也看过一些不错的文章。

在业务能力和行业思维方面,就我个人而言,我觉得还不够好,后面会补充一些见解。另外,如果你一个人学习没有朋友,你会很无知。在提升能力的过程中,一定要找到志同道合的人,相得益彰。

05、总结

本文讨论我认为语音识别算法工程师的能力包括哪些,主要是看自己定位和后续能力提升方向。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论