CN111968636B - 语音请求文本的处理方法及计算机存储介质 - Google Patents

语音请求文本的处理方法及计算机存储介质 Download PDF

Info

Publication number
CN111968636B
CN111968636B CN202010797705.6A CN202010797705A CN111968636B CN 111968636 B CN111968636 B CN 111968636B CN 202010797705 A CN202010797705 A CN 202010797705A CN 111968636 B CN111968636 B CN 111968636B
Authority
CN
China
Prior art keywords
voice
request text
result
background
processing
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
CN202010797705.6A
Other languages
English (en)
Other versions
CN111968636A (zh
Inventor
黄海荣
李林峰
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.)
Ecarx Hubei Tech Co Ltd
Original Assignee
Hubei Ecarx Technology Co Ltd
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 Hubei Ecarx Technology Co Ltd filed Critical Hubei Ecarx Technology Co Ltd
Priority to CN202010797705.6A priority Critical patent/CN111968636B/zh
Publication of CN111968636A publication Critical patent/CN111968636A/zh
Priority to PCT/CN2021/103052 priority patent/WO2022033213A1/zh
Application granted granted Critical
Publication of CN111968636B publication Critical patent/CN111968636B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3343Query execution using phonetics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/909Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • 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/1822Parsing for meaning understanding
    • 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/26Speech to text 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/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Acoustics & Sound (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Library & Information Science (AREA)
  • Telephonic Communication Services (AREA)
  • Machine Translation (AREA)

Abstract

本发明提供了一种语音请求文本的处理方法及计算机存储介质。该方法包括:将语音请求文本分别发送至多个后台微服务;各所述后台微服务根据自身的处理规则对所述语音请求文本中的信息进行处理得到各自的语音处理结果;对各所述语音处理结果进行筛选得到语音筛选结果,并输出所述语音筛选结果。通过多个后台微服务根据自身的处理规则对语音请求文本中的信息进行处理得到各自的语音处理结果,通过将多个后台微服务独立部署,不仅实现了多个功能之间的解耦,也利于实现各个后台微服务的功能的单独弹性扩展,使各个后台微服的部署更加灵活简单。

Description

语音请求文本的处理方法及计算机存储介质
技术领域
本发明涉及车载信息娱乐产品语音交互技术领域,特别是涉及一种语音请求文本的处理方法及计算机存储介质。
背景技术
语音请求文本处理功能是车载信息娱乐产品的核心功能。现有的车载信息娱乐产品中,采用一个后台服务器实现语音请求文本的各个功能的处理。具体地,例如,将后台服务器的处理功能划分为多个单元,如规则匹配单元、分类单元和基于神经网络的命名实体识别单元。规则匹配单元可以采用传统的语句匹配方法(如类似字典、句式、正则、语法树等匹配方式)寻找语音请求文本中的意图和词槽。分类单元可以基于神经网络的意图识别,预先训练一个基于神经网络的分类器,识别语音请求文本的意图。基于神经网络的命名实体识别单元可以基于神经网络的命名实体识别,推理识别出语音请求文本中的词槽。然后,该后台服务将意图和词槽进行组合以及过滤得到意图和词槽相匹配的组合。
具体地,例如,若意图为“播放音乐”,词槽为“歌手”、“歌名”以及“专辑”等,则意图和词槽匹配。若意图为“播放音乐”,词槽为“城市名称”或者“餐厅类型”等,则意图和词槽不匹配,需要滤除。但是,将一个后台服务器的处理功能划分为多个单元以实现上述各个功能不仅导致了各个功能单元之间的紧耦合、并发性能低等缺点,也不利于对某一些功能单元做进一步的扩展。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的语音请求文本的处理方法及计算机存储介质。
本发明的一个目的是要提供一种提高各个后台微服务的单独弹性扩展的语音请求文本的处理方法。
本发明的一个进一步的目的是提高语音请求文本的处理效率。
根据本发明的一个方面,本发明提供了一种语音请求文本的处理方法,包括:
将语音请求文本分别发送至多个后台微服务;
各所述后台微服务根据自身的处理规则对所述语音请求文本中的信息进行处理得到各自的语音处理结果;
对各所述语音处理结果进行筛选得到语音筛选结果,并输出所述语音筛选结果。
可选地,所述对各所述语音处理结果进行筛选得到语音筛选结果包括:
对各所述语音处理结果进行组合得到语音组合结果;
对所述语音组合结果进行筛选得到语音筛选结果。
可选地,所述多个后台微服务包括第一后台微服务和第二后台微服务;
所述各所述后台微服务根据自身的处理规则对所述语音请求文本中的信息进行处理得到各自的语音处理结果包括:
所述第一后台微服务和所述第二后台微服务中的一个对所述语音请求文本中的意图进行处理得到所述语音请求文本中的意图;
所述第一后台微服务和所述第二后台微服务中的另一个对所述语音请求文本中的词槽进行处理得到所述语音请求文本中的词槽。
可选地,对各所述语音处理结果进行组合得到语音组合结果包括:将所述第一后台微服务和所述第二后台微服务其中之一处理的各所述词槽划分为一组得到第一词槽组;
将所述第一后台微服务和所述第二后台微服务其中之一处理的各所述意图分别与所述第一词槽组进行组合得到各个请求作为第一组合结果;
对所述语音组合结果进行筛选得到语音筛选结果包括:
判断各个所述请求中的所述意图和所述第一词槽组是否匹配;
若匹配,保留所述意图和所述第一词槽组匹配的请求,得到第一目标组合结果作为语音筛选结果;
若各所述请求中的所述意图和所述第一词槽均不匹配,所述第一目标组合结果为空,所述语音筛选结果为空。
可选地,所述多个后台微服务还包括第三后台微服务;
所述第三后台微服务对所述语音请求文本中的词槽和意图进行处理得到所述语音请求文本中的词槽和意图。
可选地,对各所述语音处理结果进行组合得到语音组合结果还包括:
将所述第三后台微服务处理的各所述词槽划分为一组得到第二词槽组;
将所述第三后台微服务处理的各所述意图分别与所述第二词槽组进行组合得到各个请求作为第二组合结果;
对所述语音组合结果进行筛选得到语音筛选结果还包括:
保留所述第二组合结果中的所述意图和所述第二词槽组相匹配的请求,得到第二目标组合结果作为最终的所述语音筛选结果;
若所述第二组合结果中的所述意图和所述第二词槽均不匹配,所述第二目标组合结果为空,仍将所述第一目标组合结果作为所述语音筛选结果。
可选地,判断各所述后台微服务在预设时间内是否完成所述语音请求文本的处理,若否,生成未处理完成的所述语音请求文本的错误信息,并清除未处理的所述语音请求文本。
可选地,所述将所述语音请求文本分别发送至多个后台微服务包括:
采用异步多线程的方式将所述语音请求文本分别发送至多个后台微服务。
可选地,所述语音请求文本具有唯一的标识;
所述唯一的标识包含用户的名称以及用户的请求。
根据本发明的另一方面,提供一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据上述任一项所述的语音请求文本的处理方法。
在本实施例的语音请求文本的处理方法中,通过多个后台微服务根据自身的处理规则对语音请求文本中的信息进行处理得到各自的语音处理结果,通过将多个后台微服务独立部署,不仅实现了多个功能之间的解耦,也利于实现各个后台微服务的功能的单独弹性扩展,使各个后台微服的部署更加灵活简单。
进一步地,第三后台微服务得到第二目标组合结果的方式简单且准确度较高,更能反映语音请求文本的内容。第一后台微服务和第二后台微服务都是采用基于神经网络的机器学习方式,泛化能力比较强。但是,神经网络的机器学习方式如果训练的语料比较少,会导致第一目标组合结果不准确。所以在第二目标组合结果不为空的情况下,优先将第二目标组合结果作为最终的语音筛选结果,可以提高语音筛选结果的准确度。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是现有技术中的一个后台服务器的处理语音请求文本的流程的示意图;
图2是根据本发明一个实施例的语音请求文本的处理方法对应的系统架构的示意图;
图3是根据本发明一个实施例的语音请求文本的处理方法的信息传递的流程的示意图;
图4是根据本发明一个实施例的语音请求文本的处理方法的流程图;
图5是根据本发明一个实施例的语音请求文本的处理方法的语音请求文本筛选的示意图;
图6是根据本发明一个实施例的语音请求文本的处理方法的语音请求文本筛选的逻辑示意图。
具体实施方式
现有的车载信息娱乐产品中,采用一个后台服务器实现语音请求文本的各个功能的处理。参见图1,图1是现有技术中的一个后台服务器的处理语音请求文本的流程的示意图。该后台服务器的处理功能可以划分为多个单元。具体地,例如,将一个后台服务器的处理功能划分为接收单元、分发单元、规则匹配单元、基于神经网络的意图分类(NNclassify)单元、基于神经网络的命名实体识别(NN Named Entity Recognition,NN NER)单元、校验过滤单元、合并单元以及发送单元。
接收单元可以接收用户客户端的语音请求文本,并将接收的语音请求文本发送至分发单元。分发单元将语音请求文本分别发至规则匹配单元、基于神经网络的意图分类单元和基于神经网络的命名实体识别单元。意图分类单元识别语音请求文本中的意图。命名实体识别单元识别语音请求文本中的词槽。意图和词槽进行组合后,经校验过滤单元过滤得到第一组合结果。规则匹配单元识别语音请求文本中的词槽和意图,然后对词槽和意图进行组合以及过滤校验得到第二组合结果。然后,合并单元将第一过滤结果和第二过滤结果合并后发送至发送单元,并由发送单元发送至用户客户端。
现有技术中,将一个后台服务器的处理功能划分为多个单元以实现上述各个功能不仅导致了各个功能单元之间的紧耦合、并发性能低等缺点,也不利于对某一些功能单元做进一步的扩展。
为解决或至少部分地解决上述技术问题,本发明实施例提出了一种语音请求文本的处理方法。
图2是根据本发明一个实施例的语音请求文本的处理方法对应的系统架构的示意图。参见图2。
该系统架构可包括语音请求文本处理服务器、第一后台微服务、第二后台微服务以及第三后台微服务。其中,第一后台微服务可以定义为意图分类后台微服务,用于处理语音请求文本的意图;第二后台微服务可以定义为命名实体识别后台微服务,用于处理语音请求文本的词槽;第三后台微服务可以定义为规则匹配后台微服务,用于处理语音请求文本的意图和词槽。语音请求文本处理服务器内部具有过滤规则处理器、tomcat线程池以及redis数据库等。语音请求文本处理服务器可以与多个用户客户端连接。语音请求文本处理服务器将来自用户客户端的语音请求文本后,通过tomcat线程池将语音请求文本发送至三个后台微服务。各后台微服务根据自身的处理规则对语音请求文本中的信息进行处理得到各自的语音处理结果。具体地,例如,语音请求文本的内容为“从杭州到南京的导航路线”。第一后台微服务处理的意图为“源地址目的地址导航”。第二后台微服务处理的词槽为出发地:“杭州”,目的地,“南京”。第三后台微服务可以处理意图“源地址目的地址导航”以及词槽出发地:“杭州”,目的地,“南京”。三个后台微服务可以将处理的结果发送至过滤规则处理器进行过滤。当然,三个后台微服务也可以将处理的结果存储在redis数据库中,通过回调函数获取redis数据库中存储的结果,进而发送至过滤规则处理器。过滤规则服务器对各处理结果进行筛选得到语音筛选结果,将语音筛选结果输出至tomcat线程池。tomcat线程池将语音筛选结果输出至用户客户端。该系统架构的语音信息的传递过程可以参见图3。图3中,语音请求文本处理服务器获取到用户客户端的语音请求文本,并将语音请求文本分别发送至第一后台微服务、第二后台微服务以及第三后台微服务。第一后台微服务、第二后台微服务以及第三后台微服务将各自的筛选结果发送至语音请求文本处理服务器。语音请求文本处理服务器将最终的语音筛选结果发送至用户客户端。
为了提高系统架构的性能,语音请求文本处理服务器和各后台微服务之间采用并行、异步访问的方式。语音请求文本处理服务器还对每个语音请求文本保存一个上下文状态信息以记录区分每一个语音请求文本。该上下文状态信息可以以表格的形式保存在redis数据库中。上下文状态信息的数据格式参见表1。表1中包含了上下文状态信息的字段名、描述和数据类型。字段名中的ruleBasedNluResponse、classifyResponse以及nerResponse属于对象,其描述可以根据实际情况进行确定。对于每一个语音请求文本,语音请求文本处理服务器会在表1中增加一条记录。之后,语音请求文本处理服务器可以向每个后台微服务分别发起一个http访问。在完成语音请求文本的处理后,可以删除该语音请求文本在表1中对应的记录。
Figure BDA0002626265410000061
表1
图4是根据本发明一个实施例的语音请求文本的处理方法的流程图。参见图4,语音请求文本的处理方法一般可包括以下步骤S102至步骤S106。
步骤S102:将语音请求文本分别发送至多个后台微服务。在本步骤中,语音请求文本可以是获取的用户客户端输出的语音请求文本。
步骤S104:各后台微服务根据自身的处理规则对语音请求文本中的信息进行处理处理得到各自的语音处理结果。
步骤S106:对各语音处理结果进行筛选得到语音筛选结果,并输出语音筛选结果。
在本实施例的语音请求文本的处理方法中,通过将多个后台微服务独立部署,不仅实现了多个功能之间的解耦,也利于实现各个后台微服务的功能的单独弹性扩展,使各个后台微服的部署更加灵活简单。
在本发明一个实施例中,步骤S106中的对各语音处理结果进行筛选得到语音筛选结果可以包括以下步骤:
对各语音处理结果进行组合得到语音组合结果。然后,对语音组合结果进行筛选得到语音筛选结果。
在本实施例中,通过对各语音处理结果进行组合,可以使得到的语音组合结果更加全面的反映语音请求文本中的内容,从而提高语音筛选结果的准确性。
在本发明一个实施例中,多个后台微服务可包括第一后台微服务和第二后台微服务。
在后台微服务的个数为2个的情况下,步骤S104可包括以下步骤:
第一后台微服务和第二后台微服务中的一个对语音请求文本中的意图进行处理得到语音请求文本中的意图。然后,第一后台微服务和第二后台微服务中的另一个对语音请求文本中的词槽进行处理得到语音请求文本中的词槽。
在本实施例中,意图可以理解为语音请求文本的目的。词槽为与目的相匹配的词语。具体地,例如,意图如果为“播放音乐”,与该意图匹配的词槽可以是“歌手”、“歌名”或者“专辑”等。意图如果为“天气怎么样”,与该意图匹配的词槽可以是“城市”或“日期”等。可以将对语音请求文本的意图进行处理的一个后台微服务作为意图分类(NN classify)后台微服务。意图分类后台微服务通过预先训练的基于神经网络的分类器识别语音请求文本中的意图。将对语音请求文本中的词槽进行处理的一个后台微服务作为命名实体识别(NNNamed Entity Recognition,NN NER)后台微服务。命名实体识别后台微服务也可以通过预先训练的基于神经网络的模型。通过两个后台微服务分别发挥各自的作用,使各个后台微服的部署更加灵活简单,也使各后台微服务的负载更加均衡,从而提高各后台微服务的工作效率。
在本发明一个实施例中,在后台微服务的个数为2个的情况下,步骤S106中的对各语音处理结果进行组合得到语音组合结果可包括以下过程:
将第一后台微服务和第二后台微服务其中之一处理的各词槽划分为一组得到第一词槽组。将第一后台微服务和第二后台微服务其中之一处理的各意图分别与第一词槽组进行组合得到各个请求作为第一组合结果。
具体地,例如,意图包括“播放音乐”和“天气怎么样”;词槽包括“歌手”、“歌名”和“专辑”等。将“歌手”、“歌名”和“专辑”划分为第一词槽组。将各意图分别与第一词槽组进行组合可以得到“播放音乐”和第一词槽组的组合以及“天气怎么样”和第一词槽组的组合从而得到第一组合结果。第一组合结果可以参照如下表2。表2中包含了2个请求。
意图 第一词槽组
天气怎么样 “歌手”、“歌名”、“专辑”
播放音乐 “歌手”、“歌名”、“专辑”
表2
对语音组合结果进行筛选得到语音筛选结果可包括:
判断各个请求中的意图和第一词槽组是否匹配。若匹配,保留意图和第一词槽组匹配的请求,得到第一目标组合结果作为语音筛选结果。若各请求中的意图和第一词槽均不匹配,第一目标组合结果为空,语音筛选结果为空。
具体地,例如,“天气怎么样”和“歌手”、“歌名”、“专辑”显然没有关,不匹配,因此过滤到该请求。“歌手”、“歌名”、“专辑”均与音乐具有关联,所说“播放音乐”和“歌手”、“歌名”、“专辑”匹配,保留该请求得到第一目标组合结果作为语音筛选结果。当然,若各请求中的意图和第一词槽均不匹配,第一目标组合结果为空,语音筛选结果为空。
在本发明一个实施例中,多个后台微服务还可包括第三后台微服务。第三后台微服务对语音请求文本中的词槽和意图进行处理得到语音请求文本中的词槽和意图。第三后台微服务可以作为规则匹配后台微服务。规则匹配后台微服务基于传统的语句匹配方法,例如类似字典、句式、正则、语法树等匹配方式,处理语音请求文本中的意图和词槽。
在本发明一个实施例中,在多个后台微服务还可包括第三后台微服务的情况下,对各语音处理结果进行组合得到语音组合结果还包括:
将第三后台微服务处理的各词槽划分为一组得到第二词槽组。
将第三后台微服务处理的各意图分别与第二词槽组进行组合得到各个请求作为第二组合结果。
对语音组合结果进行筛选得到语音筛选结果还包括:
保留第二组合结果中的意图和第二词槽组相匹配的请求,得到第二目标组合结果作为最终的语音筛选结果。
若第二组合结果中的意图和第二词槽均不匹配,第二目标组合结果为空,仍将第一目标组合结果作为语音筛选结果。
在本实施例中,将第三后台微服务处理的各意图分别与第二词槽组进行组合以及得到第二目标组合结果的方法可以参照上述第一后台微服务和第二后台微服务的方法,这里不再赘述。第三后台微服务作为规则匹配后台微服务,基于用户自定义的模板,例如类似字典、句式、正则、语法树等匹配方式,处理语音请求文本中的意图和词槽。因此,第三后台微服务得到第二目标组合结果的方式简单且准确度较高,更能反映语音请求文本的内容。第一后台微服务和第二后台微服务都是采用基于神经网络的机器学习方式,泛化能力比较强。但是,神经网络的机器学习方式如果训练的语料比较少,会导致第一目标组合结果不准确。所以在第二目标组合结果不为空的情况下,优先将第二目标组合结果作为最终的语音筛选结果,可以提高语音筛选结果的准确度。
图5是根据本发明一个实施例的语音请求文本的处理方法的语音请求文本筛选的示意图。在这里,可以将第一后台微服务作为意图分类后台微服务,第二后台微服务作为命名实体识别后台微服务。将意图分类后台微服务处理的意图(intent)和命名实体识别后台微服务处理的词槽(slot)组合。根据预先存储在数据库的筛选规则对意图和词槽的组合进行筛选得到第一目标组合结果。筛选规则即判断意图和词槽是否相互匹配。每一个特定的用户或特定的语音请求文本可以具有与自身相适配的筛选规则。筛选规则也可以理解为意图和词槽的组合在筛选规则中是否出现,若出现,则意图和词槽匹配;若未出现,则不匹配,忽略不配的组合。然后,将第三后台微服务的第二组合结果进行筛选得到第二目标组合结果。在第一目标组合结果和第二目标组合结果中选取准确度更高的结果作为语音筛选结果。筛选规则可以预先存储在数据库中,且在数据库中的存储格式如下表3。表3中包括了筛选规则的字段名、描述、数据类型和长度。其中,词槽对象数组slotArray的结构如表4所示。
Figure BDA0002626265410000091
表3
字段名 描述 数据类型 长度(字节)
type 词槽种类 string <=64
mandatory 是否是必须的 bool 1
表4
在筛选时,可以将筛选规则加载到内存中。为了提高筛选效率,可以使用bitset的方式。每一种词槽slot对应bitset的一位。在内存中存储第一Map集合(Mandatory Map集合)和第二Map集合(Optional Map集合)。其中,Mandatory Map集合:关键字key=hash(productId+intent),值value=bitset。每一个记录的mandatory slot对应的bit为1,其余为0。Optional Map集合:关键字key=hash(productId+intent),值value=bitset,每一个记录的mandatory slot和optional slot对应的bit为1,其余为0。
筛选的逻辑对应的流程图如图6所示。
在图6中,步骤S601:意图intent+词槽slot。
步骤S602:计算bitset的值value。
步骤S603:计算(筛选规则(productId)+意图(intent))的哈希值。
步骤S604:根据哈希值作为关键字key查找第一Map集合(Mandatory Map)中对应的值value1。
步骤S605:判断bitset的值value和第一Map集合(Mandatory Map)中对应的值value1与的运算结果是否大于0。
若与的结果为不大于0(即等于0),步骤S606:意图和词槽的组合为不匹配的组合。
若与的结果为大于0(即为1),步骤S607:根据哈希值作为关键字key查找第二Map集合(Optional Map)中对应的值value2。
步骤S608:判断bitset的值value和第二Map集合(Optional Map)中对应的值value2的取反值的与的运算结果是否等于0。
若与的结果为0,步骤S609:意图和词槽的组合为匹配的组合。
若结果不为0(即为1),步骤S610:意图和词槽的组合为不匹配的组合。
例如对某一语音请求文本,处理了意图1(intent1)和意图2(intent2)以及词槽1(slot1)、词槽2(slot2)、词槽3(slot3)。假设词槽1(slot1)+词槽2(slot2)+词槽3(slot3)对应的bitset值value为0b00000111。用productId+intent生成哈希值,用该哈希值去Mandatory Map集合读取关键字key对应的值value1,值value和值value1做位操作与,如果结果为0,则说明必须出现的词槽(slot)没有出现,该组合不合法;反之如果结果不为0,继续往下执行。用productId+intent生成哈希值,用该哈希值去Optional Map集合读取关键字key对应的值value2,值value和值value2的取反值做位操作与,如果结果不为0,则说明推理出来的词槽(slot)超出了规则定义的范围,该词槽(slot)无效;反之则说明匹配通过,该意图和词槽是合法的。
语音请求文本计算出来的值value中具有以下特征:
特征一:一定包含规则是“mandatory”的词槽。
特征二:可以包含“optional”的词槽,也可以不包含。
特征三:不能含有超出“mandatory”和“optional”的词槽,这里是把值value(用户推理句子计算出来的)和值value2的取反值进行与(如value&~value2),结果不为0代表语音请求文本中含有超出范围的词槽,所以要丢弃这个句子。
在本发明一个实施例中,将语音请求文本分别发送至多个后台微服务包括:采用异步多线程的方式将语音请求文本分别发送至多个后台微服务。
在本实施例中,可以支持多用户并发,即可以支持多个用户的多个语音请求文本。同一个用户的多个语音请求文本可以占用一个异步连接。例如,有长连接时,多个语音请求文本可以使用同一个http连接,节省了http建立的过程。采用异步多线程的方式,可以减少占用线程池和其他资源的数量,提高并发,进而提高各个后台微服务的工作效率。
在本发明一个实施例中,语音请求文本具有唯一的标识。唯一的标识包含用户的名称(productId)以及用户的请求(seqNum)。
在本实施例中,名称(productId)可以标识不同的用户。请求(seqNum)可以标识同一个异步连接下的不同请求。语音请求文本的数据格式可以参照如下表5。表5中,语音请求文本包含名称(productId)、请求(seqNum)以及语音请求文本内容(text)。
字段名 描述 数据类型 长度(字节)
productId 用户名或项目名,区分不同的产品或项目 string <=64
seqNum 区分同一个连接下的多个请求 integer 4
text 语音请求文本内容 string <=240
表5
在接收到语音请求文本后,可以将语音请求文本的数据保存到内存中。该数据的结构为map集合。该map集合中的每条记录的关键字(key)是(productId+seqNum)组合的哈希值,哈希值key对应的值value的数据格式为下面表6中的内容,值value包括asyncContext和text。其中asyncContext是http连接唯一标识,该唯一标识在回调函数中返回数据时用到。asyncContext的长度可以根据实际情况调整,这里不做具体限定。
Figure BDA0002626265410000111
Figure BDA0002626265410000121
表6
在本发明一个实施例中,语音请求文本的处理方法还可包括:判断各后台微服务在预设时间内是否完成语音请求文本的处理。若否,生成未处理完成的语音请求文本的错误信息,并清除未处理的语音请求文本。
在本实施例中,考虑到各个后台微服务可能出现运行异常的情况,对每个后台微服务处理语音请求文本设置了超时机制。可以在内存中建立另一个LinkedHashMap集合。该LinkedHashMap集合的关键字key值是(productId+seqNum)组合哈希值,哈希值对应的value是超时绝对时间time。在接收到语音请求文本后,在LinkedHashMap集合中保存接收到语音请求文本的记录。因为LinkedHashMap集合中保存的记录是按照顺序依次保存的,因此,如果需要查看某个语音请求文本对应的记录是否超时,只需要查看第一个记录(存储最久的记录)的绝对时间time是否超时,若第一个记录没有超时,则全部记录均没有超时。若第一个记录超时,删掉第一个记录,并清除超时记录对应的语音请求文本。然后,查看新的第一个记录(被删除的记录的下一个记录),直至新的第一个记录为不超时的记录。每个记录之间的时间差一般为2秒,当然,也可以为3秒或者1秒等其他值,本发明实施例对此不做具体地限定。
由于上述内存中的2个map集合被访问的次数比较频繁,为了降低程序的复杂度和时间开销,可以设计一个单独的定时器任务单元。该定时器任务单元可以对上述map和LinkedHashMap进行读写删除操作以及超时检查操作。定时器任务单元可以使用消息队列和其他功能单元通信。消息队列本身保证了消息的串行与同步。定时器任务单元内部只有一个执行任务,所以对所有内存的操作都是单任务串行的,无需任何锁操作,简化了代码。
为了使本发明中的一些数据格式更加清楚明了,下面以一个具体示例进行详细介绍。
在本示例中,第一后台微服务可以定义为意图分类后台微服务,用于处理语音请求文本的意图;第二后台微服务可以定义为命名实体识别后台微服务,用于处理语音请求文本的词槽;第三后台微服务可以定义为规则匹配后台微服务,用于处理语音请求文本的意图和词槽。例如,接收的语音请求文本的内容为“从杭州到南京的导航路线”。该语音请求文本的具体格式可以参照上述表5。表5对应的程序如下所示:
Figure BDA0002626265410000131
之后,生成语音请求文本的响应。该响应的数据格式对如下应表格7。表7中包含了该相应的字段名、描述、数据类型和长度。其中,意图结果可以优选分数最高的3个结果。表格7中意图结果对应的数据格式参照如下表格8。表格7中词槽结果对应的数据格式参照如下表格9。
Figure BDA0002626265410000132
表7
Figure BDA0002626265410000133
Figure BDA0002626265410000141
表8
字段名 描述 数据类型 长度(字节)
type 标签 string <=64
start 开始offset integer 4
end 结束offset integer 4
表9
表7对应的程序如下所示:
Figure BDA0002626265410000142
Figure BDA0002626265410000151
然后,第一后台微服务、第二后台微服务和第三后台微服务均产生语音请求文本的请求和响应。
例如,表10为向第三后台微服务发出的语音请求文本的请求的数据格式。
Figure BDA0002626265410000152
表10
表10对应的程序如下:
Figure BDA0002626265410000153
表11为第三后台微服务产生的语音请求文本的请求对应的响应的数据格式。
Figure BDA0002626265410000161
表11
表11对应的程序如下:
Figure BDA0002626265410000162
Figure BDA0002626265410000171
向第一后台微服务发送的语音请求文本的请求的数据格式如表12所示。
Figure BDA0002626265410000172
表12
表12对应的程序如下:
Figure BDA0002626265410000173
第一后台微服务产生的语音请求文本的请求对应的响应的数据格式如表13所示。
Figure BDA0002626265410000181
表13
表13对应的程序如下:
Figure BDA0002626265410000182
Figure BDA0002626265410000191
向第二后台微服务发送的语音请求文本的请求的数据格式如表14所示。
Figure BDA0002626265410000192
表14
表14对应的程序如下:
Figure BDA0002626265410000193
第二后台微服务产生的语音请求文本的请求对应的响应的数据格式如表15所示。
Figure BDA0002626265410000194
Figure BDA0002626265410000201
表15
表15对应的程序如下所示:
Figure BDA0002626265410000202
筛选规则的配置格式如下表16所示。其中,筛选规则的配置可以放在数据库中,不同的规则使用product ID加intent组合来区分,hash(productId,intent)可以做索引。表17为表16中Slotentry的数据格式。
Figure BDA0002626265410000203
Figure BDA0002626265410000211
表16
字段名 描述 数据类型 长度(字节)
type slot种类 string <=64
mandatory 是否是必须的 bool 1
表17
基于同一发明构思,本发明还提供了一种计算机存储介质。计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上述任一项实施例的语音请求文本的处理方法。
根据上述任意一个可选实施例或多个可选实施例的组合,本发明实施例能够达到如下有益效果:
在本实施例的语音请求文本的处理方法中,通过多个后台微服务根据自身的处理规则对语音请求文本中的信息进行处理得到各自的语音处理结果,通过将多个后台微服务独立部署,不仅实现了多个功能之间的解耦,也利于实现各个后台微服务的功能的单独弹性扩展,使各个后台微服的部署更加灵活简单。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

Claims (7)

1.一种语音请求文本的处理方法,其特征在于,包括:
将语音请求文本分别发送至多个后台微服务;
各所述后台微服务根据自身的处理规则对所述语音请求文本中的信息进行处理得到各自的语音处理结果;
对各所述语音处理结果进行筛选得到语音筛选结果,并输出所述语音筛选结果;
其中,所述对各所述语音处理结果进行筛选得到语音筛选结果包括:
对各所述语音处理结果进行组合得到语音组合结果;
对所述语音组合结果进行筛选得到语音筛选结果;
并且,所述多个后台微服务包括第一后台微服务和第二后台微服务;
所述各所述后台微服务根据自身的处理规则对所述语音请求文本中的信息进行处理得到各自的语音处理结果包括:
所述第一后台微服务和所述第二后台微服务中的一个对所述语音请求文本中的意图进行处理得到所述语音请求文本中的意图;
所述第一后台微服务和所述第二后台微服务中的另一个对所述语音请求文本中的词槽进行处理得到所述语音请求文本中的词槽;
对各所述语音处理结果进行组合得到语音组合结果包括:将所述第一后台微服务和所述第二后台微服务其中之一处理的各所述词槽划分为一组得到第一词槽组;
将所述第一后台微服务和所述第二后台微服务其中之一处理的各所述意图分别与所述第一词槽组进行组合得到各个请求作为第一组合结果;
对所述语音组合结果进行筛选得到语音筛选结果包括:
判断各个所述请求中的所述意图和所述第一词槽组是否匹配;
若匹配,保留所述意图和所述第一词槽组匹配的请求,得到第一目标组合结果作为语音筛选结果;
若各所述请求中的所述意图和所述第一词槽均不匹配,所述第一目标组合结果为空,所述语音筛选结果为空。
2.根据权利要求1所述的语音请求文本的处理方法,其特征在于,
所述多个后台微服务还包括第三后台微服务;
所述第三后台微服务对所述语音请求文本中的词槽和意图进行处理得到所述语音请求文本中的词槽和意图。
3.根据权利要求2所述的语音请求文本的处理方法,其特征在于,
对各所述语音处理结果进行组合得到语音组合结果还包括:
将所述第三后台微服务处理的各所述词槽划分为一组得到第二词槽组;
将所述第三后台微服务处理的各所述意图分别与所述第二词槽组进行组合得到各个请求作为第二组合结果;
对所述语音组合结果进行筛选得到语音筛选结果还包括:
保留所述第二组合结果中的所述意图和所述第二词槽组相匹配的请求,得到第二目标组合结果作为最终的所述语音筛选结果;
若所述第二组合结果中的所述意图和所述第二词槽均不匹配,所述第二目标组合结果为空,仍将所述第一目标组合结果作为所述语音筛选结果。
4.根据权利要求1所述的语音请求文本的处理方法,其特征在于,还包括:
判断各所述后台微服务在预设时间内是否完成所述语音请求文本的处理,若否,生成未处理完成的所述语音请求文本的错误信息,并清除未处理的所述语音请求文本。
5.根据权利要求1所述的语音请求文本的处理方法,其特征在于,
所述将所述语音请求文本分别发送至多个后台微服务包括:
采用异步多线程的方式将所述语音请求文本分别发送至多个后台微服务。
6.根据权利要求1所述的语音请求文本的处理方法,其特征在于,
所述语音请求文本具有唯一的标识;
所述唯一的标识包含用户的名称以及用户的请求。
7.一种计算机存储介质,其特征在于,
所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据权利要求1-6中任一项所述的语音请求文本的处理方法。
CN202010797705.6A 2020-08-10 2020-08-10 语音请求文本的处理方法及计算机存储介质 Active CN111968636B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010797705.6A CN111968636B (zh) 2020-08-10 2020-08-10 语音请求文本的处理方法及计算机存储介质
PCT/CN2021/103052 WO2022033213A1 (zh) 2020-08-10 2021-06-29 语音请求文本的处理方法及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010797705.6A CN111968636B (zh) 2020-08-10 2020-08-10 语音请求文本的处理方法及计算机存储介质

Publications (2)

Publication Number Publication Date
CN111968636A CN111968636A (zh) 2020-11-20
CN111968636B true CN111968636B (zh) 2021-11-12

Family

ID=73365348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010797705.6A Active CN111968636B (zh) 2020-08-10 2020-08-10 语音请求文本的处理方法及计算机存储介质

Country Status (2)

Country Link
CN (1) CN111968636B (zh)
WO (1) WO2022033213A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111968636B (zh) * 2020-08-10 2021-11-12 湖北亿咖通科技有限公司 语音请求文本的处理方法及计算机存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109003605A (zh) * 2018-07-02 2018-12-14 北京百度网讯科技有限公司 智能语音交互处理方法、装置、设备及存储介质
CN109241524A (zh) * 2018-08-13 2019-01-18 腾讯科技(深圳)有限公司 语义解析方法及装置、计算机可读存储介质、电子设备
CN109785840A (zh) * 2019-03-05 2019-05-21 湖北亿咖通科技有限公司 自然语言识别的方法、装置及车载多媒体主机、计算机可读存储介质
CN110827816A (zh) * 2019-11-08 2020-02-21 杭州依图医疗技术有限公司 语音指令识别方法、装置、电子设备及存储介质
CN111190715A (zh) * 2019-12-31 2020-05-22 杭州涂鸦信息技术有限公司 产品服务的分发调度方法和系统、可读存储介质及计算机
CN111460123A (zh) * 2020-04-07 2020-07-28 中国搜索信息科技股份有限公司 一种针对青少年聊天机器人的对话意图识别方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8175885B2 (en) * 2007-07-23 2012-05-08 Verizon Patent And Licensing Inc. Controlling a set-top box via remote speech recognition
KR102056461B1 (ko) * 2012-06-15 2019-12-16 삼성전자주식회사 디스플레이 장치 및 디스플레이 장치의 제어 방법
CN108255934B (zh) * 2017-12-07 2020-10-27 北京奇艺世纪科技有限公司 一种语音控制方法及装置
CN110888969A (zh) * 2019-11-27 2020-03-17 华为技术有限公司 一种对话响应方法及装置
CN111968636B (zh) * 2020-08-10 2021-11-12 湖北亿咖通科技有限公司 语音请求文本的处理方法及计算机存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109003605A (zh) * 2018-07-02 2018-12-14 北京百度网讯科技有限公司 智能语音交互处理方法、装置、设备及存储介质
CN109241524A (zh) * 2018-08-13 2019-01-18 腾讯科技(深圳)有限公司 语义解析方法及装置、计算机可读存储介质、电子设备
CN109785840A (zh) * 2019-03-05 2019-05-21 湖北亿咖通科技有限公司 自然语言识别的方法、装置及车载多媒体主机、计算机可读存储介质
CN110827816A (zh) * 2019-11-08 2020-02-21 杭州依图医疗技术有限公司 语音指令识别方法、装置、电子设备及存储介质
CN111190715A (zh) * 2019-12-31 2020-05-22 杭州涂鸦信息技术有限公司 产品服务的分发调度方法和系统、可读存储介质及计算机
CN111460123A (zh) * 2020-04-07 2020-07-28 中国搜索信息科技股份有限公司 一种针对青少年聊天机器人的对话意图识别方法及装置

Also Published As

Publication number Publication date
WO2022033213A1 (zh) 2022-02-17
CN111968636A (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
CN101167075B (zh) 专有表现抽取装置、方法以及程序
US7979268B2 (en) String matching method and system and computer-readable recording medium storing the string matching method
US7072889B2 (en) Document retrieval using index of reduced size
US20110231189A1 (en) Methods and apparatus for extracting alternate media titles to facilitate speech recognition
US20040249808A1 (en) Query expansion using query logs
US20050159960A1 (en) Context free grammar engine for speech recognition system
CN101952824A (zh) 计算机执行的对数据库中的文献进行索引和检索的方法以及信息检索系统
WO2008043582A1 (en) Systems and methods for building an electronic dictionary of multi-word names and for performing fuzzy searches in said dictionary
US7315810B2 (en) Named entity (NE) interface for multiple client application programs
CN107408110B (zh) 含意配对扩展装置、记录介质以及提问应答系统
CN112989010A (zh) 数据查询方法、数据查询装置和电子设备
CN111968636B (zh) 语音请求文本的处理方法及计算机存储介质
CN116484808A (zh) 一种公文用可控文本生成方法及装置
CN113128205B (zh) 一种剧本信息处理方法、装置、电子设备及存储介质
CN110633375A (zh) 一种基于政务工作的媒体信息整合利用的系统
US20010032077A1 (en) Compare
US20100205175A1 (en) Cap-sensitive text search for documents
US11947530B2 (en) Methods and systems to automatically generate search queries from software documents to validate software component search engines
CN110986972A (zh) 一种用于车载导航的信息处理方法及其装置
CN1830022B (zh) 语音应答系统及其方法
CN110967030A (zh) 一种用于车载导航的信息处理方法及其装置
CN112989011B (zh) 数据查询方法、数据查询装置和电子设备
CN110929085B (zh) 基于元语义分解的电力客服留言生成模型样本处理系统及方法
US8024347B2 (en) Method and apparatus for automatically differentiating between types of names stored in a data collection
CN113345430B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220419

Address after: 430051 No. b1336, chuanggu startup area, taizihu cultural Digital Creative Industry Park, No. 18, Shenlong Avenue, Wuhan Economic and Technological Development Zone, Wuhan, Hubei Province

Patentee after: Yikatong (Hubei) Technology Co.,Ltd.

Address before: No.c101, chuanggu start up area, taizihu cultural Digital Industrial Park, No.18 Shenlong Avenue, Wuhan Economic Development Zone, Hubei Province

Patentee before: HUBEI ECARX TECHNOLOGY Co.,Ltd.