Patent Publication Number: US-9836276-B2

Title: Voice command processing method and electronic device utilizing the same

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation in part of U.S. application Ser. No. 14/198,596, entitled “MEDIA DATA AND AUDIO PLAYBACK POSITIONING METHOD AND ELECTRONIC DEVICE SYSTEM UTILIZING THE SAME”, filed on Mar. 6, 2014, published as US20140188259, which is a divisional of U.S. application Ser. No. 12/543,588, entitled “AUDIO PLAYBACK POSITIONING METHOD AND ELECTRONIC DEVICE SYSTEM UTILIZING THE SAME”, filed on Aug. 19, 2009, published as US20100305726, issued as U.S. Pat. No. 8,751,023, which is based upon and claims the benefit of priority from Chinese Patent Application No. 200910302684.X, filed on May 27, 2009 in People&#39;s Republic of China. The entirety of each of the above-mentioned patent applications is hereby incorporated by reference herein. 
    
    
     BACKGROUND 
     1. Technical Field 
     The disclosure relates to computer techniques, and more particularly to methods for voice command processing and electronic device systems utilizing the same. 
     2. Description of Related Art 
     Internet of Things (IoT) is an ecosystem of a wide variety of devices. The devices may be located at different places. Each device may have different attributes and different capabilities. Managing heterogeneous devices in the IoT, such as setting IoT device attributes, may become difficult. As industry and research efforts are to bring IoT not only into the manufacturing field and factories but also consumer&#39;s premises, such difficulties can be a obstacle on the way. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1A  is a block diagram of an embodiment of a robot with an electronic device system of the disclosure; 
         FIG. 1B  is a block diagram of an embodiment of an autonomous car with an electronic device system of the disclosure; 
         FIG. 1C  is a block diagram of an embodiment of an electronic device system of the disclosure; 
         FIGS. 2A and 2B  are block diagrams of embodiments of input devices of the electronic device system of the disclosure; 
         FIGS. 3A-3E  are flowcharts showing embodiments of the positioning method of the disclosure; 
         FIG. 4  is a schematic diagram showing exemplary operations of a first embodiment of the disclosed method; 
         FIGS. 5-8  are schematic diagrams showing exemplary operations of a second embodiment of the disclosed method; 
         FIGS. 9-10  are schematic diagrams showing exemplary operations of a third embodiment of the disclosed method; 
         FIG. 11  is a schematic diagram showing exemplary operations of a fourth embodiment of the disclosed method; 
         FIG. 12  is a schematic diagram showing exemplary operations of bookmark setting based on the disclosed method; 
         FIGS. 13-15  are schematic diagrams showing resetting an attribute of audio data; 
       and 
         FIG. 16  is a flowchart showing an embodiment of the disclosed method applied to a playlist of audio data; and 
         FIGS. 17-19  are block diagrams of alternative embodiments of the electronic device system of the disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Description of exemplary embodiments of the voice command processing method and electronic systems utilizing the same are given in the following paragraphs which are organized as follows: 
     1. System Overview 
     2. Exemplary Embodiments of the Positioning Method 
     
         
         
           
             2.1 First Exemplary Embodiment of the Positioning Method 
             2.2 Second Exemplary Embodiment of the Positioning Method 
             2.3 Third Exemplary Embodiment of the Positioning Method 
             2.4 Fourth Exemplary Embodiment of the Positioning Method
 
3. Variation of Embodiments
 
             3.1 Alternative Embodiments of the Positioning Method 
             3.2 Alternative Embodiments of the Electronic Device
 
4. Conclusion
 
           
         
       
    
     Note that although terminology from 3rd Generation Partnership Project (3GPP) long term evolution (LTE) has been used in this disclosure to exemplify the devices, network entities, interfaces and interactions between the entities, this should not be seen as limiting the scope of the disclosure to only the aforementioned system. Other wireless systems, including global system for mobile (GSM), wideband code division multiple access (W-CDMA), Institute of Electrical and Electronics Engineers (IEEE) 802.16, and low power wide area network (LPWAN), may also benefit from exploiting the ideas covered within the disclosure. 
     1. System Overview 
     The voice command processing method provides a unified voice control interface to access and control Internet of things (IoT) devices and configure value of attributes of graphical user interface (GUI) elements, attributes of applications, and attributes of the IoT devices. Upon receiving a voice command comprising an expression of a multiplier M, such as an integer, a percentage, or a fraction of a baseline value D of an attribute of an IoT device, or an exact value of the attribute, the unified voice control interface sets the attribute of the IoT device to a target value D new  in response to the multiplier, the percentage, the fraction, or the exact value in the voice command. The target value D new  may be obtained from a mathematical operation on the baseline value D with the multiplier, the percentage, or the fraction. The mathematical operation may be multiplication wherein:
 
 D   new   =M*D.   (1a)
 
     The mathematical operation may be a function f 1 (D) of D wherein:
 
 D   new   =f ( D )= D+M*D.   (1b)
 
     Alternatively, the mathematical operation may be a function f 2 (D) of D wherein:
 
 D   new   =f ( D )= D−M*D.   (1c)
 
     U.S. Pat. No. 8,751,023 discloses an audio playback positioning method in which audio/video data, a progress control, a volume control, and a playback speed control associated with the audio/video data can be processed as a target object for the positioning. Various attributes of IoT devices may be processed as the target object. The positioning method may be a part of the voice command processing method and may be utilized to generate, locate, and set a value as the target value of an attribute of an IoT device. 
     The positioning method can be implemented in various electronic devices, such as cell phones, personal digital assistants (PDAs), set-top boxes (STBs), televisions, game consoles, media players, a home gateway, a machine type communication (MTC) gateway, or head unit in a car. U.S. patent application Ser. No. 14/919,016 entitled “MACHINE TYPE COMMUNICATION DEVICE AND MONITORING METHOD THEREOF” disclosing a MTC gateway is herein incorporated by reference. 
     The positioning method can be utilized to control a robot or a autonomous car. An autonomous car may be categorized as a smart transportation robot. An interactive robot may speak to vocally communicate with a user, receive voice signals with voice commands, perform voice recognition to extract and recognize the voice commands, and execute the voice command. The speed and volume of the speech function of the robot may be the target object of the positioning method. A temperature control of an air conditioner controlled by the robot may be the target object of the positioning method. A velocity control of the robot may be the target object of the positioning method. 
     With reference to  FIG. 1A , a robot  100   a  comprises a voice control device  1105 , a velocity control  1106 , a speech function  1108 , and a playback function  1109 . The voice control device  1105  connects to an air conditioner  1107  through a wireless communication channel  1211  and connects to a remote application server  1203  through a wireless communication channel  1210 . The playback function  1109  retrieves audio and video data for playback. The velocity control  1106  controls moving speed of the robot  100   a . For example, the velocity control  1106  controls motors of the robot  100   a . The speech function  1108  reads out active prompt and feedbacks provided from an artificial intelligence (AI) engine  1205  in a remote application server  1203 . The AI engine  1205  connects to a knowledge database  1206  and a voice recognition engine  1204 . The voice recognition engine  1204  receives voice signals with voice commands from the voice control device  1105 , performs speech recognition to extract and recognize the voice commands, and provides the voice commands to the AI engine  1205 . The AI engine  1205  judges whether to search the knowledge database  1206  for more information related to the voice commands, associates the received voice commands with executable commands, and sends the executable commands and the located information as feedbacks to the voice control device  1105 . The voice control device  1105  receives voice signals with voice commands, utilizes entities in the remote application server  1203  to perform speech recognition to extract and recognize the voice commands, and executes the voice commands or the feedbacks of the voice commands to set a target value of an attribute of one or more entities selected from the a velocity control  1106 , a speech function  1108 , and a playback function  1109 . 
     With reference to  FIG. 1B , an autonomous car  100   b  is an alternative embodiment of the robot  100   a . The autonomous car  100   b  comprises the voice control device  1105 , the velocity control  1106 , an air conditioner  1107 , the speech function  1108 , and the playback function  1109 . The velocity control  1106  in car  100   b  controls moving speed of the car. For example, the velocity control  1106  controls motor, gearbox, clutch and brake system of the car  100   b . The air conditioner  1107  performs temperature conditioning in the car according to a target temperature value. 
     Each of the entities  1105 ,  1106 ,  1107 ,  1108 , and  1109  may comprise machine executable instructions, circuits, and mechanical structure required to implement the functions of the entity. The wireless connection  1210  connecting the voice control device  1105  and the voice recognition engine  1204  may comprise a 3GPP network connection of ultra low latency subscription, such as a 3GPP LTE connection with shortened transmission time interval (sTTI). The voice control device  1105  may connect to entities in the application server  1203  to meet V2I, V2N, or V2X application as specified in 3GPP technical specification (TS) 22.185 or other TS(s) generated from 3GPP work items SP-150573 and RP-152293. The application server  1203  may be implemented in a road side unit (RSU) which integrates an evolved node B (eNB) and some third party applications and evolved packet core (EPC) functions to realize mobile edge computing (MEC) or fog computing. In an alternative embodiment, some or all of the entities  1204 ,  1205 , and  1206  may be integrated in the voice control device  1105 . 
     The voice control device  1105  may hold a descriptive phrase, such as “Hey robot” as a starting word for a voice command. A voice command may comprise natural language signals specifying a target IoT device or a group of target IoT devices. For example, the voice control device  1105  receives a voice command comprising natural language signals specifying one of the entities  1105 ,  1106 ,  1107 ,  1108 , and  1109  as a target IoT device. The AI engine  1205  determines the target device specified in the voice command. 
     IoT devices may be assigned with a group identification (ID) or group identifier to be grouped into a group of MTC or IoT devices. The group ID is associated with the IDs of the IoT devices in a group definition of the group of MTC or IoT devices. The group definition comprising association of the group ID and the IDs of the IoT devices in the group can be rearranged through an user interface provided by an application server and stored in a group definition entity, such as a user equipment device, an operations, administration and management (OAM) network entity, a home subscriber server (HSS), or an application server. The group of MTC or IoT devices can be rearranged by adding an individual new IoT device with device ID to the group by associating the device ID of the new IoT device with the group ID, or removing an individual existing IoT device with device ID from the group with the group ID by disassociating the device ID of the existing IoT device with the group ID. The group of MTC or IoT devices can be rearranged via set operation such as operations of union, intersection, and complementation. The set operation may be performed based on device ID or group ID. For example, in a union operation of a group A and a group B which generate a group C=A∪B, the resulting group C of the union operation may be assigned a new group ID associated with the group ID of the group A and the group ID of the group B or associated with device IDs in the group A and the group B. The group definition entity may store the definition of groups of the IoT device before a group rearrange operation in a first record and the definition of groups of the IoT device after a group rearrange operation in a second record, and thus to support an undo operation counteracting with the group rearrange operation. The undo operation when executed restores the definition of groups of the IoT device before a group rearrange operation. The device ID may be a user equipment (UE) international mobile equipment identity (IMEI), an international mobile subscriber identity (IMSI), or an external identifier of the UE. 
     A voice command may comprise natural language signals specifying a target IoT device attribute or a group of target IoT device attributes as the target object for the positioning method. For example, the voice control device  1105  receives a voice command comprising natural language signals specifying one of attributes of the entities  1105 ,  1106 ,  1107 ,  1108 , and  1109  as the target object. The AI engine  1205  determines the target object specified in the voice command. For example, the target object may be a target velocity of the velocity control  1106  with a domain delimited by a minimum velocity and a maximum velocity, a target temperature value of the air conditioner  1107  with a domain delimited by a minimum temperature and a maximum temperature, a target speech speed of the speech function  1108  with a domain delimited by a minimum speech speed and a maximum speech speed, a target speech volume of the speech function  1108  with a domain delimited by a minimum speech volume and a maximum speech volume, a target playback speed of the playback function  1109  with a domain delimited by a minimum playback speed and a maximum playback speed, a target playback volume of the playback function  1109  with a domain delimited by a minimum playback volume and a maximum playback volume, and a target progress on a progress control of the playback function  1109  with a domain delimited by a minimum playback progress and a maximum playback progress. 
     A voice command may comprise natural language signals specifying a baseline value of a target object to be a maximum value, a current value, or a length measurement of the domain of the target object. A voice command may comprise natural language signals specifying the expression of digits representing one of the mathematical operation (1a), (1b), and (1c). At least one of the AI engine  1205  and the voice control device  1105  recognizes what is specified in the voice command and execute one of the mathematical operations represented by the voice command utilizing the baseline value specified in the voice command to generate a target value for a target object specified by the voice command, and set the target object to the target value. 
     For example, when receiving a voice command stating: “Hey robot! Please turn the music volume to 50% of its current value”, the voice control device  1105  recognizes the voice command and sets the music volume utilizing the equation (1a) with the current volume as the D, and the 50% as the M. For example, when receiving a voice command stating: “Hey robot! Please increase the music volume by 10%”, the voice control device  1105  recognizes the voice command and sets the music volume utilizing the equation (1b) with the current volume value as the D, and 10% as the M. For example, when receiving a voice command stating: “Hey robot! Please suppress the music volume by 5%”, the voice control device  1105  recognizes the voice command and sets the music volume utilizing the equation (1c) with the current volume value as the D, and 5% as the M. For example, when receiving a voice command stating: “Hey robot! Please turn the speech speed to 80%”, the voice control device  1105  recognizes the voice command and sets the speech speed utilizing the equation (1a) with the maximum speech speed value as the D, and 80% as the M. For example, when receiving a voice command stating: “Hey robot! Please turn the speech speed to be 15% slower than its maximum speed”, the voice control device  1105  recognizes the voice command and sets the speech speed utilizing the equation (1c) with the maximum speech speed value as the D, and 15% as the M. For example, when receiving a voice command stating: “Hey robot! Please turn the speech speed to be 7% faster than its median speed”, the voice control device  1105  recognizes the voice command and sets the speech speed utilizing the equation (1b) with half of the maximum speech speed value as the D, and 7% as the M. 
     The voice command processing method allows one or more of a plurality of IoT device attributes to be user configurable. The voice control device  1105  receives natural language signals of a voice command through a voice receiving function, such as from a microphone. The natural language signals of the voice command comprise signals representative of a first digit and a second digit. The voice recognition engine  1204  performs speech recognition on the received signals to extract the natural language signals specifying a target IoT device or a group of target IoT devices and the natural language signals specifying a target IoT device attribute or a group of target IoT device attributes as the target object for the positioning method. The voice recognition engine  1204  extract a target IoT device and a target object. 
     The voice recognition engine  1204  recognizes the first digit and the second digit and determines a expression formed from the first digit and the second digit based on the voice command. The AI engine  1205  determines whether more work is required by the voice command or whether to perform a value setting for the target object of the target IoT device based on the expression formed from the first digit and the second digit. The expression of digits may be a mathematical expression and is recognizable by the positioning method. The AI engine  1205  signifies the voice control device  1105  to perform the positioning method according to the expression of digits, thus to set a target value for the target object. 
     The voice control device  1105  may generate a target value of the target object from the first digit and the second digit according to the positioning method and setting the target object based on the target value in a condition that the first digit and the second digit are expressed as a multiplier, a fraction, or a percentage of a baseline value. The baseline value may be the current value, the maximum value, or a length measurement of the domain of an attribute processed by the voice control device  1105  as the target object. For example, the voice control device  1105  may generate a target speed value of a audio output speed attribute from the first digit and the second digit and setting the audio output speed attribute based on the target speed value in a condition that the first digit and the second digit are expressed as a multiplier, a fraction or a percentage of a baseline speed value of the audio output speed attribute. The baseline speed value comprises a maximum of the audio output speed attribute. In another embodiment, the baseline speed value comprises a current value of the audio output speed attribute. The audio output speed attribute may be the speech speed of the speech function  1108  or the playback speed of the playback function  1109 . 
     For example, the voice control device  1105  may generate a target volume value of the volume attribute of the audio function from the first digit and the second digit and setting the volume of the audio function based on the target volume value in a condition that the first digit and the second digit are expressed as a multiplier, a fraction, or a percentage of a baseline volume value of the volume of the audio function. The baseline volume value comprises a maximum of the volume of the audio function. In another embodiment, the baseline volume value may comprise a current value of the volume of the audio function. The audio function may be the speech function  1108  or the playback function  1109 . 
     The voice control device  1105  may generates a target progress value of a progress associated with the audio function from the first digit and the second digit and setting the progress based on the target progress value in a condition that the first digit and the second digit are expressed as a multiplier, a fraction, or a percentage of a baseline progress value of the progress associated with the audio function. The baseline progress value comprises a maximum of the progress associated with the audio function. In another embodiment, the baseline progress value comprises a current value of the progress associated with the audio function. 
     An example of an electronic device implementing the voice command processing method is given in the following. 
     With reference to  FIG. 1C , an electronic device  100  may be an embodiment of the voice control device  1105 , the robot  100   a , or the car  100   b . The device  100  comprises a processor  10 , a memory  20 , a display  30 , an input unit  40 , and timers  50  and  60 . The processor  10  may comprise various integrated circuits (ICs) for processing data and machine-readable instructions. The processor  10  may be packaged as a chip or comprise a plurality of interconnected chips. For example, the processor  10  may only comprise a central processing unit (CPU) or a combination of a CPU, a digital signal processor (DSP), and a chip of a communication controller, such as a controller of a cellular communication, infrared, Bluetooth™, or wireless local area network (LAN) communication devices. The communication controller coordinates communication among components of the electronic device  100  or communication between the electronic device  100  and external devices. The memory  20  stores audio data  70  and may comprise a random access memory (RAM), a nonvolatile memory, a mass storage device (such as a hard disk drive), or a combination thereof. The nonvolatile memory, for example, may comprise electrically erasable programmable read-only memory (EEPROM) and/or flash memory. The memory  20  and the processor  10  may be packaged as one chip or packaged separately and interconnected through buses. 
     The display  30  is operable to display text and images, and may comprise e-paper, a display made up of organic light emitting diode (OLED), a field emission display (FED), or a liquid crystal display (LCD). The display  30  may display various graphical user interfaces (GUIs) including windows, scroll bars, audio playback progress bar, and text area. The display  30  may comprise a single display or a plurality of displays in different sizes. The processor  10  may present various GUIs on the display  30  as detailed in the following paragraphs. 
     The input unit  40  may comprise various input devices to input data or signals of digits, characters and symbols to the electronic device  100 , such as any one or more of a touch panel, a touch screen, a keyboard, and a microphone. The input unit  40  may also comprise controller chips of such input devices. The timers  50  and  60  keep track of predetermined time intervals and may comprise circuits, machine-readable programs, or a combination thereof. Each of the timers  50  and  60  generates signals to notify expiration of the predetermined time intervals. Components of the electronic device system  100  can be connected through wired or wireless communication channels. 
     A keyboard  40   a  in  FIG. 2A  is an exemplary embodiment of the input unit  40 . The keyboard  40   a  may be made of mechanical structures or comprise a virtual keyboard shown on the display  30 . The keyboard comprises keys  201 - 217 . Keys  213  and  214  are function keys for triggering functions based on software programs executed by the electronic device  100 . The key  216  is an on-hook key operable to trigger a telephone call. The key  215  is an off-hook key operable to terminate telephone calls. The key  217  is operable to direct direction and movement of a cursor on the display  30 . Activation of points  218   a ,  219   a ,  220   a , and  221   a  respectively trigger movement of a cursor or an icon up, right, down, and left. Digits, letters, and/or symbols corresponding to the keys  201 - 212  are shown on respective keys in  FIG. 2 , but are not intended to be limited thereto. 
     The electronic device  100  may be installed with various media player programs that are user-selectable. An object to which the positioning method is applied is referred to as a target object. The constant D may be the length of a target object. When the processor  10  applies the positioning method to the audio data  70 , a measurement of the total length of the audio data  70  may be represented by file size or total playback time of the audio data  70  measured in time units, such as minutes or seconds. The total playback time is a period counted from the beginning to the end of playing the audio data  70 . The audio data  70  may comprise one or more titles of audio data. A title may comprise an audio file. For example, the audio data  70  may comprise a plurality of titles in a playlist filtered and arranged based on title attribute. 
     2. Exemplary Embodiments Of The Positioning Method 
     The input device  40  may input digits to the electronic device system  100  for various functions. For example, the input device  40  may input digits to the electronic device system  100  as a phone number for calling or message transmission, or a number for tuning a tuner to a channel to receive broadcast signals. In the following description, digits received by the electronic device system  100  are utilized as indices to locate positions in a target object, such as audio data, video data, or various media data. When the positioning method may be utilized to control human-machine interface, such as volume and speech speed of a speaking robot or an application. The electronic device system  100  determines a corresponding function for the digits received from numeric keys or other input devices. The positioning method may be implemented by computer programs executed in the electronic device system  100 . 
     2.1 First Exemplary Embodiment of the Positioning Method 
     With reference to  FIG. 3A , when receiving digits from the input device  40  (step S 30 ), the processor  10  determines if the electronic device system  100  is in an audio playing mode (step S 31 ). If the electronic device system  100  is not in the audio playing mode, the processor  10  utilizes the received digits for functions irrelevant to audio playback, such as converting the received digits into phone numbers or channel numbers (step S 32 ). If the electronic device system  100  is in the audio playing mode, the processor  10  utilizes the received digits for audio data positioning (step S 33 ). The electronic device system  100  in the audio playing mode may, for example, show audio playback related GUIs on the display  30 . After locating a position or a segment in the audio data  70  in the step S 33 , the processor  10  determines if the electronic device system  100  is playing the audio data  70  (step S 34 ). If the electronic device system  100  is playing the audio data  70 , the processor  10  directly applies a default operation on the audio data  70  based on the located position or audio segment, such as switching audio playback to the located position or audio segment (step S 37 ). If the electronic device system  100  is not playing the audio data  70 , the processor  10  receives a selection of playback operation options (step S 35 ) and applies a selected operation on the audio data  70  based on the located position or audio segment (step S 36 ). For example, the operations in steps S 35 -S 37  may comprise audio playback, fast forwarding or rewinding operations, bookmark setting, or playback repeating. The optional operations may be triggered by a selection of options displayed on the display  30  or by operation of corresponding keys of the input device  40 . 
     Embodiments of audio playback positioning in the step S 33  is detailed in the following paragraphs. The electronic device system  100  utilizes a timer to keep an extensible period of time, during which the processor  10  may receive more digits to more precisely locate a position or a segment in the audio data. When the processor  10  is playing the audio data  70  at a current position thereof, a forward skipping operation triggers the playing of the audio data  70  to be switched to a first target position posterior to the current position in the audio data  70  with respect to playback time, and a backward skipping operation triggers the playing of the audio data  70  to be switched to a second target position prior to the current position in the audio data  70  with respect to playback time. Note that a segment of a target object may represent a constituent portion of the target object or a sub-segment of such constituent portion. A sub-segment of a segment is a constituent segment of the segment that has relatively smaller size. 
     The processor  10  may apply the positioning method to one or more IoT device attributes, the audio data  70 , a progress bar thereof, video data, a volume control bar and a playback speed control GUI of a player program, and a scroll bar of a playlist. A cursor in a volume control bar specifies the volume at which the audio data  70  is played. A playback speed control GUI specifies the playback speed at which the audio data  70  is played. When executing the positioning method, the processor  10  calculates a length D of the entire target object, and converts received digits into a position or a segment in the target object relative to the length D thereof. For example, when the audio data  70  is stored as a file in the non-volatile memory using specific encoding and compression formats, the processor  10  may obtain the length D of the audio data  70  from a difference between an address corresponding to the end of the file memory and an address corresponding to the beginning of the file in the non-volatile memory. Alternatively, the processor  10  may decompress and decode the encoded and compressed audio data  70  to retrieve sampled waveform data represented by the audio data  70 . The processor  10  may obtain the total playback time of the audio data  70  as the length D thereof from the waveform data and a sampling rate thereof. The processor  10  may apply the positioning method to the decompressed and decoded waveform data. When applying the positioning method to a volume control bar as the target object, the processor  10  may obtain the length of the volume control bar from a difference between the maximum and the minimum volume values of the electronic device system  100 . When applying the positioning method to a playback speed control GUI as the target object, the processor  10  may obtain the length of the playback speed control GUI from a difference between the maximum and the minimum playback speed values of the electronic device system  100 . When applying the positioning method to a playlist as the target object, the processor  10  may calculate the total number of titles in the playlist as the length of the playlist. Execution of embodiments of the positioning method is described with reference to arrows and blocks in the presented flowcharts. 
       FIG. 3B  shows an embodiment of the positioning method executed by the electronic device system  100 . A progress bar of the audio data  70  is the active GUI element in the audio playing mode of the electronic device system  100 , and the processor  10  accordingly applies the positioning method to the audio data  70  represented by the progress bar based on received digits. 
     The processor  10  receives a first digit, such as 0, 1, 2, 3, . . . or 9, from a numeric key (step S 300 ) and initiates the timer  50  to keep a predetermined period of time (step S 302 ). The processor  10  generates a time value corresponding to a position in the audio data  70  and a position on the progress bar based on the received first digit (step S 304 ) and generates an address of the position in the audio data  70  corresponding to the time value (step S 306 ). For example, the processor  10  when receiving the digit “3” in step S 300  may generate time value “00:00:03”, that is 0 hours, 0 minutes and 3 seconds, and generate an address of a position in the audio data  70  corresponding to playback time “00:00:03”. The playback time of a position is a duration of play counted from the beginning of the audio data  70  to the requested position of the audio data  70 . 
     The processor  10  determines if the timer  50  expires (event A), or if a second digit is received from the input device  40  before the timer  50  expires (event B) (step S 307 ). 
     In the step S 307 , if a second digit is received from the input device  40  before the timer  50  expires (event B), the processor  10  resets the timer  50  (step S 308 ) and generates an updated time value from all received digits (including the first and second digits) to correspond to a new position in the audio data  70  in substitution for the previously-generated time value (step S 310 ). The step S 306  is repeated to generate an address of the new position. For example, when receiving a digit “5” in the step S 307 , the processor  10  may convert the digits “3” and “5” to a time value “00:00:35”, that is 0 hours, 0 minutes and 35 seconds. Similarly, when further receiving a digit “2” in repeating the step S 307 , the processor  10  may convert the digits “3”, “5”, and “2” to a time value of “00:03:52”, that is 0 hours, 3 minutes and 52 seconds. When receiving digits “3”, “5”, “2”, “1”, and “0”, the processor  10  may convert the concatenation of digits “35210” to a time value “03:52:10”, that is 3 hours, 52 minutes and 10 seconds. Although the time format using two colons to delimit hour, minute, and second is illustrated in the description, time may be represented in various formats in which some may omit hours, and some may omit the colon “:” between minutes and seconds or replace the colon “:” with other symbols. 
     When the timer  50  expires (event A), the processor  10  locates a position in the audio data  70  corresponding to the last generated time value in response to the expiration of the timer  50  (step S 312 ) and performs a playback operation based on the located position (step S 314 ). With reference to  FIG. 4 , if the last generated time value is “00:35”, the processor  10  locates a position  21  in the audio data  70  corresponding to playback time “00:35” in the step S 306 , displays an icon  31  indicating a position on a progress bar  300  corresponding to the playback time “00:35” on the display  30 . 
     In the step S 314 , for example, the processor  10  may begin playing the audio data  70  from the located position (e.g., the position  21 ), or set a bookmark at the located position. The processor  10  may perform the step S 314  in response to expiration of the timer  50  or an operation of the input device  40  that triggers the playback operation in the step S 314 . 
     The processor  10  may show an alert message if the generated time value is greater than the total playback time of the audio data  70 . The electronic device system  100  may provide measures to prevent mistaken time values being entered. For example, assuming that the total playback time of the audio data  70  is “3:45”, and each of the variables a 1 , a 2 , a 3 , and a 4  comprised in the electronic device system  100  has value “0”. The processor  10  orderly stores each received digit from the input device  40  into one of the variables a 1 , a 2 , a 3 , and a 4 . In steps S 304  and S 310 , the processor  10  obtains the result of (10×a 1 +a 2 ) as a count of minutes in the generated time value, and the result of (10×a 3 +a 4 ) as a count of seconds in the generated time value. In the following description, the symbol “←” in the midst of a first variable and a second variable or a constant signifies that the value of the second variable or constant is assigned to the first variable. The processor  10  orderly performs a 4 ←a 3 , a 3 ←a 2 , a 2 ←a 1 , and a 1 ←0 to complete a right shift of a time value, and orderly performs a 1 ←a 2 , a 2 ←a 3 , a 3 ←a 4 , and a 4 ←0 to complete a left shift of a time value. When receiving a digit “3” in the step S 300 , the processor  10  performs a 1 ←3, and accordingly generates a time value “30:00” for playback positioning. The processor  10  compares the time value “30:00” with the total playback time of the audio data  70  “3:45”, and determines that the generated time value “30:00” is greater than the total playback time of the audio data  70  “3:45”. The processor  10  may accordingly right shift the time value “30:00” to generate a time value “03:00” in the step S 304  and an address corresponding to the time value “03:00” in the step S 306 . When subsequently receiving a digit “2” in the step S 307 , the processor  10  performs a 2 ←2, and accordingly generates a time value “32:00” from the subsequently received digits “3” and “2”. The processor  10  compares the time value “32:00” with the total playback time of the audio data  70  “3:45”, and determines that the generated time value “32:00” is greater than the total playback time of the audio data  70  “3:45”. The processor  10  may accordingly right shift the time value “32:00” to generate a time value “03:20” in the step S 310  and an address corresponding to the time value “03:20” in the step S 306 . 
     Alternatively, when receiving a digit “5” in the step S 307  following a digit “3”, the processor  10  performs a 2 ←5, and accordingly generates a time value “35:00” from the subsequently received digits “3” and “5”. The processor  10  compares the time value “35:00” with the total playback time “3:45” of the audio data  70 , and determines that the generated time value “35:00” is greater than the total playback time of the audio data  70  “3:45”. The processor  10  may accordingly right shift the time value “35:00” to generate a time value “03:50” in the step S 310  and compare the time value “03:50” with the total playback time of the audio data  70  “3:45”, and determines that the generated time value “03:50” is still greater than the total playback time of the audio data  70  “3:45”. The processor  10  may further right shift the time value “03:50” to generate a time value “00:35” in the step S 310  and an address corresponding to the time value “00:35” in the step S 306 . 
     The first embodiment of the positioning method refers to playback time to locate a position in the audio data  70 . Alternative embodiments of the positioning method interpreting the target object as comprising an arbitrary number of audio segments are detailed as follows. 
     2.2 Second Exemplary Embodiment of the Positioning Method 
     With reference to  FIG. 3C , the electronic device system  100  executes the second exemplary embodiment of the positioning method to an active GUI element shown on the display  30 . For example, when a volume control bar is the active GUI element of the electronic device system  100 , the processor  10  focuses on the volume control bar as the target object and applies the method to the volume control bar to locate a target volume thereon. Similarly, when a playback speed control GUI is the active GUI element of the electronic device system  100 , the processor  10  applies the method to the playback speed control GUI to locate a target playback speed thereon. When a scroll bar of a playlist is the active GUI element of the electronic device system  100 , the processor  10  applies the method to the scroll bar to locate a target segment thereof. The following example is provided assuming a progress bar of the audio data  70  is the active GUI element. The progress bar is representative of the audio data  70 , so that directly applying the method to the audio data  70  to locate a target position or a target segment thereon, the processor  10  may accordingly locate a corresponding target position or segment on the progress bar. Operations on a representative of a target object (e.g., the progress bar) during execution of the positioning method correspond to operations on the target object (e.g., the audio data  70 ). Alternatively, the processor  10  may apply the method to the progress bar to locate a target position or a target segment on the progress bar and accordingly locate a corresponding target position or segment of the audio data  70 . The processor  10  may apply the method to the audio data  70  and the progress bar thereof in parallel, for example, through synchronously executed threads or processes. 
     The processor  10  receives a first digit m and a second digit n from the input device  40  (step S 320 ) and interprets target object (e.g., the audio data  70 ) as being a concatenation of m constituent audio segments in response to the digit m (step S 322 ). Each segment has length D/m. With reference to  FIG. 5 , if m=5 and n=2, the processor  10  interprets the audio data  70  as being a concatenation of 5 constituent segments, wherein the first digit m specifies the number of the constituent segments in the audio data  70 . The processor  10  may divide the length D of the audio data  70  by 5, the first digit, utilize the D/5 as new unit of playback skipping operations, and obtain addresses corresponding to playback time 0, D/5, 2D/5, 3D/5, 4D/5, and 5D/5 that delimit the five segments, each having length D/5 
     The processor  10  locates the n-th segment in the m segments in response to the second digit n (step S 324 ). With reference to  FIG. 5 , if m=5 and n=2, the processor  10  locates the 2 nd  segment  72 B in the audio data  70 , and displays an icon  31  to indicate the end of segment  72 A in a progress bar  300  corresponding to the end of the segment  72 B, wherein the second digit specifies the segment to be located. 
     The processor  10  performs a playback operation on the located n-th segment (step S 326 ). As shown in  FIG. 5 , in the step S 326 , the processor  10  may, for example, begin playing the audio data  70  from an end position  72  of the located segment, and the icon  31  indicates a position on the progress bar  300  corresponding to the position  72 . The processor  10  may alternatively begin playing the audio data  70  from a mid position of the located segment. 
     After the step S 326 , when receiving another set of digits, the processor  10  may repeat steps S 320 -S 326  in the  FIG. 3C  for the set of digits. With reference to  FIG. 6 , if m=4 and n=3, the processor  10  interprets the audio data  70  as being a concatenation of 4 audio segments and the progress bar  300  as being a concatenation of 4 progress bar segments, and locates the 3 rd  audio segment in the audio data  70  and the 3 rd  progress bar segment in the progress bar  300 . The processor  10  may also differentiate, by color, the 1 st  to 3 rd  progress bar segments from the 4 th  progress bar segment. 
     An audio segment corresponding to the progress bar segment indicated by the icon  31  is referred to as a selected audio segment. The processor  10  may move the icon to the right or left segment of the located segment in response to operations of a direction key or a touch panel, and thus selecting instead a segment adjacent to the located segment. A selected segment in a different target object may be similarly changed in response to operations of the input device  40 . During audio playback, changing assignment of a selected segment from an originally selected segment to a right adjacent segment thereof, such as by activation of point  219   a , for example, is equivalent to a forward skipping operation. Changing assignment of a selected segment from an originally selected segment to a left adjacent segment thereof, such as by activation of point  221   a , for example, is equivalent to a backward skipping operation. The processor  10  may utilize the second embodiment of the positioning method to change the basic unit of forward or backward skipping. 
     In the example of  FIG. 5 , when the 2 nd  segment  72 B serves as the selected segment, the processor  10  may treat the segment  72 B as a new target object and further interpret the segment  72 B as being a concatenation of m constituent sub-segments, each having length D/m 2 . For example, in reiteration of the step S 322  for further interpretation, the processor  10  divides the length D/5 of the segment  72 B by 5, utilizes the quotient thereof as a new unit of playback skipping, and obtain addresses corresponding to playback times listed in the following to delimit sub-segments: 
     
       
         
           
             
               ( 
               
                 
                   D 
                   5 
                 
                 + 
                 0 
               
               ) 
             
             , 
             
               ( 
               
                 
                   D 
                   5 
                 
                 + 
                 
                   D 
                   
                     5 
                     × 
                     5 
                   
                 
               
               ) 
             
             , 
             
               ( 
               
                 
                   D 
                   5 
                 
                 + 
                 
                   
                     2 
                     ⁢ 
                     D 
                   
                   
                     5 
                     × 
                     5 
                   
                 
               
               ) 
             
             , 
             
               ( 
               
                 
                   D 
                   5 
                 
                 + 
                 
                   
                     3 
                     ⁢ 
                     D 
                   
                   
                     5 
                     × 
                     5 
                   
                 
               
               ) 
             
             , 
             
               
 
             
             ⁢ 
             
               ( 
               
                 
                   D 
                   5 
                 
                 + 
                 
                   
                     4 
                     ⁢ 
                     D 
                   
                   
                     5 
                     × 
                     5 
                   
                 
               
               ) 
             
             , 
             
               and 
               ⁢ 
               
                   
               
               ⁢ 
               
                 ( 
                 
                   
                     D 
                     5 
                   
                   + 
                   
                     
                       5 
                       ⁢ 
                       D 
                     
                     
                       5 
                       × 
                       5 
                     
                   
                 
                 ) 
               
             
           
         
       
     
     As shown in  FIG. 7 , a progress bar  320  represents the progress bar segment  72 A and the audio segment  72 B. The processor  10  further interprets the progress bar segment  72 A as being a concatenation of five progress bar sub-segments and the audio segment  72 B as a concatenation of five audio sub-segments. Five segments in the progress bar  320  represent the five audio sub-segments in the segment  72 B. A sub-segment indicated by an icon  32  in the  FIG. 7  is referred to as a selected sub-segment, wherein the icon  32  corresponds to a position  721  in the audio segment  72 B. Similarly, an input device  40 , such as the key  217 , may be utilized to move the icon  32 , thus changing the assignment of a selected sub-segment. 
     A device without numeric keys may utilize a direction key, a forward skipping key, or a backward skipping key to select a segment and/or a sub-segment in a target object.  FIG. 2B  shows an input device  40   b , wherein a key  42  is operable to trigger playback forward skipping, a key  44  to trigger playback backward skipping, and a key  45  to activate or suspend audio playback. A touch sensitive device  46  as shown in  FIG. 2B  is structured in a form of a wheel. A clockwise movement on the device  46  may also trigger playback forward skipping, and a counter-clockwise movement on the device  46  may also trigger playback backward skipping. The memory  20  may store a predetermined number y specifying the number of segments to be interpreted in the audio data  70 , wherein the number y is a positive integer. When the key  42  is activated in the audio playing mode, the processor  10  locates the first segment among y segments of the audio data  70  in response to a keystroke of the key  42 , locates the second segment adjacent to the first segment on the right side thereof in response to a second keystroke of the key  42 , locates the first segment adjacent to the second segment on the left side thereof in response to a second keystroke of the key  44 , and interprets a located segment as being a concatenation of a plurality of segments (e.g., y segments) in response to a keystroke on a key  41  or  43 . 
     2.3 Third Exemplary Embodiment of the Positioning Method 
       FIG. 3D  shows a third embodiment of the positioning method executed by the electronic device system  100 . Although the audio data  70  is utilized as a target object of the third embodiment of the positioning method in the following description, the method may be applied to various target objects, such as a progress bar, a volume control bar, a playback speed control GUI, and a scroll bar of a playlist. The memory  20  may store a predetermined number z specifying the number of segments to be interpreted as comprising the audio data  70 , wherein the number z is a positive integer greater than one. 
     The processor  10  receives a digit c from the input device  40  (step S 330 ) and initiates the timer  50  to keep a predetermined period of time (step S 332 ). The processor  10  interprets the audio data  70  as being a concatenation of z constituent audio segments (step S 334 ) and locates the c-th segment thereof in response to the received digit c (step S 336 ), wherein length of each segment is D/z. The processor  10  divides the length D of the audio data  70  by z, and utilizes D/z as a new unit of playback skipping operations. As shown in  FIG. 9 , for example, if z=10 and c=7, the processor  10  interprets the audio data  70  as ten audio segments each with length D/10, divides the progress bar  300  into ten progress bar segments, and locates audio segment  77 B and progress bar segment  77 A corresponding thereto in response to the digit c, wherein the icon  31  indicates an ending position of the progress bar segment  77 A. When the progress bar  300  is the active GUI element of the electronic device system  100 , the processor  10  may utilize the progress bar  300  as a target object, divide the progress bar  300  into ten progress bar segments, and locate the progress bar segment  77 A. The processor  10  then accordingly performs corresponding operations on the audio data  70  in response to the processing of the progress bar  300 . Specifically, the processor  10  interprets the audio data  70  as ten audio segments each with length D/10, and locate audio segment  77 B corresponding to the progress bar segment  77 A. A position  779  corresponds to a position indicated by the icon  31 . 
     The processor  10  determines if the timer  50  expires (event A), and if another digit d is received from the input device  40  before the timer  50  expires (event B) (step S 338 ). 
     In the step S 338 , if the digit d is received from the input device  40  before the timer  50  expires (event B), the processor  10  further interprets the located audio segment as being a concatenation of z sub-segments (step S 340 ), locates the d-th sub-segment thereof (step S 342 ), and resets the timer  50  in response to the reception of the digit d (step S 344 ). A length of each sub-segment is D/z 2 . The processor  10  utilizes the length of one sub-segment D/z 2  as a new unit of playback skipping. In the example of  FIG. 9 , if z=10 and d=5, the processor  10  further interprets the located 7 th  audio segment as being a concatenation of ten sub-segments and locates the 5-th sub-segment thereof. As shown in  FIG. 10 , the progress bar  320  represents the progress bar segment  77 A corresponding to the audio segment  77 B. The processor  10  also divides the progress bar  320  into ten sub-segments and locates the 5 th  progress bar sub-segment  775 A corresponding to audio sub-segment  775 B. The audio sub-segment  775 B may be further interpreted as being a concatenation of much smaller segments by repeating steps in  FIG. 3D . 
     If the timer  50  expires (event A), the processor  10  performs a playback operation on the located audio segment (step S 346 ). In the example of  FIG. 10 , the processor  10  may begin playing the audio data  70  from an end position  775  of the segment  775 B. 
     A device without numeric keys may receive an operation originally designed to move a cursor or an icon upward or downward to perform the division of the progress bar  300  or a progress bar segment and corresponding operations thereof on the audio data  70 . Such device may also utilize a direction key, a forward skipping key, or a backward skipping key to locate or select a segment in a target object. 
     2.4 Fourth Exemplary Embodiment of the Positioning Method 
       FIG. 3E  shows a fourth embodiment of the positioning method executed by the electronic device system  100 . Although the audio data  70  is utilized as a target object of the fourth embodiment of the positioning method in the following description, the method may be applied to various target objects, such as a progress bar, a volume control bar, a playback speed control GUI, and a scroll bar of a playlist. 
     The electronic device system  100  comprises variables a 1 , a 2 , a 3 , . . . and a n , each with default value “0”. The processor  10  orderly stores each received digit from the input device  40  as one of the variables a 1 , a 2 , a 3 , . . . and a n . With reference to  FIG. 3E , the processor  10  receives a first digit e and stores the digit e into variable a 1 , that is a 1 ,←e (step S 350 ), and initiates the timer  50  to keep a predetermined period of time (step S 352 ). The processor  10  generates a percentage based on the digit e and an address corresponding to the percentage (step S 354 ), and locates a position on the audio data  70  corresponding to the percentage (step S 356 ). For example, the processor  10  obtains the percentage from the formula: 
     
       
         
           
             
               
                 
                   x 
                   = 
                   
                     1 
                     ⁢ 
                     % 
                     × 
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           1 
                         
                         n 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           10 
                           
                             2 
                             - 
                             i 
                           
                         
                         × 
                         
                           a 
                           i 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
     If the received first digit e=9, the processor  10  generates 90% based on the formula (1) and the first digit e. As shown in  FIG. 11 , a ratio of playback time corresponding to a position  790  to total playback time of the audio data  70  is substantially equal to the generated value of 90%. The processor  10  generates an address corresponding to 90% and locates a position on the audio data  70  based on the address. 
     The processor  10  determines if the timer  50  expires (event A), and if a second digit f is received from the input device  40  before the timer  50  expires (event B) (step S 360 ). When receiving the second digit f from the input device  40  before the timer  50  expires (event B), the processor  10  store the second digit fin variable a 2 , that is a 2 ←f, and resets the timer  50  (step S 362 ), and generates a new percentage in substitution for the previously generated percentage based on all received digits and generates an address corresponding to the new percentage (step S 364 ). 
     For example, if e=9 and f=5, the new percentage m new : 
     
       
         
           
             
               
                 
                   
                     m 
                     new 
                   
                   = 
                   
                     1 
                     ⁢ 
                     % 
                     × 
                     
                       ( 
                       
                         
                           
                             10 
                             
                               2 
                               - 
                               1 
                             
                           
                           ⁢ 
                           
                             a 
                             1 
                           
                         
                         + 
                         
                           
                             10 
                             
                               2 
                               - 
                               2 
                             
                           
                           ⁢ 
                           
                             a 
                             2 
                           
                         
                         + 
                         
                           
                             10 
                             
                               2 
                               - 
                               3 
                             
                           
                           ⁢ 
                           
                             a 
                             3 
                           
                         
                         + 
                         
                           … 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             10 
                             
                               2 
                               - 
                               n 
                             
                           
                           ⁢ 
                           
                             a 
                             n 
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     1 
                     ⁢ 
                     % 
                     × 
                     
                       ( 
                       
                         
                           
                             10 
                             1 
                           
                           × 
                           9 
                         
                         + 
                         
                           
                             10 
                             0 
                           
                           × 
                           5 
                         
                         + 
                         
                           
                             10 
                             
                               - 
                               1 
                             
                           
                           × 
                           0 
                         
                         + 
                         
                           … 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             10 
                             
                               2 
                               - 
                               n 
                             
                           
                           × 
                           0 
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     1 
                     ⁢ 
                     % 
                     × 
                     
                       ( 
                       
                         90 
                         + 
                         5 
                         + 
                         0 
                         + 
                         
                           … 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           0 
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     95 
                     ⁢ 
                     % 
                   
                 
               
             
           
         
       
     
     if e=0 and f=5, the new percentage m new : 
     
       
         
           
             
               
                 
                   
                     m 
                     new 
                   
                   = 
                   
                     1 
                     ⁢ 
                     % 
                     × 
                     
                       ( 
                       
                         
                           
                             10 
                             
                               2 
                               - 
                               1 
                             
                           
                           ⁢ 
                           
                             a 
                             1 
                           
                         
                         + 
                         
                           
                             10 
                             
                               2 
                               - 
                               2 
                             
                           
                           ⁢ 
                           
                             a 
                             2 
                           
                         
                         + 
                         
                           
                             10 
                             
                               2 
                               - 
                               3 
                             
                           
                           ⁢ 
                           
                             a 
                             3 
                           
                         
                         + 
                         
                           … 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             10 
                             
                               2 
                               - 
                               n 
                             
                           
                           ⁢ 
                           
                             a 
                             n 
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     1 
                     ⁢ 
                     % 
                     × 
                     
                       ( 
                       
                         
                           
                             10 
                             1 
                           
                           × 
                           0 
                         
                         + 
                         
                           
                             10 
                             0 
                           
                           × 
                           5 
                         
                         + 
                         
                           
                             10 
                             
                               - 
                               1 
                             
                           
                           × 
                           0 
                         
                         + 
                         
                           … 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             10 
                             
                               2 
                               - 
                               n 
                             
                           
                           × 
                           0 
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     1 
                     ⁢ 
                     % 
                     × 
                     
                       ( 
                       
                         0 
                         + 
                         5 
                         + 
                         0 
                         + 
                         
                           … 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           0 
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 
                   = 
                   
                     5 
                     ⁢ 
                     % 
                   
                 
               
             
           
         
       
     
     The processor  10  locates a position on the audio data  70  corresponding to the new percentage (step S 366 ) and repeat step S 360 . 
     If the timer  50  expires (event A), the processor  10  performs a playback operation on the located position (step S 368 ). 
     3. Variation of Embodiments 
     Transition of a target object segment or a representative GUI thereof into a plurality of sub-segments on the display  30  such as shown in  FIGS. 7, 8, and 10  may be triggered by a movement track on a touch sensitive device or a pointing device. For example, the movement track extends from a beginning point on a located segment in the progress bar  300  to an ending point on the progress bar  320 . The processor  10  may determine whether to activate the transition and display the progress bar  320  based on an angle between the progress bar  300  and a vector determined by the beginning and ending points. For example, the processor  10  activates the transition and displays the progress bar  320  when an angle between the vector and the progress bar  300  is greater than an angle between the vector and a vector perpendicular to the progress bar  300 . The processor  10  may control the display  30  to show the transition by magnifying the segment or a representative GUI thereof on the display  30  rather than displaying an additional progress bar, such as the progress bar  320 . The processor  10  may reverse the transition by miniaturizing the segment or a representative GUI thereof on the display  30  in response to another movement track. 
     3.1 Alternative Embodiments of the Positioning Method 
     The processor  10  may utilize any of the embodiments of the positioning method to locate a position on the audio data  70  and set a bookmark thereon. When receiving a bookmark setting operation on a specific position in a progress bar, the processor  10  accordingly sets a bookmark on a position of the audio data  70  corresponding to the specific position in the progress bar. After setting a bookmark on a specific position of the audio data  70 , the processor  10  may display a bookmark on a position in the progress bar corresponding to the specific position of the audio data  70 . Bookmark settings may be triggered by a click operation of a pointing device, or a touch operation on a touch sensitive device. The processor  10  may switch audio playback to a target position where a bookmark is set in response to an operation from the input device  40 . Multiple bookmarks may be set for a single audio title. As shown in  FIG. 12 , positions  792  and  793  are located through the disclosed positioning method to be associated with bookmarks  332  and  333 . 
     The disclosed positioning methods may be applied to an audio segment delimited by two bookmarks. Since the disclosed positioning method generates addresses of target positions or segments based on length of a target object, the processor  10  may locate target positions or segments in the audio segment delimited by two bookmarks based on length thereof. 
     The electronic device system  100  may record the located positions or segments, addresses or bookmarks thereof in the memory  20  for subsequent utilization for various functions. In an example, the electronic device system  100  comprises a mobile phone, when receiving an incoming telephone call, the processor  10  outputs a ring tone through a loudspeaker by randomly retrieving and playing a previously-located position or segment in the audio data  70  utilizing recorded information for the ring function. The recorded information for the ring function may comprise addresses or bookmarks corresponding to positions or segments in the audio data  70 . 
     Digit input syntax may be variously defined for the positioning methods. For example, a symbol “#” may be utilized to delimit the digits m and n in the second embodiment of the positioning method. When receiving a long sequence of digits, the processor  10  may respectively utilize different portions in the sequence to position different target objects, such as the audio data  70 , a volume control bar, and a playback speed control GUI. For example, when receiving a long digit sequence “51*41*32” with symbols “*” delimiting three digit strings therein, the processor  10  locates the first of five constituent audio segments in the audio data  70  in response to the first digit string “51”, locates the end position of the first of four constituent segments in the volume control bar in response to the second digit string “41”, locates the end position of the second of three constituent segments in the playback speed control GUI in response to the second digit string “32”, and performs audio playback according to the located segment and positions. The recorded information for the ring function may also comprise the digit sequence. Positioning methods utilizing different portions in the digit sequence may comprise different embodiments of the positioning method. 
     The processor  10  may show options to trigger the respective embodiments of positioning methods on the display  30 . Options of embodiments of the positioning method for respective types of target objects are marked with “V” in Table 1: 
     
       
         
           
               
               
             
               
                   
                 TABLE 1 
               
             
            
               
                   
                   
               
               
                   
                 Target object 
               
            
           
           
               
               
               
               
               
               
            
               
                   
                   
                   
                 Volume 
                 Playback 
                   
               
               
                   
                   
                 Progress 
                 control 
                 speed control 
               
               
                 Options 
                 Audio data 
                 bar 
                 bar 
                 GUI 
                 Playlist 
               
               
                   
               
               
                 1 st   
                 V 
                 V 
                   
                   
                   
               
               
                 embodiment 
               
               
                 2 nd   
                 V 
                 V 
                 V 
                 V 
                 V 
               
               
                 embodiment 
               
               
                 3 rd   
                 V 
                 V 
                 V 
                 V 
                 V 
               
               
                 embodiment 
               
               
                 4 th   
                 V 
                 V 
                 V 
                 V 
                 V 
               
               
                 embodiment 
               
               
                   
               
            
           
         
       
     
     In audio playing mode, the processor  10  may open a playlist, display a portion of the playlist in a window GUI element, selects and play a title in the displayed portion of the playlist, and skip playback of the title according to the positioning method. The positioning methods may be applied on presentation of a playlist in a window on the display  30 . Arrangement or rankings of titles in a playlist may be based on rating of one or more attribute values of each title in the playlist. Rating of one or more attribute values of each title may be user-adjustable. Examples of rating operations are given in the following. The following exemplary operations for rating may be alternatively applied to position the target object in the Table 1. 
     When receiving a movement track from the input device  40  (e.g., a touch panel), the processor  10  generates a rating value of a title upon which the movement track is applied based on projection of the movement track on an edge of a window. For example, the movement track may be generated from a touch panel, a touch display, a mouse, or a trackball. 
     As shown in  FIG. 13 , the processor  10  receives a movement track  350  from the input device  40 . A length of a scroll bar  39  represents the length of a playlist  370 , and the position and length of a thumb  38  in the scroll bar  39  respectively represents the position of a window  310  related to the playlist  370  and a proportion of the number of titles in the window  310  to the total number of titles in the playlist  370 . The track  350  begins from a point  340  in a GUI element  37  corresponding to a title “SONG000104” to a point  360  on the scroll bar  39  nearby a right edge of the window  310 . The processor  10  generates a rating value of the title “SONG000104” based on the position of the point  360  on the edge of the window  310 . The GUI element  37  may comprise an area showing text of the title “SONG000104” or an image area showing animated images of the title “SONG000104”. 
     For example, assuming that the maximum and minimum rating values of a title are respectively M and m, the height of the window  310  is H 1 , and a distance between the point  360  to the lower end of the window  310  is h 1 . The processor  10  generates the rating value of the title “SONG000104” in response to the movement track  350  according to the following formula:
 
( M−m )× h   1   /H   1   (2)
 
     The processor  10  may adjust a precision and a rounding of the rating value. 
     Alternatively, the ending point of a movement track is not required to be located on a scroll bar. As shown in  FIG. 14 , the processor  10  receives a movement track  351  from the input device  40 . The track  351  begins from a point  341  in a GUI element  37  corresponding to a title “SONG000104” to a point  361   a . A line determined by the points  341  and  361   a  extends to and crosses with the right edge of the window  310  on point  361   b . The processor  10  generates a rating value of the title “SONG000104” based on the position of the point  361   b  on the edge of the window  310 . 
     For example, assuming that the maximum and minimum rating values of a title are respectively M and m, the height of the window  310  is H 1 , and a distance between the point  361   b  to the lower end of the window  310  is h 1 . The processor  10  generates the rating value of the title “SONG000104” in response to the movement track  350  according to the following formula:
 
(M−m)×h 1 /H 1  
 
     Alternatively, the processor  10  displays a player application to play the title. As shown in  FIG. 15 , the processor  10  displays a progress bar  391 , keys  392 - 394 , and a volume control bar  395  on the display  30 . The key  393  triggers or suspends audio playback. The keys  392  and  394  respectively trigger forward and backward skipping of audio playback. The processor  10  receives a movement track  352  from the input device  40 . The track  352  begins from a point  342  in a GUI element  371  corresponding to a title “SONG000104” to a point  362   a . The GUI element  371  may comprise a text area showing text of the title “SONG000104” or an image area showing still or animated images of the title “SONG000104”. 
     A line determined by the points  342  and  362   a  extends to and crosses with the right edge of a window  311  on point  362   b . The processor  10  generates a rating value of the title “SONG000104” based on the position of the point  362   b  on the edge of the window  311 . For example, assuming that the height of the window  311  is H 2 , and a distance between the point  362   b  to the lower end of the window  311  is h 2 . The processor  10  generates the rating value of the title “SONG000104” in response to the movement track  352  according to the following formula:
 
(M−m)×h 2 /H 2   (3)
 
     The windows  310  and  311  may have different dimensions and may respectively be expanded to have the same size as the entire display area of the display  30 . 
       FIG. 16  shows an embodiment of the positioning method for a playlist. During display of a playlist, the processor  10  applies the positioning method to the playlist. 
     The processor  10  receives a first digit m and a second digit n from the input device  40  (step S 1320 ) and interprets a playlist as being a concatenation of m constituent playlist segments in response to the digit m (step S 1322 ). The processor  10  utilizes the integer portion in the quotient of division of the total length C of the playlist by m to be a new unit for scroll operations of the playlist. That is, the processor  10  limits the number of titles to be displayed in a window to └C/m┘ or ┌C/m┐. The processor  10  locates the n-th segment in the m playlist segments in response to the second digit n (step S 1324 ). If m=8 and n=2, the processor  10  interprets the playlist as being a concatenation of 8 playlist segments, locates, and displays the second segment in the window  310 . For example, if the playlist comprises 32 titles, the processor  10  obtains quotient 4 from 32/8, and limits the display of titles in a window to a maximum number of 4 titles after each scroll operation of the playlist. 
     The processor  10  displays the located playlist segment in a window on the display  30  (step S 1326 ). The processor  10  may magnify or miniaturize appearance of the located playlist segment to fit the dimension of the window. The processor  10  may repeat the steps shown in  FIG. 16  for each two digits received. With reference to  FIG. 13 , if the playlist comprises 32 titles, m=4 and n=3, the processor  10  interprets the playlist as being a concatenation of 4 playlist segments and displays the third playlist segment in the window  310 . 
     Activation of points  218   a  and  220   a  in the direction key  217  may respectively trigger display of an upper and a lower adjacent playlist segment of the currently-displayed playlist segment. The electronic device system  100  may thus change the unit of playlist scrolling. 
     The processor  10  may further divide a currently-displayed playlist segment into m playlist sub-segments in response to the activation of the point  219   a  and restores to the currently-displayed playlist segment in response to the activation of the point  221   a    
     In the example of  FIG. 13 , the playlist shown by the window  310  is the active GUI element, so that the processor  10  may further divide the playlist segment shown in the window  310  in response to the reception of an additional two digits by repeating the steps shown in  FIG. 16 . 
     3.2 Alternative Embodiments of the Electronic Device 
     The exemplary embodiments of the positioning method can be executed in various systems, such as electronic device systems shown in  FIGS. 17-19 . 
     In  FIG. 17 , a processor  1011  of an electronic device  1101  executes the positioning method to receive digits from an input device  1041  and locate a segment of a target object stored in a main memory  1022 . The processor  1011  generates GUI elements corresponding to the segment and the target object, and a communication unit  1017  transmits images of the GUI elements to a communication unit  1027  through a communication channel  1104 . A processor  1021  displays the GUI elements received by the communication unit  1027  on a display  1032 . The communication channel  1104  in  FIG. 17  may transfer images and control signals between the electronic devices  1101  and  1102 . 
     In  FIG. 18 , a communication unit  1017  of an electronic device  1201  transmits input signals generated by an input unit  1041  to the communication unit  1027  through the communication channel  1204 . A processor  1021  in the electronic device  1202  generates digits from the input signals and locates a segment of a target object stored in a main memory  1022  based on the digits under the direction of the positioning method. The processor  1021  generates GUI elements corresponding to the segment and the target object, and displays the GUI elements on the display  1032 . 
     In  FIG. 19 , a communication unit  1017  of an electronic device  1301  transmits input signals generated by an input unit  1041  to the communication unit  1027  through a communication channel  1304 . A processor  1021  in the electronic device  1302  performs the positioning method based on input signals received by the communication unit  1027 . The processor  1021  generates GUI elements corresponding to the segment and the target object, and a communication unit  1028  transmits images of the GUI elements to a communication unit  1037  through communication channel  1305 . A display  1033  displays the GUI elements received by the communication unit  1037 . 
     The communication channels  1104 ,  1204 ,  1304 , and  1305  may be wired or wireless channels. Each of the electronic devices  1101 ,  1201 , and  1301  may be a remote control or portable device, such as a PDA, an ultra mobile device (UMD), a laptop computer, or a cell phone. Each of the electronic devices  1102 ,  1202 , and  1303  may comprise a television or a media player, such as a disc player. The electronic device  1302  may comprise a set-top box. The main memory  1022  in  FIGS. 17-19  may store audio data and computer-readable program for implementing the positioning method. 
     4. Conclusion 
     The method receives digits from voice commands and sets an IoT device attribute according to the voice command. The method for positioning playback of audio data can be implemented in various electronic devices, such as a robot, an autonomous car, cell phones, PDAs, set-top boxes, televisions, game consoles or media players. 
     It is to be understood, however, that even though numerous characteristics and advantages of the disclosure have been set forth in the foregoing description, together with details of the structure and function of the present disclosure, the disclosure is illustrative only, and changes may be made in detail, especially in matters of shape, size, and arrangement of parts within the principles of the present disclosure to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed.