Automatic synchronization for an offline virtual assistant
[Object] Technology is provided to enable a mobile terminal to function as a digital assistant even when the mobile terminal is in a state where it cannot communicate with a server apparatus. [Solution] When a user terminal 200 receives a query A from a user, user terminal 200 sends query A to a server 100 . Server 100 interprets the meaning of query A using a grammar A. Server 100 obtains a response to query A based on the meaning of query A and sends the response to user terminal 200 . Server 100 further sends grammar A to user terminal 200 . That is, server 100 sends to user terminal 200 a grammar used to interpret the query received from user terminal 200.
1 . A computer-implemented method implemented in a server, comprising:
receiving input of a query from a client terminal;
performing natural language interpretation of the query using a grammar;
outputting a response to the query after performing the natural language interpretation;
sending the grammar to the client terminal; and
receiving an input of a delayed query, the delayed query being stored on the client terminal as a result of there not being a connection between the client terminal and the server, where delayed query is sent to the server after reestablishing a connection between the client terminal and the server.
2 . The method of claim 1 , further comprising:
determining, before sending the grammar to the client terminal, that the client does not store the grammar,
wherein sending the grammar to the client terminal is conditioned upon the client terminal not storing the grammar.
3 . The method of claim 1 , further comprising:
determining, before sending the grammar to the client terminal, that the client terminal is configured to perform a function using the grammar in an offline state in which the client terminal is not connected to the computer,
wherein sending the grammar to the client terminal is conditioned upon the client terminal being configured to perform the function using the grammar in the offline state.
4 . The method of claim 1 , wherein sending the grammar to the client terminal includes sending other grammars belonging to a domain to which the grammar belongs.
5 . The method of claim 1 , further comprising:
counting a number of times that the grammar is used in natural language interpretation of queries from the client terminal,
wherein sending the grammar to the client terminal is conditioned upon the counted number exceeding a threshold.
6 . The method of claim 5 , wherein the counting includes all times that grammars belonging to a domain to which the grammar belongs are used in natural language interpretation of the query.
7 . The method of claim 1 , further comprising:
predicting, based on the input query, a type of data needed to respond to a future query; and
sending data of that type to the client terminal.
8 . The method of claim 7 , wherein the sending the data of that type includes sending a time-to-live of the data of that type.
9 . The method of claim 1 , wherein the query input from the client terminal includes speech audio, the method further comprising:
training a speech recognition model personalized to a user of the client terminal by using utterances of the user; and
sending the trained speech recognition model to the client terminal.
10 . A computer-implemented method implemented in a server, comprising:
receiving input of a query from a client terminal;
performing natural language interpretation of the query using a grammar;
outputting a response to the query after performing the natural language interpretation; and
sending the grammar to the client terminal; and
receiving an input of a delayed query together with metadata associated with the delayed query, the delayed query being stored on the client terminal as a result of there not being a connection between the client terminal and the server, where delayed query is sent to the server after reestablishing a connection between the client terminal and the server, the metadata including information regarding when the query was initially generated in the client terminal.
11 . A computer-implemented method implemented in a server-based conversational system, comprising:
receiving, from a client terminal, a first query generated by a user;
sending, from the server to the client terminal, a grammar usable by the client terminal to perform natural language interpretation of user queries while offline;
after the client terminal enters an offline state in which a network connection to the server is unavailable, receiving at the client terminal a second query generated by the user;
attempting, at the client terminal, to perform natural language interpretation of the second query using the grammar while the client terminal remains offline;
upon determining that the natural language interpretation of the second query is unsuccessful, storing the second query in a failure data region of memory of the client terminal as a delayed query together with metadata including at least one of time information or positional information associated with generation of the second query;
after reestablishing the network connection between the client terminal and the server, transmitting the delayed query and the associated metadata from the client terminal to the server; and
receiving, at the server, the delayed query after reestablishing the network connection and performing natural language interpretation of the delayed query to generate a response.
12 . The method of claim 11 , further comprising:
determining, before sending the grammar to the client terminal, that the client does not store the grammar,
wherein sending the grammar to the client terminal is conditioned upon the client terminal not storing the grammar.
13 . The method of claim 11 , further comprising:
determining, before sending the grammar to the client terminal, that the client terminal is configured to perform a function using the grammar in an offline state in which the client terminal is not connected to the computer,
wherein sending the grammar to the client terminal is conditioned upon the client terminal being configured to perform the function using the grammar in the offline state.
14 . The method of claim 11 , wherein sending the grammar to the client terminal includes sending other grammars belonging to a domain to which the grammar belongs.
15 . The method of claim 11 , further comprising:
counting a number of times that the grammar is used in natural language interpretation of queries from the client terminal,
wherein sending the grammar to the client terminal is conditioned upon the counted number exceeding a threshold.
16 . The method of claim 15 , wherein the counting includes all times that grammars belonging to a domain to which the grammar belongs are used in natural language interpretation of the query.
17 . The method of claim 1 , further comprising:
predicting, based on the input query, a type of data needed to respond to a future query; and
sending data of that type to the client terminal.
18 . The method of claim 17 , wherein the sending the data of that type includes sending a time-to-live of the data of that type.
19 . The method of claim 11 , wherein the query input from the client terminal includes speech audio, the method further comprising:
training a speech recognition model personalized to a user of the client terminal by using utterances of the user; and
sending the trained speech recognition model to the client terminal.