1. A method for matching devices, the method comprising:
transmitting, by a first device and over an audio channel that is shared between the first device and a second device, a first audio signal, at a first frequency outside a range that a human ear can readily detect, and that encodes a first code comprising a first sequence of bits;
transmitting, by the second device and over the audio channel, a second audio signal, at a second frequency outside the range that a human ear can readily detect, and that encodes a second code comprising a second sequence of bits;
responsive to receiving the second audio signal over the audio channel, extracting, by the first device, the second code from the second audio signal;
responsive to receiving the first audio signal over the audio channel, extracting, by the second device, the first code from the first audio signal;
sending, by the first device, the second code to a server;
sending, by the second device, the first code to the server;
responsive to receiving the first code from the second device and the second code from the first device, determining, by the server, whether the first device is in proximity to the second device;
transmitting, by the second device and over the audio channel, a third audio signal, at a third frequency outside the range that a human ear can readily detect, and that encodes the first code;
responsive to receiving the third audio signal over the audio channel, extracting, by the first device, the first code from the third audio signal; and
determining, by the first device and based on the third audio signal, a distance between the first device and the second device.
2. The method of claim 1, wherein the first and third audio signals include timestamps, and wherein the first device determines the distance based on the timestamps.
3. The method of claim 1, wherein the first and third audio signals include timestamps and chirps, and wherein the first device determines the distance based on the timestamps and chirps.
4. The method of claim 1, wherein the first device determines a relative velocity between the first and second devices based on the second audio signal.
5. The method of claim 1, wherein the first sequence of bits and the second sequence of bits each comprise 32 bits.
6. The method of claim 1, wherein the first audio signal has a frequency between approximately 18,000 and 19,000 Hz.
7. The method of claim 1, wherein the first device and the second device comprise a microphone andor a speaker for transmitting and receiving audio signals.
8. The method of claim 1,
wherein the first device transmits the first audio signal in response to receiving, at the first device, an indication of an intent of a user of the first device to communicate with a user of the second device; and
wherein the second device transmits the second audio signal in response to receiving, at the second device, an indication of an intent of the user of the second device to communicate with the user of the first device.
9. A system, comprising:
a first device configured to periodically transmit a first audio signal, at a first frequency outside a range that a human ear can readily detect, and that encodes a first code comprising a first sequence of bits over an audio channel that is shared between the first device and a second device;
the second device configured to periodically transmit a second audio signal, at a second frequency outside the range that a human ear can readily detect, and that encodes a second code comprising a second sequence of bits over the audio channel;
wherein the first device is further configured to:
receive the second audio signal over the audio channel, and
extract the second code from the second audio signal;
wherein the second device is further configured to:
receive the first audio signal over the audio channel,
extract the first code from the first audio signal; and
transmit a third audio signal, at a third frequency outside the range that a human ear can readily detect, and that encodes the first code;
wherein, responsive to receiving the third audio signal over the audio channel, the first device is further configured to:
extract the first code from the third audio signal; and
determine the distance between the first device and the second device based on the third audio signal;
wherein the first device is further configured to send the second code to a server;
wherein the second device is further configured to send the first code to the server; and
the server configured to determine that the first device is in proximity to the second device upon receiving the first code from the second device and the second code from the first device.
10. The system of claim 9, wherein the first and third audio signals include timestamps, and wherein the first device is configured to determine the distance based on the timestamps.
11. The method of claim 9, wherein the first and third audio signals include timestamps and chirps, and wherein the first device is configured to determine the distance based on the timestamps and chirps.
12. The system of claim 9, wherein the first device is further configured to determine a relative velocity between the first and second devices based on the second audio signal.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A computer-implemented method of presenting audible messages to participants in an electronic chat session, each participant being either a human user or a software controlled agent associated with the human user, the software controlled agent capable of mimicking human conversation and having distinguishing audible characteristics, the method comprising:
(a) a first software controlled agent in a computer receiving a first message generated by a participant in the chat session, the first agent being associated with a first human user;
(b) automatically determining whether the first message was generated by a second human user or a second software controlled agent in a computer associated with the second human user; and
(c) the first agent automatically generating a second message and transmitting the second message to at least one other participant in the chat session if it is determined in step (b) that the first message was generated by the second agent, wherein step (c) further comprises:
the first agent presenting the first message to the first human user in an audible format having a first set of distinguishing audible characteristics associated with the identity of the second agent if it is determined in step (b) that the first message was generated by the second agent; and
the first agent presenting the second message to the first human user in an audible format having a second set of distinguishing audible characteristics associated with the identity of the first agent if it is determined in step (b) that the first message was generated by the second agent.
2. The method of claim 1, further comprising:
(d) executing software that allows the first and second human users to listen to a conversation occurring between the first and second software controlled agents.
3. The method of claim 1, further comprising:
(d) displaying on a display screen, animated images representing the first and second software controlled agents.
4. The method of claim 1, further comprising:
(d) presenting the first message to the first human user in a text format if it is determined in step (b) that the first message was generated by the second human user.
5. The method of claim 1, wherein the first and second messages are text messages, the method further comprising:
(d) the first and second agents converting the text messages to speech.
6. The method of claim 1, wherein the software controlled agents transmit sound files to a sound file player.
7. The method of claim 1 wherein the content of messages sent by software controlled agents include a message portion that identifies that the message is sent by the agent, and wherein step (b) is performed by parsing the first message and detecting whether a message portion that identifies that the message is sent by an agent is present in the message.
8. An article of manufacture for presenting audible messages to participants in an electronic chat session, each participant being either a human user or a software controlled agent associated with the human user, the software controlled agent capable of mimicking human conversation and having distinguishing audible characteristics, the article of manufacture comprising a computer-readable medium holding computer-executable instructions for performing a computer-implemented method comprising:
(a) a first software controlled agent in a computer receiving a first message generated by a participant in the chat session, the first agent being associated with a first human user;
(b) automatically determining whether the first message was generated by a second human user or a second software controlled agent in a computer associated with the second human user; and
(c) the first agent automatically generating a second message and transmitting the second message to at least one other participant in the chat session if it is determined in step (b) that the first message was generated by the second agent, wherein step (c) further comprises:
the first agent presenting the first message to the first human user in an audible format having a first set of distinguishing audible characteristics associated with the identity of the second agent if it is determined in step (b) that the first message was generated by the second agent; and
the first agent presenting the second message to the first human user in an audible format having a second set of distinguishing audible characteristics associated with the identity of the first agent if it is determined in step (b) that the first message was generated by the second agent.
9. The article of manufacture of claim 8 wherein the content of messages sent by software controlled agents include a message portion that identifies that the message is sent by the agent, and wherein step (b) is performed by parsing the first message and detecting whether a message portion that identifies that the message is sent by an agent is present in the message.
10. The article of manufacture of claim 9, wherein the computer-executable instructions perform a method further comprising:
(d) executing software that allows the first and second human users to listen to a conversation occurring between the first and second software controlled agents.
11. The article of manufacture of claim 9, wherein the computer-executable instructions perform a method further comprising:
(d) displaying on a display screen, animated images representing the first and second software controlled agents.
12. The article of manufacture of claim 9, wherein the computer-executable instructions perform a method further comprising:
(d) presenting the first message to the first human user in a text format if it is determined in step (b) that the first message was generated by the second human user.
13. The article of manufacture of claim 9, wherein the first and second messages are text messages, and the computer-executable instructions perform a method further comprising:
(d) the first and second agents converting the text messages to speech.
14. The article of manufacture of claim 9, wherein the software controlled agents transmit sound files to a sound file player.