CN104137178B - 声学处理单元接口 - Google Patents

声学处理单元接口 Download PDF

Info

Publication number
CN104137178B
CN104137178B CN201280070114.2A CN201280070114A CN104137178B CN 104137178 B CN104137178 B CN 104137178B CN 201280070114 A CN201280070114 A CN 201280070114A CN 104137178 B CN104137178 B CN 104137178B
Authority
CN
China
Prior art keywords
fraction
treatment unit
function
acoustic treatment
cluster
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.)
Active
Application number
CN201280070114.2A
Other languages
English (en)
Other versions
CN104137178A (zh
Inventor
V·纳塔拉詹
S·罗斯内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cypress Semiconductor Corp
Original Assignee
Cypress Semiconductor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Publication of CN104137178A publication Critical patent/CN104137178A/zh
Application granted granted Critical
Publication of CN104137178B publication Critical patent/CN104137178B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/187Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)
  • Artificial Intelligence (AREA)
  • Telephone Function (AREA)

Abstract

本发明的实施例包括一种装置,方法以及系统,用于声学建模。在一实施例中,提供一种语音识别系统。该系统包括一处理单元用以将一接收到的音频信号分割成具有个别帧向量的连续帧、一声学处理单元(APU)、一数据总线用以耦合该处理单元以及该声学处理单元。该APU包括一局部非易失性存储器用以储存多个聚类状态、一记忆缓冲器用以耦合到该存储器、以及一计分单元,该声学处理单元用以将至少一储存于该存储器中的高斯机率分布向量加载至该记忆缓冲器,该计分单元用以同时比较一加载至该记忆缓冲器的高斯机率分布向量的多个维度和一从该处理单元接收的帧向量的各别维度,并输出一对应分数至该处理单元。该APU使用一第一帧来执行一比较而该处理单元使用一对应一第二帧的分数来执行一搜寻操作,且该第二帧紧接着先前的第一帧。

Description

声学处理单元接口
技术领域
本发明的实施例一般关于语音辨识。更详而言之,本发明的实施例有关于声学建模过程在专用处理单元上的实施。
背景技术
即时数据模式的辨识逐渐被用于分析电子系统中的数据串流。在具有数以万字的词汇上,语音辨识系统已达到更高的精度,使其成为对于电子系统而言具吸引力的特征。举例而言,语音识别系统针对数据模式辨识的应用也越来越常见于在消费市场中,例如,行动装置,服务器,汽车,以及个人电脑的市场。
尽管在语音识别系统中有改良的精确度,显著计算资源专用于语音识别程序,依次设置显著负载于计算系统,例如,多用户/多程式环境。多程式的计算系统同时处理来自不同应用程式的数据,因此,由语音识别过程设在这些计算系统上的负载影响了该计算系统可处理传入的声音信号以及来自其他应用程式的数据的速度。此外,对于通常包括有限的存储器资源(相对于桌面计算系统)的手持装置,语音识别应用不仅设置显著负载于手持装置的计算资源上,而且消耗该手持装置的存储器资源的显著部分。上述语音识别系统的处理能力、速度和存储器资源的问题会因需要处理即时或实质上接近即时的输入声音信号而进一步恶化。
发明内容
因此,有必要改善语音识别系统对计算系统的处理能力、速度、以及存储器资源方面的负载。
于一实施型态中,提供一种语音辨识系统。该系统包括一处理单元用以将一接收到的音频信号分割成具有各别帧向量的连续性帧、一声学处理单元(APU)、一数据总线用以耦合该处理单元和该声学处理单元。该声学处理单元包含一局部非易失性存储器用以储存多个聚类状态、一耦合该存储器的记忆缓冲器、以及一计分单元,该声学处理单元用以将至少一储存于该存储器的高斯机率分布向量加载至该记忆缓冲器中,该计分单元用以同时比较一加载至该记忆缓冲器的高斯机率分布向量的多个维度和一从该处理单元接收的帧向量的各别维度,并输出一对应分数至该处理单元。该声学处理单元使用一第一帧来执行一比较而该处理单元使用一对应一第二帧的分数来执行一搜寻操作,该第二帧紧接着先前的该第一帧。
于本发明的另一实施型态包括一声学处理方法。该方法包括使用一处理单元将一接收到的音频信号分割成多个帧,使用一声学处理单元(APU)去比较一与该多个帧中的一第一帧相关的特征向量和一高斯机率分布向量以产生一分数,以及在比较同时,使用该处理单元使用对应于与从一声学处理单元(APU)所接收到的该多个帧中的一第二帧相关的特征向量的分数进行搜寻操作,其中,该第二帧紧接着该第一帧,且其中,该处理单元与该声学处理单元耦合在一数据总线上。
进一步实施型态包括一种计算器可读取媒体,具有存于其中的由一个或多个处理器所执行的一个或多个指令中的一个或多个序列,用以执行一声学处理方法。该方法包含使用一处理单元将一接收到的音频信号分割成多个帧,输出一与该多个帧中的一第一帧相关的特征向量至一声学处理单元,其中,该声学处理单元用以比较该第一帧和一高斯机率分布向量以产生一分数,以及在比较同时,使用该处理单元使用对应于与从一声学处理单元(APU)所接收到的该多个帧中的一第二帧相关的特征向量的分数进行搜寻操作,其中,该第二帧紧接着该第一帧,且其中,该处理单元与该声学处理单元耦合在一数据总线上。
本发明的实施例的进一步特征与优点,以及本发明的不同实施例中的架构与运作,皆参照附图被加以详细描述。值得注意的是,本发明并不限于本文所述的具体实施例。这样的实施方案在本文中提出,仅供参考。其他的实施例对于熟习此技艺的相关领域人士而言将是显而易见的。
附图说明
在此引入附图并构成本说明书的一部分,附图示出了本发明的实施例,并与说明书一起,进一步用于解释本发明的原理,并使得该领域中熟习此技艺的人士能够实施或使用本发明。
图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”)可使用像,例如,线性预测编码和快速傅立叶变换来从数位波形中撷取。该撷取可以发生在例如约10毫秒的固定时间间隔或帧。
在声学建模阶段120中,从信号处理阶段110中得到的特征向量115用来与存于存储器中的一个或多个多变高斯机率分布(这里也称为”高斯机率分布”)比较。该一个或多个存于存储器中的高斯机率分布可为声库的部分,而该该高斯机率分布表示聚类状态(senone)。如同该相关领域的技术人士所能理解的,该聚类状态指一有趣语言的次语音(sub-phonetic)单元。例如,个别的聚类状态可被8个组成部分所组成,而每个组成部分可表示一39维度的高斯机率分布。
声学建模阶段120能够处理例如,超过1000个聚类状态。因此,特征向量115与一个或多个高斯机率分布之间的比较可为一计算密集型任务,例如,作为数以千计的高斯机率分布可与特征向量115每一时间间隔或帧(例如10毫秒)相比较。每一表示在声库中的聚类状态的一组分数(在这里也称为”聚类状态分数”)由各特征向量115与一个或多个高斯机率分布的每一个之间的比较而得来。声学建模阶段120提供了聚类状态分数125给音素评估阶段130。
在音素评估阶段130中,隐藏式马可夫模型(HMMs)可用来归类一音素为一组状态和一组介于每个状态之间的先验传递机率,其中状态与一聚类状态相关。对给定的观察的聚类状态的序列,对应的HMM中有最有可能的聚类状态的序列。该对应的HMM可与一观察到的音速相关联。维特比(Viterbi)演算法可用来找出每一HMM对应于一音素的可能性。
维特比演算法执行从第一帧开始,然后前进到后续帧以时间同步方式一次一个的计算。为在所考虑的HMM中的每个聚类状态计算机率分数。因此,随着维特比演算法分析序列的帧,对于可能的聚类状态序列的每一者,可连续计算出累计机率分数。音素评估阶段130提供了可能性或机率135(这里也称为”音素分数”)给文字建模阶段140。
在文字建模阶段140中,搜寻技术可用于随着时间决定在音素与后续单字中的最有可能的字串。搜寻技术像,例如,树状演算法可用来决定音素中最有可能的字串。
2.传统语音辨识系统
图2为一传统语音辨识系统200的示意图。语音辨识系统200包括输入元件210、处理单元220、存储装置230、以及数据总线240,而所有这些都是单独的物理组成部分。存储装置230可为,例如,动态随机处理存储器(DRAM)元件,外接处理单元220并经由数据总线240与处理单元220互相通讯。输入元件210也藉由数据总线240与处理单元相通讯。数据总线240有一典型的总线宽度,例如,8到32位元。
输入元件210用来接收输入音频信号(例如,图1的输入音频信号105)以及转换与该输入音频信号相关联的声音振动为一模拟信号。该模拟信号可用模拟数位转换器(图2未示出)数位化,且所得到的数位信号透过数据总线240被传送到处理单元220。输入元件210可为,例如,麦克风。
处理单元220依照上述关于图一所示的信号处理阶段110、声学建模阶段120、音素评估阶段130、以及文字建模阶段140来处理数位输入信号。图3为具有由处理单元220执行的语音辨识模块的语音辨识系统200的示意图。处理单元包括信号处理模块310、声学建模模块320、音素评估模块330、以及文字建模模块340,而操作方式分别类似图1的信号处理阶段110、声学建模阶段120、音素评估阶段130、以及文字建模阶段140。
参照图3,信号处理模块310可转换一输入音频信号(例如,从输入元件210)的数位输入信号305表示为一个或多个特征向量315。声学建模模块320比较一个或多个特征向量315与存于存储装置230中的声库的一个或多个高斯机率分布。对于每一一个或多个特征向量315与一个或多个高斯机率分布之间的比较,处理单元220经由数据总线240去存取存储装置230。对一具有数以千计的聚类状态(而每一聚类状态系由多个高斯机率分布所组成)的声库,不仅藉由声学建模模块320而执行的该计算密集的比较,而且该数以千计的由声学建模模块320经由数据总线240存取存储装置230的动作也是计算密集且费时。数以千计的存取存储装置230动作会被数据总线240的总线宽度(例如,8到32位元)进一步加剧,其中,存储装置230的多址连接系被声学建模模块320存取每一高斯机率分布时所需要。此外,与数据总线240相关的互连寄生现象会损坏存储装置230与声学建模模块320之间的数据传输。
音素评估模块330从声学建模模块320接收聚类状态分数325。如上述参照图一的语音辨识过程100所示,隐藏式马可夫模型能被用来可用来归类一音素成为一组状态和每个状态之间的一组先验传递机率,其中该状态由一聚类状态组成。该组状态与一组使用音素评估模块330之先验传递机率集合可储存于存储装置230。音素评估模块330提供音素分数335给文字建模模块340。
文字建模模块340使用搜寻技术像,例如,树状演算法以用来决定音素中最有可能的字串(例如,最有可能的音素335),以及随时间推移的后续文字。
在图3的传统语音辨识系统300有一诸如此类的问题,由于声学建模过程会有一显著负载在处理单元220上。例如,对每一一个或多个特征向量315与一个或多个存于存储装置220中的高斯机率分布之间的比较而言,存储装置220被处理单元220存取。所以,显著的计算资源会被专用于声学建模过程,依次配置一显著负载于处理单元220上。而因声学建模过程之故而配置于处理单元220的负载会影响处理单元220能够处理从输入元件而来的数位信号以及其他应用数据(例如,处理单元220能在多使用者/多程式的环境下操作而同时处理从大量应用程式而来的数据)的速度。此外,对于具有有限计算资源的计算系统(例如,手持装置)而言,该声学建模过程不仅会配置一显著负载在处理单元220上,而且会耗费存储装置230的一显著部分及数据总线240的频宽。这些诸如此类的问题会在很多应用程式上因需要处理即时或实质上接近即时的输入音频信号而使处理能力,速度,以及存储器资源进一步恶化。
3.具有声学处理单元的语音辨识系统
本发明的实施例分别指出了上面关于图2和图3中的传统语音识别系统200和300所讨论的问题。在一个实施例中,声学建模过程是由专用的处理单元执行(在此也称为“声学处理单元”或“APU”)。声学处理单元的操作与图3中的处理单元220一起使用(在此也称为“中央处理单元”或“CPU”)。例如,该声学处理单元从中央处理单元接收一个或多个特征向量(例如,图3的特征向量315),并依据一个或多个高斯分布的机率分布计算出一聚类状态的分数(例如,图3中的聚类状态分数325),并输出该聚类状态分数到CPU。在一个实施例中,该一个或多个高斯机率分布可以被存储在声学处理单元中。或者,在另一实施例中,该一个或多个高斯机率分布可以通过外部存储到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可以比较一个或多个特征向量和与伊声库相关的所有聚类状态。在这种情况下,反馈450不是必需的,如音素评估过程430从APU接收一整组聚类状态分数(例如,“所有分数”函数)以进一步处理。
A.具有声学处理单元的语音识别系统的系统总线架构
在一个实施例中,该APU和CPU可以互相通讯,藉由通过串列周边接口(SPI)总线、周边控制器接口(PCI)总线、应用程式接口(API)总线、先进微控制器汇流架构的高效总线(AHB)、先进周边总线(APB)、存储总线、或任何其他类型的总线。例如,系统总线架构对图4中的语音识别过程400的非限制性实施例在下文中会进一步详细地描述。
图5是一语音辨识系统500的总线架构的实施例示意图。语音辨识系统500包括APU510、CPU520、处理器/存储总线530、高速缓存540、系统控制器550、主存储器560、多个PCI装置5701-570M、输入/输出(I/O)总线580、和PCI桥590。高速缓存540可以是,例如,在静态随机存取存储器(SRAM)元件实现的二级高速缓存。此外,主存储器560可以是,例如,动态随机存取存储器(DRAM)元件。根据本发明的实施例,语音辨识系统500可以被实现为一系统晶片(SOC)。
如图5所示,APU510以通过PCI桥590的通讯方式耦合到输入/输出总线580。输入/输出总线580可以是,例如,一个PCI总线。藉由PCI桥590和输入/输出总线580,APU510以通讯方式耦合到系统控制器550和CPU520。在另一实施例(图5中未示出)中,APU510可以直接耦合到处理器/存储总线530,并且依次,以通讯方式耦合到CPU520。
图6是语音辨识系统600的总线结架构的另一个实施例示意图。语音辨识系统600包括APU510、CPU520、高速缓存540、架构高效总线610、系统控制器620、非易失性存储装置630、主存储器640、先进PCI桥650、APB660、以及多个装置6701-670M。非易失性存储装置630可以是,例如,一个快闪存储装置。主存储器640可以是,例如,DRAM装置。CPU520可以是,例如,ARM处理器(由ARM控股公司开发)。语音辨识系统600可以根据本发明的实施例,被实现为一系统晶片。
如图6所示,APU510以通过APB桥650和APB660的通讯方式耦合到系统控制器620,系统控制器620也用通讯方式耦合到CPU520通过AHB610。换言之,系统控制器620用通讯方式耦合到CPU520通过AHB610。
图7是语音辨识系统700的总线架构的另一实施例示意图。语音辨识系统700包括APU510、CPU520、高速缓存540、AHB610、系统控制器620、非易失性存储装置630、LPDDR接口710、LPDDR存储总线720和主存储器730。主存储器730可以是,例如,DRAM装置。CPU520可以是,例如,ARM处理器(由ARM控股公司开发)。根据本发明的实施例,语音辨识系统700可以被实现为一系统晶片。
如图7所示,APU510和主存储器730经由LPDDR存储总线720以通讯方式耦合到LPDDR接口710。声学处理单元510也是透过LPDDR存储总线720和LPDDR接口710以通讯方式耦合到系统控制器620。换言之,系统控制器620经由AHB610以通讯方式耦合到CPU520。
B.具有声学处理单元的语音辨识系统的系统级架构
图8是语音辨识系统800的系统级架构的实施例示意图。语音辨识系统800包括APU810、存储控制器820、非易失性存储装置830、和易失性存储装置840。存储控制器820经由总线815以通讯方式耦合到APU810和经由总线825(在某些实施方案中可代表两个或多个总线)耦合到非易失性存储装置830和易失性存储装置850。在一实施例中,APU810和存储控制器820被集成在一单晶片上。或者,在一实施例中,APU810和存储控制器820被集成在独立的晶片上。非易失性存储装置830可以是一NAND快闪存储器模块,一NOR快闪存储器模块,或其它类型的非易失性存储装置。在一个实施例中,易失性存储装置840可以是DRAM装置。此外,根据本发明的一实施例,APU810可以使用,例如,参照图5-7所述的其中之一总线架构与一CPU(在图8中未示出)进行通讯。
非易失性存储装置830可以储存一声库以用在语音识别过程,其中根据本发明的一实施例,该声库可包括超过1000个聚类状态。在一实施例中,当一聚类状态的请求被语音辨识系统800接收时,存储控制器820会经由总线825从非易失性存储装置830到易失性存储装置840复制该声库。该声库在非易失性和易失性存储装置之间的传送过程可使用,例如,一直接存储器存取(DMA)的操作来实现。
在一实施例中,语音辨识系统800可以在一聚类状态的得分请求的预期下通电。通电后,从非易失性存储装置830而来的该声库立即被复制到易失性存储装置840,一旦易失性存储装置840已经接收到声库,APU810便准备好使用储存在易失性存储装置840中的声库来开始处理聚类状态得分的请求(例如,图4中的声学建模过程420)。
APU810接收到该聚类状态的得分请求时,一从声库所选定的聚类状态会从易失性存储装置840经由存储控制器820到APU810被复制。APU810计算一聚类状态分数系基于所选定的聚类状态的句音以及被APU810所接收到的数据串流(例如,图3中的一个或多个特征向量315)。计算完成之后,APU810传送聚类状态分数至请求系统(例如,CPU)。
在一实施例中,在一段不作用的预定时间之后(例如,藉由APU810的聚类状态得分不作用),易失性存储装置840可断电。结果,当记忆单元在易失性存储装置840中的一个定期更新将不被需要时,在语音辨识系统800的功率效益可被改善。此处,声库仍然储存在非易失性存储装置830中,使得声库可在当易失性存储装置840断电时被保留。正如能被该相关领域中的技术人士所理解的,当易失性存储装置840断电时,储存在其中的内容(例如,声库)将会遗失。在一实施例中,当易失性存储装置840断电时,语音辨识系统800的其它部件也可断电。
图9是数据模式的分析方法900的一实施例示意图。图8的语音辨识系统800可被用于,例如,执行方法900的步骤。在一个实施例中,方法900可被用于执行图4中的声学建模过程420。根据本文的描述,该相关领域的技术人士将了解该方法900可被用在其他的数据模式识别应用像,例如,图像处理,音频处理以及手写识别。
在步骤910中,多个数据模式从非易失性存储装置(例如,图8中的非易失性存储装置830)复制到易失性存储装置(例如,图8中的易失性存储装置840)。在一个实施例中,该多个数据模式可以是一个或多个与一声库相关联的聚类状态。
在步骤920中,从易失性存储装置中得到的数据模式被计算单元所要求(例如,图8中的APU810)并经由一存储控制器和总线(例如,分别为图8中的存储控制器820和总线825)传送到计算单元。在一个实施例中,所请求的数据模式是为一储存在易失性存储装置中的声库中的聚类状态。
步骤930中,在接收到所请求的数据模式之后,该计算单元(例如,图8中的APU810)执行一被该计算单元所接收的数据串流的数据模式分析。在一实施例中,数据模式分析是一基于所选择的聚类状态和被该计算单元(例如,图3中的一个或多个特征向量315)接收到的数据串流的聚类状态分数计算。在完成数据模式分析之后,该计算单元传送数据模式分析的结果到请求系统(例如,CPU)。
在步骤940中,该易失性存储装置进行断电。在一实施例中,该易失性存储装置会在一段不作用的预定时间之后(例如,计算单元中的数据模式的分析不作用)进行断电。结果,当记忆单元在易失性存储装置中的一个定期更新将不被需要时,功率效益可被改善。在一个实施例中,当易失性存储装置断电时,该系统(例如,语音辨识系统800中的其它部件)的其他部件也可断电。
图10是语音辨识系统1000的系统级架构的另一实施例示意图。语音辨识系统1000包括APU1010、SOC1040、DRAM装置1060、快闪存储装置1070、和输入/输出接口1080。在一实施例中,APU1010是一种积体晶片,包括:用以储存一声库的一存储装置1020和用以执行一个声学建模过程(例如,图4中的声学建模过程420)的一(ASIC)1030。在另一个实施方案中,特定应用积体电路1030和存储装置1020可以被集成在两个独立的晶片。根据本发明的一实施例,系统晶片1040包括一CPU1050,用以执行信号处理过程、音素评估过程、和个文字建模过程(例如,分别为图4中的信号处理过程410、音素评估过程430、和文字建模过程440)。在一实施例中,APU1010和SOC1040集成在两个独立的晶片。
图11是语音辨识系统1100的系统级架构的另一实施例示意图。语音辨识系统1100包括APU1110、SOC1040、DRAM装置1060、快闪存储装置1070、和输入/输出接口1080。在一实施例中,APU1110是一种积体晶片,包括一特定应用积体电路1120,一易失性存储装置1130和一非易失性存储装置1140。在另一实施例中,特定应用积体电路1120,易失性存储装置1130和非易失性存储装置1140可集成在两个晶片上,例如,特定应用积体电路1120和易失性存储装置1130在一晶片上而非易失性存储装置1140在另一晶片上;特定应用积体电路1120在一晶片上而易失性存储装置1130和非易失性存储装置1140在另一晶片上;或者,特定应用积体电路1120和非易失性存储装置1140在一晶片上而易失性存储装置1130在另一晶片上。在又一实施例中,特定应用积体电路1120,易失性存储装置1130和非易失性存储装置1140每个都可以集成在一单独晶片上,即,三个独立的晶片。
根据本发明的实施例,非易失性存储装置1140可用以储存一被复制到易失性存储装置1130在APU1110通电时的声学模型。在一实施例中,非易失性存储装置可以是一快闪存储装置且易失性存储装置1130可以是一动态随机处理存储装置。此外,根据本发明的一实施例,特定应用积体电路1120可用以执行一个声学建模过程(例如,图4中的声学建模过程420)。
图12是语音辨识系统1200的系统级架构的另一实施例示意图。语音辨识系统1200包括DRAM装置1060、快闪存储装置1070、输入/输出接口1080、存储装置1210、和SOC1220。在一实施例中,SOC1220是一种积体晶片,包括一特定应用积体电路1230和一CPU1240。根据本发明的一实施例,特定应用积体电路1230可用以执行一声学建模过程(例如,图4中的声学建模过程420)且CPU1240可用以执行信号处理过程、音素评估过程中、和文字建模过程(例如,分别如图4中的信号处理过程410、音素评估过程430、和文字建模过程440)。
根据本发明的一实施例,存储装置1210可用以储存一声库,并经由输入/输出接口1215的传送一个或多个聚类状态到特定应用积体电路1230。在一实施例中,存储装置1210可以是一动态随机处理存储装置或一快闪存储装置。在另一实施例中,该声库可储存在一特定应用积体电路1230中的存储装置中(图12中未示出),而不是存储装置1210。在又一实施例中,声库可储存在系统存储器中,用于系统晶片1220(例如,动态随机处理存储装置1060)。
图13是语音辨识系统1300的系统级架构的另一实施例示意图。语音辨识系统1300包括DRAM装置1060、快闪存储装置1070、输入/输出接口1080、存储装置1210、和SOC1220。根据本发明的一实施例,DRAM装置1060可用以储存一个声库,并经由输入/输出总线1315传送一个或多个聚类状态到特定应用积体电路1230。
4.声学处理单元架构
图14是APU1400的实施例示意图。在一实施例中,APU1400是一种积体晶片,包括:存储器模块1420和聚类状态单元(SSU)1430,在另一实施例中,存储器模块1420和SSU1430可被集成在两个独立的晶片上。
根据本发明的实施例,APU1400是在经由输入/输出信号1410与一CPU(图14中未示出)通讯,其中该APU1400用以执行声学建模过程(例如,图4中的声学建模过程420)。在一实施例中,输入/输出信号1410可包括输入特征向量数据串用以得知特征向量的资讯、输入时脉信号、输入声学处理单元的可用信号、用以得知聚类状态的分数资讯的输出聚类状态分数数据串、以及其它用以控制APU1400的输入/输出控制信号。根据本发明的实施例,APU1400可经由从该CPU以接收该特征向量数据串中的一个或多个特征向量(由CPU计算出),并经由聚类状态分数数据串传输一聚类状态分数到CPU。在一实施例中,输入/输出信号1410可以被实现为,例如,SPI总线、PCI总线、API总线、AHB、APB、存储总线、或任何其它类型的总线以提供一条通讯路径在APU1400和CPU之间(参见,例如,图5-7及相关说明)。APU1400和CPU之间的接口,以及用于该接口的控制信号,进一步详细描述如下。
在一实施例中,存储器模块1420和SSU1430可以在两个不同的时脉区域下进行操作。根据本发明的实施例,存储器模块1420可以在与输入时脉信号至APU1400(例如,从输入/输出信号1410)相关联的时脉频率下进行操作且SSU1430可基于输入的时脉信号在更快的时脉频率下进行操作。例如,如果与输入时脉信号相关联的时脉频率为12兆赫,然后SSU1430可在60兆赫的分割时脉频率下进行操作---比输入时脉信号相关联的时脉频率快5倍。时脉分割器所实现的技术和方法是被相关领域的技术人士所习知。如将在下文更详细描述的,SSU1430的架构可基于它在运作时的时脉区域。
参考图14,存储器模块1420包括总线控制器1422、存储控制器1424、存储装置1426、以及桥接控制器1428。存储装置1426用以储存用在语音辨识过程中的声学模型。在一实施例中,存储装置1426可以是一种非易失性存储装置像,例如,快闪存储装置。该声库在先前APU1400(例如,APU1400的制造和/或的测试过程中)的操作中可以被预先加载到该非易失性存储装置中。
在另一实施例中,存储装置1426可以是一种易失性存储装置像,例如,DRAM装置。在一实施例中,当APU1400接收到一聚类状态的请求时,存储控制器1424可以从非易失性存储装置(无论是集成在与APU1400的相同晶片上,还是位于APU1400的外部)复制该声库到易失性存储装置。该声库在非易失性和易失性存储装置之间的传送过程可以使用,例如,一直接存储器存取操作来实现。
总线控制器1422用以控制APU1400和外部CPU之间的数据传送。在一实施例中,总线控制器1422可以控制从CPU接收的特征向量和聚类状态分数从APU1400到CPU的传输。在一实施例中,总线控制器1422系用以从CPU传送一个或多个特征向量到桥接控制器1428,作为一存储器模块1420和SSU1430之间的接口。换言之,桥接控制器1428传送一个或多个特征向量到SSU1430作进一步处理。根据本发明的一实施例,在一个聚类状态的分数计算中,聚类状态分数是从SSU1430经由桥接控制器1428传送到存储器模块1420。
在一实施例中,总线控制器1422可以接收一控制信号(经由输入/输出信号1410),而该控制信号提供了一个主动聚类状态列表。在一实施例中,该主动聚类状态列表可以被传送到APU1400作为由CPU(例如,图4中的音素评估过程430)所执行的音素评估过程的结果。也就是说,在一实施例中,一反馈过程可发生在APU1400执行的音素评估过程以及由CPU所进行声学建模过程之间(例如,图4中的反馈450)。根据本发明的实施例,该主动聚类状态列表可以在聚类状态分数计算中为输入特征向量到APU1400中使用。
该主动聚类状态列表说明储存在存储装置1426中的一个或多个聚类状态系用在一聚类状态分数计算中。在一实施例中,该主动聚类状态列表可以包括一与存储装置1426的位址空间相关的基本位址,以及有关在该一个或多个聚类状态位于存储装置1426中的基本位址的索引列表。总线控制器1422可以经由桥接控制器1428发送一主动聚类状态列表给SSU1430,其中,SSU1430是与存储装置1426相通讯(经由存储控制器1424)以存取与该主动聚类状态列表相关的一个或多个聚类状态。
在另一实施例中,总线控制器1422可以接收一控制信号(经由输入/输出信号1410)以指示APU1400使用包含在声库中的所有聚类状态(例如,“所有分数”函数)执行该聚类状态分数计算。总线控制器1422经由桥接控制器1428发送“所有分数”指令给SSU1430,其中SSU1430是与存储装置1426相通讯(经由存储控制器1424)以存取所有与声库相关的聚类状态。
传统语音辨识系统一般会在一声学建模和音素评估模块(例如,图3中的声学建模模块320和音素评估模块330)之间合并成一位在CPU中的反馈回路,以限制在聚类状态分数计算中所使用的聚类状态数量。这是因为,上述相对于图3中的语音识别系统300所讨论的,显著计算资源专用于声学建模过程,其中数以千计的聚类状态会与一特征向量做比较。这里放置一个显著负载在CPU和数据总线的频宽(例如,图3中的数据240)于正在从该存储装置(例如,图3的存储装置230)传送聚类状态到CPU。因此,对于传统语音识别系统,主动聚类状态列表被用来限制声学建模过程的CPU上的影响。然而,CPU使用主动聚类状态列表可以将限制对即时或实质上接近即时的输入音频信号的处理需要。
APU1400的“所有分数”函数不仅减轻在CPU和数据总线的频宽上的负载,而且还提供了即时或实质上接近即时的输入音频信号的处理。在下文中进一步所详细叙述的,APU1400的特征像,例如,即时或实质上接近即时的语音辨识系统中的数据总线1427的频宽和图14中的距离计算器1436架构。
参考图14,SSU1430包括输出缓冲器1432、SSU控制模块1434、特征向量矩阵模块1435、距离计算器1436、和加法模块1438。根据本发明的实施例,SSU143系用以计算一个或多个特征向量和储存在存储装置1426中的一个或多个聚类状态之间的马氏距离。每个该一个或多个特征向量可以由N个维度组成,其中N可以等于,例如,39。在一实施例中,在一个或多个特征向量中的N维度中每一个可以是一个16位元平均值。
此外,每个储存在存储装置1426中的该一个或多个聚类状态是由一个或多个高斯机率分布所组成,其中每个该一个或多个高斯机率分布具有与每个该一个或多个特征向量相同的维数(例如,N维)。每个储存在存储装置1426中的一个或多个聚类状态可以具有,例如,32个高斯机率分布。
如上文所讨论的,存储装置1420和SSU1430可以在两个不同的时脉区域中进行操作。在一实施例中,SSU控制模块1434系经由桥接控制器1428接收从存储装置1420而来的时脉信号。根据本发明的一实施例,由SSU控制模块1434接收到的时脉信号频率可以与输入时脉信号(例如,从输入/输出信号1410而来的输入时脉信号)到APU1400相关联的时脉频率是相同的或大致相同的。
在一实施例中,SSU控制模块1434可以将它的输入时脉信号的频率进行分割并分配该分割的时脉信号到SSU1430的其它部件---例如,输出缓冲器1432,特征向量矩阵模块1435,距离计算器1436,以及加法模块1438---使这些其它部件在时脉分割频率下运作。例如,如果与输入时脉信号(例如,从输入/输出信号1410)相关联的时脉频率为12兆赫,则SSU控制模块1434可以从桥接控制器1428接收相同或基本相同的时脉信号并且使用已知的时脉分割的技术和方法分割时脉频率成一个频率,例如,60兆赫。SSU控制模块1434可以分配该分割时脉信号到SSU1430的其它部件使这些其它部件可在例如,60兆赫下运作---比与输入时脉信号相关联的时脉频率快5倍。
为简单起见,从SSU控制模块1434到SSU1430的其它部件中所分配到的时脉信号在图14中未示出。为了便于参考,与该时脉信号相关联的频率在本文中也被称为的“SSU时脉频率“。此外,为了便于参考,与输入时脉信号到SSU控制模块1434相关联的频率在本文中也被称为”存储装置时脉频率“。
图15是SSU控制模块1434的一个实施例示意图。SSU控制模块1434包括一输入缓冲器1510和一控制单元1520。计分单元控制模块1434从存储装置1420经由桥接控制器1428来接收一个或多个控制信号。在一实施例中,该一个或多个控制信号可与输入/输出信号1410和与由存储装置1426输出的高斯机率分布相关联的控制资讯相关联。与输入/输出信号1410相关联的控制信号可以包括,例如,主动聚类状态列表和一个“所有分数”函数。该与高斯机率分布相关联的控制资讯可包括,例如,由存储装置1426输出的一个后续高斯机率分布的位址资讯。
参考图14,在一实施例中,当总线控制器1422经由输入/输出信号1410接收到一主动聚类状态列表,位在与存储装置1426的位址空间相关联的基本位址以及相关的基本位址索引列表中的存储装置1426中的一个或多个聚类状态都可被储存在图15中的输入缓冲器1510,控制单元1520是与输入缓冲器1510相通讯来监视在聚类状态分数计算中,图14中的距离计算器1436所应用的聚类状态列表。
例如,主动聚类状态列表可以包含与存储装置1426和指向储存在存储装置1426的100聚类状态的100个索引的位址空间相关联的基本位址。如该相关领域的技术人士所理解的,该索引在参考与存储装置1426的位址空间相关联的基本位址之后可以被称为是指示器或存储器位址座标。此外,如上文所讨论的,一个聚类状态可以由一个或多个高斯机率分布所组成,其中每个该一个或多个高斯机率分布和有每个由APU1400接收到的一个或多个特征向量(例如,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可以经由输入/输出信号1410来接收一控制信号以指示来自当前的特征向量的主动聚类状态列表为了后续的特征向量而用在聚类状态分数计算中。在经由桥接控制器1428接收到来自存储器模块1420的控制信号,SSU控制模块1434为了后续的特征向量使用相同的来自当前的特征向量的主动聚类状态列表在聚类状态分数计算中。特别是,图15中的控制单元1520应用在与储存在输入缓冲器1510到随后的特征向量相关的相同基本位址和索引列表。图15的控制单元1520显示了高斯机率分布对后续的特征向量从存储装置1426到距离计算器1436的传送过程,以一在相对于上述该主动聚类状态列表示例的类似方式。
在另一实施例中,存储器模块1420可以经由输入/输出信号1410接收一控制信号以指示“所有分数”运作。如上文所讨论的,“所有分数”函数指的是其中一特征向量与所有包含在存于存储装置1426的声库中的聚类状态进行比较的运作。在一实施例中,图5中的控制单元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被用于在APU1400中的发声器适应。在一实施例中,特征向量矩阵模块1435从CPU经由输入/输出信号1410接收到一个特征向量变换矩阵(FVTM)。该特征向量变换矩阵可以被周期性地加载到特征向量矩阵模块1435像,例如,每一次发声。在一实施例中,该特征向量变换矩阵可以储存在一个位于特征向量矩阵的模块1435中的静态随机存取存储器(SRAM)元件。
根据本发明的一实施例,随着每个在存储装置1426中储存的聚类状态的平均值和变化值,一索引也可以储存在每个聚类状态,其中,该索引指出在特征向量变换矩阵中的一行。在特征向量变换矩阵中的行数可以改变(例如,10,50,或100行),并且对于实现APU1400的语音识别系统可以是特定的。根据本发明的一实施例,在特征向量变换矩阵中的每一行可以有与N维数的特征向量(例如,39)一样相等数目的条目,其中,每个条目是一比例因子用以乘以其相应的特征向量维数,以产生一个新的特征向量。从特征向量变换矩阵所选择的行(例如,39个比例因子之行)是经由数据总线1439传送到距离计算器1436,其中距离计算部1436进行乘法运算以产生新的特征向量,这将在下文中进一步详细地描述。
在一实施例中,SSU控制模块1434提供了从CPU和一个与一聚类状态到特征向量矩阵模块1435相关联的索引接收的特征向量。该索引指示一在特征向量变换矩阵中的特别行以缩放该特征向量。例如,该特征向量变换矩阵可以有100行,而该索引可等于10。在这里,对于具有39维度的特征向量,该特征向量变换矩阵的第10行都包含39个比例因子,其中该比例因子之行被传送到距离计算器1436以产生新的特征向量。
参考图14,距离计算器1436用以计算储存在存储装置1426一聚类状态的一个或多个维度和一特征向量的一对应的一个或多个维度之间的一距离。图16是一距离计算器1436的一实施例示意图。距离计算器1436包括一个数据通路的数据路径多工器(MUX)1610,一特征向量缓冲区1620,算术逻辑单元(ALUs)16301-16308,和一个累加器1640。
数据路径ALU1610用以从图14的存储装置1426经由数据总线1427接收一高斯机率分布,在一实施例中,数据总线1427的宽度等于与一高斯机率分布相关联的位元数。例如如果一高斯机率分布是768位元,则数据总线1427的宽度也是768位元。超过多个高斯机率分布维度,该与高斯机率分布相关联的768位元可以被分配给一16位元的平均值,一16位元的变化值,以及每个高斯机率分布维度的属性。正如上述所讨论的,该高斯机率分布可以和一特征向量有相同的维数,例如,39维度。在另一实施例中,数据总线1427的宽度可以大于256位元。
此外,在一实施例中,存储装置1426和距离计算器1436可被集成在同一个晶片,其中,数据总线1427是一宽总线(上文讨论的宽度)集成在晶片上以提供高斯机率分布从存储装置1426到距离计算器1436的数据传输。在另一实施例中,存储装置1426和距离计算器1436可被集成在两个独立的晶片,其中数据总线1427是一个宽总线(上文讨论的宽度)紧密耦合在两个晶片之间,使得数据由于噪音和互连寄生效应的衰减最小化。如下文将要讨论的,一宽总线1427(上文讨论的宽度)的一个好处,除其他外,是为了提高APU1400在聚类状态分数计算的效率。.
数据路径ALU1610还用以从SSU控制模块1434经由数据总线1437接收一个或多个控制信号和特征向量,以及从特征向量缓冲区1620接收特征向量比例因子。在一实施例中,特征向量缓冲器1620可用以储存从特征向量矩阵模块1435并经由数据总线1439传送过来的比例因子(与特征向量变换矩阵的一个选定行相关联的)。在另一实施例中,特征向量缓冲器1620可用来储存特征向量变换矩阵。这里,从SSU控制模块1434经由数据总线1437的一个或多个控制信号可用来选择特征向量变换矩阵之行。数据路径ALU1610输出特征向量,从特征向量变换矩阵选择的特征向量比例因子,以及经由数据总线1612的ALU16301-16308的高斯机率分布资讯作进一步处理。
在一实施例中,数据路径ALU1610也用以接收从SSU控制模块1434并经由数据总线1437的一个或多个控制信号的高斯加权因子。数据路径ALU1610用以输出高斯加权因子到累加器1640做进一步处理。
参考图16,根据本发明的实施例,每个ALU16301-16308用以在每个SSU时脉周期下,计算从数据路径MUX1610接收到的一高斯机率分布的一维度和一特征向量的对应维度之间的一距离分数。在一实施例中,ALU16301-16308可以在SSU的时脉频率(例如,比存储器模块的时脉频率快5倍)下进行运作,使得对于每个从图14的存储装置1426(例如,传输高斯机率分布到距离计算器1436)的读取操作,一与高斯机率分布相关联的距离分数(也本文中称为“高斯距离分数”)从距离计算器1436向加法模块1438被输出。
在一实施例中,数据路径ALU1610用以分配特征向量资讯,而该特征向量资讯与一维度,与一高斯机率分布的对应维度相关联的一平均值,与高斯机率的对应维度相关联的一变化值,和每个ALU16301-16308特征向量比例因子相关联。基于分配给分别的ALU的特征向量资讯和特征向量比例因子中,每个ALU16301-16308用以藉由各自的比例因子乘以特征向量的维数以产生一个新的特征向量。
在一实施例中,特征向量的维度与对应比例因子的相乘相当”即时地”进行,这意味着在距离分数的计算过程中执行乘法运作。这是,相反地,在一个特征向量变换矩阵和被储存在存储器中用以之后由每个ALU16301-16308存取的相乘运算结果中,执行对各行的乘法运算。“即时地”的乘法运算的一个好处,除其他外,该存储器存储器是不需要储存与特征向量变换矩阵的非索引(或者非选择)的行相关的相乘运算结果。这,换言之,由于额外的时脉周期并不需要储存与非索引的行相关联的特征向量的缩放效果在存储器中,导致新特征向量更快速的产生,而且也导致一具有较小的晶片尺寸区域的ALU16301-16308
根据本发明的一实施例,基于针对个别的ALU的所述新的特征向量,平均值,和变化值,每个ALU16301-16308用以计算基于一特征向量维数和在每个SSU的时脉周期中一对应高斯机率分布维度的一距离分数。在一时脉周期中累计地,ALU16301-16308对8个维度产生距离分数(即每个ALU1尺寸计算)。ALU的架构和运作在下文中会更详细地描述。
根据本发明的实施例,ALU在距离计算器1436的数量可以依赖SSU时脉频率和上述所讨论的存储器模块时脉频率使距离计算器1436向存储装置1426的每个所读取的一高斯机率分布输出一个距离分数。例如,该存储器模块时脉频率可有一12兆赫的工作频率,其中存储装置1426也在12兆赫(例如,约83毫微秒的读取)的工作频率运行。SSU1430可以具有一个SSU时脉频率,例如60兆赫以比存储器模块时脉频率快五倍的运作速度。具有39维度和8个ALU的一特征向量,对于一高斯机率分布的一高斯距离分数可以在5个SSU时脉周期或1个存储器模块时脉周期中计算出。因此,藉由设计,该5个SSU时脉周期是对应1个存储器模块时脉周期的一时脉周期预定数,其中当一高斯机率分布在1个存储器模块时脉周期下从存储装置中被读取,对于另一高斯机率分布的一高斯距离分数是由累加器1640计算。
在一实施例中,ALU16301-16308的一部分可以在一个SSU时脉周期的上升边缘被激活,而ALU16301-16308的剩余部分可以在SSU时脉周期的下降边缘被激活。例如,ALU16301-16304可以在SSU时脉周期的上升边缘被激活而ALU16305-16308可以在SSU时脉周期的下降边缘被激活。作为错开的ALU16301-16308的激活结果,由距离计算器1436产生的峰值电流(峰值功率)可以被最小化,从而降低在距离计算器1436中可靠性问题的易感性。
基于本文的描述,该相关领域中的技术人士将理解到,距离计算器1436的架构并不局限于上述的例子。相反,该相关领域中的技术人士应当理解的是,距离计算器1436可以在一更快或更慢的60兆赫的时脉频率下操作而且该距离计算器1436可以包括多于或少于8个ALU。
参考图16,累加器1640用以从每个ALU16301-16308和从数据路径ALU1610的高斯加权因子(经由数据总线1614)中来接收输出。如上述讨论的,在一实施例中,对于每一个SSU时脉周期,一个高斯机率分布维度的一距离分数是由每个ALU16301-16308输出。从每个ALU16301-16308的这些距离分数被累加器1640进行储存和积累以生成高斯机率分布维度的一距离分数,或称为高斯距离分数,例如,累加器1640增加了由ALU16301-16308在SSU时脉周期中计算的各自的距离分数。
在与所有的高斯机率分布维度相关的高斯距离分数被累加器1640累积(例如,39维度)之后,累加器1640将总和与高斯加权因子相乘以产生一个加权的高斯距离分数。在一个实施例中,高斯加权因子是可选的,其中累加器1640输出高斯距离分数。在另一实施例中,高斯加权因子对于每个高斯是特定的并且被储存在存储装置1426。
加法模块1438用以将一个或多个高斯距离分数(或加权的高斯距离分数)相加以产生一个聚类状态分数。如上述所讨论的,每个聚类状态可以由一个或多个高斯机率分布所组成,其中每个高斯机率分布可与一高斯距离分数相关联。对于一具有多个高斯机率分布(例如,32个高斯机率分布)的聚类状态,加法模块1438把与所有的高斯机率分布相关联的高斯距离分数相加以产生聚类状态分数。在一实施例中,加法模块1438用以执行在对数域的加法运算以产生聚类状态分数。
输出缓冲器1432用以从加法模块1438接收一个聚类状态分数并且传送到该聚类状态分数到桥接控制器1428。桥接控制器1428依次传送聚类状态分数经由总线控制器1422到外部CPU。在一实施例中,输出缓冲器1432可以包括多个存储器缓冲器,使得在第一存储器缓冲器中作为第一聚类状态分数被传送到桥接控制器1428,加法模块1438产生一第二聚类状态分数并传送到第二存储器缓冲器,用于随后传送到桥接控制器1428。
图17是一声学建模方法1700的一个实施例示意图。该方法1700的步骤可以使用来执行,例如,图14的APU1400。
在步骤1710,多个高斯机率分布经由具有至少一高斯机率分布的宽度以及从一外部计算元件的特征向量的数据总线被接收到。高斯机率分布可以由,例如,768位元所组成,其中该数据总线的宽度至少为768位元。此外,图14中的APU1400可以从外部计算元件(例如,一CPU经由图14的输入/输出信号1410与APU1400通讯)接收特征向量。
在一实施例中,与多个特征向量维度,多个与对应的多个该至少一高斯机率分布维度相关联的平均值,以及多个与对应的多个该至少一高斯机率分布维度相关联的变化值相关联的资讯被分散到,例如,ALU(例如,图16的ALU16301-16308)。.
在步骤1720中,多个维度距离分数是基于多个特征向量维度和相应的多个该至少一个高斯机率分布维度被计算出来。在一实施例中,距离分数计算是基于从一个主动聚类状态列表中的至少一聚类状态。该主动聚类状态列表可以包括一与一存储装置的位址空间和一个或多个关于在该至少一个聚类状态位于存储装置中的基本位址的索引相关联的基本位址。此外,多个比例因子为该多个特征向量维度所储存,其中该多个比例因子应用到该多个特征向量维度在多个维度距离分数的计算过程中。步骤1720可以藉由,例如,图14中的距离计算器1436来执行。
在步骤1730中,该多个维度距离分数为至少一高斯机率分布相加产生一高斯距离分数。在一实施例中,高斯距离分数的产生超出一个聚类状态计分单元(SSU)时脉周期的预定数目。该SSU时脉周期的的预定数目可以等同于从一个存储装置中的至少一个高斯机率分布的读取时间。步骤1730可以藉由,例如,图14中的距离计算器1436来执行。
在步骤1740中,多个对应于多个高斯机率分布的高斯距离分数相加以产生一聚类状态分数。步骤1740可以藉由,例如,图14中的距离计算器1436来执行。
本发明的实施例指出了并且解决上述关于图3中的传统语音辨识系统200所讨论的问题。总之,声学建模过程是藉由执行,例如,图14中的APU1400。该声学处理单元的运作与一CPU相结合,其中该声学处理单元可以从CPU接收一个或多个特征向量(例如,图3中的特征向量315),计算一个聚类状态分数(例如,图3中的聚类状态分数325)基于一个或多个高斯机率分布,并且输出该聚类状态分数给CPU。在一实施例中,该一个或多个高斯机率分布可以被储存在声学处理单元。或者,在另一实施例中,该一个或多个高斯机率分布可以储存在声学处理单元外部,其中,该声学处理单元从外部存储装置中接收一个或多个高斯机率分布。根据上面描述的声学处理单元架构的实施例中,会达成一个聚类状态分数的加速计算。
5.算数逻辑单元架构
根据本发明的一实施例,图18是一个算数逻辑单元1800的方块图。在一实施例中,一算数逻辑单元16301-16308的一个或多个可以依照图18所示的架构来实现。算数逻辑单元1800用以计算一特征向量和一个高斯机率分布向量之间的一个一维距离分数。例如,算数逻辑单元1800可用以计算一维距离分数为,
其中:
Δij=xiij
varij是jth高斯机率分布向量的ith维度的变化值;
M1和M2是比例因子;
C是一常数
xi是在ith维度中特征向量的值;以及
μij是jth高斯机率分布向量的ith维度的平均值。
因此,在一实施例中,对于一给定维度和一给定高斯机率分布,由算数逻辑单元1800所输出的一维距离分数依赖于三个变量:xi,μij和varij。一种用于实现在软件中的这个方程式的技术产生一个查找表(LUT)用来索引这三个变量。而且,因为分数不是具体取决于xi和μij的值,而是在它们之间的差,Δij,这个查找表可进一步简化成一个用Δij和varij索引的二维查找表。因此,一个二维查找表可用于实现算数逻辑单元16301-16308
一种二维查找表,然而,如果用来实现图16中所实施的硬件中的算数逻辑单元16301-16308可能会有实质性的缺点,特别是,例如,由于有八个算数逻辑单元16301-16308而每个计算各别的一维距离分数,就必须有这二维查找表的八份复制。在一实施例中,这样的二维查找表,大约是32仟位元组,虽然其他实施例和应用可能需要更大的查找表。因此,在这样的实施例中,一份32仟位元组查找表的八份复制将是被需要的。如果以这样的方式实现,SSU所需的大量全部电路板空间将被只分配到八份二维查找表。如果有更大的查找表需求,这个问题将会加剧。
在一实施例中,算数逻辑单元1800克服了这二维查找表的缺点藉由使用计算逻辑和一个一维查找表的组合来实现一计算分数函数。重要的是,方程式(1)可以被分成两部分:一个aluij部分和一个LUTij部分,下文会对每个详细说明。
LUTij=M1×(ln(varij)-C) (3)
因此,算数逻辑单元1800计算aluij,并在与计算的同时,检索LUTij。然后该aluij和LUTij结合形成距离分数。特别地,如图18所示,算数逻辑单元1800包括一运算逻辑单元1802和一个查找表模块1804。下文中更进一步叙述,运算逻辑单元1802可以计算aluij值而查找表模块1804可以被用来检索LUTij值。而且,算数逻辑单元1800还包括一个组合模块1806。组合模块1806结合计算单元1802和查找表模块1804的输出,并输出距离分数。
计算逻辑单元1802和查找表模块1804只接收有需要确定其各自值的输入。特别地,如上所述,aluij取决于三个变量:xi,μij,和varij。因此,如图18所示,计算逻辑单元1802接收这三个值作为输入。此外,从查找表模块1804中检索到的值是单独使用varij值索引。因此,如图18中所示,查找表模块1804只接收varij值。
根据本发明的一实施例,图19示出一算数逻辑单元1800的详细方块图。在图19的实施例中,计算逻辑单元1802包括一个减法模块1910,一个平方模块1912,一个查找表1914,一乘法器1916和一个格式化模块1918。减法模块1910计算xi和μij之间的差值,即,减法模块1918(应为1910,有误)计算出Δij。平方模块1912平方由减法模块1910输出的差值并产生一代表的整数。
在一实施例中,查找表1914输出一对应的值。乘法器1916计算一个产品于两个方面:(1)从查找表1914中检索到的值和(2)由平方模块191输出的平方值。因此,乘法器1916的输出是格式化模块1918接收该生产值,其中格式化的结果使得它可以有效地与查找表模块1804的输出结合。
如图19所示,查找表模块1804包括一个查找表1920和格式化模块1922。查找表1920储存对应LUTij的值,如方程式(3)所表示,以及被使用varij来索引。该从查找表1920检索到的值被格式化模块1922接收。格式化模块1922格式化查找表1920的输出,以便它可以被有效地与计算逻辑单元1802的输出相结合。
从计算单元1802和查找表模块1804的输出被组合模块1806接收。组合模块1806包括加法器1930、消除模块1932、取整模块1934、和饱和模块1936。加法器1930计算该两个接收值的和值,并输出总和。消除模块1932用以去除由加法器1930输出的和值的小数部分。取整模块1934用以向下取整(round down)移位模块1932的输出。饱和模块1936用以接收该取整的和值并饱和(saturate)为一特定位元数。因此,饱和模块1936的输出是一具有特定位元数的值以表示一维距离分数。
根据本发明的另一实施例,图20是一个计算单元1802的方块图。图20中所示的实施例是类似于图19的实施例,除了图20的实施例还包括一个转换模块2002,一异常处理模块2012,格式化模块2014,以及一ALU2018。
转换模块2002包括一乘法器2020,一个比例位元模块2022,和一个饱和模块2024。如上所述,特征向量的值可以藉由在特征向量变换矩阵中的各项,例如,一发声器的习知特征被转换。在一实施例中,转换模块200可用以藉由对应变换值α_i缩放独立的特征向量值。具体地说,乘法器2020计算出特征矢量值x_i的产物和相应的变换值α_i并输出一值到比例位元模块2022。比例位元模块2022向右移动,并输出所得到的整数到饱和模块2024。饱和模块2024是类似饱和模块1936,参考图19所述,饱和所接收的值成一特定位元数。因此,该饱和模块2024的输出是一个值用以表示比例特征向量值。
异常处理模块2012和ALU2018用以指出存在于查找表1914中的确切错误。例如,在努力节省空间的情况下,查找表1914的容量可以减小,这容量减小可以引起查找表1914的特定值具有一错误。在这种实施例中,异常处理模块2012可以识别查找表1914的输出是否将是那些值的中的一个,并输出正确的值。换言之,异常处理模块2012可以作为一个查找表,其中包括一个条目是每个在查找表1914中的条目,由于尺寸的限制而可能有一个错误。因为查找表1914是根据varijj索引,异常处理模块2012可以识别查找表1914的输出是否需要根据varij值来进行校正。
在另一实施例中,异常处理模块2012可以作为二维查找表,也接收Δij。在这样一个实施例中,异常处理模块2012可以输出特定的aluij值(例如,相对于查找表1914的对应条目)。因为这些可能的错误在查找表1914中的数目相对较小,异常处理模块2012不会占用一显著量的空间,像其他较大的二维查找表。此外,藉由控制ALU2018去输出异常处理模块2012的输出,而不是符号位元模块1918的输出,异常处理模块2012可以确保,aluij的存储值而不是使用不正确的查找表1914输出计算得到的aluij是组合模块1806的最后输出。
格式化模块2014接收由乘法器1916计算出的产品,在一实施例中,格式化模块2014用以减少在结果中的位元数目,虽然不是必须的,但藉由减少这些位元数目可使这种操作节省了空间和功率。
此外,图20实施例中示出了减法模块1810为包括ALU2004和2006,比较模块2008,以及减法器2010。在一实施例中,平方模块1912能用以平方具体的正值。因此,减法模块1910的输出在该实施例中必须为正。为达到这一结果,两个运算元,即特征向量值(可选地与变换值∝i缩放)及平均值μij可以藉由比较模块2008来比较。然后比较模块2008输出一控制信号到ALU2004和2006以确保进入减法器2010的第一运算元是至少跟第二运算元一样大。
图21是一个方法2100的一实施例示意图,用于计算一维距离分数。方法2100的步骤可以使用例如,示于图18中的算数逻辑单元1800来执行。在步骤2102中,一特征向量维度由变换值进行缩放。在步骤2104中,第一值是根据该特征向量值及与一高斯机率分布向量相关联的平均和方差来计算。在步骤2106中,第二值是根据该方差来计算。例如,图19中,查找表模块1804可以被用于检索变化值。在步骤2108中,第一和第二值进行合并以产生一维分数。
6.声学处理单元接口
A.系统概述
根据本发明的一实施例,图22是一个声学处理系统2200的方块图。声学处理系统包括中央处理单元(CPU)2210和一声学处理单元(APU)2220。CPU2210的运行是一应用程式2212,一语音识别引擎2214和一应用程式接口2216。语音识别引擎2214是一个过程,其中包括至少两个线程:一个搜寻线程2250和一个距离线程2260。
声学处理单元2220包括声学模型存储器2222、第一总线2224、存储器缓冲器2226、第二总线2228、和SSU2230。声学模型存储器2222可以用以储存多个聚类状态,它们一起形成一个或多个声学模型。第一总线2224是一宽总线,用以允许声学模型存储器输出一整个高斯机率分布向量到存储器缓冲器2226。SSU2230对从CPU2210接收的一个特征向量计分一聚类状态分数。SSU2230可以如上所述来实现。例如,SSU可以如图15所示来实现。对于SSU2230的更多资讯,请参见上文第4节。
存储器缓冲器2226可以容纳一个高斯机率分布向量直到SSU2230已准备好为它计算一高斯距离分数。也就是说,如果SSU2230是正在对一个从CPU2210接收到且针对一个高斯机率分布向量q的特征向量进行计分,存储器缓冲器2226可以容纳下一个高斯机率分布向量以进行计分,即向量q+1。
如图22所示,输入到声学处理单元2220包括一特定聚类状态(聚类状态#)和一特征向量的一参考值。聚类状态#输入对应存在声学模型存储器中的该特别的聚类状态所存的向量资讯位址。声学处理单元2220的输出是一聚类状态分数,其中表示所引用的聚类状态发出特征向量在给定时间帧中的的机率。在一实施例中,声学模型存储器2222利用了一平行读取架构和一具有非常大的内部频宽总线2224。该并行读取的位元数目大于256(例如,768位元宽--足以同时加载一整个高斯机率分布向量)。然后从声学模型存储器2222读取的值被暂存到存储器缓冲器2226,并使用非常大频宽总线2224。从存储器缓冲器2226和观测向量资讯的两者输出被输入到SSU2230以执行来计算聚类状态分数所需要的乘法和加法。总线2228,遍及该存储器缓冲器2226与SSU2230通讯,基本上类似于总线2224。
如上所述,该聚类状态分数是藉由计算N维度的J高斯机率分布向量的分数以计算出,并且藉由加总在一起以获得总分数。有些计分算法,然而,只在计算中使用最显著的高斯函数以增加计算速度。当利用根据高斯函数的局部集合的运算法中,只有那些具有所需的高斯函数相关联的位元数需要被从声学模型存储器传送到SSU2230。换句话说,在存储器中总是被SSU22230需要的最大连续位元数目等于用来储存单个高斯机率分布向量的位元数目。存储总线的频宽要求,以及需要被平行读取的位元数藉由传送那些只含有在每次传送中的一个单一的高斯机率分布向量的位元数目来最小化。使用这个每次传输的位元数目,声学处理单元2220的功率要求可以降低,而必要的数据传送到SSU2230的传输速率将会增加,从而导致整个系统性能的改善。换句话说,藉由减少每次传输的位元数目,声学处理单元2220的功率需求可以减少,而所必需的数据传送到SSU2230的传送速率也可以增加,从而改善整体系统的性能。
如上所述,声学建模在许多类型的语音识别系统中是主要瓶颈之一(例如,关键字辨识,或大量词汇连续语音辨识)。由于大量的比较和计算,高性能和/或并联的微处理器通常被使用,并且在储存声学模型的存储器和处理器之间的高频宽总线是必需的。在图22中的实施例,声学模型存储器2222可并入声学处理单元2220,且被集成到一使用SSU2230的单晶片上,与两者使用一宽,高频宽内部总线2224和2228相连接以改善数据传输速率。但是,当增加了每次传输的位元数目改善了数据传输速率之时,并不总是改善整体的系统性能。
每次传输的位元数目也可以用于声学建模的一运算函数。当根据高斯函数的局部集合的计分运算法被使用(即高斯选择),那么每次传输的位元数目可以等于由运算法使用的高斯函数大小。较少每次传输的位元数目需要多个周期来传输数据,包括高斯函数,而由于数据的非局部性,更大的每次传输位元数目是低效的。
在一实施例中,一架构用于声学建模硬件加速器,当所使用的计分运算法至少部分地根据高斯函数(即,高斯选择)的部分集合。该优化的架构可导致整个系统性能相比于其他架构具有一显著改善。
根据本发明的一实施例,图23是一个声学处理系统2300的方块图。声学处理系统2300包括一处理器2310,一个专用的动态随机存取存储器模块2302,一个动态随机存取存储器模块2304,和一个非易失性存储器模块2306。非易失性存储器模块2306可以被实现为,例如,一个嵌入式快闪存储器模块。处理器2310包括一CPU2312,一硬件加速器2314,和一存储器接口2316。硬件加速器2314包括一个SSU2320。SSU2320可以如上述被实现。例如,SSU可以如图15中所示来实现。
在一实施例中,专用的动态随机存取存储器模块2302是专用于SSU2320以,例如,储存聚类状态。因此,存储器接口2316可以耦合SSU2320到专用动态随机存取存储器2302。
根据本发明的一实施例,图24是一个硬件加速器2400的方块图。硬件加速器2400包括一处理器2402和一个专用动态随机存取存储器模块2404。处理器2402包括一个串列周边接口(SPI)总线接口模块2412,一个SSU2414和一存储器接口2416。SSU2414可以如上所述来实现(例如,如图15所示)。如图24所示,专用动态随机存取存储器模块2404储存一个或多个声学模型。在另一实施例中,动态随机存取存储器模块2404可以替代成一个非易失性存储器模块,例如,一个快闪存储器模块。在又一实施例中,动态随机存取存储器模块2404可替代为一存储器模块包括一个易失性存储器模块(例如,动态随机存取存储器)和一个非易失性存储器模块(例如,快闪存储器)。在这样的一个实施例中,该声学模型可以最初被储存在非易失性存储器模块中,并可以被复制到易失性存储器模块用于聚类状态计分。
串列周边接口模块2412可以提供一个接口到SPI总线,其中,反过来又可以耦合硬件加速器2400至CPU。存储器接口2416耦合SSU2414到专用动态随机存取存储器模块2404。在一实施例中,一个语音辨识系统可以被实现在云端解决方案终且其中该聚类状态计分和所必需的语音辨识处理在云端语音辨识应用程式中进行。
B.软件堆迭
根据本发明的一实施例,图25是一声学处理单元的软件堆迭2500方块示意图。软件堆迭2500可以用来从概念上示出了一个用声学处理系统的组件之间的通讯,例如,参考图22所述的声学处理系统2200。堆迭2500包括应用程式2502,一语音识别引擎2504,一个应用程式接口(API)2550,一串列周边接口总线控制器2512,一串列周边接口总线2514,和一个声学处理单元2516。应用程式接口2550包括一通用DCA2506,一个低阶驱动器(LLD)2508,和一个硬件抽象层(HAL)2510。在一实施例中,应用程式2502,语音识别引擎2504,应用程式接口2550,和声学处理单元2516可各别对应图22中的应用程式2212,语音识别引擎2214,应用程式接口2216,声学处理单元2220。
在软件堆迭2500,应用程式2502与语音识别引擎2504相通讯,换言之,与通用DCA2506进行通信。在一实施例中,语音识别引擎2504经由一DCA应用程式接口耦合到通用DCA2506。经由一低阶驱动器应用程式接口,通用DCA2506可被耦合到低阶驱动器2508。低阶驱动器2508可经由一硬件抽象层应用程式接口耦合到硬件抽象层2510。硬件抽象层2510以通讯方式耦合到串列周边接口总线控制器2512,而串列周边接口总线控制器2512以通讯方式耦合到串列周边接口总线2514。声学处理单元2516以通讯方式耦合到串列周边接口总线2514和经由总线控制器2512和串列周边接口总线2514以通讯方式耦合到硬件抽象层2510。
在一实施例中,软件堆迭2500提供一软件接口在声学处理单元2516和应用程式2502(例如,采用语音识别的应用程式)之间。特别是,应用程式2502和语音识别引擎2504可以是“无关硬件”。也就是说,该应用程式2502和语音识别引擎2504可以完成各自的运作而没有关于距离,或聚类状态,计分如何正在发生的详细知识。
通用DCA2506,低阶驱动层2508,和硬件抽象层2510包括特定硬件的应用程式接口呼叫数。在一实施例中,硬件抽象层2510的应用程式接口呼叫数依赖于控制器所连接的类型。在一个实施例中,声学处理单元2516的总线接口可能是一个不同的总线和控制器的组合,需要一不同的硬件抽象层(与不同的应用程式接口呼叫数)。
通用DCA2506是一个距离运算的应用程式接口。该DCA可以由软件开发者来定义。在一实施例中,DCA应用程式接口被特别定义来支持一个语音识别引擎,如语音识别引擎2504。另外,通用DCA2506可以是专为声学处理单元2516实现。此外,低阶驱动器2508可以是一个次音计分单元的命令的函数抽象层以及可以是一个一对一的匹配到SSU命令。如图25中所示,低阶驱动器2508耦合到硬件抽象层2510。
该通用DCA应用程式接口可以包括以下五大函数:创建,关闭,设定特征,计算距离分数,并填入分数。在一实施例中,创建函数设定可使用的声学模型。存储器可以有储存一个或多个声学模型(例如,每种语言的一个或多个声模型)。例如,如上述参照图22所讨论的,声学处理单元的专用声学模型存储器2222可储存声学模型(例如,聚类状态库(S))。此外,所给予的一声学模型(例如,聚类状态库,用以储存对应各聚类状态的声音的高斯分布)和一特征向量,该创建函数可以设定特征向量中的维数。在一实施例中,英语的特征向量可以有39维度。在另一实施例中,对其他语言的特征向量可以有其他的维数。更一般地,维数可以根据特定选择的口头语言用于语音识别处理来改变。因此,该创建函数设定所选择的声学模型,维数和聚类状态的数量。该关闭函数是一种函数用以结束传输特征向量,音频样本部分,以及聚类状态计分请求到硬件加速器(例如,声学处理单元2516)。
在一实施例中,该设定特征函数用以藉由传递一特定帧ID,一个传递ID,和特征向量来设定该聚类状态的要求到它们各自的帧。如上所述,该输入音频信号可以被分成帧(例如由语音识别引擎2504)。一种示例性帧包括该语音输入信号的一部分的光谱特性。在一实施例中,一帧可以是12毫秒(ms)长。该设定特征函数可以转换每一帧分成39维度(例如,39个8位元值)。该设定特征函数可以设定一个特定的帧ID和相关的特征向量。
在一实施例中,该距离计算分数函数计算该聚类状态分数(例如,高斯机率),其中,如上面所指出的,可以被实现为一个距离计算。该功能可以用来开始和准备聚类状态计分。例如,该特征向量可以被输入到声学处理单元2516且声学处理单元2516将针对所有储存在声学模型的聚类状态计分,或至少该聚类状态的一个选定部分。这个分数将被返还给上层。在一实施例中,该距离计算分数函数可以设定一部分或完整将被用于聚类状态计分的声学模型。
在一实施例中,填充分数函数采用聚类状态计分结果并将其返回给上层软件层,包括应用程式2502和语音识别引擎2504。
在一实施例中,语音识别引擎2504可以用于任何形式的型态识别,例如,使用隐藏式马可夫模型用于型态识别的型态识别形式。在另一实施例中,型态识别的另一种形式也使用高斯计算。实例的型态识别可以包括,但不限于上述用于语音识别,图像处理和手写识别的聚类状态计分。
如上所述,应用程式2502和语音识别引擎2504对于任何用于确定聚类状态分数的硬件是不可知的。在一实施例中,一个特定的声学处理单元可被交换为不同的硬件而无需应用程式2502和语音识别引擎2504知道或正被实行。当应用程式2502和语音识别引擎2504对于任何用再聚类状态计分的任何类型的硬件是不可知,一第一硬件加速器可以被替换为一不同设计的一第二硬件加速器,而无需应用程式2502和语音识别引擎2504的任何重新设计。换言之,如本文所讨论的,当声学处理单元库的呼叫数是特定于所使用的硬件加速器的类型和设计,该通用DCA库的呼叫数不是特定的硬件。
在一实施例中,一软件架构,如图25所示,可以藉由描述一数据及控制流透过在图25所示的软件堆迭来说明。应用程式2502可以是使用语音识别引擎的任何应用程式。在一实施例中,语音识别引擎2504是由Nuance公司所提供的Vocon引擎。在替代实施例中,其他使用一高斯混合模型(GMM)的机率估计的语音识别引擎或型态识别引擎能被使用。
在一实施例中,声学处理单元2516使用高斯混合模型来计算聚类状态分数。声学处理单元2516可以计算这些分数(例如,藉由一个重要的命令),比一个嵌入式处理器(例如,一皮质A8嵌入式处理器)更为快速,使得语音识别更实用在板上的具有声学处理单元2516的语音识别系统。减载该聚类状态计分(或距离计算)到声学处理单元2516不仅改善了用户经验(藉由减少计算等待时间)而且允许CPU2210参与到系统中的其他任务。该软件架构在减少CPU的负荷和等待时间扮演一重要角色。
在一实施例中,语音识别引擎2504不直接了解声学处理单元2516。例如,语音识别引擎2504可以使用通用DCA应用程式接口2506来计算距离(也被称为聚类状态分数)。在这里讨论的通用DCA库的具体实施是使用声学处理单元2516,与多个函数呼叫数到下文所述的声学处理单元来特别设计出。这不同于DCA库的完整软件实现。这个具体的实施转化该通用DCA库呼叫数成为声学处理单元库的一个序列呼叫数。具体实施的细节描述如下。该声学处理单元库的定义和实现是特定于该声学处理单元库的当前实现中,并也在下文中描述。
在一实施例中,通用DCA2506做为语音识别引擎2504和声学处理单元2516之间的一接口层。例如,语音识别引擎2504可以利用通用DCA呼叫数向该通用DCA请求聚类状态计分。通用DCA2506然后利用一个具有应用程式接口呼叫数的特定声学处理单元库,下文进一步描述,直接向声学处理单元硬件加速器要求执行所请求聚类状态计分。因为语音识别引擎2504是不知道的声学处理单元2516的,语音识别引擎2504可以具有下列优点。例如,语音识别引擎2504可以仅需要知道传递声学处理单元2516的格式的信息。语音识别引擎2504也并不需要知道由声学处理单元2516执行的任务。此外,有一个换出的益处。即声学处理单元2516可以被替换或重新设计而不需要语音识别引擎2504的任何重新设计。只有该接口,在本实施例中的通用DCA2506,需要有特定硬件的应用程式接口呼叫数,以确保语音识别引擎2504和声学处理单元2516之间所需的互操作性。
在一示例性实施例中,一通用DCA库包括的函数清单如下:
函数名称:距离_计算_创建
输入参数:
·声学模型。
·在特征向量的维数。
·在声学模型的聚类状态总数。
描述:存储这些参数作为距离计算的状态的一部分。
函数名称:距离_计算_特征设定
·输入参数:
o帧ID
o特征向量
描述:存储对应于该帧ID的特征向量。
函数名称:距离_计算_分数计算
·输入参数:
o帧ID
o计分的聚类状态表
描述:为一个给定的帧设定计分的聚类状态。
函数名称:距离_计算_填充分数
·输入参数:
o包含分数的缓冲区
描述:储存聚类状态分数于缓冲器中。
函数名称:距离_计算_特征矩阵设定
o输入参数:
o p矩阵
说明:存储由“p矩阵”给出的特征向量转换矩阵在声学处理单元中。
该距离_计算_特征矩阵设定函数被调用于说话之间以适应特定说话者的辨识,当为下一个发声时计算该聚类状态分数之时,该声学处理单元使用这个矩阵。
在一个实施例中,“距离_计算_分数计算”和“距离_计算_填充分数”可以被实现使得运算的等待时间和CPU的负荷最小化。例如,这些函数可以被实现,只要达成在图26所实施的并行运作。
在一个示例性实施例中,一声学处理单元库支持以下函数:
函数名称:声学处理单元_设定_声音_模型
·输入参数:
o声学模型
·描述:设定声学模型用于聚类状态计分。
函数名称:声学处理单元_加载_特征_向量
·输入参数:
o特性向量
·描述:加载特征向量到声学处理单元。
函数名称:声学处理单元_分数_聚类状态_大量
·输入参数:
o聚类状态列表
·描述:为计分加载聚类状态列表到声学处理单元。
函数名称:声学处理单元_分数_范围
·输入参数:
o由第一和最后一个索引设定的聚类状态范围
·描述:指示声学处理单元对在所有范围内的聚类状态计分。
函数名称:声学处理单元_读取_聚类状态_分数
·输入参数:
o要读取的分数数目
o目标缓冲区
·描述:读取分数并存储在目标缓冲区。
函数名称:声学处理单元_确认_分数_准备_状态
·输入参数:
o无
·描述:确认分数是否准备从声学处理单元读取。
函数名称:声学处理单元_读取_分数_长度
·输入参数:
o无
·描述:读取状态寄存器以找到可用分数项的数目。
函数名称:声学处理单元_读取_状态
·输入参数:
o暂存器索引
·描述:读取由索引暂存器设定的状态暂存器。
函数名称:声学处理单元_读取_组态
·输入参数:
o无
·描述:读取组态暂存器。
函数名称:声学处理单元_编写_组态
·输入参数:
o配置数据
·说明:写入组态寄存器。
在一实施例中,该声学处理单元可用以为一个给定话语的每个帧对该聚类状态进行计分。所选择的声学模型与声学处理单元在开始时相通讯作为函数距离_计算_创建函数的一部分。对于一个给定帧的特征向量经由距离_计算_特征设定函数被传递到声学处理单元。被计分的聚类状态为一个给定帧经由距离_计算_分数计算函数被传递到声学处理单元。由声学处理单元计算出的主动分数可以经由距离_计算_填充分数函数被传回给语音识别引擎的引擎。
控制流从顶部到堆迭2500的底部如图25所示。所有的函数都同步并在返回前完成除了距离_计算_计算分数函数以外。正如下文所述,该计分可以被实现为一个单独的线程来最大化距离计算和如上所述的搜寻的并行性,该线程产出该CPU给语音识别引擎2214的其余部分每当它正在等待声学处理单元2220来完成距离计算时。该非同步性计算是很重要的,以减少等待时间,以及该CPU的负荷。
C.同时搜寻和距离分数计算
在一实施例中,一个线程(例如一个可执行的过程)从一正由应用程式2502或语音识别引擎2504执行的线程分离可以被声学处理单元2516中创建。对于这些被分离的线程,必须要有独立性(即一第一男主角的进一步行动,取决于第二男主角的动作)。打破应用程式2502和语音识别引擎2504之间的任何依赖性且声学处理单元2516允许应用程式2502和语音识别引擎2504与声学处理单元2516并行运作。在一示例性实施例中,应用程式2502一方面和语音识别引擎之间以及另一方面和声学处理单元2516之间的依赖性可以透过使用帧来避免,例如,持续时间大约为10-12毫秒(尽管本发明并不限于此实施例中)。例如,当应用程式2502正为帧n使用聚类状态分数时,声学处理单元2516可以为帧n+1执行一个聚类状态分数。
更具体地,一语音识别运作需要两个不连续的操作:计分和搜寻。如上所述,该计分运作对应于一个特定帧且涉及一个有特征向量的聚类状态的高斯机率分布向量间的比较。在一实施例中,软件堆迭2500可以被配置使得这两种运作并行发生。特别是,如图22所示,语音识别引擎2214可以包括搜寻线程2250和距离线程2260。距离线程2260可以管理在声学处理单元2220完成的距离计算且搜寻线程2250可以使用距离计算的结果来决定接哪个声音要被接收(例如,藉由搜寻一聚类状态分数库以确定最佳匹配)。藉由设定距离线程2260为一高于搜寻线程2250的优先次序,距离线程2260可以在声学处理单元2220中执行需要启动该得分运作的操作。距离线程2260然后可以进入休眠状态。虽然在休眠中,搜寻线程2250可以激活并可以查询使用最后的距离运作的结果。由于时间的长短需要完成一距离计算是相对可预测的,距离线程可以进入一预定时间量的休眠状态。在替代实施例中,距离线程2260可以进入不确定的休眠状态并从声学处理单元2220的一中断状态可以改为用来唤醒距离线程2260。这样,声学处理单元2220可以用来为N+1帧计算距离分数,而CPU2210使用先前为帧n计算的分数执行搜寻运作。
对于任何给定的帧,该搜寻可以按照距离计算如图26所示。特别是,当帧i的搜寻被处理时,该对于帧(i+1)的距离计算可以执行。因此,如图26所示,由该声学处理单元所进行的距离计算,可同时与由CPU执行的搜寻函数进行。在一实施例中,一个DCA库的呼叫次序被配置为实现这种运作。在一进一步的实施例中,该通用DCA是被实施使搜寻计算和距离计算的并行性最大化。在一实施例中,通用DCA库的实现是使用由声学处理单元库所显示的声学处理单元。
图27是声学处理方法2700的一实施例示意图。该方法2700的步骤可以使用来执行,例如,声学处理系统2200,在图22中所示,并随着软件堆迭2500,在图中25所示。
在步骤2702中,该接收到的音频信号被分成帧。例如,图22中,语音识别引擎2214可以将一接收到的音频信号分成帧为,例如,10-12毫秒的长度。
在步骤2704中,一搜寻线程和一个距离计算线程被创建。例如,图22中,语音识别引擎2214可以创建搜寻线程2250和距离线程2260。
在步骤2706,一距离分数是使用声学处理单元来计算。例如,在图22中,在距离线程2260的方向上,声学处理单元2220的SSU2230可以计算位在对应一帧的一特征向量和一高斯机率分布向量之间的一距离分数。
在步骤2708,使用该为帧所计算出的分数执行一搜寻运作。例如,在图22中,搜寻线程2250可以使用在步骤2706计算的距离分数来搜寻不同的聚类状态以确定哪些声音被包括在帧中。
在步骤2710中,判定该帧是否是该音频信号的最后帧。如果是,方法2700结束。如果不是,方法2700前进到步骤2712。
在步骤2712中,同时与步骤2708的搜寻运作中,一为下一帧的距离分数计算使用声学处理单元。例如,图22中,声学处理单元2220可以被用于计算一个为一帧i+1的距离分数而同时该搜寻线程执行一为帧i的距离分数的搜寻操作。
7.示例性计算机系统
本发明的各个方面可以在软件、固件、硬件,或其组合中来实现。图28是本发明中示例性计算机系统2800的示意图,或其中部分,可以被实现为一计算机可读代码。例如,由图9的流程图900所示的方法,由图17的流程图1700所示的方法,由图21的流程图2100所示的方法,如图25中所示的软件堆迭2500,和/或由图27的流程图2700所示的方法皆能在系统2800中实现。本发明的各种实施例在本示例性计算机系统2800的方面进行了描述。在阅读本说明书之后,对于熟习该相关领域的技术人士如何使用其它计算机系统和/或计算机体系结构来实现本发明的实施例将是显而易见的。
应当指出的是本发明的各种实施例的模拟,合成和/或制造可以完成,部分地透过计算机可读代码的使用,包括通用的程式语言(例如C或C++),硬件描述语言(HDL)像,例如,Verilog硬件描述语言,VHSIC硬件描述语言(VHDL),Altera硬件描述语言(AHDL),或其他可用的程式和/或示意图撷取工具(如电路撷取工具)。该计算机可读代码可以布置在任何已知的计算机可用媒介包括一半导体,磁碟片,光碟片(如CD-ROM,DVD-ROM)。像这样,该代码可以在通信网络包括网际网路中进行传输。据了解,所完成的函数和/或由上述系统和技术提供的架构可以代表一于程式代码中体现的核心(例如,一个声学处理单元核心),并可以转化为硬件作为集成电路的产品一部分。
计算机系统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。这种元件的例子可以包括一程式匣和匣接口(像在视频游戏设备中),一可移除存储器晶片(如可消除程式化唯读存储器或可程式唯读存储器)以及相关的插槽,以及其它可移动存储单元2822和接口2820允许软件和数据从可移动存储单元2822被转移到计算机系统2800。
计算机系统2800还可以包括通讯接口2824。通讯接口2824允许软件和数据在计算机系统2800和外部元件之间传输。通讯接口2824可包括一数据机,一网络接口(如乙太网卡),一通讯端口,一PCMCIA(个人电脑记忆卡国际协会)插槽和卡或其他。软件和经由通讯接口2824传送的数据是可以是电子的,电磁的,光学的或其它能够被通讯接口2824接收的信号的信号形式。这些信号是经由一通讯路径2826提供给通讯接口2824。通讯路径2826携带信号,并可以使用电线或电缆,光纤,电话线,蜂窝电话链结,RF(射频)链结或其他通讯管道来实现。
在本文中,术语“计算机程式媒介”和“计算机可用媒介”通常指介值像是可移动存储单元2818,可移动存储单元2822,和安装在一硬碟驱动装置2812中的一硬碟。计算机程式媒介和计算机可用媒介还可以指存储器,如主存储器2808和次存储器2810,其中可以是记忆半导体(例如,动态随机存取存储器,等等)。这些计算机程式产品提供软件给计算机系统2800。
计算机程式(也称为计算机控制逻辑)被储存在主存储器2808和/或次存储器2810。计算机程式也可经由通讯接口2824被接收到。这样的计算机程式被执行时,使计算机系统2800能执行如本文所论述的本发明的实施例。特别地,计算机程式在被执行时,使处理器2804实现本发明的实施例中的过程,如由各图中所示方法中的步骤,包括图9的流程图900,图17的流程图1700,图21的流程图2100,图27的流程图2700,和或在图25所示的软件堆迭2500的函数可以在系统2800中实现,如上所述。因此,这样的计算机程式代表计算机系统2800的控制器。在本发明的实施例使用软件实现,该软件可被储存在一计算机程式产品中并加载到使用可移动存储驱动器2814,接口2820,硬碟驱动装置2812,或通讯接口2824的计算机系统2800。
本发明的实施例中也提到包括储存于任何计算机可用媒介中的软件的计算机程式产品。这些软件,当在一个或多个数据处理设备中执行时,使得一数据处理设备(s)如本文中所描述的进行运作。本发明的实施例使用在现在或将来已知的任何计算机可用或可读媒介。计算机可用媒介的实例包括,但不限于主储存元件(例如,任何类型的随机存取存储器),次储存元件(例如,硬碟,软碟,光碟唯读存储器,ZIP(拉炼)磁碟,磁带,磁性储存元件,光学储存元件,MEMS(微机电),奈米技术储存元件等),以及通讯媒介(例如,有线和无线通讯网络,区域网路,广域网,内联网等)。
8.结论
应当理解的是,详细说明部分而不是发明内容和摘要部分,意在被用来解释权利要求。发明内容和摘要部分可以阐明本发明的一个或多个但不是所有在本发明中发明人所设想的示例性实施例,并因此,并非旨在以任何方式限制本发明以及所附权利要求。
本发明的实施例以描述特定函数及其关系的实施例的函数构件为辅助进行了上述详细说明。这些函数构件的界限在此处为了描述的方便而被任意定义。替代的界限可以被定义只要特定函数及其关系在此处被适当地执行。
该特定实施例的先前描述将充分揭露本发明,使其他人可以藉由应用相关领域的技术范围内的知识,轻易地修改和/或适应于各种应用,例如具体的实施例,无需过多的实验,没有偏离本发明的通常概念。因此,这种调整和修改根据本文所呈现的教学和指导,意在所公开的实施例中的含义和范围内。本文中的措辞或术语可以理解为了描述的目的而不是限制,使得本说明书的术语或措辞应当由相关技术人士根据所述教学和指导来解释。
本发明的广度和范围不应由任何上述示例性实施例所限制,而是应当仅根据所要求的权利范围及其等同物来限定。

Claims (20)

1.一种语音辨识系统,包括:
处理单元,用以将一接收到的音频信号分割成具有各自的帧向量的连续帧;
声学处理单元(APU),包含:
局部非易失性存储器,用以储存多个聚类状态,
记忆缓冲器,耦合到该存储器,其中,该声学处理单元用以将至少一储存于该存储器中的高斯机率分布向量加载至该记忆缓冲器,以及
计分单元,用以同时比较一加载至该记忆缓冲器的高斯机率分布向量的多个维度和一从该处理单元接收的帧向量的各别维度,并输出一距离分数;
聚类状态计分控制单元,其分割与所述接收到的音频信号相关联的时脉频率并将被分割的时脉频率提供至所述计分单元,其中所述计分单元以所述被分割的时脉频率运作且所述被分割的时脉频率大于与所述接收到的音频信号相关联的所述时脉频率;
其中,该声学处理单元使用一第一帧来执行一比较以生成该距离分数而该处理单元使用与一第二帧对应的另一距离分数来执行一搜寻以找到聚类状态分数匹配,该第二帧紧接着先前的该第一帧;以及
数据总线,用以耦合该处理单元和该声学处理单元。
2.根据权利要求1所述的语音辨识系统,其特征在于,该处理单元用以同时运行一搜寻线程和一距离计算线程。
3.根据权利要求2所述的语音辨识系统,其特征在于,该处理单元包括:
应用程式接口API模块,用以接收一来自该距离计算线程的指令并产生一个或多个相对应的指令由该声学处理单元接收。
4.根据权利要求3所述的语音辨识系统,其特征在于,该API模块包括:
通用DCA,用以接收一来自该距离计算线程的指令并输出实现接收到的该指令的指令库中的一个或多个函数。
5.根据权利要求4所述的语音辨识系统,该通用DCA至少指定:
(1)用以储存一声学模型的创建函数,一些在特征向量中的维度,以及一些在该声学模型中作为状态讯息的聚类状态;
(2)集合特征函数,用以储存一对应一接收到的帧识别的特征向量;
(3)计算分数函数,用以指定至少一聚类状态被计分为一帧;
(4)填充分数函数,用以储存聚类状态分数在一缓冲器中;
(5)集合特征矩阵函数,用以储存一特征向量转换矩阵和适应与一特定发声器的比对。
6.根据权利要求5所述的语音辨识系统,其特征在于,该API模块进一步包含一APU库,用以接收来自该通用DCA的参数以及输出与该声学处理单元相容的参数。
7.根据权利要求6所述的语音辨识系统,该APU库至少指定:
(1)集合声学模型函数,用以组成一声学模型来用于聚类状态计分;
(2)加载特征向量函数,用以加载一特征向量至该声学处理单元之中;
(3)分数聚类状态块函数,用以加载一聚类状态列表至该声学处理单元之中;
(4)分数范围函数,用以指定在一范围内的所有聚类状态都有被记分;
(5)读取聚类状态分数函数,用以读取聚类状态分数并储存该聚类状态分数于一目标缓冲器;
(6)检查分数准备状态函数,用以决定聚类状态分数是否准备好从该声学处理单元中被读取;
(7)读取分数长度函数,用以读取该声学处理单元中的一第一状态暂存器以决定一些可用的得分项;
(8)读取状态函数,用以读取该声学处理单元中的一第二状态暂存器以决定一读取操作的状态;
(9)读取组态函数,用以读取该声学处理单元中的一组态暂存器;以及
(10)写入组态函数,用以写入该组态暂存器。
8.根据权利要求6所述的语音辨识系统,其特征在于,该API模块进一步包含:
硬件抽象层(HAL),作为该APU库与该声学处理单元之间的接口。
9.一种声学处理方法,包括:
使用一处理单元将一接收到的音频信号分割成多个帧;
使用一声学处理单元(APU)去比较一与该多个帧中的一第一帧相关的特征向量和一高斯机率分布向量以产生一距离分数;
使用聚类状态计分控制单元分割与所述接收到的音频信号相关联的时脉频率,其中被分割的时脉频率大于与所述接收到的音频信号相关联的所述时脉频率,其中所述声学处理单元使用所述被分割的时脉频率以产生该距离分数;以及
在比较同时,使用该处理单元使用对应于从一声学处理单元(APU)所接收到的该多个帧中的一第二帧相关的特征向量的另一距离分数进行搜寻以找到聚类状态分数匹配,其中,该第二帧紧接着该第一帧,且其中,所述处理单元和该声学处理单元通过一数据总线被耦合。
10.根据权利要求9所述的声学处理方法,进一步包含:
创建一搜寻线程和一距离计算线程在该处理单元上。
11.根据权利要求10所述的声学处理方法,其特征在于,该距离计算线程通过一应用程式接口(API)控制该比较。
12.根据权利要求11所述的声学处理方法,其特征在于,该应用程式接口包含:
通用DCA;
APU库;以及
硬件抽象层(HAL)。
13.根据权利要求12所述的声学处理方法,该通用DCA至少指定:
(1)创建函数,用以储存一声学模型,于一特征向量中的一些维度,以及一些在该声学模型中作为状态资讯的聚类状态;
(2)集合特征函数,用以储存一对应一接收到的帧识别的特征向量;
(3)计算分数函数,用以指定至少一聚类状态被计分为一帧;
(4)填充分数函数,用以储存聚类状态分数在一缓冲器中;以及
(5)集合特征矩阵函数,用以储存一特征向量转换矩阵和适应与一特定发声器的比对。
14.根据权利要求12所述的声学处理方法,该APU库至少指定:
(1)集合声学模型函数,用以组成一声学模型来用于聚类状态计分;
(2)加载特征向量函数,用以加载一特征向量至该声学处理单元之中;
(3)分数聚类状态块函数,用以加载一聚类状态列表至该声学处理单元之中;
(4)分数范围函数,用以设定在一范围内的所有聚类状态都有被记分;
(5)读取聚类状态分数函数,用以读取聚类状态分数并储存该聚类状态分数于一目标缓冲器;
(6)检查分数准备状态函数,用以决定聚类状态分数是否准备好从该声学处理单元中被读取;
(7)读取分数长度函数,用以读取该声学处理单元中的一第一状态暂存器以决定一些可用的得分项;
(8)读取状态函数,用以读取该声学处理单元中的一第二状态暂存器以决定一读取操作的状态;
(9)读取组态函数,用以读取该声学处理单元中的一组态暂存器;以及
(10)写入组态函数,用以写入该组态暂存器。
15.一种用于执行声学处理的计算机系统,该计算机系统包含:
用于使用一处理单元将一接收到的音频信号分割成多个帧的模块;
用于输出一与该多个帧中的一第一帧相关的特征向量至一声学处理单元(APU)的模块,其中,该声学处理单元用以比较该第一帧和一高斯机率分布向量以产生一距离分数;
用于使用聚类状态计分控制单元分割与所述接收到的音频信号相关联的时脉频率的模块,其中被分割的时脉频率大于与所述接收到的音频信号相关联的所述时脉频率,其中所述声学处理单元使用所述被分割的时脉频率以产生该距离分数;以及
用于在该声学处理单元比较同时,使用该处理单元使用对应于与从该声学处理单元所接收到的该多个帧中的一第二帧相关的特征向量的另一距离分数进行搜寻以找到聚类状态分数匹配的模块,其中,该第二帧紧接着该第一帧,且其中,该处理单元和该声学处理单元通过一数据总线被耦合。
16.根据权利要求15所述的计算机系统,该计算机系统进一步包含:
用于创建一搜寻线程和一距离计算线程在该处理单元上的模块。
17.根据权利要求16所述的计算机系统,其特征在于,该距离计算线程通过一应用程式接口(API)控制该比较。
18.根据权利要求17所述的计算机系统,其特征在于,该应用程式接口包含:
DCA库;
APU库;以及
硬件抽象层(HAL)。
19.根据权利要求18所述的计算机系统,其特征在于,该DCA库至少指定:
(1)创建函数,用以储存一声学模型,于一特征向量中的一些维度,以及一些在该声学模型中作为状态资讯的聚类状态;
(2)集合特征函数,用以储存一对应一接收到的帧识别的特征向量;
(3)计算分数函数,用以指定至少一聚类状态被计分为一帧;
(4)填充分数函数,用以储存聚类状态分数在一缓冲器中;以及
(5)集合特征矩阵函数,用以储存一特征向量转换矩阵和适应与一特定发声器的比对。
20.根据权利要求18项所述的计算机系统,其特征在于,该APU库至少指定:
(1)集合声学模型函数,用以组成一声学模型来用于聚类状态计分;
(2)加载特征向量函数,用以加载一特征向量至该声学处理单元之中;
(3)分数聚类状态块函数,用以加载一聚类状态列表至该声学处理单元之中;
(4)分数范围函数,用以设定在一范围内的所有聚类状态都有被记分;
(5)读取聚类状态分数函数,用以读取聚类状态分数并储存该聚类状态分数于一目标缓冲器;
(6)检查分数准备状态函数,用以决定聚类状态分数是否准备好从该声学处理单元中被读取;
(7)读取分数长度函数,用以读取该声学处理单元中的一第一状态暂存器以决定一些可用的得分项;
(8)读取状态函数,用以读取该声学处理单元中的一第二状态暂存器以决定一读取操作的状态;
(9)读取组态函数,用以读取该声学处理单元中的一组态暂存器;以及
(10)写入组态函数,用以写入该组态暂存器。
CN201280070114.2A 2011-12-19 2012-12-18 声学处理单元接口 Active CN104137178B (zh)

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,124 US9785613B2 (en) 2011-12-19 2012-06-06 Acoustic processing unit interface for determining senone scores using a greater clock frequency than that corresponding to received audio
US13/490,124 2012-06-06
PCT/US2012/070329 WO2013096301A1 (en) 2011-12-19 2012-12-18 Acoustic processing unit interface

Publications (2)

Publication Number Publication Date
CN104137178A CN104137178A (zh) 2014-11-05
CN104137178B true CN104137178B (zh) 2018-01-19

Family

ID=48611061

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201280070070.3A Pending CN104126200A (zh) 2011-12-19 2012-12-14 声学处理单元
CN201280070114.2A Active CN104137178B (zh) 2011-12-19 2012-12-18 声学处理单元接口
CN201280070112.3A Pending CN104126165A (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
CN201280070112.3A Pending CN104126165A (zh) 2011-12-19 2012-12-18 算术逻辑单元架构

Country Status (6)

Country Link
US (3) US8924453B2 (zh)
EP (3) EP2795614A4 (zh)
JP (3) JP2015505993A (zh)
KR (3) KR20140106723A (zh)
CN (3) CN104126200A (zh)
WO (3) WO2013096124A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
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
DE102013206292A1 (de) * 2013-04-10 2014-10-16 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erstellen 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
CN112307986B (zh) * 2020-11-03 2022-02-08 华北电力大学 一种利用高斯梯度的负荷开关事件检测方法和系统

Family Cites Families (35)

* Cited by examiner, † Cited by third party
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 音声認識装置
CN1112269A (zh) * 1994-05-20 1995-11-22 北京超凡电子科技有限公司 基于汉语发音特点的hmm语音识别技术
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
CN1061451C (zh) * 1996-09-26 2001-01-31 财团法人工业技术研究院 隐藏式马可夫模型的中文词音识别方法
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
JP3932789B2 (ja) * 2000-09-20 2007-06-20 セイコーエプソン株式会社 Hmmの出力確率計算方法および音声認識装置
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
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
US7480615B2 (en) * 2004-01-20 2009-01-20 Microsoft Corporation Method of speech recognition using multimodal variational inference with switching state space models
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
WO2006075648A1 (ja) * 2005-01-17 2006-07-20 Nec Corporation 音声認識システム、音声認識方法及び音声認識プログラム
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 연세대학교 산학협력단 특징 벡터 선택 방법 및 장치, 그리고 이를 이용한 음악장르 분류 방법 및 장치
US8818802B2 (en) 2008-10-10 2014-08-26 Spansion Llc Real-time data pattern analysis system and method of operation thereof
WO2010042631A2 (en) 2008-10-10 2010-04-15 Fastow Richard M Real-time data pattern analysis system and method of operation thereof
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

Also Published As

Publication number Publication date
US8924453B2 (en) 2014-12-30
EP2795461A4 (en) 2015-08-12
CN104126200A (zh) 2014-10-29
EP2795614A4 (en) 2015-07-22
KR20140106723A (ko) 2014-09-03
JP6138148B2 (ja) 2017-05-31
EP2795615A1 (en) 2014-10-29
US20130158997A1 (en) 2013-06-20
JP2015501012A (ja) 2015-01-08
WO2013096301A1 (en) 2013-06-27
KR20140106724A (ko) 2014-09-03
CN104126165A (zh) 2014-10-29
KR102048893B1 (ko) 2019-11-26
US20130159371A1 (en) 2013-06-20
JP2015505993A (ja) 2015-02-26
JP2015501011A (ja) 2015-01-08
WO2013096124A1 (en) 2013-06-27
US9785613B2 (en) 2017-10-10
EP2795461A1 (en) 2014-10-29
WO2013096303A1 (en) 2013-06-27
US20130158996A1 (en) 2013-06-20
EP2795614A1 (en) 2014-10-29
KR20140107537A (ko) 2014-09-04
EP2795615A4 (en) 2016-01-13
CN104137178A (zh) 2014-11-05

Similar Documents

Publication Publication Date Title
CN104137178B (zh) 声学处理单元接口
US8131659B2 (en) Field-programmable gate array based accelerator system
US10949736B2 (en) Flexible neural network accelerator and methods therefor
JP7366274B2 (ja) ニューラル・ネットワークのための適応的探索方法および装置
WO2019177824A1 (en) Hardware accelerated neural network subgraphs
CN109003603A (zh) 语音识别方法及相关产品
CN107341146B (zh) 基于语义槽内部结构的可迁移口语语义解析系统及其实现方法
EP3234946A1 (en) System and method of automatic speech recognition using parallel processing for weighted finite state transducer-based speech decoding
CN109559734A (zh) 声学模型训练的加速方法和装置
CN106816147A (zh) 基于二值神经网络声学模型的语音识别系统
CN105229625B (zh) 用于语音识别的方法和声处理装置
CN105340005B (zh) 基于直方图获取有效hmm的预剪枝方案
US7080011B2 (en) Speech label accelerators and techniques for using same
Wang et al. Balancing memory-accessing and computing over sparse DNN accelerator via efficient data packaging
Stogiannos et al. A configurable logic based architecture for real-time continuous speech recognition using hidden Markov models
Kästner et al. Analysis of hardware implementations to accelerate convolutional and recurrent neuronal networks
US20230023859A1 (en) Methods and Apparatus for Accessing External Memory in a Neural Network Processing System
Li et al. 2D/3D FPGA array for brain process and numerical computation
JPH08248986A (ja) パターン認識方法
CN117612518A (zh) 一种基于fpga实现的养老服务机器人语音识别方法
CN116997910A (zh) 张量控制器架构
Li et al. 2D/3D FPGA Array for Brain Computer and Numerical Computation
Stölzle Speech Recognition

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: 20160323

Address after: American California

Applicant after: Cypress Semiconductor Corp.

Address before: American California

Applicant before: Spansion LLC N. D. Ges D. Staates

GR01 Patent grant
GR01 Patent grant