CN111063350B - 基于任务栈的语音交互状态机及其实现方法 - Google Patents
基于任务栈的语音交互状态机及其实现方法 Download PDFInfo
- Publication number
- CN111063350B CN111063350B CN201911302157.9A CN201911302157A CN111063350B CN 111063350 B CN111063350 B CN 111063350B CN 201911302157 A CN201911302157 A CN 201911302157A CN 111063350 B CN111063350 B CN 111063350B
- Authority
- CN
- China
- Prior art keywords
- task
- action
- state
- executed
- task stack
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000003993 interaction Effects 0.000 title claims abstract description 58
- 230000009471 action Effects 0.000 claims abstract description 109
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000012544 monitoring process Methods 0.000 claims abstract description 24
- 230000001960 triggered effect Effects 0.000 claims description 26
- 238000013507 mapping Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 5
- 239000000725 suspension Substances 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 28
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Acoustics & Sound (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种基于任务栈的语音交互状态机及其实现方法,该方法包括:配置用于存储待执行任务的第一任务栈;设定语音交互状态机的主状态;监听状态切换指令,并根据监听结果进行相应处理,其实现为包括响应于接收到的状态切换指令或动作执行结果,生成待执行动作写入第一任务栈,并在写入后切换回主状态;在语音交互状态机处于主状态时,依次读取并执行第一任务栈中已写入的待执行动作。根据本发明公开的方法和状态机,可以使状态流转变得简明、快捷,并让状态大都处在稳定的主状态,不需要开发者管理太多的状态并且编码清晰度、代码可读性都大幅度提高,明显提高状态机的容错率和效率,从而提升设备的运行效率。
Description
技术领域
本发明涉及语音交互技术领域,特别是一种基于任务栈的语音交互状态机及其实现方法。
背景技术
一般情况下,在语音交互过程中,设备会涉及多种状态,且会在每次状态切换时以及在每个状态持续过程中执行某些业务性操作,为了较好地管理这些状态和动作,现有技术一般是通过设计固定的状态模式和固定的操作流程来使得整个语音交互系统能够有序、高效运作的,图1示意性地显示了该种划分方式,如图1所示一般划分为:空闲状态、待唤醒状态、拾音状态和等待识别结果状态,在该模式下首先设备开启录音,此时设备由空闲状态进入待唤醒状态,某个时刻用户说了唤醒词,设备则进行识别拾音状态,用户停止说话后,设备进入等待识别结果状态,设备收到识别结果后,则再次进入待唤醒状态。这种模式虽然能够有效管理每个状态及其对应的操作流程,然而,实际情况下,设备在每次状态切换的时候可能需要执行另外的业务性操作,例如:设备被语音唤醒后,首先播放提示音,告知用户设备被成功唤醒,提示音播放结束后才会进入识别拾音状态;又如,设备收到识别结果消息时,首先需要进行文本合成播报,然后执行某些指令,而这些指令就有可能和合成播报同时要用到播放器,两者之间就存在互斥关系。可见,在状态机系统中,任务的执行和状态是动态绑定的,任务的执行随着状态迁移而发生,这种情况下图1所示的固定状态模式和操作流程就无法实现有效的切换,会导致在某一语音交互状态的执行时间较长时,任务就会一直处在一个执行状态,从而会影响对其他事件的响应,造成事件阻塞等问题,影响系统的效率。
针对该问题,目前现有的做法有两种:一种做法是选择在状态机中新加一个或者多个状态,但是这样会让原本简洁的状态机增加很多冗余;另一种解决方式是通过在状态切换时新加动作,但这会让状态切换时操作繁杂,例如现在音响应用越来越复杂,需求越来越多,继续播放闹钟提醒,恢复LED显示就远不止一个操作,音响内部的服务越多,状态就成正比增加,导致可读性变差且冗余,如果在这时被打断(如被再次唤醒),会使得状态机的状态不清晰。
发明内容
为了解决上述问题,发明人构思通过构建任务栈来将系统涉及到的业务操作均转换为待执行任务,并设定一个主状态来通过任务栈执行和管理所有产生的任务操作,这样在状态切换时仅仅产生执行瞬时动作的操作需求,之后将恢复和保持主状态,由此使得状态流转变得简明,并让状态大都处在稳定空闲状态,不需要开发者管理太多的状态并且编码清晰度、代码可读性都大幅度提高,明显提高其状态机的容错率和效率,从而提升设备的运行效率。
根据本发明的一个方面,提供了基于任务栈的语音交互状态机的实现方法,包括如下步骤:
配置用于存储待执行任务的第一任务栈;
设定语音交互状态机的主状态;
监听状态切换指令,并根据监听结果进行相应处理,其实现为包括
响应于接收到的状态切换指令或动作执行结果,生成待执行动作写入所述第一任务栈,并在写入后切换回主状态;
在语音交互状态机处于主状态时,依次读取并执行第一任务栈中已写入的待执行动作。
根据本发明的另一个方面,提供了一种基于任务栈的语音交互状态机,包括:
用于存储待执行任务的第一任务栈;和
状态设定模块,用于设定语音交互状态机的主状态,;
任务处理模块,用于监听状态切换指令,并根据监听结果进行相应处理;
所述任务处理模块包括
任务写入单元,用于响应于接收到的状态切换指令或动作执行结果,生成待执行动作写入所述第一任务栈,并在写入后切换回主状态;和
任务执行单元,用于在主状态下依次读取并执行第一任务栈中已写入的待执行动作。
根据本发明的又一个方面,提供了一种电子设备,其包括:至少一个处理器,以及与至少一个处理器通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的指令,指令被所述至少一个处理器执行,以使至少一个处理器能够执行上述方法的步骤。
根据本发明的又一个方面,提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
通过本发明实施例提供的方案,能够实现基于任务栈实现将状态变化转换为待执行任务,且能够实现基于主状态进行任务处理,这样只要将一般状态机的状态流转中的操作(即状态流转中需要执行的action)放入任务栈,并在该操作放入任务栈之后快速回到主状态,由此,状态机大部分时间都处于主状态,既不需要维护和管理过多的状态,又能够兼容一般的状态机,而且还能够避免因状态切换时间过长,而导致事件阻塞等问题,大幅提高语音交互状态机的处理效率和容错率,降低研发维护难度。
附图说明
图1为现有技术中的语音交互状态机的语音交互状态流转流程示例图;
图2为本发明一实施方式的基于任务栈的语音交互状态机的实现方法流程图;
图3为本发明另一实施方式的基于任务栈的语音交互状态机的实现方法流程图;
图4为本发明一实施方式的基于任务栈的语音交互状态机的第一任务栈和第二任务栈处理中断事件的应用示意图;
图5为本发明一实施方式的基于任务栈的语音交互状态机的状态切换时多任务同时执行的应用示意图;
图6为本发明一实施方式的基于任务栈的语音交互状态机原理图;
图7为本发明一实施方式的电子设备原理图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由于本发明实施例涉及的状态机的实现方案可以应用于任何语音交互设备中,实现对语音交互设备的状态管理,特别适用于状态和交互相对简单的音箱等语音交互设备中,但是本发明的适用范围并不局限于此,在其它实施方式中,同样具有语音交互功能的智能设备例如电视、冰箱、电脑等都为本发明的适用范围。通过本发明实施例提供的方案,能够使得语音交互设备的状态流转变得简明,不需要开发者管理太多的状态,同时由于每次的状态转变或者动作的使能都转换为任务栈中的任务,因而能够在状态切换时执行多个任务,避免状态流转容易造成动作阻塞的风险。
下面结合附图对本发明作进一步详细的说明。
图2示意性地显示了本发明一种实施方式的基于任务栈的语音交互状态机的实现方法,该实施例以基于一个主状态来监听状态转变或动作使能的情况,并在主状态下维护和处理一个用于存储待执行任务的任务栈为例进行详细说明,如图2所示,本发明实施例的方法包括如下步骤:
步骤S101:配置用于存储待执行任务的第一任务栈。
由于现有的音响应用越来越复杂,需求越来越多,其功能可包括播放闹钟提醒、LED显示、播放音乐、语音对话等,由于其功能的多样化,在切换状态时会有耗时操作,如果在这时被打断(例如在播放音乐时被再次唤醒),会使得状态机的状态不清晰。为了减少状态切换及其切换带来的耗时等弊端,使得状态机能够更流畅高效地处理事件和适用于例如播放音乐时被打断的情况,本发明实施例构建了该第一任务栈,这样就可以通过维护和顺序执行任务栈里的任务,来实现对所有事件的响应,达到在状态切换时依然能执行多个任务和以简化的状态应对打断的效果。示例性地,该第一任务栈可以实现为先入后出的栈表,这样就可以将待执行动作根据预设的执行顺序存储,该执行顺序根据用户的需求按照不同的任务类型进行设置。
步骤S102:设定语音交互状态机的主状态。为了减少状态管理和维护,本发明实施例提供的方案仅仅设定一个主状态,使得语音交互状态机的大部分状态都是在主状态下,而不需要长时间处于不稳定的状态中,更不需要在不同状态下执行相应流程。
步骤S103:监听状态切换指令,并根据监听结果进行相应处理。为了实现本发明的构思,作为一个优选实现例,其实现为将状态变化都映射为相应的待执行动作,这样就可以响应于状态切换指令,生成一个对应的待执行动作写入第一任务栈,之后状态机就回到主状态,这样就不需要维护过多的状态。为了方便进行任务执行和管理,生成的对应的待执行动作将写入第一任务栈,这样就可以在主状态下,即在不需要响应状态切换以及对执行结果进行处理时,顺序执行第一任务栈中的待执行动作,将所有的状态切换和动作使能等都以待执行动作的形式存放在第一任务栈,实现状态快速切换,并通过在主状态来顺序执行,达到大幅提高状态机的效率和容错率的效果。其中,将状态变化映射为待执行动作后,通过将其映射关系即第一映射关系存储在状态机中,即可在接收到状态切换指令或动作使能等时,通过该第一映射关系找到对应需要写入第一任务栈的待执行动作,并将其写入。为了更全面地实现流程处理,本发明实施例还为各待执行动作配置其对应的执行结果和与各执行结果对应的待响应动作,例如执行结果可以包括成功和失败,成功对应的待响应动作可能是继续写入下一个待执行动作,也可能是仅仅是顺序执行第一任务栈中的下一个待执行动作,失败对应的待响应动作可能是不做任何处理等。在具体实现时,将各执行动作的执行结果对应的待响应动作作为第二映射关系存储。这样,将状态机设置成大部分时间都处于主状态的循环里,在主状态下监听状态切换指令和第一任务栈,就可以在接收到状态切换指令时,根据第一映射关系获取匹配的待执行动作写入第一任务栈,在接收到动作执行结果时,根据第二映射关系获取匹配的待响应动作,生成待执行动作写入第一任务栈,并在写入后快速切换回主状态。之后在状态机处于主状态时,按照先入后出的顺序读取第一任务栈中的待执行动作进行执行,从而实现对所有状态切换和使能动作的响应,实现状态机所有处理的高效流转。
图3示意性地显示了本发明一种实施方式的基于任务栈的语音交互状态机的实现方法,该实施例以基于一个主状态来监听状态转变或动作使能的情况,并在主状态下维护和处理两个任务栈:一个用于存储待执行任务的任务栈和一个用于存储挂起任务的任务栈为例进行详细说明,如图3所示,本发明实施例的方法包括如下步骤:
步骤S201:配置用于存储待执行任务的第一任务栈,该步骤参照前文步骤S101的描述。
步骤S202:配置用于存储待触发任务的第二任务栈。
对于某些情况下,例如在播放音乐时,闹钟提醒突然触发,而导致播放音乐任务被打断后,为了任务间的连贯性,不需要马上恢复播放音乐任务,可以通过第二任务栈保留现场在执行触发命令的时候将挂起的任务恢复(例如按了某个按键时)。具体实现为:将第二任务栈配置为用于存储响应于触发事件的待触发任务,该触发事件可以根据用户需求进行设计,例如设计为包括用户在设备中设置的定时提醒任务等,这时可以通过第二任务栈将触发事件挂起,并基于执行触发事件的指令来继续执行该挂起的待触发任务,其中,示例性地该触发指令可以设置为由用户点击按键执行或不执行当前触发事件的指令,根据用户的执行触发指令执行触发事件对应存储在第二任务栈中的待触发任务。
步骤S203:设定状态机的主状态。
步骤S204:监听状态切换指令,并根据监听结果进行相应处理。不同于图1所示实施例的是,本发明实施例中设置了两个任务栈,主状态下需要同时监听该两个任务栈,并基于事件类型进行任务栈的管理和维护。其实现为包括接收到状态切换指令或任务执行结果时,会首先获取当前正在执行的执行动作,根据正在执行的执行动作进行任务的暂停或挂起或抛弃的处理,之后再像图1所示的实施例那样获取当前的状态切换指令或任务执行结果对应的新的待执行动作写入第一任务栈,并在写入后切换回主状态。具体地,可以预先配置待触发任务包含的触发事件及其对应的触发指令,即将事件进行分类,预先配置好需要挂起的事件类型,即触发事件有哪些,并为其配置对应的触发指令,这样,在接收到状态切换指令或任务执行结果时,就可以基于当前正在执行的动作的事件类型,来生成待触发任务写入第二任务栈或生成待执行动作写入第一任务栈。具体可以实现为,在接收到状态切换指令或任务执行结果时,首先获取当前正在执行的待执行动作,判断其是否为配置的触发事件,在判断其为触发事件时,将其作为待触发任务写入第二任务栈,否则将其作为需要继续执行的事件写入第一任务栈,或者也可以根据需求增加抛弃事件类型的配置,在判断为非触发事件时,进一步判断是否是需要抛弃的事件按,如是则抛弃,否则写入第一任务栈,本发明实施例对此不进行限制。另外,主状态下还监听写入到第二任务栈的待触发任务其对应的触发指令,以响应于触发指令,从第二任务栈读取并执行已写入的待触发任务。
由此,就可以根据不同的事件类型(执行事件、触发事件)应用第一任务栈或第二任务栈进行语音交互过程中的各种处理,不需要增加新的状态或动作,且减少了现有系统设计的状态维护和状态切换耗时,能够有效应对各种中断事件,避免阻塞。
图4示意性地显示了状态机接收到状态切换指令时的处理效果,示例性地,主状态设置为待唤醒状态,以图4所示的例子为例对状态机接收到切换指令的处理过程进行说明,在该例子中,第一任务栈1和第二任务栈2的初始状态均为空,状态机的当前状态为主状态即待唤醒状态,在主状态下正在执行“打开LED显示”和“播放提醒”的任务,而此时接收到唤醒指令,即此时被唤醒,这时,正在执行的任务被唤醒指令(在该场景下唤醒指令为状态切换指令的一个实例,在其他场景下根据实际情况状态切换指令还可以为其他)打断,主状态即响应唤醒指令,从而获取正在执行的任务将其根据任务的分类,即任务是只是暂停后续仍然需要执行的任务或是需要挂起后续要特定的触发事件(如按下特定的触发按键)才会继续执行的任务或是需要抛弃的任务,生成待执行动作写入第一任务栈或生成待触发任务写入第二任务栈或直接抛弃该任务,同时,主状态还会根据该唤醒指令获取其在第一映射关系中对应的待执行动作,如“播放唤醒提示语”写入第一任务栈。由此就得到图4所示的第一任务栈和第二任务栈的状态结果。
图5示意性地显示了状态机对多个任务同时进行处理的处理效果,示例性地,主状态设置为待唤醒状态,以图5所示的例子为例对状态机在状态切换时能够处理多个任务的过程进行说明,如图5所示,状态机会在主状态下依次读取第一任务栈中的所有需要执行的待执行动作,并在执行完该动作后立即回到主状态即待唤醒状态,直至任务栈为空栈,完成状态的快速切换,使得状态机大部分时间都处于主状态即待唤醒状态下。
根据本实施例提供的方法,通过在状态机中设置两种类型的任务栈和一个主状态,不会影响梳理状态机的流程,由此使得状态流转变得简明,并让状态大都处在稳定空闲状态(即大都处在稳定的主状态),不需要开发者管理太多的状态并且编码清晰度、代码可读性都大幅度提高,明显提高其状态机的容错率和效率,从而提升设备的运行效率。
图6示意性地显示了根据本发明一实施方式的基于任务栈的语音交互状态机原理图,如图6所示,其包括:
用于存储待执行任务的第一任务栈1;
用于存储待触发任务的第二任务栈2;
用于设定语音交互状态机的主状态的状态设定模块3;
任务处理模块4,用于监听状态切换指令,并根据监听结果进行相应处理;和
存储模块5,其存储有状态变化与待执行动作的第一映射关系、各执行动作的执行结果对应的待响应动作的第二映射关系、以及待触发任务包含的触发事件及其对应的触发指令。
其中,如图6所示,任务处理模块63包括
任务写入单元41,用于响应于接收到的状态切换指令或动作执行结果,生成待执行动作写入第一任务栈,并在写入后将状态机的状态切换回主状态;
任务执行单元42,用于在主状态下依次读取并执行第一任务栈中已写入的待执行动作;
挂起监听单元43,用于响应于状态切换指令或任务执行结果,生成待触发任务写入第二任务栈;和
触发监听单元44,用于响应于触发指令,从第二任务栈读取并执行已写入的待触发任务。
其中,第一任务栈1和第二任务栈2可以实现为先入后出的栈表,状态设定模块3可以通过设置状态机的状态标识进行实现,而任务处理模块4的具体实现方式可以参照上述的方法部分描述,在此不进行赘述。其中,需要说明的是,图6所示的是本发明的一个优选实现例,在其他实现例中,也可以仅仅设置一个第一任务栈,而不设置用于挂起任务的第二任务栈,即对应图1所示实施例的实现方式,此时任务处理模块中的相应处理单元也可以不设置。
根据本实施例提供的基于任务栈的语音交互状态机,可以使得状态流转变得简明,并让状态大都处在稳定空闲状态,不需要开发者管理太多的状态并且编码清晰度、代码可读性都大幅度提高,明显提高其状态机的容错率和效率,从而提升设备的运行效率。
在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述基于任务栈的语音交互状态机的实现的方法。
在一些实施例中,本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当所程序指令被计算机执行时,使计算机执行上述基于任务栈的语音交互状态机的实现的方法。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被所述至少一个处理器执行,以使至少一个处理器能够执行上述基于任务栈的语音交互状态机的实现的方法。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时能够执行上述基于任务栈的语音交互状态机的实现的方法。
上述本发明实施例的基于任务栈的语音交互状态机的实现的装置可用于执行本发明实施例的基于任务栈的语音交互状态机的实现的方法,并相应的达到上述本发明实施例的实现基于任务栈的语音交互状态机的实现的方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
图7是本申请另一实施例提供的执行基于任务栈的语音交互状态机的实现的方法的电子设备的硬件结构示意图,如图7所示,该设备包括:
一个或多个处理器510以及存储器520,图7中以一个处理器510为例。
执行基于任务栈的语音交互状态机的实现方法的设备还可以包括:输入装置530和输出装置540。
处理器510、存储器520、输入装置530和输出装置540可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器520作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的基于任务栈的语音交互状态机的实现方法对应的程序指令/模块。处理器510通过运行存储在存储器520中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的基于任务栈的语音交互状态机的实现方法。
存储器520可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据基于任务栈的语音交互状态机的装置的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器520可选包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至基于任务栈的语音交互状态机的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可接收输入的数字或字符信息,以及产生与基于任务栈的语音交互状态机的装置的用户设置以及功能控制有关的信号。输出装置540可包括显示屏等显示设备。
上述一个或者多个模块存储在所述存储器520中,当被所述一个或者多个处理器510执行时,执行上述任意方法实施例中的基于任务栈的语音交互状态机的实现方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围
以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (10)
1.基于任务栈的语音交互状态机的实现方法,其特征在于,包括如下步骤:
配置用于存储待执行任务的第一任务栈;
设定语音交互状态机的主状态;
监听状态切换指令,并根据监听结果进行相应处理,其实现为包括
响应于接收到的状态切换指令或动作执行结果,基于状态切换指令或动作执行结果生成待执行动作写入所述第一任务栈,并在写入后切换回主状态;
在语音交互状态机处于主状态时,依次读取并执行第一任务栈中已写入的待执行动作。
2.根据权利要求1所述的方法,其特征在于,所述响应于接收到的状态切换指令或动作执行结果,生成待执行动作写入所述第一任务栈包括
将状态变化映射为待执行动作,生成第一映射关系存储;
配置各执行动作的执行结果对应的待响应动作,生成第二映射关系存储;
在接收到状态切换指令时,根据所述第一映射关系获取匹配的待执行动作写入所述第一任务栈;
在接收到动作执行结果时,根据所述第二映射关系获取匹配的待响应动作,生成待执行动作写入所述第一任务栈。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括
配置用于存储待触发任务的第二任务栈;
所述监听状态切换指令,并根据监听结果进行相应处理,还实现为包括
响应于状态切换指令或任务执行结果,生成待触发任务写入所述第二任务栈,并在写入后切换回主状态;或响应于触发指令,从第二任务栈读取并执行已写入的待触发任务。
4.根据权利要求3所述的方法,其特征在于,所述响应于状态切换指令或任务执行结果,生成待触发任务写入所述第二任务栈实现为包括
配置待触发任务包含的触发事件及其对应的触发指令;
在接收到状态切换指令或任务执行结果时,获取当前正在执行的待执行动作,判断其是否为配置的触发事件,在判断其为触发事件时,将作为待触发任务写入所述第二任务栈,并监听其对应的触发指令;
所述响应于接收到的状态切换指令或动作执行结果,生成待执行动作写入所述第一任务栈还包括
在判断当前正在执行的执行动作为非触发事件时,将其作为待执行动作写入所述第一任务栈或丢弃。
5.根据权利要求4所述的方法,其特征在于,所述第一任务栈和第二任务栈均设置成先入后出的栈表。
6.基于任务栈的语音交互状态机,其特征在于,包括:
用于存储待执行任务的第一任务栈;和
状态设定模块,用于设定语音交互状态机的主状态;
任务处理模块,用于监听状态切换指令,并根据监听结果进行相应处理;
所述任务处理模块包括
任务写入单元,用于响应于接收到的状态切换指令或动作执行结果,基于状态切换指令或动作执行结果生成待执行动作写入所述第一任务栈,并在写入后切换回主状态;和
任务执行单元,用于在主状态下依次读取并执行第一任务栈中已写入的待执行动作。
7.根据权利要求6所述的基于任务栈的语音交互状态机,其特征在于,还包括
用于存储待触发任务的第二任务栈;
所述任务处理模块还包括
挂起监听单元,用于响应于状态切换指令或任务执行结果,生成待触发任务写入所述第二任务栈;和
触发监听单元,用于响应于触发指令,从第二任务栈读取并执行已写入的待触发任务。
8.根据权利要求7所述的基于任务栈的语音交互状态机,其特征在于,还包括:
存储模块,其存储有状态变化与待执行动作的第一映射关系、各执行动作的执行结果对应的待响应动作的第二映射关系、以及待触发任务包含的触发事件及其对应的触发指令。
9.电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任意一项所述方法的步骤。
10.存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911302157.9A CN111063350B (zh) | 2019-12-17 | 2019-12-17 | 基于任务栈的语音交互状态机及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911302157.9A CN111063350B (zh) | 2019-12-17 | 2019-12-17 | 基于任务栈的语音交互状态机及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111063350A CN111063350A (zh) | 2020-04-24 |
CN111063350B true CN111063350B (zh) | 2022-10-21 |
Family
ID=70302012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911302157.9A Active CN111063350B (zh) | 2019-12-17 | 2019-12-17 | 基于任务栈的语音交互状态机及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111063350B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631762B (zh) * | 2020-12-31 | 2023-10-27 | 东软睿驰汽车技术(沈阳)有限公司 | 一种车辆任务切换的方法和装置 |
CN115376513B (zh) * | 2022-10-19 | 2023-05-12 | 广州小鹏汽车科技有限公司 | 语音交互方法、服务器及计算机可读存储介质 |
CN116737366B (zh) * | 2023-05-15 | 2024-05-10 | 广州汽车集团股份有限公司 | 共享栈的处理方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737933A (zh) * | 2018-05-30 | 2018-11-02 | 上海与德科技有限公司 | 一种基于智能音箱的对话方法、装置及电子设备 |
CN110096191B (zh) * | 2019-04-24 | 2021-06-29 | 北京百度网讯科技有限公司 | 一种人机对话方法、装置及电子设备 |
CN110534108A (zh) * | 2019-09-25 | 2019-12-03 | 北京猎户星空科技有限公司 | 一种语音交互方法及装置 |
-
2019
- 2019-12-17 CN CN201911302157.9A patent/CN111063350B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111063350A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111063350B (zh) | 基于任务栈的语音交互状态机及其实现方法 | |
CN110457078B (zh) | 智能服务方法、装置及设备 | |
CN107025906A (zh) | 扩展语音识别的周期的方法和产品以及信息处理设备 | |
US8166194B2 (en) | Lock-free shared audio buffer | |
CN106648325B (zh) | 一种在锁屏界面上播放视频的方法、装置及电子设备 | |
CN109669754A (zh) | 语音交互窗口的动态显示方法、具有伸缩式交互窗口的语音交互方法及装置 | |
WO2016095386A1 (zh) | 一种短信处理方法及短信处理终端 | |
CN112231021A (zh) | 软件新功能的引导方法和装置 | |
US20200243085A1 (en) | Voice Processing Method, Apparatus and Device | |
CN109151172A (zh) | 音频输出控制方法及相关设备 | |
CN111782295A (zh) | 一种应用程序的运行方法、装置、电子设备及存储介质 | |
CN105979060A (zh) | 一种播放方法和装置 | |
CN109658934B (zh) | 通过语音控制多媒体app的方法及装置 | |
CN113672748A (zh) | 多媒体信息播放方法及装置 | |
CN107291472A (zh) | 应用程序的消息提醒的处理方法及装置 | |
CN114244821A (zh) | 数据处理方法、装置、设备、电子设备和存储介质 | |
CN110457077B (zh) | 智能服务方法、装置及设备 | |
CN111107147B (zh) | 一种消息推送方法及装置 | |
CN111161734A (zh) | 基于指定场景的语音交互方法及装置 | |
CN112114770A (zh) | 基于语音交互的界面引导方法、装置及设备 | |
CN114296854B (zh) | 一种桌面壁纸显示方法、装置、电子设备及可读存储介质 | |
CN109614252B (zh) | 用于智能故事机的音频播放调度方法及系统 | |
CN109697041A (zh) | 一种双屏显示的方法、移动终端及存储介质 | |
CN115188377A (zh) | 语音交互方法、电子设备和存储介质 | |
CN111857865A (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 | ||
CB02 | Change of applicant information |
Address after: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant after: Sipic Technology Co.,Ltd. Address before: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant before: AI SPEECH Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |