Patent Description:
Certain types of portable terminal are typically used for wireless voice calls and information exchange. With the recent development of various technologies, many portable terminals now provide various services and functions. For example, portable terminals have been developed to function as multimedia devices capable of providing various services, for example a phone book, game, short message, e-mail, morning call, music player, schedule management, digital camera and wireless Internet.

Further, voice recognition technology is being rapidly developed, which can be used, not only to convert a voice into a text and recognizes words, but also to recognize a context like a human voice. Such a voice recognition technology is now being applied to various terminals, for example a smart phone, a smart TV, a tablet PC, etc. Terminals may perform various functions (e.g., taking a photograph, Internet connection, music play, navigation service, etc.) in response to input information, particularly voice information.

At present, portable terminals provide various types of input device, for example a touch screen and a microphone, as an interface for receiving an input, to enable a user to interact with the portable terminal. That is, the user may control the portable terminal by providing an input, for example a touch input through a touch screen, or a voice input through a microphone. A conventional portable terminal individually processes user inputs. In particular, a conventional portable terminal separately processes an input other than a voice input. Hence, it may be inefficient to provide various kinds of input devices in a portable terminal.

<CIT> relates to a method in which first, a designated position on a display screen is continuously obtained based on a designation performed by a pointing device. Next, it is detected that a sound which satisfies a predetermined condition is inputted to sound input means. Then, while it is detected that the sound which satisfies the predetermined condition is inputted, predetermined drawing-related processing is executed at a position based on the obtained designated position.

"<NPL>, discloses a speech-recognition product which lets a user talk to a computer instead of typing and uses voice inputs to control a computer.

It is an aim of certain embodiments of the present invention to address, solve, mitigate or obviate, at least partly, at least one of the problems and/or disadvantages associated with the related art, for example at least one of the above problems and/or disadvantages. Certain embodiments of the present invention aim to provide at least one advantage over the related art, for example at least one of the advantages described below.

Accordingly, certain embodiments of the present invention provide a method and apparatus for providing an environment in which two or more input methods may be used in combination. In other words, certain embodiments provide a method and apparatus for processing multiple inputs that are simultaneously input from different input interfaces.

Certain embodiments of the present invention provide a method and apparatus capable of recognizing a user's intention from voice information input from a microphone and accurately reflecting the user's intention in functions performed by an interface other than the microphone.

In accordance with an aspect of the present invention, there is provided a method according to claim <NUM>.

In accordance with another aspect of the present invention, there is provided an electronic device according to claim <NUM>.

Other aspects, advantages, and salient features of the invention will become apparent to those skilled in the art from the following detailed description, which, taken in conjunction with the annexed drawings, disclose exemplary embodiments of the invention.

The above and other aspects, and features and advantages of certain exemplary embodiments and aspects of the present invention will be more apparent from the following detailed description in conjunction with the accompanying drawings, in which:.

Exemplary embodiments of the present invention are described with reference to the accompanying drawings in detail. The following disclosure is provided to assist in a comprehensive understanding of the present invention, as defined by the claims. The description includes various specific details to assist in that understanding but these are to be regarded as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope of the invention.

The terms and words used in the following description and claims are not limited to the bibliographical meanings, but, are merely used by the inventor to enable a clear and consistent understanding of the invention.

The same or similar reference numbers may be used throughout the drawings to refer to the same or similar parts. Detailed descriptions of well-known processes, functions, features, constructions and/or structures incorporated herein may be omitted for clarity and conciseness, and to avoid obscuring the subject matter of the present invention.

Throughout the description and claims of this specification, the words "comprise", "contain" and "include" and variations of the words, for example "comprising" and "comprises", mean "including but not limited to", and is not intended to (and does not) exclude other features, components, elements, characteristics integers, processes, steps and the like.

In particular, it is to be understood that the singular forms "a," "an," and "the" include plural referents unless the context dictates otherwise, Thus, for example, reference to "an object" includes reference to one or more of such objects.

Features, integers, elements, characteristics, structures, constructions, steps, processes, functions, and the like, described in conjunction with a particular aspect, embodiment or example of the invention are to be understood to be applicable to any other aspect, embodiment or example described herein unless incompatible therewith.

It will be also be appreciated that, throughout the description and claims of this specification, language in the general form of "X for Y" (where Y is some action, activity or step and X is some means for carrying out that action, activity or step) encompasses means X adapted, configured or arranged specifically, but not exclusively, to do Y.

A method and apparatus for processing multiple inputs according to embodiments of the present invention may be applied to various types of multimedia device, for example a smart phone, a tablet PC, a notebook PC, a desktop PC, a TV, a navigation system and a video phone. Further, methods and apparatus according to embodiments of the present invention may also be applied to devices combined with multimedia devices (e.g., a refrigerator having a communication function and a touch screen).

In the following, "input" may refer to information input through one or more interfaces, and may include one or more of a user input and a system input. Such an input allows for interaction between a device and an outside environment (e.g. an environment external to the device).

Specifically, "user input" may refer to information relating to an input made by a user using an input device corresponding to a user interface (e.g., a touch screen, a microphone, a sensor unit, a key input unit, etc.). Examples of user inputs include a user gesture applied to a touch screen using an input object (e.g., a user's hand or finger, or a pen or stylus), voice information input through a microphone, motion information sensed by a sensor unit, etc. Motion information may include information relating to motion of a user, for example hand or finger motion, a face motion, or an eye motion, for example detected using images captured by an image sensor (e.g. a camera). Further, if the apparatus is a portable terminal, the motion information may include information relating to motion of the device. The information relating to device motion may include, for example, information relating to the device's acceleration sensed using an acceleration sensor. The device motion may be caused, for example, by the user shaking the portable terminal.

In embodiments of the present invention, "system input" may refer to information related to the external environment of the device (e.g. the environment external to the device in which the device is located). Here, the external environment may refer, for example, to a natural environment and/or a communication environment. For example, the information related to the natural environment may include one or more physical characteristics of the environment, for example external illumination, temperature and/or humidity, or a physical state of the portable terminal in the environment, for example the speed, position and/or moving direction of the portable terminal, etc. Further, the information related to the communication environment may include, for example, one or more characteristics, attributes or parameters associated with a communication network and/or another device to which the device is connected, and/or a communication channel used by the device. For example, the information related to the communication environment may include wireless communication network information connected with the terminal, for example LTE, <NUM>, Wi-Fi and Bluetooth, and attributes information of an external device connected by wired line.

In embodiments of the present invention, an input may be categorized as a user input or a system input, for example according to whether the input is generated by the user, from the perspective of the user. From the perspective of a device, an input may be categorized as a user input or a system input, for example based on the component that was used to receive or generate the input. For example, an input received through the touch screen may be categorized as a user input and an input generated by the illumination sensor may be categorized as a system input.

Methods and apparatus according to embodiments of the present invention may process simultaneously generated multiple inputs. For example, methods and apparatus according to embodiments of the present invention may change the attributes of a function performed by a first user input in response to a second user input or a system input. Changing the attributes of a function may include, for example, modifying or changing an attribute, parameter, setting and/or characteristic associated with the function that results in the output or result of the function being different, modified or changed. For example, certain embodiments may display handwriting on the screen in response to a pen touch. At this time, if a user's voice is detected and the word "red" is recognized, certain embodiments of the present invention may change the color of the handwriting to the color red. Further, certain embodiments of the present invention may correct the color of the handwriting to red.

<FIG> is a block diagram illustrating an apparatus <NUM> for processing multiple inputs according to an exemplary embodiment of the present invention.

Referring to <FIG>, the apparatus <NUM> includes a touch screen <NUM>, a key input unit <NUM>, a storage unit <NUM>, a wireless communication unit <NUM>, an audio processing unit <NUM>, a speaker (SPK), a microphone (MIC), a sensor unit <NUM> and a controller <NUM>, and may also include a camera <NUM>.

The touch screen <NUM> includes a touch panel <NUM> and a display panel <NUM> to provide a user interface for interaction with the user. The touch panel <NUM> may be placed on the display panel <NUM>. Specifically, the touch panel <NUM> may be implemented as an add-on type placed on the display panel <NUM>, an on-cell type, or in-cell type inserted into the display panel <NUM>.

The touch panel <NUM> generates an analog signal (e.g., a touch event) in response to the user's gesture on the touch panel <NUM>, and A/D-converts (analog to digital convert) the analog signal and transmits the converted signal to the controller <NUM>. The controller <NUM> detects the user's gesture from the transmitted touch event. That is, the controller <NUM> controls the components by detecting, for example, the touched point, the moving distance of the touch, the moving direction of the touch, the speed of the touch and the pressure of the touch, etc..

The touch panel <NUM> may be an integrated touch panel including a hand touch panel 111a that senses a hand gesture and a pen touch panel 111b that senses a pen gesture. Here, the hand touch panel 111b may be of a capacitive type, which generates a touch event not only by the user's hand gesture, but may generate a touch event also by another object (e.g., an object made of a conductive material that may change a capacitance). That is, a touch event may be generated not only by the user's hand, but also by other objects, in the hand touch panel 111a. The hand touch panel 111a is not limited to a capacitive type, but may be any other suitable type, for example a resistive type, an infrared type, or an ultrasonic type. The pen touch panel 111b may be an electromagnetic induction type. As such, the pen touch panel 111b may generate a touch event by a specially manufactured stylus pen for a touch to form a magnetic field. The pen touch panel 111b is not limited to an electromagnetic induction type, but may be any other suitable type, for example that is capable of being used with any suitable type of input object, whether specially manufactured or not.

The user gesture for the touch screen <NUM> may be categorised into a hand gesture or a pen gesture according to a touch input means as described above. As described above, the hand gesture is sensed in the hand touch panel 111a, and the pen gesture is sensed in the pen touch panel 111b.

The user's gesture is divided into a touch and a touch gesture regardless of a handling means. Further, the touch gesture may include a tap, a double tap, a long tap, a drag, a drag & drop, a flick, a press, etc. Here, the touch is an operation of contacting one point of the screen using a touch input means (e.g., a finger or a stylus pen). The tap is an operation of touching one point with a touch input means and then removing the touch of the touch input means from the same point without moving the touch input means (i.e. while contact with the screen is maintained) The double tap is an operation of consecutively performing the tap operation twice at one point in quick succession (i.e. within a certain time). The long tap is an operation of touching one point for a relatively long time (i.e. greater than a certain time) and then removing the touch of the touch input means at the same point without moving the touch input means (i.e. while contact with the screen is maintained. The drag is an operation of contacting a point of the screen and then moving the touch input means while maintaining contact with the screen. The drag & drop is an operation of performing a drag and then removing the touch input means. The flick is an operation of quickly moving the input means compared to the drag, and then removing the touch. The press is an operation of touching one point with the touch input means and pushing the point (i.e. with a pressure greater than a threshold). A "touch" is a state in which the contact with the touch screen is made, and a "touch gesture" may include a movement of a touch between the touch (touch-on) and the removal (touch-off) of the touch. The touch panel may sense a pressure at the touched point by including a pressure sensor. The sensed input information is transmitted to the controller <NUM>, and the controller <NUM> distinguishes a touch from a press based on the sensed pressure information.

The display panel <NUM> converts image data input from the controller <NUM> into analog signals, and displays the signals under the control of the controller <NUM>. That is, the display panel <NUM> displays various screens according to the use of the apparatus <NUM>, such as a lock screen, a home screen, an application (App) screen and a keypad screen. The lock screen may be defined as an image displayed on the display panel <NUM> when the display panel <NUM> is turned on. If a touch gesture for releasing the lock is detected, the controller <NUM> changes the displayed image to a home screen or an application execution screen, etc. The home screen may be defined as an image including a plurality of application icons corresponding to a plurality of applications.

If one of a plurality of applications is selected by a user (e.g., an icon is tapped), the controller <NUM> executes a corresponding application (e.g., Internet, document writing, chatting, text transmission, etc.), and displays the execution screen on the display panel <NUM>. The display panel <NUM> may display one of the screens as the background and may overlap another screen as the foreground with the background. For example, the display panel <NUM> may display an application execution screen and may display a keypad on the application execution screen.

Further, the display panel <NUM> may display a plurality of screens under the control of the controller <NUM>. For example, the display panel <NUM> may display a keypad on the first screen area of the touch screen <NUM>, and may display a message input through the keypad on the second screen area of the touch screen <NUM>.

The display panel <NUM> may be formed, for example, of a Liquid Crystal Display (LCD), an Organic Light Emitted Diode (OLED), an Active Matrix Organic Light Emitted Diode (AMOLED), or any other suitable type of display.

The key input unit <NUM> includes a plurality of keys for receiving number or letter information and setting various functions. Such keys may include a direction key, a side key and a shortcut key, etc. The key input unit <NUM> generates a key event related with the user setting and the function control of the apparatus, and transmits the generated key event to the controller <NUM>. The key event may include a power on/off event, a volume adjustment event, and a screen on/off event. The controller <NUM> controls the above components in response to the key event. Further, the key input unit <NUM> may include a QWERTY keypad, a <NUM>*<NUM> keypad, <NUM>*<NUM> keypad, etc. including a plurality of keys. If the touch panel is supported as a full touch screen type (e.g. the touch panel occupies most or substantially all of a front side of the apparatus), the key input unit <NUM> may include one or more side keys for the screen on/off, the apparatus on/off or volume adjustment. Further, the key of the key input unit <NUM> may be referred to as a hard key, and the key displayed on the touch screen <NUM> may be referred to as a soft key.

The storage unit <NUM> may store data generated in the apparatus (e.g., a text message, a photographed image) or externally received through the wireless communication unit <NUM> (e.g., a text message, an e-mail) under the control of the controller <NUM>. The storage unit <NUM> may store the lock screen, the home screen, the keypad, etc. The storage unit <NUM> may store various setting values (e.g., screen brightness, whether there is a vibration at the time of a touch occurrence, whether the screen is automatically rotated, a background image, etc.) for operation of the apparatus.

The storage unit <NUM> may include an operating system for booting operation of the apparatus <NUM>, a communication program, an image processing program, a display control program, a user interface program, a user recognition program, an artificial intelligence program, an embedded application, and a third part application, etc..

The communication program includes commands that allow communication with an external device through the wireless communication unit <NUM>. The graphic processing program includes various software components (e.g., modules for converting the image format, adjusting the size of the graphic to be displayed, rendering, and determining the luminance of the backlight unit, etc.) for processing graphic images to be displayed on the touch screen. Here, the graphic image may include a text, a web page, an icon, a picture, a video and an animation, etc. Further, the graphic processing program may include software CODEC <NUM>. The user interface program includes various software components related with the user interface.

For example, the user recognition program may include a voice recognition program and a face recognition program. The voice recognition program detects voice characteristic information (e.g., a tone, frequency, volume (e.g. decibel level), spectral characteristics etc.) from voice data. The voice recognition program compares the detected voice characteristic information with pre-stored one or more voice characteristic information sets, and recognizes who the user is based on the comparison result. Further, the voice recognition program may include a speech-to--text (STT) function for converting voice data into a text. The face recognition program recognizes the user's face from the image photographed by the camera <NUM>. Specifically, the face recognition program extracts face information from the image data, compares the extracted face information with one or more sets of face information, and recognizes who the user is based on the comparison result. Further, the user recognition may be performed through various programs (e.g., iris scanning, vein recognition, finger scanning, etc.) in addition to the voice recognition program and the face recognition program.

The artificial intelligence program is a program for recognizing the user's intention (e.g. an input, operation or function desired or intended by the user), for example from voice or image data. For example, the artificial intelligence program may include a natural language processing engine for recognizing and processing a context from voice data, a gesture user motion recognition engine for recognizing intention of a user's gesture motion from image data, an inference engine for inferring intention of the user based on the recognized context, and a conversation engine for conversing with the user based on the recognized context or the user motion.

The term "embedded application" may refer to an application (e.g. a core application or default application) pre-installed in the apparatus <NUM>, for example by the apparatus manufacturer or distributor. For example, an embedded application may be a browser, an e-mail application, an instant messenger application, etc. As already known, the term "third party application" may refer to an application that may be downloaded (e.g. from an online market) and installed in the apparatus <NUM> by the user. There are various kinds of third party applications. Such a third party application may be freely installed and deleted, for example by the user.

The wireless communication unit <NUM> performs a voice call, a video call or data communication under the control of the controller <NUM>. To this end, the wireless communication unit <NUM> may include a wireless frequency transmission unit for up-converting and amplifying the frequency of the transmitted signal, and a wireless frequency reception unit for low-noise-amplifying and down-converting the frequency of the received signal. Further, the wireless communication unit <NUM> may include a mobile communication module (e.g., a 3rd-generation mobile communication module, a <NUM>-generation mobile communication module or a 4th-generation mobile communication module), a digital broadcast module (e.g., a DMB module), and a local communication module (e.g. a Wi-Fi module, and a Bluetooth module).

The audio processing unit <NUM> is combined with the speaker (SPK) and the microphone (MIC), and performs voice recognition, voice replication, digital recording and an input and output of audio signals for a phone function. That is, the audio processing unit <NUM> outputs an audio signal through the speaker (SPK), and performs a function for receiving an input of an audio signal through the microphone (MIC). The audio processing unit <NUM> receives audio data from the controller <NUM>, converts the received audio data into analog signals (D/A conversion), and outputs the analog signals through the speaker (SPK). The audio processing unit <NUM> receives analog signals from the microphone (MIC), converts the received analog signals into audio data (A/D conversion), and provides the audio data to the controller <NUM>. The speaker (SPK) converts analog signals received from the audio processing unit <NUM> into sound waves and outputs the sound waves. The microphone (MIC) converts sound waves transmitted from a human or other sound source into analog signals.

The sensor unit <NUM> detects state changes, for example a tilt change, illumination change, acceleration change, and transmits the detected change to the controller <NUM>. The sensor unit <NUM> may be composed of various sensors, and the sensors may detect the state changes of the apparatus <NUM> along with the power supply under the control of the controller <NUM>. The sensor unit <NUM> may be implemented by integration of sensors on one chip or separate chips of sensors. Specifically, the sensor unit <NUM> may include an acceleration sensor. The acceleration sensor measures the acceleration for each of x-axis, y-axis and z-axis elements. The acceleration sensor may include a gyro sensor, and if there is no movement in the apparatus, gravity acceleration may be measured. For example, if the touch screen <NUM> is placed on the xy-plane toward the upper side (e.g., a positive z-axis direction), the x-axis and y-axis element of the gravity acceleration detected by the sensor unit <NUM> may be <NUM>/sec2, and the z-axis element may be +<NUM>/sec<NUM>. If the touch screen <NUM> is turned over, the x-axis and y-axis element may be <NUM>/sec<NUM>, and the z-axis element may be -<NUM>/sec<NUM>. If there is a movement in the apparatus <NUM>, the acceleration sensor detects acceleration which is the sum of the kinetic acceleration and gravity acceleration of the apparatus <NUM>.

The controller <NUM> controls overall operation of the apparatus <NUM> and the signal flow between internal components of the apparatus <NUM>, and processes data. Further, controller <NUM> controls a power supply to internal components in the battery.

The controller <NUM> may include a Central Processing Unit (CPU) and a Graphic Processing Unit (GPU). The CPU may be in the form of a core control unit of a computer system for performing data calculation and comparison, and analysis and execution of commands, etc. The GPU may be in the form of a graphic control unit for performing calculation and comparison of graphic-related data, and analysis and execution of commands. The CPU and the GPU may be integrated into one package of a single integrated circuit formed of two or more independent cores (e.g., a quad-core). Further, the CPU and the GPU may be integrated into one integrated chip (system on chip (SoC)). Further, the CPU and the GPU may be packaged into a multi-layer. Further, the configuration including the CPU and the GPU may be referred to as an application processor (AP).

The multi input processing according to the present invention may be performed in at least one of the cores of the CPU. Further, in the multi input processing, the graphic-related function may be performed in the GPU. For example, at least one of the cores of the GPU performs a function of indicating the handwriting in response to a touch gesture. In certain embodiments, the multi input processing may be performed in both the GPU and the CPU. The function of the controller <NUM> according to exemplary embodiments of the present invention will be specifically described below.

The controller <NUM> includes a voice recognition unit. The voice recognition unit detects voice characteristic information (e.g., tone color, frequency, decibel, etc.) from the voice information input from the microphone (MIC) through the audio processing unit <NUM>, compares the detected voice characteristic information with a pre-stored one or more sets of voice characteristic information, and recognizes who the user is based on the comparison result. Further, the controller <NUM> may include a face recognition unit. The face recognition unit extracts face information from image data input from the camera <NUM>, compares the extracted face information with a pre-stored one or more sets of face information, and recognizes who the user is based on the comparison result. The controller <NUM> may grant a control authority to only the recognized user. That is, the controller <NUM> may respond only when the voice or the face is recognized. Further, the voice recognition unit may convert the characteristic information of the voice from the input voice information into a text, and recognize the user's intention (e.g., a certain key word such as a "thicker" and "red", or the context) from the input voice information. Also, the face recognition unit may recognize the intention of the user's motion from the image data. At least one of the voice recognition unit and the face recognition unit may be included in an external server instead of inside the apparatus <NUM>.

The camera <NUM> photographs a subject and outputs the photographed subject to the controller <NUM> under the control of the controller <NUM>. Specifically, the camera <NUM> includes an image signal processor (ISP) for converting electric signals input from an image sensor into image data (A/D conversion) and outputs the image data to the controller <NUM>. The ISP of the camera <NUM> may include a display control module for processing image data as a preview image (e.g., adjusting the resolution to fit the screen size of the touch screen) and outputting the preview image to the controller <NUM>, and a coding module for coding the image data (e.g., compressing the data to be an MPEG format) and outputting the coded data to the controller <NUM>. The controller <NUM> may display the preview image on the touch screen <NUM>. Further, the controller <NUM> may store the coded video in the storage unit <NUM>.

Further, the apparatus <NUM> may be modified in various ways, for example according to the convergence trend of digital devices in which various functions previously provided by separate devices are combined into a single device. Such modifications are too numerous to be exhaustively listed here. For example, the apparatus <NUM> according to embodiments of the present invention may further include one or more components that have not been mentioned above, for example a GPS module, a vibration motor, a camera, a hardware CODEC, and a wired communication unit for connection with an external device (e.g., a personal computer, etc.) by wired line. Further, one or more components of the apparatus <NUM> of embodiments of the present invention may be eliminated from the above-described configuration, or may be substituted by one or more other components.

<FIG> and <FIG> are a flowchart and a screen example, respectively, illustrating a method of processing multiple inputs according to an embodiment of the present invention.

Referring to <FIG>, the controller <NUM> detects a first user input from one of user interfaces in step <NUM>. For example, a first user input may be a movement of a handling means or input object on a touch screen in a state where a program for handwriting, drawing or painting using a handling means (e.g., a hand or a pen) is being executed. Specifically, as illustrated in <FIG>, a touch screen <NUM> displays a home screen <NUM>. The controller <NUM> detects selection of a memo writing program (e.g., a double tapping of an icon <NUM> of a memo writing program using a pen <NUM>) in the home screen <NUM> (See <FIG>).

The controller <NUM> displays the memo writing screen <NUM> on the touch screen <NUM> in response to the selection of the memo writing program. The controller <NUM> detects the first user input on the memo writing screen <NUM>, for example, the movement of the pen <NUM>.

The controller <NUM> performs a function in response to the first user input in step <NUM>. For example, the function to display "SELAB" corresponding to the movement of the pen <NUM> is illustrated in <FIG>. Here, the function corresponding to the handling means such as the pen <NUM> is not limited to handwriting, and may be, for example one of functions related with graphic work, for example drawing, painting and erasing. Here, erasing may refer to a function of removing handwriting or a picture made by a writing, drawing, painting, etc..

The controller <NUM> determines whether a second user input or system input has been detected in step <NUM>. Here, the second user input may have been generated in an interface other than the user interface that has generated the first user input. For example, the first user input is generated in the touch screen <NUM>, and the second user input is generated in one of the microphone (MIC) and the sensor unit <NUM>. Further, the system input may be generated by a component other than the user interface that has generated the first user input. In certain embodiments, the first user input and the second user input may be generated in the same interface. As described above, in the present invention, the system input is information related with the external environment (e.g., the natural environment or communication environment) of the apparatus. As such, the system input may have been generated in the sensor unit <NUM> or the wireless communication unit <NUM>, etc..

If at least one of the second user input and the system input is detected, the controller <NUM> changes the attributes of the function performed by the first user input in response to the detected input in step <NUM>. For example, if the function relates to handwriting, the attribute of the handwriting may be changed. For example, referring to <FIG>, if the user inputs a voice saying "Line red, Line Thicker", the controller <NUM> changes the attribute of the handwriting "software center" in response to the voice input. That is, the controller <NUM> changes the color of the letters to red, and changes the letters to be thick. If a system input, for example, a change of the external illuminance, is detected (e.g., the currently detected external illuminance is greater than 20Klus (outside)), the controller changes the color of the letters to be bright and changes the background (i.e., the memo writing screen <NUM>) to be relatively dark.

Further, the second user input and the system input for the change of the function may be designated in advance. The designation may be set, for example, by the user in a setting screen (e.g. environment setting screen). Here, the environment setting screen is a screen for setting the use environment of the apparatus <NUM>, for example the sound, brightness, background screen, network, etc. Further, the designation may be set by the manufacturing company, or changes by the user may not be allowed. As described above, if the function is a graphic-related work, the second user input is designated as a voice input, and the system input may be designated as a change of the external illuminance.

If the second user input is a voice input, the controller <NUM> may needs time for processing voice information in order to recognize the user's intention. Here, the voice information is input from the audio processing unit <NUM> through the microphone (MIC), and the processing recognizes the user's intention by analyzing the voice information (e.g., converting the voice information into text, etc.). Such a processing may be performed in the server. That is, the wireless communication unit <NUM> receives the voice recognition request including the voice information from the controller <NUM>, and transmits the message to the voice recognition server. The voice recognition server processes the voice information, and transmits a response message including the process result (i.e., the user's intention) to the apparatus <NUM>. The function (e.g., a handwriting) may be performed in a state where the user's intention is not reflected for voice processing time. For example, referring to <FIG>, the user gives a voice command "Line red, Line Thicker" as described above with an intention to make the writing thicker and red after writing "SELAB". The user may write "software center" simultaneously along with the voice command. At this time, the "soft" portion of "software" may not reflect the user's intention. That is, the user may give a voice command to change the attributes letters while writing letters. Hence, there may be a portion that needs correction (i.e., a portion that does not reflect the user's intention) that should reflect the user's intention in an already performed function. Step <NUM> may include such a correction process (<FIG> below).

<FIG> is a flowchart illustrating a method of changing attributes of the function according to an embodiment of the present invention. <FIG> illustrates a method of calculating a portion that requires correction according to an embodiment of the present invention. The description of <FIG> and <FIG> assumes a situation that gives a voice command to change the attributes of the line while drawing a line on the touch screen <NUM>.

Referring to <FIG>, the controller <NUM> analyzes the detected voice information, and recognizes the user's intention in step <NUM>. Specifically, referring to <FIG>, the controller <NUM> detects the starting point t1 of the voice. Thereafter, the controller <NUM> detects the termination point t2 of the voice. The controller <NUM> recognizes the user's intention by analyzing the voice information of this section t1-t2. Here, the recognition of the user's intention may be processed in the voice recognition server that is an external device, not in the controller <NUM>, as described above. Thereafter, the controller <NUM> changes the attributes of the line drawing according to the user's intention. For example, the touch screen <NUM> changes the line to be thick and displays the thickened line under the control of the controller <NUM>. At this time, the point where the user intended to change the line to be thicker is t1, but the time point when the user's intention has actually been applied is t3. That is, according to the user's intention, the line should be thickened from the time point t1 when the user draws the line, but the thickening is applied only from the time point t3 due to the time that takes in the processing. Such a difference may be corrected by the procedure described below.

The controller <NUM> determines whether the already performed function needs correction in step <NUM>. The controller <NUM> detects the input of the touch gesture from the touch screen <NUM>, and determines that a correction is needed if an input of the voice information is detected from the microphone (MIC) through the audio processing unit <NUM>. That is, if the first user input (user gesture) and the second user input (voice information) are simultaneously detected (e.g., a situation in which the user draws a line and gives a voice command at the same time), the controller <NUM> may determine that a correction is needed for a function already performed by the user's input. After generation of a touch event is completed, if voice information is generated (e.g., after the user completes drawing the line and gives a voice command to set the attributes of the function to be performed thereafter), it is possible to determine that correction is not needed for the function performed (i.e., drawing a line).

If correction is needed, the controller <NUM> produces a portion that needs to be corrected in an already performed function in step <NUM>. For example, referring to <FIG>, the controller <NUM> detects time point t1 that is the starting point of the user, and detects t3 that is the time point that is applied after recognizing the user's intention. Further, the controller <NUM> determines the portion drawn from t1 to t3 from the drawn line as a portion that requires correction.

The controller <NUM> reflects the user's intention in the portion that requires correction (i.e., thickens the line) in step <NUM>. For example, the controller <NUM> controls the portion that requires correction to be displayed thicker by the thickness of the thickened line after t3. The controller <NUM> may control the portion to be displayed gradually thicker toward the line drawing direction. In the case of the color correction, the controller <NUM> applies the line color applied after t3 to the portion that requires correction. The controller <NUM> may apply the mixture of the color of the line before t1 and the color of the line after t3 (purple which is the mixture of red and blue) to the portion that requires correction. Hence, the controller <NUM> may correct the graphic attributes of the portion that requires correction, such as brightness and transparency in addition to thickness and color, based on the recognized user's intention.

<FIG> is a screen example illustrating a method of processing multiple inputs according to another embodiment of the present invention.

Referring to <FIG>, the controller <NUM> detects the movement of the pen <NUM> in the memo writing screen <NUM>. The controller <NUM> controls the line to be displayed according to the movement of the pen <NUM>. If the displayed line becomes a closed curve <NUM>, the controller <NUM> controls the color (e.g., blue) to be displayed within the closed curve <NUM> as illustrated in <FIG>. The controller <NUM> detects an input of voice information from the microphone (MIC) through the audio processing unit <NUM>. The controller <NUM> analyzes the input voice information, and recognizes the user's intention (e.g., changes the form of the closed curve <NUM> to be an ellipse shape). The controller <NUM> controls the closed curve <NUM> to be changed to an ellipse <NUM> and be displayed according to the user's intention (see <FIG>).

Referring to <FIG>, the controller <NUM> detects the movement of the pen <NUM> from the memo writing screen <NUM>. The controller <NUM> controls the line to be displayed according to the movement of the pen <NUM>. If the displayed line is the closed curve <NUM>, the controller <NUM> controls the color (e.g., blue) within the closed curve <NUM> to be displayed as illustrated in <FIG>. The controller <NUM> detects an input of the motion information from the sensor unit <NUM>. For example, if the user shakes the apparatus <NUM>, the sensor unit <NUM> generates corresponding motion information and transmits the generated information to the controller <NUM>. The controller <NUM> calculates the speed using the detected motion information. Further, if the calculated speed exceeds an already stored threshold, it is determined that the detected motion information is a user input that requests the form of the closed curve to be changed to an ellipse. According to the determination, the controller <NUM> controls the closed curve <NUM> to be changed to an ellipse and displayed (see <FIG>). Further, the element, property or characteristic for determining whether the detected motion information is a user input that requests a change of the form of the closed curve to an ellipse may include elements other than speed (e.g., moving direction, moving distance, etc.). Such elements may be set by the user in the environment setting.

<FIG> is a screen example for illustrating a method of processing multiple inputs according to another embodiment of the present invention. <FIG> assumes a situation in which a user draws a line on the touch screen <NUM>.

Referring to <FIG>, the controller <NUM> detects the movement of a handling means (e.g., a hand or a pen) from the touch screen <NUM>. The controller <NUM> controls the line to be displayed according to the movement of the detected handling means. The controller <NUM> may detect the system input (e.g., a vertical vibration) from the sensor unit <NUM>. The controller <NUM> calculates the speed from the system input, and if the calculated speed exceeds an already stored threshold, it is determined that the system input is a user's unintended input. According to the determination, the controller <NUM> determines the function performed for a time when the system input has been detected (e.g., line drawing) as a portion that requires correction, and corrects a portion that requires correction based on the function performed before and after the time when the system input was detected. For example, as illustrated in <FIG>, the controller <NUM> corrects the line crooked by the vertical vibration of the apparatus <NUM> to be corrected to be straight and displays the line as illustrated in <FIG>. Further, the element for determining whether the system input is a user's unintended input may include elements other than speed (e.g., moving direction, moving distance, etc.).

As described above, certain embodiments of the present invention provide methods and apparatus for processing simultaneously input multiple inputs. Here, the multiple inputs may be user inputs input through different user interfaces. Further, the multiple inputs may include a user input and a system input. Further, certain embodiments of the present invention provide methods and apparatus for correcting a function that does not reflect the user's intention. Further, certain embodiments of the present invention provide methods and apparatus for correcting a function performed according to the user's unintended system input.

As described above, according to certain embodiments of the present invention, a user may be provided an environment in which two or more input methods may be combined and used. Further, according to certain embodiments of the present invention, a user's intention may be recognized from voice information input from a microphone and the user's intention may be set to be accurately reflected on functions performed by another input.

It will be appreciated that embodiments of the present invention can be realized in the form of hardware, software or a combination of hardware and software. Any such software may be stored in the form of volatile or non-volatile storage such as, for example, a storage device like a ROM, whether erasable or rewritable or not, or in the form of memory such as, for example, RAM, memory chips, device or integrated circuits or on an optically or magnetically readable medium such as, for example, a CD, DVD, magnetic disk or magnetic tape or the like.

It will be appreciated that the storage devices and storage media are embodiments of machine-readable storage that are suitable for storing a program or programs comprising instructions that, when executed, implement embodiments of the present invention. Accordingly, embodiments provide a program comprising code for implementing apparatus or a method as claimed in any one of the claims of this specification and a machine-readable storage storing such a program. Still further, such programs may be conveyed electronically via any medium such as a communication signal carried over a wired or wireless connection and embodiments suitably encompass the same.

For example, the foregoing methods may be implemented in an executable program command form that is executable by various computer means, and may be recorded in a computer readable recording medium. In this case, the computer readable recording medium may include one or more program commands, data files, and/or data structures, either individually or a combination thereof. The program commands recorded in a recording medium may be specially designed or configured for embodiments of the present invention, or may be known to a person having ordinary skill in a computer software field. The computer readable recording medium may include Magnetic Media such as a hard disk, floppy disk, or magnetic tape, Optical Media such as a Compact Disc Read Only Memory (CD-ROM) or Digital Versatile Disc (DVD), Magneto-Optical Media such as a floptical disk, and a hardware device such as a ROM, RAM, and flash memory for storing executable program commands. Further, the program commands may include machine language code created by a compiler and/or high-level language code executable by a computer using an interpreter. The foregoing hardware device may be configured to be operated as at least one software module to perform one or more operations of embodiments the present invention.

Claim 1:
An electronic device (<NUM>) comprising:
a microphone (<NUM>);
a display (<NUM>); and
a processor (<NUM>), wherein the processor (<NUM>) is configured to:
receive a first user input,
control the display (<NUM>) to display a drawing corresponding to the first user input,
receive a voice input while the drawing is being displayed, the voice input being a voice input through the microphone (<NUM>), wherein the voice input is received from a starting point (t1) to a termination point (t2), and
change at least one attribute of at least a portion of the drawing based on a result of analyzing the voice input,
wherein the processor (<NUM>) is further configured to, in changing the at least one attribute of the at least a portion of the drawing based on the result of analyzing the voice input:
determine a user's intention by analyzing the voice input from the starting point (t1) to the termination point (t2) to identify one or more keywords indicating the at least one attribute to be changed,
detect the starting point (t1) of the voice input,
detect a time point (t3) when the user's intention is recognized and applied to the drawing input after the time point (t3),
determine the drawing input between the starting point (t1) and the time point (t3) as an edit-required portion, and
change the at least one attribute of the at least a portion of the drawing based on the determined edit-required portion.