Patent ID: 12243528

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

Embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments of the invention are shown. Indeed, the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout.

As will be appreciated by one of skill in the art in view of this disclosure, the present invention may be embodied as a system, a method, a computer program product, or a combination of the foregoing. Accordingly, embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may generally be referred to herein as a “system.” Furthermore, embodiments of the present invention may take the form of a computer program product comprising a computer-usable storage medium having computer-usable program code/computer-readable instructions embodied in the medium.

Any suitable computer-usable or computer-readable medium may be utilized. The computer usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples (e.g., a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires; a tangible medium such as a portable computer diskette, a hard disk, a time-dependent access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a compact disc read-only memory (CD-ROM), or other tangible optical or magnetic storage device.

Computer program code/computer-readable instructions for carrying out operations of embodiments of the present invention may be written in an object oriented, scripted, or unscripted programming language such as JAVA, PERL, SMALLTALK, C++, PYTHON, or the like. However, the computer program code/computer-readable instructions for carrying out operations of the invention may also be written in conventional procedural programming languages, such as the “C” programming language or similar programming languages.

Embodiments of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods or systems. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a particular machine, such that the instructions, which execute by the processor of the computer or other programmable data processing apparatus, create mechanisms for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions, which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational events to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions, which execute on the computer or other programmable apparatus, provide events for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. Alternatively, computer program implemented events or acts may be combined with operator or human implemented events or acts in order to carry out an embodiment of the invention.

As the phrase is used herein, a processor may be “configured to” perform or “configured for” performing a certain function in a variety of ways, including, for example, by having one or more general-purpose circuits perform the function by executing particular computer-executable program code embodied in computer-readable medium, and/or by having one or more application-specific circuits perform the function.

“Computing platform” or “computing device” as used herein refers to a networked computing device within the computing system. The computing platform may include a processor, a non-transitory storage medium (i.e., memory), a communications device, and a display. The computing platform may be configured to support user logins and inputs from any combination of similar or disparate devices. Accordingly, the computing platform includes servers, personal desktop computer, laptop computers, mobile computing devices and the like.

Thus, systems, apparatus, and methods are described in detail below that provide protection against misappropriation of voice in a voice interaction/response system. In this regard, the present invention is able to determine whether a voice input/command is an actual voice or is likely to be something other than an actual voice (e.g., a laser used to replicate a voice or the like)

The present invention relies on the assumption that when actual voice inputs are received by a device, the telemetry of the device behaves according to a known baseline and when inputs are received that attempt to replicate a voice the telemetry of the device will differ from the known baseline.

Therefore, according to embodiments of the present invention, when a voice command is received by a user device, the device compiles telemetry data and transmits the telemetry data, along with the digital signal that includes the voice command, to the voice interaction/response system. In turn, the voice interaction/response system, makes a determination, based on the received telemetry data, as to whether the received voice command is an actual voice input. The telemetry data may include thermal data associated with one or more components of the user device, such as the processing device(s) or the like. In other embodiments of the invention, the telemetry data may include other informative data such as, but not limited to, (i) power consumption data of one or more components, (ii) touch panel input data of one or more touch panels (iii) motion amount data or motion pattern data of one or more diaphragms of the at least one microphone, (iv) geo-physical location of the user device, (vi) MAC address of the user device, and (vii) time at which the perceived voice command was received at the device.

In specific embodiments of the invention, a machine learning model is developed that renders baseline telemetry data for the user device based on continual/ongoing receipt of telemetry data from the device during voice response requests. In such embodiments of the invention, when the voice interaction/response system receives a voice command and telemetry data, the telemetry data is compared to the baseline telemetry data of the machine learning model to determine the differences therebetween. In specific embodiments of the invention, the comparison results in determination of a telemetry score that indicates a level of difference between the received telemetry data and the baseline telemetry data. In such embodiments of the invention, if the telemetry score meets or is below a threshold level telemetry score, the voice command is deemed to be actual voice and the system provides a response to the command. Alternatively, if the telemetry score meets or exceeds the threshold level telemetry score, the voice command is deemed to likely not be an actual voice and actions/inactions other than providing a response are taken (e.g., an error message is provided or no response is made).

Referring toFIG.1, a schematic/block diagram is presented of an exemplary system100for providing protection against voice misappropriation in a voice interaction/response system, in accordance with embodiments of the present invention. As depicted, the system100includes a user computing platform200and a voice interaction system computing platform300that are in communication via communication network110, which may include the Internet, one or more intranets or a combination thereof.

User computing platform200is depicted as a mobile communication device. However, one of ordinary skill in the art will appreciate the fact that the user computing platform200may comprise any Internet-of-Things (IoT) device having the capability to receive voice commands (i.e., equipped with one or more microphones). User computing platform200includes a first memory202and one or more first processing devices204in communication with the first memory202. Additionally, user computing platform200includes at least one microphone206that is in communication with the one or more first processing devices204.

The first memory202stores first instructions210that are executable by the first processing device(s)204. The first instructions210are configured to receive, via microphone(s)206, a perceived voice command/input220. The input220is deemed to be “perceived” as a voice command, since it is yet undetermined as to whether the voice command is made by an actual voice or is made by some other means used to replicate an actual voice (e.g., a laser or some other known or future known means for voice replication). In response to receiving the perceived voice command220, the first instructions210are further configured to compile telemetry data230that indicates a current operating state of the user computing platform200. Further, the first instructions210are configured to transmit/communicate a digital signal240that represents the voice command220and the telemetry data230to the voice interaction system application.

System100additionally includes a voice interaction system computing platform300having a second memory302and one or more second processing devices304in communication with second memory302. Second memory302stores second instructions310that are executable by the second processing device(s). The second instructions310are configured to receive the digital signal240representing the voice command220and telemetry data230. In response, the second instructions310are configured make an actual voice determination320. In this regard, second instructions310are configured to determine, based on the telemetry data230, whether the perceived voice command220is an actual voice command originating from a voice of a user. If the determination320results in the perceived voice command being an actual voice322, second instructions310are configured to generate a response330to the command identified from the digital signal240and the response330is transmitted to the user computing platform200for subsequent output (e.g., audio output via a speaker(s), visual output via a display or the like). If the determination results in the perceived voice command being likely not an actual voice324, second instructions310are configured to either generate and communicate an error message340to the user computing platform200or provide no response342at all.

Referring toFIG.2, a block diagram is depicted of user computing platform200, in accordance with embodiments of the present invention. In addition to providing greater detail,FIG.2highlights various alternate embodiments of the system100. User computing platform200comprises one or more computing devices/apparatus, such as a mobile communication device, an IoT device, a standalone voice interaction system device or the like configured to execute software programs, including instructions, engines, algorithms, modules, routines, applications, tools, and the like. User computing platform200includes first memory202, which may comprise volatile and non-volatile memory, such as read-only and/or random-access memory (RAM and ROM), EPROM, EEPROM, flash cards, or any memory common to computer platforms). Moreover, first memory202may comprise cloud storage, such as provided by a cloud storage service and/or a cloud connection service.

Further, user computing platform200also includes first processing device(s)204, which may be an application-specific integrated circuit (“ASIC”), or other chipset, logic circuit, or other data processing device. Second processing device304may execute an application programming interface (“API”)206that interfaces with any resident programs, such as first instructions210and algorithms, sub-engines/routines associated therewith or the like stored in the first memory202of the user computing platform200.

First processing device(s)204may include various processing subsystems (not shown inFIG.2) embodied in hardware, firmware, software, and combinations thereof, that enable the functionality of user computing platform200and the operability of second computing platform300on a distributed communication network110(shown inFIG.1). For example, processing subsystems allow for initiating and maintaining communications and exchanging data with other networked devices. For the disclosed aspects, processing subsystems of first processing device204may include any subsystem used in conjunction with first instructions210and related sub-engines/routines, algorithms, sub-algorithms, modules, sub-modules thereof.

Additionally, user computing platform200includes at least one microphone206and, optionally, at least one speaker207, which are in communication with the first processing device(s)204. The microphone(s)206are configured to receive the voice commands and, in specific embodiments of the system, the speakers207are configured to output a response to the voice commands.

User computing platform200additionally includes a communications module (not shown inFIG.2) embodied in hardware, firmware, software, and combinations thereof, that enables electronic communications between user computing platform200and other networks and/or networked devices, such as, voice interaction system computing platform300and the like. Thus, the communication module may include the requisite hardware, firmware, software and/or combinations thereof for establishing and maintaining a network communication connection with one or more systems, platforms, networks, or the like.

As previously discussed in relation toFIG.1, first memory202stores first instructions210that are executable by the second processing device(s)304. The first instructions210are configured to receive, via microphone(s)206, a perceived voice command/input220. In response to receiving the perceived voice command220, the first instructions210are further configured to compile telemetry data230that indicates a current operating state of the user computing platform200. The telemetry data may include, but is not limited to, thermal data231indicating a current degrees of one or more components250(e.g., processing devices204or the like); power consumption data232indicating an amount and/or rate of power consumed by one or more components250(e.g., processing devices204or the like); touch panel input data233indicating a presence and/or location of inputs to one or more touch panels/displays260; and motion amount/pattern data234indicating an amount or pattern of motion provided to diaphragms of the one or more microphones206. Moreover, telemetry data230may include the geophysical location235of the user computing platform200, the time236at which the perceived voice command220was received and the MAC address237of the user computing platform200or some other user computer platform-identifying data.

In response to receiving the perceived voice command220, the first instructions210are configured to convert the analog perceived voice command signal to a digital signal240. Further, the first instructions210are configured to transmit/communicate the digital signal240and the telemetry data230to the voice interaction system application.

In response to processing by the voice interaction system and determining that the perceived voice command220is an actual voice, first instructions210are configured to receive and output the response330. The response330may be audible and outputted by speaker(s)207or, optionally, the response330may be textual and outputted via a display (not shown inFIG.2) or the like. In response to processing by the voice interaction system and determining that the perceived voice command220is likely not an actual voice, first instructions210may be configured to receive and output error message340. The error message340may be audible and outputted by speaker(s)207or, optionally, the response330may be textual and outputted via a display (not shown inFIG.2) or the like. In other embodiments of the system, determining that the perceived voice command220is likely not an actual voice may result in no response. In which case first instructions210performs no further actions.

Referring toFIG.3, a block diagram is depicted of voice interaction system computing platform300, in accordance with embodiments of the present invention. In addition to providing greater detail,FIG.3highlights various alternate embodiments of the system100. Voice interaction system computing platform300comprises one or more computing devices/apparatus, such as an application server or the like configured to execute software programs, including instructions, engines, algorithms, modules, routines, applications, tools, and the like. Voice interaction system computing platform300includes second memory302, which may comprise volatile and non-volatile memory, such as read-only and/or random-access memory (RAM and ROM), EPROM, EEPROM, flash cards, or any memory common to computer platforms). Moreover, second memory302may comprise cloud storage, such as provided by a cloud storage service and/or a cloud connection service.

Further, voice interaction system computing platform300, also includes second processing device(s)304, which may be an application-specific integrated circuit (“ASIC”), or other chipset, logic circuit, or other data processing device. Second processing device304may execute an application programming interface (“API”)306that interfaces with any resident programs, such as second instructions310and algorithms, sub-engines/routines associated therewith or the like stored in the second memory302of the voice interaction system computing platform300.

Second processing device(s)304may include various processing subsystems (not shown inFIG.3) embodied in hardware, firmware, software, and combinations thereof, that enable the functionality of voice interaction system computing platform300and the operability of voice interaction system computing platform300on a distributed communication network110(shown inFIG.1). For example, processing subsystems allow for initiating and maintaining communications and exchanging data with other networked devices. For the disclosed aspects, processing subsystems of second processing device304may include any subsystem used in conjunction with second instructions310and related sub-engines/routines, algorithms, sub-algorithms, modules, sub-modules thereof.

Voice interaction system computing platform300additionally includes a communications module (not shown inFIG.3) embodied in hardware, firmware, software, and combinations thereof, that enables electronic communications between voice interaction system computing platform300and other networks and/or networked devices, such as, user computing platform200and the like. Thus, the communication module may include the requisite hardware, firmware, software and/or combinations thereof for establishing and maintaining a network communication connection with one or more systems, platforms, networks, or the like.

As previously discussed in relation toFIG.1, second memory302stores second instructions310that are executable to the first processing device(s)204. Second instructions310are configured to receive the digital signal240representing the voice command220and telemetry data230. In response, the second instructions310are configured make an actual voice determination320. In this regard, second instructions310are configured to determine, based on the telemetry data230, whether the perceived voice command220is an actual voice command originating from a voice of a user. In specific embodiments of the invention, the telemetry data230includes thermal data231indicating the current degrees of one or more components250of the user computing platform200. In such embodiments of the invention, the determination320of whether the perceived voice command220is an actual voice command may be based solely on the thermal data231. In other embodiments of the invention, in which the telemetry data additionally includes power consumption data232indicating an amount and/or rate of power consumed by one or more components250; touch panel input data233indicating a presence and/or location of inputs to one or more touch panels/displays260; and motion amount/pattern data234indicating an amount or pattern of motion provided to diaphragms of the one or more microphones206; the geophysical location235of the user computing platform200; the time236at which the perceived voice command220was received, and the MAC address237of the user computing platform200or other telemetry data, the determination320of whether the perceived voice command220is an actual voice command may be based on the thermal data231along with any combination of the other specified and unspecified telemetry data.

In specific embodiments of the invention, the determination320of whether the perceived voice command220is an actual voice command relies on machine learning model350that is configured to determine, over time, baseline telemetry data352for the user computing platform200. In this regard, the telemetry data from voice commands determined to come from actual voices serves as inputs to the machine learning model350, which is then able to determine baseline telemetry data352for various conditional parameters (such as, but not limited to, user, time, location and the like). In such embodiments of the invention, second instructions310are configured to compare the received telemetry data230to the relevant baseline telemetry data352to determine a telemetry score360that indicates a level of difference between the baseline telemetry data352and the received telemetry data230. In alternate embodiments of the invention, the telemetry score may indicate a level of sameness between the baseline telemetry score352and the received telemetry data230.

In related specific embodiments of the invention, if second instructions310determines that the telemetry score360is below a predetermined threshold (i.e., minimal to no differences between the baseline telemetry data352and the received telemetry data350), the perceived voice command220is deemed to have been made by an actual voice322. In such embodiments of the invention, second instructions310are configured to generate a response330to the command identified from the digital signal240and the response330is transmitted to the user computing platform200for subsequent output (e.g., audio output via a speaker(s), visual output via a display or the like). Alternatively, if second instructions310determines that the telemetry score360is above the predetermined threshold (i.e., substantial differences between the baseline telemetry data352and the received telemetry data350) the perceived voice command220is deemed to likely not be an actual voice322. In such embodiments of the invention, second instructions2120are configured to either generate and communicate an error message340to the user computing platform200or provide no response342at all.

Referring toFIG.4, a flow diagram is depicted of a method400for providing protection against voice misappropriation, in accordance with embodiments of the present invention. At Event410, a (i) digital signal representing a perceived voice command and (ii) telemetry data indicating the current operating state of a user device is received from the user device. As previously discussed, at a minimum the telemetry data includes thermal data indicating the current degrees of one or more components of the user device, such as processing device(s) or the like.

At Event420, a determination is made, based on the telemetry data, as to whether the perceived voice command is an actual voice command originating from a voice of the user. As previously discussed, the perceived voice command may originate from other means, such as a laser or the like, used to nefariously replicate the voice of the user.

In response to determining that the perceived voice command is an actual voice command, at Event430, a response to the command identified in the digital signal is generated and transmitted to the user device for subsequent output. In response to determining that the perceived voice command is likely not an actual voice command, at Event440, an action/inaction is performed. The action may consist of generating and transmitting an error message to the user device for subsequent output. The inaction may consist of refraining from generating a response to the command (i.e., taking no action).

Referring toFIG.4, a flow diagram is depicted of a method500for protecting against voice misappropriation in a voice interaction system, in accordance with embodiments of the present invention. At Event502, a perceived voice command is received by a user device. The voice command is deemed to be “perceived” since it is yet unknown as to whether the voice command came from an actual voice or from some other means (e.g., laser) attempting to replicate a voice. The user device may be any device equipped with voice interaction system capabilities (i.e., a device that includes a microphone(s) and, in some embodiments, a speaker(s)), such as a mobile communication device, and IoT device or the like. In response to receiving the perceived voice command, at Event504, the command is transformed into a digital signal and, at Event506, telemetry data is compiled from the user device. The telemetry data may include but is not limited to, thermal data indicating current degrees of one or more user device components (e.g., processing device(s) or the like), power consumption data of one or more user device components, touch panel input data of a user device touch panel(s), motion amount/pattern data of diaphragms of user device microphone(s), geo-physical location of the user device, MAC address of the user device, and time at which the perceived voice command was received at the user device. At Event508. The digital signal representing the voice command and the telemetry data are transmitted to the voice interaction system application.

At Event510, the voice interaction system application receives the digital signal and the telemetry data. In response to receipt of the digital signal and telemetry data, at Event512, baseline telemetry data is retrieved from a machine learning model. The baseline telemetry data that is received may be specific to a time of day, user, location or the like. The baseline telemetry data indicates typical telemetry state of the user device when receiving an actual voice command from a user. At Event,514the baseline telemetry data is compared to the received telemetry data to determine the differences therebetween and, at Event516a telemetry score is determined based on a level of differences between the baseline telemetry data and the received telemetry data. In alternate embodiments of the invention, the telemetry score may indicate a level of sameness between the baseline telemetry data and the received telemetry data.

At Decision518, a determination is made as to whether the telemetry score, indicating a level of differences between the baseline and received telemetry data, is below a predetermined threshold. The predetermined threshold is established such that scores below the threshold indicate that the voice command came from an actual voice and scores above the threshold indicate that the voice command likely came from something other than an actual voice (i.e., a laser or the like replicating an actual voice). If the determination results in the telemetry score being below the threshold, at Event520a response to the command represented in the digital signal is identified and, at Event522, the response is generated and transmitted to the user device. If the determination results in the telemetry score being below the threshold, at Event526, an error message is generated and transmitted to the user device. Alternatively, if the determination results in the telemetry score being below the threshold, no response at all is generated or transmitted to the user device (i.e., the voice command is ignored). It should be noted that in the event that the telemetry score is determined to be below the threshold (i.e., likely not an actual voice), it still may beneficial for the voice response system to process the digital signal and determine the command as a means of determining the purpose behind the voice replicator's actions.

In response to the voice interaction system application transmitting the response, at Event524, the user device receives and outputs the response (e.g., provides audible signal via the speaker(s), textual content via display or the like). Alternatively, in response to the voice interaction system application transmitting the error message, the user device receives and outputs the error message (e.g., provides audible signal via the speaker(s), textual content via display or the like),

Thus, as described in detail above, present embodiments of the invention include systems, methods, computer program products and/or the like for protection against misappropriation of voice in a voice interaction/response system. In this regard, the present invention is able to determine whether a voice input/command is an actual voice or is likely to be something other than an actual voice. The invention relies on telemetry data of the device, which is compiled at the time of receipt of the voice command. The telemetry data is compared to known baseline telemetry of the device to determine a level of differences between the telemetry data and the known baseline telemetry.

While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that this invention not be limited to the specific constructions and arrangements shown and described, since various other changes, combinations, omissions, modifications and substitutions, in addition to those set forth in the above paragraphs, are possible.

Those skilled in the art may appreciate that various adaptations and modifications of the just described embodiments can be configured without departing from the scope and spirit of the invention. Therefore, it is to be understood that, within the scope of the appended claims, the invention may be practiced other than as specifically described herein.