基于C语言的设计流优化语音识别芯片结构设计

据预测,市场对语音控制应用设备的需求将急剧增长,其推动力来自电话机市场。电话机将更多地采用语音命令进行控制。其他应用领域包括玩具和手持设备如计算器、语音控制的安全系统、家用电器及车载设备(立体声、视窗、环境控制、车灯和导航控制)。本文从可复用和优化芯片空间的角度出发介绍语音识别芯片结构设计的种种考虑,其思路有利于开发一系列其它语音识别芯片。

新加坡Columns公司在便携式语音控制产品应用中起步较早,其中一个产品是执行欧元与其他欧洲货币之间进行兑换的“语音控制欧洲货币兑换器”。欧元兑换器的设计要求包括:1. 功率小,电池寿命至少为1年;2. 价格低廉,产品零售价不超过9美元;3.具有很强的灵活性,能用多种语言精确地识别并合成与说话人相关的语音;4. 整个语音控制核产品应具备可复用的特性。

本文介绍利用Frontier Design公司设计工具来开发欧元兑换器ASIC产品 的全过程。在ASIC中实现复杂DSP算法的要求通常极为苛刻,但采用Frontier的结构合成工具A|RT Designer工具能迅速优化RTL描述,该工具还允许自由选择备用结构以优化应用设计。

通过应用基于C语言的设计流,能在结构设计阶段对新特性进行设计和硬件优化,这能降低50%的硅片面积,通过加快 C语言原型硬件的设计,可以进一步扩展设计的性能以满足用户对产品规格的严格要求。 

算法研究

欧元兑换器的效率在一定程度上取决于语音命令与存储数据库的比较以及执行命令的能力。开发出满足最终产品要求的算法对设计的成功至关重要,因为没有人希望看到语音控制设备不能始终如一地识别命令,人们需要算法自始至终达到98%以上的识别精度。因此,目前面临的难题包括检测并清除背景噪声、区分真实的命令字和其他噪声(呼吸声、微小静电干扰声及麦克风声响)、确定命令字的起始和终止以及将输入与存储的“声纹谱”数据库及随后的命令字识别(图1)进行比较。

以下几种先进的计算密集DSP算法适用于解决上述问题:1. Mel频率声谱(cepstral)系数(MFCC)算法,MFCC算法由快速傅立叶变换(FFT)功能谱、Mel定标和log ii构成;2. 反离散余弦变换(iDCT);3. 应用多重估计和选择算法连续识别并估计背景声音和语音噪声的连续噪声电平估计程序;4. 在命令字有效期间及其附近对声音能级实施详尽分析的不精确和精确命令字边界检测算法;5. 对一系列不等长度的向量进行比较并在这些向量间比较持续时间变化的动态时间扭曲算法(dynamic time warp)。 

该算法用浮点C语言编程,为了调整并优化参数,浮点C代码的编译和仿真速度要足够快以检验算法的性能。最后,C语言代码必须能在传统的PC机上运行,语音识别和合成算法的性能可在实际环境中进行测试。最终的语音识别算法在450MHz奔腾机上测试,当用该公司的内部语音记录库进行测试时,可得到99%的识别精度。

浮点算法向定点算法转换

芯片实现需要将浮点算法转换为定点算法,要保证动态范围和精度并防止转换后超越动态极限。常规定点操作数的非优化范围可能导致操作数绕回(wrap around, 如(max+1)得到(min)),并引发严重的削波和误码。定点的精确度同等重要,特别是在重复的信号处理运算中。当精确度不够时,重复的信号处理算法将导致故障传播和错误累积,最终信号可能逐渐退化成白噪声,这对于语音控制产品来说无疑是灾难性的错误。

Frontier工具拥有一个称为A|RT库的C++类库,它是分析C代码定点性能的工具。该类库支持多种定点数据类型,对多重溢出行为(如饱和和绕回)提供位真建模(bit-true modeling),并提供截断和舍入零等多重量化模型。原始的32位浮点语音识别算法支持数据以8 KHz输入,其典型信号带宽为32位,内存容量要求为几千字节,典型语音用户接口的输出以每秒几字节的速率测量。

时间: 2024-09-08 00:39:21

基于C语言的设计流优化语音识别芯片结构设计的相关文章

任务: 基于C#语言设计实现一个大型Windows窗体应用程序

问题描述 任务: 基于C#语言设计实现一个大型Windows窗体应用程序 会这方面的联系QQ2983843884,具体要求详谈,作为回报给予支付宝红包,价格合理即可 解决方案 你有隐形云的账号吗?我可以分享相关的技术资料给你.你也可以加我这个qq2873205287

Fenzo:来自Netflix基于Java语言的Mesos调度器

本文讲的是Fenzo:来自Netflix基于Java语言的Mesos调度器,[编者的话]Fenzo是一个在Mesos框架上应用的通用任务调度器.它可以让你通过实现各种优化策略的插件,来优化任务调度,同时这也有利于集群的自动缩放. Netflix有着数百万的用户,要为这个数量级的用户提供可靠的服务并不是一件容易的事情.Netflix是由几十个分布式的服务支撑的,其中每个服务都是产品不可或缺的一部分,并且都在不断迭代着.我们需要从两个方面来优化这些服务,一个是用户体验,另外一个是服务的整体性能以及成

c语言-基于C语言,用蚁群算法求最优路径。百度复制粘贴的别来了。。。要求可以直接运行的代码哈

问题描述 基于C语言,用蚁群算法求最优路径.百度复制粘贴的别来了...要求可以直接运行的代码哈 一个人从上海大学出发,经过若干个地点,路线不重复走,最后回到上海大学,找三条优化路线. 上海大学:北纬N31°19′5.86″ 东经E121°23′21.52″ 星雨城:北纬N31°19′46.58″ 东经E121°24′9.29″ 大康公寓:北纬N31°19′18.88″ 东经E121°25′3.98″ 文景楼:北纬N22°35′23.78″ 东经E113°52′50.67″ 大场中学:北纬N31°

谈谈DB2的索引设计及优化

在数据库日常优化中,索引是经常使用的手段之一.本文由DB2数据库专家刘自传就围绕索引从DB2索引的扫描方式.DB2在索引列上应用谓词.在DB2中如何设计索引.在DB2中如何做索引的深度清理展开一些讨论.学习,更进一步探索索引的奥妙. 专家简介     刘自传   拥有10年IT从业经验,DB2数据库专家:具有多年的SQL开发.C语言开发.DB2运维及诊断优化经验:获IBMDB2 V10.1 for LUW的初.中.高级的DBA认证:擅长DB2的SQL优化.故障诊断及性能调优:db2china.n

基于PDM的产品设计过程动态工作流管理

如今,越来越多的企业开始利用PDM(Product Data Management)进行信息和流程管理.为了适应市场的快速变化,满足用户的个性化要求,需要企业在产品设计过程中形成广泛的信息交互及快速传输机制.在制造企业,产品信息是所有信息中最基本的部分,因此PDM系统的开发是企业走向信息化之路的关键步骤[1]. 工作流管理是PDM系统的重要功能之一.工作流有静态和动态之分,如今许多工作流都是基于静态过程定义的,很难有效处理流程中出现的动态变化.目前许多学者对工作流建模进行了广泛的研究并取得了诸多

《路由设计的优化》一1.5 可扩展性

1.5 可扩展性 路由设计的优化 究竟拥有多少台路由器的网络才可以被认为是可扩展的网络呢?或许在网络拥有100台路由器时,就可以认为该网络是一个大规模网络,而且也能够证明该网络的设计师是一名合格的网络设计人员.但是,如果网络中的路由器超过了1000台呢?或者说网络规模与网络的可扩展性之间有没有什么必然联系呢?在探讨大规模网络的涵义时,应考虑以下场景. 某些网络很大(拥有上千台路由器)但是却不稳定,需要进行重大网络变更操作才能增加网元或调整网络拓扑结构,而且不进行重大变更操作就无法适配新的网络应用

怎么更好地完成一个基于TOP的APP设计?

文章描述:不要让你的产品停留在实验室 抓?昂诵男枨蟆? "赢在淘宝"的应用持续飙升,在距离截止日期还剩两天的时候,已经突破250个了,这个数量还真有些出乎我们的意料.在试用这些应用的时候,发现很多让人眼前一亮的创意,但是当进一步将这个应用和市场结合的时候,就会发现出现"实用断层",也许是因为过于聚焦在"创意"本身,所以在这些应用的设计中往往忽略了用户的核心需求,或者说是对用户核心需求的关注度还不够.产品设计没有通用的理论可以参照,只是从一个终端用

Web基础架构设计原则经典论文《架构风格与基于网络的软件架构设计》导读

1. 概述 Roy Fielding博士(见个人主页)是IETF发布的HTTP和URI协议的主要设计者.HTTP和URI是两个最为重要的Web基础技术架构协议,因此Fielding博士可谓是Web架构的奠基者之一. 除了学术上的卓越成就之外,Fielding博士还参与过很多开源软件的设计和开发工作.他是libwww-perl(世界上最早的HTTP开发库之一)的开发者,曾经负责Apache HTTP服务器中与HTTP.URI协议相关部分代码的开发.Fielding博士还指导过很多其他团队在HTTP

腾讯设计师帮你掌握基于任务的导航设计

  用过Windows控制面板的同学应该都体会过那种找不到目标,一打开直接懵了的感觉,因为这类基于任务导航的产品,要求设计师要对产品用户以及用户任务一个非常清晰的认识,今天腾讯同学从企业QQ的实战中总结了不少经验,对这类小众但很有可能用到的知识,建议收藏哟. 对于不同平台导航的交互形式与视觉样式,已经有不少的文章来介绍与总结.本文所介绍的是关于导航规划思路,一个比较小众的领域,基于任务的导航. 目前产品主要使用基于对象的导航和基于任务的导航.相对来说的,纯粹的基于对象的导航的较为常见,但纯粹的基