# US 12,217,748 B2 · Systems and methods of multiple voice services

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

- Number: US 12,217,748 B2
- Document ID: US12217748B2
- Status: Granted
- Kind: B2
- Application number: 17/532,744
- Filed: 2021-11-22
- Published: 2022-05-19
- Granted: 2025-02-04
- Earliest claimed: 2017-03-27
- Assignees: Sonos, Inc.
- Applicants: Sonos, Inc.
- Inventors: Klaus Hartung; Daniele Giacobello
- Web page: https://patentgrep.com/patent/US12217748B2

## CPC

- G10L 15/22: Procedures used during a speech recognition process, e.g. man-machine dialogue
- G06F 3/167: {Audio in a user interface, e.g. using voice commands for navigating, audio feedback}
- G10L 15/08: Speech classification or search
- G10L 15/30: Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
- G10L 25/51: for comparison or discrimination
- G10L 15/14: using statistical models, e.g. Hidden Markov Models [HMMs] (G10L15/18 takes precedence)
- G10L 15/32: Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
- G10L 2015/088: {Word spotting}
- G10L 2015/223: {Execution procedure of a spoken command}
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed herein are example techniques to identify a voice service to process a voice input. An example implementation may involve a network microphone device (NMD) receiving, via a microphone, voice data indicating a voice input. The NMD may identify, from among multiple voice services registered to a media playback system, a voice service to process the voice input and cause, via a network interface, the identified voice service to process the voice input.

## Claims

### Claim 1

A network microphone device comprising:
at least one microphone;
a network interface;
at least one processor;
at least one non-transitory computer-readable medium; and
program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the network microphone device is configured to:
receive, at a first time via the at least one microphone, first voice data indicating a first voice input, wherein the first voice data includes a first portion representing an activation word corresponding to one of a plurality of voice services and a second portion representing a first voice command, wherein the plurality of voice services are externally registered to a media playback system associated with the networked microphone device;
identify, from among the plurality of voice services, a particular voice service to process the first voice input, wherein the identifying comprises determining a closest match of the first portion of the first voice data representing the activation word with corresponding activation word data stored in a recognition dataset on the network microphone device;
based on the determined closest match, select the particular voice service and forgo selection of another voice service for processing the first voice input;
transmit, via the network interface, at least the second portion of the first voice data representing the first voice command to the particular voice service;
receive, at a second time after the first time via the at least one microphone, second voice data indicating a second voice input, wherein at least a portion of the second voice data represents a second voice command different from the first voice command;
determine that the second voice data was received less than a threshold period of time after the first voice data was received;
based at least on (i) the selection of the particular voice service for processing the first voice input and (ii) the determination that the second voice data was received less than a threshold period of time after the first voice data was received, select a voice service from among the plurality of voice services for processing the second voice input; and
transmit, via the network interface, at least the portion of the second voice data representing the second voice command to the voice service selected for processing the second voice input.

### Claim 2 (depends on 1)

The network microphone device of claim 1, wherein the portion of the second voice data that represents the second voice command is a second portion of the second voice data, and wherein a first portion of the second voice data represents another activation word corresponding to one of the plurality of voice services.

### Claim 3 (depends on 2)

The network microphone device of claim 2, wherein the program instructions that are executable by the at least one processor such that the network microphone device is configured to select the voice service from among the plurality of voice services for processing the second voice input comprise program instructions that are executable by the at least one processor such that the network microphone device is configured to:
select the voice service from among the plurality of voice services for processing the second voice input further based on a comparison of the first portion of the second voice data with the activation word data in the recognition dataset.

### Claim 4 (depends on 3)

The network microphone device of claim 3, wherein the comparison of the first portion of the second voice data with the activation word data in the recognition dataset fails to identify a match between the first portion of the second voice data and the activation word data in the recognition dataset, and wherein the program instructions that are executable by the at least one processor such that the network microphone device is configured to select the voice service from among the plurality of voice services for processing the second voice input comprise program instructions that are executable by the at least one processor such that the network microphone device is configured to:
select the voice service from among the plurality of voice services for processing the second voice input further based on the comparison failing to identify a match between the first portion of the second voice data and the activation word data in the recognition dataset.

### Claim 5 (depends on 1)

The network microphone device of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the network microphone device is configured to determine a type of the second voice command; and
wherein the program instructions that are executable by the at least one processor such that the network microphone device is configured to select the voice service from among the plurality of voice services for processing the second voice input comprise program instructions that are executable by the at least one processor such that the network microphone device is configured to select the voice service from among the plurality of voice services for processing the second voice input further based on the determined type of the second voice command.

### Claim 6 (depends on 5)

The network microphone device of claim 5, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the network microphone device is configured to determine a type of the first voice command; and
wherein the program instructions that are executable by the at least one processor such that the network microphone device is configured to select the voice service from among the plurality of voice services for processing the second voice input comprise program instructions that are executable by the at least one processor such that the network microphone device is configured to select the voice service from among the plurality of voice services for processing the second voice input further based on the determined type of the second voice command and the determined type of the first voice command comprising a same type of voice command.

### Claim 7 (depends on 1)

The network microphone device of claim 1, further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the network microphone device is configured to:
receive audio content from the particular voice service; and
cause the received audio content to be output by a speaker.

### Claim 8 (depends on 7)

The network microphone device of claim 7, wherein the network microphone device comprises the speaker.

### Claim 9 (depends on 1)

The network microphone device of claim 1, wherein the program instructions that are executable by the at least one processor such that the network microphone device is configured to select the voice service from among the plurality of voice services for processing the second voice input comprise program instructions that are executable by the at least one processor such that the network microphone device is configured to:
select the particular voice service from among the plurality of voice services for processing the second voice input.

### Claim 10

A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a network microphone device to:
receive, at a first time via at least one microphone of the network microphone device, first voice data indicating a first voice input, wherein the first voice data includes a first portion representing an activation word corresponding to one of a plurality of voice services and a second portion representing a first voice command, wherein the plurality of voice services are externally registered to a media playback system associated with the networked microphone device;
identify, from among the plurality of voice services, a particular voice service to process the first voice input, wherein the identifying comprises determining a closest match of the first portion of the first voice data representing the activation word with corresponding activation word data stored in a recognition dataset on the network microphone device;
based on the determined closest match, select the particular voice service and forgo selection of another voice service for processing the first voice input;
transmit, via a network interface of the network microphone device, at least the second portion of the first voice data representing the first voice command to the particular voice service;
receive, at a second time after the first time via the at least one microphone, second voice data indicating a second voice input, wherein at least a portion of the second voice data represents a second voice command different from the first voice command;
determine that the second voice data was received less than a threshold period of time after the first voice data was received;
based at least on (i) the selection of the particular voice service for processing the first voice input and (ii) the determination that the second voice data was received less than a threshold period of time after the first voice data was received, select a voice service from among the plurality of voice services for processing the second voice input; and
transmit, via the network interface, at least the portion of the second voice data representing the second voice command to the voice service selected for processing the second voice input.

### Claim 11 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the portion of the second voice data that represents the second voice command is a second portion of the second voice data, wherein a first portion of the second voice data represents another activation word corresponding to one of the plurality of voice services, and wherein the program instructions that, when executed by at least one processor, cause the network microphone device to select the voice service from among the plurality of voice services for processing the second voice input comprise program instructions that, when executed by at least one processor, cause the network microphone device to:
select the voice service from among the plurality of voice services for processing the second voice input further based on a comparison of the first portion of the second voice data with the activation word data in the recognition dataset.

### Claim 12 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the comparison of the first portion of the second voice data with the activation word data in the recognition dataset fails to identify a match between the first portion of the second voice data and the activation word data in the recognition dataset, and wherein the program instructions that, when executed by at least one processor, cause the network microphone device to select the voice service from among the plurality of voice services for processing the second voice input comprise program instructions that, when executed by at least one processor, cause the network microphone device to:
select the voice service from among the plurality of voice services for processing the second voice input further based on the comparison failing to identify a match between the first portion of the second voice data and the activation word data in the recognition dataset.

### Claim 13 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by at least one processor, cause the network microphone device to determine a type of the second voice command; and
wherein the program instructions that, when executed by at least one processor, cause the network microphone device to select the voice service from among the plurality of voice services for processing the second voice input comprise program instructions that, when executed by at least one processor, cause the network microphone device to select the voice service from among the plurality of voice services for processing the second voice input further based on the determined type of the second voice command.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by at least one processor, cause the network microphone device to determine a type of the first voice command; and
wherein the program instructions that, when executed by at least one processor, cause the network microphone device to select the voice service from among the plurality of voice services for processing the second voice input comprise program instructions that, when executed by at least one processor, cause the network microphone device to select the voice service from among the plurality of voice services for processing the second voice input further based on the determined type of the second voice command and the determined type of the first voice command comprising a same type of voice command.

### Claim 15 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by at least one processor, cause the network microphone device to:
receive audio content from the particular voice service; and
cause the received audio content to be output by a speaker.

### Claim 16 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the program instructions that, when executed by at least one processor, cause the network microphone device to select the voice service from among the plurality of voice services for processing the second voice input comprise program instructions that, when executed by at least one processor, cause the network microphone device to:
select the particular voice service from among the plurality of voice services for processing the second voice input.

### Claim 17

A method carried out by a network microphone device, the method comprising:
receiving, at a first time via at least one microphone of the network microphone device, first voice data indicating a first voice input, wherein the first voice data includes a first portion representing an activation word corresponding to one of a plurality of voice services and a second portion representing a first voice command, wherein the plurality of voice services are externally registered to a media playback system associated with the networked microphone device;
identifying, from among the plurality of voice services, a particular voice service to process the first voice input, wherein the identifying comprises determining a closest match of the first portion of the first voice data representing the activation word with corresponding activation word data stored in a recognition dataset on the network microphone device;
based on the determined closest match, selecting the particular voice service and forgoing selection of another voice service for processing the first voice input;
transmitting, via a network interface of the network microphone device, at least the second portion of the first voice data representing the first voice command to the particular voice service;
receiving, at a second time after the first time via the at least one microphone, second voice data indicating a second voice input, wherein at least a portion of the second voice data represents a second voice command different from the first voice command;
determining that the second voice data was received less than a threshold period of time after the first voice data was received;
based at least on (i) the selection of the particular voice service for processing the first voice input and (ii) the determination that the second voice data was received less than a threshold period of time after the first voice data was received, selecting a voice service from among the plurality of voice services for processing the second voice input; and
transmitting, via the network interface, at least the portion of the second voice data representing the second voice command to the voice service selected for processing the second voice input.

### Claim 18 (depends on 17)

The method of claim 17, wherein the portion of the second voice data that represents the second voice command is a second portion of the second voice data, wherein a first portion of the second voice data represents another activation word corresponding to one of the plurality of voice services, and wherein selecting the particular voice service from among the plurality of voice services for processing the second voice input comprises:
selecting the voice service from among the plurality of voice services for processing the second voice input further based on a comparison of the first portion of the second voice data with the activation word data in the recognition dataset.

### Claim 19 (depends on 18)

The method of claim 18, wherein the comparison of the first portion of the second voice data with the activation word data in the recognition dataset fails to identify a match between the first portion of the second voice data and the activation word data in the recognition dataset, and wherein selecting the voice service from among the plurality of voice services for processing the second voice input comprises:
selecting the voice service from among the plurality of voice services for processing the second voice input further based on the comparison failing to identify a match between the first portion of the second voice data and the activation word data in the recognition dataset.

### Claim 20 (depends on 17)

The method of claim 17, further comprising:
determining a type of the second voice command; and
wherein selecting the voice service from among the plurality of voice services for processing the second voice input comprises selecting the voice service from among the plurality of voice services for processing the second voice input further based on the determined type of the second voice command.

### Claim 21 (depends on 20)

The method of claim 20, further comprising:
determining a type of the first voice command; and
wherein selecting the voice service from among the plurality of voice services for processing the second voice input further comprises selecting the voice service from among the plurality of voice services for processing the second voice input further based on the determined type of the second voice command and the determined type of the first voice command comprising a same type of voice command.

### Claim 22 (depends on 17)

The method of claim 17, further comprising:
receiving audio content from the particular voice service; and
causing the received audio content to be output by a speaker.

### Claim 23 (depends on 1, 17)

The method of claim 17, wherein network microphone device of claim 1, wherein selecting the voice service from among the plurality of voice services for processing the second voice input comprises:
selecting the particular voice service from among the plurality of voice services for processing the second voice input.
