IP Library Granted Patent US 11,646,017
Granted Patent B1
US 11,646,017 · App. 17/193,414 · Granted May 9, 2023

Efficient memory transformer based acoustic model for low latency streaming speech recognition

Inventors: Yangyang Shi (Bellevue, WA); Yongqiang Wang (Kirkland, WA); Chunyang Wu (Sunnyvale, CA); Ching-Feng Yeh (Redmond, WA); Julian Yui-Hin Chan (Seattle, WA); Qiaochu Zhang (Tuckahoe, NY); Duc Hoang Le (Sunnyvale, CA); Michael Lewis Seltzer (Seattle, WA)
Assignee: Meta Platforms, Inc.
G10L15/183G06N3/0445G10L15/16G10L15/22
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 11,646,017
App. No.
17/193,414
Granted
May 9, 2023
Kind
B1
Abstract

In one embodiment, a method includes accessing a machine-learning model configured to generate an encoding for an utterance by using a module to process data associated with each segment of the utterance in a series of iterations, performing operations associated with an i-th segment during an n-th iteration by the module, which include receiving an input comprising input contextual embeddings generated for the i-th segment in a preceding iteration and a memory bank storing memory vectors generated in the preceding iteration for segments preceding the i-th segment, generating attention outputs and a memory vector based on keys, values, and queries generated using the input, and generating output contextual embeddings for the i-th segment based on the attention outputs, providing the memory vector to the module for performing operations associated with the i-th segment in a next iteration, and performing speech recognition by decoding the encoding of the utterance.

Claims (52)

1. A method comprising, by one or more computing systems:

accessing a machine-learning model configured to generate an encoding for an utterance by using a module to process, in a series of hierarchical layers associated with the module, data associated with each of a sequence of segments of the utterance;

performing, by the module, operations associated with an i-th segment during an n-th iteration layer of the series of hierarchical layers, comprising:

receiving an input comprising (1) input contextual embeddings generated for the i-th segment in a preceding lower layer of the series of hierarchical layers and (2) a memory bank storing memory vectors generated in the preceding lower layer for one or more of the segments preceding the i-th segment, wherein the one or more of the segments exclude the i-th segment, and wherein each memory vector is determined based on an attention operation based on each of the one or more of the segments preceding the i-th segment;

generating attention outputs and a memory vector based on keys, values, and queries generated using the input; and

generating, based on the attention outputs, output contextual embeddings for the i-th segment;

providing the memory vector to the module for performing operations associated with the i-th segment in a next higher layer of the series of hierarchical layers; and

performing speech recognition by decoding the encoding of the utterance.

2. The method of claim 1 , wherein the input contextual embeddings for the i-th segment during the n-th layer comprises an embedding representing the i-th segment generated in the preceding lower layer and an embedding representing a right context block associated with the i-th segment generated in the preceding lower layer.

3. The method of claim 2 , further comprising:

making a copy of the embedding representing the right context block; and

putting the copy at a beginning of the received input.

4. The method of claim 1 , wherein generating the output contextual embeddings is based on a point-wise feed-forward network.

5. The method of claim 1 , wherein the output contextual embeddings for the i-th segment during the n-th layer comprises an embedding representing the i-th segment generated in the n-th layer and an embedding representing a right context block associated with the i-th segment generated in the n-th layer.

6. The method of claim 1 , wherein the output contextual embeddings for the i-th segment during the n-th layer are input contextual embeddings for the i-th segment during the next higher layer.

7. The method of claim 1 , generating the encoding for the utterance comprising:

after the series of hierarchical layers, identifying, from output contextual embeddings for each segment of the utterance, an embedding representing the segment; and

combining the identified embeddings of the segments of the utterance.

8. The method of claim 1 , further comprising:

after the n-th layer, updating the memory bank by adding the memory vector generated during the n-th layer.

9. The method of claim 1 , further comprising:

generating a summary vector for the i-th segment during the n-th layer, wherein the summary vector is based on a mean of the i-th segment; and

assigning a zero attention-weight between the summary vector and the memory bank.

10. The method of claim 1 , wherein the keys comprise at least a key carried over from one or more segments preceding the i-th segment.

11. The method of claim 1 , wherein the values comprise at least a value carried over from one or more segments preceding the i-th segment.

12. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

access a machine-learning model configured to generate an encoding for an utterance by using a module to process, in a series of hierarchical layers associated with the module, data associated with each of a sequence of segments of the utterance;

perform, by the module, operations associated with an i-th segment during an n-th layer of the series of hierarchical layers, comprising:

receiving an input comprising (1) input contextual embeddings generated for the i-th segment in a preceding lower layer of the series of hierarchical layers and (2) a memory bank storing memory vectors generated in the preceding lower layer for one or more of the segments preceding the i-th segment, wherein the one or more of the segments exclude the i-th segment, and wherein each memory vector is determined based on an attention operation based on each of the one or more of the segments preceding the i-th segment;

generating attention outputs and a memory vector based on keys, values, and queries generated using the input; and

generating, based on the attention outputs, output contextual embeddings for the i-th segment;

provide the memory vector to the module for performing operations associated with the i-th segment in a next higher layer of the series of hierarchical layers; and

perform speech recognition by decoding the encoding of the utterance.

13. The media of claim 12 , wherein the input contextual embeddings for the i-th segment during the n-th layer comprises an embedding representing the i-th segment generated in the preceding lower layer and an embedding representing a right context block associated with the i-th segment generated in the preceding lower layer.

14. The media of claim 13 , wherein the software is further operable when executed to:

make a copy of the embedding representing the right context block; and

put the copy at a beginning of the received input.

15. The media of claim 12 , wherein generating the output contextual embeddings is based on a point-wise feed-forward network.

16. The media of claim 12 , wherein the output contextual embeddings for the i-th segment during the n-th layer comprises an embedding representing the i-th segment generated in the n-th layer and an embedding representing a right context block associated with the i-th segment generated in the n-th layer.

17. A system comprising: one or more processors; and a non-transitory memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:

access a machine-learning model configured to generate an encoding for an utterance by using a module to process, in a series of hierarchical layers associated with the module, data associated with each of a sequence of segments of the utterance;

perform, by the module, operations associated with an i-th segment during an n-th layer of the series of hierarchical layers, comprising:

receiving an input comprising (1) input contextual embeddings generated for the i-th segment in a preceding lower layer of the series of hierarchical layers and (2) a memory bank storing memory vectors generated in the preceding lower layer for one or more of the segments preceding the i-th segment, wherein the one or more of the segments exclude the i-th segment, and wherein each memory vector is determined based on an attention operation based on each of the one or more of the segments preceding the i-th segment;

generating attention outputs and a memory vector based on keys, values, and queries generated using the input; and

generating, based on the attention outputs, output contextual embeddings for the i-th segment;

provide the memory vector to the module for performing operations associated with the i-th segment in a next higher layer of the series of hierarchical layers; and

perform speech recognition by decoding the encoding of the utterance.

18. The system of claim 17 , wherein the input contextual embeddings for the i-th segment during the n-th layer comprises an embedding representing the i-th segment generated in the preceding lower layer and an embedding representing a right context block associated with the i-th segment generated in the preceding lower layer.

19. The system of claim 18 , wherein the processors are further operable when executing the instructions to:

make a copy of the embedding representing the right context block; and

put the copy at a beginning of the received input.

20. The system of claim 17 , wherein generating the output contextual embeddings is based on a point-wise feed-forward network.

Assignments (2)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2021
From: SHI, YANGYANG; WANG, YONGQIANG; WU, CHUNYANG; YEH, CHING-FENG; CHAN, JULIAN YUI-HIN; ZHANG, QIAOCHU; LE, DUC HOANG; SELTZER, MICHAEL LEWIS
To: FACEBOOK, INC.
Reel/Frame 056133/0978 →
Cited By (2)
US 12,266,373 US 12,640,138