IP Library Granted Patent US 12,283,270
Granted Patent B2
US 12,283,270 · App. 17/541,098 · Granted Apr 22, 2025

Example-based voice bot development techniques

Inventors: Asaf Aharoni (Ramat Hasharon, IL); Yaniv Leviathan (New York, NY); Eyal Segalis (Tel Aviv, IL); Gal Elidan (Modiin, IL); Sasha Goldshtein (Tel Aviv, IL); Tomer Amiaz (Tel Aviv, IL); Deborah Cohen (Tel Aviv, IL)
Assignee: GOOGLE LLC
G10L15/063G10L15/22G10L15/30H04L67/133H04L67/53H04M3/5166G10L2015/0635G10L2015/228
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,283,270
App. No.
17/541,098
Granted
Apr 22, 2025
Kind
B2
Abstract

Implementations are directed to providing a voice bot development platform that enables a third-party developer to train a voice bot based on training instance(s). The training instance(s) can each include training input and training output. The training input can include a portion of a corresponding conversation and a prior context of the corresponding conversation. The training output can include a corresponding ground truth response to the portion of the corresponding conversation. Subsequent to training, the voice bot can be deployed for conducting conversations on behalf of a third-party. In some implementations, the voice bot is further trained based on a corresponding feature emphasis input that attentions the voice bot to a particular feature of the portion of the corresponding conversation. In some additional or alternative implementations, the voice bot is further trained to interact with third-party system(s) via remote procedure calls (RPCs).

Claims (73)

1. A method implemented by one or more processors, the method comprising:

obtaining, via a voice bot development platform, a plurality of remote procedure call (RPC) outbound training instances, each of the plurality of RPC outbound training instances including:

training instance input, the training instance input including at least a portion of a corresponding conversation and a prior context of the corresponding conversation, and

training instance output, the training instance output including a corresponding ground truth response to at least the portion of the corresponding conversation, wherein the corresponding ground truth response for the training instance output of a given RPC outbound training instance, of the plurality of RPC outbound training instances, comprises at least a corresponding RPC outbound request;

training, via the voice bot development platform, a voice bot based on at least the plurality of RPC outbound training instances,

wherein training the voice bot based on the plurality of RPC outbound training instances causes the voice bot to interact with a third-party system,

wherein training the voice bot based on the given RPC outbound training instance comprises utilizing one or more attention mechanisms to attention the voice bot to generate the corresponding RPC outbound request, to be transmitted to the third-party system, and based on processing at least the portion of the corresponding conversation and the prior context of the corresponding conversation, and

wherein processing at least the portion of the corresponding conversation and the prior context of the corresponding conversation to train the voice bot comprises:

processing, using a plurality of machine learning (ML) layers of a ML model, and for the given RPC outbound training instance, at least the portion of the corresponding conversation and the prior context of the corresponding conversation to generate an embedding associated with a current state of the corresponding conversation;

processing, using a plurality of additional ML layers of the ML model, at least the embedding associated with the current state of the corresponding conversation to generate a predicted embedding associated with a predicted response to at least the portion of the corresponding conversation;

comparing, in embedding space, the predicted embedding associated with the predicted response to at least the portion of the corresponding conversation and a corresponding ground truth embedding associated with the corresponding RPC outbound request;

generating, based on comparing the predicted embedding and the corresponding ground truth embedding, one or more losses; and

updating the ML model based on one or more of the losses; and

subsequent to training the voice bot:

causing the trained voice bot to be deployed for conducting conversations on behalf of a third-party.

2. The method of claim 1 , wherein the portion of the corresponding conversation comprises a plurality of speech hypotheses for at least the portion of the corresponding conversation, and wherein processing at least the portion of the corresponding conversation and the prior context of the corresponding conversation to generate the embedding associated with the current state of the corresponding conversation comprises:

processing, using first ML layers of the plurality of ML layers, the plurality of speech hypotheses to generate a first embedding,

processing, using second ML layers of the plurality of ML layers, the prior context of the corresponding conversation to generate a second embedding, and

concatenating the first embedding and the second embedding to generate the embedding associated with the current state of the corresponding conversation.

3. The method of claim 2 , further comprising:

generating, via the voice bot development platform, a plurality of affinity features based on the embedding associated with the current state of the corresponding conversation.

4. The method of claim 3 , wherein processing at least the embedding associated with the current state of the corresponding conversation to generate the predicted embedding associated with the predicted response to at least the portion of the corresponding conversation and using the plurality of additional ML layers of the ML model comprises:

processing, using the plurality of additional ML layers of the ML model, and along with the embedding associated with the current state of the corresponding conversation, the plurality of affinity features to generate the predicted embedding associated with the predicted response to at least the portion of the corresponding conversation.

5. The method of claim 1 , wherein the third-party that deploys the voice bot is distinct from an additional third-party associated with the third-party system.

6. The method of claim 1 , wherein causing the trained voice bot to be deployed for conducting the conversations on behalf of the third-party comprises causing the trained voice bot to be deployed for conducting the conversations for telephone calls associated with the third-party, and wherein causing the trained voice bot to be deployed for conducting the conversations for the telephone calls associated with the third-party comprises:

causing the voice bot to answer corresponding incoming telephone calls and to conduct the conversations with corresponding humans that initiated the corresponding incoming telephone calls via respective client devices, wherein the voice bot, during the conversations with the corresponding humans, interacts with the third-party system via a corresponding RPC.

7. The method of claim 6 , further comprising:

subsequent to concluding the incoming telephone call:

generating a corresponding conversation summary for each of the conversations conducted during the corresponding incoming telephone calls, wherein one or more of the corresponding conversation summaries include an indication that the corresponding RPC occurred based on corresponding spoken utterances of the corresponding humans received during the corresponding incoming telephone calls; and

causing the corresponding conversation summaries of the conversations to be rendered via the voice bot development platform.

8. A method implemented by one or more processors, the method comprising:

obtaining, via a voice bot development platform, a plurality of remote procedure call (RPC) inbound training instances, each of the plurality of RPC inbound training instances including:

training instance input, the training instance input including at least a portion of a corresponding conversation and a prior context of the corresponding conversation, wherein at least the portion of the corresponding conversation for the training instance input of a given RPC inbound training instance, of the plurality of RPC inbound training instances, comprises at least a corresponding RPC inbound request, and

training instance output, the training instance output including a corresponding ground truth response to at least the portion of the corresponding conversation;

training, via the voice bot development platform, a voice bot based on at least the plurality of RPC inbound training instances,

wherein training the voice bot based on the plurality of RPC inbound training instances causes the voice bot to interact with a third-party system,

wherein training the voice bot based on the given RPC inbound training instance comprises utilizing one or more attention mechanisms to attention the voice bot to receive the corresponding RPC inbound request, from the third-party system, and based on processing at least the portion of the corresponding conversation and the prior context of the corresponding conversation, and

wherein processing at least the portion of the corresponding conversation and the prior context of the corresponding conversation to train the voice bot comprises:

processing, using a plurality of machine learning (ML) layers of a ML model, and for the given RPC inbound training instance, at least the portion of the corresponding conversation and the prior context of the corresponding conversation to generate an embedding associated with a current state of the corresponding conversation;

processing, using a plurality of additional ML layers of the ML model, at least the embedding associated with the current state of the corresponding conversation to generate a predicted embedding associated with a predicted response to at least the portion of the corresponding conversation;

comparing, in embedding space, the predicted embedding associated with the predicted response to at least the portion of the corresponding conversation and a corresponding ground truth embedding associated with the corresponding RPC inbound request;

generating, based on comparing the predicted embedding and the corresponding ground truth embedding, one or more losses; and

updating the ML model based on one or more of the losses; and

subsequent to training the voice bot:

causing the trained voice bot to be deployed for conducting conversations on behalf of a third-party.

9. The method of claim 8 , wherein processing at least the portion of the corresponding conversation and the prior context of the corresponding conversation to generate the embedding associated with the current state of the corresponding conversation comprises:

processing, using first ML layers of the plurality of ML layers, at least the RPC inbound request to generate a first embedding,

processing, using second ML layers of the plurality of ML layers, the prior context of the corresponding conversation to generate a second embedding, and

concatenating the first embedding and the second embedding to generate a predicted embedding associated with a predicted response to at least the portion of the corresponding conversation.

10. The method of claim 8 , wherein the third-party that deploys the voice bot is distinct from an additional third-party associated with the third-party system.

11. The method of claim 8 , wherein causing the trained voice bot to be deployed for conducting the conversations on behalf of the third-party comprises causing the trained voice bot to be deployed for conducting the conversations for telephone calls associated with the third-party, and wherein causing the trained voice bot to be deployed for conducting the conversations for the telephone calls associated with the third-party comprises:

causing the voice bot to answer corresponding incoming telephone calls and to conduct the conversations with corresponding humans that initiated the corresponding incoming telephone calls via respective client devices, wherein the voice bot, during the conversations with the corresponding humans, interacts with the third-party system via a corresponding RPC.

12. The method of claim 11 , further comprising:

subsequent to concluding the incoming telephone call:

generating a corresponding conversation summary for each of the conversations conducted during the corresponding incoming telephone calls, wherein one or more of the corresponding conversation summaries include an indication that the corresponding RPC occurred based on corresponding spoken utterances of the corresponding humans received during the corresponding incoming telephone calls; and

causing the corresponding conversation summaries of the conversations to be rendered via the voice bot development platform.

13. A system comprising:

at least one processor; and

memory storing instructions that, when executed, cause the at least one processor to be operable to;

obtain, via a voice bot development platform, a plurality of remote procedure call (RPC) outbound training instances, each of the plurality of RPC outbound training instances including:

training instance input, the training instance input including at least a portion of a corresponding conversation and a prior context of the corresponding conversation, and

training instance output, the training instance output including a corresponding ground truth response to at least the portion of the corresponding conversation, wherein the corresponding ground truth response for the training instance output of a given RPC outbound training instance, of the plurality of RPC outbound training instances, comprises at least a corresponding RPC outbound request;

train, via the voice bot development platform, a voice bot based on at least the plurality of RPC outbound training instances,

wherein training the voice bot based on the plurality of RPC outbound training instances causes the voice bot to interact with a third-party system,

wherein, in training the voice bot based on the given RPC outbound training instance, the at least one processor is operable to utilize one or more attention mechanisms to attention the voice bot to generate the corresponding RPC outbound request, to be transmitted to the third-party system, and based on processing at least the portion of the corresponding conversation and the prior context of the corresponding conversation, and

and

wherein, in processing at least the portion of the corresponding conversation and the prior context of the corresponding conversation to train the voice bot, the at least one processor is operable to:

process, using a plurality of machine learning (ML) layers of a ML model, and for the given RPC outbound training instance, at least the portion of the corresponding conversation and the prior context of the corresponding conversation to generate an embedding associated with a current state of the corresponding conversation;

process, using a plurality of additional ML layers of the ML model, at least the embedding associated with the current state of the corresponding conversation to generate a predicted embedding associated with a predicted response to at least the portion of the corresponding conversation;

compare, in embedding space, the predicted embedding associated with the predicted response to at least the portion of the corresponding conversation and a corresponding ground truth embedding associated with the corresponding RPC outbound request;

generate, based on comparing the predicted embedding and the corresponding ground truth embedding, one or more losses; and

update the ML model based on one or more of the losses; and subsequent to training the voice bot:

cause the trained voice bot to be deployed for conducting conversations on behalf of a third-party.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2022
From: AHARONI, ASAF; LEVIATHAN, YANIV; SEGALIS, EYAL; ELIDAN, GAL; GOLDSHTEIN, SASHA; AMIAZ, TOMER; COHEN, DEBORAH
To: GOOGLE LLC
Reel/Frame 059610/0738 →
Continuity (2)
Continuation In Part 17112418 · Dec 4, 2020
Related Publication 20220180858A1 · Jun 9, 2022
References Cited (42)
US 1069897A1 · Rajagopal et al. · 2020 [cited by applicant]
US 10691897B1 · Rajagopal · 2020 [cited by examiner]
US 10923109B2 · Chakraborty · 2021 [cited by examiner]
US 11113475B2 · Sampat et al. · 2021 [cited by applicant]
US 11373131B1 · Venugopal · 2022 [cited by applicant]
US 20150278706A1 · Shivashankar et al. · 2015 [cited by applicant]
US 20170300831A1 · Gelfenbeyn et al. · 2017 [cited by applicant]
US 20170330077A1 · Williams · 2017 [cited by examiner]
US 20190102078A1 · Bhatt et al. · 2019 [cited by applicant]
US 20190206393A1 · Fang et al. · 2019 [cited by applicant]
US 20190347319A1 · Goyal · 2019 [cited by applicant]
US 20190378015A1 · Lin et al. · 2019 [cited by applicant]
US 20200090651A1 · Tran · 2020 [cited by examiner]
US 20200097544A1 · Alexander et al. · 2020 [cited by applicant]
US 20200341970A1 · Rodrigues · 2020 [cited by applicant]
US 20200342032A1 · Subramaniam et al. · 2020 [cited by applicant]
US 20200344185A1 · Singaraju et al. · 2020 [cited by applicant]
US 20210157989A1 · Orr · 2021 [cited by examiner]
US 20210312260A1 · Wu · 2021 [cited by applicant]
US 20220107802A1 · Rao · 2022 [cited by applicant]
US 20220180857A1 · Aharoni · 2022 [cited by applicant]
US 20220230632A1 · Maitra · 2022 [cited by applicant]
US 20220238105A1 · Goldfarb · 2022 [cited by applicant]
CN 108229686 · 2018 [cited by applicant]
GB 2367402 · 2002 [cited by applicant]
JP H06204952 · 1994 [cited by applicant]
JP 2020030403 · 2020 [cited by applicant]
JP 2020030408 · 2020 [cited by applicant]
JP 2020154076 · 2020 [cited by applicant]
“Dialogflow Training” Google Cloud, Wayback Machine dated archive from Nov. 26, 2020, available at: https://web.archive.org/web/20201126044538/https://cloud.google.com/dialogflow/es/docs/training. (Year: 2020). [cited by examiner]
Over M. Singh et al., “KNADIA: Enterprise KNowledge Assisted DIAlogue Systems Using Deep Learning,” 2018 IEEE 34th International Conference on Data Engineering (ICDE), Paris, France, 2018, pp. 1423-1434 (Year: 2018). [cited by examiner]
Ayanouz, Soufyane, et al. “A smart chatbot architecture based NLP and machine learning for health care assistance.” Proceedings of the 3rd international conference on networking, information systems & security. (Year: 2… [cited by examiner]
“Dialogflow Training,” Google Cloud, Wayback Machine dated archive from Nov. 26, 2020, available at: “https://web.archive.org/web/20201126044538/https://cloud.google.com/dialogflow/es/docs/training” Dialogflow Training … [cited by examiner]
S. Punjabi, et al., “Chat bot Using API : Human To Machine Conversation,” 2019 Global Conference for Advancement in Technology (GCAT), Bangalore, India, 2019, pp. 1-5 (Year: 2019). [cited by examiner]
European Patent Office; International Search Report and Written Opinion issued in Application No. PCT/US2021/061855; 22 pages; dated Jun. 10, 2022. [cited by applicant]
Daniel, G. Cabot, J. et al.; Xatkit: A Multimodal Low-Code Chatbot Development Framework; in IEEE Access; vol. 8; pp. 15332-15346; dated 2020. [cited by applicant]
European Patent Office; Invitation to Pay Additional Fees; App. No. PCT/US2021/061855; 13 pages; dated Mar. 17, 2022. [cited by applicant]
European Patent Office; Intention to Grant issued for Application No. 21835519.6, 90 pages, dated May 29, 2024. [cited by applicant]
Japanese Patent Office; Notice of reasons for Rejection issued in Application No. 2022-571846; 5 pages; dated Feb. 5, 2024. [cited by applicant]
Japanese Patent Office; Notice of reasons for Rejection issued in Application No. 2022-571846; 4 pages; dated Jun. 24, 2024. [cited by applicant]
European Patent Office, Communication issued in Application No. 24203525.1; 7 pages; dated Oct. 28, 2024. [cited by applicant]
Intellectual Property India; Examination Report issued in Application No. 202227064278; 8 pages; dated Feb. 14, 2025. [cited by applicant]