# US 2017/0256259 A1 · Speech Recognition

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

- Number: US 2017/0256259 A1
- Document ID: US20170256259A1
- Status: Published application
- Kind: A1
- Application number: 15/229,916
- Filed: 2016-08-05
- Published: 2017-09-07
- Earliest claimed: 2016-03-01
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Raymond J. Froelich
- Web page: https://patentgrep.com/patent/US20170256259A1

## CPC

- G10L 15/22: Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L 15/02: Feature extraction for speech recognition; Selection of recognition unit
- G10L 15/04: Segmentation; Word boundary detection
- G10L 15/063: {Training}
- G10L 15/19: Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
- G10L 15/222: {Barge in, i.e. overridable guidance for interrupting prompts}
- G10L 25/87: Detection of discrete points within a voice signal
- G10L 15/183: using context dependencies, e.g. language models
- G10L 2015/0635: {updating or merging of old and new templates; Mean values; Weighting}
- G10L 2015/088: {Word spotting}
- G10L 2015/221: {Announcement of recognition results}
- G10L 2015/225: {Feedback of the input speech}
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING

## Abstract

A computer system comprises an input configured to receive voice input from a user, the voice input having speech intervals separated by non-speech intervals; an ASR system configured to identify individual words in the voice input during speech intervals thereof, and store the identified words in memory; a response generation module configured to generate based on the words stored in the memory an audio response for outputting to the user; and a response delivery module configured to begin outputting the audio response to the user during a non-speech interval of the voice input, wherein the outputting of the audio response is terminated before it has completed in response to a subsequent speech interval of the voice input commencing whilst the audio response is still being outputted.

## Claims

### Claim 1

A computer system comprising:
an input configured to receive voice input from a user, the voice input having speech intervals separated by non-speech intervals;
an ASR system configured to identify individual words in the voice input during speech intervals thereof, and store the identified words in memory;
a response generation module configured to generate based on the words stored in the memory an audio response for outputting to the user; and
a response delivery module configured to begin outputting the audio response to the user during a non-speech interval of the voice input, wherein the outputting of the audio response is terminated before it has completed in response to a subsequent speech interval of the voice input commencing whilst the audio response is still being outputted.

### Claim 2 (depends on 1)

A computer system according to claim 1, comprising a speech detection module configured to configured monitor the set of identified words in the memory as it is updated by the ASR system, and detect the commencement of the subsequent speech interval based on the monitoring.

### Claim 3 (depends on 2)

A computer system according to claim 2, wherein the commencement is detected by detecting that a newly-identified word has been added to the set by the ASR system.

### Claim 4 (depends on 2)

A computer system according to claim 2, wherein the speech recognition module is configured to detect the non-speech interval based on the monitoring.

### Claim 5 (depends on 4)

A computer system according to claim 4, further comprising a language model, wherein detecting the non-speech interval comprises detecting, by the speech detection module, when the set of identified words forms a grammatically complete sentence according to the language model.

### Claim 6 (depends on 4)

A computer system according to claim 4, wherein detecting the non-speech interval comprises detecting, by the speech detection module, that no new words have been identified by the ASR system for a pre-determined duration, wherein the interval of time commences with the expiry of the pre-determined duration.

### Claim 7 (depends on 1)

A computer system according to claim 1, wherein the response is an audio response for playing out to the user in audible form.

### Claim 8 (depends on 1)

A computer system according to claim 1, comprising a video generation module configured to, in response to the response module determining that the ASR system has not identified any more words in the interval of time, output to the user a visual indication that the outputting of the response is about to begin.

### Claim 9 (depends on 8)

A computer system according to claim 8, wherein the video generation module is configured to generate and output to the user a moving image of an avatar, wherein the visual indication is a visual action performed by the avatar.

### Claim 10 (depends on 1)

A computer system according to claim 1, wherein each word of the set is stored in the memory as a string of one or more characters.

### Claim 11 (depends on 1)

A computer system according to claim 1, further comprising:
a lookup module configured to receive at least one word from the set in the memory at a first time whilst updates to the set by the ASR system are still ongoing, and perform a lookup to pre-retrieve information associated with the at least one word;
wherein the response generation module is configured to access the set in the memory at a later time, the set having been updated by the ASR system at least once between the first time and the later time, the response being generated by the response generation module based on the set as accessed at the later time, wherein the response conveys the information pre-retrieved by the lookup module.

### Claim 12 (depends on 1)

A computer system according to claim 1, further comprising:
a speech overload detection module configured to detect at a time during a speech interval of the voice input a speech overload condition; and
a notification module configured to output to the user, in response to said to detection, a notification of the speech overload condition, wherein the overload condition is detected based on:
a number of words that the ASR system has identified so far in that speech interval, and/or
a rate at which words are being identified by the ASR system in that speech interval, and/or
a state of an AI tree being driven by the voice input.

### Claim 13

A computer-implemented method of effecting communication between a user and an artificial intelligence software agent executed on a computer, the method comprising:
receiving at an ASR system voice input from a user, the voice input having speech intervals separated by non-speech intervals;
identifying, by the ASR system, individual words in the voice input during speech intervals thereof, and storing the identified words in memory; and
generating, by the software agent, based on the words stored in the memory an audio response for outputting to the user;
wherein the software agent begins outputting the audio response to the user during a non-speech interval of the voice input, wherein the outputting of the audio response is terminated before it has completed in response to a subsequent speech interval of the voice input commencing whilst the audio response is still being outputted.

### Claim 14 (depends on 13)

A method according to claim 13, wherein the voice input is received from a user device via a communication network, wherein the outputting step is performed by the software agent transmitting the response to the user device via the network so as to cause the user device to output the response to the user.

### Claim 15 (depends on 14)

A method according to claim 14, wherein the voice input is received from and the response outputted to the user in real-time, thereby effecting a real-time communication event between the user and the software agent via the network.

### Claim 16 (depends on 13)

A method according to claim 13, the method being implemented in a communication system, wherein the communication system comprises a user account database storing, for each of a plurality of users of the communication system, a user identifier that uniquely identifies that user within the communication system;
wherein a user identifier of the software agent is also stored in the user account database so that the software agents appears as another user of the communication system.

### Claim 17 (depends on 13)

A method according to claim 13, further comprising:
monitoring the set of identified words in the memory as it is updated by the ASR system, wherein the speech and non-speech intervals are detected based on the monitoring of the set of identified words.

### Claim 18 (depends on 13)

A method according to claim 13, wherein the response is an audio response for playing out to the user in audible form.

### Claim 19

A computer program product comprising an artificial intelligence software agent stored on a computer readable storage medium, the software agent for communicating with a user based on the output of an ASR system, the ASR system configured to identify individual words in a voice input during speech intervals thereof, and store the identified words in memory, the software agent configured when executed to:
generate based on the words stored in the memory an audio response for outputting to the user; and
begin outputting the audio response to the user during a non-speech interval of the voice input, wherein the outputting of the audio response is terminated before it has completed in response to a subsequent speech interval of the voice input commencing whilst the audio response is still being outputted.

### Claim 20 (depends on 19)

A computer program product according to claim 19, wherein the response is outputted to the user by transmitting it to a user device available to the user via a network so as to cause the user device to output the response to the user.
