来源/有道技术团队

编辑/刘振宇

1 概述

云侧是一种集中式服务,所有图像、音频等数据通过网络传输到云中心进行处理然后把结果反馈回去。云侧资源集中通用性强,但是随着数据的指数爆发式增长,云侧暴露出了很多不足,比如数据处理的实时性网络条件制约数据安全等。基于云测的局限性,端侧的推理越来越重要。端侧推理具体以下优势:1)低延时;2) 保证数据隐私;3)不依赖网络。然而端侧的计算资源、内存、存储都比较有限,如何满足性能的需求至关重要。日趋异构化的终端硬件平台,能够提升端侧的计算能力,然而复杂的开发环境让AI技术在端侧的应用落地颇受挑战。

语音识别(Automatic Speech Recognition,简称ASR),是语音交互中最基础的一个AI技术环节,常见的应用场景如智能音箱、同传、通话翻译等。ASR识别需要强大的计算能力,如何实现一个低延迟、高性能、低功耗的端侧ASR面临着重大挑战。

ARM(CPU)是目前AI端侧推理的主要计算平台,随着技术的发展和数据的增长,端侧对性能和功耗要求越来越高,单纯的ARM平台不再能满足新的需求,终端异构计算平台可以提供更强大的计算能力,逐步成为AI端侧推理的主流计算平台。DSP(Digital Signal Process)芯片,也称数字信号处理器,是一种进行数字信号处理运算的微处理器。相比强大的CPUDSP尤其擅长在低功耗下处理这些任务。

2 离线ASR

有道离线ASR是运行在移动设备端的应用程序。离线与在线的区别是,离线ASR是运行在设备端,不需要联网就可以进行语音识别的应用程序,而在线是必须依靠网络服务才可以获取语音识别结果的过程。

有道离线ASR引擎,采用了Pipeline形式的架构设计。Pipeline包含如提取声学特征(GenerateFeature)、声学模型(Forward)、解码器(Decode)、反正则化(Rescore)、归一化(Normalize)、加标点(addPunc)Stage

各个Stage之间独立运行,保证了在语音识别过程中,各模块单元的运行效率和识别质量。

离线ASR可以运行在安卓系统和ios系统中,支持armV7armV8等多种arm处理器的指令集。离线ASR引擎以其轻量、简洁、扩展性强等特点,可以便捷的集成在如智能手机、智能手表、智能音箱等设备中。

有道离线ASR已在翻译王、词典笔、电子词典、某手机离线通话翻译等产品中广泛使用。

3 DSP

DSP架构与CPUGPU截然不同,DSP具有两个关键的特点:1DSP充分体现了每个时钟周期的计算能力;2DSP在较低时钟频率下也可以提供高性能的计算能力,以低时钟频率节省功耗。

在移动端应用中,利用本地资源进行计算越来越重要。CPU计算带来功耗高的问题,导致移动终端的续航时间短、温度高等问题突出。DSP相对于CPU更擅长在低功耗下处理这些任务,具有高性能、低功耗等特性,提供更好的用户体验。

高通芯片在手机移动应用中广泛使用。同时具有高性能、低功耗的DSP——Qualcomm Hexagon 698

Hexagon DSP能够通过硬件多线程技术和最大化每个时钟周期所能完成的工作,在低时钟频率下运行,同时又能提供高性能。

Hexagon DSP核心计算模块为cDSP(Compute DSP)Hexagon 698使用的是cDSP V66架构,如 1所示。cDSP支持4个硬线程,有2组标量计算模块和2Hexagon向量计算模块。cDSP通过多线程和SIMD指令获得性能。cDSP上浮点计算性能较差,更擅长做8位、16位和32位定点数计算,因此,在DSP上实现深度学习推理服务时,量化是获得高性能的重要手段。

打开网易新闻 查看精彩图片

1 cDSP V66架构图

4 试验结果4.1 试验环境

1) 硬件环境

我们采用了高通芯片做测试环境

2) 软件环境

我们采用了android-ndk交叉编译器,centos7系统上利用Hexagon SDK编译dsp程序、Android-ndk编译APP端应用程序,然后运行在手机Android10系统上。Hexagon SDK是一个软件开发套件,用于开发Hexagon DSP上的应用程序。

1 软件环境

编译OS

Centos7

编译器

android-ndk-r20

Hexagon SDK 3.5.1

运行OS

Android10

4.2 试验结果与分析4.2.1 计算性能

ASR系统采用上面章节介绍的优化手段后的计算性能如 2所示,相对纯CPU版本加速3.89-4.42倍,DSP获得较好的计算性能提升,大大降低了识别延迟

2 CPU+DSP计算性能

测试用例

Time(ms)

加速比

CPU

DSP

1

6896.76

1771.73

3.89

2

6167.98

1513.26

4.08

3

15652.25

3842.44

4.07

4

14182.56

3205.40

4.42

4.2.2 功耗测试

DSP相对CPU具有更好的功耗表现, DSP方案比纯CPU方案功耗下降30.3%

3功耗对比

功耗(mA)

下降

CPU

DSP

97.38

67.88

30.3%

5 结论

端侧计算,已经AI落地平台的发展趋势, DSP计算具有独特的特性,具有一定的适用性,需要在合适的应用场景选择性使用。


Reference

[1] Chigier B. Automatic speech recognition[J]. The Journal of the Acoustical Society of America, 1998, 103(1):19-20.

[2] gemmlowp document, https://github.com/google/gemmlowp/tree/master/doc

[3] https://developer.qualcomm.com/software/hexagon-dsp-sdk

[4] Povey D., Cheng G., Wang Y., etc. (2018). Semi-orthogonal low-rank matrix factorization for deep neural networks. In Proceedings of the 19th Annual Conference of the International Speech Communication Association (INTERSPEECH 2018), Hyderabad, India.

[5] J. G. Fiscus. A post-processing system to yield reduced word error rates: Recognizer Output Voting Error Reduction (ROVER). 1997 IEEE Workshop on Automatic Speech Recognition and Understanding Proceedings, Santa Barbara, CA, USA, 1997, pp. 347-354, doi: 10.1109/ASRU.1997.659110.

[6] The Kaldi speech recognition toolkit, https://github.com/kaldi-asr/kaldi

[7] https://en.wikipedia.org/wiki/Interface_description_language