CN111402906B - 语音解码方法、装置、引擎及存储介质 - Google Patents
语音解码方法、装置、引擎及存储介质 Download PDFInfo
- Publication number
- CN111402906B CN111402906B CN202010155132.7A CN202010155132A CN111402906B CN 111402906 B CN111402906 B CN 111402906B CN 202010155132 A CN202010155132 A CN 202010155132A CN 111402906 B CN111402906 B CN 111402906B
- Authority
- CN
- China
- Prior art keywords
- decoding
- thread
- level
- channel
- voice
- 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
Links
Classifications
-
- 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
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种语音解码方法、装置、引擎及存储介质,所述方法应用于语音解码引擎,当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应;利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求。由此,通过多个线程级解码通道并行处理多个语音解码请求,请求多个线程级解码通道共用一个通用模型,实现了语音解码的线程级的并行处理,降低了硬件成本,提高了语音解码的并发能力和解码效率。
Description
技术领域
本发明涉及语音识别技术领域,尤其涉及一种语音解码方法、装置、引擎及存储介质。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
语音解码是语音识别的重要组成部分。当前,一般基于通用模型对语音流数据进行解码获得该语音流数据对应的文本。若需要实现并行处理提高语音解码效率,则只能在进程级别通过部署更多的通用模型来实现,但是通用模型体积大,如此大大提升了硬件成本。
发明内容
本发明提供一种语音解码方法、装置、引擎及存储介质,旨在创建多个解码通道共用一个通用模型,实现线程级别的并行处理,降低硬件成本,提高语音解码的并发能力和解码效率。
为实现上述目的,本发明提供一种语音解码方法,所述方法包括:
当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应;
利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求。
优选地,所述线程级解码通道包括通道解码单元、数据缓存区和回调接口单元;
所述利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求的步骤包括:
利用所述多个线程级解码通道的数据缓存区分别缓存所述多个语音解码请求中的语音流数据;
利用所述多个线程级解码通道的通道解码单元,分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果;
利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求。
优选地,所述利用所述多个线程级解码通道的数据缓存区分别缓存所述多个语音解码请求中的语音流数据,包括:
针对所述多个线程级解码通道中任一特定线程级解码通道,查看所述特定线程级解码通道的数据缓存区的数据状态;
若所述特定线程级解码通道的数据缓存区的数据状态是等待数据,则直接将所述特定线程级解码通道对应的语音流数据暂存在所述特定线程级解码通道的数据缓存区;
若所述特定线程级解码通道的数据缓存区的数据状态是有数据,则将所述特定线程级解码通道对应的语音流数据暂存在所述特定线程级解码通道的数据缓存区的末尾。
优选地,所述利用所述多个线程级解码通道的通道解码单元,分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果的步骤包括:
利用所述多个线程级解码通道的通道解码单元,分别调用通用模型;
基于所述通用模型,在各个所述通道解码单元中并行将所述语音流数据转换为特征向量集合,并将所述特征向量集合转换为解码结果。
优选地,所述线程级解码通道还包括状态控制单元,
所述方法还包括:
通过所述线程级解码通道的状态控制单元实时更新所述线程级解码通道的运行状态、所述数据缓存区的数据状态、以及所述回调接口单元的注册状态,以供根据所述运行状态、所述数据状态、所述注册状态执行相应的步骤;和/或
通过所述线程级解码通道的状态控制单元接收外部控制信号,并根据所述外部控制信号调整所述线程级解码通道的运行状态。
优选地,所述线程级解码通道包括回收单元;
所述利用所述多个线程级别的解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,并基于解码结果响应所述多个语音解码请求的步骤之后,还包括:
通过所述线程级解码通道的回收单元清空所述线程级解码通道的数据缓存区中的语音流数据,以供利用所述数据缓存区再次存放语音流数据;和/或
通过所述线程级解码通道的回收单元清空所述线程级解码通道的状态控制单元记录的状态信息,以供所述状态控制单元再次记录所述线程级解码通道的状态。
优选地,所述回调接口单元的注册状态为已注册或未注册;
所述利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求的步骤之前,还包括:
查看各个所述线程级解码通道的状态控制单元记录的所述线程级解码通道的回调接口的注册状态;
若所述线程级解码通道的回调接口单元的注册状态为已注册,则执行步骤:利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求;
若所述线程级解码通道的回调接口单元的注册状态为未注册,则通过所述线程级解码通道的回收单元清空所述数据缓存区的语音流数据,并清空所述状态控制单元更新的状态信息。
此外,为实现上述目的,本发明还提供一种语音解码装置,所述语音解码装置包括:
申请模块,用于当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应;
解码模块,用于利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求。
此外,为实现上述目的,本发明还提供一种语音解码引擎,所述语音解码引擎包括处理器,存储器以及存储在所述存储器中的语音解码程序,所述语音解码程序被所述处理器运行时,实现如上所述的语音解码方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有语音解码程序,所述语音解码程序被处理器运行时实现如上所述语音解码方法的步骤。
相比现有技术,本发明提供一种语音解码方法、装置、引擎及存储介质,所述方法应用于语音解码引擎,当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应;利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求。由此,通过多个线程级解码通道并行处理多个语音解码请求,请求多个线程级解码通道共用一个通用模型,实现了语音解码的线程级的并行处理,降低了硬件成本,提高了语音解码的并发能力和解码效率。
附图说明
图1是本发明各实施例涉及的语音解码引擎的硬件结构示意图;
图2是本发明语音解码引擎的组成示意图;
图3是本发明语音解码通道的组成示意图
图4是本发明语音解码方法第一实施例的流程示意图;
图5是本发明语音解码方法一实施例的语音流数据处理流程示意图;
图6是本发明语音解码装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例主要涉及的语音解码引擎是指能够实现网络连接的网络连接引擎,所述语音解码引擎可以是服务器、云平台等。
参照图1,图1是本发明各实施例涉及的语音解码引擎的硬件结构示意图。本发明实施例中,语音解码引擎可以包括处理器1001(例如中央处理器Central ProcessingUnit、CPU),通信总线1002,输入端口1003,输出端口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;输入端口1003用于数据输入;输出端口1004用于数据输出,存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种可读存储介质的存储器1005可以包括操作系统、网络通信模块、应用程序模块以及语音解码程序。在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的语音解码程序,并执行本发明实施例提供的语音解码方法。
进一步地,参照图2,图2是本发明语音解码引擎的组成示意图。解码引擎是语音识别技术的重要组成部分,解码引擎对接网络通讯协议,控制语音流数据和解码算法,返回解码结果,并且响应各种控制信号。从应用设备上来说,可以分为终端解码引擎(例如手持设备、嵌入式设备)、服务端解码引擎(例如云服务)等。根据不同的场景,往往需要针对性设计解码器,比如终端解码引擎只需要单路解码、降低功耗,云服务则需要尽可能多的多路并行、降低部署成本。
所述语音解码引擎包括通用模型和多个线程级解码通道。其中,所述通用模型是语音识别模型,包括声学模型、语言模型等。所述通用模型是由巨量数据训练而得的语音解码模型,所述通用模型可以作为垂直领域识别的模型训练基础,并结合领域数据进行迁移学习训练,以此获得高精度的通用模型。可以理解地,所述通用模型包括解码算法,所述解码算法可以是集束搜索算法、维比特算法等。通过梅尔频率倒谱系数(MelFrequencyCepstrumCoefficient,MFCC)、线性预测倒谱系数(LinearPredictiveCepstralCoefficient,LPCC)、线性预测分析(LinearPredictionCoefficients,LPC)等方法将所述音频流数据转换为语音特征向量集合,所述声学模型提供一个语音特征向量转换为某一个语义的概率;所述语言模型提供语义之间转移的概率,并最终获得解码结果。本实施例中,所述通用模型的训练过程与现有的语音解码模型的训练过程无异,此处不再赘述。
所述通用模型为所述多个解码通道提供支持,以供所述多个解码通道对语音流进行解码。继续参照图2,所述解码引擎包括多个线程级解码通道:线程级解码通道1、线程级解码通道2……线程级解码通道n。所述各个线程级解码通道可以并行处理语音流。每个线程级解码通道对应一个语音解码请求,由此可以为每一个语音解码请求提供及时、快速的响应。并且,在通用模型的基础上设置多个线程级解码通道,并不会造成通用模型的体积增大,与进程级别的并行处理相比,能大大降低硬件成本。一路并行使用一个线程级解码通道,线程级解码通道与线程级解码通道之间相互隔离,但使用同一个通用模型,如此一个进程可以包括n个线程级解码通道,即n路并行解码能力。由于线程级解码通道运行在线程级别,因此一个进程可以包括任意多路并行解码通道,与一个进程一路解码通路方法相比,除了能成倍地提升处理效率,还可以大大提升内存和显存使用效率。
进一步地,参照图3,图3是本发明语音解码通道的组成示意图。所述线程级解码通道包括数据缓存区、通道解码单元、回调接口单元以及状态控制单元。
所述数据缓存区用于存放语音流数据,以供所述通道解码单元读取;所述数据缓存区的缓存容量可以根据实际需要具体设置。
所述通道解码单元从所述数据缓存区提取并读取语音流数据,获取所述语音流数据后,调用所述通用模型对所述语音流数据进行解码,获得解码结果。一般地,所述解码结果是对应语音流数据的最优文本;
所述回调接口单元用于将所述解码结果返回至所述客户端;
所述状态控制单元用于实时更新所述数据缓存区、所述通道解码单元以及所述回调接口单元的状态;所述状态控制单元还用于影响外部控制信号,并根据所述外部控制信号调整通道运行状态。
进一步地,所述线程级解码通道还包括回收单元,所述回收单元用于清空数据缓存区、清除状态控制单元更新的状态信息,清空所述状态控制单元记录的语音流数据的数据格式信息。由此,所述线程级解码通道在完成一个任务后可以被再次使用。
本发明实施例提供了一种语音解码方法。
参照图4,图4是本发明语音解码方法第一实施例的流程示意图。
步骤S101:当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应;
所述语音解码引擎与客户端建立网络连接后,就可以接收所述客户端发送的语音解码请求。所述语音解码引擎包括多个用于解码的线程级解码通道,故可以同时与多个客户端建立网络连接,并接收对应的多个所述语音解码请求。
所述语音解码引擎与多个客户端建立网络连接,连接成功后,为每一个所述客户端申请对应的线程级解码通道。所述多个语音解码请求与所述多个线程级解码通道一一对应。
利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求
步骤S102:利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求。
所述线程级解码通道包括通道解码单元、数据缓存区和回调接口单元,所述通道解码单元、所述数据缓存区和所述回调接口单元协同运行,可以存放语音流数据,并对所述语音流数据进行解码获得解码结果,并将所述解码结果响应于语音解码请求。
具体地,所述步骤S102:利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求的步骤包括:
步骤S102a:利用所述多个线程级解码通道的数据缓存区分别缓存所述多个语音解码请求中的语音流数据;
所述数据缓存区用于缓存基于所述语音解码请求接收到的语音流数据,所述多个线程级解码通道的多个数据缓存区分别存放不同语音解码请求中的语音流数据。将对应于多个语音解码请求的多个语音流数据分别暂存在不同的数据缓存区,不同的语音流数据之间相互隔离,保证了语音流数据的完整性,使得所述语音流数据存储有序,不易丢失。
具体地,所述步骤S102a:利用所述多个线程级解码通道的数据缓存区分别缓存所述多个语音解码请求中的语音流数据的步骤包括:
步骤S102a1:针对所述多个线程级解码通道中任一特定线程级解码通道,查看所述特定线程级解码通道的数据缓存区的数据状态;
每个语音解码请求对应于一个特定的线程级解码通道,将与语音解码请求对应的特定的线程级解码通道标记为特定线程级解码通道。
将所述语音流数据存入所述特定线程级解码通道的数据缓存区时,需要先确定所述特定线程级解码通道的数据缓存区的数据状态,根据所述数据状态选择对应的语音流数据存放方式。
步骤S102a2:若所述特定线程级解码通道的数据缓存区的数据状态是等待数据,则直接将所述特定线程级解码通道对应的语音流数据暂存在所述特定线程级解码通道的数据缓存区;
本实施例中,若所述特定线程级解码通道的数据缓存区的数据状态是等待数据,则直接将所述特定线程级解码通道对应的语音流数据暂存在所述特定线程级解码通道的数据缓存区。
步骤S102a3:若所述特定线程级解码通道的数据缓存区的数据状态是有数据,则将所述特定线程级解码通道对应的语音流数据暂存在所述特定线程级解码通道的数据缓存区的末尾。
由此,可以由所述通道解码单元依次提取所述数据缓存区中的语音流数据,不会导致语音流数据的丢失,也不会在解码过程中遗漏未解码的语音流数据。
步骤S102b:利用所述多个线程级解码通道的通道解码单元,分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果;
本实施例中,所述通用模型为所述多个线程级解码通道提供支持,所述多个线程级解码通道利用所述通用模型对各自的语音流数据进行解码,获得解码结果。
具体地,所述步骤S102b包括:
步骤S102b1:利用所述多个线程级解码通道的通道解码单元,分别调用通用模型;
所述通道解码单元从所述数据缓存区提取到所述语音流数据后,则调用通用模型,由所述通用模型对所述语音流数据进行解码。
步骤S102b2:基于所述通用模型,在各个所述通道解码单元中并行将所述语音流数据转换为特征向量集合,并将所述特征向量集合转换为解码结果。
所述通用模型是语音识别模型,包括声学模型、语言模型等。所述通用模型是由巨量数据训练而得的语音解码模型,所述通用模型可以作为垂直领域识别的模型训练基础,并结合领域数据进行迁移学习训练,以此获得高精度的通用模型。所述通用模型包括解码算法,所述解码算法可以是集束搜索算法、维比特算法等。本实施例中,所述通用模型通过梅尔频率倒谱系数(MelFrequencyCepstrumCoefficient,MFCC)、线性预测倒谱系数(LinearPredictiveCepstralCoefficient,LPCC)、线性预测分析(LinearPredictionCoefficients,LPC)等方法将所述音频流数据转换为语音特征向量集合后,利用所述声学模型提供一个语音特征向量转换为某一个语义的概率;并利用所述语言模型提供语义之间转移的概率,最终获得解码结果。所述解码结果为文本数据。
本实施例中,可以基于维特比算法进行解码。维特比算法是一个通用的解码算法,是基于动态规划的求序列最短路径的方法。维特比算法是一种动态规划算法用于寻找最有可能产生观测事件序列的-维特比路径-隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中。本实施例中,基于所述语音流数据,用维特比算法获得最可能的隐含状态序列,将所述最可能的隐含状态序列标记为解码结果。一般地,所述解码结果是所述语音流数据对应的文本。此外,还可以基于beam search(集束搜索)算法对所述语音流数据进行解码。集束搜索是一种启发式图搜索算法,通常用在图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的结点。这样减少了空间消耗,并提高了时间效率。
步骤S102c:利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求。
成功与所述语音解码请求对应的客户端建立连接并获得对应的解码通道后,则注册回调接口单元,以供所述回调接口单元将所述解码结果返回至对应的客户端。
获得对应的所述通道解码单元和回调接口单元后,将对应的所述数据缓存区、所述通道解码单元以及所述回调接口单元初始化,以备用于接收所述语音解码请求对应的语音流,由所述通道解码单元对所述语音流进行解码,并通过所述回调接口单元将解码结果响应所述多个语音解码请求。
本实施例中,可以同时或先后与多个客户端建立网络连接。在建立网络连接后,通过与所述客户端确定的通讯协议,实时接收所述客户端上传的语音流数据;其中,所述通信协议可以是TCP(Transmission Control Protocol传输控制协议)、HTTP(HyperTextTransfer Protocol,超文本传输协议)、WebSocket(基于TCP的双工通信协议)、MRCP(MediaResource Control Protocol,媒体资源控制协议)等。所述客户端包括网页、话筒以及移动终端等。
每个所述客户端对应一个解码通道,各个解码通道之间相互隔离,各自进行语音解码流程,各个解码通道之间的解码流程相互不干扰。例如三个语音解码请求分别来自于三个客户端:客户端A,客户端B以及客户端C,则对应申请三个解码通道:解码通道A、解码通道B,解码通道C。可以理解地,若所述语音解码请求的数量,也即对应的客户端的数量,超出了预设解码通道数量的最大值,则根据排队规则,将超出的语音解码请求加入排队序列,并将所述排队序列中的语音解码请求标记为排队语音解码请求,当有一个或多个解码通道完成当前的语音解码任务后再接入对应数量的一个或多个所述排队语音解码请求。确定所述解码通道后,则将所述解码通道中的通道解码单元初始化,并注册回调接口单元,以供通过所述回调接口单元返回对应的解码结果。
进一步地,所述线程级解码通道还包括状态控制单元,所述状态控制单元用于实时更新所述数据缓存区、所述通道解码单元以及所述回调接口单元的状态;所述状态控制单元还用于影响外部控制信号,并根据所述外部控制信号调整通道运行状态。
所述方法还包括:
步骤S200:通过所述线程级解码通道的状态控制单元实时记录所述线程级解码通道的运行状态、所述数据缓存区的数据状态、以及所述回调接口单元的注册状态,以供根据所述运行状态、所述数据状态、所述注册状态执行相应的步骤;
可以理解地,随着所述语音解码引擎对所述语音流数据的处理进程,所述语音解码引擎中解码通道的运行状态、所述数据缓存区的数据状态、以及所述回调接口单元的注册状态会随着改变。为了更好地监控语音解码流程,本实施例通过所述状态控制单元实时更新所述运行状态、所述数据状态、所述注册状态,以供根据所述运行状态、所述数据状态、所述注册状态执行相应的步骤。其中,所述运行状态包括运行中和停止运行;所述数据状态包括有时间、等待数据和接收结束传输数据;所述注册状态包括已注册和未注册。
步骤S300:通过所述线程级解码通道的状态控制单元接收外部控制信号,并根据所述外部控制信号调整所述线程级解码通道的运行状态。
进一步地,所述线程级解码通道的状态控制单元还可以接收外部控制信号,所述外部控制信号由发送所述语音解码请求的客户端发送,所述外部控制信号包括正常数据流信号、网络连接错误信号,其中所述正常数据流信号包括开始、暂停、结束等。若所述外部控制信号为开始,则将所述线程级解码通道的运行状态更新为运行中,若所述外部控制信号为开始,则将所述线程级解码通道的运行状态更新为停止运行。
进一步地,所述线程级解码通道包括回收单元;所述回收单元用于清空所述线程级解码通道的数据缓存区中的语音流数据,以供利用所述数据缓存区再次存放语音流数据。所述回收单元还用于清空所述线程级解码通道的状态控制单元记录的状态信息,以供所述状态控制单元再次更新所述线程级解码通道的状态。
进一步地,所述利用所述多个线程级别的解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,并基于解码结果响应所述多个语音解码请求的步骤之后,还包括:
步骤S2011a:通过所述线程级解码通道的回收单元清空所述线程级解码通道的数据缓存区中的语音流数据,以供利用所述数据缓存区再次存放语音流数据;
当对所述语音流数据执行解码流程的过程中,若由于网络连接中断、接收到停止的外部控制指令等时,可能会有存放在所述数据缓存区中的部分或全部语音流数据还未被提取,因而依然存放在所述数据缓存区。此时,需要通过所述回收单元清空所述线程级解码通道的数据缓存区中的语音流数据,由此,当该线程级解码通道需要再次执行语音解码流程时,可以利用所述数据缓存区再次存放语音流数据。
步骤S2011b:通过所述线程级解码通道的回收单元清空所述线程级解码通道的状态控制单元记录的状态信息,以供所述状态控制单元再次记录所述线程级解码通道的状态。
所述线程级解码通道在进行语音解码的过程中,需要由所述线程级解码通道的回收单元清空所述线程级解码通道的状态控制单元记录所述线程级解码通道、数据缓存区以及回调接口单元的状态信息。可以理解地,当一个语音解码的过程结束后,需要清空所述线程级解码通道的状态控制单元记录的状态信息,以供所述状态控制单元再次记录所述线程级解码通道的状态。
进一步地,当所述线程级解码通道接收到语音流数据时,通过所述状态控制单元记录更新所述语音流数据的数据格式信息,所述数据格式信息包括数据流格式、数据流采样率、数据流编码等。当对应的语音解码的过程结束后,通过所述回收单元清空所述状态控制单元更的所述语音流数据的数据格式信息。由此,可以节约所述语音解码引擎的磁盘空间。
进一步地,所述回调接口单元的注册状态为已注册或未注册;若与语音解码请求对应的客户端注册回调接口,则由状态控制单元将对应的回调接口状态更新为已注册;否则,所述注册状态为未注册。
所述步骤S102c:利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求的步骤之前,还包括:
步骤S102c0:查看各个所述线程级解码通道的状态控制单元记录的所述线程级解码通道的回调接口的注册状态;
若所述线程级解码通道的回调接口单元的注册状态为已注册,则执行步骤:利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求;
若所述线程级解码通道的回调接口单元的注册状态为未注册,则通过所述线程级解码通道的回收单元清空所述数据缓存区的语音流数据,并清空所述状态控制单元更新的状态信息。
可以理解地,若所述注册状态为已注册,则可以直接通过多个所述已注册的回调接口单元将所述解码结果响应于所述多个语音解码请求对应的多个客户端。若所述注册状态为未注册,则说明没有合法的回调接口单元,需要通过所述线程级解码通道的回收单元清空所述数据缓存区的语音流数据,并清空所述状态控制单元更新的状态信息。
参考图5,图5是本发明一实施例的语音流数据处理流程示意图,所述语音流处理流程示意图以特定的一个线程级解码通道为例,示意说明本发明语音解码方法的整体流程。
如图5所示,首先接收语音解码请求,申请线程级解码通道,初始化解码单元,注册回调接口单元;通过状态控制单元将所述线程级解码通道的运行状态为更新为“运行中”,将所述回调接口单元的状态更新为“已注册”,将所述数据缓存区的状态更新为“等待数据”。此外,还可以通过所述状态控制单元更新所述语音流数据的数据格式信息,所述数据格式信息包括数据流格式、数据流采样率、数据流编码等。
然后,通过通讯协议将所述语音流数据发送至线程级解码通道,所述线程级解码通道将所述语音流数据暂存在数据缓存区中;如果数据缓存区已有未解码数据则追加在缓存区末尾,通过状态控制单元将所述数据缓存区的状态更新为“有数据”。
进一步地,通过所述通道解码单元提取所述数据缓存区中存放的语音流数据,清空所述数据缓存区;通过状态控制单元将数据状态更新为“等待数据”;对所述语音流数据进行解码,生成解码结果。
获得所述解码结果后,查看回调接口单元的注册状态:若所述注册状态为未注册,则通过回收单元清空所述线程级解码通道的通道状态控制单元记录的状态信息。
反之,若所述注册状态为已注册,则通过回调接口返回解码结果;
进一步地,判断有无结束数据流信号,所述结束数据流传输信号可以是外部控制信号,若无结束数据流信号则执行步骤:通过通讯协议将所述语音流数据发送至线程级解码通道,所述线程级解码通道将所述语音流数据暂存在数据缓存区中;如果数据缓存区已有未解码数据则追加在缓存区末尾,通过状态控制单元将所述数据缓存区的状态更新为“有数据”。
若有结束数据流信号,则通过控制单元更新数据状态为“结束传送数据”,并解码单元读取数据缓存区所有数据,获得解码结果;
然后查看回调接口的注册状态,若所述注册状态为已注册,则通过回调接口单元返回解码结果,通过状态控制单元架构线程级解码通道的运行状态更新为“停止运行”;若所述注册状态为未注册,则通过回收单元清空所述线程级解码通道的通道状态控制单元记录的状态信息。
本实施例通过上述方案,当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应;利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求。由此,通过多个线程级解码通道并行处理多个语音解码请求,请求多个线程级解码通道共用一个通用模型,实现了语音解码的线程级的并行处理,降低了硬件成本,提高了语音解码的并发能力和解码效率。
此外,本实施例还提供一种语音解码装置。参照图6,图6为本发明语音解码装置第一实施例的功能模块示意图。
本实施例中,所述语音解码装置为虚拟装置,存储于图1所示的语音解码引擎的存储器1005中,以实现语音解码程序的所有功能:用于当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应;用于利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求。
具体地,所述语音解码装置包括:
申请模块10,用于当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应;
解码模块20,用于利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求。
进一步地,所述解码模块包括:
缓存单元,用于利用所述多个线程级解码通道的数据缓存区分别缓存所述多个语音解码请求中的语音流数据;
调用单元,用于利用所述多个线程级解码通道的通道解码单元,分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果;
响应单元,用于利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求。
进一步地,所述响应单元包括:
查看子单元,用于针对所述多个线程级解码通道中任一特定线程级解码通道,查看所述特定线程级解码通道的数据缓存区的数据状态;
第一暂存子单元,用于若所述特定线程级解码通道的数据缓存区的数据状态是等待数据,则直接将所述特定线程级解码通道对应的语音流数据暂存在所述特定线程级解码通道的数据缓存区;
第二暂存子单元,用于若所述特定线程级解码通道的数据缓存区的数据状态是有数据,则将所述特定线程级解码通道对应的语音流数据暂存在所述特定线程级解码通道的数据缓存区的末尾。
进一步地,所述调用单元包括:
调用子单元,用于利用所述多个线程级解码通道的通道解码单元,分别调用通用模型;
解码子单元,用于基于所述通用模型,在各个所述通道解码单元中并行将所述语音流数据转换为特征向量集合,并将所述特征向量集合转换为解码结果。
进一步地,所述语音解码装置还包括:
更新模块,用于通过所述线程级解码通道的状态控制单元实时更新所述线程级解码通道的运行状态、所述数据缓存区的数据状态、以及所述回调接口单元的注册状态,以供根据所述运行状态、所述数据状态、所述注册状态执行相应的步骤;和/或
控制模块,用于通过所述线程级解码通道的状态控制单元接收外部控制信号,并根据所述外部控制信号调整所述线程级解码通道的运行状态。
进一步地,所述解码模块还包括:
第一清空单元,用于通过所述线程级解码通道的回收单元清空所述线程级解码通道的数据缓存区中的语音流数据,以供利用所述数据缓存区再次存放语音流数据;和/或
第二清空单元,用于通过所述线程级解码通道的回收单元清空所述线程级解码通道的状态控制单元记录的状态信息,以供所述状态控制单元再次记录所述线程级解码通道的状态。
进一步地,所述响应单元还包括:
查看子单元,用于查看各个所述线程级解码通道的状态控制单元记录的所述线程级解码通道的回调接口的注册状态;
执行子单元,用于若所述线程级解码通道的回调接口单元的注册状态为已注册,则执行步骤:利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求;
清空子单元,用于若所述线程级解码通道的回调接口单元的注册状态为未注册,则通过所述线程级解码通道的回收单元清空所述数据缓存区的语音流数据,并清空所述状态控制单元更新的状态信息。
此外,本发明实施例还提供一种计算机存储介质,所述计算机存储介质上存储有语音解码程序,所述语音解码程序被处理器运行时实现如上所述语音解码方法的步骤,此处不再赘述。
相比现有技术,本发明提出的一种语音解码方法、装置、引擎及存储介质,所述方法应用于语音解码引擎,当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应;利用所述多个线程级解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,并基于所述解码结果响应所述多个语音解码请求。由此,通过多个线程级解码通道并行处理多个语音解码请求,请求多个线程级解码通道共用一个通用模型,实现了语音解码的线程级的并行处理,降低了硬件成本,提高了语音解码的并发能力和解码效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种语音解码方法,其特征在于,所述方法应用于语音解码引擎,包括:
当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应,其中,所述线程级解码通道包括通道解码单元、数据缓存区和回调接口单元;
利用所述多个线程级解码通道的数据缓存区分别缓存所述多个语音解码请求中的语音流数据;
利用所述多个线程级解码通道的通道解码单元,分别调用同一个通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,其中,各所述通用模型用于多个线程级解码通道的并行使用;
利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求。
2.根据权利要求1所述的方法,其特征在于,所述利用所述多个线程级解码通道的数据缓存区分别缓存所述多个语音解码请求中的语音流数据,包括:
针对所述多个线程级解码通道中任一特定线程级解码通道,查看所述特定线程级解码通道的数据缓存区的数据状态;
若所述特定线程级解码通道的数据缓存区的数据状态是等待数据,则直接将所述特定线程级解码通道对应的语音流数据暂存在所述特定线程级解码通道的数据缓存区;
若所述特定线程级解码通道的数据缓存区的数据状态是有数据,则将所述特定线程级解码通道对应的语音流数据暂存在所述特定线程级解码通道的数据缓存区的末尾。
3.根据权利要求1所述的方法,其特征在于,所述利用所述多个线程级解码通道的通道解码单元,分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果的步骤包括:
利用所述多个线程级解码通道的通道解码单元,分别调用通用模型;
基于所述通用模型,在各个所述通道解码单元中并行将所述语音流数据转换为特征向量集合,并将所述特征向量集合转换为解码结果。
4.根据权利要求1所述的方法,其特征在于,所述线程级解码通道还包括状态控制单元,
所述方法还包括:
通过所述线程级解码通道的状态控制单元实时更新所述线程级解码通道的运行状态、所述数据缓存区的数据状态、以及所述回调接口单元的注册状态,以供根据所述运行状态、所述数据状态、所述注册状态执行相应的步骤;和/或
通过所述线程级解码通道的状态控制单元接收外部控制信号,并根据所述外部控制信号调整所述线程级解码通道的运行状态。
5.根据权利要求1所述的方法,其特征在于,所述线程级解码通道包括回收单元;
所述利用所述多个线程级别的解码通道分别调用通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,并基于解码结果响应所述多个语音解码请求的步骤之后,还包括:
通过所述线程级解码通道的回收单元清空所述线程级解码通道的数据缓存区中的语音流数据,以供利用所述数据缓存区再次存放语音流数据;和/或
通过所述线程级解码通道的回收单元清空所述线程级解码通道的状态控制单元更新的状态信息,以供所述状态控制单元再次更新所述线程级解码通道的状态。
6.根据权利要求1所述的方法,其特征在于,所述回调接口单元的注册状态为已注册或未注册;
所述利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求的步骤之前,还包括:
查看各个所述线程级解码通道的状态控制单元记录的所述线程级解码通道的回调接口的注册状态;
若所述线程级解码通道的回调接口单元的注册状态为已注册,则执行步骤:利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求;
若所述线程级解码通道的回调接口单元的注册状态为未注册,则通过所述线程级解码通道的回收单元清空所述数据缓存区的语音流数据,并清空所述状态控制单元更新的状态信息。
7.一种语音解码装置,其特征在于,所述语音解码装置包括:
申请模块,用于当接收到多个语音解码请求时,申请多个线程级解码通道,所述多个语音解码请求与所述多个线程级解码通道一一对应,其中,所述线程级解码通道包括通道解码单元、数据缓存区和回调接口单元;
解码模块,用于利用所述多个线程级解码通道的数据缓存区分别缓存所述多个语音解码请求中的语音流数据;利用所述多个线程级解码通道的通道解码单元,分别调用同一个通用模型,对所述多个语音解码请求中的语音流数据进行并行解码处理,获得解码结果,其中,各所述通用模型用于多个线程级解码通道的并行使用;利用所述多个线程级解码通道的回调接口单元基于所述解码结果分别响应所述多个语音解码请求。
8.一种语音解码引擎,其特征在于,所述语音解码引擎包括处理器,存储器以及存储在所述存储器中的语音解码程序,所述语音解码程序被所述处理器运行时,实现如权利要求1-7中任一项所述的语音解码方法的步骤。
9.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有语音解码程序,所述语音解码程序被处理器运行时实现如权利要求1-7中任一项所述语音解码方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010155132.7A CN111402906B (zh) | 2020-03-06 | 2020-03-06 | 语音解码方法、装置、引擎及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010155132.7A CN111402906B (zh) | 2020-03-06 | 2020-03-06 | 语音解码方法、装置、引擎及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111402906A CN111402906A (zh) | 2020-07-10 |
| CN111402906B true CN111402906B (zh) | 2024-05-14 |
Family
ID=71430610
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010155132.7A Active CN111402906B (zh) | 2020-03-06 | 2020-03-06 | 语音解码方法、装置、引擎及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111402906B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112822183B (zh) * | 2020-12-30 | 2023-08-22 | 北京捷通华声科技股份有限公司 | 语音处理的方法、装置、计算机可读存储介质和处理器 |
| CN118034712A (zh) * | 2024-02-19 | 2024-05-14 | 上海算法创新研究院 | 一种模型应用部署系统及方法 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2000026902A1 (en) * | 1998-11-04 | 2000-05-11 | Syvox Corporation | Apparatus and method for improved memory and resource management in a single-user or multi-user speech recognition system |
| CN1486044A (zh) * | 2002-09-28 | 2004-03-31 | ��Ϊ��������˾ | Ip语音网络的多通道编解码任务调度方法 |
| CN101281749A (zh) * | 2008-05-22 | 2008-10-08 | 上海交通大学 | 可分级的语音和乐音联合编码装置和解码装置 |
| CN102177542A (zh) * | 2008-10-10 | 2011-09-07 | 艾利森电话股份有限公司 | 能量保留多通道音频编码 |
| CN104683860A (zh) * | 2015-02-02 | 2015-06-03 | 北京神州天脉网络计算机有限公司 | 一种音视频多路并发解码加速卡及其解码加速方法 |
| CN107710323A (zh) * | 2016-01-22 | 2018-02-16 | 弗劳恩霍夫应用研究促进协会 | 使用频谱域重新取样来编码或解码音频多通道信号的装置及方法 |
| CN110570838A (zh) * | 2019-08-02 | 2019-12-13 | 北京葡萄智学科技有限公司 | 语音流处理方法和装置 |
| CN110689876A (zh) * | 2019-10-14 | 2020-01-14 | 腾讯科技(深圳)有限公司 | 语音识别方法、装置、电子设备及存储介质 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8515052B2 (en) * | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
| CN101739242B (zh) * | 2009-11-27 | 2013-07-31 | 深圳中微电科技有限公司 | 一种流数据处理方法及流处理器 |
| US11443227B2 (en) * | 2018-03-30 | 2022-09-13 | International Business Machines Corporation | System and method for cognitive multilingual speech training and recognition |
-
2020
- 2020-03-06 CN CN202010155132.7A patent/CN111402906B/zh active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2000026902A1 (en) * | 1998-11-04 | 2000-05-11 | Syvox Corporation | Apparatus and method for improved memory and resource management in a single-user or multi-user speech recognition system |
| CN1486044A (zh) * | 2002-09-28 | 2004-03-31 | ��Ϊ��������˾ | Ip语音网络的多通道编解码任务调度方法 |
| CN101281749A (zh) * | 2008-05-22 | 2008-10-08 | 上海交通大学 | 可分级的语音和乐音联合编码装置和解码装置 |
| CN102177542A (zh) * | 2008-10-10 | 2011-09-07 | 艾利森电话股份有限公司 | 能量保留多通道音频编码 |
| CN104683860A (zh) * | 2015-02-02 | 2015-06-03 | 北京神州天脉网络计算机有限公司 | 一种音视频多路并发解码加速卡及其解码加速方法 |
| CN107710323A (zh) * | 2016-01-22 | 2018-02-16 | 弗劳恩霍夫应用研究促进协会 | 使用频谱域重新取样来编码或解码音频多通道信号的装置及方法 |
| CN110570838A (zh) * | 2019-08-02 | 2019-12-13 | 北京葡萄智学科技有限公司 | 语音流处理方法和装置 |
| CN110689876A (zh) * | 2019-10-14 | 2020-01-14 | 腾讯科技(深圳)有限公司 | 语音识别方法、装置、电子设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111402906A (zh) | 2020-07-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12223963B2 (en) | Performing speech recognition using a local language context including a set of words with descriptions in terms of components smaller than the words | |
| EP2932501B1 (en) | Speech model retrieval in distributed speech recognition systems | |
| CN101341532B (zh) | 通过标记共享话音应用处理 | |
| US7003463B1 (en) | System and method for providing network coordinated conversational services | |
| US11562735B1 (en) | Multi-modal spoken language understanding systems | |
| CN110995943B (zh) | 多用户流式语音识别方法、系统、设备及介质 | |
| CN110942764B (zh) | 一种流式语音识别方法 | |
| CN110956955A (zh) | 一种语音交互的方法和装置 | |
| CN118155638B (zh) | 基于大语言模型的语音生成和理解系统、方法和电子设备 | |
| CN111402906B (zh) | 语音解码方法、装置、引擎及存储介质 | |
| KR102740499B1 (ko) | 텍스트 에코 제거 | |
| KR102365611B1 (ko) | 음성인식을 이용한 회의 관리 시스템 | |
| Lojka et al. | Multi-thread parallel speech recognition for mobile applications | |
| US20170140751A1 (en) | Method and device of speech recognition | |
| CN120544576A (zh) | 语音对话方法、系统、电子设备、存储介质及程序产品 | |
| CN108986792B (zh) | 用于语音对话平台的语音识别模型的训练调度方法及系统 | |
| CN111414748A (zh) | 话务数据处理方法及装置 | |
| CN112466283B (zh) | 一种协同软件语音识别系统 | |
| CN115394300A (zh) | 语音交互方法、语音交互装置、车辆和可读存储介质 | |
| CN119864024B (zh) | 一种语音的识别方法、装置、设备和存储介质 | |
| CN118471229A (zh) | 一种音频转文字方法、装置、设备、存储介质及产品 | |
| CN121480585A (zh) | 基于硬件适配的数据处理方法、装置、设备、介质及产品 | |
| CN117275481A (zh) | 关键词识别方法、设备及计算机可读存储介质 | |
| CN118471208A (zh) | 语义解析方法、装置和可读存储介质 | |
| CN113674744A (zh) | 语音转写方法、装置、拾音转写设备与存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |