每个行业都有各自要解决的特定问题。工程师的日常工作就是不断解决问题,最关键的能力是解决工程问题的能力。语音识别算法工程师负责的是软件产品研发的一个模块,工作产出是提供高效的ASR算法库给到软件集成人员。语音识别算法工程师能力要求是什么呢?

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

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

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

2)工程实践的经验:包括数据的采集和处理是否合理、代码风格是否规范、文档是否全、算法复杂度与数据结构是否合理、设计模式的选用对代码可读性和扩展性的影响、数据和训练结果能否方便可视化、算法崩溃之后能否快速Debug,等等。

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

4、行业思维
语音识别的研究历史相对比较悠久,但是直到最近十年才出现较大突破,走向市场,也就是说语音识别产品乃至语音行业还是很年轻的,有很大的探索空间。语音识别算法工程师即是开发人员,要面向市场要做产品,也是研究人员,做语音技术和行业发展的星星之火。如果说前面几项能力是为了解决当前问题,那么行业思维就是有助于解决将来的问题。

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