IP Library Granted Patent US 10,896,681
Granted Patent B2
US 10,896,681 · App. 14/982,567 · Granted Jan 19, 2021

Speech recognition with selective use of dynamic language models

Inventors: Petar Aleksic (Jersey City, NJ); Pedro J. Moreno Mengibar (Jersey City, NJ)
Assignee: Google LLC
G10L15/26G10L15/07G10L15/183G10L15/1815G10L15/197G10L15/30G10L2015/0635G10L2015/088G10L2015/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 10,896,681
App. No.
14/982,567
Filed
Dec 29, 2015
Granted
Jan 19, 2021
Kind
B2
Art Unit
2600
USPC
704/235
Abstract

This document describes, among other things, a computer-implemented method for transcribing an utterance. The method can include receiving, at a computing system, speech data that characterizes an utterance of a user. A first set of candidate transcriptions of the utterance can be generated using a static class-based language model that includes a plurality of classes that are each populated with class-based terms selected independently of the utterance or the user. The computing system can then determine whether the first set of candidate transcriptions includes class-based terms. Based on whether the first set of candidate transcriptions includes class-based terms, the computing system can determine whether to generate a dynamic class-based language model that includes at least one class that is populated with class-based terms selected based on a context associated with at least one of the utterance and the user.

Claims (57)

1. A computer-implemented method, comprising:

receiving, at a computing system, speech data that characterizes an utterance of a user;

generating a candidate transcription of the utterance using a static class-based language model that includes a plurality of static classes, each static class populated with a pre-defined set of class-based terms that were selected for inclusion in the static class independently of a context of the utterance or the user;

determining whether the candidate transcription includes a class-based term from at least one static class that is capable of being customized based on the context of the utterance or the user;

in response to determining that the candidate transcription includes a class-based term from at least one static class that is capable of being customized based on the context of the utterance or the user:

(i) generating a dynamic class-based language model that includes at least one dynamic class that is customized based on the context of the utterance or the user, including generating a first dynamic class by adding dynamic class-based terms that were selected based on the context of the utterance or the user to the pre-defined set of class-based terms for a first static class of the plurality of static classes, and

(ii) providing, using the dynamic class-based language model, a speech recognition result for the utterance.

2. The computer-implemented method of claim 1 , comprising:

generating a second candidate transcription of the utterance using the dynamic class-based language model,

wherein providing the speech recognition result for the utterance comprises determining the speech recognition result based on the second candidate transcription.

3. The computer-implemented method of claim 2 , wherein:

generating the candidate transcription comprises generating a lattice that identifies permutations of terms and probabilities that each of the permutations accurately transcribes at least a portion of the utterance; and

generating the second candidate transcription comprises adding to the lattice class-based terms selected based on the context of the utterance or the user.

4. The computer-implemented method of claim 1 , wherein the static class-based language model is an n-gram language model.

5. The computer-implemented method of claim 1 , comprising asynchronously retrieving context data describing the context of the user or the utterance before determining that the candidate transcription includes a class-based term from at least one static class that is capable of being customized based on the context of the utterance or the user.

6. The computer-implemented method of claim 1 , wherein the plurality of classes in the static class-based language model includes at least one of a contact names class, a locations class, a restaurants class, a dates class, and a times class.

7. The method of claim 1 , wherein the static class-based language model identifies initial probabilities of sequences of terms occurring in a natural language, and generating the dynamic class-based language model comprises modifying the initial probabilities of at least some of the sequences of terms based on the context of the utterance or the user.

8. The computer-implemented method of claim 1 , further comprising:

receiving, at the computing system, speech data that characterizes a second utterance of the user;

generating a candidate transcription of the second utterance using the static class-based language model;

determining whether the candidate transcription of the second utterance includes a class-based term from at least one static class, of the plurality of static classes of the static class-based language model, that is capable of being customized based on a context of the second utterance or the user;

in response to determining that the candidate transcription of the second utterance does not include a class-based term from at least one static class of the plurality of static classes, providing the candidate transcription of the second utterance as a speech recognition result for the second utterance, rather than generating a dynamic class-based language model that includes at least one dynamic class that is customized based on the context of the second utterance or the user.

9. The computer-implemented method of claim 1 , wherein the first dynamic class is customized based on the context of the utterance, and the context of the utterance includes a time or location that the utterance is identified as having been spoken.

10. The computer-implemented method of claim 1 , wherein the first dynamic class is customized based on the context of the user, and the context of the user includes profile data of the user, a contact list of the user, or social media data for the user.

11. The computer-implemented method of claim 1 , wherein determining whether the candidate transcription includes a class-based term from at least one static class that is capable of being customized based on the context of the utterance or the user comprises determining whether the candidate transcription includes a class label corresponding to at least one of the plurality of static classes that is capable of being customized based on the context of the utterance or the user.

12. The computer-implemented method of claim 1 , comprising selecting the candidate transcription of the utterance from a speech-recognition lattice that indicates scores for multiple possible transcriptions of the utterance,

wherein generating the speech recognition result comprises re-scoring the lattice using data that represents the context of the utterance or the user, and selecting a second transcription of the utterance from the re-scored lattice.

13. One or more non-transitory computer-readable media having instructions stored thereon that, when executed by one or more processors, cause performance of operations comprising:

receiving speech data that characterizes an utterance of a user;

generating a candidate transcription of the utterance using a static class-based language model that includes a plurality of static classes, each static class populated with a pre-defined set of class-based terms that were selected for inclusion in the static class independently of a context of the utterance or the user;

determining whether the candidate transcription includes a class-based term from at least one static class that is capable of being customized based on the context of the utterance or the user;

in response to determining that the candidate transcription includes a class-based term from at least one static class that is capable of being customized based on the context of the utterance or the user:

(i) generating a dynamic class-based language model that includes at least one dynamic class that is customized based on the context of the utterance or the user, including generating a first dynamic class by adding dynamic class-based terms that were selected based on the context of the utterance or the user to the pre-defined set of class-based terms for a first static class of the plurality of static classes, and

(ii) providing, using the dynamic class-based language model, a speech recognition result for the utterance.

14. The one or more non-transitory computer-readable media of claim 13 , wherein the operations comprise:

generating a second candidate transcription of the utterance using the dynamic class-based language model,

wherein providing the speech recognition result for the utterance comprises determining the speech recognition result based on the second candidate transcription.

15. The one or more non-transitory computer-readable media of claim 14 , wherein:

generating the candidate transcription comprises generating a lattice that identifies permutations of terms and probabilities that each of the permutations accurately transcribes at least a portion of the utterance; and

generating the second candidate transcription comprises adding to the lattice class-based terms selected based on the context of the utterance or the user.

16. The one or more non-transitory computer-readable media of claim 13 , wherein the static class-based language model identifies initial probabilities of sequences of terms occurring in a natural language, and the operation of generating the dynamic class-based language model comprises modifying the initial probabilities of at least some of the sequences of terms based on the context of the utterance or the user.

17. A computing system, comprising:

one or more processors; and

one or more computer-readable media having instructions stored thereon that, when executed by the one or more processors, cause performance of operations comprising:

receiving speech data that characterizes an utterance of a user;

generating a candidate transcription of the utterance using a static class-based language model that includes a plurality of static classes, each static class populated with a pre-defined set of class-based terms that were selected for inclusion in the static class independently of a context of the utterance or the user;

determining whether the candidate transcription includes a class-based term from at least one static class that is capable of being customized based on the context of the utterance or the user;

in response to determining that the candidate transcription includes a class-based term from at least one static class that is capable of being customized based on the context of the utterance or the user:

(i) generating a dynamic class-based language model that includes at least one dynamic class that is customized based on the context of the utterance or the user, including generating a first dynamic class by adding dynamic class-based terms that were selected based on the context of the utterance or the user to the pre-defined set of class-based terms for a first static class of the plurality of static classes, and

(ii) providing, using the dynamic class-based language model, a speech recognition result for the utterance.

18. The system of claim 17 , wherein the static class-based language model identifies initial probabilities of sequences of terms occurring in a natural language, and the operation of generating the dynamic class-based language model comprises modifying the initial probabilities of at least some of the sequences of terms based on the context of the utterance or the user.

19. The system of claim 17 , wherein the operations comprise:

generating a second candidate transcription of the utterance using the dynamic class-based language model,

wherein providing the speech recognition result for the utterance comprises determining the speech recognition result based on the second candidate transcription.

20. The system of claim 19 , wherein:

generating the candidate transcription comprises generating a lattice that identifies permutations of terms and probabilities that each of the permutations accurately transcribes at least a portion of the utterance; and

generating the second candidate transcription comprises adding to the lattice class-based terms selected based on the context of the utterance or the user.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: ALEKSIC, PETAR; MENGIBAR, PEDRO J. MORENO
To: GOOGLE INC.
Reel/Frame 037668/0895 →
Continuity (1)
Related Publication 20170186432A1 · Jun 29, 2017
Cited By (9)
US 12,216,707 US 12,282,489 US 12,332,857 US 12,411,888 US 12,462,793 US 12,481,781 US 12,488,043 US 12,524,560 US 12,536,182