对于ASR系统中使用的DSP来说,有效地利用片上和片外存储器是另外一个重要的课题。由于ASR系统需要大量的存储空间用于词汇与模式识别数据的存储,一个灵活的存储结构在这里将显得特别重要。例如,一个具备统一寻址存储器的DSP能使设计工程师很好地平衡程序和数据,还能平衡系统算法的复杂性与声学和语言模型的大小以获得最优化的性能。
例如,如果具有100条命令的识别系统模型只有100kB的片上系统内存,总共内存空间需求是240kB,那么采用二次识别方法能更有效地利用片上快速存储器。
第一次(原始识别阶段)只使用39个参数中的13个MFCC,因此模型大小为80kB,可以载入片上内存。原始识别阶段的候选命令数量要比原来的100个少,比方说是33个命令,但可信度高达99.9%。
第二次(精确识别阶段)把33个候选命令的39个参数作为模型使用,大小是80kB,因此又可以把该模型装载入片上内存。这种二次识别方**引入一些延时,但延时非常小,大约只有10ms,说话人一般不会觉察到。
统一寻址存储器能够支持较大的词汇库或命令集,还能支持较大的HMM模型或神经网络系数,因此能简单化实时任务。例如为ASR系统的程序和数据准备100kB的存储器,设计工程师就能平衡好算法复杂性与词汇量或命令集大小之间的关系。如果程序要占50kB,那么数据只能是50kB。如果允许降低识别精度而将程序代码压缩到20kB,那么命令集就能用到80kB,也就是增加了词汇库容量。
在ASR系统中,高度并行化、高代码密度和有效利用存储器等优点还能使DSP完成语音识别以外的任务。在大多数情况下,设计工程师可以将部分计算资源分配给语音识别之用,而将剩余资源用来执行信道处理系统中所需的其它任务。
除了DSP内核以外的其他要求
在选中最优化的DSP后,要想获得高性能的ASR用系统级芯片还需要增加一些功能,例如快速缓存或快速指令/数据存取以及实时操作系统(RTOS)才能使ASR系统真正完成实时性能。多任务RTOS能使系统同时运行多个应用如双通道语音识别,因此能极大地提高系统性能。
复杂SoC应用(如信道处理系统)设计工程师能从使用高效的高级语言编译器的DSP和SoC中获益,因为这些编译器允许设计工程师使用C或C++语言进行编程。采用增强的片上仿真和调试功能还可以进一步缩短设计时间。对于3G移动手机应用中各层次的元器件与系统设计来说,除了实时性能和简化设计流程外,功率管理控制同样非常重要。在设计SoC时,选择具有可调功率功能的内核将获益非浅。例如当移动用户在说话时,DSP需要全速运行(如300MHz)。当未使用ASR功能时,SoC电源管理电路可以逐步降低到较低的时钟速度(如100MHz),从而有效地降低漏电和功耗。
由于ASR系统对计算速度的需求会根据识别特征的差异产生很大变化,例如孤字识别或连续语音识别、词汇量和跟讲者无关的语音识别等,因此,能支持ASR功能的信道处理系统的复杂性变化也很大。
SoC非常适合于构造芯片的基础架构,因此在以客户/服务器系统为中心的设计中是非常理想的选择,但SoC器件由于功能太强大,因此并不非常适合于用户端以终端为中心的设计。然而,随着ASR系统的逐渐成熟以及3G手机支持越来越复杂的应用和复杂ASR,这类功能强大的SoC也能成功地运用到用户端。
在SoC上使用多个DSP能使系统在完成语音识别的同时更容易地执行其它任务。例如三个内核中的一个可以专门指定用来完成多信道的服务器端ASR,而其它二个内核用于执行像语音信道和互联网数据处理这样的任务。将来如果手机键盘不复存在的话,ASR将成为用户与手机之间的唯一接口,到时这一功能将占用大部分的工作时间。
采用多个DSP内核还能提供强大的计算能力,从而使执行非常复杂的ASR任务成为可能,如电子邮件听写中的连续语音识别、安全交易和VXML中的“口令+讲者验证”等。多个DSP再加上统一的大型片上存储器可以极大地缩短跟讲者无关的训练过程,因为在统计型ASR中训练过程的计算负载比识别处理过程的负载重得多。 |