# US 2013/0158997 A1 · Acoustic Processing Unit Interface

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2013/0158997 A1
- Document ID: US20130158997A1
- Status: Published application
- Kind: A1
- Application number: 13/490,124
- Filed: 2012-06-06
- Published: 2013-06-20
- Earliest claimed: 2011-12-19
- Assignees: Spansion LLC
- Inventors: Venkataraman Natarajan; Stephan Rosner
- Web page: https://patentgrep.com/patent/US20130158997A1

## CPC

- G06F 17/10: Complex mathematical operations {(function generation by table look-up G06F1/03; evaluation of elementary functions by calculation G06F7/544)}
- G10L 15/08: Speech classification or search
- G10L 15/28: Constructional details of speech recognition systems
- G10L 15/02: Feature extraction for speech recognition; Selection of recognition unit
- G10L 15/14: using statistical models, e.g. Hidden Markov Models [HMMs] (G10L15/18 takes precedence)
- G10L 15/187: Phonemic context, e.g. pronunciation rules, phonotactical constraints or phoneme n-grams
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING

## Abstract

Embodiments of the present invention include an apparatus, method, and system for acoustic modeling. In an embodiment, a speech recognition system is provided. The system includes a processing unit configured to divide a received audio signal into consecutive frames having respective frame vectors, an acoustic processing unit (APU), a data bus that couples the processing unit and the APU. The APU includes a local, non-volatile memory that stores a plurality of senones, a memory buffer coupled to the memory, the acoustic processing unit being configured to load at least one Gaussian probability distribution vector stored in the memory into the memory buffer, and a scoring unit configured to simultaneously compare a plurality of dimensions of a Gaussian probability distribution vector loaded into the memory buffer with respective dimensions of a frame vector received from the processing unit and to output a corresponding score to the processing unit.

## Claims

### Claim 1

A speech recognition system, comprising:
a processing unit configured to divide a received audio signal into consecutive frames having respective frame vectors;
an acoustic processing unit (APU), comprising:
a local, non-volatile memory that stores a plurality of senones;
a memory buffer coupled to the memory, Wherein the acoustic processing unit is configured to load at least one Gaussian probability distribution vector stored in the memory into the memory buffer; and
a scoring unit configured to simultaneously compare a plurality of dimensions of a Gaussian probability distribution vector loaded into the memory buffer with respective dimensions of a frame vector received from the processing unit and to output a corresponding score to the processing unit;
wherein the acoustic processing unit is configured to perform a comparison using a first frame while the processing unit performs a search operation using a score corresponding to a second frame, the second frame immediately preceding the first frame; and
a data bus that couples the processing unit and the APU.

### Claim 2 (depends on 1)

The speech recognition system of claim 1, wherein the processing unit is configured to concurrently run a search thread and a distance computation thread.

### Claim 3 (depends on 2)

The speech recognition system of claim 2, wherein the processing unit comprises:
an application programming interface (API) module configured to receive a command from the distance computation thread and generate one or more corresponding commands to be received by the APU.

### Claim 4 (depends on 3)

The speech recognition system of claim 3, wherein the API module comprises:
a Generic DCA configured to receive a command from the distance computation thread and output one or more functions in the library that implement the received command.

### Claim 5 (depends on 4)

The speech recognition system of claim 4, the Generic DCA specifies at least:
(i) a Create function that stores an acoustic model, a number of dimensions in a feature vector, and a number of senones in the acoustic model as state information;
(ii) a Set Feature function that stores a feature vector corresponding to a received frameID;
(iii) a Compute Scores function that specifies at least one senone to be scored for a frame;
(iv) a Fill Scores function that stores senone scores in a buffer;
(v) a Set Feature Matrix function that stores a feature vector transform matrix and adapts the comparison to a specific speaker.

### Claim 6 (depends on 5)

The speech recognition system of claim 5, wherein the API module further comprises an APU library configured to receive parameters from the Generic DCA and output parameters compatible with the APU.

### Claim 7 (depends on 6)

The speech recognition system of claim 6, the APU library specifies at least:
(i) a Set Acoustic Model function that sets an acoustic model to be used for senone scoring;
(ii) a Load Feature Vector function that loads a feature vector in to the APU;
(iii) a Score Senone Chunk function that loads a senone list in to the APU;
(iv) a Score Range function that specifies that all senones in a range are to be scored;
(v) a Read Senone Scores function that reads senone scores and stores the senone scores in a destination buffer;
(vi) a Check Score Ready Status function that determines if senone scores are ready to be read from the APU;
(vii) a Read Score Length function that reads a first status register of the APU to determine a number of score entries that are available;
(viii) a Read Status function that reads a second status register of the APU to determine a status of a read operation;
(ix) a Read Configuration function that reads a configuration register of the APU; and
(x) a Write Configuration function that writes to the configuration register.

### Claim 8 (depends on 6)

The speech recognition system of claim 6, wherein the API module further comprises:
a hardware abstraction layer (HAL) configured to interface between the APU library and the APU.

### Claim 9

An acoustic processing method, comprising:
dividing a received audio signal into a plurality of frames using a processing unit;
comparing a feature vector associated with a first frame of the plurality of frames to a Gaussian probability distribution vector using an acoustic processing unit (APU) to generate a score; and
concurrently with the comparing, performing a search operation using a score corresponding to a feature vector associated with a second frame of the plurality of frames received from an acoustic processing unit (APU) using the processing unit, Wherein the second frame immediately precedes the first frame and wherein the processing unit and the APU are coupled over a data bus.

### Claim 10 (depends on 9)

The acoustic processing method of claim 9, further comprising:
creating a search thread and a distance computation thread on the processing unit.

### Claim 11 (depends on 9)

The acoustic processing method of claim 9, wherein the distance computation thread controls the comparing via an application programming interface (API).

### Claim 12 (depends on 11)

The acoustic processing method of claim 11, wherein the API comprises:
a Generic DCA:
an APU library; and
a hardware abstraction layer (HAL).

### Claim 13 (depends on 12)

The acoustic processing method of claim 12, the Generic DCA specifics at least:
(i) a Create function that stores an acoustic model, a number of dimensions in a feature vector, and a number of senones in the acoustic model as state information;
(ii) a Set Feature function that stores a feature vector corresponding to received frameID;
(iii) a Compute Scores function that specifies at least one senone to be scored for a frame;
(iv) a Fill Scores function that stores senone scores in a buffer; and
(v) a Set Feature Matrix function that stores a feature vector transform matrix and adapts the comparison to a specific speaker.

### Claim 14 (depends on 12)

The acoustic processing method of claim 12, the APU library specifies at least:
(i) a Set Acoustic Model function that sets an acoustic model to be used for senone scoring;
(ii) a Load Feature Vector function that loads a feature vector in to the APU;
(iii) a Score Senone Chunk function that loads a senone list in to the APU;
(iv) a Score Range function that specifies that all senones in a range are to be scored;
(v) a Read Senone Scores function that reads senone scores and stores the senone scores in a destination buffer;
(vi) a Check Score Ready Status function that determines if senone scores are ready to be read from the APU;
(vii) a Read Score Length function that reads a first status register of the APU to determine a number of score entries that are available;
(viii) a Read Status function that reads a second status register of the APU to determine a status of a read operation;
(ix) a Read Configuration function that reads a configuration register of the APU; and
(x) a Write Configuration function that writes to the configuration register.

### Claim 15

A computer readable medium having stored therein one or more sequences of one or more instructions for execution by one or more processors to perform an acoustic processing method, the method comprising:
dividing a received audio signal into a plurality of frames using a processing unit;
outputting a feature vector associated with a first frame of the plurality of frames to an acoustic processing unit, wherein the acoustic processing unit is configured to compare the first frame to a Gaussian probability distribution vector to generate a score; and
concurrently with the comparison on the APU, performing a search operation using a score corresponding to a feature vector associated with a second frame of the plurality of frames received from an acoustic processing unit (APU) using the processing unit, wherein the second frame immediately precedes the first frame and wherein the processing unit and the APU are coupled over a data bus.

### Claim 16 (depends on 15)

The computer readable medium of claim 15, the method further comprising:
creating a search thread and a distance computation thread on the processing unit.

### Claim 17 (depends on 16)

The computer readable medium of claim 16, wherein the distance computation thread controls the comparing via an application programming interface (API).

### Claim 18 (depends on 17)

The computer readable medium of claim 17, wherein the API comprises:
a DCA library;
an APU library; and
a hardware abstraction layer (HAL).

### Claim 19 (depends on 18)

The computer readable medium of claim 18, wherein the DCA library specifies at least:
(i) a Create function that stores an acoustic model, a number of dimensions in a feature vector, and a number of senones in the acoustic model as state information;
(ii) a Set Feature function that stores a feature vector corresponding to a received frameID;
(iii) a Compute Scores function that specifies at least one senone to be scored for a frame;
(iv) a Fill Scores function that stores senone scores in a buffer; and
(v) a Set Feature Matrix function that stores a feature vector transform matrix and adapts the comparison to a specific speaker.

### Claim 20 (depends on 18)

The computer readable medium of claim 18, wherein the APU library specifies at least:
(i) a Set Acoustic Model function that sets an acoustic model to be used for senone scoring;
(ii) a Load Feature Vector function that loads a feature vector in to the APU;
(iii) a Score Senone Chunk function that loads a senone list in to the APU;
(iv) a Score Range function that specifics that all senones in a range are to be scored;
(v) a Read Senone Scores function that reads senone scores and stores the senone scores in a destination buffer;
(vi) a Check Score Ready Status function that determines if senone scores are ready to be read from the APU;
(vii) a Read Score Length function that reads a first status register of the APU to determine a number of score entries that are available;
(viii) a Read Status function that reads a second status register of the APU to determine a status of a read operation;
(ix) a Read Configuration function that reads a configuration register of the APU; and
(x) a Write Configuration function that writes to the configuration register.
