CN104126165A - 算术逻辑单元架构 - Google Patents
算术逻辑单元架构 Download PDFInfo
- Publication number
- CN104126165A CN104126165A CN201280070112.3A CN201280070112A CN104126165A CN 104126165 A CN104126165 A CN 104126165A CN 201280070112 A CN201280070112 A CN 201280070112A CN 104126165 A CN104126165 A CN 104126165A
- Authority
- CN
- China
- Prior art keywords
- gauss
- dimension
- probability distribution
- apu
- cluster state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009826 distribution Methods 0.000 claims abstract description 129
- 238000000034 method Methods 0.000 claims abstract description 67
- 239000002131 composite material Substances 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 60
- 230000006870 function Effects 0.000 description 52
- 238000003860 storage Methods 0.000 description 44
- 230000009183 running Effects 0.000 description 27
- 235000012431 wafers Nutrition 0.000 description 24
- 230000000875 corresponding effect Effects 0.000 description 23
- 238000005516 engineering process Methods 0.000 description 21
- 239000000872 buffer Substances 0.000 description 20
- 238000004891 communication Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 17
- 238000011156 evaluation Methods 0.000 description 13
- 239000011159 matrix material Substances 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 4
- 230000005059 dormancy Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/14—Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/187—Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
- Machine Translation (AREA)
- User Interface Of Digital Computer (AREA)
- Artificial Intelligence (AREA)
- Telephone Function (AREA)
Abstract
本发明的实施例包括用于声学(acoustic)建模的设备、方法以及***。于一具体实施例中,提供一算术逻辑单元,用于运算介于特征向量与高斯机率分布向量间的一维分数(score)。该算术逻辑单元包括配置成基于与该高斯机率分布向量的维度以及特征向量的维度相关联的平均数与变异数(variance value)以运算第一数值的运算逻辑单元、配置成基于该变异数以输出第二数值的查阅表模块、以及配置成组合该第一数值与该第二数值以产生该一维分数的组合模块。
Description
技术领域
本发明的具体实施例基本上是涉及语音辨识。特别是,本发明的具体实施例是涉及在专用处理单元上声学建模程序的实现。
背景技术
实时数据模式辨识系逐渐用于在电子***中分析数据流。语音辨识***已在具有超过数万字的词汇表上改良了精确度,令其成为电子***中引人注目的特征。例如,在针对数据模式辨识应用的消费性市场(举例如:移动装置、伺服器、汽车以及PC市场)中,语音辨识***越来越普遍。
尽管语音辨识***的精确度已改良,语音辨识程序仍需大量的专用运算资源,转而对运算***(举例如:多用户/多程式环境)造成很大的负担。多程式运算***并行处理来自各个应用程式的数据,以致这些运算***上因语音辨识程序造成的负载,影响到运算***能处理输入语音信号以及来自其它应用程式的数据的速度。再者,对于一般含有限内存资源的手持式装置(相较于桌上型计算***)而言,语音辨识应用程式不仅对手持式装置的运算资源造成显著负担,也消耗了手持式装置很大部分的内存资源。上述语音辨识***在处理能力、速度以及内存资源方面的问题,因处理实时或实质接近实时输入语音信号的需求而更加恶化。
发明内容
因此,有必要改善语音辨识***对于运算***在处理能力、速度以及内存资源上的负载。
于一具体实施例中,提供用于运算介于特征向量与高斯机率分布向量间的一维分数的算术逻辑单元。该算术逻辑单元包括配置成基于与该高斯机率分布向量的维度以及特征向量的维度相关联的平均数与变异数(variance value)以运算第一数值的运算逻辑单元、配置成基于该变异数以输出第二数值的查阅表模块、以及配置成组合该第一数值与该第二数值以产生该一维分数的组合模块。
本发明的另一具体实施例包括一种运算介于特征向量与高斯机率分布向量之间的一维分数的方法。该方法包括基于与该高斯机率分布向量的维度以及特征向量的维度相关联的平均数与变异数以运算第一数值,基于该变异数从查阅表模块撷取第二数值,以及组合该第一数值与该第二数值以产生该一维分数。
本发明的具体实施例的进一步特征与优点,以及本发明各种实施例的架构和运行,是引用附图予以在下文中详述。应当注意本发明并不限于描述在此的特定实施例。在此介绍的这类实施例仅供说明之用。基与在此包含的教导内容,其他的实施例对于相关领域的技术人士将是显而易见的。
附图说明
附图合并于本文中以及形成本发明的说明书、描述性具体实施例的一部分,并且连同说明进一步用于解释本发明的原理,以及让相关领域技术熟练者能够制作且使用本发明。
图1描述根据本发明一具体实施例的语音辨识程序的示例性流程图。
图2描述现有的语音辨识***。
图3描述现有由个别处理单元进行语音辨识程序的语音辨识***。
图4描述由声学处理单元(APU)和中央处理单元(CPU)进行的语音辨识程序的具体实施例。
图5描述供语音辨识***用的周边控制器接口(PCI)总线架构的具体实施例。
图6描述供语音辨识***用的先进周边总线(APB)架构的具体实施例。
图7描述供语音辨识***用的低功率双倍数据速率(LPDDR)总线架构的具体实施例。
图8描述供语音辨识***用的***级架构的具体实施例。
图9描述数据模式分析用方法的具体实施例。
图10描述供整合有特定应用集成电路(ASIC)和内存装置的语音辨识***用的***级架构的具体实施例。
图11描述供整合有特定应用集成电路(ASIC)、易失性内存装置、以及非易失性内存装置之语音辨识***用的***级架构的具体实施例。
图12描述供具有***晶片的语音辨识***用的***级架构的具体实施例,此***晶片包括特定应用集成电路(ASIC)和中央处理单元(CPU)。
图13描述供具有***晶片的语音辨识***用的***级架构的另一具体实施例,此***晶片包括特定应用集成电路(ASIC)和中央处理单元(CPU)。
图14描述声学处理单元(APU)的具体实施例。
图15描述供声学处理单元(APU)用的聚类状态计分单元(SSU)控制器的具体实施例。
图16描述供声学处理单元(APU)用的距离计算器的具体实施例。
图17描述供声学处理单元(APU)用的声学建模程序的方法的具体实施例。
图18为根据本发明的具体实施例,描述算术逻辑单元的具体实施例。
图19为根据本发明的具体实施例,描述图18中所示算术逻辑单元的具体实施例。
图20为根据本发明的具体实施例,描述运算单元的具体实施例。
图21描述供运算一维距离分数用的方法的具体实施例。
图22及图23描述声学处理***的具体实施例。
图24描述硬件加速器的具体实施例。
图25为描述APU软件堆栈的方块图。
图26描述并行处理的具体实施例。
图27描述声学处理方法的具体实施例。
图28描述示例计算机***的具体实施例,可将其中本发明的具体实施例、或其部分实现成计算机可读码。
具体实施方式
底下的详细说明提到描述与本发明一致的示例性具体实施例的附图。其它具体实施例是有可能的,并且可在本发明的精神和范围内,修改具体实施例。因此,这里的详细说明未限制本发明的范围。反而,本发明的范围是由随附的权利要求书所界定。
对于相关领域技术熟练者将显而易知的是,本发明如下文所述,可用许多不同的软件、硬件、固件及/或图中所示的实体予以实现。因此,将说明本发明具体实施例的运作行为,而理解具体实施例的修改及变化在本文所呈现的详细程度下是有可能的。
本说明书揭露一或多个加入本发明特征的具体实施例。所揭露的具体实施例只用来做为本发明的例子。本发明的范围不局限于揭露的具体实施例。本发明是由本文所附加的权利要求书予以界定。
所说明的具体实施例,以及说明书中对“一个具体实施例”、“一具体实施例”、“一示例具体实施例”等的参考指的是,所说明的具体实施例可包括特定特征、结构、或特性,但每一个具体实施例可不一定要包括特定特征、结构、或特性。此外,此等词组不一定涉及相同的具体实施例。另外,在搭配具体实施例说明特定的特征、结构、或特性时,所了解的是,其落于本领域的技术人员的知识范围内,以配合其它无论是否明确说明的具体实施例,让此特征、结构、或特性起作用。
1.语音辨识程序
图1描述根据本发明一具体实施例的语音辨识程序100的示例性流程图。语音辨识程序100包括信号处理阶段110、声学建模阶段120、音位评估阶段130以及字词建模阶段140。
在信号处理阶段110中,可对输入语音信号105的类比信号表征进行滤波,以消除此信号在人耳可听频率范围外的高频成分。接着使用相关领域的技术熟练者众所周知的取样及量化技术对滤波后的信号进行数字化。可使用举例如线性预测编码及快速傅利叶转换的技术,从数字化波形撷取出一或多个参数数字表征(本文也称为“特征向量115”)。此撷取可以例如约10ms的规律时间间隔或时框(frame)出现。
在声学建模阶段120中,来自信号处理阶段110的特征向量115与内存中所存储的一或多个多变量高斯机率分布(本文也称为“高斯机率分布”)相比较。内存中所存储的这一或多个高斯机率分布可为部分声库,高斯机率分布在其中表示聚类状态。聚类状态指的是一种所关注语言的次语音单位,如相关领域技术熟练者将理解者。个别聚类状态可由例如8个成分组成,其中每一个成分都可表示39维高斯机率分布。
声学建模阶段120可处理超过例如1000个聚类状态。因此,特征向量115与一或多个高斯机率分布的比较会是一项运算密集的工作,原因是,每一个间隔时间或时框(例如10 ms)都例如可将数千个高斯机率分布与特征向量115作比较。声库中所表示每一个聚类状态的一组分数(本文也称为“聚类状态分数”),都是由每一个特征向量115与一或多个高斯机率分布的每一个的比较所产生。声学建模阶段120将聚类状态分数125提供予音位评估阶段130。
在音位评估阶段130中,可使用隐性马可夫模型(Hidden MarkovModels,HMMs)以将音位特征化成一组状态以及一组介于各个状态之间的先验转移机率,其中状态与聚类状态相关。对于给定的观察的聚类状态序列,对应的HMM中有最可能的状态序列。此对应的HMM可与观察的音位相关。可将维特比(Viterbi)演算法用于寻找每一个对应于音位的HMM的概度。
维特比演算法从第一时框开始运算,接着以时间同步的方式一次一个时框地于后续时框进行运算。针对HMMs所考量的每一个聚类状态进行机率分数的运算。因此,可随着维特比演算法分析序列时框,针对每一个可能的聚类状态序列,成功运算累积机率分数。音位评估阶段130将音位概度或机率135(本文也称为“音位分数”)提供予字词建模阶段140。
在字词建模阶段140中,随着时间,将搜寻技术用于判断一串最可能的音位及后续字词。举例如树基演算法的搜寻技术,可用于判断此串最可能的音位。
2.现有的语音辨识***
图2描述现有的语音辨识***200。语音辨识***200包括输入装置210、处理单元220、内存装置230、以及数据总线240,全部都是单独的实体组件。内存装置230可为例如动态随机存取内存(DRAM)装置,其位于处理单元220外部,并且经由数据总线240与处理单元220连通。输入装置210也经由数据总线240与处理单元220连通。数据总线240具有一般的总线宽度,例如,8至32个位。
输入装置210配置成用来接收输入语音信号(例如,图1的输入语音信号105),并且将与输入语音信号相关的声振动转换成类比信号。使用类比数字转换器(未示于图2)将类比信号数字化,并且透过数据总线240将产生的数字信号移送至处理单元220。输入装置210可为例如麦克风。
处理单元220配置成用来根据以上关于图1所述的信号处理阶段110、声学建模阶段120、音位评估阶段130以及字词建模器阶段140,处理数字输入信号。图3描述语音辨识***200,其具有由处理单元220进行的语音辨识模块。处理单元包括信号处理模块310、声学建模模块320、音位评估模块330以及字词建模模块340,其分别以类似于图1所示信号处理阶段110、声学建模阶段120、音位评估阶段130以及字词建模器阶段140的方式运作。
请参阅图3,信号处理模块310可将输入语音信号305的数字输入信号表征(例如,来自输入装置210)转换成一或多个特征向量315。声学建模模块320将一或多个特征向量315与内存装置230中声库里所存储的一或多个高斯机率分布作比较。也就是,对于一或多个特征向量315与一或多个高斯机率分布的每一次比较,处理单元220都经由数据总线240存取内存装置230。对于具有数千个聚类状态的声库(其中的每一个聚类状态都是由多个高斯机率分布组成),声学建模模块320不仅是以运算密集的方式进行比较,还以运算密集且耗时间的方式经由数据总线240对内存装置230进行数千次的存取。对内存装置230的数千次存取因数据总线240的总线宽度(例如,一般为8至32个位)而更加恶化,其中,声学建模模块320可能需要对内存装置230多次存取才能存取每一个高斯机率分布。另外,与数据总线240相关的互连寄生现象可讹误内存装置230与声学建模模块320之间的数据移送。
音位评估模块330从声学建模模块320接收聚类状态分数325。如以上关于图1的语音辨识程序100所述,HMMs可用于将音位特征化成一组状态以及一组介于各个状态之间的先验转移机率,其中状态由聚类状态序列组成。可将音位评估模块330所使用的状态组以及转移机率先验组存储于内存装置230中。音位评估模块330将音位分数335提供予字词建模模块340。
字词建模模块340随着时间,使用举例如树基演算法的搜寻技术,以判断一串最可能的音位(例如,最可能的音位335)以及后续的字词。
图3所示现有语音辨识***300的问题还在于处理单元220上因声学建模程序所造成的显著负载。例如,每一次比较一或多个特征向量315与内存装置220中存储的一或多个高斯机率分布时,都通过处理单元220存取内存装置220。因此,大量的运算资源是声学建模程序所专属,转而对处理单元220造成显著的负载。声学建模程序对处理单元220造成的负载,影响到处理单元220对来自输入装置210的数字信号以及来自其它应用程式的数据能够处理的速度(例如,处理单元220可在将来自多个应用程式的数据并行处理的多用户/多程式环境中运作)。另外,对于内存资源有限的运算***(例如,手持式装置),声学建模程序不仅对处理单元220造成显著负载,还消耗掉一大部分的内存装置230以及数据总线240的频宽。在许多应用程式中以实时或实质接近实时的方式处理输入语音信号的需求,还使得处理能力、速度以及内存资源的问题更加恶化。
3.具有声学处理单元的语音辨识***
本发明的具体实施例分别解决上面关于图2及图3所示现有语音辨识***200及300的问题。在一具体实施例中,通过专用处理单元(本文也称为“声学处理单元”或“APU”)进行声学建模程序。APU搭配图3的处理单元220(本文也称为“中央处理单元”或“CPU”)运作。例如,APU从CPU接收一或多个特征向量(例如,图3的特征向量315),基于一或多个高斯机率分布计算聚类状态分数(例如,图3的聚类状态分数325),以及将聚类状态分数输出至CPU。在一具体实施例中,可将一或多个高斯机率分布存储在APU中。在另一具体实施例中,可将一或多个高斯机率分布存储于APU的外部,其中,APU从外部内存装置接收一或多个高斯机率分布。基于下文进一步详述的APU架构,达成聚类状态分数的加速计算。
虽然部分本揭露是以语音辨识***的背景说明,相关领域技术熟练者将认识的是,本文所述的具体实施例适用于任何以本文说明为基础的数据模式辨识应用。这些其它数据模式辨识应用包括,但不限于影像处理、音讯处理以及手写辨识。这些其它数据模式辨识应用是落于本文所揭露具体实施例的精神及范围内。
图4描述由APU及CPU所进行语音辨识程序400的具体实施例。在一具体实施例中,CPU进行信号处理程序410、音位评估程序430以及字词建模程序440。APU进行声学建模程序420。除非另有所述,否则信号处理程序410、声学建模程序420、音位评估程序430以及字词建模程序440分别以类似图1所示的信号处理阶段110、声学建模阶段120、音位评估阶段130以及字词建模器阶段140的方式运作。
请参阅图4的具体实施例,反馈450为语音辨识程序400的选用特征,其中,根据本发明的具体实施例,音位评估程序430可将主动聚类状态清单提供予声学建模程序420。APU可将一或多个特征向量与主动聚类状态清单里所示的一或多个聚类状态做比较。下面进一步讨论此反馈450。
在另一具体实施例中,声学建模程序420可比较一或多个特征向量与声库相关的所有聚类状态。在这种情况下,当音位评估程序430从APU接收一整组聚类状态分数(例如,“全部评分”功能)供进一步处理时,不需要反馈450。
A.供具有声学处理单元的语音辨识***用的***总线架构
在一具体实施例中,APU及CPU可透过串列周边接口(SPI)总线、周边控制器接口(PCI)总线、应用程式接口(API)总线、先进微控制器总线架构高效能总线(AHB)、先进周边总线(APB)、内存总线、或任何其它类型的总线互相连通。下面更详细说明的是图4所示语音辨识程序400用***总线架构的实施例、非限制性具体实施例。
图5描述供语音辨识***500用的总线架构的具体实施例。语音辨识***500包括APU 510、CPU 520、处理器/内存总线530、快取540、***控制器550、主内存560、多个PCI装置5701-570M、输入/输出(I/O)总线580以及PCI桥590。快取540可为例如在静态随机存取内存(SRAM)装置上实现的第二阶快取。另外,主内存560可例如为动态随机存取内存(DRAM)装置。可根据本发明的具体实施例将语音辨识***500实现成***晶片(SOC)。
如图5所示,APU 510透过PCI桥590连通地耦接至I/O总线580。I/O总线580可为例如PCI总线。APU 510透过PCI桥590及I/O总线580连通地耦接至***控制器550及CPU 520。在另一具体实施例(未示于图5)中,APU 510可直接耦接至处理器/内存总线530,并且转而连通地耦接至CPU 520。
图6描述供语音辨识***600用的总线架构的另一具体实施例。语音辨识***600包括APU 510、CPU 520、快取540、AHB 610、***控制器620、非易失性内存装置630、主内存640、APB桥650、APB 660以及多个装置6701-670M。非易失性内存装置630可为例如快闪内存装置。主内存640可为例如DRAM装置。CPU 520可为例如ARM处理器(由ARM Holdings plc所开发)。可根据本发明的具体实施例,将语音辨识***600实现成SOC。
如图6所示,APU 510透过APB桥650及APB 660连通地耦接至***控制器620。***控制器620还透过AHB 610连通地耦接至CPU 520。进而,***控制器620透过AHB 610连通地耦接至CPU 520。
图7描述供语音辨识***700用的总线架构的另一具体实施例。语音辨识***700包括APU 510、CPU 520、快取540、AHB 610、***控制器620、非易失性内存装置630、低功率双倍数据速率(LPDDR)接口710、LPDDR内存总线720以及主内存730。主内存730可为例如DRAM装置。CPU 520可为例如ARM处理器(由ARM Holdings plc所开发)。可根据本发明的具体实施例,将语音辨识***700实现成SOC。
如图7所示,APU 510及主内存730经由LPDDR内存总线720连通地耦接至LPDDR接口710。APU 510还透过LPDDR内存总线720及LPDDR接口710连通地耦接至***控制器620。进而,***控制器620经由AHB 610连通地耦接至CPU 520。
B.供具有声学处理单元的语音辨识***用的***级架构
图8描述供语音辨识***800用的***级架构的具体实施例。语音辨识***800包括APU 810、内存控制器820、非易失性内存装置830以及易失性内存装置840。内存控制器820经由总线815连通地耦接至APU 810,并且经由总线825(其在特定具体实施例中可表示二或更多个总线)耦接至非易失性内存装置830和易失性内存装置850。在一具体实施例中,在单一晶片上整合APU 810及内存控制器820。在一具体实施例中,或在单独的晶片上整合APU 810及内存控制器820。非易失性内存装置830可为NAND型内存模块、NOR型内存模块或另一种非易失性内存装置。在一具体实施例中,易失性内存装置840可为DRAM装置。另外,根据本发明的具体实施例,APU 810可使用例如上面关于图5至图7所述总线架构的一个,与CPU(未示于图8)连通。
根据本发明的具体实施例,非易失性内存装置830可存储用在语音辨识程序中的声库,其中,声库可包括超过1000个聚类状态。在一具体实施例中,当语音辨识***800接收聚类状态请求时,内存控制器820经由总线825,将声库从非易失性内存装置830复制到易失性内存装置840。可使用例如直接内存存取(DMA)运作,实现非易失性与易失性内存装置之间的声库移送程序。
在一具体实施例中,语音辨识***800可在预期聚类状态计分请求时接通电源。接通电源后,立即将声库从非易失性内存装置830复制到易失性内存装置840。一旦易失性内存装置840已接收声库,APU810即备妥要开始使用易失性内存装置840里的声库,处理聚类状态计分请求(例如,图4的声学建模程序420)。
当APU 810接收聚类状态计分请求时,经由内存控制器820,将选自声库的聚类状态从易失性内存装置840复制到APU 810。APU 810基于选择的聚类状态及APU 810所接收的数据流(例如,图3的一或多个特征向量315),计算聚类状态分数。APU 810在计算完成后,将聚类状态分数移送至请求***(例如,CPU)。
在一具体实施例中,无作用(例如:APU 810使聚类状态计分无作用)一预定时间后,可使易失性内存装置840电源切断。因此,由于易失性内存装置840中的内存单元将不需要周期性复新,可改善语音辨识***800中的功率效率。在这里,声库仍存储于非易失性内存装置830中,以致可在易失性内存装置840电源切断时保留声库。如所属领域技术人员将了解的是,易失性内存装置840在电源切断时,将失去其内存储的内容(例如:声库)。在一具体实施例中,当易失性内存装置840电源切断时,语音辨识***800的其它组件也可跟着切断电源。
图9描述数据模式分析用方法900的具体实施例。可将图8的语音辨识***800用来例如进行方法900的步骤。在一具体实施例中,可将方法900用于进行图4的声学建模程序420。基于本文的说明,相关领域技术熟练者将了解的是,可将方法900用于其它数据模式辨识应用,举例如:影像处理、音讯处理以及手写辨识。
在步骤910中,将多个数据模式从非易失性内存装置(例如:图8的非易失性内存装置830)复制到易失性内存装置(例如:图8的易失性内存装置840)。在一具体实施例中,多个数据模式可为一或多个与声库相关的聚类状态。
在步骤920中,来自易失性内存装置的数据模式是由运算单元(例如:图8的APU 810)提出请求,并且经由内存控制器及总线(例如:分别为图8的内存控制器820及总线825)予以移送。在一具体实施例中,请求的数据模式是来自易失性内存装置中所存储声库的聚类状态。
在步骤930中,运算单元(例如:图8的APU 810)于接收请求的数据模式后,对运算单元所接收的数据流进行数据模式分析。在一具体实施例中,数据模式分析是以选择的聚类状态及运算单元所接收的数据流(例如:图3的一或多个特征向量315)为基础的聚类状态分数计算。运算单元于完成数据模式分析后,将数据模式分析的结果移送至请求***(例如:CPU)。
在步骤940中,易失性内存装置切断电源。在一具体实施例中,易失性内存装置于一预定时间无作用(例如:因运算单元而致数据模式分析无作用)后切断电源。所以,易失性内存装置中的内存单元将不需要周期性复新而可改善功率效率。在一具体实施例中,当易失性内存装置电源切断时,本***的其它组件(例如:语音辨识***800的其它组件)也可跟着切断电源。
图10描述供语音辨识***1000用的***级架构的另一具体实施例。语音辨识***1000包括APU 1010、SOC 1040、DRAM装置1060、快闪内存装置1070以及I/O接口1080。在一具体实施例中,APU 1010为整合晶片,其包括配置成用来存储声库的内存装置1020以及配置成用来进行声学建模程序(例如:图4的声学建模程序420)的特定应用集成电路(ASIC)1030。在另一具体实施例中,可将ASIC 1030及内存装置1020整合在两个单独的晶片上。根据本发明的具体实施例,SOC1040包括配置成用来进行信号处理程序、音位评估程序以及字词建模程序(例如:分别为图4的信号处理程序410、音位评估程序430以及字词建模程序440)的CPU 1050。在一具体实施例中,在两个单独的晶片上整合APU 1010及SOC 1040。
图11描述供语音辨识***1100用的***级架构的另一具体实施例。语音辨识***1100包括APU 1110、SOC 1040、DRAM装置1060、快闪内存装置1070以及I/O接口1080。在一具体实施例中,APU 1110为整合晶片,其包括ASIC 1120、易失性内存装置1130、以及非易失性内存装置1140。在另一具体实施例中,可将ASIC 1120、易失性内存装置1130以及非易失性内存装置1140整合在两个晶片上,例如:ASIC 1120和内存装置1130位于一晶片上,而非易失性内存装置1140则在另一晶片上;ASIC 1120位于一晶片上,而易失性内存装置1130和非易失性内存装置1140则在另一晶片上;或者,ASIC 1120和非易失性内存装置1140位于一晶片上,而易失性内存装置1130则在另一晶片上。在又一具体实施例中,可在单独的晶片上各别整合ASIC 1120、易失性内存装置1130以及非易失性内存装置1140,例如:三个单独的晶片。
根据本发明的具体实施例,可将非易失性内存装置1140配置成用来存储声学模型,此声学模型是于APU 1110开机时复制到易失性内存装置1130。在一具体实施例中,非易失性内存装置可为快闪内存装置,并且易失性内存装置1130可为DRAM装置。另外,根据本发明的具体实施例,可将ASIC 1120配置成用来进行声学建模程序(例如:图4的声学建模程序420)。
图12描述供语音辨识***1200用的***级架构的另一具体实施例。语音辨识***1200包括DRAM装置1060、快闪内存装置1070、I/O接口1080、内存装置1210以及SOC 1220。在一具体实施例中,SOC 1220为包括ASIC 1230及CPU 1240的整合晶片。根据本发明的具体实施例,可将ASIC 1230配置成用来进行声学建模程序(例如:图4的声学建模程序420),并且可将CPU 1240配置成用来进行信号处理程序、音位评估程序以及字词建模程序(例如:分别为图4的信号处理程序410、音位评估程序430、以及字词建模程序440)。
根据本发明的具体实施例,可将内存装置1210配置成用来存储声库,并且经由I/O总线1215将一或多个聚类状态移送至ASIC 1230。在一具体实施例中,内存装置1210可为DRAM装置或快闪内存装置。在另一具体实施例中,可将声库存储在置于ASIC 1230(未示于图12)而非内存装置1210内的内存装置中。在又一具体实施例中,可将声库存储在供SOC 1220(例如:DRAM装置1060)用的***内存中。
图13描述供语音辨识***1300用的***级架构的另一具体实施例。语音辨识***1300包括DRAM装置1060、快闪内存装置1070、I/O接口1080、内存装置1210以及SOC 1220。根据本发明的具体实施例,可将DRAM装置1060配置成用来存储声库,并且经由I/O总线1315将一或多个聚类状态移送至ASIC 1230。
4.声学处理单元架构
图14描述APU 1400的具体实施例。在一具体实施例中,APU 1400为整合晶片,其包括内存模块1420以及聚类状态计分单元(SSU)1430。在另一具体实施例中,可将内存模块1420及SSU 1430整合在两个单独的晶片上。
根据本发明的具体实施例,APU 1400经由I/O信号1410与CPU(未示于图14)连通,其中,APU 1400配置成用来进行声学建模程序(例如:图4的声学建模程序420)。在一具体实施例中,I/O信号1410可包括特征向量信息用的输入特征向量数据线、输入时脉信号、输入APU赋能信号、聚类状态分数信息用的输出聚类状态分数数据线以及APU1400用的其它I/O控制信号。根据本发明的具体实施例,可将APU 1400配置成用来经由特征向量数据线,从CPU接收一或多个特征向量(通过CPU计算),并且经由聚类状态分数数据线,将聚类状态分数传送至CPU以供进一步处理。在一具体实施例中,可将I/O信号1410实现成例如SPI总线、PCI总线、API总线、AHB、APB、内存总线或任何其它类型的总线,用以在APU 1400与CPU之间提供通讯路径(请参阅例如:图5至图7及相关说明)。下面进一步详述介于APU 1400与CPU之间的接口以及用于接口的控制信号。
在一具体实施例中,内存模块1420及SSU 1430可在两个不同的时脉域运作。根据本发明的具体实施例,内存模块1420可运作于与APU1400的输入时脉信号(例如:来自I/O信号1410)相关的时脉频率,并且SSU 1430基于输入时脉信号而可运作于更快的时脉频率。例如,若与输入时脉信号相关的时脉频率为12 MHz,则SSU 1430可运作于60 MHz的时脉分割频率(比与输入时脉信号相关的时脉频率快五倍)。用于实现时脉分割器的技术及方法对于相关领域技术熟练者属于已知。如下面将进一步详述者,SSU 1430的架构可基于其运作的时脉域。
请参阅图14,内存模块1420包括总线控制器1422、内存控制器1424、内存装置1426以及桥接控制器1428。将内存装置1426配置成用来存储待用于语音辨识程序中的声学模型。在一具体实施例中,内存装置1426可为非易失性内存装置,举例如快闪内存装置。在APU 1400运作前(例如:在APU 1400制造及/或测试期间),可将声库预先载入非易失性内存装置。
在另一具体实施例中,内存装置1426可为易失性内存装置,举例如DRAM装置。在一具体实施例中,当APU 1400接收聚类状态请求时,内存控制器1424可将声库从非易失性内存装置(整合在如APU 1400等相同晶片上、或是置于APU 1400外)复制到易失性内存装置。可使用例如DMA运作,实现非易失性与易失性内存装置之间的声库移送程序。
将总线控制器1422配置成用来控制APU 1400与外部CPU之间的数据移送。在一具体实施例中,总线控制器1422可控制来自CPU的特征向量接收以及自APU 1400至CPU的聚类状态分数传送。在一具体实施例中,将总线控制器1422配置成用来将一或多个特征向量从CPU移送至桥接控制器1428,其充当介于内存模块1420与SSU 1430之间的接口。进而,桥接控制器1428将一或多个特征向量移送至SSU 1430以供进一步处理。根据本发明的具体实施例,在计算聚类状态分数时,经由桥接控制器1428将聚类状态分数从SSU 1430移送至内存模块1420。
在一具体实施例中,总线控制器1422可(经由I/O信号1410)接收提供主动聚类状态清单的控制信号。在一具体实施例中,由于CPU进行音位评估程序(例如:图4的音位评估程序430),可将主动聚类状态清单移送至APU 1400。也就是,在一具体实施例中,APU 1400进行的声学建模程序与CPU进行的音位评估程序之间可出现反馈程序(例如:图4的反馈450)。根据本发明的具体实施例,可在聚类状态分数计算时使用主动聚类状态清单,以供将特征向量输入APU 1400。
主动聚类状态清单指的是一或多个存储于内存装置1426中,待于聚类状态分数计算时使用的聚类状态。在一具体实施例中,主动聚类状态清单可包括与内存装置1426的位址空间相关的基址以及与内存装置1426中一或多个聚类状态所置基址有关的索引清单。总线控制器1422可经由桥接控制器1428将主动聚类状态清单送至SSU 1430,其中,SSU 1430(经由内存控制器1424)与内存装置1426连通,以存取一或多个与主动聚类状态清单相关的聚类状态。
在另一具体实施例中,总线控制器1422可(经由I/O信号1410)接收控制信号,其指示APU 1400使用声库中含有的所有聚类状态进行聚类状态分数计算(例如:“全部评分”功能)。总线控制器1422经由桥接控制器1428将“全部评分”指令送至SSU 1430,其中,SSU 1430(经由内存控制器1424)与内存装置1426连通以存取所有与声库相关的聚类状态。
现有的语音辨识***一般是在CPU内将声学建模与音位评估模块(例如:图3的声学建模模块320与音位评估模块330)的反馈回圈加入,以限制聚类状态分数计算时使用的聚类状态数量。这是因为,如上面关于图3的语音辨识***300所述,大量运算资源是专用于可将数千个聚类状态与特征向量做比较的声学建模程序。这对CPU以及将聚类状态从内存装置(例如:图3的内存装置230)移送至CPU的数据总线(例如:图3的数据总线240)的频宽造成显著负载。因此,对于现有的语音辨识***,主动聚类状态清单是用于限制声学建模程序对CPU造成的影响。然而,CPU使用主动聚类状态清单可限制对于实时或实质接近实时处理输入语音信号的需求。
APU 1400的“全部评分”功能不仅减轻CPU及数据总线频宽上的负载,而且还实时或实质接近实时地处理输入语音信号。如下面进一步详述者,APU 1400的特征,举例如图14所示数据总线1427的总线宽度及距离计算器1436的架构,提供***实时或实质接近实时的语音辨识。
请参阅图14,SSU 1430包括输出缓冲器1432、SSU控制模块1434、特征向量矩阵模块1435、距离计算器1436及加法模块1438。根据本发明的具体实施例,将SSU 1430配置成用来计算一或多个特征向量与内存装置1426中所存储一或多个聚类状态之间的马哈朗诺比斯(Mahalanobis)距离。此一或多个特征向量的每一个都可由N个维度组成,其中N可等于例如39。在一具体实施例中,此一或多个特征向量中这N个维度的每一个都可为16位的平均数。
另外,内存装置1426里所存储一或多个聚类状态的每一个都由一或多个高斯机率分布组成,其中这一或多个高斯机率分布的每一个都与这一或多个特征向量的每一个具有相同的维度数量(例如:N个维度)。内存装置1426中所存储一或多个聚类状态的每一个都可具有例如32个高斯机率分布。
如上面所述,内存模块1420及SSU 1430可在两个不同时脉域中运作。在一具体实施例中,将SSU控制模块1434配置成用来经由桥接控制器1428从内存模块1420接收时脉信号。根据本发明的具体实施例,SSU控制模块1434所接收时脉信号的频率,可与APU 1400输入时脉信号(例如:来自I/O信号1410的输入时脉信号)相关的时脉频率相同或实质相同。
在一具体实施例中,SSU控制模块1434可分割其输入时脉信号的频率,并且将分割的时脉信号分配至SSU 1430的其它组件(例如:输出缓冲器1432、特征向量矩阵模块1435、距离计算器1436以及加法模块1438),使得这些其它组件以时脉分割频率运作。例如,若与输入时脉信号相关的时脉频率(例如:来自I/O信号1410)为12 MHz,则SSU控制模块1434可从桥接控制器1428接收相同或实质相同的时脉信号,并且使用已知的时脉分割技术及方法将那个时脉频率分割成例如60 MHz的频率。SSU控制模块1434可将这个时脉分割信号分配至SSU1430的其它组件,以致这些其它组件运作于例如60 MHz(比输入时脉信号相关的时脉频率快五倍)。
为了简化起见,图14未描述从SSU控制模块1434分配至SSU 1430其它组件的时脉信号。为了便于参考,与这个时脉信号相关的频率在本文也称为“SSU时脉频率”。另外,为了便于参考,与SSU控制模块1434输入时脉信号相关的频率在本文也称为“内存模块时脉频率”。
图15描述SSU控制模块1434的具体实施例。SSU控制模块1434包括输入缓冲器1510及控制单元1520。SSU控制模块1434配置成用来经由桥接控制器1428从内存模块1420接收一或多个控制信号。在一具体实施例中,这一或多个控制信号可与I/O信号1410有关联,并且与内存装置1426所输出高斯机率分布相关的控制信息有关联。与I/O信号1410相关的控制信号可包括例如主动聚类状态清单及“全部评分”功能。与高斯机率分布相关的控制信息可包括例如内存装置1426所输出后续高斯机率分布的位址信息。
请参阅图14,在一具体实施例中,当总线控制器1422经由I/O信号1410接收主动聚类状态清单时,可将与内存装置1426的位址空间相关的基址以及与一或多个聚类状态于内存装置1426中所处基址有关的索引清单,存储于图15的输入缓冲器1510中。控制单元1520与输入缓冲器1510连通,以监控聚类状态分数计算时,待由图14的距离计算器1436施用的聚类状态清单。
例如,主动聚类状态清单可含有与内存装置1426的位址空间相关的基址以及指向内存装置1426中所存储100个聚类状态的100个索引。如相关领域技术熟练者将了解者,索引可涉及参考与内存装置1426的位址空间相关基址的指标或内存位址偏移量。另外,如上所述,聚类状态可由一或多个高斯机率分布组成,其中一或多个高斯机率分布的每一个都具有与APU 1400所接收一或多个特征向量(例如:N个维度)每一个相同的维度数量。为了解释,本实施例将假设内存装置1426中存储的每一个聚类状态都由32个高斯机率分布组成。基于本文的说明,相关领域技术熟练者将理解的是,每一个聚类状态都可由多于或少于32个高斯机率分布组成。
在一具体实施例中,就主动聚类状态清单中的第一聚类状态而言,控制单元1520与图14的内存控制器1424连通,以基址和主动聚类状态清单中含有的第一索引信息为基础,存取内存装置1426中的第一聚类状态。根据本发明的具体实施例,与第一索引相关的聚类状态可包括与那个聚类状态相关前2个高斯机率分布的内存位址信息。进而,内存装置1426以例如循序方式,存取与第一聚类状态相关的两个高斯机率分布。例如,内存装置1426存取第一高斯机率分布,并且经由数据总线1427,将这个高斯机率分布输出至距离计算器1436。当随着内存装置1426输出第一高斯机率分布时,内存装置1426也可存取第二高斯机率分布。
在一具体实施例中,第二高斯机率分布可包括内存位址信息,以供内存装置1426存取第三高斯机率分布。内存装置1426可经由图14的桥接控制器1428,将这个内存位址信息连通至图15的控制单元1520。控制单元1520进而与图14的内存控制器1424连通,以存取第三高斯机率分布。在一具体实施例中,当内存装置1426正在存取第三高斯机率分布时,可经由数据总线1427,将第二高斯机率分布输出至距离计算器1436。此存取后续高斯机率分布同时又输出当前高斯机率分布的迭代、重叠程序,是为了与聚类状态相关的所有高斯机率分布(例如:与聚类状态相关的所有32个高斯机率分布)而进行。此迭代、重叠(或平行)处理在聚类状态分数计算时还有更快效能的效益。
根据本发明的具体实施例,图15的控制单元1520监控高斯机率分布从内存装置1426至距离计算器1436的移送程序,使得内存存取及移送程序系以管线方式出现。在将与第一聚类状态相关的32个高斯机率分布输出至图14的距离计算器1436后,控制单元1520针对主动聚类状态清单中一或多个剩余的聚类状态重复以上程序。
根据本发明的具体实施例,在主动聚类状态清单中的聚类状态用于当前特征向量的聚类状态分数计算后,内存模块1420可经由I/O信号1410接收控制信号,其指出来自当前特征向量的主动聚类状态清单是要用于后续特征向量的聚类状态分数计算。在经由桥接控制器1428从内存模块1420接收控制信号时,SSU控制模块1434在后续特征向量的聚类状态分数计算中,使用来自当前特征向量的相同主动聚类状态清单。尤其是,图15的控制单元1520将相同基址以及与输入缓冲器1510中所存储基址有关的索引清单施用于后续特征向量。图15的控制单元1520以上面关于主动聚类状态清单实施例所述类似的方式,为后续特征向量监控高斯机率分布从内存装置1426至距离计算器1436的移送程序。
在另一具体实施例中,内存模块1420可经由I/O信号1410接收表示“全部评分”运作的控制信号。如上所述,“全部评分”功能是关于将特征向量与内存装置1426中所存储声库里所含有所有聚类状态进行比较的运作。在一具体实施例中,图15的控制单元1520与图14的内存控制器1424连通,以存取内存装置1426中的第一聚类状态。第一聚类状态可例如置于与内存装置1426的位址空间相关的开始内存位址。根据本发明的具体实施例,类似于上面的主动聚类状态清单实施例,内存装置1426中的第一聚类状态可包括与那个聚类状态相关的前2个高斯机率分布的内存位址位址信息。进而,内存装置1426以例如循序方式,存取与第一聚类状态相关的两个高斯机率分布。
在一具体实施例中,类似于上面的主动聚类状态清单实施例,第二高斯机率分布可包括第三高斯机率分布上待由内存装置1426存取的内存位址信息。内存装置1426可经由图14的桥接控制器1428,将这个内存位址信息连通至图15的控制单元1520。控制单元1520进而与图14的内存控制器1424连通,以存取第三高斯机率分布。在一具体实施例中,当内存装置1426正在存取第三高斯机率分布时,可经由数据总线1427将第二高斯机率分布输出至距离计算器1436。这个存取后续高斯机率分布同时又输出当前高斯机率分布的迭代、重叠程序,是为了与聚类状态相关的所有高斯机率分布(例如:与聚类状态相关的所有32个高斯机率分布)而进行。
根据本发明的具体实施例,图15的控制单元1520监控高斯机率分布从内存装置1426至距离计算器1436的移送程序,使得内存存取及移送程序是以管线方式出现。在将与第一聚类状态相关的高斯机率分布输出至图14的距离计算器1436后,控制单元1520针对声库里的一或多个剩余聚类状态重复以上程序。
请参阅图14,特征向量矩阵模块1435在APU 1400中是用于扬声器配接。在一具体实施例中,特征向量矩阵模块1435经由I/O信号1410从CPU接收特征向量变换矩阵(FVTM)。可举例如每个发声一次地以周期方式将FVTM载入特征向量矩阵模块1435。在一具体实施例中,可将FVTM存储在置于特征向量矩阵模块1435内的静态随机存取内存(SRAM)装置中。
根据本发明的具体实施例,也可连同内存装置1426中针对每一个聚类状态存储的平均和变异数,为每一个聚类状态存储索引,其中,索引指向FVTM中的行(row)。FVTM中的行数可改变(例如:10、50、或100行),并且可为实现APU 1400的语音辨识***所特有。根据本发明的具体实施例,FVTM中的每一行都可具有与特征向量N个维度数量(例如:39)等数量的元素,每一个元素都为乘算至其对应特征向量维度的比例因数,用以产生新的特征向量。选自FVTM的行(例如:39个比例因数的行)是经由数据总线1439移送至距离计算器1436,其中,距离计算器1436进行乘法运算以产生新的特征向量,如下面将进一步详述者。
在一具体实施例中,SSU控制模块1434将接收自CPU的特征向量以及与聚类状态相关的索引提供予特征向量矩阵模块1435。索引表示FVTM中用于比例化特征向量的特定行。例如,FVTM可具有100行,并且索引可等于10。在这里,对于具有39个维度的特征向量,FVTM的第10行含有39个比例因数,其中,比例因数的行是移送至距离计算器1436以产生新的特征向量。
请参阅图14,距离计算器1436配置成用来计算内存装置1426中所存储聚类状态的一或多个维度与特征向量对应的一或多个维度之间的距离。图16描述距离计算器1436的具体实施例。距离计算器1436包括数据路径多工器(MUX)1610、特征向量缓冲器1620、算术逻辑单元(ALUs)16301-16308以及累加器1640。
数据路径MUX 1610配置成用来经由数据总线1427从图14的内存装置1426接收高斯机率分布。在一具体实施例中,数据总线1427的宽度等于与一个高斯机率分布相关位的数量。例如,若一个高斯机率分布为768个位,则数据总线1427的宽度也为768个位。于多个高斯机率分布维度上,可将与高斯机率分布相关的这768个位调配成16位平均数、16位变异数以及各高斯机率分布维度的其它属性。如上所述,高斯机率分布可具有与特征向量同数量的维度(例如:39个维度)。在另一具体实施例中,数据总线1427的宽度可大于256个位。
另外,在一具体实施例中,可将内存装置1426和距离计算器1436整合在相同晶片上,其中数据总线1427为整合在晶片上,用以将高斯机率分布从内存装置1426至距离计算器1436进行数据移送的宽总线(宽度为以上所述)。在另一具体实施例中,可将内存装置1426和距离计算器1436整合在两个单独的晶片上,其中数据总线1427为紧密耦接于这两个晶片之间的宽总线(宽度为以上所述),使得因杂讯和互连寄生效应造成的数据退化得以最小化。如将于下面所述的是,宽数据总线1427(宽度为以上所述)的效益还有提升APU 1400在计算聚类状态分数时的效能。
数据路径MUX 1610也配置成用来经由数据总线1437从SSU控制模块1434接收一或多个控制信号和特征向量,并且从特征向量缓冲器1620接收特征向量比例因数。在一具体实施例中,特征向量缓冲器1620可配置成用来存储经由数据总线1439从特征向量矩阵模块1435移送来的比例因数(与FVTM的选择行相关)。在另一具体实施例中,特征向量缓冲器1620可配置成用来存储FVTM。在这里,可将经由数据总线1437来自SSU控制模块1434的一或多个控制信号用于选择FVTM行。数据路径MUX 1610经由数据总线1612将特征向量、选自FVTM的特征向量比例因数以及高斯机率分布信息输出至ALUs 16301-16308以供进一步处理。
在一具体实施例中,数据路径MUX 1610也配置成用来经由数据总线1437从SSU控制模块1434接收来自一或多个控制信号的权重因数。数据路径MUX 1610配置成用来将高斯权重因数输出至累加器1640以供进一步处理。
请参阅图16,根据本发明的具体实施例,每一个ALUs 16301-16308都配置成用来于各SSU时脉周期计算接收自数据路径MUX 1610的高斯机率分布的维度与特征向量的对应维度之间的距离分数。在一具体实施例中,ALUs 16301-16308可运作于SSU时脉频率(例如:比内存模块时脉频率快5倍),使得每一个来自图14所示内存装置的读取运作(例如:将高斯机率分布移送至距离计算器1436)都有与高斯机率分布相关的距离分数(本文也称为“高斯距离分数”)从距离计算器1436输出至加法模块1438。
在一具体实施例中,数据路径MUX 1610配置成用来将与一个维度相关的特征向量信息、与高斯机率分布对应维度相关的平均数、与高斯机率对应维度相关的变异数以及特征向量比例因数分配至每一个ALU 16301-16308。基于分派予各别ALU的特征向量信息及特征向量比例因数,ALUs 16301-16308的每一个都配置成用来通过将特征向量的维度乘上各别比例因数以产生新的特征向量。
在一具体实施例中,特征向量维度与对应比例因数的乘法是以“实时运算模式(on-the-fly)”进行的,意思是,乘法运算是于计算距离分数期间进行的。此对比于针对FVTM中每一行进行的乘法运算、以及存储于内存中让ALUs 16301-16308的每一个在以后存取的乘法运算结果。“实时运算模式”乘法运算的效益还有,FVTM无索引(或未选择)行相关乘法运算的结果不需要内存存储。这转而导致新的特征向量因不需另外的时脉周期用于存储与内存中无索引列相关的特征向量比例化结果而产生较快速,并且也导致ALUs 16301-16308的晶粒尺寸面积较小。
根据本发明的具体实施例,基于各别ALU的新特征向量、平均数以及变异数,将ALUs 16301-16308的每一个都配置成用来于各SSU时脉周期基于特征向量维度及对应的高斯机率分布维度计算距离分数。累增地,ALUs 16301-16308在一个时脉周期中为8个维度产生距离分数(也就是,每个ALU进行1个维度计算)。下面进一步详述的是ALU的架构及运作。
根据本发明的具体实施例,距离计算器1436中的ALU数量可取决于以上所述的SSU时脉频率及内存模块时脉频率,使得距离计算器1436于每一次读取存取时都将一个高斯机率分布的距离分数输出至内存装置。例如,内存模块时脉频率可具有12 MHz的运作频率,其中内存装置1426也运作于12 MHz(例如:对大约83 ns的读取存取而言)。SSU 1430可具有例如60 MHz的SSU时脉频率,以比内存模块时脉频率快五倍运作。利用39个维度的特征向量及8个ALUs,可在5个SSU时脉周期或1个内存模块时脉周期中计算一个高斯机率分布的高斯距离分数。因此,通过设计,这5个SSU时脉周期为对应于1个内存模块时脉周期的预定数量的时脉周期,其中,于1个内存模块时脉周期自内存装置读取一个高斯机率分布时,通过累加器1640计算另一高斯机率分布的高斯距离分数。
在一具体实施例中,可在SSU时脉周期的升缘启动ALUs 16301-16308的一部分,而ALUs 16301-16308剩余的部分则可在SSU时脉周期的降缘启动。例如,可在SSU时脉周期的升缘启动ALUs 16301-16304,并且可在SSU时脉周期的降缘启动ALUs 16305-16308。如此交错启动ALUs16301-16308的结果是,可最小化距离计算器1436所产生的峰值电流(及峰值功率),从而降低距离计算器1436中可靠度问题的感受性。
基于本文的说明,相关领域技术熟练者将了解的是,距离计算器1436的架构不限于以上实施例。反而,如相关领域技术熟练者将了解的是,距离计算器1436可运作于比60 MHz更快或更慢的时脉频率,并且距离计算器1436可包括多于或少于8个ALUs。
请参阅图16,累加器1640配置成用来从每一个ALUs 16301-16308接收输出,并且(经由数据总线1614)从数据路径MUX 1610接收高斯权重因数。如上所述,在一具体实施例中,ALUs 16301-16308的每一个于每一个SSU时脉周期都输出高斯机率分布维度的距离分数。这些来自每一个ALUs 16301-16308的距离分数都由累加器1640存储并且累加,以产生高斯机率分布维度的距离分数或高斯距离分数(例如:累加器1640于每一个SSU时脉周期都加上由ALUs 16301-16308计算出的各别距离分数。
于累加器1640中累加与所有高斯机率分布维度相关的高斯距离分数后(例如:39个维度),累加器1640将总和乘上高斯权重因数以产生加权高斯距离分数。在一具体实施例中,高斯权重因数在累加器1640输出高斯距离分数的情况下属于选用。在另一具体实施例中,高斯权重因数是特定于每一个高斯且存储内存装置1426中。
加法模块1438配置成用来加上一或多个高斯距离分数(或加权高斯距离分数),以产生聚类状态分数。如上所述,每一个聚类状态都可由一或多个高斯机率分布组成,其中,每一个高斯机率分布都可与高斯距离分数相关。针对具有多个高斯机率分布(例如:32个高斯机率分布)的聚类状态,加法模块1438将与所有高斯机率分布相关的高斯距离分数加总,以产生聚类状态分数。在一具体实施例中,加法模块1438配置成用来在对数域(log domain)中进行加总运算,以产生聚类状态分数。
输出缓冲器1432配置成用来从加法模块1438接收聚类状态分数,并且将聚类状态分数移送至桥接控制器1428。桥接控制器1428转而经由总线控制器1422,将聚类状态分数移送至外部CPU。在一具体实施例中,输出缓冲器1432可包括多个内存缓冲区,使得当第一内存缓冲区中的第一聚类状态分数正予以移送至桥接控制器1428时,可将加法模块1438产生的第二聚类状态分数移送至第二内存缓冲区,以供后续移送至桥接控制器1428。
图17描述声学建模方法1700的具体实施例。可使用例如图14的APU 1400进行方法1700的步骤。
在步骤1710中,经由宽度为至少一个高斯机率分布的数据总线接收多个高斯机率分布,并且从外部运算装置接收特征向量。高斯机率分布可由例如768个位组成,其中数据总线的宽度至少为768个位。另外,图14的APU 1400可从外部运算装置(例如:经由图14的I/O信号1410与APU 1400连通的CPU)接收特征向量。
在一具体实施例中,将与特征向量的多个维度相关的信息、与至少一个高斯机率分布的对应的多个维度相关的多个平均数以及与至少一个高斯机率分布的对应的多个维度相关的多个变异数分配至例如算术逻辑单元(例如:图16的ALUs 16301-16308)。
在步骤1720中,基于特征向量的多个维度以及至少一个高斯机率分布的对应的多个维度,计算多个维度距离分数。在一具体实施例中,距离分数的计算是以来自主动聚类状态清单的至少一个聚类状态为基础。主动聚类状态清单可包括与内存装置的位址空间相关的基址以及一或多个与至少一个聚类状态置放于内存装置的基址有关的索引。另外,存储供特征向量的多个维度用的多个比例因数,其中这多个比例因数是于计算多个维度距离分数期间予以施用于特征向量的多个维度。可通过例如图14的距离计算器1436进行步骤1720。
在步骤1730中,合计多个维度距离分数,而为至少一个高斯机率分布产生高斯距离分数。在一具体实施例中,于预定数量的聚类状态计分单元(SSU)时脉周期产生高斯距离分数。此预定数量的SSU时脉周期可等于至少一个高斯机率分布读自内存装置的读取存取时间。可通过例如图14的距离计算器1436进行步骤1730。
在步骤1740中,合计对应于多个高斯机率分布的多个高斯距离分数,以产生聚类状态分数。可通过例如图14的距离计算器1436进行步骤1740。
本发明的具体实施例处理并且解决以上关于图3的现有语音辨识***200所述的问题。总言之,声学建模程序是通过例如图14的APU1400进行。APU搭配CPU运作,其中,APU可从CPU接收一或多个特征向量(例如:图3的特征向量315)、基于一或多个高斯机率分布计算聚类状态分数(例如:图3的聚类状态分数325)以及将聚类状态分数输出至CPU。在一具体实施例中,可将一或多个高斯机率分布存储在APU中。在另一具体实施例中,或可将一或多个高斯机率分布存储于APU的外部,其中,APU从外部内存装置接收一或多个高斯机率分布。基于以上所述APU架构的具体实施例,可加速聚类状态分数的计算。
5.算术逻辑单元架构
图18根据本发明的具体实施例,为ALU 1800的方块图。在一具体实施例中,可根据图18所示的架构实现一或多个ALUs 16301-16308。将ALU 1800配置成用来运算介于特征向量与高斯机率分布向量之间的一维距离分数。例如,可将ALU 1800配置成用来运算一维距离分数,如下式:
其中:
Δij=xi-μij,
varij为第j个高斯机率分布向量的第i个维度的变异数;
M1和M2为比例因数;
C为常数;
xi为特征向量在第i个维度中的数值;以及
μij为第j个高斯机率分布向量的第i个维度的平均数。
因此,在一具体实施例中,对于给定维度及给定高斯机率分布,ALU 1800输出的一维距离分数取决于三个变数:xi、μij、以及varij。一种用于在软件中实现此方程式的技术是产生以这三个变数为索引的查阅表(LUT)。此外,由于分数未具体取决于xi及μij的数值,而是两者之间的差值Δij,故可将此LUT简化成以Δij和varij为索引的二维LUT。因此,可将二维LUT用于实现ALUs 16301-16308。
然而,二维LUT若用于图16的硬件实现中的ALUs 16301-16308,会有大量缺点。尤其是,例如,因为有八个各别运算一维距离分数的ALUs16301-16308,故此二维LUT必须复制八个。在一具体实施例中,此二维LUT大约是32Kbytes,但其它具体实施例及应用可能需要更大的LUT。因此,在此具体实施例中,会需要复制八个32Kbyte LUT。若以此方式实现,大量的SSU总基板空间会配置给仅仅八个二维LUT。若需要或想要较大的LUT,则会令此问题恶化。
在一具体实施例中,ALU 1800通过使用运算逻辑及一维LUT的组合实现计分功能,克服了二维LUT的缺点。重点是,可将方程式(1)分成两个部分:aluij部分及LUTij部分,各部分说明如下。
LUTij=M1×(ln(varij)-C) (3)
因此ALU 1800运算aluij,并且与此运算并行撷取LUTij。接着将aluij和LUTij组合以形成距离分数。尤其是,如图18所示,ALU 1800包括运算逻辑单元1802及LUT模块1804。如下面进一步详述者,运算逻辑单元1802可运算数值aluij,并且LUT模块1804可用于撷取数值LUTij。此外,ALU 1800另外包括组合模块1806。组合模块1806将运算单元1802及LUT模块1804的输出组合,并且输出距离分数。
运算逻辑单元1802及LUT模块1804仅接收判断其各别数值所需的输入。具体而言,如以上所述,aluij取决于三个变数:xi、μij、及varij。因此,如图18所示,运算逻辑单元1802接收这三个数值作为输入。此外,撷取自LUT模块1804的数值是单独使用数值varij编制索引。因此,如图18所示,LUT模块1804仅接收数值varij。
图19根据本发明的具体实施例表示ALU 1800的详细方块图。在图19的具体实施例中,运算逻辑单元1802包括减法模块1910、平方模块1912、LUT 1914、乘法器1916以及格式化模块1918。减法模块1910运算xi与μij之间的差值,也就是,减法模块1918运算Δij。平方模块1912计算出减法模块1910所输出差值的平方,产生表示为的整数。
在一具体实施例中,LUT 1914输出对应于的数值。乘法器1916运算下列两个项目的乘积:(1)撷取自LUT 1914的数值,以及(2)平方模块1912所输出的平方。因此,乘法器1916的输出为此乘积值是通过格式化模块1918接收,其将结果格式化,以至于其可与LUT模块1804的输出有效组合。
如图19所示,LUT模块1804包括LUT 1920及格式化模块1922。LUT 1920存储对应于LUTij的数值,如方程式(3)所示,并且使用varij制作索引。撷取自LUT 1920的数值通过格式化模块1922接收。格式化模块1922将LUT 1920的输出格式化,以至于其可与运算逻辑单元1802的输出有效组合。
于组合模块1806接收来自运算单元1802及LUT模块1804的输出。组合模块1806包括加法器1930、位移模块1932、舍入(rounding)模块1934以及饱和模块1936。加法器1930运算两个所接收数值的总和,并且将总和输出。位移模块1932配置成用来移除加法器1930所输出总和的小数部分。舍入模块1934配置成用来舍去位移模块1934的输出。饱和模块1936配置成用来接收舍入的总和,并且令此数值饱和至特定位数。因此,饱和模块1936的输出为具有特定位数的数值,其表示一维距离分数。
图20根据本发明的另一具体实施例,为运算单元1802的方块图。图20中所示的具体实施例与图19的具体实施例类似,差别在于图20的具体实施例另外包括变换模块2002、例外处理模块2012、格式化模块2014以及多工器2018。
变换模块2002包括乘法器2020、比例位模块2022以及饱和模块2024。如以上所述,可通过特征向量变换矩阵中的各别元素变换特征向量的数值,以例如解释扬声器的学习特性。在一具体实施例中,可将变换模块2002配置成用来通过对应的变换数值αi将个别特征向量值xi比例化。具体而言,乘法器2020运算特征向量值xi与对应变换值αi的乘积,并且将数值输出至比例位模块2022。比例位模块2022向右位移,并且将产生的整数输出至饱和模块2024。饱和模块2024类似于引用图19所述的饱和模块1936,令接收的数值饱和至特定位数。因此,饱和模块2024的输出为表示特征向量值调整比例后的数值。
例外处理模块2012及多工器2018配置成用来处理LUT 1914中出现的特定误差。例如,为了要节省空间,可缩减LUT 1914的尺寸。尺寸缩减可造成LUT 1914的特定值有误差。在此一具体实施例中,例外处理模块2012可识别LUT 1914的输出是否将是那些数值中的一个,并且输出正确值。换句话说,例外处理模块2012的作用可为LUT,其针对LUT 1914的每一个元素都包括一元素,其可具有因尺寸限制所造成的误差。由于LUT 1914是基于varij制作索引,故例外处理模块2012可识别是否需基于varij的数值校正LUT 1914的输出。
在另一具体实施例中,例外处理模块的作用可为二维LUT,其也接收Δij。在此一具体实施例中,例外处理模块2012可输出aluij的特定值(例如:与来自LUT 1914的对应元素相反)。由于LUT 1914中这些可能误差数相对较小,例外处理模块2012不占用大量空间,较大的二维LUT则会占用大量空间。再者,通过控制多工器2018以输出例外处理模块2012的输出,而非符号位模块1918的输出,例外处理模块2012可确保最终输出至组合模块1806的是aluij的存储值而非使用LUT 1914错误输出所计算的aluij值。
格式化模块2014接收乘法器1916所运算的乘积。在一具体实施例中,格式化模块2014配置成用来缩减结果的位数。尽管非必要,此运作仍可通过缩减输出位数而节省空间及功率。
此外,图20的具体实施例所示的减法模块1810包括多工器2004与2006、比较模块2008以及减法器2010。在一具体实施例中,平方模块1912可配置成用来专门求出正数的平方值。因此,减法模块1910的输出在此一具体实施例中必须为正数。为了得到这个结果,可通过比较模块2008比较特征向量值(供选择地以变换值αi调整比例)及平均数μij这两个运算元。比较模块2008接着将控制信号输出至多工器2004与2006,以确保进入减法器2010的第一运算元至少与第二运算元一般大。
图21描述运算一维距离分数用的方法2100的具体实施例。可使用例如图18所示的ALU 1800进行方法2100的步骤。在步骤2102中,通过变换值调整特征向量维度。在步骤2104中,基于特征向量值及与高斯机率分布向量相关的平均与变异数运算第一数值。在步骤2106中,基于变异数撷取第二数值。例如,在图19中,可将LUT模块1804用于撷取变异数。在步骤2108中,组合第一和第二数值以产生一维分数。
6.声学处理单元接口
A.***概述
图22根据本发明的具体实施例,为声学处理***2200的方块图。声学处理***包括中央处理单元(CPU)2210及声学处理单元(APU)2220。在CPU 2210上执行的是应用程式2212、语音辨识引擎2214以及API 2216。语音辨识引擎2214是包括至少两条线程(thread)的行程(process):搜寻线程2250及距离线程2260。
APU 2220包括声学模型内存2222、第一总线2224、内存缓冲区2226、第二总线2228以及聚类状态计分单元2230。可将声学模型内存2222配置成用来存储多个一起形成一或多个声学模型的聚类状态。第一总线2224是配置成用来允许声学模型内存将整个高斯机率分布向量输出至内存缓冲区2226的宽总线。聚类状态计分单元2230对接收自CPU 2210的特征向量进行聚类状态分数的评分。可如上所述实现聚类状态计分单元2230。例如,可如图15所示实现聚类状态计分单元。请参阅上面第4节以取得更多聚类状态计分单元2230的信息。
内存缓冲区2226可保留高斯机率分布向量直到聚类状态计分单元2230已备妥对其运算高斯距离分数。也就是,若聚类状态计分单元2230正在对高斯机率分布向量q进行接收自CPU 2210的特征向量的计分,则内存缓冲区2226可保留下一个待计分的高斯机率分布向量,也就是向量q+1。
如图22所示,对APU 2220的输入包括对特定聚类状态(聚类状态#)的参考及特征向量。聚类状态#输入处理所存储的对应于声学模型内存中那个特定聚类状态的向量信息。APU 2220的输出是聚类状态分数,其表示所参考聚类状态在给定时框内发出特征向量的可能性。在一具体实施例中,声学模型内存2222利用平行读取架构及内部频宽非常大的总线2224。平行读取的位数大于256(例如:768个位宽-足以将整个高斯机率分布向量一次载入)。接着使用频宽非常大的总线2224将读自声学模型内存2222的数值锁存到内存缓冲区2226里。将来自内存缓冲区2226的输出和观测向量信息两者,输入到进行聚类状态分数运算所需乘法与加法的聚类状态计分单元2230中。其上有内存缓冲区2226与聚类状态计分单元2230连通的总线2228,实质类似于总线2224。
如上所示,聚类状态分数的运算,是通过计算J个N维高斯机率分布向量的分数,并且接着予以合计以得到总分而达成。然而,某些计分演算法在计算时仅使用最有效高斯(most significant Gaussians)以提升运算速度。在基于高斯部分集合使用演算法时,仅需将那些与所需高斯相关的位从声学模型内存移送至聚类状态计分单元2230。换句话说,内存中一直将是聚类状态计分单元2230需要的最大相连位数,与用于存储单一高斯机率分布向量的位数相等。内存总线的频宽要求以及平行读取所需的位数,将通过只移送那些每次移送都含单一高斯机率分布向量的位而予以减到最少。每次移送都使用这个位数,可降低APU 2220的功率要求,并且将提高必要数据传至聚类状态计分单元2230的移送率,导致总体***效能得到提升。换句话说,通过缩减每次移送的位数,可降低APU 2220的功率要求,并且也可增加必要数据传至聚类状态计分单元2230的移送率,导致总体***效能得到提升。
如上所述,声学建模在许多种语音辨识***(也就是,关键字辨识、或大量词汇连续语音辨识)中,是主要瓶颈中的其中一项。由于大量的比较及计算,故常使用高效能及/或平行微处理器,并且在存储声学模型的内存与处理器之间需要高频宽总线。在图22的具体实施例中,可将声学模型内存2222并入APU 2220,将其整合成具有聚类状态计分单元2230的单一晶粒,两者是使用宽、高频宽内部总线2224及2228连接以改良数据移送率。然而,尽管增加每次移送的位数的确提升数据移送率,总体***效能仍非总是得到提升。
每次移送的位数也可为声学建模用的演算法的函数。若使用基于高斯部分集合的计分演算法(也就是高斯选择(Gaussian Selection)),则每次移送的位数可等于演算法所用高斯的尺寸。每次移送的位数若较少,则移送含高斯的数据需要多个周期,而每次移送的位数若较多,则因数据不在本地而无效率。
在一具体实施例中,一架构是用于声学建模硬件加速器,这时用的是计分演算法,是至少部分基于高斯的部分集合(也就是高斯选择)。此最佳化架构相较于其它架构,可显著提升总体***效能。
图23根据本发明的具体实施例,为声学处理***2300的方块图。声学处理***2300包括处理器2310、专用DRAM模块2302、DRAM模块2304、以及非易失性内存2306。可将非易失性2306实现成例如嵌内嵌式快闪内存区块。处理器2310包括CPU 2312、硬件加速器2314、以及内存接口2316。硬件加速器2314包括聚类状态计分单元2320。可如以上所述实现聚类状态计分单元2320。例如,可如图15所示实现聚类状态计分单元。
在一具体实施例中,专用DRAM模块2302是专用于聚类状态计分单元2320,用以例如存储聚类状态。因此,内存接口2316可将聚类状态计分单元2320耦接至专用DRAM 2302。
图24根据本发明的具体实施例,为硬件加速器2400的方块图。硬件加速器2400包括处理器2402及专用DRAM模块2404。处理器2402包括串列周边接口(SPI)总线接口模块2412、聚类状态计分单元2414以及内存接口2416。可如以上所述(例如:图15所示)实现聚类状态计分单元2414。如图24所示,专用DRAM模块2404存储一或多个声学模型。在替代具体实施例中,DRAM模块2404可改为非易失性内存,例如快闪内存模块。在又另一具体实施例中,DRAM模块2404可改为含易失性内存模块(例如:DRAM)及非易失性内存模块的内存模块。在此一具体实施例中,声学模型起先可存储于非易失性内存模块中,并且予以复制到易失性内存模块供聚类状态计分用。
SPI接口模块2412可提供对SPI总线的接口,SPI总线转而可将硬件加速器2400耦接至CPU。内存接口2416将聚类状态计分单元2414耦接至专用DRAM模块2404。在一具体实施例中,语音辨识***可用云端式解决方案实现,其中,语音辨识所需的聚类状态计分及处理是在云端式语音辨识应用程式中进行的。
B.软件堆栈
图25根据本发明的具体实施例,为描述APU软件堆栈2500的方块图。软件堆栈2500可用于以概念方式描述声学处理***(例如:引用图22所述的声学处理***2200)中组件之间的连通。堆栈2500包括应用程式2502、语音辨识引擎2504、应用程式接口(API)2550、SPI总线控制器2512、SPI总线2514以及APU 2516。API 2550包括通用DCA 2506、低阶驱动程式(LLD)2508以及硬件抽象化层(HAL)2510。在一具体实施例中,应用程式2502、语音辨识引擎2504、API 2550以及APU 2516可分别对应于图22的应用程式2212、语音辨识引擎2214、API 2216以及APU 2220。
在软件堆栈2500中,应用程式2502与语音辨识引擎2504连通,其转而与通用DCA 2506连通。在一具体实施例中,可经由DCA API将语音辨识引擎2504耦接至通用DCA 2506。可经由LLD API将通用DCA2506耦接至LLD 2508。可经由HAL API将LLD 2508耦接至HAL 2510。将HAL 2510连通地耦接至SPI总线控制器2512,其是连通地耦接至SPI总线2514。APU 2516是连通地耦接至SPI总线2514,并且经由总线控制器2512及SPI总线2514连通地耦接至HAL 2510。
在一具体实施例中,软件堆栈2500在APU 2516与应用程式2502(例如:运用语音辨识的应用程式)之间提供软件接口。尤其是,应用程式2502及语音辨识引擎2504可为“硬件无关型(hardwareagnostic)”。也就是,应用程式2502及语音辨识引擎2504可各自完成其运作,而无需知道计分时与距离或聚类状态有关的详细知识。
通用DCA 2506、LLD层2508以及HAL层2510包括特定硬件API呼叫。在一具体实施例中,HAL 2510的API呼叫取决于其连接的控制器类型。在一具体实施例中,APU 2516的总线接口可为不同的总线及控制器组合,需要不同的HAL(具有不同的API呼叫)。
通用DCA 2506为距离运算API。可由软件开发者定义DCA。在一具体实施例中,DCA API是专门定义成支援语音辨识引擎,如语音辨识引擎2504。同样地,可专门针对APU 2516实现通用DCA 2506。此外,LLD 2508可为聚类状态计分单元命令的功能性抽象,并且可一对一地映射至聚类状态计分单元命令。如图25所示,低阶驱动程式2508是耦接至HAL 2510。
DCA API可包括下列五种函数:建立(Create)、关闭(Close)、设定特征(Set Feature)、运算距离分数(Compute Distance Score)以及填写分数(Fill Scores)。在一具体实施例中,建立函数指定要使用的声学模型。内存中可存储一或多个声学模型(例如:每一种语言有一或多个声学模型)。例如,如以上引用图22所述,APU的专用声学模型内存2222可存储声学模型(例如:聚类状态库)。此外,若提供声学模型(例如:聚类状态库,其存储对应于各个聚类状态的声音的高斯分布)以及特征向量,则建立函数可指定特征向量中的维度数。在一具体实施例中,英语的特征向量可具有39个维度。在另一具体实施例中,其它语言的特征向量可具有另一维度数。更一般而言,维度数可取决于选用于语音辨识处理的特定口头语言而变。因此,建立函数指定选择的声学模型、维度数以及聚类状态数。关闭函数是结束传递特征向量、音讯取样部分(audio sample portions)以及聚类状态计分请求至硬件加速器(例如:APU 2516)的函数。
在一具体实施例中,设定特征函数是通过传达特定的frameID、passID以及特征向量,将聚类状态计分请求设定成其各别时框。如上所示,输入音讯信号可分解成多个时框(例如:通过语音辨识引擎2504)。示例性时框包含一部分音讯输入信号的频谱特性。在一具体实施例中,时框长度可为12毫秒(ms)。设定特征函数可将每一个时框转换成39个维度(例如:39个8位值)。设定特征函数可指定特定时框ID及相关特征向量。
在一具体实施例中,距离运算分数函数计算聚类状态分数(例如:高斯机率),如上所述,可将此函数实现成距离计算。可将这个函数用于开始并且准备聚类状态计分。例如,可将特征向量输入至APU 2516,并且APU 2516将对所有存储在声学模型中的聚类状态、或至少选取的部分聚类状态进行评分。接着将这个分数送回上层。在一具体实施例中,距离运算分数函数可指定声学模型将用于聚类状态计分的一部分或全部。
在一具体实施例中,填写分数函数获取聚类状态计分结果并且将其传回上层软件,包括应用程式2502及语音辨识引擎2504。
在一具体实施例中,可将语音辨识引擎2504用于任何形式的模式辨识,例如,将隐性马可夫模型用于模式辨识的模式辨识形式。在另一具体实施例中,模式辨识的另一形式也使用高斯计算。模式辨识的实施例可包括但不限于以上所述用于语音辨识、影像处理及手写辨识的聚类状态计分。
如上所示,应用程式2502及语音辨识引擎2504不受限于任何用于判断聚类状态分数的硬件。在一具体实施例中,可将特定的APU换成不同的硬件,但无需知道或令应用程式2502及语音辨识引擎2504起作用。若应用程式2502及语音辨识引擎2504不受限于任何聚类状态计分用的硬件类型,则可用另种设计的第二硬件加速器取代第一硬件加速器,而无需重新设计应用程式2502及语音辨识引擎2504。换句话说,如本文所述,仅管APU呼叫库需指定所用硬件加速器的类型及设计,通用DCA库呼叫仍无需指定硬件。
在一具体实施例中,软件架构如图25所示,可通过说明通过图25所示软件堆栈的数据与控制流而予以说明。应用程式2502可为任何使用语音辨识引擎的应用程式。在一具体实施例中,语音辨识引擎2504是由Nuance,Inc.所提供的Vocon引擎。在替换具体实施例中,可使用其它以高斯混合模型(GMM)进行机率估测的语音辨识引擎或模式辨识引擎。
在一具体实施例中,APU 2516使用高斯混合模型运算聚类状态分数。APU 2516可比嵌入式处理器(例如:cortex A8嵌入式处理器)更快运算这些分数,使得在具有APU 2516的板上语音辨识***中进行语音辨识更加实际。缷载聚类状态计分(或距离运算)至APU 2516,不仅改善使用者经验(通过缩减运算延迟),还允许CPU 2210参与***中的其它工作。软件架构在降低CPU负载及延迟方面扮演重要角色。
在一具体实施例中,语音辨识引擎2504未直接知道APU 2516。例如,语音辨识引擎2504可使用通用DCA API 2506运算距离(也称为聚类状态分数)。已将这里所述通用DCA库的特定实现专门设成使用APU 2516,具有多个下面所述对APU的函数呼叫。这与完成软件实现的通用DCA库有所不同。此特定实现将通用DCA库呼叫转译成一连串APU库呼叫。下面说明实现细节。APU库的定义及实现是针对APU目前的实现并且也在下面予以说明。
在一具体实施例中,通用DCA 2506在语音辨识引擎2504与APU2516之间运作为接口层。例如,语音辨识引擎2504使用对通用DCA的通用API呼叫请求聚类状态计分。通用DCA2506接着利用API呼叫的APU特定库(下面有进一步说明),指挥APU硬件加速器进行请求的聚类状态计分。由于语音辨识引擎2504不知道APU 2516,故语音辨识引擎2504可有下列效益的优点。例如,语音辨识引擎2504可只需要知道传达APU 2516格式的讯息。语音辨识引擎2504也无需知道APU2516所进行的工作。此外,存在换出效益。也就是,可取代或重新设计APU 2516而无需对语音辨识引擎2504进行任何重新设计。只有接口(本具体实施例的通用DCA 2506)需具有特定硬件API呼叫,以确保语音辨识引擎2504与APU 2516之间所需的可交互运作性。
在一示例性具体实施例中,通用DCA库包含下列函数:
函数名称:distance_computation_create
输入参数:
·声学模型。
·特征向量的维度数。
·声学模型中聚类状态的总数量。
说明:将这些参数存储成运算状态的一部分。
函数名称:distance_computation_setfeature
·输入参数:
o时框Id
o特征向量
说明:存储对应于时框Id的特征向量。
函数名称:distance_computation_computescores
·输入参数:
o时框Id
o待评分聚类状态的清单
说明:针对给定时框指定待评分的聚类状态。
函数名称:distance_computation_fillscores
·输入参数:
o含有分数的缓冲器
说明:在缓冲器中存储聚类状态分数。
函数名称:distance_computation_setfeaturematrix
o输入参数:
o pMatrix
说明:在APU中存储由“pMatrix”提供的特征向量变换矩阵。
于发声之间呼叫distance_computation_setfeaturematrix函数,以令辨识适应于特定的扬声器。APU在针对下一次发声运算聚类状态分数时使用这个矩阵。
在一具体实施例中,可实现
“distance_computation_computescores”及
“distance_computation_fillscores”,以使运算延迟及CPU负载降到最小。例如,可为了达成图26所示的并行运算而实现这些函数。
在一示例性具体实施例中,APU库支援下列函数:
函数名称:apu_set_acoustic_model
·输入参数:
o声学模型
·说明:将声学模型设定成用于聚类状态计分。
函数名称:apu_load_feature_vector
·输入参数:
o特征向量
·说明:将特征向量载入APU。
函数名称:apu_score_senone_chunk
·输入参数:
o聚类状态清单
·说明:将聚类状态清单载入APU用于计分。
函数名称:apu_score_range
·输入参数:
o第一及最后一个索引所指定的聚类状态范围
·说明:指示APU在范围内将所有聚类状态评分。
函数名称:apu_read_senone_scores
·输入参数:
o待读取分数的数量
o目标缓冲器
·说明:读取分数并且存储于目标缓冲器中。
函数名称:apu_check_score_ready_status
·输入参数:
o无
·说明:检查是否已将待读自APU的分数备妥。
函数名称:apu_read_score_length
·输入参数:
o无
·说明:读取状态暂存器以求得可用分数元素的数量。
函数名称:apu_read_status
·输入参数:
o暂存器索引
·说明:读取由暂存器索引指定的状态暂存器。
函数名称:apu_read_configuration
·输入参数:
o无
·说明:读取组态暂存器。
函数名称:apu_write_configuration
·输入参数:
o组态数据
·说明:写入组态暂存器。
在一具体实施例中,可将APU用于在每一个给定发声的时框进行聚类状态的计分。选择的声学模型是于开始时连通至APU,作为函数distance_computation_create的一部分。给定时框的特征向量是经由函数distance_computation_setfeature传达至APU。给定时框的待评分的聚类状态是经由函数distance_computation_computescores传达予APU。可经由函数distance_computation_fillscores将APU运算出的实际分数传回语音辨识引擎。
此控制以由上往下的方式于图25所示的堆栈2500流动。所有函数都同步,并且都在回传前完成,函数distance_computation_computescores是其中的例外。如下所示,可将计分实现成单独的线程,以令上述距离运算及搜寻同时进行的可能性达到最大。此线程每次在等待APU 2220完成距离运算时,都让CPU进行语音辨识引擎2214的剩余工作。此非同步运算对于延迟及CPU负载最小化具有重要性。
C.并行搜寻及距离分数运算
在一具体实施例中,可为APU 2516建立线程(例如:可执行行程),其有别于正由应用程式2502或语音辨识引擎2504所执行的线程。为了有单独的线程,必须没有相依性(第一角色的进一步动作取决于第二角色的动作)。破坏应用程式2502及语音辨识引擎2504与APU 2516之间的相依性,允许应用程式2502及语音辨识引擎2504与APU 2516平行运作。在一示例性具体实施例中,应用程式2502一方面与语音辨识引擎2504且另一方面与APU 2516之间的相依性,可透过使用时框(例如:延续大约10至12ms)予以避免(但本发明不局限于本具体实施例)。例如,尽管应用程式2502正在使用时框n的聚类状态,APU 2516仍可正在进行时框n+1的聚类状态分数。
更具体而言,语音辨识的运作需要两个离散的运作:计分及搜寻。如以上所述,计分运作含括聚类状态的高斯机率分布向量与对应于特定时框的特征向量之间的比较。在一具体实施例中,软件堆栈2500可配置成令这两个运作平行出现。尤其是,如图22所示,语音辨识引擎2214可包括搜寻线程2250及距离线程2260。距离线程2260可管理在APU 2220上完成的距离计算,以及搜寻线程2250可使用距离计算的结果,以判断接收到的是那个声音(例如:通过搜寻聚类状态分数库以判断最佳匹配)。通过将距离线程2260的优先权设得比搜寻线程2250还高,距离线程2260可进行在APU 2220上开始计分运作所需要的运算。接着可令距离线程2260进入休眠。搜寻线程2250尽管是在休眠中,仍可启动并且可使用最后一次距离运作进行搜寻。由于完成距离运算需要的时间长度较可预期,可令距离线程进入休眠一预定时间量。在替代具体实施例中,可令距离线程2260无限期进入休眠,但可用来自APU 2220的中断唤醒距离线程2260。为此,可将APU 2220用于运算时框n+1的距离分数,但CPU 2210使用先前所计算时框n的分数进行搜寻运作。
此搜寻可针对任何给定时框遵循如图26所示的距离运算。尤其是,可进行时框(i+1)的距离运算,同时正进行时框i的搜寻。因此,如图26所示,可与CPU所进行的搜寻功能并行进行APU所进行的距离运算。在一具体实施例中,对DCA库的呼叫顺序是排列成令此运作起作用。在另一具体实施例中,通用DCA是实现成令搜寻运算及距离运算并行出现的可能性达到最大。在一具体实施例中,通用DCA库的实现使用APU库所证实(proved)的API。
图27描述声学处理方法2700的具体实施例。可使用例如图22所示的声学处理***2200,连同图25所示的软件堆栈2500,进行方法2700的步骤。
在步骤2702中,接收的音讯信号是分割成多个时框。例如,在图22中,语音辨识引擎2214可将接收的音讯信号分割成长度例如10至12ms的时框。
在步骤2704中,建立搜寻线程及距离运算线程。例如,在图22中,语音辨识引擎2214可建立搜寻线程2250及距离线程2260。
在步骤2706中,使用APU运算距离分数。例如,在图22中,在距离线程2260的指挥下,APU 2220的聚类状态计分单元2230可运算介于对应于时框的特征向量与高斯机率分布向量之间的距离分数。
在步骤2708中,使用针对此时框运算的分数进行搜寻运作。例如,在图22中,搜寻线程2250可使用在步骤2706中运算的距离分数,搜寻不同的聚类状态,以判断此时框内包括的是那个声音。
在步骤2710中,判断此时框是否为音讯信号的最后一个时框。若是,则结束方法2700。若否,则方法2700进行步骤2712。
在步骤2712中,正在使用APU与步骤2708的搜寻运作并行运算下一个时框的距离分数。例如,在图22中,可与使用时框i的距离分数进行搜寻运作的搜寻线程2250并行,将APU 2220用于运算时框i+1的距离分数。
7.示例性计算机***
可用软件、固件、硬件、或其组合的方式实现本发明的各个方面。图28描述示例计算机***2800的实施例,可将其中本发明的具体实施例、或其部分实现成计算机可读码。例如,图9的流程图900所示的方法、图17的流程图1700所示的方法、图21的流程图2100所示的方法、图25所示的软件堆栈2500、及/或图27的流程图2700所示的方法都可在***2800中实现。本发明的各个具体实施例是根据本示例计算机***2800予以说明。在阅读本说明后,对于相关领域技术熟练者将变得显而易知的是,使用其它计算机***及/或计算机架构实现本发明具体实施例的作法。
应注意的是,可透过使用计算机可读码,包括一般的程式语言(如C或C++)、举例如Verilog HDL、VHDL、Altera HDL(AHDL)等硬件描述语言(HDL)、或其它可用的编程及/或简图撷取工具(如电路撷取工具),部分完成本发明各个具体实施例的模拟、合成及/或制造。可将此计算机可读码布置在任何已知的计算机可用媒体中,包括半导体、磁碟、光碟(如CD-ROM、DVD-ROM)。如此,可透过包括网际网路在内的通讯网路传送代码。了解的是,上述***及技术所完成的功能及/或提供的架构,可予以呈现于以程式码体现的核心(例如:APU核)中,以及可予以变换成硬件,作为集成电路产品的一部分。
计算机***2800包括一或多个处理器,如处理器2804。处理器2804可为特定用途或通用处理器,分别举例如图4的APU及CPU。处理器2804是连接至通讯基本架构2806(例如:总线或网路)。
计算机***2800还包括主内存2808,较佳是随机存取内存(RAM),并且还可包括辅助内存2810。辅助内存2810可例如包括硬式磁碟机2812、可移动式存储驱动机2814、及/或记忆条。可移动式存储驱动机2814可包括软式磁碟机、磁带机、光碟机、快闪内存、或诸如此类。可移动式存储驱动机2814以众所周知的方式,对可移动式存储单元2818进行读取及/或写入的动作。可移动式存储单元2818可包含通过可移动式存储驱动机2814予以读取及写入的软碟、磁带、光碟等。如相关领域技术熟练者将领会的是,可移动式存储单元2818包括其内存储有计算机软件及/或数据的计算机可用存储媒体。
计算机***2800(供选择地)包括显示接口2802(其可包括输入及输出装置,如键盘、滑鼠等),其由通讯基本架构2806(或由未图示的时框缓冲器)将图片、文字以及其它数据前送以供在显示单元2830上显示用。
在替代实现中,辅助内存2810可包括其它用于允许将计算机程式或其它指令载入计算机***2800的类似装置。此类装置可包括例如可移动式存储单元2822及接口2820。此类装置的实施例可包括程式匣(program cartridge)及匣式接口(如那些在视讯游戏装置发现者)、可移动式内存晶片(例如:EPROM或PROM)及相关插槽、以及其它允许软件和数据从可移动式存储单元2822移送至计算机***2800的可移动式存储单元2822及接口2820。
计算机***2800还可包括通讯接口2824。通讯接口2824允许在计算机***2800与外部装置之间移送软件及数据。通讯接口2824可包括数据机、网路接口(如乙太网路卡)、通讯埠、PCMCIA槽与卡、或诸如此类。经由通讯接口2824移送的软件及数据,其信号形式可为电子、电磁、光学、或其它能够由通讯接口2824接收的信号。这些信号是经由通讯路径2826提供予通讯接口2824。通讯路径2826承载信号,并且可用电线或电缆、光纤元件、电话线、行动电话连结、RF连结或其它通讯通道予以实现。
在本文中,术语“计算机程式媒体”及“计算机可用媒体”基本上都用于指例如可移动式存储单元2818、可移动式存储单元2822、安装于硬式磁碟机2812上的硬盘等媒体。计算机程式媒体及计算机可用媒体也可指例如主内存2808及辅助内存2810等内存,其可为内存半导体(例如:DRAM等)。这些计算机程式产品提供软件予计算机***2800。
计算机程式(也称为计算机控制逻辑)是存储在主内存2808及/或辅助内存2810内。也可经由通讯接口2824接收计算机程式。此类计算机程式在执行时,能令计算机***2800实现如本文所述本发明的具体实施例。尤其是,计算机程式在执行时,能令处理器2804实现本发明具体实施例的程序,如图9的流程图900和图17的流程图1700所示的方法、图21的流程图2100所示的方法、图27的流程图2700所示方法中的步骤,及/或可在***2800中实现图25中所示软件堆栈2500里的函数,如上所述。从而,此类计算机程式表示计算机***2800的控制器。在使用软件实现本发明具体实施例的情况下,软件可予以存储在计算机程式产品中,并且使用可移动式存储驱动机2814、接口2820、硬碟机2812、或通讯接口2824予以载入计算机***2800。
本发明的具体实施例也针对计算机程式产品,包括存储在任何计算机可用媒体上的软件。此类软件在一或多个数据处理装置中执行时,令数据处理装置如本文所述运作。本发明的具体实施例运用任何目前已知或未来的计算机可用或可读取媒体。计算机可用媒体的实施例包括但不限于主存储装置(例如:任何类型的随机存取内存)、辅助存储装置(例如:硬碟机、软碟、CD ROMS、ZIP碟、存储带、碟性存储装置、光学存储装置、MEMS、纳米技术存储装置等)、以及通讯介质(例如:有线与无线通讯网路、区域网路、广域网路、内部网路等)。
8.结论
要领会的是,实施方式(非发明内容及摘要部分)的目的是用于解读权利要求。发明内容及摘要部分可提出一或多个如本案发明人所思全部属于示例性的本发明具体实施例,从而目的不在于以任何方式限制本发明及所附的权利要求。
本发明的具体实施例已在上面通过功能性建置区块予以说明,所描述的是特定功能及其关系的实现。这些功能性建置区块的界限己为了方便说明而在本文随意界定。只要所指功能及其关系是经过适当执行,便可界定替代的界限。
前述特定具体实施例的说明,将完整揭示本发明的一般性本质,以至于其他人可通过应用相关技术的技巧内的知识,轻易地修改及/或调整此等特定具体实施例的各种应用,无不当实验,未脱离本发明的一般性概念。因此,基于本文所示的指导及导引,此等调整及修改目的是要落在所揭露具体实施例均等件的意义及范围内。要理解的是,本文措辞或术语的目的在于说明而非限制,使得本说明书的措辞或术语要由技术熟练者鉴于指导及导引进行解读。
本发明的幅度及范围不应受限于任何上述示例性具体实施例,而应仅根据权利要求书及其均等件予以界定。
Claims (17)
1.一种算术逻辑单元,用于运算介于特征向量以及高斯机率分布向量之间的一维分数,包括:
运算逻辑单元,配置成基于与该高斯机率分布向量的维度以及特征向量的维度相关联的平均数与变异数以运算第一数值;
查阅表模块,配置成基于该变异数以输出第二数值;以及
组合模块,配置成组合该第一数值及该第二数值以产生该一维分数。
2.根据权利要求1所述的算术逻辑单元,其中,该第一数值及该第二数值使用相同的位数表示。
3.根据权利要求1所述的算术逻辑单元,其中,该运算逻辑单元包括减法模块,配置成运算介于该特征向量的一维数值以及该平均数之间的差值,其中该差值为正。
4.根据权利要求3所述的算术逻辑单元,其中,该运算逻辑单元更包括查阅表,配置成基于该变异数以输出第三数值。
5.根据权利要求4所述的算术逻辑单元,其中,该运算逻辑单元配置成运算该第一数值如同该差值的平方和该第三数值的乘积。
6.根据权利要求1所述的算术逻辑单元,其中,该运算逻辑单元包括例外处理模块,配置成对于该平均数、该变异数以及该特征向量的该维度的特定数值输出该第一数值。
7.根据权利要求1所述的算术逻辑单元,其中,该运算逻辑单元包括特征向量变换模块,配置成通过比例因数以调整该特征向量的该维度。
8.根据权利要求1所述的算术逻辑单元,其中,该组合模块包括:
加法器,配置成运算该第一与第二数值的总和;以及
移位模块,配置成移位该总和,使得0位出现在该总和的十进位小数点的右方。
9.根据权利要求1所述的算术逻辑单元,其中,该查阅表模块包括查阅表,配置成输出数值lutij,由下式给定:
lutij=(ln(varij)-C)×M1,
其中:
varij为第j个高斯机率分布向量的第i个维度的变异数;以及
M1为比例因数;以及
C为常数。
10.根据权利要求1所述的算术逻辑单元,其中,该第一数值由下式给定:
其中:
xi为第i个特征向量维度的数值,
μij为第j个高斯机率分布向量的第i个维度的平均数;
varij,为第j个高斯机率分布向量的第i个维度的变异数;以及
M2为权重因数。
11.一种运算介于特征向量以及高斯机率分布向量之间的一维距离分数的方法,包括:
基于与该高斯机率分布向量的维度以及特征向量的维度相关联的平均数与变异数以运算第一数值;
基于该变异数从查阅表模块撷取第二数值;以及
组合该第一数值与该第二数值以产生该一维分数。
12.根据权利要求11所述的方法,其中,该运算包含:
运算介于该特征向量的该维度以及该平均数之间的差值。
13.根据权利要求11所述的方法,其中,该运算包含基于该变异数从第二查阅表撷取第三数值。
14.根据权利要求11所述的方法,其中,该运算包含运算该第一数值如同该差值的平方和该第三数值的乘积。
15.根据权利要求11所述的方法,更包括,于运算前,通过使用比例因数转换对该维度的该特征向量模块的数值。
16.根据权利要求11所述的方法,其中,该查阅表模块包括查阅表,配置成输出数值lutij,由下式给定:
lutij=(ln(varij)-C)×M1,
其中:
varij为第j个高斯机率分布向量的第i个维度的变异数;
M1为比例因数;以及
C为常数。
17.根据权利要求11所述的方法,其中,该第一数值由下式给定:
其中:
xi为第i个特征向量维度的数值,
μij为第j个高斯机率分布向量的第i个维度的平均数;
varij,为第j个高斯机率分布向量的第i个维度的变异数;以及
M2为权重因数。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161577595P | 2011-12-19 | 2011-12-19 | |
US61/577,595 | 2011-12-19 | ||
US201261589113P | 2012-01-20 | 2012-01-20 | |
US61/589,113 | 2012-01-20 | ||
US13/490,129 | 2012-06-06 | ||
US13/490,129 US8924453B2 (en) | 2011-12-19 | 2012-06-06 | Arithmetic logic unit architecture |
PCT/US2012/070332 WO2013096303A1 (en) | 2011-12-19 | 2012-12-18 | Arithmetic logic unit architecture |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104126165A true CN104126165A (zh) | 2014-10-29 |
Family
ID=48611061
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280070070.3A Pending CN104126200A (zh) | 2011-12-19 | 2012-12-14 | 声学处理单元 |
CN201280070112.3A Pending CN104126165A (zh) | 2011-12-19 | 2012-12-18 | 算术逻辑单元架构 |
CN201280070114.2A Active CN104137178B (zh) | 2011-12-19 | 2012-12-18 | 声学处理单元接口 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280070070.3A Pending CN104126200A (zh) | 2011-12-19 | 2012-12-14 | 声学处理单元 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280070114.2A Active CN104137178B (zh) | 2011-12-19 | 2012-12-18 | 声学处理单元接口 |
Country Status (6)
Country | Link |
---|---|
US (3) | US9785613B2 (zh) |
EP (3) | EP2795614A4 (zh) |
JP (3) | JP2015505993A (zh) |
KR (3) | KR20140106723A (zh) |
CN (3) | CN104126200A (zh) |
WO (3) | WO2013096124A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102129A (zh) * | 2013-04-10 | 2014-10-15 | 罗伯特·博世有限公司 | 用于创建基于数据的函数模型的方法和装置 |
CN112307986A (zh) * | 2020-11-03 | 2021-02-02 | 华北电力大学 | 一种利用高斯梯度的负荷开关事件检测方法和*** |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9514739B2 (en) * | 2012-06-06 | 2016-12-06 | Cypress Semiconductor Corporation | Phoneme score accelerator |
US10007724B2 (en) * | 2012-06-29 | 2018-06-26 | International Business Machines Corporation | Creating, rendering and interacting with a multi-faceted audio cloud |
DE102013206320A1 (de) * | 2013-04-10 | 2014-10-16 | Robert Bosch Gmbh | Verfahren und Steuergerät zur Berechnung eines datenbasierten Funktionsmodells |
JP6052814B2 (ja) * | 2014-09-24 | 2016-12-27 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 音声認識モデルの構築方法、音声認識方法、コンピュータ・システム、音声認識装置、プログラムおよび記録媒体 |
KR102299330B1 (ko) * | 2014-11-26 | 2021-09-08 | 삼성전자주식회사 | 음성 인식 방법 및 그 전자 장치 |
CN105869641A (zh) * | 2015-01-22 | 2016-08-17 | 佳能株式会社 | 语音识别装置及语音识别方法 |
US9721569B2 (en) * | 2015-05-27 | 2017-08-01 | Intel Corporation | Gaussian mixture model accelerator with direct memory access engines corresponding to individual data streams |
PH12018050262A1 (en) * | 2017-07-21 | 2019-06-17 | Accenture Global Solutions Ltd | Automatic provisioning of a software development environment |
US11043218B1 (en) * | 2019-06-26 | 2021-06-22 | Amazon Technologies, Inc. | Wakeword and acoustic event detection |
WO2021033889A1 (en) | 2019-08-20 | 2021-02-25 | Samsung Electronics Co., Ltd. | Electronic device and method for controlling the electronic device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1112269A (zh) * | 1994-05-20 | 1995-11-22 | 北京超凡电子科技有限公司 | 基于汉语发音特点的hmm语音识别技术 |
CN1061451C (zh) * | 1996-09-26 | 2001-01-31 | 财团法人工业技术研究院 | 隐藏式马可夫模型的中文词音识别方法 |
WO2002029617A1 (en) * | 2000-09-30 | 2002-04-11 | Intel Corporation (A Corporation Of Delaware) | Method, apparatus, and system for building a compact model for large vocabulary continuous speech recognition (lvcsr) system |
US20020055842A1 (en) * | 2000-09-20 | 2002-05-09 | Seiko Epson Corporation | Method for calculating HMM output probability and speech recognition apparatus |
CN1645476A (zh) * | 2004-01-20 | 2005-07-27 | 微软公司 | 使用切换状态空间模型的多模变分推导的语音识别方法 |
US20110082694A1 (en) * | 2008-10-10 | 2011-04-07 | Richard Fastow | Real-time data pattern analysis system and method of operation thereof |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01298400A (ja) * | 1988-05-26 | 1989-12-01 | Ricoh Co Ltd | 連続音声認識装置 |
JPH04232998A (ja) * | 1990-12-27 | 1992-08-21 | Nec Corp | 音声認識装置 |
US5604839A (en) * | 1994-07-29 | 1997-02-18 | Microsoft Corporation | Method and system for improving speech recognition through front-end normalization of feature vectors |
US5864810A (en) * | 1995-01-20 | 1999-01-26 | Sri International | Method and apparatus for speech recognition adapted to an individual speaker |
US5710866A (en) * | 1995-05-26 | 1998-01-20 | Microsoft Corporation | System and method for speech recognition using dynamically adjusted confidence measure |
US5937384A (en) | 1996-05-01 | 1999-08-10 | Microsoft Corporation | Method and system for speech recognition using continuous density hidden Markov models |
US6542866B1 (en) * | 1999-09-22 | 2003-04-01 | Microsoft Corporation | Speech recognition method and apparatus utilizing multiple feature streams |
US7295978B1 (en) * | 2000-09-05 | 2007-11-13 | Verizon Corporate Services Group Inc. | Systems and methods for using one-dimensional gaussian distributions to model speech |
CA2359544A1 (en) * | 2001-10-22 | 2003-04-22 | Dspfactory Ltd. | Low-resource real-time speech recognition system using an oversampled filterbank |
US6990447B2 (en) * | 2001-11-15 | 2006-01-24 | Microsoft Corportion | Method and apparatus for denoising and deverberation using variational inference and strong speech models |
US20030097263A1 (en) * | 2001-11-16 | 2003-05-22 | Lee Hang Shun | Decision tree based speech recognition |
US7006972B2 (en) * | 2002-03-20 | 2006-02-28 | Microsoft Corporation | Generating a task-adapted acoustic model from one or more different corpora |
US7031918B2 (en) * | 2002-03-20 | 2006-04-18 | Microsoft Corporation | Generating a task-adapted acoustic model from one or more supervised and/or unsupervised corpora |
US7571097B2 (en) * | 2003-03-13 | 2009-08-04 | Microsoft Corporation | Method for training of subspace coded gaussian models |
US7454336B2 (en) * | 2003-06-20 | 2008-11-18 | Microsoft Corporation | Variational inference and learning for segmental switching state space models of hidden speech dynamics |
US7231019B2 (en) * | 2004-02-12 | 2007-06-12 | Microsoft Corporation | Automatic identification of telephone callers based on voice characteristics |
US20060058999A1 (en) * | 2004-09-10 | 2006-03-16 | Simon Barker | Voice model adaptation |
GB0420464D0 (en) | 2004-09-14 | 2004-10-20 | Zentian Ltd | A speech recognition circuit and method |
JP5103907B2 (ja) * | 2005-01-17 | 2012-12-19 | 日本電気株式会社 | 音声認識システム、音声認識方法及び音声認識プログラム |
US7693713B2 (en) * | 2005-06-17 | 2010-04-06 | Microsoft Corporation | Speech models generated using competitive training, asymmetric training, and data boosting |
KR100664960B1 (ko) * | 2005-10-06 | 2007-01-04 | 삼성전자주식회사 | 음성 인식 장치 및 방법 |
KR100764247B1 (ko) | 2005-12-28 | 2007-10-08 | 고려대학교 산학협력단 | 2단계 탐색을 이용한 음성인식 장치 및 그 방법 |
EP1840822A1 (en) * | 2006-03-29 | 2007-10-03 | Sony Deutschland Gmbh | Method for deriving noise statistical properties of a signal |
US7774202B2 (en) | 2006-06-12 | 2010-08-10 | Lockheed Martin Corporation | Speech activated control system and related methods |
US7844456B2 (en) * | 2007-03-09 | 2010-11-30 | Microsoft Corporation | Grammar confusability metric for speech recognition |
KR100974871B1 (ko) * | 2008-06-24 | 2010-08-11 | 연세대학교 산학협력단 | 특징 벡터 선택 방법 및 장치, 그리고 이를 이용한 음악장르 분류 방법 및 장치 |
DE112009002426T5 (de) | 2008-10-10 | 2011-09-29 | Richard M. Fastow | Echtzeit-Datenmuster-Analysesystem und Verfahren zu seinem Betrieb |
JP5609182B2 (ja) * | 2010-03-16 | 2014-10-22 | 日本電気株式会社 | 音声認識装置、音声認識方法および音声認識プログラム |
US9031844B2 (en) * | 2010-09-21 | 2015-05-12 | Microsoft Technology Licensing, Llc | Full-sequence training of deep structures for speech recognition |
-
2012
- 2012-06-06 US US13/490,124 patent/US9785613B2/en active Active
- 2012-06-06 US US13/489,799 patent/US20130158996A1/en not_active Abandoned
- 2012-06-06 US US13/490,129 patent/US8924453B2/en active Active
- 2012-12-14 JP JP2014547494A patent/JP2015505993A/ja active Pending
- 2012-12-14 WO PCT/US2012/069787 patent/WO2013096124A1/en active Application Filing
- 2012-12-14 KR KR1020147020293A patent/KR20140106723A/ko not_active Application Discontinuation
- 2012-12-14 EP EP12859602.0A patent/EP2795614A4/en not_active Ceased
- 2012-12-14 CN CN201280070070.3A patent/CN104126200A/zh active Pending
- 2012-12-18 EP EP12859642.6A patent/EP2795461A4/en not_active Withdrawn
- 2012-12-18 CN CN201280070112.3A patent/CN104126165A/zh active Pending
- 2012-12-18 EP EP12860893.2A patent/EP2795615A4/en not_active Withdrawn
- 2012-12-18 KR KR1020147020295A patent/KR102048893B1/ko active IP Right Grant
- 2012-12-18 CN CN201280070114.2A patent/CN104137178B/zh active Active
- 2012-12-18 WO PCT/US2012/070332 patent/WO2013096303A1/en active Application Filing
- 2012-12-18 JP JP2014547557A patent/JP6138148B2/ja active Active
- 2012-12-18 KR KR1020147020294A patent/KR20140106724A/ko not_active Application Discontinuation
- 2012-12-18 WO PCT/US2012/070329 patent/WO2013096301A1/en active Application Filing
- 2012-12-18 JP JP2014547556A patent/JP2015501011A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1112269A (zh) * | 1994-05-20 | 1995-11-22 | 北京超凡电子科技有限公司 | 基于汉语发音特点的hmm语音识别技术 |
CN1061451C (zh) * | 1996-09-26 | 2001-01-31 | 财团法人工业技术研究院 | 隐藏式马可夫模型的中文词音识别方法 |
US20020055842A1 (en) * | 2000-09-20 | 2002-05-09 | Seiko Epson Corporation | Method for calculating HMM output probability and speech recognition apparatus |
US20050192803A1 (en) * | 2000-09-20 | 2005-09-01 | Seiko Epson Corporation | Method for calculating HMM output probability and speech recognition apparatus |
WO2002029617A1 (en) * | 2000-09-30 | 2002-04-11 | Intel Corporation (A Corporation Of Delaware) | Method, apparatus, and system for building a compact model for large vocabulary continuous speech recognition (lvcsr) system |
CN1645476A (zh) * | 2004-01-20 | 2005-07-27 | 微软公司 | 使用切换状态空间模型的多模变分推导的语音识别方法 |
US20110082694A1 (en) * | 2008-10-10 | 2011-04-07 | Richard Fastow | Real-time data pattern analysis system and method of operation thereof |
Non-Patent Citations (2)
Title |
---|
MARCEL VASILACHE: ""speech recogntion using HMMS with quantized parameters"", 《6TH INTERNATIONAL CONFERENCE ON SPOKEN LANGUAGE PROCESSING》 * |
OCTAVAIN CHENG ETAL: ""hardware-software codesign of automatic speech recognition system for embedded real-time applications"", 《IEEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102129A (zh) * | 2013-04-10 | 2014-10-15 | 罗伯特·博世有限公司 | 用于创建基于数据的函数模型的方法和装置 |
CN112307986A (zh) * | 2020-11-03 | 2021-02-02 | 华北电力大学 | 一种利用高斯梯度的负荷开关事件检测方法和*** |
CN112307986B (zh) * | 2020-11-03 | 2022-02-08 | 华北电力大学 | 一种利用高斯梯度的负荷开关事件检测方法和*** |
Also Published As
Publication number | Publication date |
---|---|
JP2015505993A (ja) | 2015-02-26 |
JP6138148B2 (ja) | 2017-05-31 |
US8924453B2 (en) | 2014-12-30 |
EP2795614A4 (en) | 2015-07-22 |
US20130159371A1 (en) | 2013-06-20 |
EP2795461A1 (en) | 2014-10-29 |
WO2013096301A1 (en) | 2013-06-27 |
CN104137178A (zh) | 2014-11-05 |
EP2795615A1 (en) | 2014-10-29 |
US20130158997A1 (en) | 2013-06-20 |
CN104137178B (zh) | 2018-01-19 |
JP2015501011A (ja) | 2015-01-08 |
JP2015501012A (ja) | 2015-01-08 |
KR20140107537A (ko) | 2014-09-04 |
US20130158996A1 (en) | 2013-06-20 |
KR20140106723A (ko) | 2014-09-03 |
WO2013096303A1 (en) | 2013-06-27 |
WO2013096124A1 (en) | 2013-06-27 |
EP2795614A1 (en) | 2014-10-29 |
US9785613B2 (en) | 2017-10-10 |
KR102048893B1 (ko) | 2019-11-26 |
KR20140106724A (ko) | 2014-09-03 |
EP2795461A4 (en) | 2015-08-12 |
EP2795615A4 (en) | 2016-01-13 |
CN104126200A (zh) | 2014-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104126165A (zh) | 算术逻辑单元架构 | |
US10949736B2 (en) | Flexible neural network accelerator and methods therefor | |
US10121468B2 (en) | System and method for combining geographic metadata in automatic speech recognition language and acoustic models | |
CN108510985A (zh) | 用于减小生产语音模型中的原则性偏差的***和方法 | |
CN108417210A (zh) | 一种词嵌入语言模型训练方法、词语识别方法及*** | |
Cheng et al. | Hardware–software codesign of automatic speech recognition system for embedded real-time applications | |
WO2022121158A1 (zh) | 语音合成方法、装置、电子设备及存储介质 | |
CN105229625A (zh) | 获取有效hmm的混合散列方案 | |
US10079011B2 (en) | System and method for unit selection text-to-speech using a modified Viterbi approach | |
CN106228976A (zh) | 语音识别方法和装置 | |
CN105340005B (zh) | 基于直方图获取有效hmm的预剪枝方案 | |
Lin et al. | A multi-FPGA 10x-real-time high-speed search engine for a 5000-word vocabulary speech recognizer | |
Bourke | A low-power hardware architecture for speech recognition search | |
Cheng et al. | Speech recognition system for embedded real-time applications | |
Pazhayaveetil | Hardware implementation of a low power speech recognition system | |
Tambe | Architecting High Performance Silicon Systems for Accurate and Efficient On-Chip Deep Learning | |
Pinto Rivero | Acceleration of automatic speech recognition for low-power devices | |
Schuster | A vectorized processing algorithm for continuous speech recognition and associated FPGA-based architecture | |
Al Sallab et al. | Hardware implementation of the Front-end module in Distributed Speech Recognition system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160318 Address after: American California Applicant after: Cypress Semiconductor Corp. Address before: American California Applicant before: Spansion LLC N. D. Ges D. Staates |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141029 |