简介:本文深入探讨了基于Kaldi的语音识别引擎后端架构设计,从业务背景出发,详细阐述了架构1.0到2.0的优化历程,包括语音解码优化、后端服务拆分与性能提升等,并介绍了在实践中引入端到端WeNet语音识别框架的决策与成果。
语音识别技术是将语音信号转换为文本内容的关键技术,在现代通信、智能客服、语音质检等领域发挥着重要作用。目前,比较流行的语音识别技术主要分为两大类:基于Kaldi的传统语音识别技术和基于深度学习模型的端到端语音识别技术。本文将重点讨论基于Kaldi的语音识别引擎后端架构设计,并分享从架构1.0到2.0的优化经验。
Kaldi是一个广泛使用的开源语音识别工具,它基于WFST的解码算法,采用C++编写,并支持bash和python脚本。Kaldi架构包括外部工具(如BLAS/LAPACK、OpenFst)、Kaldi库(含HMM和GMM代码)、可执行程序及实现识别步骤的脚本。其强大的功能和灵活的架构使其成为语音识别领域的佼佼者。
以58同城为例,作为国内领先的生活分类信息网站平台,其业务涉及招聘、房产、车、本地生活服务等多个领域。语音是平台上商家、用户、销售、客服之间沟通的主要媒介。因此,构建一个高效、准确的语音识别引擎对于提升用户体验和平台运营效率至关重要。
58自研语音识别引擎最初是基于Kaldi框架进行开发的。在自研初期,上线了架构1.0版本。该版本基于语音识别系统的通用流程建立,服务主要包括网关接入服务、音频解析服务、以及基于Kaldi的语音解码内核服务、静音检测和说话人服务、后处理服务等。
架构1.0系统虽然满足了快速上线的需要,但也存在以下不足:
针对这些不足,58团队设定了以下优化目标:
针对Kaldi并发解码支持不足、性能差的问题,58团队进行了服务性能优化。主要措施包括:
针对后端应用服务中的不足,58团队进行了服务拆分和一系列性能优化。具体措施包括:
在持续探索基于深度学习模型的端到端语音识别技术的过程中,58团队尝试了ESPNet、WeNet等流行的端到端框架。经过持续的优化,WeNet解码服务在效果和性能上都超过了Kaldi解码。因此,在2022年8月,58团队在线上全量替换了Kaldi语音解码服务,实现了WeNet端到端语音识别技术在58同城的大规模落地。
经过上述优化措施的实施,58自研语音识别引擎的性能得到了显著提升。机器资源占用降低,资源利用率更加均衡,系统整体耗时减少,可靠性和扩展性得到增强。同时,通过引入端到端WeNet语音识别框架,进一步提升了识别的准确性和效率。
展望未来,58团队将继续深化在语音识别领域的研究与实践。一方面,将继续优化现有架构和算法,提升系统的整体性能和准确性;另一方面,将积极探索新的语音识别技术和应用场景,以推动语音识别技术的创新与发展。
此外,在构建语音识别引擎的过程中,选择合适的工具和平台至关重要。千帆大模型开发与服务平台提供了丰富的算法模型和工具支持,能够助力企业快速构建和优化语音识别引擎。未来,58团队也将加强与千帆等平台的合作与交流,共同推动语音识别技术的创新与应用。
总之,基于Kaldi的语音识别引擎后端架构设计是一个复杂而细致的过程。通过持续的优化与创新,我们可以不断提升系统的性能和准确性,为语音识别技术的发展贡献自己的力量。