IP Library Granted Patent US 12,525,227
Granted Patent B2
US 12,525,227 · App. 18/162,186 · Granted Jan 13, 2026

System and method for spectral pooling in streaming speech processing

Inventors: Felix Weninger (Burlington, MA); Dario Albesano (Venaria Reale, IT); Puming Zhan (Brookline, MA)
Assignee: Microsoft Technology Licensing, LLC
G10L15/16G10L21/02
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,525,227
App. No.
18/162,186
Granted
Jan 13, 2026
Kind
B2
Abstract

A method, computer program product, and computing system for inserting a spectral pooling layer into a neural network of a speech processing system. An output of a hidden layer of the neural network is filtered using the spectral pooling layer with a non-integer stride. The filtered output is provided to a subsequent hidden layer of the neural network.

Claims (50)

1 . A computer-implemented method, implemented by a computing system that includes one or more processors and one or more computer-readable hardware storage media having stored thereon computer-executable instructions, the computer-executable instructions being executable by the one or more processors to configure the computer system to implement the method, the method comprising:

inserting a first spectral pooling layer into a neural network of a speech processing system directly between a first hidden layer of the neural network and a second hidden layer of the neural network;

filtering an output of the first hidden layer of the neural network using the first spectral pooling layer with a first non-integer stride to generate a first filtered output;

providing the first filtered output to the second hidden layer of the neural network;

inserting a second spectral pooling layer into the neural network directly between the second hidden layer of the neural network and a third hidden layer of the neural network;

filtering an output of the second hidden layer of the neural network using the second spectral pooling layer with a second non-integer stride to generate a second filtered output; and

providing the second filtered output to the third hidden layer of the neural network.

2 . The computer-implemented method of claim 1 , wherein filtering the output of the first hidden layer of the neural network includes converting the output of the first hidden layer of the neural network from a time-domain signal to a frequency-domain signal.

3 . The computer-implemented method of claim 2 , wherein filtering the output of the first hidden layer of the neural network includes filtering a coefficient from the frequency-domain signal using the first non-integer stride to generate a filtered frequency-domain signal.

4 . The computer-implemented method of claim 3 , wherein filtering the output of the first hidden layer of the neural network includes converting the filtered frequency-domain signal into a filtered time-domain signal.

5 . The computer-implemented method of claim 1 , wherein filtering the output of the first hidden layer of the neural network using the first spectral pooling layer includes distributing a stride value across at least the first spectral pooling layers and the second spectral pooling layer.

6 . The computer-implemented method of claim 3 , wherein filtering the output of the first hidden layer of the neural network using the first spectral pooling layer includes performing spectral upsampling on the filtered frequency-domain signal.

7 . A computing system comprising:

one or more processors; and

one or more computer-readable hardware storage media having stored thereon computer-executable instructions, the computer-executable instructions being executable by the one or more processors to configure the computer system to:

insert a first spectral pooling layer into a neural network of a speech processing system directly between a first hidden layer of the neural network and a second hidden layer of the neural network;

filter an output of the first hidden layer of the neural network using the first spectral pooling layer with a first non-integer stride and a first matrix filter to generate a first filtered output;

provide the filtered output to the second hidden layer of the neural network;

insert a second spectral pooling layer into the neural network directly between the second hidden layer of the neural network and a third hidden layer of the neural network;

filter an output of the second hidden layer of the neural network using the second spectral pooling layer with a second non-integer stride to generate a second filtered output; and

provide the second filtered output to the third hidden layer of the neural network.

8 . The computing system of claim 7 , wherein filtering the output of the first hidden layer of the neural network using the spectral pooling layer includes:

generating the matrix filter.

9 . The computing system of claim 8 , wherein generating the matrix filter includes:

generating a complex matrix representation of a discrete Fourier transform.

10 . The computing system of claim 9 , wherein generating the matrix filter includes:

generating a coefficient filtering matrix.

11 . The computing system of claim 10 , wherein generating the matrix filter includes:

generating a complex matrix representation of an inverse Fourier transform.

12 . The computing system of claim 11 , wherein filtering the output of the first hidden layer of the neural network using the first spectral pooling layer includes:

generating the matrix filter by multiplying the complex matrix representation of the discrete Fourier transform, the coefficient filtering matrix, and the complex matrix representation of an inverse Fourier transform; and

generating the filtered output by multiplying the output of the first hidden layer of the neural network and the matrix filter.

13 . A hardware storage device having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

inserting a first spectral pooling layer into a neural network of a speech processing system directly between a first hidden layer of the neural network and a second hidden layer of the neural network;

filtering an output of the first hidden layer of the neural network using the first spectral pooling layer with a first non-integer stride and a first complex matrix filter to generate a first filtered output by multiplying the output of the first hidden layer of the neural network by a real portion of the first complex matrix filter;

providing the first filtered output to the second hidden layer of the neural network;

inserting a second spectral pooling layer into the neural network directly between the second hidden layer of the neural network and a third hidden layer of the neural network;

filtering an output of the second hidden layer using the second spectral pooling layer with a second non-integer stride and a second complex matrix filter to generate a second filtered output by multiplying the output of the second hidden layer of the neural network by a real portion of the second complex matrix filter; and

providing the second filtered output to the third hidden layer of the neural network.

14 . The hardware storage device of claim 13 , wherein filtering the output of the first hidden layer of the neural network using the spectral pooling layer includes:

generating the complex matrix filter.

15 . The hardware storage device of claim 14 , wherein generating the complex matrix filter includes:

generating a complex matrix representation of a discrete Fourier transform;

generating a coefficient filtering matrix;

generating a complex matrix representation of an inverse Fourier transform;

generating the matrix filter by multiplying the complex matrix representation of the discrete Fourier transform, the coefficient filtering matrix, and the complex matrix representation of an inverse Fourier transform; and

generating the filtered output by multiplying the output of the first hidden layer of the neural network and the matrix filter.

16 . The hardware storage device of claim 13 , wherein filtering the output of the hidden layer of the neural network using the spectral pooling layer includes:

distributing a stride value across a plurality of spectral pooling layers.

17 . The hardware storage device of claim 13 , wherein the speech processing system is a streaming automated speech recognition (ASR) system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2023
From: NUANCE COMMUNICATIONS, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 065530/0871 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2023
From: WENINGER, FELIX; ALBESANO, DARIO; ZHAN, PUMING
To: NUANCE COMMUNICATIONS, INC.
Reel/Frame 062548/0693 →