Localized and standalone semi-randomized character conversations

Techniques for randomized device interaction are provided. A first communication pattern is selected, with at least a degree of randomness, from a plurality of communication patterns, where each of the plurality of communication patterns specifies one or more audio profiles. A first audio profile specified in the first communication pattern is identified. A first portion of audio is extracted from a first audio file with at least a degree of randomness, and the first portion of audio is modified based on the first audio profile. Finally, the first modified portion of audio is outputted by a first device.

BACKGROUND

Field of the Invention

The present disclosure generally relates to semi-randomized toy interactivity, and more specifically, to use of audio manipulation to enable increased interactivity.

Description of the Related Art

Toys and characters often have prerecorded phrases or audio effects that can be played to increase the immersion for users who interact with the character. For example, some toys have pull strings, push buttons, and the like that triggers one or more prerecorded sound effects. Typically, these sounds are recorded using voice actors or complex audio mixing, which increases the costs of the toy or character. Further, the restricted set of phrases or sounds that the device is capable of outputting can drastically limit interactivity and immersion for users interacting with the device. Additionally, devices cannot readily interact with each other, unless multiple conversational scripts are prepared and recorded by voice actors, which significantly increases costs of producing the devices. Moreover, even these more complex interactions are limited by the scripted and prerecorded content, which prevents the devices from becoming truly interactive or immersive.

SUMMARY

According to a first embodiment of the present disclosure, a method is provided. The method includes selecting, with at least a degree of randomness, a first communication pattern from a plurality of communication patterns, wherein each of the plurality of communication patterns specifies one or more audio profiles. The method further includes identifying, with at least a degree of randomness, a first audio profile specified in the first communication pattern. Additionally, the method includes extracting a first portion of audio from a first audio file. The method also includes modifying the first portion of audio based on the first audio profile. Finally, the method includes outputting, by a first device, the first modified portion of audio.

According to a second embodiment of the present disclosure, a computer program product comprising a computer-readable storage medium having computer-readable program code embodied therewith is provided. The computer-readable program code is executable by one or more processors to perform an operation including selecting, with at least a degree of randomness, a first communication pattern from a plurality of communication patterns, wherein each of the plurality of communication patterns specifies one or more audio profiles. The operation further includes identifying a first audio profile specified in the first communication pattern. Additionally, the operation includes extracting, with at least a degree of randomness, a first portion of audio from a first audio file. The operation also includes modifying the first portion of audio based on the first audio profile. Finally, the operation includes outputting, by a first device, the first modified portion of audio.

According to a third embodiment of the present disclosure, a system including one or more computer processors and a memory containing a program which when executed by the one or more computer processors performs an operation is provided. The operation includes selecting, with at least a degree of randomness, a first communication pattern from a plurality of communication patterns, wherein each of the plurality of communication patterns specifies one or more audio profiles. The operation further includes identifying a first audio profile specified in the first communication pattern. Additionally, the operation includes extracting, with at least a degree of randomness, a first portion of audio from a first audio file. The operation also includes modifying the first portion of audio based on the first audio profile. Finally, the operation includes outputting, by a first device, the first modified portion of audio.

DETAILED DESCRIPTION

Embodiments of the present disclosure provide techniques to generate randomized or semi-randomized conversations and communications, which can significantly improve the interactivity of devices, and the immersion of users. In some embodiments, devices utilize predefined patterns of communication to generate random, semi-random, or pseudo-random interactions. In one embodiment, each pattern specifies one or more audio profiles that are used to define the audio associated with the respective portion or segment of the interaction. In some embodiments, each device selects all or a portion of one or more prerecorded audio files, applies the profile(s) specified by the communication pattern, and outputs the resulting modified audio. In one embodiment, the device then transmits a confirmation or indication that the output is complete. In some embodiments, the device can also receive an indication specifying a communication pattern and/or interaction. In an embodiment, the device can then generate a pseudo-random output that aligns with the specified pattern.

In this way, embodiments of the present disclosure enable devices to interact with each other in an immersive and realistic manner, without requiring extensive scripting or voice acting. For example, in an embodiment, a first device can select a communication pattern and generate an initial greeting based on a profile specified in the pattern. A second device can then receive an indication as to the selected pattern, as well as an indication as to which profile(s) in the pattern should be used to generate the response. In some embodiments, this process can be repeated until the interaction is concluded. In one embodiment, interactions can be interrupted by a predefined timeout, an interaction or action by a user, a random transition, and the like. Thus, embodiments of the present disclosure improve the functionality of interactive devices by allowing them to generate and maintain dynamic and semi-randomized collaborative communications and conversations, which significantly improves the immersion of the device.

Furthermore, embodiments of the present disclosure enable the devices to be created with reduced resources, and further enable the devices to operate with reduced computational resources. For example, because the techniques provide pseudo-randomized interactions, the time and expenditures required to develop new devices or interactions (e.g., to script and record interactions) is dramatically reduced. Similarly, by utilizing predefined communication patterns to generate pseudo-random interactions, the set of audio files needed to generate dynamic and immersive interactions is dramatically reduced, as less storage is required to achieve high levels of immersion.

In the context of the present disclosure, reference is made to performing various operations (e.g., selections, modifications, and the like) in a random manner. Unless otherwise stated, terms such as “random” and “randomized” include semi-random, pseudo-random, quasi-random, and similar terms that involve some degree of unpredictability. In some embodiments, the operations may include some degree of randomness, as well as some degree of structure or predictability. For example, a subset of patterns may be identified based on one or more rules or characteristics of the devices, and a pattern to utilize may be selected from that subset in a randomized manner. Similarly, in some embodiments, the sampled audio files are delineated into discrete portions (e.g., into equal portions, or into portions defined by a user), and the portions are selected in a randomized manner.

FIG. 1illustrates a system100including several Interactive Devices105configured to generate and participate in audio interactions, according to one embodiment disclosed herein. In the illustrated system100, Interactive Devices105A,105B, and105C are communicatively coupled, as illustrated by the arrows110A,110B, and110C. In one embodiment, the Interactive Devices105A-C are configured to communicate via one or more personal area networks (PANs). For example, in one embodiment, the Interactive Devices105A-C utilize a short range communication protocol such as Bluetooth® or Bluetooth Low Energy (BLE). In some embodiments, each of the Interactive Devices105A-C also includes one or more speakers or audio output devices. In some embodiments, one or more of the Interactive Devices105A-C can include other input or output devices, such as microphones, motors, actuators, buttons, lights or LEDs, accelerometers, magnetometers, tilt or vibration sensors, and the like. In the illustrated embodiment, the Interactive Device105A is a robot toy, the Interactive Device105B is a duck toy, and the Interactive Device105C is a bear plush toy. However, these examples are not intended to be limiting, and any sort of character or toy can be used to implement embodiments of the present disclosure.

In the illustrated embodiment, the Interactive Devices105A-C can generate audio output based on predefined audio profiles and/or communication patterns. In one embodiment, each Interactive Device105A-C can select a communications pattern (or receive a selection or indication of a communications pattern), identify an audio profile in the pattern, and generate an output based on the audio profile. In some embodiments, this initial selection process is performed based on determining that one or more other Interactive Devices105A-C are within a predefined range or distance. For example, in one embodiment, each of the Interactive Devices105A-C utilize received signal strength indication (RSSI) to determine a rough or estimated distance between themselves and the other Interactive Device(s)105.

In one embodiment, upon determining that one or more Interactive Devices105are within a predefined distance, one or more of the Interactive Devices105select a communications pattern. In one embodiment, the Interactive Devices105A-C are each associated with respective priorities, and the Interactive Device105A-C with the highest priority acts as the initiator for the interaction (e.g., selects the communication pattern and outputs the first audio). In another embodiment, the Interactive Devices105jointly select a communications pattern. In one embodiment, each Interactive Device105selects a communications pattern and transmits it to the other Interactive Device(s)105, and whichever device completes this task first (e.g., as evidenced by a timestamp included in the transmission) is elected as the initiating device.

In the following examples, Interactive Device105A is used as the initiating device. Of course, in embodiments, any of the Interactive Devices105can act as the initiating device. In one embodiment, the Interactive Device105A selects a communications pattern from a list or set of predefined patterns. In some embodiments, each communication pattern indicates how many Interactive Devices105are involved in the interaction, and the Interactive Device105A selects a pattern based in part on how many other Interactive Devices105are within the predefined distance or range. In some embodiments, each Interactive Device105transmits an identifier that the other Interactive Devices105that specifies the type or category to which the respective device belongs. For example, in such an embodiment, all robot toys may have a first type, while all animal toys have a second type. Similarly, in some embodiments, each toy may have a personality type (such as “outgoing,” “shy,” and the like). In some embodiments, the communications pattern is selected based in part on a “personality” or identity of the Interactive Device105A, and/or the identity of the other Interactive Device(s)105B-C.

In embodiments, a communication pattern is a predefined collection of actions or profiles that can be used to generate an interaction between devices. For example, in an embodiment, each communication pattern is delineated into a series of portions or segments, where each segment includes at least one audio profile. In embodiments, the audio profiles are utilized to adjust or modify the tone, pitch, cadence, and other characteristics of predefined or generated audio. In an embodiment, each segment includes actions or output to be completed by a respective Interactive Device105. For example, the first segment can be implemented by a first device, and the second segment can be completed by a second device.

In some embodiments, the segments are sequential, such that the second segment's actions (e.g., the audio to be output based on the profiles specified in the second segment) are not initiated until the first segment has been completed. In other embodiments, one or more segments can overlap entirely or partially, such that different Interactive Devices105perform actions simultaneously. In some embodiments, each communications pattern is predefined to mimic an interaction type, such as arguing, joking, laughing, sarcasm, somberness, comforting, celebration, and the like. Further, in some embodiments, physical actions can also be included in each segment of the communications pattern. For example, in one embodiment, gestures, motor actuations, and the like can be included in the pattern.

In an embodiment, once the communications pattern has been selected, the Interactive Device105A identifies the first audio profile specified in the pattern, and generates audio using the profile. In one embodiment, generating the output audio comprises selecting all or a portion of one or more audio files stored by the Interactive Device105A, and applying the profile. In one embodiment, each Interactive Device105represents a character with limited (or non-existent) dialogue or language skills. For example, in such an embodiment, the Interactive Devices105may represent characters that primarily communicate (or appear to communicate) using combinations of beeps, nonsense talk, or other non-language babbling or gibberish. In one embodiment, each Interactive Device105stores one or more audio files that include noises and gibberish sounds (e.g., random, semi-random, quasi-random, or pseudo-random noises that may appear to mimic or imitate speech and sound similar to normal speech, but that are not actually speech or conversations in any human language).

In one embodiment, each Interactive Device105stores different audio files. For example, in one embodiment, a robot character may store audio files comprising beeps and other mechanical or robotic sounds, while a duck character may store audio files including miscellaneous quacks and duck sounds. In some embodiment, one or more Interactive Devices105may utilize the same audio files, but apply device-specific filters or profiles to the audio prior to use. For example, the Interactive Devices105B and105C may use the same audio, but apply respective profiles that change the intonation, pitch, pace, and/or cadence of the audio to better match the respective character. Further, in some embodiments, some or all of this audio can be generated by the Interactive Device105as needed, rather than stored in one or more audio files.

In the illustrated embodiment, the audio profile extracted from the communications pattern specifies changes in pitch, cadence, volume, and any other audio qualities that should be applied at various points or moments in the audio. In some embodiments, the audio profile further specifies a duration of the corresponding audio portion. In one embodiment, based on this audio profile, the Interactive Device105A selects all or a portion of one or more of the stored audio files to use with the profile. The Interactive Device105A then performs intonational audio mixing to modify the extracted audio, and outputs via its speaker(s).

In an embodiment, once output of this initial audio is completed by the first Interactive Device105A, the Interactive Device105A transmits an indication that the output is complete (e.g., via the communications link110A or110C) to the Interactive Device(s)105B and/or105C. In one embodiment, the indication further includes an indication as to the communications pattern to be used in generating a response. In some embodiments, the indication also indicates which audio profile from the pattern the Interactive Toy105A used to generate its output, or which audio profile in the pattern should be used for the next output. Further, in one embodiment, the Interactive Devices105B or105C generate a response based on the indicated communications pattern and the next or subsequent profile from the pattern.

In some embodiments, the Interactive Devices105can also transmit indications that one or more other devices should initiate an output, regardless of whether the transmitting device's output is complete. Thus, in some embodiments, the received indication instructs the receiving Interactive Device105to generate and output audio, but does not necessarily indicate that the transmitting device is finished outputting its audio. In such an embodiment, a communications pattern can specify that the Interactive Devices105should, at some point, begin outputting audio at the same time, such that it appears that the devices are arguing or speaking over each other. For example, the Interactive Device105A may initiate an interaction using such a pattern. Prior to completing the specified output, however, the Interactive Device105A can transmit, to the Interactive Device(s)105B and/or105C, an indication that they should begin outputting the next segment(s) in the pattern. In embodiments, some sections of the communications pattern may specify a typical back-and-forth conversation, while some sections are intended to be performed simultaneously or overlapping.

In some embodiments, the communications pattern specifies which device is to perform each portion or section of the communications pattern. For example, the initiating device may act as the first device specified in the profile, while the responding device acts as a second device from the profile. In one embodiment, if three or more devices are included in the profile, the responding device(s) can determine which Interactive Device105B-C should respond first based on a variety of factors. For example, as discussed above, in embodiments, the Interactive Devices105B-C may rely on relative priority, or may determine which device should respond first based on which device first successfully transmits an indication to the other device(s) regarding priority or generating the response.

In this way, the Interactive Devices105can dynamically generate a random or semi-random interaction that follows the predefined communication pattern. In some embodiments, when the pattern is completed, the Interactive Devices105may await input from a user, or may select a new conversational pattern and initiate a new interaction, as discussed above. In some embodiments, ongoing patterns can also be interrupted by a variety of factors. For example, in one embodiment, each communication pattern is associated with a timeout value. Similarly, in some embodiments, each Interactive Device105may periodically generate random or pseudo-random values to determine whether to interrupt the ongoing pattern. Further, in one embodiment, if the user interacts with any of the Interactive Devices105(e.g., by picking them up, pushing a button, speaking, and the like), the pattern may be interrupted or terminated. Additionally, in some embodiments, if any of the Interactive Devices105are removed from the predefined distance (or are turned off), the communication pattern may be interrupted.

FIG. 2is a block diagram illustrating an Interactive Device105configured to generate and participate in interactive communications, according to one embodiment disclosed herein. As illustrated, the Interactive Device105includes a Processor210, a Memory215, Storage220, I/O Components225, and a Network Interface230. In the illustrated embodiment, Processor210retrieves and executes programming instructions stored in Memory215as well as stores and retrieves application data residing in Storage220. Processor210is representative of a single CPU, multiple CPUs, a single CPU having multiple processing cores, and the like. Memory215is generally included to be representative of a random access memory. Storage220may be a disk drive or flash-based storage device, and may include fixed and/or removable storage devices, such as fixed disk drives, removable memory cards, or optical storage, network attached storage (NAS), or storage area-network (SAN).

In an embodiment, the I/O Components225can include speakers, microphones, buttons, actuators, motors, accelerometers, and the like. Further, in the illustrated embodiment, the Network Interface230enables the Interactive Device105to be communicatively coupled to other Interactive Devices105. In one embodiment, the Network Interface230enables connection to other devices via one or more PANs. In other embodiments, the Interactive Device105may utilize one or more local area networks (LANs) or wireless LANs (WLANs).

In the illustrated embodiment, the Storage220includes a set of Patterns255defining predefined interactions. Further, as illustrated, each Pattern255includes a set of Profiles260that define each section or portion of the respective Pattern255. For example, in an embodiment, each Pattern255includes a sequence of Profiles260, and each Profile260specifies characteristics of the audio that should be output for the respective portion of the interaction, such as volume, pitch, intonation, cadence, pace, speed, duration, inflection, and the like. Further, as illustrated, the Storage220includes a set of Audio Files265. As discussed above, in one embodiment, each Audio File265includes gibberish or nonsense noises and sounds, or sounds such as animal noises, robot noises, and the like, that can be mixed and modified to imitate conversation. In an embodiment, the therefore, the Profiles260specify transformations to be applied to the Audio Files265, in order to mimic a conversation between the Interactive Devices105.

As an example embodiment, one such Pattern255can be used to simulate a joke, such as a “knock-knock” joke. For example, such a Pattern255may specify that the first output should use a first Profile260, where the first Profile260calls for a relatively brief section of audio to be repeated twice (e.g., to simulate the Interactive Device105saying “knock knock”). The Pattern255may then specify that the responding Interactive Device105should use audio that has two syllables or sounds, and a Profile255that increases the pitch or inflection at the end of the second sound (e.g., to simulate the device responding “who's there?”). Further, in such an embodiment, the Pattern255can specify that the first Interactive Device105should respond with a particular Profile260(or a random Profile260) using random audio, but that the selected audio and Profile260should also be used by the second device. The next segment of the Pattern255can then indicate that the second device should repeat the same output (e.g., the same Audio File(s)265and Profiles260, although the tone, pitch, cadence, or volume may differ), followed by a final sound or noise with an increased pitch (e.g., such that the second Interactive Device105appears to be repeating the phrase output by the first device, followed by “who?”).

Continuing this example, the Pattern255then specifies that the first device should then again repeat the audio that it used the previous iteration, followed by additional audio (modified by one or more Profiles260) to deliver the “punchline” of the simulated joke. In some embodiments, this Profile260can specify that the additional audio should be emphasized, said with increased volume, or said with a different inflection, to indicate it is the punchline. Finally, in such an embodiment, the Pattern255can specify that both Interactive Devices105should then output a laughter sound, indicating that the joke has completed. Thus, in some embodiments, the Audio Files265may include one or more predefined audio that is recognizable (e.g., rather than gibberish), such as laughter, crying, gasping, animal or machine noises, and the like. The above example of a “knock knock” joke Pattern255is not intended to be limiting, and is provided as an example of one Pattern255that may be used by Interactive Devices105to provide simulated and immersive dynamic interactions.

As illustrated, the Memory215includes an Interaction Application235, which is used to generate the dynamic interactions with the user and/or with other Interactive Devices105. Although illustrated as an application residing in Memory215, in embodiments, the functionality of the Interaction Application235can be implemented using hardware, software, or a combination of hardware and software. The Interaction Application235includes a Transition Component240, a Pattern Selector245, and an Audio Generator250. Although illustrated as discrete components, the operations and functionality of the Transition Component240, Pattern Selector245, and Audio Generator250can be combined or distributed across any number of components. Further, in embodiments, each of the functions of the Transition Component240, Pattern Selector245, and Audio Generator250can be implemented using software, hardware, or a combination of software and hardware.

In the illustrated embodiment, the Transition Component240determines whether to initiate an interaction, transition to a different interaction, or terminate an interaction. In one embodiment, the Transition Component240may determine to initiate an interaction based on determining that one or more other devices are within a predefined range. In some embodiments, the Transition Component240can also initiate an interaction based on determining that the user has interacted with the Interactive Device105(e.g., via a microphone or button, by picking up the device, and the like).

In an embodiment, when an interaction is ongoing, the Transition Component240can similarly determine to terminate the interaction or to transition to a different interaction based on user interaction, based on determining that one or more new Interactive Devices105have entered the predefined range, based on determining that one or more Interactive Devices105have left the predefined range, and the like. Further, in some embodiments, the Transition Component240can determine to transition or terminate the interaction based on a timeout associated with the ongoing interaction (e.g., associated with the current Pattern255being used to communicate), or based on a random timeout. For example, in one embodiment, the Interaction Application235may utilize a random or pseudo-random algorithm to determine whether to continue the interaction, to transition to a different interaction, or to terminate the interaction.

In one embodiment, if the Transition Component240determines to transition to a different interaction or to terminate the interaction, the Interaction application235can interrupt the other Interactive Devices105if they are currently outputting audio (e.g., by generating and outputting new audio). Similarly, in some embodiments, if the Transition Component240receives an indication or interruption from one of the other Interactive Devices105while the Interaction Application235is outputting audio, the Transition Component240can interrupt this output in order to terminate the interaction or to continue the new interaction that the other device initiated.

In the illustrated embodiment, when initiating or transitioning to a new interaction, the Pattern Selector245selects a Pattern255to be used, as discussed above. In embodiments, this selection can be based on the number of Interactive Devices105within the predefined distance, the identities, characteristics, or profiles of each of the participating devices, and the like. Further, as illustrated, the Audio Generator250selects an audio Profile260from the selected Pattern255, and applies it to the Audio File(s)265to transform the audio into a final audio for output. As discussed above, in some embodiments, the Audio Generator250first applies a device-specific profile, followed up the particular Profile260specified in the Pattern255. The generated, modified, or transformed audio can then be output via one or more speakers. When the output is complete, the Interaction Application235can send an indication to the participating devices, indicating that the output has finished. In some embodiments, this indication identifies the selected Pattern255, as well as which Profile260is next in the interaction (or which Profile260was just used).

In some embodiments, although the audio is output via one or more speakers, the other Interactive Devices105do not detect or respond to the audio (e.g., they do not utilize microphones to detect the audio). Instead, in one embodiment, the Interactive Devices105respond only once the transmission is received, indicating that the audio has been completed. In some embodiments, in addition to outputting the audio, the Interactive Device105also utilizes other Input/Output components225to enhance the immersion and interactivity of the device. For example, in embodiments, one or more lights may flash or turn on and off, and one or more motors or actuators may operate (e.g., to move a mouth of the Interactive Device105in order to mimic speech, to gesture limbs or appendages, and the like). In some embodiments, these additional outputs are further defined in the Pattern255and/or Profiles260. For example, in one embodiment, the Profile260being applied may specify to gesture for emphasis at a certain point in the output, to turn or shake the head of the Interactive Device105, to recoil or move, and the like.

FIG. 3illustrates workflow300for generating audio in an interactive communication, according to one embodiment disclosed herein. In the illustrated workflow300, a set of Audio Files265A-N are processed, transformed, or modified using one or more Profiles260A-M in order to generate a final output Audio310, as indicated by the Operation305. In the illustrated embodiment, the Operation305indicates any number of audio manipulation operations, including intonational mixing, pitch adjustment, volume modification, pace or cadence alteration, and the like.

In the illustrated embodiment, each Audio File265includes a waveform defining the audio. As illustrated, the Audio Files265can include smooth waveforms (e.g., Audio Files265A and265B) and sharp waveforms or square waves (e.g., Audio Files265C and265D). Further, as illustrated, in embodiments, each Audio File265can include regular or repeated waveforms, or irregular or non-repeating audio. In embodiments, each Audio File265can be any length or duration, and need not be identical. In some embodiments, as part of generating the final Audio310, the Audio Generator250selects one or more of the Audio Files265to use. In an embodiment, this selection can be made using a random or pseudo-random algorithm, to ensure that the interaction is dynamic and appears genuine.

In some embodiments, in addition to selecting one or more Audio Files265, the Audio Generator250further selects and extracts individual portion(s) of those Audio File(s)265based on a random or pseudo-random algorithm. In embodiments, this can further improve the immersion of the user, because the interactions are generated dynamically and appear random and genuine. In one embodiment, the Audio Generator250selects multiple portions of audio from one or more Audio Files265, and splices them together to create a single file satisfying the duration requirements of the selected Profile260.

In the illustrated embodiment, each Profile260defines transformations to apply to the audio, such as pitch, inflection, and intonation changes, volume changes, cadence, pace, or speed modifications, and the like. For example, as illustrated, the Profile260A specifies that a defined characteristic of the audio should begin relatively low, and slowly increase (at a growing rate) until the end of the audio. This characteristic may be, for example, pitch, inflection, volume, cadence, and the like. Similarly, the Profile260B specifies that the cadence, speed, or pace of the audio should be modified as illustrated, such that the first portion of the audio is contracted, and the second portion is elongated. Additionally, the Profile260M specifies that the audio characteristic (e.g., volume or pitch) should begin low, increase rapidly, and then slowly decline, before again rising at the end of the audio. In some embodiments, the Profiles260are predefined. Further, in some embodiments, each Pattern255is predefined to include a specified sequence of Profiles260.

FIG. 4illustrates a communication workflow400, including a Pattern255(e.g., a communications pattern255) and corresponding interactive communications, according to one embodiment disclosed herein. In the illustrated embodiment, the Pattern255includes a sequence of segments, portions, outputs, or responses that make up the interaction. Further, as illustrated, each of the portions specifies one or more Profiles260to be applied to the corresponding audio segment. Additionally, as illustrated, each portion or output has a predefined length or duration. That is, in some embodiments, rather than the Profile260specifying a duration or length, the Pattern255specifies the length of each segment of the interaction. In some embodiments, each portion of the Pattern255specifies which device is to perform the corresponding output. In one embodiment, when no device is specified, the initiating Interactive Device105performs the first output, and the Interactive Devices105alternate (or proceed sequentially, if more than two devices are participating) for each subsequent portion of the Pattern255.

In an embodiment, each segment can specify a single Profile260or multiple Profiles260to be combined. For example, in the illustrated embodiment, the first and second segments both utilize Profile260A, while the third segment utilizes Profiles260B and260C combined. In some embodiments, a segment can specify to use the inverse of a Profile260as well. For example, in the illustrated embodiment, the fourth segment of the interaction utilizes a combination of Profile260A, along with the inverse of Profile260C. Although only four segments are illustrated, in embodiments, the Pattern255can include any number of segments and continue for any duration.

In the illustrated embodiment, the interactivity or output provided by the first Interactive Device105is illustrated along line410, while the output of the second Interactive Device105is illustrated along line415. Thus, as illustrated, at the moment in time indicated by the dashed line420, the first Interactive Device105initiates an interaction by selecting the Pattern255, identifying the first Profile260A, extracting audio from one or more Audio Files265, and generating the final output audio based on the Profile260A. As illustrated by the shaded block, this audio is output between the time associated with the line420, and the time indicated by the line425. In one embodiment, once the initial audio is complete, at line425, the first Interactive Device105transmits an indication that it has completed its output.

As discussed above, in some embodiments, this indication also includes a reference to the Pattern255, as well as the current point in the interaction (e.g., based on which segment is next, which Profile(s)260are next, and the like). In some embodiments, the selected Pattern255is transmitted when the interaction is initiated (e.g., at point420). In such an embodiment, the transmission at time425may simply indicate that the first Interactive Device105has completed its segment, and the second Interactive Device105can begin the second segment. In some embodiments, the second Interactive Device105generates the specified response while the first Interactive Device105is outputting the first segment, and begins outputting it as soon as the indication is received.

As illustrated, based on receiving this transmission, at block425, the second Interactive Device105begins outputting the audio corresponding to the second segment of the Pattern255. This process then repeats, with each Interactive Device105alternating outputs, until the Pattern255is completed or interrupted. In some embodiments, two or more Interactive Devices105can output audio at the same time, based on the Pattern255. For example, in such an embodiment, the Pattern255may specify that two or more of the participating Interactive Devices105should simultaneously output audio. In some embodiments, this output can use the same Profile(s)260and/or the same Audio Files265, such that the Interactive Devices105appear to be speaking in unison or reciting the same phrase together. In other embodiments, the output can differ between the Interactive Devices105, such that it appears they are arguing or talking over each other in an excited manner.

In this way, because of the unique and pseudo-random combination of Patterns255, Profiles260, and portions of audio, the Interactive Device105can thus generate dynamic and immersive interactions that appear to be random and genuine, even if they utilize predefined Patterns255and Profiles260, and rely on limited Audio Files265. This reduces the costs required to create the Interactive Devices105, as the need for voice acting and script writing is significantly reduced.

Further, the number of possible interactions is increased dramatically. Moreover, in embodiments, the computational resources required by each Interactive Device105are reduced, as compared to existing devices. For example, the required storage is reduced significantly, because fewer Audio Files265are required to implement the interactions. Additionally, in embodiments, the Interactive Device105operate as standalone devices (e.g., without the need for a computer or mobile phone). That is, in embodiments disclosed herein, the Interactive Device105does not require a remote device to perform any operations or transformations in order to ensure the interaction is immersive.

FIG. 5is a flow diagram illustrating a method500of creating an interactive communication based on communication patterns, according to one embodiment disclosed herein. In the illustrated embodiment, the method500begins at block505, where an Interactive Device105determines to initiate an interaction. As discussed above, in embodiments, this determination may be made based on determining that another Interactive Device105is within a predefined range, based on receiving input or interaction from a user, and the like. The method500then proceeds to block510, where the Interactive Device105selects a predefined communication Pattern255to be used for the interaction. At block515, the Interactive Device105generates audio based on the selected Pattern255. That is, in an embodiment, the Interactive Device105identifies the Profile(s)260specified by the first segment of the Pattern255, and selects one or more portions of one or more Audio Files265. The Interactive Device105then modifies, transforms, or otherwise operates on the selected audio based on the Profile(s)260.

The method500then proceeds to block520, where the Interactive Device105outputs the generated audio. Once the output is complete (e.g., once the predefined time has passed), the method500proceeds to block525, where the Interactive Device105transmits an indication that it has finished outputting the audio. In some embodiments, while the audio is being outputted, the Interactive Device105can receive interruptions (e.g., from another Interactive Device105), or can determine spontaneously to terminate or transition to a new topic (e.g., based on a random or pseudo-random algorithm). For example, a random number generator may continuously or periodically provide a randomly-generated value. In such an embodiment, the Interactive Devices105may be programmed to switch to a different communication pattern when the generated value (or a set of generated values) satisfies a predefined condition (e.g. ‘less than X’, ‘greater than Y’, ‘Z number of consecutive odd/even values’, ‘prime number’, etc.). After transmitting the indication that the output has completed, the method500proceeds to block530, where the Interactive Device105waits to receive a return transmission indicating that the other participating device has completed its output.

In the illustrated embodiment, if, at block530, the Interactive Device105determines that the indication has not yet been received, the method500proceeds to block535, where the Interactive Device105determines whether transition criteria are satisfied. For example, in one embodiment, a user picking up or otherwise interacting with the Interactive Device105can trigger a topic transition, even if the other device(s) are still outputting their audio. Similarly, in some embodiments, the Interactive Device105can randomly determine to transition to a new topic. Further, in some embodiments, one of the other Interactive Devices105may determine to transition to a new topic, and inform the participating devices. In embodiments, these random (or seemingly random) transitions can further increase immersion for users. If the transition criteria are not satisfied, the method500returns to block530. If the criteria is met, however, the method500proceeds to block540, discussed in more detail below.

Returning to block530, when the Interactive Device105receives an indication that the other Interactive Device105has finished its output, the method500returns to block515, where the Interactive Device105generates the next audio, based on the Pattern255. In some embodiments, as discussed above, the Interactive Device105may wait until it receives a transmission indicating that it is the next device to output audio (e.g., if there are three or more Interactive Devices105participating in the interaction). In some embodiments, upon receiving the indication that one other device has completed the audio output, the Interactive Device105analyzes the Pattern255to determine whether it should respond next, or whether a different Interactive Device105is next to respond. If the Interactive Device105is not the next to output audio, the method500loops between blocks530and535, as discussed above.

Returning to block535, if the Interactive Device105determines that one or more transition criteria are satisfied, the method500continues to block540, where the Interactive Device105determines whether the criteria also satisfy termination criteria. For example, in some embodiments, in addition to random or pseudo-random transitions to other topics (e.g., to new Patterns255), the Interactive Device105can also determine to terminate the interaction entirely. In various embodiments, the termination criteria can also include receiving interaction from a user (e.g., being picked up, or detecting speech from the user), and the like. If the termination criteria are not satisfied, the method500returns to block510, where the Interactive Device105selects a new Communication Pattern255, in order to transition to the new interaction. If the termination criteria are satisfied, however, the method500terminates at block545.

It should be understood that the method500can readily apply to one-to-one interactions between devices, as well as group interactions between more than two interactive devices, where each interactive device involved in the group interaction may have a different role or part in the conversation. For example, two or more interactive devices may say the same thing (e.g., output the same audio, modified by the same audio profile) at the same time, or close to the same time. Further, one or more other devices can laugh or respond to this unified output. Similarly, in an embodiment, after this simultaneous statement, all of the devices can begin interacting or singing together, followed by outputting a laughter sound. In other examples, interactive devices in a group interaction may act in unison yet in a unique manner consistent with their own character. For example, the communication pattern may involve singing, dancing, or laughing together as a group, where each device's audio and movement is expressed according to its own device-specific character filter.

FIG. 6is a flow diagram illustrating a method600of modifying audio based on predefined profiles, according to one embodiment disclosed herein. In the illustrated embodiment, the method600provides additional detail for block515of the method500, where the Interactive Device105generates output audio based on the Pattern255. The method600begins at block605, where the Interactive Device105identifies one or more audio Profiles260that are specified in the current Pattern255. In one embodiment, the Interactive Device105determines which segment, portion, or point in the interaction is next. For example, in one embodiment, if the Interactive Device105is the initiating device, it selects the first segment (e.g., the first output) specified in the Pattern255. Further, in an embodiment, when an indication is received from another Interactive Device105indicating that the other device has finished its output, the indication can also identify which segment was just completed, and/or which segment is next. The Interactive Device105then identifies and extracts the Profile(s)260specified by this segment of the Pattern255.

The method600then continues to block610, where the Interactive Device105selects one or more Audio Files265, to be used to satisfy the segment/Profiles260. In some embodiments, the Interactive Device105uses one or more random or pseudo-random algorithms to determine how many of the Audio Files265to sample, as well as which Audio File(s)265to use. In one embodiment, the Pattern255or Profile260may specify one or more Audio Files265. Similarly, in some embodiments, the Interactive Device105may receive instructions regarding which Audio File(s)265to use (e.g., from one or more other Interactive Devices105).

The method600then proceeds to block615, where the Interactive Device105extracts one or more audio portions from the selected Audio File(s)265. In one embodiment, the Interactive Device105utilizes one or more random or pseudo-random algorithms to determine how many portions to extract, as well as which portion(s) to sample. Similarly, in some embodiments, the Interactive Device105uses one or more random or pseudo-random algorithms to determine an ordering of the portions when splicing them together. Additionally, in one embodiment, the Pattern255, Profile260, or the indication received from other Interactive Devices105may specify which portions of audio to utilize.

Finally, at block620, the Interactive Device105applies the identified Profile(s)260to the extracted audio portion(s). In embodiments, this may include modifying, at various points in the audio, the pitch, cadence, inflection, volume, and other characteristics of the audio. For example, the Profile260may specify to increase the pitch at the end of the audio, such that the output resembles a question. In this way, the audio is modified to mimic or imitate a conversation, even if the Audio Files265include nothing but gibberish or random sounds.

FIG. 7is a flow diagram illustrating a method of generating interactive communications, according to one embodiment disclosed herein. The method700begins at block705, where an Interaction Application235of a first Interactive Device105selects, with at least a degree of randomness, a first communication pattern from a plurality of communication patterns, wherein each of the plurality of communication patterns specifies one or more audio profiles. The method700then continues to block710, where the Interaction Application235identifies a first audio profile specified in the first communication pattern. Further, at block715, the Interaction Application235extracts, with at least a degree of randomness, a first portion of audio from a first audio file. The method700proceeds to block720, where the Interaction Application235modifies the first portion of audio based on the first audio profile. Finally, at block725, the Interaction Application235outputs the first modified portion of audio.

Typically, cloud computing resources are provided to a user on a pay-per-use basis, where users are charged only for the computing resources actually used (e.g. an amount of storage space consumed by a user or a number of virtualized systems instantiated by the user). A user can access any of the resources that reside in the cloud at any time, and from anywhere across the Internet. In context of the present invention, a user may access applications (e.g., Interaction Application235) or related data available in the cloud. For example, the Interaction Application235could execute on a computing system in the cloud and generate or modify audio clips. In such a case, the Interaction Application235could utilize audio profiles and communication patterns to dynamically generate interactions at a storage location in the cloud. Doing so allows a user to access this information from any computing system attached to a network connected to the cloud (e.g., the Internet).