Abstract:
Method for a portable memory device is provided. The method includes, recording a keyword and creating a voice based template for the keyword, wherein a processor for the portable memory device creates the voice based template and stores the voice based template in non-volatile memory cells; prompting the user to capture button control actions related to a portable memory device functionality; and associating the button control actions to the voice based template.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]     This patent application is related to the following applications, the disclosure of which is incorporated herein by reference in its entirety:  
         [0002]     Ser. No. ______, filed on even data herewith, Docket Number SDK736.00US, entitled “VOICE CONTROLLED PORTABLE MEMORY STORAGE DEVICE”;  
         [0003]     Ser. No. ______, filed on even data herewith, Docket Number SDK737.00US, entitled “VOICE CONTROLLED PORTABLE MEMORY STORAGE DEVICE”; and  
         [0004]     Ser. No. ______, filed on even data herewith, Docket Number SDK737.01US, entitled “VOICE CONTROLLED PORTABLE MEMORY STORAGE DEVICE”. 
     
    
     BACKGROUND OF THE INVENTION  
       [0005]     1. Field of the Invention  
         [0006]     The present invention relates to portable devices, and more particularly, to voice activated and controlled, portable non-volatile memory storage devices.  
         [0007]     2. Background  
         [0008]     Non-volatile semiconductor memory devices, such as flash memory storage drives are commonly used to store digital information in various applications, for example, digital cameras, cell phones, MP3 or other audio/video players, notebook computers, desktop computers and other applications. These memory devices are small, portable, and reliable with a large capacity to store data. The memory devices can be connected to the foregoing using standard interfaces, for example, the Universal Serial Bus (USB) port or an IEEE 1394 (“Firewire”) port.  
         [0009]     The rapid popularity of flash memory devices also poses security risks and challenges. Access to stored data and to device functionality needs to be authorized and secure.  
         [0010]     One common way to control access to such devices has been via a traditional password and a PIN (personal identification information). The password/PIN solution is not very effective, because the password can be hacked and/or forgotten.  
         [0011]     Another solution has been to use biometric parameters, like, fingerprints, to control access to such devices. The biometric solution has shortcomings as well. For example, fingerprints can change over time or become unrecognizable. Also, fingerprint sensors are complex, sometimes unreliable, and expensive.  
         [0012]     Portable devices (for example, an MP3 player or any other type of audio/video player) also use different buttons to control various functions. For example, portable audio/video players use plural buttons for recording, playback and other functions. These buttons are expensive and occupy real estate on portable devices that are small in size to begin with. The buttons are inconvenient to use, for example, at night or while exercising.  
         [0013]     Therefore, there is a need for a portable device that can efficiently provide secured access to a user; and also minimizes the use of buttons.  
       SUMMARY OF THE INVENTION  
       [0014]     In one aspect of the present invention, a method for a portable memory device is provided. The method includes, recording a keyword and creating a voice based template for the keyword, wherein a processor for the portable memory device creates the voice based template and stores the voice based template in non-volatile memory cells; prompting the user to capture button control actions related to a portable memory device functionality; and associating the button control actions to the voice based template.  
         [0015]     In another aspect of the present invention, a method for a portable memory device is provided. The method includes, receiving a voice command from a user with a file name; creating a phonetic pattern for the received file name; comparing the phonetic pattern for the received file name with phonetic patterns for file names for files stored in the memory device; and executing a function received with the voice command if the phonetic pattern for the received file name matches with a phonetic pattern for file names for files stored in the memory device.  
         [0016]     In yet another aspect of the present invention, a method for a portable memory storage device is provided. The method includes, prompting a user to capture button control actions related to the portable memory device functionality; associating the button control actions to a pre-loaded voice command that is stored in a plurality of non-volatile memory cells; and executing a function when a user issues a voice command.  
         [0017]     This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiments thereof, in connection with the attached drawings.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0018]     The foregoing features and other features of the present invention will now be described with reference to the drawings of a preferred embodiment. In the drawings, the same components have the same reference numerals. The illustrated embodiment is intended to illustrate, but not to limit the invention. The drawings include the following Figures:  
         [0019]      FIG. 1A  shows a top-level block diagram of a portable memory device coupled to a host system, according to one aspect of the present invention;  
         [0020]      FIG. 1B  shows a block diagram of the internal architecture of the host system in  FIG. 1A ;  
         [0021]      FIG. 1C  shows a block diagram of a memory controller in  FIG. 1A , according to one aspect of the present invention;  
         [0022]      FIG. 1D  shows a top-level block diagram of an audio/video player with voice control, according to one aspect of the present invention;  
         [0023]      FIG. 1E  shows an example of storing information in non-volatile memory cells, according to one aspect of the present invention;  
         [0024]      FIG. 2  shows a process flow diagram for using a voice controlled portable memory device, according to one aspect of the present invention;  
         [0025]      FIG. 3A  shows a process flow diagram for performing enrollment of a portable memory device, according to one aspect of the present invention;  
         [0026]      FIG. 3B  shows an example of a voice print created according to one aspect of the present invention;  
         [0027]      FIG. 4  shows a process flow diagram for authenticating a portable memory device, according to one aspect of the present invention;  
         [0028]      FIG. 5  shows a process flow diagram for creating a password bank, according to one aspect of the present invention;  
         [0029]      FIG. 6  shows a process flow diagram for reinitializing a portable device, according to one aspect of the present invention;  
         [0030]      FIG. 7A  shows an example for storing keywords in a portable device, according to one aspect of the present invention;  
         [0031]      FIG. 7B  shows an example of phonetic patterns associated with file names, according to one aspect of the present invention;  
         [0032]      FIG. 8  shows a process flow diagram for creating a macro in a portable memory device, according to one aspect of the present invention;  
         [0033]      FIG. 9  shows an example of a macro, according to one aspect of the present invention; and  
         [0034]      FIG. 10  shows a process flow diagram for associating a function to a file name, according to one aspect of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0035]     To facilitate an understanding of the preferred embodiment, the general architecture and operation of a computing system/portable non-volatile memory storage device will first be described. The specific architecture and operation of the preferred embodiment will then be described with reference to the general architecture.  
         [0036]     Computing System/Portable Memory Device  
         [0037]      FIG. 1A  shows a functional block diagram of a portable memory device (may also be referred to as a “flash device” or “flash memory device”)  105  coupled to a host device (or system, used interchangeably)  100  via a bus  100 A. The term portable memory device as used throughout this specification is intended to include a portable flash drive, a portable audio/video player (including an MP3 player) and other similar devices.  
         [0038]     A microphone  106 B is provided to capture a user&#39;s voice (shown as input  106 D) that is then sent to an analog/digital (A/D) converter  106 A. A digital signal  106 C is received and processed by controller  106  (may also be referred to as “memory controller” or “controller”), as described below. Controller  106  interfaces with host system  100  via a bus interface  100 A.  
         [0039]     It is noteworthy that controller  106  may be a part of an integrated circuit (for example, an application specific integrated circuit (ASIC)) or any other circuit.  
         [0040]     Flash memory device  105  includes solid-state memory modules/cells  107 - 108  (shown as Memory Module # 1  and Memory Module #N). Memory cells  107 / 108  are used to store data, applications and other information.  
         [0041]     There are currently many different types of flash memory cards that are commercially available, examples being the CompactFlash (CF), the MultiMediaCard (MMC), Secure Digital (SD), miniSD, Memory Stick, SmartMedia and TransFlash cards. Although each of these cards has a unique mechanical and/or electrical interface according to its standardized specifications (for example, The Universal Serial Bus (USB) specification, incorporated herein by reference in its entirety), the flash memory included in each is very similar. These cards are all available from SanDisk Corporation, assignee of the present application.  
         [0042]     SanDisk also provides a line of flash drives under its Cruzer trademark, which are hand held memory systems in small packages that have a Universal Serial Bus (USB) plug for connecting with a host by plugging into the host&#39;s USB receptacle. Each of these memory cards and flash drives includes controllers that interface with the host and control operation of the flash memory within them.  
         [0043]     Host devices (for example,  100 ) that use such memory cards and flash drives are many and varied. They include personal computers (PCs), laptop and other portable computers, cellular telephones, personal digital assistants (PDAs), digital still cameras, digital movie cameras and portable audio players. The host typically includes a built-in receptacle for one or more types of memory cards or flash drives but some require adapters into which a memory card is plugged.  
         [0044]     A NAND architecture of the memory cell arrays  107 - 108  is currently preferred, although other architectures, such as NOR, can also be used instead. Examples of NAND flash memories and their operation as part of a memory system may be had by reference to U.S. Pat. Nos. 5,570,315, 5,774,397, 6,046,935, 6,373,746, 6,456,528, 6,522,580, 6,771,536 and 6,781,877 and U.S. patent application publication No. 2003/0147278.  
         [0045]      FIG. 1B  shows a block diagram of a typical host system  100  that includes a central processing unit (“CPU”) (or microprocessor)  101  connected to a system bus  101 B. Host system  100  is coupled with flash device  105  via a bus interface  104 .  
         [0046]     Random access main memory (“RAM”)  103  is coupled to system bus  101 B and provides CPU  101  with access to memory storage. When executing program instructions, CPU  101  stores those process steps in RAM  103  and executes the stored process steps out of RAM  103 .  
         [0047]     Host system  100  connects to a computer network (not shown) via network interface  101 A (and through a network connection (not shown)). One such network is the Internet that allows host system  100  to download applications, code, documents and others electronic information.  
         [0048]     Read only memory (“ROM”)  102  is provided to store invariant instruction sequences such as start-up instruction sequences or basic Input/output operating system (BIOS) sequences.  
         [0049]     Input/Output (“I/O”) device interface  102 A allows host  100  to connect to various input/out devices, for example, a keyboard, a pointing device (“mouse”), a monitor, printer, a modem and the like. I/O device interface  102 A is shown as a single block for simplicity and may include plural interfaces to interface with different types of I/O devices.  
         [0050]      FIG. 1C  shows a block diagram of the internal architecture of controller module  106 . Controller module  106  includes a microcontroller  109  that interfaces with various other components via interface logic  111 . Memory  110  stores firmware and software instructions that are used by microcontroller  109  to control the operation of flash device  105 . Memory  110  may be volatile re-programmable random access memory (“RAM”), a non-volatile memory that is not re-programmable (“ROM”), a one-time programmable memory or a re-programmable flash electrically-erasable and programmable read-only memory (“EEPROM”).  
         [0051]     A host interface  113  interfaces with host system  100 , while a flash interface  112  interfaces with memory modules  107 - 108 .  
         [0052]     Microphone  106 B is used to capture user voice input ( 106 D). The analog voice data is then converted into digital data by A/D converter  106 A and the digital signal  106 C is then processed by microcontroller  109 . It is noteworthy that digital signal may be accessed by microcontroller  109  via interface logic  111 .  
         [0053]     Enrollment module  109 A is provided so that a user can trigger the enrollment process, described below, according to one aspect of the present invention. In one aspect, enrollment module includes a “button” or a physical interface that the user activates to start the enrollment process, according to one aspect of the present invention.  
         [0054]      FIG. 1D  shows another example of a portable device that is voice controlled, according to one aspect of the present invention. Portable device in  FIG. 1D  is an audio/video player  115  (may be referred to as Player  115 ) that can play an audio file (for example, an MP3 file) stored in memory cells  107 / 108 . Flash device  105  in this aspect is a part of Player  115 . Player  115  is also capable of playing a video file or displaying an image.  
         [0055]     It is noteworthy that the present invention is not limited to any particular audio/video file format.  
         [0056]     Player  115  includes a player controller  117  that controls overall functionality. Player controller  117  interfaces with a display module  123  via a LCD module I/F  124  to display information to a user. Typically, the information relates to the music that is being played.  
         [0057]     Player controller  117  also interfaces with a host system via a host interface  118  via port  126 . Port  126  may be USB, parallel port, RS232, SCSI or any other type of port.  
         [0058]     Decoder  120  decodes audio files and sends the decoded signal to an audio signal generator  121 . The audio signal generator outputs the audio, for example, to ear phones  122 .  
         [0059]     Player  115  also includes a button interface  119  that receives input from button  125 . To request certain functionality the user uses Button  125 . It is noteworthy that block  125  is intended to simply provide an example and is not intended to limit the present invention to any particular number/type of buttons or physical interface that is used by the user to request functionality. Button  125  can be used by the user to begin the enrollment/training process, according to one aspect of the present invention, as described below in detail.  
         [0060]      FIG. 1E  shows a block diagram for flash device  105  that interfaces with host system  100  via a USB interface. Flash device  105  conforms to the USB specification (i.e. can be accessed via a USB interface) and appears to host  100  having plural Logical Units (LUNs) of storage space and each LUN may appear to be of a different class of storage device. For example, flash device  105  may appear to have both a standard Mass Storage Class volume (LUN  0 ,  106 E), which imitates the behavior of a SCSI Hard Disk Drive, and a MMC Class volume, which imitates the behavior of a CD-ROM (LUN  1 ,  106 F).  
         [0061]     Host system  100  having its own operating system views LUN  0  ( 106 E) as a mass storage device for storing data and other information; and LUN  1   106 F as a CD-ROM that can store an auto-run application code for launching an application. Hidden area  106 G is secured and may be used to store a voice print template, as discussed below.  
         [0062]     Process Flow:  
         [0063]      FIG. 2  shows a top-level flow diagram for using a flash device  105  (or Player  115 , used interchangeably through out this specification and may also be referred to as a “device”), according to one aspect of the present invention. Flash device  105  is initialized in step S 200 . In step S 201 , the process determines if the device needs to be enrolled. If enrollment is needed, then the process moves to step S 202 , described below in detail with respect to  FIG. 3 .  
         [0064]     If enrollment is not needed, then the user is authenticated in step S 203 , described below with respect to  FIG. 4 . After authentication, in step S 204 , the user is granted access to the device, described below in detail with respect  FIG. 5 .  
         [0065]     If the user cannot be authenticated in step S 203 , then the device is re-initialized in step S 205 , described below with respect to  FIG. 6 . The process ends in step S 206 .  
         [0066]     Enrollment:  
         [0067]     The enrollment process captures a user&#39;s voice input  106 D and stores it in flash memory cells  107 / 108  (preferably in a secured hidden area, for example,  106 G,  FIG. 1E ), according to one aspect of the present invention. A device user may be asked to repeat a password/phrase more than once to capture an accurate voice print profile in flash device  105 . Multiple password phrases may be stored allowing more than one user to access flash device  105  or if a user is concerned about remembering a specific phrase, according to one aspect of the present invention. Controller  106  receives the voice input ( 106 D) and stores it as a template in memory cells  107 / 108 .  
         [0068]     Turning now in detail to  FIG. 3A , the enrollment process begins in step S 300 . The enrollment process can be performed in two ways: An application ( FIG. 1E ) is launched (in step S 301 ) when flash device  105  interfaces with a host system (or when Player  115  is powered on for use for the first time).  
         [0069]     Enrollment can also be initiated manually, as shown in step S 302 . In this case a user manually launches an application by selecting an application shown in  FIG. 1E  or by pressing a button ( 125 , as shown in  FIG. 1D ).  
         [0070]     The application prompts the user to repeat a phrase and in step S 303 , the user voice input is received by flash device  105 . In step S 304 , the voice input is stored in non-volatile memory cells  107 / 108 . Controller  106  stores the voice input. The voice input is stored as template that is used in subsequent authentication when a user wants to access flash device  105  functionality. In one aspect, controller  106  stores and maintains the template.  
         [0071]      FIG. 3B  shows an example of a voice template (is also referred to as a “template”)  305 . Template  305  is used to authenticate a user&#39;s request to access flash device  105 . Separate templates can be stored so that multiple users can securely use flash device  105 .  
         [0072]     Template  305  is also associated with other passwords (referred to as a password bank  313 ). For example, a user may store a password  307  that allows the user to access and use application  306 . Password  307  is associated with template  305 . It is noteworthy that a password similar to  307  may also be used to access a host system  100  or to connect to a network via network interface  101 A.  
         [0073]     A data file  308  (that may be protected by encryption  309 ) can be protected by a voice-based password  311 . Password  311  is also associated with template  305 .  
         [0074]     Password  312  used by a user to access a web site  310  (for example, an online banking website) can also be associated with template  305 . When the user wants to access website  310 , password  312  is automatically filled in because it is linked to template  305 .  
         [0075]     The password bank features are further described in detail below.  
         [0076]     Authentication:  
         [0077]     When flash device  105  has been secured through the enrollment process, secured authentication is used to allow access to a user. The level of access will depend on the stored passwords.  
         [0078]     Turning in detail to  FIG. 4 , the authentication process begins in step S 400 . This may occur when flash device  105  interfaces with a host system (or when Player  115  is powered up) and an application is launched. In step S 401 , the user is requested for a voice input sample. In step S 402 , the user voice input  106 D is captured by the microphone  106 B and converted into a digital signal by an A/D converter  106 A.  
         [0079]     In step S 403 , the captured voice sample is compared to a voice template stored in flash memory cells  107 / 108  (for example,  305 ).  
         [0080]     In step S 404 , flash device microcontroller  109  determines if the voice input matches with stored voice templates. The comparison is performed on the flash device  105  for security reasons. However, a software module (not shown) running on the host system; and/or a hardware circuit (e.g. an ASIC) can be used to perform the comparison.  
         [0081]     If the user input matches with the stored template then the user is granted access to flash device  105  in Step S 405 . In one aspect, the level of access may depend on the type of user. For example, certain users may be granted only “read-only” privilege, i.e., the user can only view information and is not allowed to modify stored content, while others are allowed to read and write. This level is set during enrollment.  
         [0082]     If the user cannot be authenticated, then the user is given an option in Step S 406  to re-initialize flash device  105  as discussed below in  FIG. 6 .  
         [0083]     Password Bank/Application Access/File Access:  
         [0084]      FIG. 5  shows various examples of using flash device  105  with template  305 . The user is first authenticated in step S 500 , as described above with respect to  FIG. 4 .  
         [0085]     Steps S 501 -S 504  relate to websites, steps S 505 -S 507  relate to applications and steps S 508 -S 510  relate to files.  
         [0086]     In step S 501 , the user accesses a website (for example,  310 ) using a computing system that interfaces with flash device  105 .  
         [0087]     In step S 502 , the user enters a password and user name to control access to the website. In step S 503 , the password and user name is associated with a voice-based template (for example,  305 ). When the user subsequently tries to access the same website, then the password and username associated with the template are filled in automatically (in S 504 ).  
         [0088]     It is noteworthy that if a host system stores “cookies” containing user names/passwords from previous logins then the password bank based on voice input takes precedence. Furthermore, if multiple users are enrolled for flash device  105 , then passwords for different users are kept separate and access is only granted to authenticated users. If a single user has multiple passwords enrolled, then the user stores the passwords/usernames multiple times based on the number of passwords/usernames.  
         [0089]     In step S 505 , a user accesses a computer application ( 306 ), for example, a Windows® based application and then protects access to the application by storing an application specific password/username ( 307 ). In step S 506  the password and username are associated with template  305 . In step S 507 , when the user subsequently wants to access the application again, the password/username is automatically retrieved because they are linked with the voice print template  305 .  
         [0090]     It is noteworthy that steps S 505 -S 507  can be used to access a host system  100  or access a network via network interface  101 A.  
         [0091]     In step S 508 , a user encrypts a data file that is stored in memory cells  107 / 108 . In step S 509  a file specific voice based passphrase (keyword) is used to secure file data. The user voice input is a passphrase that is associated with a particular file/directory/sub-directory. The voice-based passphrase provides additional protection to secure data, according to one aspect of the present invention. For example, template  305  limits access to flash device  105 , the encryption protects the file data at the next level, and then the voice based passphrase  31 . 0  limits access to file data in step S 510 .  
         [0092]     Re-Initialization:  
         [0093]      FIG. 6  shows a block diagram for re-initializing flash device  105 . In step S 601 , the previous voice based templates are erased. In step S 602 , data associated with the user may also be deleted. In one aspect, if a user is given a certain partition (segment) of storage space, then the data in that partition is also deleted.  
         [0094]     In step S 603 , the user again goes through the enrollment process (i.e. a template or “new image” is reloaded) described above and the re-enrollment is completed in step S 604 .  
         [0095]     Macros:  
         [0096]     In one aspect of the present invention, a voice-based template is associated with a control button of a portable device. For example, for a Player ( 115 ), the user can record the word “play” and the keyword play is associated with the functionality of the “play” button. Hence, when the user says the word “play”, Player  115  plays music/video.  
         [0097]     The adaptive aspects of the present invention also allow a user to create “macros” for certain functions for which there are no control buttons or for which more than one button needs to be pressed. One example of such a macro is for the mute function for an audio/video player. The mute function allows a user to mute/silence the player. Typically, one either has a dedicated button or has to press more than one button to mute the player.  
         [0098]     Device Training:  
         [0099]     For a new portable device, the user stores activation keywords and assigns the keywords to various functions. The keywords are captured via microphone  106 B and once captured, a template is created and stored in memory cells  107 / 108 . Controller  106  saves the template. The user then captures one or more button control functions (for example, “play”, rewind, fast forward, pause, and others) and the button control functions are associated with the keywords and stored in non-volatile memory cells  107 / 108 .  
         [0100]     It is noteworthy that instead of training the device for keywords, certain keywords can be pre-loaded in memory cells  107 / 108 . The pre-loaded keywords are then associated with functions, as described below.  
         [0101]      FIG. 7A  shows an example of how keywords stored in memory cells are related to functions. Plural keywords (shown as 1 to N) may be stored to perform plural functions (1 to N).  
         [0102]      FIG. 8  shows a process flow diagram for training and using a portable device so that device functions can be performed based on voice input. In step S 801 , a user records a specific keyword. The user is enrolled and authenticated by the portable device as explained above. An application is launched to train and store the keywords. As stated above, the keywords can also be pre-loaded in memory cells  107 / 108 .  
         [0103]     In step S 802 , controller  106  stores a voiceprint template for the keyword.  
         [0104]     In step S 803 , the template is stored in non-volatile memory cells.  
         [0105]     In step S 804 , the user captures a button control sequence for a function that the user intends to associate with the stored keyword. The button sequence can be for a function which has a dedicated button (for example, the play function), or for which a user has to perform a button sequence (for example, to achieve the mute function, in various audio/video players one has to press more than one button/key).  
         [0106]     In step S 805 , the button control action is associated with the stored keyword. In one aspect, Controller  106  performs this function. In another aspect, a host processor may also perform this function.  
         [0107]     In step S 806 , the user terminates the button sequence. Termination of a button sequence is signaled by an action that normally does not take place, for example, by holding a specific button for a pre-determined period.  
         [0108]     The foregoing process steps are used to store plural keywords that are associated to plural device functions.  
         [0109]      FIG. 9  shows an example, of associating the mute function to user keyword “Mute”. Each device has a “Menu” option and a user selects the “Menu” option to begin training the device. From the Menu option, the user chooses the “Setting” option. The user then selects the “Voice Command” option that allows the user to move to the Train option.  
         [0110]     The user selects the Train option and is prompted to enter a voice command. The user says “Mute” and device  105  creates a Mute template. The user is then prompted to enter a button sequence (for example, Menu&gt;Volume&gt;Level 0) that can be associated with the voice command “Mute”. Pressing certain buttons for certain duration (for example, the A/B repeat button for 4 seconds) terminates the sequence.  
         [0111]     Once device  105  is trained, the spoken word can be used to activate the function for which it is programmed. For example, when the user says Mute, the device (Player  115 ) becomes mute.  
         [0112]      FIG. 10  shows a process flow diagram for executing device  105  functions when a user states a command with a file name for a file stored in memory cells  107 / 108 , according to one aspect of the present invention. The process begins in step S 1000 , when player  115  receives a voice command with a file name from a user. For example, the user states “Play Beethoven”, where “play” is a command to play an audio file named “Beethoven”.  
         [0113]     In step S 1002 , player  115  parses the file name and creates a phonetic pattern. For example, “Beethoven” is reduced to a pattern “bee”, “tho” and “ven”.  
         [0114]     In step S 1004 , player  115  searches plural files that are stored in a directory in memory cells  107 / 108  to determine if the phonetic pattern in step S 1002  matches the phonetic pattern for the stored files. Player  115  creates a phonetic pattern for the stored file names either real time when it receives a command in step S 1000  or maintains a list of phonetic patterns that is updated every time a file is added. The received file name phonetic pattern (for example, bee, tho, ven) is compared with the phonetic patterns of the stored files. If there is a match, the function is executed in step S 1005 . In this example, the file named “Beethoven” is played.  
         [0115]      FIG. 7B  shows an example of how file names with associated phonetic patterns are stored in memory cells  107 / 108 . The files can be for audio, video or any other information.  
         [0116]     It is noteworthy that although the foregoing example is based on playing an audio file, the adaptive aspects of the present invention are not limited to playing audio files or to any particular file type/format or to any type of command. For example, a user can command the device to “Delete XYX”. The device then deletes the file XYZ after the phonetic pattern for XYZ matches with a stored file named XYZ.  
         [0117]     In one aspect of the present invention, fewer buttons are needed to operate a device like an audio/video player (for example, an MP3 player). The user is given an option to create voice commands for standard functions as well as custom functions. The device is user friendly and cheaper because fewer buttons are needed.  
         [0118]     While the present invention is described above with respect to what is currently considered its preferred embodiments, it is to be understood that the invention is not limited to that described above. To the contrary, the invention is intended to cover various modifications and equivalent arrangements within the spirit and scope of the appended claims.