embodiments of the present invention generally relate to voice modification during a call . according to at least one exemplary embodiment , two or more participants engage in a telephone call , or a telephone conference . the participants may be from different countries , regions , or the like , and may have varied accents and language conventions not common to everyone on the call . each participant &# 39 ; s dialect is detected and a speech profile is retrieved based on the dialect as well as other identifying metadata . a target dialect is chosen and one or more of the participants voices are modulated to resemble the target dialect . the following detailed description of preferred embodiments refers to the accompanying drawings , which illustrate specific embodiments of the invention . other embodiments having different structures and operations do not depart from the scope of the present invention . in the following description , the terms voip system , voip telephony system , ip system and ip telephony system are all intended to refer to a system that connects callers and that delivers data , text and video communications using internet protocol data communications . as illustrated in fig1 , a communications environment 100 is provided to facilitate ip enhanced communications . an ip telephony system 120 enables connection of telephone calls between its own customers and other parties via data communications that pass over a data network 110 . the data network 110 is commonly the internet , although the ip telephony system 120 may also make use of private data networks . the ip telephony system 120 is connected to the internet 110 . in addition , the ip telephony system 120 is connected to a publicly switched telephone network ( pstn ) 130 via a gateway 122 . the pstn 130 may also be directly coupled to the internet 110 through one of its own internal gateways ( not shown ). thus , communications may pass back and forth between the ip telephony system 120 and the pstn 130 through the internet 110 via a gateway maintained within the pstn 130 . the gateway 122 allows users and devices that are connected to the pstn 130 to connect with users and devices that are reachable through the ip telephony system 120 , and vice versa . in some instances , the gateway 122 would be a part of the ip telephony system 120 . in other instances , the gateway 122 could be maintained by a third party . customers of the ip telephony system 120 can place and receive telephone calls using an ip telephone 108 that is connected to the internet 110 . such an ip telephone 108 could be connected to an internet service provider via a wired connection or via a wireless router . in some instances , the ip telephone 108 could utilize the data channel of a cellular telephone system to access the internet 110 . alternatively , a customer could utilize a analog telephone 102 which is connected to the internet 110 via a telephone adapter 104 . the telephone adapter 104 converts analog signals from the telephone 102 into data signals that pass over the internet 110 , and vice versa . analog telephone devices include but are not limited to standard telephones and document imaging devices such as facsimile machines . a configuration using a telephone adapter 104 is common where the analog telephone 102 is located in a residence or business . other configurations are also possible where multiple analog telephones share access through the same ip adaptor . in those situations , all analog telephones could share the same telephone number , or multiple communication lines ( e . g ., additional telephone numbers ) may provisioned by the ip telephony system 120 . in addition , a customer could utilize a soft - phone client running on a computer 106 to place and receive ip based telephone calls , and to access other ip telephony systems ( not shown ). in some instances , the soft - phone client could be assigned its own telephone number . in other instances , the soft - phone client could be associated with a telephone number that is also assigned to an ip telephone 108 , or to a telephone adaptor 104 that is connected one or more analog telephones 102 . users of the ip telephony system 120 are able to access the service from virtually any location where they can connect to the internet 110 . thus , a customer could register with an ip telephony system provider in the u . s ., and that customer could then use an ip telephone 108 located in a country outside the u . s . to access the services . likewise , the customer could also utilize a computer outside the u . s . that is running a soft - phone client to access the ip telephony system 120 . a third party using an analog telephone 132 which is connected to the pstn 130 may call a customer of the ip telephony system 120 . in this instance , the call is initially connected from the analog telephone 132 to the pstn 130 , and then from the pstn 130 , through the gateway 122 to the ip telephony system 120 . the ip telephony system 120 then routes the call to the customer &# 39 ; s ip telephony device . a third party using a cellular telephone 134 could also place a call to an ip telephony system customer , and the connection would be established in a similar manner , although the first link would involve communications between the cellular telephone 134 and a cellular telephone network . for purposes of this explanation , the cellular telephone network is considered part of the pstn 130 . in the following description , references will be made to an “ ip telephony device .” this term is used to refer to any type of device which is capable of interacting with an ip telephony system to complete an audio or video telephone call or to send and receive text messages , and other forms of communications . an ip telephony device could be an ip telephone , a computer running ip telephony software , a telephone adapter which is itself connected to a normal analog telephone , or some other type of device capable of communicating via data packets . an ip telephony device could also be a cellular telephone or a portable computing device that runs a software application that enables the device to act as an ip telephone . thus , a single device might be capable of operating as both a cellular telephone and an ip telephone . the following description will also refer to a mobile telephony device . the term “ mobile telephony device ” is intended to encompass multiple different types of devices . in some instances , a mobile telephony device could be a cellular telephone . in other instances , a mobile telephony device may be a mobile computing device , such as the apple iphone ™, that includes both cellular telephone capabilities and a wireless data transceiver that can establish a wireless data connection to a data network . such a mobile computing device could run appropriate application software to conduct voip telephone calls via a wireless data connection . thus , a mobile computing device , such as an apple iphone ™, a rim blackberry or a comparable device running google &# 39 ; s android operating system could be a mobile telephony device . in still other instances , a mobile telephony device may be a device that is not traditionally used as a telephony device , but which includes a wireless data transceiver that can establish a wireless data connection to a data network . examples of such devices include the apple ipod touch ™ and the ipad ™. such a device may act as a mobile telephony device once it is configured with appropriate application software . fig1 illustrates that a mobile computing device with cellular capabilities 136 is capable of establishing a first wireless data connection a with a first wireless access point 140 , such as a wifi or wimax router . the first wireless access point 140 is coupled to the internet 110 . thus , the mobile computing device 136 can establish a voip telephone call with the ip telephony system 120 via a path through the internet 110 and the first wireless access point 140 . fig1 also illustrates that the mobile computing device 136 can establish a second wireless data connection b with a second wireless access point 142 that is also coupled to the internet 110 . further , the mobile computing device 136 can establish a third wireless data connection c via a data channel provided by a cellular service provider 130 using its cellular telephone capabilities . the mobile computing device 136 could also establish a voip telephone call with the ip telephony system 120 via the second wireless connection b or the third wireless connection c . although not illustrated in fig1 , the mobile computing device 136 may be capable of establishing a wireless data connection to a data network , such as the internet 110 , via alternate means . for example , the mobile computing device 136 might link to some other type of wireless interface using an alternate communication protocol , such as the wimax standard . fig2 is a block diagram depicting a dialect modification apparatus 200 in accordance with exemplary embodiments of the present invention . the apparatus 200 comprises a detection module 202 , a conversion module 204 and a modulation module 206 . according to an exemplary usage of the dialect modification apparatus 200 , a call is initiated by a first participant 210 to a second participant 216 . the present invention does not limit the number of participants engaged in a call , however . for example , third participant 212 and fourth participant 214 may also join the established call between participants 210 and 216 . the call is initiated over a carrier network 201 , where according to some embodiments , the carrier network 201 is a voip network and one or more of the client devices participate in the call using a voip application installed on their device . according to some embodiments , the dialect modification apparatus 200 may be housed in a media relay of an underlying voip system as described in fig1 . those of ordinary skill in the art will recognize that the network 201 may be any type of network , for example an ip network , or the like . in some embodiments , carrier network 201 may be comprised of one or more of the elements described in fig1 , such as , for example , internet 110 , ip telephony system 120 , gateway 122 , and / or pstn provider 130 . a mixture of none , some or all of the devices used by participants may be voip devices . for example , participant 210 calls second participant 216 via a voip application installed on the client device of participant 210 , but second participant 216 receives the call via his or her analog telephone device operating on a pstn or a cellular phone operating on a cellular provider network . however , those of ordinary skill in the art would recognize that the present application does not limit the dialect modification apparatus 200 to only a voip network . according to one embodiment , once the call has begun and participants ( for example , participants 210 - 216 ) of the conversation have started speaking , the dialect modification apparatus 200 receives a source audio signal associated with each participant . the detection module 202 then detects the dialect of each participant based on one or more of their voices in the call , their caller id , their user id if using a voip network , and associated metadata . in other words , the detection module 202 detects a source dialect for each participant . in some instances , the metadata may further contain location information for the origination of the call , social media profile information , contact information , destination of the call or the like . taken together , this data can strongly predict a particular user &# 39 ; s dialect . in some instances , a caller identification number ( clid ) can be used to retrieve a caller &# 39 ; s location and as a result , the dominant dialect in that area . in addition , if the service provider 201 stores a user address book , then the clid can be found in a contact which , in turn , may provide more information such as physical address or location of the caller . additionally , social media may be used in several ways . for example , a caller dialect may be selected based on the geographical area where the user “ checked - in ” the most . also , place of birth , where the caller studied and the like may indicate the dialect of a caller as well . such information may generally be accessed via specialized apis for providing user information . alternatively , a sample of the participant &# 39 ; s voice is taken from the source audio signal by the detection module 202 and compared to existing dialects stored in a datastore 208 . the datastore 208 may be a relational database , or other type of data storing service . in some instances , the datastore 208 may be located locally or remotely from the dialect modification apparatus 200 . the datastore 208 stores dialects samples , speech profiles and other data related to voice modification during a call . in some embodiments , a speech profile is returned to the detection module 202 based on the dialect matched from the datastore 208 . the dialect modification apparatus 200 determines a target dialect for the call based on a preference of the participant who initiated the call , predominance of particular speech profiles among the participants or the like . the conversion module 204 converts the participants &# 39 ; voices into text based on the participants detected dialects and couples the text to the modulation module 206 . for example , if one participant &# 39 ; s dialect was american english , the speech - to - text engine would be notified of this dialect so that the text conversion would be performed accurately . the text is associated with particular speech changes by the modulation module 206 . for example , if the target dialect is “ british english ” and the participant speech being converted is “ australian english ”, particular words such as “ good day ” may be associated with a modulation change such as separating the timing between the two words , extending vowel sounds , or the like to conform the speech to the target dialect . subsequently , the text with associated modulations is converted into speech by the conversion module 204 to create a modulated audio signal based on the source audio signal , the source dialect and the target dialect using well known text - to - speech conversion engines to conform to the selected target dialect and transmitted to other client devices . some examples of text - to - speech engines that may be used include nuance loguendo tts engine , readspeaker , at & amp ; t research lab conversion , or the like . in some embodiments , the conformed , or modulated , speech is delivered to one or more participants of the voice call , depending on the various gaps between the speech profiles of the participants . for example , if first participant 210 and second participant 212 have the same speech profile , first participant 210 will not hear a modulated version of the voice of second participant 212 and vice versa . on the other hand , if the speech profiles retrieved for participant 214 and participant 212 are different , participant 212 will hear a modulated voice of participant 214 and the participant 214 will hear a modulated voice of participant 212 , where the voices are modulated to conform to the target dialect . in some embodiments , each participant may require that incoming voice calls be modulated to the participant &# 39 ; s dialect . for example , the first participant 210 may configure it so that their personal dialect is the target dialect for all incoming calls to the first participant 210 . similarly , on the same call , third participant 214 may configure it so that all incoming voice is modulated to the dialect of participant 214 . according to some embodiments , voice modulation is only performed if the difference in dialect exceeds a predetermined accent threshold . for example , for each dialect a set of keywords / phrases are chosen that will serve as the benchmark for those dialects . the difference between the way a speaker pronounces one of the keywords will be measured against the benchmarked pronunciation . in some embodiments , the difference may be measured by amplitude differences , time to pronounce a certain syllable in a word , saying different vowels and the like . the threshold will be reached on a per word basis or , if the speaker was very close to a threshold a certain number of times . according to other embodiments , text - to - speech conversion is not performed by the conversion module 204 . in these embodiments , the audio of each participant is “ massaged ”, or “ modulated ” to conform to the target dialect directly . each voice call participants &# 39 ; voice is broken or parsed into phonemes , or small contrastive units of sound in a sound system of a language . each phoneme is analyzed by the modulation module 206 in light of the target dialect , and the difference between the phoneme of the participant speech and the target dialect is identified . based on the identified difference , the modulation module 206 modifies the pitch , speed , duration , or other audio qualities of the speech to conform the speech to the target dialect phoneme . in some embodiments , this phoneme conversion is performed in real - time , or with a slight delay based on processing time of the underlying hardware of the dialect modification apparatus 200 , preserving the identity of each participant while making each participant easier to understand to others . in some embodiments , participants who would like to hear other participants without voice modulation may disable any voice modulation generated by the dialect modification apparatus 200 . according to one example , if a participant is not engaged in a phone conference , but is placing a call to a call center in a foreign country , the call center technician may have an accent that is difficult to understand for the call initiating participant . in this instance , the dialect of the call center technician is modified by the dialect modification apparatus 200 to the dialect of the call initiating participant . in other instances , the dialect is always modified to the common dialect in the country or state where the dialect modification apparatus 200 is provided . in some embodiments , the modulated voice is analyzed by the dialect modification apparatus 200 to determine whether modulation was successful , and if not , documenting the deficiencies for future voice modulations . the determination of the success of modulation may be decided based on participant feedback , or based on an analysis of the modulated voice with respect to the target dialect . fig3 is a block diagram detailing the operation of the detection module 202 in accordance with exemplary embodiments of the present invention . as described above , the detection module 202 parses the voice content of all participants and retrieves an associate &# 39 ; s speech profile associated with each participant . according to fig3 , the detection module 202 retrieves a speech profile 300 from the datastore 208 based on the detected user dialect . in some embodiments , the selection of a speech profile is greatly enhanced by participant metadata 301 to increase the accuracy of the selected speech profile . in some embodiments , the participant metadata 301 may include information stored with respect to a user profile associated with a unique identifier ( e . g ., caller id , messaging system identifier , email address , account identifier , ip address , name , and the like ) of the user . the user profile may be maintained in a database by the service provider . for example , according to exemplary embodiments , the participant metadata may include such information as the telephone number of the participant , a caller id of the participant , the city , state and country of the participant , a voice sample , social media information , contacts and the like . in some embodiments , the participant metadata 301 retrieved from a user profile stored in a database maintained by the service provider may include previous dialect information detected or used on a previous history of call ( s ). in some embodiments , the participant metadata 301 retrieved from a user profile stored in a database maintained by the service provider may include a user selection of a first dialect they would like to voice to be modulated to ( i . e ., how a user would like to sound to other participants ), and / or a user selection of a second dialect that they would like the other participant ( s ) voice to be modulated to ( how a user would like other participants to sound to them ). in some embodiments , an identifier of one or more of the participants may be used to lookup participant metadata 301 in a user database to determine dialects used in previous calls by the user . those of ordinary skill in the art will recognize that the participant metadata 301 may include any information available from a service provider which aids in identifying the user &# 39 ; s region or dialect information as described above . the speech profile 300 is comprised of regional information 302 , dialect information 304 , phonetic transformation information 306 and acoustic information 308 . the regional information 302 contains information about the specific region a participant is calling from or is associated with , for example , the city , state , country , or the like . the dialect information 304 contains data identifying a speaking dialect for the participant . the dialect information 304 may be a pointer to a database record of particular nuances of the dialect . for instance , the database record may contain a dialect record for the southern united states dialect . the record for the dialect may indicate pronunciation of particular words , or the phonetics of a particular letter when speaking that dialect . the phonetic transformation information 306 contains data on how to transform the dialect contained in the dialect information 304 to the target dialect selected by the dialect modification apparatus 200 . finally , the speech profile 300 further contains acoustic information 308 , where the acoustic information 308 dictates the acoustic differences encountered in this particular speech profile from various other speech profiles . according to some embodiments , the phonetic transformation information 306 and the acoustic information 308 is described in the paper entitled “ characterizing phonetic transformations and fine - grained acoustic differences across dialects ” by nancy fang - yih chen , published at http :// mit . dspace . org / handle / 1721 . 1 / 65514 , hereby incorporated by reference in its entirety . further information on phonetic transformation and acoustic differences can be found in the paper entitled “ methods for characterizing participants &# 39 ; nonmainstream dialect use in child language research ”, also hereby incorporated by reference in its entirety . both of the methods described in these two papers may be used to compile phonetic transformation information and acoustic information in the present application . the speech profile 300 is retrieved from the datastore 208 by the detection module 202 , and used for further operation . fig4 is a flow diagram detailing the interaction of the conversion module 204 and the modulation module 206 in accordance with exemplary embodiments of the present invention . voice call content 400 is passed to the conversion module 204 from the detection module 202 . according to one embodiment of the present invention , the conversion module 204 converts the voice call content to parsed text 402 using well known speech - to - text engines such as dragon naturally speaking , lumenvox or the like . the parsed text 402 is then coupled to the modulation module 206 along with the selected speech profile 300 retrieved from the datastore 208 by the detection module 202 . according to one embodiment , the modulation module 206 determines , based on the speech profile 300 , what changes need to be made to the parsed text 402 , and associated particular changes with portions of the text 402 . the text and the associated changes are passed to the conversion module 204 , and the conversion module 204 converts the text back to speech in the form of the modified voice call content 406 , based on the changes indicated by the modulation module 206 . the modified voice call content 406 is then transmitted to the appropriate call participants , as determined by the speech profile of each participant . according to another embodiment , the conversion module 204 passes the voice call content 400 directly to the modulation module 206 without performing speech - to - text conversion . the modulation module 206 then parses the voice call content 400 into various phonemes . the difference between the phonemes of the participant and the phonemes of the target dialect are determined , and based on the speech profile 300 , the modulation module 206 modulates portions of the voice call content 400 to generate a modulated voice 404 . the modulated voice 404 is modulated according to the predetermined or chosen one or more target dialects . the modulated voice 404 is then relayed to the appropriate call participants , based on which dialect the recipients are programmed to hear . in some embodiments , calls be routed based on a detected dialect of a caller . for example , the caller &# 39 ; s dialect would be determined , or retrieved if previously stored in association with an identifier of the caller . once the caller &# 39 ; s dialect has been determined , or retrieved , the call would be routed to a customer service or sales agent , for example , that has a matching dialect . in some embodiments , the call may be routed to any customer service or sales agent , for example , but the agent &# 39 ; s voice would be modulated accordingly . in some embodiments , the agent &# 39 ; s voice would be modulated to a target dialect based on a preference of the caller , or based on a customer satisfaction ratings or sales revenue generation data associated with particular dialects . fig5 is a block diagram depicting a computer system for implementing the dialect modification apparatus 200 in accordance with exemplary embodiments of the present invention . the computer system 500 includes a processor 502 , various support circuits 505 , and memory 504 . the processors 502 may include one or more microprocessors known in the art . the support circuits 505 for the processor 502 include conventional cache , power supplies , clock circuits , data registers , i / o interface 507 , and the like . the i / o interface 507 may be directly coupled to the memory 504 or coupled through the support circuits 505 . the i / o interface 507 may also be configured for communication with input devices and / or output devices such as network devices , various storage devices , mouse , keyboard , display , video and audio sensors and the like . the memory 504 , or computer readable medium , stores non - transient processor - executable instructions and / or data that may be executed by and / or used by the processor 502 . these processor - executable instructions may comprise firmware , software , and the like , or some combination thereof . modules having processor - executable instructions that are stored in the memory 504 comprise an dialect modification module 506 and a datastore 514 . the dialect modification module 506 further comprises a detection module 508 , a conversion module 510 and a modulation module 512 . speech profiles 515 and voice samples 516 of the various participants in a voice call may also be stored in memory 504 . in other instances , the speech profiles and voice samples are stored in a cloud storage for access and retrieval . the computer system 500 may be programmed with one or more operating systems 520 , which may include os / 2 , linux , solaris , unix , hpux , aix , windows , ios , and android among other known platforms . the memory 504 may include one or more of the following : random access memory , read only memory , magneto - resistive read / write memory , optical read / write memory , cache memory , magnetic read / write memory , and the like , as well as signal - bearing media as described below . those skilled in the art will appreciate that computer system 500 is merely illustrative and is not intended to limit the scope of embodiments . in particular , the computer system and devices may include any combination of hardware or software that can perform the indicated functions of various embodiments , including computers , network devices , internet appliances , pdas , wireless phones , pagers , and the like . computer system 500 may also be connected to other devices that are not illustrated , or instead may operate as a stand - alone system . in addition , the functionality provided by the illustrated components may in some embodiments be combined in fewer components or distributed in additional components . similarly , in some embodiments , the functionality of some of the illustrated components may not be provided and / or other additional functionality may be available . those skilled in the art will also appreciate that , while various items are illustrated as being stored in memory or on storage while being used , these items or portions of them may be transferred between memory and other storage devices for purposes of memory management and data integrity . alternatively , in other embodiments some or all of the software components may execute in memory on another device and communicate with the illustrated computer system via inter - computer communication . some or all of the system components or data structures may also be stored ( e . g ., as instructions or structured data ) on a computer - accessible medium or a portable article to be read by an appropriate drive , various examples of which are described above . in some embodiments , instructions stored on a computer - accessible medium separate from computer system 500 may be transmitted to computer system 500 via transmission media or signals such as electrical , electromagnetic , or digital signals , conveyed via a communication medium such as a network and / or a wireless link . various embodiments may further include receiving , sending or storing instructions and / or data implemented in accordance with the foregoing description upon a computer - accessible medium or via a communication medium . in general , a computer - accessible medium may include a storage medium or memory medium such as magnetic or optical media , e . g ., disk or dvd / cd - rom , volatile or non - volatile media such as ram ( e . g ., sdram , ddr , rdram , sram , and the like ), rom , and the like . the methods described herein may be implemented in software , hardware , or a combination thereof , in different embodiments . in addition , the order of methods may be changed , and various elements may be added , reordered , combined , omitted or otherwise modified . all examples described herein are presented in a non - limiting manner . various modifications and changes may be made as would be obvious to a person skilled in the art having benefit of this disclosure . realizations in accordance with embodiments have been described in the context of particular embodiments . these embodiments are meant to be illustrative and not limiting . many variations , modifications , additions , and improvements are possible . accordingly , plural instances may be provided for components described herein as a single instance . boundaries between various components , operations and data stores are somewhat arbitrary , and particular operations are illustrated in the context of specific illustrative configurations . other allocations of functionality are envisioned and may fall within the scope of claims that follow . finally , structures and functionality presented as discrete components in the example configurations may be implemented as a combined structure or component . these and other variations , modifications , additions , and improvements may fall within the scope of embodiments as defined in the claims that follow . fig6 is a flow diagram for a method 600 for call modification in accordance with exemplary embodiments of the present invention . the method 600 is an exemplary process flow of the dialect modification apparatus 200 , implemented as the dialect modification module 506 , executed on the computer system 500 . the method begins at step 602 and proceeds to step 604 . at step 604 , the detection module 508 detects the dialect of one or more voice call participants . the detected dialects may be all the same , or each one may differ . the goal is to align the dialects so that all participants may understand each other . the dialects are detected based on a received source audio signal associated with at least one participant . the source audio signal comprises a voice of the at least one participant . at step 606 , one or more target dialects are chosen for at least one of the one or more participants . namely , it is not necessary that only one target dialect be selected for all participants . the dialect modification module 506 can be configured to enable each participant to hear other participants &# 39 ; speech in their dialect . alternatively , participants in the same region can be configured to have other participants voice modulated to the dialect of the participants in the same region , and / or vice versa . in other embodiments , the target dialect is selected based on at least a characteristic of a target participant . for example , if a target participant is from a particular region in china , the target dialect is selected as the dialect prevalent in that region of china . the method then proceeds to step 608 , where the modulation module 512 modulates the voice of a portion of the one or more participants of the call to match the one or more target dialects . the modulation module 512 modulates an audio signal based on the source audio signal , the source dialect and the target dialect . step 608 may also comprise sub - steps 610 - 614 . at step 610 , the portion of the voice which is to be modulated is converted into text based on the detected dialect of each participant . subsequently , a speech profile is selected based on participant metadata at step 612 . the text of the portion of speech that is to be modulated is associated with modifications depending on the selected speech profile to match the one or more target dialects . at step 614 , the method 600 converts the text back to speech based on the selected speech profile and the associated modifications , in the one or more target dialects . the modulated audio signal is then transmitted to the target recipient . the method 600 returns to step 608 and the method terminates at step 618 . those skilled in the art will also appreciate that , while various items are illustrated as being stored in memory or on storage while being used , these items or portions of them may be transferred between memory and other storage devices for purposes of memory management and data integrity . alternatively , in other embodiments some or all of the software components may execute in memory on another device and communicate with the illustrated computer system via inter - computer communication . some or all of the system components or data structures may also be stored ( e . g ., as instructions or structured data ) on a computer - accessible medium or a portable article to be read by an appropriate drive , various examples of which are described above . in some embodiments , instructions stored on a computer - accessible medium separate from computer system 500 may be transmitted to computer system 500 via transmission media or signals such as electrical , electromagnetic , or digital signals , conveyed via a communication medium such as a network and / or a wireless link . various embodiments may further include receiving , sending or storing instructions and / or data implemented in accordance with the foregoing description upon a computer - accessible medium or via a communication medium . in general , a computer - accessible medium may include a storage medium or memory medium such as magnetic or optical media , e . g ., disk or dvd / cd - rom , volatile or non - volatile media such as ram ( e . g ., sdram , ddr , rdram , sram , and the like ), rom , and the like . the methods described herein may be implemented in software , hardware , or a combination thereof , in different embodiments . in addition , the order of methods may be changed , and various elements may be added , reordered , combined , omitted or otherwise modified . all examples described herein are presented in a non - limiting manner . various modifications and changes may be made as would be obvious to a person skilled in the art having benefit of this disclosure . realizations in accordance with embodiments have been described in the context of particular embodiments . these embodiments are meant to be illustrative and not limiting . many variations , modifications , additions , and improvements are possible . accordingly , plural instances may be provided for components described herein as a single instance . boundaries between various components , operations and data stores are somewhat arbitrary , and particular operations are illustrated in the context of specific illustrative configurations . other allocations of functionality are envisioned and may fall within the scope of claims that follow . finally , structures and functionality presented as discrete components in the example configurations may be implemented as a combined structure or component . these and other variations , modifications , additions , and improvements may fall within the scope of embodiments as defined in the claims that follow . while the foregoing is directed to embodiments of the present invention , other and further embodiments of the invention may be devised without departing from the basic scope thereof , and the scope thereof is determined by the claims that follow .