The present invention relates generally to computer networks, and more specifically, to a system for transforming data transmitted over a network through characteristics specified by a user.
The basic functions of a computer network are to transmit, exchange or store data transmitted among computers coupled to the network. Most network implementations use a computer network simply as a point-to-point system to route and channel information among the networked computers. Some processes, such as compression or encryption techniques that speed transmission rates or enhance transmission security may be implemented on the transmitted data. In general, however, relatively little processing is performed on most data once it is transmitted from the sending terminal. Data is typically processed at the sending terminal and transmitted to the receiving terminal in its processed form. Standard network transmission systems therefore do not provide flexibility or opportunity for a receiver or third party to transform or process the data according to the receiving party's needs.
Present communication systems also typically do not provide effective mechanisms in which the relative location of various users is reflected in the audio output of characters representing the users in a networked game or other application.
What is needed, therefore, is a system that allows transmitted content data to be processed or transformed according to a receiver's needs after it has been generated and transmitted by a sending terminal.
One embodiment provides a method for use in processing audio, comprising: receiving audio data associated with each of two or more characters in a virtual world; for each of the characters, determining a proximity of the other characters in the virtual world; for each of the characters, altering the received audio data based on the determined proximity of another one of the characters; and for each of the characters, providing the altered audio data to a client associated with the other character for which the audio data was altered.
Another embodiment provides a method for use in processing audio, comprising: receiving audio data from each of a plurality of client computers coupled to an interactive network, wherein each client computer is associated with a character represented in a program executed on each computer; determining a relative location of the characters in an environment defined by the program; altering characteristics of the audio data received from each of the client computers based upon the determined relative locations of the characters in the environment defined by the program; and providing the altered audio data received from each of the client computers to another one of the client computers corresponding to the character for which the audio data was altered.
Another embodiment provides a system for use in processing audio, comprising: a server that is configured to: receive audio data associated with each of two or more characters in a virtual world; for each of the characters, determine a proximity of the other characters in the virtual world; for each of the characters, alter the received audio data based on the determined proximity of another one of the characters; and for each of the characters, provide the altered audio data to a client associated with the other character for which the audio data was altered.
Other objects, features, and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description that follows below.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements, and in which:
A data conversion system for processing downloaded content over a computer network is described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one of ordinary skill in the art, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form to facilitate explanation. The description of preferred embodiments is not intended to limit the scope of the claims appended hereto.
Aspects of the present invention may be implemented on one or more computers executing software instructions. According to one embodiment of the present invention, server and client computer systems transmit and receive data over a computer network or standard telephone line. The steps of accessing, downloading, and manipulating the data, as well as other aspects of the present invention are implemented by central processing units (CPU) in the server and client computers executing sequences of instructions stored in a memory. The memory may be a random access memory (RAM), read-only memory (ROM), a persistent store, such as a mass storage device, or any combination of these devices. Execution of the sequences of instructions causes the CPU to perform steps according to embodiments of the present invention.
The instructions may be loaded into the memory of the server or client computers from a storage device or from one or more other computer systems over a network connection. For example, a client computer may transmit a sequence of instructions to the server computer in response to a message transmitted to the client over a network by the server. As the server receives the instructions over the network connection, it stores the instructions in memory. The server may store the instructions for later execution, or it may execute the instructions as they arrive over the network connection. In some cases, the downloaded instructions may be directly supported by the CPU. In other cases, the instructions may not be directly executable by the CPU, and may instead be executed by an interpreter that interprets the instructions. In other embodiments, hardwired circuitry may be used in place of, or in combination with, software instructions to implement the present invention. Thus, the present invention is not limited to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the server or client computers.
In one embodiment of the present invention, the server computer 104 is a World-Wide Web (WWW) server that stores data in the form of ‘web pages’ and transmits these pages as Hypertext Markup Language (HTML) files over the Internet network 110 to one or more of the client computers 102. For this embodiment, the client computer 102 runs a “web browser” program 114 to access the web pages served by server computer 104. Additional web based content can be provided to client computer 102 by separate content providers, such as supplemental server 103.
In one embodiment of the present invention, server 104 in network system 100 includes a download service management process 112 that is configured to handle download requests from a user. Access to the server 104, which may comprise one of several servers, is facilitated typically through a router on network 110 which directs requests to the download management server. When the server 104 receives requests from a user, the server executes a download of requested content from a contents database that is stored internally or externally to the server. Along with processing requests for downloading of content data, the server 104 may also retrieve the requesting user's customer data from a customer database and attach it to the requested primary contents or use it to modify content or transmission parameters for particular users. This data is then transmitted via the network 110 by means of a known networking protocol standard, such as the file transfer protocol (ftp).
In one embodiment of the present invention, wherein network 110 is the Internet, network server 104 also executes a web server process 116 to provide HTML documents to client computers coupled to network 110. To access the HTML files provided by server 104, client computer 102 runs a web client process (typically a web browser) 114 that accesses and provides links to web pages available on server 104 and other Internet server sites. It should be noted that a network system 100 that implements embodiments of the present invention may include a larger number of interconnected client and server computers than shown in
The network 110 is normally a bi-directional digital communications network that connects the user's terminal hardware with the download management server provided on the server side of the system. With current technologies, a CATV (cable television) bi-directional network, ISDN (Integrated Services Digital Network), DSL (Digital Subscriber Line), or xDSL high-speed networks are examples of existing network infrastructures enabling the necessary network connections for implementing embodiments of the present invention.
The client computer of system 100 may comprise a personal computer that includes a modem or network adapter, or it may comprise a networked game console (entertainment system) that utilizes a detachable storage medium therein, and a TV monitor or any other suitable display device connected to the game console. The modem or network adapter is a device that is used to connect the client's terminal hardware, e.g., a game console, for connection to the network 110. For example, if network 110 is a CATV network, the modem may be implemented as a cable modem device; and if network 110 is an ISDN network, the modem may be implemented as a terminal adapter.
The server can supply digital content such as voice data, music clips, full-length audio and video programs, movies, still picture data, and other similar types of content. The content might further comprise promotional or advertising data associated with the primary content, such as movie previews, demo games, sample data, and other similar types of content.
In one embodiment, network system 100 includes a conversion system that transforms or processes the data transmitted from the server to the client to improve the user interface and quality of entertainment. For the embodiment in which the transmitted data comprises voice data, the conversion system can be used in various IP telephony, network chat, video game, or 3D virtual chat applications, among others.
The conversion process 204 includes circuits or processes that convert the input text data to output data, as well as processes that modify or transform the characteristics of the text data. For example, for voice output, the conversion process can be used to control various characteristics such as, tone, accents, intonation, and effects, such as echo, reverberation, and so on. For speech output, the conversion process can control characteristics such as language, dialect, expression, and so on. For example, the conversion process 204 may include a translator that translates speech in one language to another language. The conversion process can also include processes that mimic the voice characteristics of well-known characters or personalities.
Alternatively, if the voice data includes data that is first input into the server computer, the data can be digitized prior to input to the server computer. For example, a microphone or other input means may include an A/D converter to convert the voice data to digital form prior to input to the server computer. The digitized voice data is then transmitted over network 310 for further processing by voice conversion means 312.
The voice of the transmitted data can be changed and sent to other assigned user(s) over the network using a protocol such as Voice over IP (VoIP). The voice can be changed based on various factors such as virtual character talk parameters, or user provided preferences. The digitized voice data is transformed into output voice data at the client computer through digital-to-analog (D/A) converter 304. The digitized voice data output from AID converter 302 is processed through conversion system 312. The conversion system 312 includes a voice conversion process 314 and a conversion rules database 316. Alternatively, the digitized voice data can be converted to analog form after output from the client computer through an external D/A converter. Such a D/A converter may be incorporated into speaker, headphone, or other sound output systems that receive digital audio output from the client computer.
The voice conversion process 314 comprises processes that alter or modify the digitized voice data output from A/D converter 302 in the server computer into converted voice data to be output from D/A converter 304 on the client computer.
The text conversion process 414 includes several sub-processes that alter the original voice data to change the voice as it is played back on the client computer. Such changes can include modification of the original voice tone, accent, intonation, and so on. The text conversion process can also include processes that alter the substance of the input data, such as language translation (e.g., English-French) or dialect translation. Primarily, the text conversion process alters the expression of the original voice data. The expression shows a character's personality or attribute (e.g., male or female or child speaker), character's circumstance or environment (e.g., in a tunnel, cave, etc.), the character's condition (e.g., excited, sad, injured, etc.). The text conversion process can also include special effects that alter the input voice data, such as Doppler effect, echo, and so on.
In one embodiment of the present invention, the characteristics that dictate how the voice data is converted are provided by a conversion rules process 316. The rules process 316 specifies several parameters used by the voice conversion process 314 that are used to alter the input voice data. The voice rules process 316 includes user provided character profiles. In one embodiment, the character profiles are entered by the user through a user interface provided on the client computer.
The character profile can be used to tailor the voice that a displayed character speaks with in applications such as video games, educational programs, interactive applications, text-to-speech programs, and the like. The character talking voice is determined by fundamental parameters, such as frequency, waveform, etc.). The voice conversion process shapes the basic waveform to produce a converted voice that corresponds to the selected character profile. In one embodiment, a user can set the profile for the character.
For the embodiment illustrated in
In an alternative embodiment, the character's talking voice can be created based on each pre-set characters profile. For this embodiment, the rules process 316 can include a user specified database that stores certain parameters or data entries for various variables of the voice data. For example, database parameters could include values that dictate the gender of the output voice, language, expression, and so on. Through the use of such a database, the voice data output on the client computer could, for example, be set to speak in English in a male voice with an English accent.
In one embodiment of the present invention, the voice conversion process is implemented in a distributed interactive game system comprising a plurality of networked games coupled among two or more users.
In system 600, a server computer 610 may be coupled to network 608. The server computer can perform a variety of functions, such as game monitoring, providing game or application programs, managing user accounts, and the like.
For the embodiments illustrated in
The user location determination process is included in the voice conversion process as a means of altering the voice of a character played back on a user game console. In this process, the direction or/and distance between the sender and the receiver is calculated and the volume ratio of the left-right speaker pair is set based on the calculated data. In the case of surround-sound environment in which multiple speakers are coupled to a console, the other speakers are also considered.
In one embodiment, user location information for a plurality of networked game players is determined by using address information for each of the players. Address information can be stored in a database provided in each game console.
The address or location information may be provided by using the telephone number for each player. In this case, the area code provides a rough approximation of a user's location relative to the other users. An address database related to telephone numbers is stored in the memory of each terminal. A particular user's terminal receives a sender's telephone number and retrieves the location based on the telephone number. Using the retrieved location data and the user's own location data, the receiver terminal calculates the direction or/and distance.
In an alternative embodiment, the location information can be provided using a personal database stored in each game console memory (e.g., secondary memory). For this case, each user has to input the other user's addresses in advance. Zip code information could be used to provide reasonable approximations of user locations. The information is stored in a memory location of the game console. When a connection between users is established, ID information (e.g., user ID, telephone No., etc.) is sent to each user. Using the ID information, the user location is retrieved in each personal database and the direction and/or distance is calculated based on the user location.
Instead of storing user location information in each game console, the address information for a group of networked users can be stored in a central server, such as server 610 in
It should be noted that the process of altering the data in accordance with output voice characteristics can be implemented either in the server (data sending) computer, the client (data receiving) computer, or a network server computer coupled to the server and client computer. Each computer capable of altering the transmitted data would have associated with it a voice or text conversion means, such as that illustrated in
Depending upon where the output alteration process is performed, the steps of transmitting, altering, and receiving the data can be done in various different step sequences. For example, the data can be first transmitted from the server computer, altered in the server or other computer, and then received by the client computer. If the alteration process is performed by the client computer, the process can be performed by first transmitting the data from the server computer to the client computer, receiving the data in the client computer, and then altering the data in accordance with the specified output characteristics.
Besides game or entertainment programs, the voice conversion process described in relation to
The characters that represent users in a networked game, cyberspace, or other application are sometimes referred to as “avatars”. That is, an avatar may comprise a user's own interactive graphical representation in cyberspace or virtual reality environment. In some embodiments of the present invention, the audio may be adjusted based on the relative location of avatars or other characters in the game world.
More specifically, some embodiments provide for the dynamic processing of the audio channel so that the virtual distance between two avatars may be reflected in the audio output, such as for example through audio attenuation levels. For example, when the avatars are far apart in the game world the user chat channel between the two controlling users may be attenuated, whereas when the avatars come closer together in the game world the volume may be increased.
Such a system may be implemented in many different types of game related voice chat systems. For example, some game related voice chat systems are implemented as part of a “push-to-talk” system. The “push-to-talk” method is meant to simulate radio communications via walkie-talkie or other radio frequency (RF) based devices. As another example, some game related voice chat systems are implemented as part of an “always-on” system using a voice activity detection algorithm. The “always-on” method is used to simulate a local area network (LAN) party environment where the user merely needs to yell across the room to heckle at an opponent or to speak to his or her neighbor to coordinate a strategy.
In these and other voice chat systems, the user talks, but the user speaks for his or her avatar or other character in the game world. Such systems may be used in any type of interactive system or game, including but not limited to so-called first-person perspective simulations and third-person perspective simulations. Specifically, a first-person perspective simulation employs a camera scheme that may be referred to herein as a first-person game or more generally a first-person camera setting. Similarly, a third-person perspective simulation employs a camera scheme that may be referred to herein as a third-person game or more generally a third-person camera setting. In a first-person camera setting the on-screen view simulates the in-game character's point of view with the camera movement normally being linked to the movement of the character. In a third-person camera setting the player normally sees the game world from a viewpoint above and behind the main character. In many third-person games the camera movement is not linked to the movement of the main character.
Some types of games or other similar applications use a server for networked game play. The server typically has knowledge of the game data and is able to either wholly run the simulation and deliver updates to the clients or run the simulation in parallel with the clients currently in the game. The clients typically send their voice data to the server and let the server handle the delivery of the voice traffic to the appropriate clients.
In some embodiments of the present invention, the server side simulation may be used to determine avatar proximities within the game world and adjust the volume levels and position of the individual streams. The individual streams may then be mixed together into a multi-channel signal which is then delivered to the appropriate client. In some embodiments a server such as the server 610 (
Referring to
The audio data associated with each of the characters 902, 904, 906, 908 may be received by a server. In some embodiments, the audio data may include a talking voice of the character, which is typically provided by a user talking into a microphone of an associated client device. In some embodiments, the audio data may also include other audio or sounds, such as ambient noise around the character in the virtual world. For example, such ambient noise may include the character stepping on a twig or other items, a car or train passing nearby the character, sounds made by other nearby characters, or even sounds coming from a radio held by the character. Thus, the audio data associated with a character may include any sounds, such as any sounds that the character could hear.
In step 802 (
For example, the proximity of character 902 (
In step 804 (
For example, since character 902 (
In step 806 (
As mentioned above, in some embodiments other ambient noise around a character in the virtual world may also be altered, scaled or adjusted based on the character's location. Again, such ambient noise may include any sounds, noise or audio in the vicinity of the character, such as for example, the character stepping on something or reloading a gun, a vehicle near the character, sounds made by other nearby characters, etc. Thus, the audio data associated with a character may include any sounds and not just the character's voice.
It was also mentioned above that in some embodiments the ambient noise may include sounds coming from a radio held by the character. Along these lines, in some embodiments the audio data associated with a character may include not only the character's speaking voice, but also the character's voice as heard through a radio. That is, the audio data associated with a character may also include a simulation of the character's voice transmitted over a radio into which the character may be speaking. Such a simulation may be created or generated by adding various audio effects to the audio data so that the character's voice sounds like it is being transmitted over a radio. Such audio effects may comprise, for example, static, distortion, reverb, compression, presence, delay, echo, etc.
As an example, if character 902 is speaking into a radio, and character 908 has a radio and is listening to the transmission, then the only sound heard by the user associated with character 908 may be character 902's voice as heard over the radio. This is because characters 902 and 908 are located very far apart in the virtual world 900. However, if character 908 starts walking towards character 902 in the virtual world, then the user associated with character 908 will continue to hear character 902's voice as heard over the radio and may also start to hear character 902's actual voice because character 902 may be within earshot.
In some embodiments, the server that is altering or scaling the audio data associated with character 902 may insert a very slight delay between character 902's actual voice heard by earshot and character 902's voice as heard over the radio. Such a delay may more realistically simulate the sounds heard by the user associated with character 908 by introducing or producing an echo effect between character 902's actual voice heard by earshot and character 902's voice as heard over the radio. That is, there will sometimes be a delay between hearing a speaker's actual voice because he or she is close by and simultaneously hearing the speaker's voice over a radio, cellular telephone, or similar device. This is because the speaker's voice goes through the radio and the radio introduces a slight delay. This delay may produce an echo effect, which in some embodiments the server may simulate.
In some embodiments, the altering or scaling of audio data based on the relative proximities of the characters in the virtual world may create some interesting scenarios from a game strategy point of view. For example, the user corresponding to an enemy character in an area may overhear another character. As an illustration, character 904 may be an enemy of character 902, and since character 904 is located nearby character 902 in the virtual world 900, the user corresponding to character 904 may be able to overhear character 902's actual voice as character 902 talks to character 908 on the radio. Character 902 may not realize this and thus may unknowingly give away valuable secrets to the enemy.
In some embodiments, a character's audio data that is altered or scaled may optionally be mixed or encoded into a multi-channel format stream prior to being provided to a client associated with another character. For example, the individual audio streams for the characters may be mixed into a multi-channel signal stream based on relative position, which would then be delivered to the clients. Any multi-channel format may be used. For example, the Audio Coding 3 (AC-3) format may be used, which is a known high quality multi-channel digital audio code format. As another example, the Digital Theater Systems (DTS) sound format may also be used, which is an established multi-channel audio format in movie theaters.
In some embodiments, the multi-channel format stream may then be encoded andor compressed as necessary to reduce network bandwidth. Once compressed, the custom multi-channel stream may be delivered to the appropriate client. Each client may then receive the stream and decode it. The decoded stream may then be mixed with other game audio and played out to the speakers.
As mentioned above, in some embodiments a server, such as the server 610 (
Thus, embodiments of the present invention provide for determining the relative locations of the avatars or other characters corresponding to users in an environment defined by the program or other simulation. The output characteristics of the output audio may be altered depending upon the location or proximities of each character associated with each of the users. The altered audio data may then be provided to the appropriate client devices.
In the foregoing, a system has been described for modifying transmitted content data based on user preferences. Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
This application is a continuation-in-part (CIP) of U.S. patent application Ser. No. 09/846,115, filed on Apr. 30, 2001, entitled “ALTERING NETWORK TRANSMITTED CONTENT DATA BASED UPON USER SPECIFIED CHARACTERISTICS”, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 09846115 | Apr 2001 | US |
Child | 11686291 | Mar 2007 | US |