IP Library Granted Patent US 10,996,931
Granted Patent B1
US 10,996,931 · App. 16/209,854 · Granted May 4, 2021

Integrated programming framework for speech and text understanding with block and statement structure

Inventors: Keyvan Mohajer (Los Gatos, CA); Seyed M. Emami (Cupertino, CA); Chris Wilson (Sunnyvale, CA); Bernard Mont-Reynaud (Sunnyvale, CA)
Assignee: SoundHound, Inc.
G06F8/31G10L15/06G10L15/22H04M3/4938
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,996,931
App. No.
16/209,854
Granted
May 4, 2021
Kind
B1
Abstract

The technology disclosed relates to authoring of vertical applications of natural language understanding (NLU), which analyze text or utterances and construct their meaning. In particular, it relates to new programming constructs and tools and data structures implementing those new applications.

Claims (41)

1. A method of building an automated natural language understanding application, the method including:

receiving at least one electronic record containing programming code that interprets sequences of input tokens by extending a programming language with interpret-block and interpret-statement data structures;

wherein the interpret-block data structures include at least one of the interpret-statements and one or more variables returned by the interpret-block;

wherein at least one of the interpret-statements includes a pattern of one or more tokens, and one or more action instructions;

wherein the action instructions perform logic to construct a meaning of the sequence of input tokens; and

further including parsing the received program code to produce an executable representation of the interpret-block and interpret-statement data structures.

2. The method in claim 1 , wherein outgoing weights are associated with token alternatives to express probabilities of token sequences.

3. The method in claim 2 , wherein the outgoing weights at each token are automatically normalized.

4. The method in claim 3 , wherein the normalization of outgoing weights is performed at sub-expressions.

5. The method in claim 1 , wherein at least one token of at least one interpret-statement is another interpret-block.

6. The method in claim 5 , wherein the variables returned from other interpret-blocks are made available to action statements inside the interpret block.

7. The method in claim 1 , wherein at least one token of the interpret-statement can be an extended pattern table with fixed returned values for each row of the table and without any action statements.

8. The method in claim 1 , wherein the weight of a parsed or partially parsed sequence of tokens is the combination of the weights of all of its possible parses or partial parses.

9. A parser used to build a natural language understanding application, the parser including:

at least one processor, memory coupled to the processor, and computer instructions in the memory that, when executed, cause the processor to take actions including:

receiving at least one electronic record containing programming code that interprets sequences of input tokens by extending a programming language with interpret-block and interpret-statement data structures;

wherein the interpret-block data structures include at least one of the interpret-statements and one or more variables returned by the interpret-block;

wherein at least one of the interpret-statements includes a pattern of one or more tokens, and one or more action instructions;

wherein the action instructions perform logic to construct a meaning of the sequence of input tokens; and

further including parsing the received program code to produce an executable representation of the interpret-block and interpret-statement data structures.

10. The parser of claim 9 , wherein outgoing weights are associated with token alternatives to express probabilities of token sequences.

11. The parser of claim 10 , wherein the outgoing weights at each token are automatically normalized.

12. The parser of claim 11 , wherein the normalization of outgoing weights is performed at sub-expressions.

13. The parser of claim 9 , wherein at least one token of at least one interpret-statement is another interpret-block.

14. The parser of claim 13 , wherein the variables returned from other interpret-blocks are made available to action statements inside the interpret block.

15. The parser of claim 9 , wherein at least one token of the interpret-statement can be an extended pattern table with fixed returned values for each row of the table and without any action statements.

16. The parser of claim 9 , wherein the weight of a parsed or partially parsed sequence of tokens is the combination of the weights of all of its possible parses or partial parses.

17. A method of building a natural language understanding application, the method including:

receiving at least one electronic record containing programming code, the programming code expressed using an extension of a general purpose programming language; and

creating executable code from the programming code,

wherein the executable code, when executed by a processor, causes the processor to create a parse and an interpretation of a sequence of input tokens,

wherein the programming code includes an interpret-block,

wherein the interpret-block includes an interpret-statement,

wherein the interpret-statement includes a pattern expression, and

wherein the interpret-statement includes an action statement expressed in the programming language.

18. The method of claim 17 , wherein the pattern expression includes pattern tokens.

19. The method of claim 18 , wherein pattern tokens are associated with weights.

20. The method of claim 19 , wherein the weights are automatically normalized.

21. The method of claim 18 , wherein at least one pattern token refers to a second interpret-block.

22. The method of claim 21 , wherein the second interpret-block has a return variable, and a value of the return variable is made available to the action statement.

23. The method of claim 17 , wherein an extended pattern token table refers to a table of token expressions, and each row in the table has a fixed returned return value, and has no associated action statement.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 3, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
To: SOUNDHOUND, INC.
Reel/Frame 069480/0312 →
SECURITY INTEREST Recorded Aug 9, 2024
From: SOUNDHOUND, INC.
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 068526/0413 →
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2024
From: ACP POST OAK CREDIT II LLC, AS COLLATERAL AGENT
To: SOUNDHOUND, INC.; SOUNDHOUND AI IP, LLC
Reel/Frame 067698/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2023
From: SOUNDHOUND AI IP HOLDING, LLC
To: SOUNDHOUND AI IP, LLC
Reel/Frame 064205/0676 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2023
From: SOUNDHOUND, INC.
To: SOUNDHOUND AI IP HOLDING, LLC
Reel/Frame 064083/0484 →
SECURITY INTEREST Recorded Apr 17, 2023
From: SOUNDHOUND, INC.; SOUNDHOUND AI IP, LLC
To: ACP POST OAK CREDIT II LLC
Reel/Frame 063349/0355 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2019
From: MOHAJER, KEYVAN; EMAMI, SEYED M.; WILSON, CHRIS; MONT-REYNAUD, BERNARD
To: SOUNDHOUND, INC.
Reel/Frame 049891/0830 →
Continuity (3)
Continuation 13843290 · Mar 15, 2013
Provisional Application 61674833 · Jul 23, 2012
Provisional Application 61798526 · Mar 15, 2013