WO2022164192A1 - 사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법 - Google Patents

사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법 Download PDF

Info

Publication number
WO2022164192A1
WO2022164192A1 PCT/KR2022/001371 KR2022001371W WO2022164192A1 WO 2022164192 A1 WO2022164192 A1 WO 2022164192A1 KR 2022001371 W KR2022001371 W KR 2022001371W WO 2022164192 A1 WO2022164192 A1 WO 2022164192A1
Authority
WO
WIPO (PCT)
Prior art keywords
history data
input
recommended
user
utterance
Prior art date
Application number
PCT/KR2022/001371
Other languages
English (en)
French (fr)
Inventor
김문조
이호정
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to EP22700278.9A priority Critical patent/EP4064279A4/en
Priority to US17/587,823 priority patent/US20220238107A1/en
Publication of WO2022164192A1 publication Critical patent/WO2022164192A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3325Reformulation based on results of preceding query
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3349Reuse of stored results of previous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/978Audio interaction as part of an operator interface

Definitions

  • the present disclosure relates to a device and method for providing a recommendation sentence related to a user's utterance input. More particularly, the present disclosure relates to a device and method for generating and providing a recommended utterance sentence related to a single utterance input by a user.
  • a user can receive various services through a device.
  • a user may input a voice (eg, utterance) into a device and receive a response according to the voice or utterance input.
  • a voice eg, utterance
  • An embodiment of the present disclosure may provide a device and method capable of providing a recommended utterance sentence related to a single uttered input of a user in consideration of an execution history of an application executed by a user.
  • an embodiment of the present disclosure provides a device for providing a recommended sentence related to a user's utterance input, which may provide a recommended uttered sentence supported by a voice assistant service in consideration of an execution history of an application executed by a user and methods may be provided.
  • One aspect of the present disclosure may include: receiving a user's speech input; determining whether the speech input is a single speech input; acquiring application history data related to the speech input from among application history data representing execution histories of one or more applications executed by the user in the device based on determining that the speech input is a single speech input; generating a recommended utterance sentence related to the utterance input by using the utterance input and the obtained application history data; determining whether the recommended utterance sentence is supported by the voice assistant service provided by the device; and outputting the recommended uttered sentence based on determining that the recommended uttered sentence is supported by the voice assistant service; You can provide a way to provide it.
  • a microphone for receiving a user's speech input; a memory storing one or more instructions; and a processor executing the one or more instructions, wherein the processor determines whether the utterance input is a single-uttered input by executing the one or more instructions, and based on determining that the uttered input is a single-spoken input , obtain application history data related to the speech input from among application history data representing execution histories of one or more applications executed by the user in the device, and using the speech input and the obtained application history data, the based on generating a recommended utterance sentence related to a utterance input, determining whether the recommended utterance sentence is supported by the voice assistant service provided by the device, and determining that the recommended utterance sentence is supported by the voice assistant service
  • another aspect of the present disclosure may provide a computer-readable recording medium in which a program for executing the method in a computer is recorded.
  • a device for providing a voice assistant service includes: a memory for storing one or more instructions; and a processor that executes one or more instructions to provide a recommended utterance sentence related to the user's utterance input, wherein the processor obtains the user's utterance input, determines whether the utterance input is a single uttered input, and performs a single uttered input Based on the speech input determined as By using the application history data, a recommended utterance sentence related to a utterance input may be generated, and the recommended utterance sentence may be controlled to be output.
  • FIG. 1 is a diagram illustrating an example in which a voice assistant service for a single speech input of a user is provided by a device 1000 according to an exemplary embodiment.
  • FIG. 2 is a block diagram of a device 1000 according to an exemplary embodiment.
  • FIG. 3 is a diagram illustrating an example in which application history data related to a single-shot input is generated according to an embodiment.
  • FIG. 4 is a diagram illustrating an example of a table of application history data of a user according to an embodiment.
  • FIG. 5 is a diagram illustrating an example of extracting application history data for a single utterance input that is a verb according to an embodiment.
  • FIG. 6 is a diagram illustrating an example of extracting application history data for a single speech input, which is a noun, according to an embodiment.
  • FIG. 7 is a diagram illustrating an example of generating a recommended utterance sentence in response to a single utterance input of a verb, according to an exemplary embodiment.
  • FIG. 8 is a diagram illustrating an example of generating a recommended utterance sentence in response to a single utterance input of a noun, according to an embodiment.
  • FIG. 9 is a diagram illustrating an example of searching for application history data related to a speech input using a service speech sentence according to an exemplary embodiment.
  • FIG. 10 is a diagram illustrating an example in which a recommended utterance sentence is generated when application history data is retrieved using a service utterance sentence of a voice assistant service, according to an embodiment.
  • FIG. 11 is a diagram illustrating an example in which application history data supported by a voice assistant service is generated according to an embodiment.
  • FIG. 12 is a flowchart of a method of providing, by the device 1000, a recommendation sentence related to a single speech input, according to an exemplary embodiment.
  • a single speech input is an input made by a short speech representing one term, and may be an input made by an speech consisting of one word or one phrase.
  • the single speech input may include, for example, an utterance composed of a noun, an utterance composed of a noun phrase, an utterance composed of a verb, or an utterance composed of a verb phrase.
  • the application history data may be data representing an execution history of an application executed in the device.
  • the application history data may include, for example, identification value or information of the application, the type of the application, the type of the action executed in the application, parameters related to the action executed in the application, the time when the action of the application is executed, the cumulative number of executions of the action It may include information about Also, the application history data indicating the execution history of the application executed by the user may be history data regarding the action executed by the application based on a user input input from the user into the device.
  • the service utterance sentence may be an utterance sentence received from a user for the voice assistant service and an utterance sentence provided to the user, and may be an utterance sentence related to an action supported by a device related to the voice assistant service and functions of other devices. .
  • a user may wish to utilize a function, operation, service, etc. provided by a user device (eg, a mobile phone or computing device), or a device connected to the user device (eg, a server).
  • a user device eg, a mobile phone or computing device
  • a device connected to the user device eg, a server
  • reference to a function may include reference to one or more of function(s), operation(s), service(s), and the like.
  • the user may provide user input to the user device.
  • the user input may be an audible input, such as a sound input (eg, including one or more sounds) or a vocal input (eg, including one or more words and/or one or more phrases).
  • a voice may include "utterance".
  • the present disclosure is not limited to audible input.
  • the user input may be a text input or any other suitable type of input.
  • a specific function may be defined by one or more items of “function information”.
  • the function information may include one of (i) the function to be performed, (ii) an application or service that can or should perform the function, (iii) a device that performs the function, and (iv) one or more parameters of the function. more can be defined.
  • the parameter may define the monetary amount of the transaction.
  • the parameter may define the destination of the data.
  • the function relates to an operation to be performed by a device, the parameter may specify the device to perform the operation on.
  • User input may be analyzed to determine specific elements of the user input.
  • Specific elements of user input may be referred to as “input elements” (eg, specific sounds, words, and/or phrases), and may correspond to items of function information defining a function. For example, if the user input is "send”, “$100", “to Mom”, and “using Samsung pay” one or more of the words or phrases (input elements) Each of these words or phrases (input elements) corresponds to a functional information item that defines a function.
  • the type of functional information item corresponding to each input element may be determined as part of the analysis. For example, an input element in the form of a verb (eg, “send”) may be determined to correspond to a function information item defining a function to be performed. An input element including a monetary symbol (eg, “$”) may be determined to correspond to a functional information item defining a monetary amount. An input element of the form "to [noun]” (eg, "to Mom”) may be determined to correspond to an item of the functional information item defining the destination. An input element including a recognized service (eg, Samsung Pay (“Samsung Pay”)) may be determined to correspond to a function information item for designating a service that can or should perform a corresponding function.
  • a recognized service eg, Samsung Pay (“Samsung Pay”)
  • Variants and/or synonyms may be considered when analyzing user input. For example, the words “send”, “transmit” and “transfer” may each be determined to correspond to the same "send” function.
  • user input includes one or more “input elements”, whereas a function is defined as one or more items of “function information”.
  • the input element may be mapped to a function information item based on the analysis of the user input to determine a specific function corresponding to the user input.
  • user input may contain enough information to fully define the function to be performed. For example, when an input element derived from a user input is mapped to a function information item, a specific function may be defined such that the function information item can perform a function together. In this case, user input can be considered as a clearly defined function. An example might be a user input "send $100 to Mom using Samsung Pay".
  • the user input may contain insufficient information to fully define the function to be performed.
  • the function corresponding to the user input may be somewhat ambiguous.
  • user input may correspond to more than one possible alternative function.
  • Various examples include "Send $100 to Mom”, “Send $100 to Mom”, “Send $100 to Samsung Pay", "Send $100" or "Send”.
  • Certain examples of the present disclosure may determine possible candidates for missing items of functional information. For example, given a user input of "send $100 using Samsung Pay", possible candidates for missing feature information are “To Mom”, “To Dad", “To Avi", etc. this can be For example, given a user input of "send to mom with Samsung Pay", possible candidates for the missing item of functional information could be "$50", "$100", "$200", and so on.
  • a possible candidate may be determined for each missing item.
  • a candidate for a possible combination of missing items of functional information may be determined, such as "$100 for Mom", “$50 for Dad", “$200 for Avi", and the like.
  • a candidate for one or more “enhanced” or “enhanced” input may be determined by supplementing the original user input with one or more candidate items of functional information, or a combination of items, as missing items. For example, given a user input "send using Samsung Pay", an example of a candidate augmented input could be "send $100 to Mom using Samsung Pay” .
  • Specific examples of the present disclosure may output two or more of the candidate items of function information (eg, visually through a display or audibly through a speaker). For example, a list of candidate items may be displayed for each missing item of the function information. The user may then select one or more of the candidate items, and the selected items may be used to supplement the original user input to generate augmented input.
  • certain examples of this disclosure may output (eg, in the form of a list) two or more candidate augmentation inputs determined according to the previous paragraph. The user can then select a candidate augmentation input. In either case, the function can be performed using the resulting augmented input.
  • certain examples of this disclosure allow one or more missing items of functional information to be completed by determining one or more candidates for the missing items (or combinations of items). .
  • the user can select a candidate.
  • unambiguous inputs can be used to perform functions.
  • Candidates for missing items or combinations of items of functional information may be determined using any suitable technique.
  • candidates may be determined based on a history of previously performed functions. For example, when functions are performed, items of function information corresponding to each performed functions are recorded. When an ambiguous user input is provided, items of functional information that are mapped to input elements generated based on user input (hereinafter referred to as “current items” of functional information as opposed to “missing items” of functional information) are The stored information is compared, and candidates for missing items of the functional information are determined based on the comparison.
  • candidates for missing items of function information may be determined as items that occur relatively frequently in combination with current items of function information in a recorded history. For example, in the recorded history, if “to Mom” and “$100” appear relatively frequently along with “send using Samsung Pay”, “to Mom” )” and "$100” may be determined as candidates. Accordingly, a candidate augmented input of “send $100 to Mom using Samsung Pay” may be determined based on the user input of “send to Samsung Pay”.
  • function information items corresponding to each previously performed function may be stored.
  • a set of function information items corresponding to a particular previously performed function may be stored as a record in the corresponding particular entry or table.
  • one or more table items may be selected based on items of function information obtained from the user input, and one or more corresponding candidates for enhanced input may be determined based on the selected table items. .
  • the function information item corresponding to the current user input may be referred to as a "current item", for example, the function information item corresponding to the previously performed function recorded in the corresponding entry in the table is the "previous item"
  • one or more table entries including a previous item may be selected based on one or more current items. For example, table entries containing one or more previous items matching one or more current items may be selected. In some cases, only table entries containing previous entries that match all current entries may be selected. If no such table entries exist, the table entries containing the highest number of previous items matching the one or more current items may be selected.
  • table entries may be ranked based on one or more factors.
  • One factor may be based on how many previous items match the current item. For example, table entries containing a greater number of previous entries matching the current entry may be ranked relatively higher.
  • Another factor may be based on how recently the function was performed. For example, table entries corresponding to the most recently performed function may have a relatively higher rank.
  • Another factor may be based on how often the function was performed. For example, table entries corresponding to functions performed more frequently may have a relatively higher rank.
  • Another factor may be based on the correspondence between the provided ambiguous user input and the function eventually performed according to the ambiguous user input. For example, if certain ambiguous user input is provided and a certain fully defined function is selected to be performed as a result of the techniques described herein, then the table entry corresponding to the performed function may contain information specifying the ambiguous user input (e.g., a user (incomplete) item function information corresponding to the input). Then, when the same ambiguous user input is provided again, table entries including information specifying the ambiguous user input may have a relatively higher rank.
  • one or more of the highest ranking table entries may be selected as one or more corresponding candidates for enhanced input.
  • An embodiment of the present disclosure provides a method for determining a user input modified to perform a function, the method comprising: receiving the user input; analyzing the user input to determine one or more input elements from the user input; determining one or more first items of functional information corresponding to the one or more input elements; determining one or more second items of function information; and determining one or more modified user inputs based on the first and second items of function information, wherein the one or more second items of function information include the one or more first items of function information and a previously performed function. It is determined based on pre-stored information including function information items corresponding to the .
  • the user input includes a voice input.
  • the input element includes one or more words and/or one or more phrases.
  • parsing the user input includes parsing the user input.
  • function information is information that at least partially defines a function (e.g., (i) a function to perform, (ii) an application or service that can or must perform a function, (iii) a function that performs a function. device; (iv) information defining one or more of the one or more parameters of the function).
  • a function e.g., (i) a function to perform, (ii) an application or service that can or must perform a function, (iii) a function that performs a function. device; (iv) information defining one or more of the one or more parameters of the function).
  • the method includes outputting (eg, displaying) one or more modified user inputs; and receiving a user input for selecting one of the output one or more user inputs.
  • the method further includes determining one or more functions corresponding to the one or more modified user inputs.
  • the method may include determining whether a function corresponding to the modified user input is supported.
  • An embodiment of the present disclosure provides a method in which a device providing a voice assistant service provides a recommended utterance sentence related to a user's utterance input, the method comprising: receiving the user's utterance input; acquiring application history data related to a speech input from among application history data representing an execution history of an application executed by a user in a device; and generating a recommended utterance sentence related to the utterance input by using the utterance input and the acquired application history data.
  • the method can further include determining whether the utterance input is a single utterance input.
  • obtaining the application history data may include obtaining the application history data when the speech input is a single speech input.
  • the method may further include determining whether the recommended spoken sentence is supported by a voice assistant service provided by the device.
  • the method may further include displaying the recommended uttered sentence on a screen of the device.
  • the operation of displaying the recommended utterance sentence may include the operation of displaying the recommended utterance sentence when the recommended utterance sentence is supported by the voice assistant service.
  • the utterance input and the recommended utterance sentence may alternatively include equivalent text input and the recommended utterance sentence.
  • FIG. 1 is a diagram illustrating an example in which a voice assistant service for a single speech input of a user is provided by a device 1000 according to an exemplary embodiment.
  • the device 1000 may provide a voice assistant service to the user by generating and providing a recommended utterance sentence related to the user's single utterance input.
  • the device 1000 may receive the user's speech input, determine whether the received speech input is a single speech input, and when the user's speech input is a single speech input, the device 1000 may display the user's application usage history By using , a recommended utterance sentence related to the user's single utterance input may be generated.
  • the device 1000 may search for application history data related to a single speech input from among the user's application history data by using a word included in the single speech input, and support by the voice assistant service using the searched application history data A recommended utterance sentence to be used may be provided to the user.
  • FIG. 2 is a block diagram of a device 1000 according to an exemplary embodiment.
  • a device 1000 includes a user input unit 1100 (eg, a user input device or interface), a display unit 1200 , a microphone 1300 , a speaker 1400 , and communication. It may include an interface 1500 , a storage unit 1600 , and a processor 1700 .
  • a user input unit 1100 eg, a user input device or interface
  • a display unit 1200 e.g., a liquid crystal display
  • microphone 1300 e.g., a microphone 1300
  • speaker 1400 e.g., a speaker 1400 , and communication. It may include an interface 1500 , a storage unit 1600 , and a processor 1700 .
  • the user input unit 1100 means a means for a user to input data for controlling the device 1000 .
  • the user input unit 1100 may include a key pad, a dome switch, and a touch pad (contact capacitive method, pressure resistance film method, infrared sensing method, surface ultrasonic conduction method, integral type). a tension measurement method, a piezo effect method, etc.), a jog wheel, or a jog switch, but is not limited thereto.
  • the user input unit 1100 may receive a user input for determining a speech sentence corresponding to the user's speech input.
  • the display 1200 displays information processed by the device 1000 .
  • the display unit 1200 may display a GUI for providing information for providing a voice assistant service to a user.
  • the display unit 1200 may be used as an input device in addition to an output device.
  • the display unit 1200 includes a liquid crystal display, a thin film transistor-liquid crystal display, an organic light-emitting diode, a flexible display, a three-dimensional display ( 3D display) and electrophoretic display (electrophoretic display) may include at least one.
  • the device 1000 may include two or more display units 1200 .
  • the microphone 1300 receives an external sound signal and processes it as electrical voice data.
  • the microphone 1300 may receive a user's utterance input for the voice assistant service.
  • the speaker 1400 outputs audio data received from the communication interface 1500 or stored in the storage unit 1600 .
  • the speaker 1400 may output a sound of a response message of the voice assistant service.
  • Communication interface 1500 may include one or more components that allow communication with other devices) and/or servers.
  • the communication interface 1500 may include a short-range communication unit, a mobile communication unit, and a broadcast receiving unit.
  • Short-range wireless communication unit 151 Bluetooth communication unit, BLE (Bluetooth Low Energy) communication unit, short-range wireless communication unit (Near Field Communication unit), WLAN (Wi-Fi) communication unit, Zigbee (Zigbee) communication unit, infrared ( It may include an IrDA, infrared Data Association) communication unit, a Wi-Fi Direct (WFD) communication unit, an ultra wideband (UWB) communication unit, an Ant+ communication unit, and the like, but is not limited thereto.
  • WFD Wi-Fi Direct
  • UWB ultra wideband
  • the mobile communication unit transmits/receives a radio signal to and from at least one of a base station, an external terminal, and a server on a mobile communication network.
  • the wireless signal may include various types of data according to transmission/reception of a voice call signal, a video call signal, or a text/multimedia message.
  • the broadcast receiver receives a broadcast signal and/or broadcast-related information from the outside through a broadcast channel.
  • the broadcast channel may include a satellite channel and a terrestrial channel.
  • the communication interface 1500 may transmit/receive information for providing a voice assistant service with an external device (not shown) and a server (not shown).
  • the storage unit 1600 may store a program to be executed by the processor 1700 , which will be described later, and may store data input to or output from the device 1000 .
  • the storage unit 1600 includes a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg, SD or XD memory, etc.), RAM (Random Access Memory) SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, magnetic It may include at least one type of storage medium among a disk and an optical disk.
  • a flash memory type e.g, a hard disk type, a multimedia card micro type, a card type memory (eg, SD or XD memory, etc.), RAM (Random Access Memory) SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, magnetic It may include at least one type of storage medium among a disk and an optical disk.
  • Programs stored in the storage unit 1600 may be classified into a plurality of modules according to their functions.
  • a single speech input processing module 1610, a voice assistant module 1620, and a DB 1630 may be included.
  • the single utterance input processing module 1610 includes a single utterance input determination module 1611 , an application history data generation module 1612 , an application history data extraction module 1613 , a recommended utterance sentence generation module 1614 , and a recommended utterance sentence evaluation module 1615 and a recommended utterance sentence display module 1616 .
  • the voice assistant module 1620 may include an NLU model 1621 , a response information generation module 1622 , and an NLG model 1623 .
  • the DB 1630 may include an application history data DB 1631 , an utterance history data DB 1632 , a word DB 1633 , and a function DB 1634 .
  • the processor 1700 controls the overall operation of the device 1000 .
  • the processor 1700 executes programs (eg, modules) stored in the storage unit 1600 , so that the user input unit 1100 , the display unit 1200 , the microphone 1300 , the speaker ( 1400 ), the communication interface 1500 , the storage unit 1600 , and the like can be generally controlled.
  • programs eg, modules
  • the processor 1700 executes the single speech input processing module 1610 stored in the storage unit 1600 to determine that the user's speech input is a single speech input, and a recommended speech sentence related to the single speech input. can be created and provided.
  • the single utterance input processing module 1610 includes a single utterance input determination module 1611 , an application history data generation module 1612 , an application history data extraction module 1613 , a recommended utterance sentence generation module 1614 , and a recommended utterance sentence evaluation module 1615 and a recommended utterance sentence display module 1616 .
  • the processor 1700 may determine whether the user's speech input is a single speech input by executing the single speech input determination module 1611 .
  • the single speech input is an input by a short utterance indicating one term, and may be an input by an utterance consisting of one word or one phrase, for example, an utterance consisting of a noun, an utterance consisting of a noun phrase, and a verb It may include an utterance consisting of , or an utterance consisting of a verb phrase.
  • the single speech input determination module 1611 is a preset part-of-speech corresponding to the term indicated by the user's speech input, and when the length of the term represented by the user's speech input is less than or equal to a preset threshold, inputting the user's speech input as a single speech input can be judged as For example, the single speech input determination module 1611 may determine whether the part-of-speech of the term corresponding to the user's speech input is a noun, a verb, a noun phrase, or a verb phrase using a POS Tagger (Part Of Speech Tagger). have.
  • POS Tagger Part Of Speech Tagger
  • the length of the term corresponding to the single utterance input may be preset, and the single utterance input determination module 1611 may set the length of the term corresponding to the user's utterance input to a preset length (eg, It may be determined whether the number is smaller than a preset number of words and/or a preset number of syllables).
  • a preset length eg, It may be determined whether the number is smaller than a preset number of words and/or a preset number of syllables.
  • the processor 1700 may generate or obtain application history data indicating an execution history of an application executed by a user by executing the application history data generation module 1612 .
  • the application history data may be data representing an execution history of an application executed in the device 1000 .
  • Application history data for example, the identification value of the application, the type of the application, the type of the action executed in the application, parameters related to the action executed in the application, the time when the action of the application is executed, the cumulative number of execution of the action, etc. may contain information.
  • the application history data may include information about an execution history of an application executed by a user input in the device 1000 independently of or independently of the voice assistant service or through only the voice assistant service.
  • the application history data may be generated in advance before the device 1000 receives a single shot input and stored in the storage unit 1600 .
  • the processor 1700 may generate application history data of the user by collecting application history data related to terms having a specific part-of-speech.
  • the processor 1700 generates, for example, application history data related to a verb or a verb phrase, based on the intent of the application, the use history of a specific function of the application, the selection history of a specific button of the GUI of the application, etc. can do.
  • the processor 1700 for example, as application history data related to a noun or noun phrase, the user based on the usage history of the application having the name of the noun or noun phrase, the history related to the user operation using the noun or noun phrase as a keyword, etc. of application history data can be created.
  • the processor 1700 may store application history data supported by the voice assistant service in the storage unit 1600 .
  • the processor 1700 may generate query sentences in advance from service utterance sentences used by the voice assistant service, and may match and store the query sentences and service utterance sentences.
  • the service utterance sentence may be an utterance sentence received from a user for the voice assistant service and an utterance sentence provided to the user, and relates to an action supported by a function of the device 1000 and/or another device related to the voice assistant service. It may be an utterance sentence.
  • the processor 1700 may compare the generated application history data with a query sentence generated from the service utterance sentence, select the application history data determined to be supported by the voice assistant service, and store it in the storage unit 1600 . In addition, when storing application history data supported by the voice assistant service, the processor 1700 may convert and store a query statement corresponding to the application history data into the form of a query statement generated from the service utterance statement.
  • the processor 1700 may extract application history data related to a user's speech input from among the application history data stored in the storage 1600 by executing the application history data extraction module 1613 .
  • the application history data stored in the storage 1600 may include, for example, application history data generated by the device 1000 or another device, and application history data generated by a server.
  • the processor 1700 is configured to generate a recommended speech sentence for the user's speech input from among the application history data stored in the storage unit 1600 to the user's speech input. Relevant application history data can be searched and extracted.
  • the processor 1700 may generate a search query for searching application history data related to the user's utterance input. For example, when the user's utterance input is a single utterance input of a verb or verb phrase, the processor 1700 may generate a search query for searching for an action executed by an application in the device 1000 . In this case, when the word corresponding to the user's utterance input is "send", the processor 1700 may generate "Action/send" as a search query to search for an action in the application history data.
  • the processor 1700 may generate a search query for retrieving the name of the application and a parameter related to an action executed in the application.
  • the processor 1700 performs "App/TV” for retrieving the application name in the application history data, and the application in the application history data. You can create "Para/TV" as a search query to search for parameters related to the action of .
  • the processor 1700 may extract words similar to the inputted word from the similar word DB 1633 , and may generate a search query using the inputted word and the extracted similar word.
  • a search query may be generated using service utterance sentences provided by the voice assistant service.
  • the processor 1700 may obtain a service utterance sentence related to the uttered input word.
  • the processor 1700 obtains, for example, a service utterance sentence related to the utterance input using a machine learning-based classification algorithm, or a word having a similar Term Frequency - Inverse Document Frequency (TF-IDF) to the utterance input. It is possible to obtain a service utterance sentence including
  • the processor 1700 may generate a query sentence for retrieving application history data from a service utterance sentence related to a utterance input.
  • the generated query statement may be generated to have the format of application history data.
  • the processor 1700 may search for application history data related to the user's utterance input using the generated search query.
  • the processor 1700 may search for history data in which a value corresponding to “Action” is “send” from among the application history data.
  • the processor 1700 may process, among the application history data, history data in which a value corresponding to “App” is “TV”, and “Para”. " You can search for historical data including "TV” among the values.
  • the processor 1700 may filter and select history data executed above a predetermined threshold from among the searched history data.
  • the processor 1700 may generate a recommended utterance sentence related to the user's utterance input by executing the recommended utterance sentence generation module 1614 .
  • the processor 1700 may determine a word for (eg, necessary to generate) a recommended speech sentence in addition to the speech input word.
  • a word for generating a recommended speech sentence other than the speech input word may be, for example, a word of a part-of-speech different from the speech input word.
  • the processor 1700 may analyze application history data related to the spoken word and select a word for generating a recommended spoken sentence.
  • the processor 1700 selects "gallery application” and "photo”, which are words of other parts of speech and parts of speech of "send", from application history data related to "send”. Words for generating a recommended utterance sentence may be selected. Also, for example, when the uttered input word is “send”, the processor 1700 may generate the words “Samsung Pay” and “Money " may be selected as words for generating a recommended utterance sentence.
  • the processor 1700 may generate a recommended utterance sentence by combining the uttered input word and/or the word determined from the application history data. For example, the processor 1700 combines the utterance input word “send” with the words “gallery application” and “photo” determined from the application history data, and a recommended utterance sentence “send a picture from the gallery application.” can create As another example, the processor 1700 combines the input word “send” with “Samsung Pay” and “money”, which are words determined from the application history data, and a recommended utterance sentence “send money with Samsung Pay” can create
  • the processor 1700 may generate a recommended utterance sentence by using the service utterance sentence and the application history data.
  • the processor 1700 may generate a recommended utterance sentence by changing the value of the entity included in the query sentence generated from the service utterance sentence to the value of the entity in the application history data.
  • the query statement generated from the service speech sentence is " ⁇ App: Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ & ⁇ to: Person ⁇ ”
  • the query statement generated from the history data retrieved from the application history data is If the sentence data is " ⁇ App:Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ & ⁇ to: Person ⁇ - ⁇ value:mom ⁇ ”
  • the processor 1700 is an entity in the service utterance sentence " A value corresponding to ⁇ to: Person ⁇ ” may be determined as " ⁇ value: mother ⁇ ".
  • the processor 1700 uses " ⁇ App:Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ & ⁇ to: Person ⁇ - ⁇ value: mom ⁇ " generated by modifying the query sentence in the service utterance sentence. It can be used to generate a recommended utterance sentence "Send a text message to mom".
  • the processor 1700 may modify the recommended utterance sentence by using a new function supported by the voice assistant service.
  • the processor 1700 may modify the generated recommended utterance sentence in consideration of at least one of a function of an application that is not frequently used by the user or a new function of the application.
  • the processor 1700 identifies a function related to the user's speech input from the application history data related to the user's speech input, and when there is a new function of the application related to the identified function, a recommended speech based on the new function You can also create sentences.
  • the processor 1700 may modify the recommended utterance sentence to generate "Send a text to the KakaoTalk application.” Also, the processor 1700 may, for example, modify the recommended utterance sentence of “transfer money with Samsung Pay” to “transfer money with Kakao Pay”.
  • the processor 1700 may determine whether the recommended utterance sentence is supported by the voice assistant service by executing the recommended utterance sentence evaluation module 1615 .
  • the processor 1700 may identify whether a function corresponding to the recommended utterance sentence is executed by the device 1000 or another device related to the voice assistant service. To this end, the processor 1700 may determine whether the recommended utterance sentences are supported by the voice assistant service by comparing the service utterance sentences provided by the voice assistant service with the recommended utterance sentences.
  • the processor 1700 may select a service utterance sentence related to a recommended utterance sentence from among service utterance sentences provided by the voice assistant service.
  • the processor 1700 may calculate the similarity between the selected service utterance sentence and the recommended utterance sentence, and when the calculated similarity is greater than a preset threshold value, the processor 1700 may determine that the recommended utterance sentence is supported by the voice assistant service. For example, the processor 1700 may calculate a similarity between a recommended utterance sentence and a service utterance sentence by using a cosine similarity technique based on Term Frequency - Inverse Document Frequency (TF-IDF).
  • TF-IDF Term Frequency - Inverse Document Frequency
  • the processor 1700 may select a recommended utterance sentence to be provided to the user from among the plurality of recommended utterance sentences based on the similarity. For example, the processor may select a recommended utterance sentence (or a predetermined number of recommended utterance sentences) having the highest similarity among a plurality of recommended utterance sentences.
  • the processor 1700 may display the recommended utterance sentence on the display unit 1200 of the device 1000 by executing the recommended utterance sentence display module 1616 .
  • the processor 1700 may display a predetermined GUI including a recommended utterance sentence supported by the voice assistant service on the display unit 1200 and receive a user's feedback input.
  • the processor 1700 may modify the recommended utterance sentence according to the user's feedback input.
  • the processor 1700 may display a GUI for correcting the recommended uttered sentence on the display unit 1200 and correct the recommended uttered sentence according to a user input through the displayed GUI.
  • the processor 1700 may receive the user's utterance for correcting the recommended utterance sentence, and may modify the recommended uttered sentence based on the user's utterance.
  • the processor 1700 may execute a function of the voice assistant service corresponding to the recommended spoken sentence. If the recommended utterance sentence is modified by the user, the processor 1700 may perform a function of a voice assistant service corresponding to the modified recommended uttered sentence.
  • the processor 1700 may provide a voice assistant service to a user by executing the voice assistant module 1620 .
  • the voice assistant module 1620 may interpret a user input for the voice assistant service and generate response information to the user input.
  • the voice assistant module 1620 may include an NLU model 1621 , a response information generation module 1622 , and an NLG model 1623 .
  • the processor 1700 may interpret a sentence generated from the user's utterance input or a recommended utterance sentence related to the user's single utterance input by executing the NLU model 1621 .
  • the NLU model 1621 may interpret the text corresponding to the user input and output intents and parameters related to the user's intention.
  • the intent is information determined by interpreting text using the NLU model 1621, and may represent, for example, a user's intention.
  • the intent may include not only intention information indicating the intention of the user, but also a numerical value corresponding to the information indicating the intention of the user.
  • the numerical value may represent a probability that the text is associated with information indicating a particular intent.
  • the intention information having the largest numerical value corresponding to each intention information may be determined as the intent.
  • the parameter may indicate detailed information related to the intent.
  • a parameter is information related to an intent, and a plurality of types of parameters may correspond to one intent.
  • the processor 1700 may generate response information for the text based on the analysis result of the text by executing the response information generation module 1622 .
  • the response information is data related to a response to a text, and may include, for example, data for a response operation of the device 1000 and data provided to other devices and/or servers.
  • the response information generating module 1622 may plan actions of the device 1000 and other devices according to the user's intention based on the output value of the NLU model 1621 . For example, the response information generating module 1622 plans actions of the device 1000 and/or other devices according to the user's intention by using the text analysis result, the speech data and the action data stored in the DB 1630 . can do.
  • the response information generation module 1622 may generate response information for text corresponding to a user input by planning actions of the device 1000 and/or other devices according to the user's intention. For example, the response information generating module 1622 may generate a response message according to the user's intention by using the NLG model 1623 . Also, for example, the response information generating module 1622 may acquire response content to be provided to the user, such as text, an image, and a video. Also, for example, the response information generating module 1622 may determine operations of the user's device 1000 and/or other devices and generate a control command for controlling the device 1000 and/or other devices. have.
  • the DB 1630 may include an application history data DB 1631 , an utterance history data DB 1632 , a word DB 1633 , and a function DB 1634 .
  • the application history data 1631 may store application history data related to an execution history of an application executed in the device 1000 .
  • the utterance history data DB 1632 may store utterance sentences received from the user and utterance sentences provided to the user for the voice assistant service.
  • the word DB 1633 may store information about words and similar words.
  • the function DB 1634 may store information about a function of the device 1000 and/or a function of another device.
  • the function DB 1634 may be updated by adding information about a new function of the device 1000 and a new function of another device (not shown).
  • the device 1000 may provide a recommended utterance sentence to the user by interworking or communicating with the server.
  • the device 1000 may request a recommended utterance sentence related to the user's single utterance input from the server, and the server performs at least some of the operations for generating the recommended utterance sentence by the device 1000 described herein. can do.
  • the server may perform at least some of operations for the device 1000 described herein to generate and manage application history data.
  • the storage unit of the server stores at least some of the instructions stored in the storage unit 1610 of the device 1000 shown in FIG. 2 , and the processor of the server executes the instructions stored in the storage unit of the server, thereby recommending utterance.
  • An operation for generating a sentence and an operation for generating and managing application history data may be performed.
  • the device 1000 provides the text of the single speech input to the server, and the server obtains application history data related to the user's single speech input based on the text of the single speech input received from the device 1000 . can do.
  • the server may search for application history data related to the user's single-shot input from among the user's application history data previously stored in the storage unit of the server.
  • the application history data stored in the storage unit of the server may include, for example, data indicating the execution history of the application executed in the user's device 1000 and data indicating the execution history of the application executed in the user's other device.
  • the application history data stored in the server may include, for example, at least one of history data generated by the device 1000 , history data generated by another device, or history data generated by the server. Also, the server may generate a recommended uttered sentence related to the user's single uttered input using application history data related to the single uttered input, and determine whether the generated recommended uttered sentence is supported by the voice assistant service. The server may determine whether an operation related to a recommended utterance sentence is supported by the device 1000 and other devices of the user registered in the voice assistant service. Also, the server may provide the recommended utterance sentence supported by the voice assistant service to the device 1000 through the communication interface of the server.
  • FIG. 3 is a diagram illustrating an example in which application history data related to a single-shot input is generated according to an embodiment of the present disclosure.
  • application history data of a user related to a single speech input may be generated.
  • the device 1000 may generate a user's application history data by collecting a preset type of user history according to the type of single-shot input. For example, when the type of the single speech input is a verb, the device 1000 may collect and analyze the activity of the user's application, a specific function of the application, an intent within the application, and the like. For example, in order to generate application history data of the user related to the verb “send”, the device 1000 may collect and analyze the user history related to the verb by executing the application history data generation module 1612 . .
  • the device 1000 collects the intent usage history (eg, ACTION_SEND / ACTION_SENDTO) in the application executed by the user, and collects the usage history of the sharing function executed in the device 1000 (eg, the use history of the ShareVia function) and , a history of using a GUI related to data transmission of the device 1000 may be collected. Also, the device 1000 may generate application history data of the user related to the verb “send” by analyzing the collected data.
  • the intent usage history eg, ACTION_SEND / ACTION_SENDTO
  • the usage history of the sharing function executed in the device 1000 eg, the use history of the ShareVia function
  • the device 1000 may generate application history data of the user related to the verb “send” by analyzing the collected data.
  • the device 1000 may collect and analyze a history in which the noun keyword is used in an application, a device name, an application name, a content name, and the like. For example, in order to generate application history data of a user related to the noun "TV", the device 1000 may collect and analyze the user history related to the noun by executing the application history data generation module 1612. . In this case, the device 1000 may collect a history of the user using the television, a history of the user performing a knowledge search using the keyword TV, and a history of the user using the television application. The device 1000 may generate application history data of a user related to the noun “television” by analyzing the collected data.
  • the application history data collected by the device 1000 may be history data related to applications executed in the device 1000 and/or one or more other devices, and the types of user histories collected according to the type of single-shot input may vary. can be set.
  • the device 1000 may generate user's application history data related to various terms in advance and store it in the DB 1630 .
  • FIG. 4 is a diagram illustrating an example of a table of user application history data according to an embodiment of the present disclosure.
  • a table of application history data of a user is an App field 40 , an Action field 41 , a Parameter field 42 , a Time field 43 , and a Count field 44 . ) may be included.
  • an identification value of an application executed by a user may be recorded.
  • Message For example, in the App field 40 , Message, SamsungPay, ShareVia, Internet, Smartthings, etc. may be recorded.
  • An action of an application executed by a user may be recorded in the Action field 41 .
  • a value for identifying an action such as Send, Search, Up, and Off may be recorded in the Action field 41 .
  • Parameter field 42 detailed information regarding an action of an application executed by a user may be recorded. For example, in the Parameter field 42, ⁇ what: Text, to: Mom ⁇ is recorded in connection with Send of the Message application, and ⁇ what: Money, to: Dad ⁇ is recorded in connection with Send of the SamsungPay application. can
  • execution time of the action of the application may be recorded in the Time field 43
  • cumulative execution number of the action of the application may be recorded in the Count field 44 .
  • FIG. 5 is a diagram illustrating an example of extracting application history data for a single utterance input that is a verb according to an embodiment of the present disclosure.
  • the device 1000 determines whether the input of “send” is a single shot input by executing the single shot input determination module 1611 . can do.
  • the single speech input determination module 1611 uses Pos Tagger (50) and VerbNoun Detector (51) to determine whether the input "send” is a single speech input of a verb or noun, and the length of the input "send” is long It may be determined 52 whether it is less than or equal to a set value.
  • the device 1000 may extract application history data related to a single input of “send” from the DB 1630 by executing the application history data extraction module 1612 .
  • the application history data extraction module 1612 may generate a search query (Send/Action) for retrieving application history data related to “send” by using the Log Converter 53 .
  • the application history data extraction module 1612 may search the application history data table for the application history data 55 having a value of the Action field that is Send by performing log filtering 54 using the generated search query. .
  • the application history data extraction module 1612 may evaluate the searched application history data 55 in order to extract data related to a recently and/or frequently executed operation from among the searched application history data 55 (56).
  • the application history data extraction module 1612 may use various criteria to evaluate the searched application history data 55, and based on the evaluation score 57, historical data 58 about Message and historical data about ShareVia ( 59) can be selected.
  • the history data 58 about Message and the history data 59 about ShareVia may be used to generate a recommended utterance sentence for an utterance input of “send”.
  • FIG. 6 is a diagram illustrating an example of extracting application history data for a single speech input that is a noun according to an embodiment of the present disclosure.
  • the device 1000 determines whether the input “television” is a single-shot input by executing the single-shot input determination module 1611 . can do.
  • the single speech input determination module 1611 uses the POS Tagger 60 and the VerbNoun Detector 61 to determine whether the input "television” is a single speech input of a verb or a noun, and the length of the input "television” is long. It may be determined (62) whether it is less than or equal to a set value.
  • the device 1000 may extract application history data related to a single speech input of “television” from the DB 1630 .
  • the application history data extraction module 1612 may generate a search query (TV/App, TV/Parameter) for searching application history data related to “TV” by using the Log Converter 63 .
  • the application history data extraction module 1612 performs log filtering 64 using the generated search query, whereby the application history data 65 in which TV is included in the value of the App field, which is TV, or TV is included in the value of the Parameter field, 65 ) can be retrieved from the application history data table.
  • the application history data extraction module 1612 may evaluate the searched application history data 65 in order to extract data regarding a recently executed operation from among the searched application history data 65 ( 66 ).
  • the application history data extraction module 1612 may use various criteria to evaluate the retrieved application history data 65 , and may select historical data 68 about SmartThings based on the evaluation score 67 .
  • the historical data 68 about SmartThings may be used to generate a recommended utterance sentence for an utterance input of “television”.
  • FIG. 7 is a diagram illustrating an example of generating a recommended utterance sentence in response to a single utterance input of a verb, according to an embodiment of the present disclosure.
  • the device 1000 may generate a recommended utterance sentence related to “send” which is a single utterance input by executing the recommended utterance sentence generation module 1614 .
  • the recommended utterance sentence generating module 1614 may extract application history data related to the part-of-speech other than the part-of-speech of the single utterance input from the application history data DB 1631 .
  • the recommended utterance sentence generation module 1614 may extract application history data related to a verb that is a part-of-speech of "send” and a noun that is another part-of-speech from the application history data DB 1631 .
  • the recommended utterance sentence generation module 1614 uses the application history data selected by the application history data generation module 1612 in relation to “send” to generate application history data including a noun related to “send”. It can be extracted from the application history data DB (1631).
  • the recommended utterance sentence generation module 1614 may determine words to be included in the recommended utterance sentence by using the application history data related to the noun and the single utterance input “send”. In this case, a word to be included in the recommended utterance sentence may be determined as a word to be included in the recommended uttered sentence, and the type and number of words to be included in the recommended uttered sentence may be determined according to various criteria. For example, the recommended utterance sentence generation module 1614 may determine the utterance input (verb), App name (noun), and Content (noun) as types of words to be included in the recommended utterance sentence.
  • the recommended utterance sentence generation module 1614 may determine words corresponding to the determined types of words, respectively, and generate a recommended utterance sentence including the determined words. For example, the recommended utterance sentence generation module 1614 may use application history data related to “send” to determine a word corresponding to the determined types of words, and a photo (Content) related to “send” Send (input utterance)." can be generated as a recommended utterance sentence.
  • the recommended utterance sentence generation module 1614 may generate the recommended utterance sentence by using a preset template for generating the uttered sentence.
  • a template for generating an utterance sentence may be set differently according to items included in the application history data. For example, a template corresponding to a combination of an APP name, an Action, and a parameter in the application history data may be stored in advance.
  • the recommended utterance sentence evaluation module 1615 may calculate a similarity between the service utterance sentence and the recommended utterance sentence by comparing the service utterance sentence with the recommended utterance sentence.
  • the recommended utterance sentence evaluation module 1615 may calculate the similarity between the service utterance sentence and the recommended utterance sentence using, for example, a TF-IDF-based cosine similarity technique.
  • the recommended utterance sentence evaluation module 1615 may determine whether to provide the recommended utterance sentence to the user based on the calculated similarity.
  • FIG. 8 is a diagram illustrating an example of generating a recommended utterance sentence in response to a single utterance input of a noun, according to an embodiment of the present disclosure.
  • the device 1000 may generate a recommended utterance sentence related to a single utterance input “TV” by executing the recommended utterance sentence generation module 1614 .
  • the recommended utterance sentence generation module 1614 may extract application history data related to the same part-of-speech of the single uttered input and different parts of the speech and the single uttered input from the application history data DB 1631 .
  • the recommended utterance sentence generation module 1614 may store application history data related to a noun that is the same as a noun that is a part-of-speech of "TV” and a noun that is a part-of-speech of "TV” and a verb that is different from the noun that is a part-of-speech of "TV” to the application history data DB 1631 ) can be extracted from
  • the recommended utterance sentence generation module 1614 uses the application history data selected by the application history data generation module 1612 in relation to “television” to include an application history including a noun and a verb related to “television”. Data may be extracted from the application history data DB 1631 .
  • the recommended utterance sentence generation module 1614 may determine words to be included in the recommended utterance sentence by using application history data related to nouns and verbs and a single utterance “TV”. In this case, a word to be included in the recommended utterance sentence may be determined as a word to be included in the recommended utterance sentence, and the type and/or number of words to be included in the recommended uttered sentence may be determined according to various criteria. For example, the recommended utterance sentence generation module 1614 may determine the utterance input (noun), the sub function (noun), and the action (verb) as types of words to be included in the recommended utterance sentence.
  • the recommended utterance sentence generation module 1614 may determine words corresponding to the determined types of words, respectively, and generate a recommended utterance sentence including the determined words. For example, the recommended utterance sentence generation module 1614 may use application history data related to “TV” to determine words corresponding to the determined types of words, and “TV (input utterance) to volume (Sub function)” ) can be generated as a recommended utterance sentence. In this case, the recommended utterance sentence generation module 1614 may generate the recommended utterance sentence by using a preset template for generating the uttered sentence. A template for generating an utterance sentence may be set differently according to items included in the application history data. For example, a template corresponding to a combination of an APP name, an Action, and a parameter in the application history data may be stored in advance.
  • the recommended utterance sentence evaluation module 1615 may calculate a similarity between the service utterance sentence and the recommended utterance sentence by comparing the service utterance sentence with the recommended utterance sentence.
  • the recommended utterance sentence evaluation module 1615 may calculate the similarity between the service utterance sentence and the recommended utterance sentence using, for example, a TF-IDF-based cosine similarity technique.
  • the recommended utterance sentence evaluation module 1615 may determine whether to provide the recommended utterance sentence to the user based on the calculated similarity.
  • FIG. 9 is a diagram illustrating an example of searching for application history data related to a speech input using a service speech sentence according to an embodiment of the present disclosure.
  • the application history data extraction module 1612 may extract application history data related to the user's speech input from the application history data DB 1631 using a service speech sentence provided through the voice assistant service. .
  • the application history data extraction module 1612 uses the IntentClassifier 90 to provide a service having an Intent associated with "send” among service utterance sentences of the voice assistant service It is possible to extract spoken sentences.
  • the IntentClassifier 90 may extract a service utterance sentence including a word similar to "send” from the utterance history data DB 1632 by using a classification algorithm of a machine learning technique or by using TF-IDF.
  • the application history data extraction module 1612 may output, for example, “Send a text in a message”, “Share a photo through KakaoTalk”, and “Send money through Samsung Pay.” to the utterance history data DB 1632 . can be extracted from
  • the application history data extraction module 1612 may generate a search query for retrieving application history data related to a speech input from the extracted service speech sentences using the LogQueryGenerator 91 .
  • the application history data extraction module 1612 may generate " ⁇ App:Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ ” as a search query from "Send a text in a message.”
  • the application history data extraction module 1612 selects " ⁇ App:Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ & ⁇ to: Person ⁇ ” from "Send a text to Hong Gil-dong.” It can be created with a search query.
  • the application history data extraction module 1612 for example, from “Share a picture through KakaoTalk.” to " ⁇ App:ShareVia ⁇ & ⁇ what: Picture ⁇ & ⁇ Action: Send ⁇ & ⁇ to: AppName. ⁇ " as a search query.
  • the application history data extraction module 1612 may generate, for example, " ⁇ App:SamsungPay ⁇ & ⁇ what: Money ⁇ & ⁇ Action: Send ⁇ ” as a search query from "Samsung Pay.” can In this case, the generated search query may have a format of application history data.
  • the application history data extraction module 1612 may perform logfiltering 92 using the generated search query to extract application history data 93 related to “send” from among the application history data.
  • FIG. 10 is a diagram illustrating an example in which a recommended utterance sentence is generated when application history data 102 is retrieved using the service utterance sentence 100 of the voice assistant service according to an embodiment of the present disclosure.
  • the recommended utterance sentence generation module 1614 may generate a recommended utterance sentence by using the service utterance sentence 100 and application history data 102 .
  • the recommended utterance sentence generation module 1614 generates sentence data 103 that reflects the value of the entity in the application history data 102 using EntityConverter, and uses LogQueryGenerator from the service utterance sentence 100 A search query 101 may be created.
  • the recommended utterance sentence generation module 1614 is configured to generate a value of an entity included in the search query 101 generated from the service utterance sentence 100 based on the similarity between the generated sentence data 103 and the search query 101 . By changing (value) to a value of an entity in the application history data 102 , a recommended utterance sentence may be generated.
  • the query statement generated from the service utterance sentence 100 is " ⁇ App:Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ & ⁇ to: Person ⁇ ", and from the application history data 102
  • the sentence data 103 generated from the searched history data is “ ⁇ App:Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ & ⁇ to: Person ⁇ - ⁇ value: Mom ⁇ ”
  • the generation module 1614 may determine a value corresponding to “ ⁇ to: Person ⁇ ”, which is an entity in the service utterance sentence 100 , as “ ⁇ value: mother ⁇ ”.
  • the recommended utterance sentence generation module 1614 generates " ⁇ App:Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ & ⁇ to: Person ⁇ - ⁇ value:mom ⁇ " can be used to generate a recommended utterance sentence "send a text message to mom".
  • FIG. 11 is a diagram illustrating an example in which application history data 114 supported by a voice assistant service is generated according to an embodiment of the present disclosure.
  • application history data 114 supported by the voice assistant service may be generated in advance, and the device 1000 may recommend generated using the application history data 114 supported by the voice assistant service.
  • the utterance sentence may be provided to the user without comparing the utterance sentence with the service utterance sentence.
  • the search query table 110 representing the search query generated from the service speech sentences of the voice assistant service and the service speech sentence table 112 representing the service speech sentences provided through the voice assistant service are to be stored in the speech history data DB 1632.
  • a search query generated from service speech sentences and an index value of a service speech sentence corresponding to the search query may be recorded, and the service speech sentences are accumulated and stored in the service speech sentence table 112 .
  • the search query table 110 and the service utterance sentence table 112 may be previously created and stored in order to provide a voice assistant service for a single utterance input.
  • the application history data generation module 1612 generates the application history data 114 , and determines whether the generated application history data 100 is supported by the voice assistant service. can The application history data generation module 1612 determines whether the generated application history data 114 is supported by the voice assistant service by comparing the generated application history data 114 with search queries in the search query table 110 . can do. Also, the application history data generation module 1612 may store the application history data 114 supported by the voice assistant service in the application history data DB 1631 . When storing the application history data 114 supported by the voice assistant service, the application history data generation module 1612 converts a query statement corresponding to the application history data 114 in the form of a query statement generated from a service utterance statement. It can be converted and stored (eg, stored in the search term table 110 or in a separate table and/or DB).
  • the device 1000 extracts application history data related to the single-shot input from among the application history data 114 supported by the voice assistant, and recommends it based on the extracted application history data. You can get an utterance sentence.
  • FIG. 12 is a flowchart of a method of providing, by the device 1000, a recommendation sentence related to a single speech input according to an embodiment of the present disclosure.
  • the device 1000 may receive a user's utterance input.
  • the device 1000 may receive a user's utterance input for the voice assistant service through the microphone 1300 .
  • the device 1000 may determine whether the user's speech input is a single speech input.
  • the device 1000 may determine the user's speech input as a single speech input when the part-of-speech corresponding to the term indicated by the user's speech input is a preset part-of-speech, and the length of the term represented by the user's speech input is less than or equal to a preset threshold. have.
  • the device 1000 may determine whether the part-of-speech of the term corresponding to the user's utterance input is a noun, a verb, a noun phrase, or a verb phrase by using a POS Tagger (Part Of Speech Tagger).
  • the length of the term corresponding to the single utterance input may be preset, and the device 1000 may determine whether the length of the term corresponding to the user's utterance input is smaller than the preset length.
  • the device 1000 may provide a voice assistant service according to the speech input in operation S1210. In this case, the device 1000 may interpret the user's utterance input using the NLU model 1621 and provide a voice assistant service related to the analysis result to the user.
  • the device 1000 receives the user from application history data indicating the history of the user executing one or more applications. It is possible to select application history data related to the utterance input of
  • the device 1000 may extract application history data related to the user's utterance input from among the application history data stored in the storage unit 1600 .
  • the device 1000 may search for and extract application history data related to the user's speech input from among the application history data stored in the storage 1600 to generate a recommended speech sentence for the user's speech input.
  • the device 1000 may generate a search query for searching application history data related to the user's utterance input. For example, when the user's utterance input is a single utterance input of a verb or verb phrase, the device 1000 may generate a search query for searching for an action executed in an application within the device 1000 . In this case, when the word corresponding to the user's utterance input is "send", the device 1000 may generate "Action/send" as a search query to search for an action in the application history data. Also, for example, when the user's speech input is a single speech input that is a noun or a noun phrase, the device 1000 may generate a search query for searching for a parameter related to the name of the application and an action executed in the application.
  • the device 1000 responds to "App/TV” for retrieving the application name in the application history data, and the action of the application in the application history data.
  • “App/TV” for searching related parameters can be created as a search query.
  • the device 1000 may extract words similar to the inputted word from the similar word DB 1633 , and may generate a search query using the inputted word and the extracted similar word.
  • a search query may be generated using service utterance sentences provided by the voice assistant service.
  • the device 1000 may obtain a service utterance sentence related to the uttered input word.
  • the device 1000 obtains, for example, a service utterance sentence related to a utterance input by using a machine learning-based classification algorithm, or a word having a similar Term Frequency - Inverse Document Frequency (TF-IDF) to the utterance input.
  • TF-IDF Term Frequency - Inverse Document Frequency
  • the device 1000 may generate a query for retrieving application history data from a service utterance sentence related to a utterance input.
  • the generated query statement may be generated to have the format of the application history data (eg, a format capable of searching or querying the application history data, a format having a field corresponding to the application history data, etc.).
  • the device 1000 may search for application history data related to the user's utterance input using the generated search query. For example, when the search query is “Action/send”, the device 1000 may search for history data in which a value corresponding to “Action” is “send” from among application history data. When the search query is "App/TV” and “Para/TV”, the device 1000 selects "TV” among the historical data corresponding to "App” and “Para” among the application history data. History data including "TV” can be searched. Also, the device 1000 may filter and select history data that is executed above a predetermined threshold from among the searched history data.
  • the device 1000 may generate a recommended utterance sentence related to the user's utterance input based on the selected application history data.
  • the device 1000 may determine a word for generating a recommended spoken sentence in addition to the spoken input word.
  • a word for generating a recommended speech sentence other than the speech input word may be, for example, a word of a part-of-speech different from the speech input word.
  • the device 1000 may analyze application history data related to an inputted word to select a word for generating a recommended spoken sentence. For example, when the utterance input word is "send", the processor 1700 selects "gallery application” and "photo”, which are words of other parts of speech and parts of speech of "send", from application history data related to "send”.
  • Words for generating a recommended utterance sentence may be selected. Also, for example, when the uttered input word is “send”, the device 1000 may use the words “Samsung Pay” and “money” which are other parts of speech of “send” from the application history data related to “send”. " may be selected as words for generating a recommended utterance sentence.
  • the device 1000 may generate a recommended speech sentence by combining the speech input word and the word determined from the application history data. For example, the device 1000 combines the utterance input word “send” with the words “gallery application” and “photo” determined from application history data, and a recommended utterance sentence “send a photo from the gallery application.” can create In addition, the device 1000 combines the input word “send” with “Samsung Pay” and “money”, which are words determined from application history data, to generate a recommended utterance sentence “send money to Samsung Pay”. can
  • the device 1000 may generate a recommended utterance sentence by using the service utterance sentence and the application history data.
  • the device 1000 may generate the recommended utterance sentence by changing the value of the entity included in the query sentence generated from the service utterance sentence to the value of the entity in the application history data.
  • the query statement generated from the service speech sentence is " ⁇ App:Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ & ⁇ to: Person ⁇ ”
  • the query statement generated from the history data retrieved from the application history data is If the sentence data is " ⁇ App:Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ & ⁇ to: Person ⁇ - ⁇ value:mom ⁇ ”
  • the processor 1700 is an entity in the service utterance sentence " A value corresponding to ⁇ to: Person ⁇ ” may be determined as " ⁇ value: mother ⁇ ".
  • the processor 1700 uses " ⁇ App:Message ⁇ & ⁇ what: Text ⁇ & ⁇ Action: Send ⁇ & ⁇ to: Person ⁇ - ⁇ value: mom ⁇ " generated by modifying the query sentence in the service utterance sentence. It can be used to generate a recommended utterance sentence "Send a text message to mom".
  • the device 1000 may modify the recommended utterance sentence by using a new function supported by the voice assistant service.
  • the device 1000 may modify the generated recommended utterance sentence in consideration of at least one of a function of an application not frequently used by the user or a new function of the application.
  • the device 1000 identifies a function related to the user's speech input from application history data related to the user's speech input, and when there is a new function of the application related to the identified function, a recommended speech based on the new function You can also create sentences.
  • the device 1000 may modify the recommended utterance sentence to generate "Send a text to the KakaoTalk application.” Also, the device 1000 may modify, for example, a recommended utterance sentence of “transfer money with Samsung Pay” to “transfer money with Kakao Pay”.
  • the device 1000 may determine whether the recommended utterance sentence is supported by the voice assistant service.
  • the device 1000 may identify whether the function corresponding to the recommended utterance sentence is executable by the device 1000 and/or another device related to the voice assistant service. To this end, the device 1000 may determine whether the recommended utterance sentences are supported by the voice assistant service by comparing the service utterance sentences provided by the voice assistant service with the recommended utterance sentences. The device 1000 may select a service utterance sentence related to a recommended utterance sentence from among service utterance sentences provided by the voice assistant service.
  • the device 1000 may calculate the similarity between the selected service utterance sentence and the recommended utterance sentence, and when the calculated similarity is greater than a preset threshold, determine that the recommended uttered sentence is supported by the voice assistant service.
  • the processor 1700 may calculate a similarity between a recommended utterance sentence and a service utterance sentence by using a cosine similarity technique based on Term Frequency - Inverse Document Frequency (TF-IDF).
  • TF-IDF Term Frequency - Inverse Document Frequency
  • the device 1000 may generate or select another recommended utterance sentence.
  • the device 1000 displays the recommended utterance sentence on the screen of the device 1000 in operation S1230.
  • the device 1000 selects a recommended utterance sentence to be provided to the user from among the plurality of recommended utterance sentences based on the similarity.
  • the device 1000 displays a predetermined GUI including a recommended utterance sentence supported by the voice assistant service on the display unit 1200 (and/or an audio query including a recommended utterance sentence supported by the voice assistant service or signal) and receive a user's feedback input.
  • the device 1000 may modify the recommended utterance sentence according to the user's feedback input.
  • the device 1000 may display a GUI for correcting the recommended uttered sentence on the display unit 1200 and correct the recommended uttered sentence according to a user input through the displayed GUI.
  • the device 1000 may receive the user's utterance for correcting the recommended utterance sentence, and may modify the recommended uttered sentence based on the user's utterance.
  • the device 1000 may execute a function of the voice assistant service corresponding to the recommended spoken sentence. If the recommended utterance sentence is modified by the user, the device 1000 may perform a function of the voice assistant service corresponding to the modified recommended uttered sentence.
  • the functions related to artificial intelligence are operated through the processor and memory.
  • the processor may consist of one or a plurality of processors.
  • the one or more processors may be a general-purpose processor such as a CPU, an AP, a digital signal processor (DSP), or the like, a graphics-only processor such as a GPU, a VPU (Vision Processing Unit), or an artificial intelligence-only processor such as an NPU.
  • One or a plurality of processors control to process input data according to a predefined operation rule or artificial intelligence model stored in the memory.
  • the AI-only processor may be designed with a hardware structure specialized for processing a specific AI model.
  • the predefined action rule or artificial intelligence model is characterized in that it is created through learning.
  • being made through learning means that a basic artificial intelligence model is learned using a plurality of learning data by a learning algorithm, so that a predefined action rule or artificial intelligence model set to perform a desired characteristic (or purpose) is created means burden.
  • Such learning may be performed in the device itself on which artificial intelligence according to the present disclosure is performed, or may be performed through a separate server and/or system.
  • Examples of the learning algorithm include, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.
  • the artificial intelligence model may be composed of a plurality of neural network layers.
  • Each of the plurality of neural network layers has a plurality of weight values, and a neural network operation is performed through an operation between an operation result of a previous layer and a plurality of weights.
  • the plurality of weights of the plurality of neural network layers may be optimized by the learning result of the artificial intelligence model. For example, a plurality of weights may be updated so that a loss value or a cost value obtained from the artificial intelligence model during the learning process is reduced or minimized.
  • the artificial neural network may include a deep neural network (DNN), for example, a Convolutional Neural Network (CNN), a Deep Neural Network (DNN), a Recurrent Neural Network (RNN), a Restricted Boltzmann Machine (RBM), There may be a Deep Belief Network (DBN), a Bidirectional Recurrent Deep Neural Network (BRDNN), or a Deep Q-Networks, but is not limited to the above-described example.
  • DNN Deep Neural Network
  • DNN Deep Belief Network
  • BBDNN Bidirectional Recurrent Deep Neural Network
  • Deep Q-Networks Deep Q-Networks
  • the device receives a voice signal, which is an analog signal, through a microphone, and uses the ASR (Automatic Speech Recognition) model to speak
  • ASR Automatic Speech Recognition
  • the parts can be converted into computer-readable text.
  • NLU natural language understanding
  • the ASR model or the NLU model may be an artificial intelligence model.
  • the AI model can be processed by an AI-only processor designed with a hardware structure specialized for processing the AI model. AI models can be created through learning.
  • the artificial intelligence model may be composed of a plurality of neural network layers. Each of the plurality of neural network layers has a plurality of weight values, and a neural network operation is performed through an operation between an operation result of a previous layer and a plurality of weights.
  • Linguistic understanding is a technology that recognizes and applies/processes human language/character. Natural Language Processing, Machine Translation, Dialog System, Question Answering, and Speech Recognition /Speech Recognition/Synthesis, etc.
  • Computer-readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer-readable media may include computer storage media and communication media.
  • Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Communication media may typically include computer readable instructions, data structures, or other data in a modulated data signal, such as program modules.
  • the computer-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-transitory storage medium' is a tangible device and only means that it does not contain a signal (eg, electromagnetic wave). It does not distinguish the case where it is stored as
  • the 'non-transitory storage medium' may include a buffer in which data is temporarily stored.
  • the methods according to various embodiments disclosed in this document may be provided as included in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • the computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or via an application store or between two user devices (eg smartphones). It can be distributed directly or online (eg, downloaded or uploaded).
  • a portion of the computer program product eg, a downloadable app
  • a machine-readable storage medium such as a memory of a manufacturer's server, a server of an application store, or a relay server. It may be temporarily stored or temporarily created.
  • unit may be a hardware component such as a processor or circuit, and/or a software component executed by a hardware component such as a processor.

Abstract

사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법이 제공된다. 디바이스가 보이스 어시스턴트 서비스를 제공하는 방법은, 사용자의 발화 입력이 단발화 입력인지를 판단하는 동작; 상기 발화 입력이 단발화 입력임에 따라, 상기 디바이스에서 상기 사용자에 의해 실행된 하나 이상의 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중에서, 상기 발화 입력에 관련된 애플리케이션 이력 데이터를 획득하는 동작; 상기 발화 입력 및 상기 획득된 애플리케이션 이력 데이터를 이용하여, 상기 발화 입력에 관련된 추천 발화 문장을 생성하는 동작; 및 상기 생성된 추천 발화 문장을 출력하는 동작;을 포함한다.

Description

사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법
본 개시는 사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법에 관한 것이다. 보다 상세하게는, 본 개시는 사용자의 단발화 입력에 관련된 추천 발화 문장을 생성하고 제공하는 디바이스 및 방법에 관련된다.
멀티 미디어 기술 및 네트워크 기술이 발전함에 따라, 사용자는 디바이스를 통하여 다양한 서비스를 제공받을 수 있게 되었다. 특히, 음성 인식 기술이 발전함에 따라, 사용자는 디바이스에 음성(예를 들어, 발화)을 입력하고, 음성 또는 발화 입력에 따른 응답을 제공받을 수 있게 되었다.
하지만, 종래에는, 사용자의 발화 입력이 짧아서 사용자의 의도를 파악하기 힘든 경우에, 사용자의 의도를 반영하거나 이에 기초하여 보이스 어시스턴트 서비스를 사용자에게 제공하기 힘든 문제가 있었다. 이에 따라, 사용자의 짧은 발화 입력에 대하여도 사용자의 의도를 정확히 예측하고, 사용자의 의도에 따른 응답을 사용자에게 효과적으로 제공할 수 있는 기술이 요구되고 있다.
본 개시의 일 실시예는, 사용자에 의해 실행된 애플리케이션의 실행 이력을 고려하여 사용자의 단발화 입력에 관련된 추천 발화 문장을 제공할 수 있는 디바이스 및 방법을 제공할 수 있다.
또한, 본 개시의 일 실시예는, 사용자에 의해 실행된 애플리케이션의 실행 이력을 고려하여 보이스 어시스턴트 서비스에 의해 지원되는 추천 발화 문장을 제공할 수 있는, 사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법을 제공할 수 있다.
추가적인 관점들은 다음의 설명에서 부분적으로 설명될 것이고, 부분적으로는 설명으로부터 명백할 것이고, 또는 제시된 실시예의 실행에 의해 학습될 수 있다.
본 개시의 한 측면은, 사용자의 발화 입력을 수신하는 동작; 상기 발화 입력이 단발화 입력인지를 판단하는 동작; 상기 발화 입력이 단발화 입력으로 판단됨에 기초하여, 상기 디바이스에서 상기 사용자에 의해 실행된 하나 이상의 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중에서, 상기 발화 입력에 관련된 애플리케이션 이력 데이터를 획득하는 동작; 상기 발화 입력 및 상기 획득된 애플리케이션 이력 데이터를 이용하여, 상기 발화 입력에 관련된 추천 발화 문장을 생성하는 동작; 상기 추천 발화 문장이 상기 디바이스에 의해 제공되는 상기 보이스 어시스턴트 서비스에 의해 지원되는 지를 판단하는 동작; 및 상기 추천 발화 문장이 상기 보이스 어시스턴트 서비스에 의해 지원된다고 판단됨에 기초하여, 상기 추천 발화 문장을 출력하는 동작;을 포함하는, 보이스 어시스턴트 서비스를 제공하는 디바이스가 사용자의 발화 입력에 관련된 추천 발화 문장을 제공하는 방법을 제공할 수 있다.
또한, 본 개시의 다른 측면은, 사용자의 발화 입력을 수신하는 마이크; 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션을 실행하는 프로세서;를 포함하며, 상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 발화 입력이 단발화 입력인지를 판단하고, 상기 발화 입력이 단발화 입력으로 판단됨에 기초하여, 상기 디바이스에서 상기 사용자에 의해 실행된 하나 이상의 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중에서, 상기 발화 입력에 관련된 애플리케이션 이력 데이터를 획득하고, 상기 발화 입력 및 상기 획득된 애플리케이션 이력 데이터를 이용하여, 상기 발화 입력에 관련된 추천 발화 문장을 생성하고, 상기 추천 발화 문장이 상기 디바이스에 의해 제공되는 상기 보이스 어시스턴트 서비스에 의해 지원되는 지를 판단하고, 상기 추천 발화 문장이 상기 보이스 어시스턴트 서비스에 의해 지원된다고 판단됨에 기초하여, 상기 추천 발화 문장을 출력하는, 보이스 어시스턴트 서비스를 제공하는 디바이스를 제공할 수 있다.
또한, 본 개시의 다른은, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
본 개시의 다른 측면에 의한 보이스 어시스턴트 서비스를 제공하기 위한 디바이스는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 하나 이상의 명령어를 실행하여 사용자의 발화 입력과 관련된 추천 발화 문장을 제공하는 프로세서;를 포함하며, 프로세서는, 사용자의 발화 입력을 획득하고, 발화 입력이 단발화 입력인지를 결정하고, 단발화 입력으로 결정된 발화 입력에 기초하여, 디바이스 또는 다른 디바이스 중 적어도 하나에서 사용자에 의해 실행된 하나 이상의 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중에서, 발화 입력에 관련된 애플리케이션 이력 데이터를 획득하고, 발화 입력 및 획득된 애플리케이션 이력 데이터를 이용하여, 발화 입력에 관련된 추천 발화 문장을 생성하고, 추천 발화 문장을 출력하도록 제어할 수 있다.
본 개시 내용의 특정 실시예의 상기 및 다른 관점, 특징 및 이점은 첨부 도면과 함께 취해진 다음의 설명으로부터 보다 명백해질 것이다.
도 1은 일 실시예에 따른 사용자의 단발화 입력에 대한 보이스 어시스턴트 서비스가 디바이스(1000)에 의해 제공되는 예시를 나타내는 도면이다.
도 2는 일 실시예에 따른 디바이스(1000)의 블록도이다.
도 3은 일 실시예에 따른 단발화 입력에 관련된 애플리케이션 이력 데이터가 생성되는 예시를 나타내는 도면이다.
도 4는 일 실시예에 따른 사용자의 애플리케이션 이력 데이터의 테이블의 일례를 나타내는 도면이다.
도 5는 일 실시예에 따른 동사인 단발화 입력에 대한 애플리케이션 이력 데이터를 추출하는 예시를 나타내는 도면이다.
도 6은 일 실시예에 따른 명사인 단발화 입력에 대한 애플리케이션 이력 데이터를 추출하는 예시를 나타내는 도면이다.
도 7은 일 실시예에 따른, 동사의 단발화 입력에 대한 추천 발화 문장을 생성하는 예시를 나타내는 도면이다.
도 8은 일 실시예에 따른, 명사의 단발화 입력에 대한 추천 발화 문장을 생성하는 예시를 나타내는 도면이다.
도 9는 일 실시예에 따른 서비스 발화 문장을 이용하여 발화 입력에 관련된 애플리케이션 이력 데이터를 검색하는 예시를 나타내는 도면이다.
도 10은 일 실시예에 따른, 보이스 어시스턴트 서비스의 서비스 발화 문장을 이용하여 애플리케이션 이력 데이터가 검색된 경우에, 추천 발화 문장이 생성되는 예시를 나타내는 도면이다.
도 11은 일 실시예에 따른 보이스 어시스턴트 서비스에 의해 지원되는 애플리케이션 이력 데이터가 생성되는 예시를 나타내는 도면이다.
도 12는 일 실시예에 따른 디바이스(1000)가 단발화 입력에 관련된 추천 문장을 제공하는 방법의 흐름도이다.
명세서 전체에 걸쳐 "a, b 또는 c 중 적어도 하나"와 같은 표현은 a만, b만, c만, a와 b 모두, a와 c 모두, b와 c 모두, a, b 및 c 모두, 또는 이들의 변형을 나타낸다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략될 수 있으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함할 수 있다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서, 단발화 입력은 하나의 용어(term)를 나타내는 짧은 발화에 의한 입력으로서, 하나의 단어 또는 하나의 어구로 이루어진 발화에 의한 입력일 수 있다. 단발화 입력은, 예를 들어, 명사로 이루어진 발화, 명사구로 이루어진 발화, 동사로 이루어진 발화 또는 동사구로 이루어진 발화를 포함할 수 있다.
애플리케이션 이력 데이터는 디바이스에서 실행된 애플리케이션의 실행 이력을 나타내는 데이터일 수 있다. 애플리케이션 이력 데이터는, 예를 들어, 애플리케이션의 식별 값 또는 정보, 애플리케이션의 종류, 애플리케이션에서 실행된 액션의 종류, 애플리케이션에서 실행된 액션에 관한 파라미터, 애플리케이션의 액션이 실행된 시각, 액션의 누적 실행 횟수 등에 관한 정보를 포함할 수 있다. 또한, 사용자에 의해 실행된 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터는 사용자로부터 디바이스에 입력된 사용자 입력을 바탕으로 애플리케이션에 의해 실행된 액션에 관한 이력 데이터일 수 있다.
서비스 발화 문장은, 보이스 어시스턴트 서비스를 위하여 사용자로부터 수신되는 발화 문장 및 사용자에게 제공되는 발화 문장일 수 있으며, 보이스 어시스턴트 서비스에 관련된 디바이스 및 다른 디바이스의 기능에 의해 지원되는 액션에 관련된 발화 문장일 수 있다.
이하 첨부된 도면을 참고하여 본 실시예를 상세히 설명하기로 한다.
본 개시의 특정 예들에서, 사용자는 사용자 디바이스(예를 들어, 모바일 전화 또는 컴퓨팅 디바이스), 또는 사용자 디바이스에 연결된 디바이스(예를 들어, 서버)에 의해 제공되는 기능, 동작, 서비스 등을 활용하기를 원할 수 있다. 다음에서, 기능에 대한 참조는 기능(들), 동작(들), 서비스(들) 등 중 하나 이상에 대한 참조를 포함할 수 있다.
기능을 활용하기 위해, 사용자는 사용자 디바이스에 사용자 입력을 제공할 수 있다. 사용자 입력은 가청 입력(audible input), 예를 들어 사운드 입력(예컨대, 하나 이상의 사운드 포함) 또는 음성 입력(vocal input)(예컨대, 하나 이상의 단어 및/또는 하나 이상의 구문 포함)일 수 있다. 음성(vocal)에는 "발화"가 포함될 수 있다. 그러나, 본 개시는 가청 입력(audible input)에 한정되지 않는다. 예를 들어, 사용자 입력은 텍스트 입력 또는 임의의 다른 적절한 유형의 입력일 수 있다.
특정 예에서, 특정 기능은 "기능 정보"의 하나 이상의 항목에 의해 정의될 수 있다. 예를 들어, 기능 정보는 (i) 수행될 기능, (ii) 기능을 수행할 수 있거나 수행해야 하는 애플리케이션 또는 서비스, (iii) 기능을 수행하는 디바이스, 및 (iv) 기능의 하나 이상의 파라미터 중 하나 이상을 정의할 수 있다. 예를 들어, 기능이 금융 거래와 관련된 경우, 파라미터(매개변수)는 거래의 금전적 금액을 정의할 수 있다. 기능이 데이터 전송과 관련된 경우, 파라미터는 데이터의 대상을 정의할 수 있다. 기능이 장치에 의해 수행될 작업과 관련된 경우, 파라미터는 작업을 수행할 장치를 지정할 수 있다. 본 개시는 이들 예에 제한되지 않으며, 통상의 기술자는 기능을 정의하는 기능 정보의 많은 다른 예를 용이하게 고려할 것이다.
사용자 입력은 사용자 입력의 특정 요소를 결정하기 위해 분석될 수 있다. 사용자 입력의 특정 요소는 "입력 요소(input elements)"(예컨대, 특정 소리, 단어 및/또는 구(phrases))로 참조될 수 있으며, 기능을 정의하는 기능 정보의 항목에 대응될 수 있다. 예를 들어, 사용자 입력이 "보내(send)", "$100", "엄마에게(to Mom)" 및 "삼성 페이를 사용하여(using Samsung pay)"라는 단어 또는 구(입력 요소) 중 하나 이상을 포함하는 경우 이러한 단어 또는 구 (입력 요소) 각각은 기능을 정의하는 기능 정보 항목에 해당한다.
각 입력 요소에 해당하는 기능 정보 항목의 유형은 분석의 일부로 결정될 수 있다. 예를 들어, 동사 형태의 입력 요소(예컨대, "보내(send)")는 수행할 기능을 정의하는 기능 정보 항목에 대응되도록 결정될 수 있다. 화폐 기호(예컨대, "$")를 포함하는 입력 요소는 화폐 금액을 정의하는 기능 정보 항목에 대응하도록 결정될 수 있다. "[명사]에게(to [명사])"(예컨대, 엄마에게("to Mom")) 형태의 입력 요소는 목적지를 정의하는 기능 정보 항목의 항목에 대응하도록 결정될 수 있다. 인식된 서비스(예컨대, 삼성 페이("Samsung Pay"))를 포함하는 입력 요소는 해당 기능을 수행할 수 있거나 수행해야 하는 서비스를 지정하는 기능 정보 항목에 해당하는 것으로 결정될 수 있다.
사용자 입력을 분석할 때 변형 및/또는 동의어가 고려될 수 있다. 예를 들어, "send", "transmit" 및 "transfer"라는 단어는 각각 동일한 "send" 기능에 대응하는 것으로 결정될 수 있다.
위에서 설명한 바와 같이, 사용자 입력은 하나 이상의 "입력 요소(input elements)"를 포함하는 반면, 기능은 "기능 정보"의 하나 이상의 항목으로 정의된다. 입력 요소는 사용자 입력에 대한 분석에 기초하여 기능 정보 항목에 매핑되어 사용자 입력에 대응하는 특정 기능을 결정할 수 있다.
어떤 경우에는 사용자 입력에는 수행할 기능을 완전히 정의하기에 충분한 정보가 포함될 수 있다. 예를 들어, 사용자 입력에서 파생된 입력 요소가 기능 정보 항목에 매핑되는 경우, 기능 정보 항목이 함께 기능을 수행할 수 있을 정도로 특정 기능을 정의할 수 있다. 이 경우 사용자 입력은 기능을 명확하게 정의한 것으로 간주할 수 있다. 한 예로 "삼성 페이로 엄마에게 100달러를 보내(send $100 to Mom using Samsung Pay)"라는 사용자 입력이 있을 수 있다.
한편, 다른 실시예에서, 사용자 입력이 수행할 기능을 완전히 정의하기에 불충분한 정보를 포함하는 경우도 있다. 예를 들어, 사용자 입력에서 파생된 입력 요소가 기능 정보 항목에 매핑될 때 기능을 수행하는 데 필요한 하나 이상의 기능 정보 항목이 누락(예컨대, 알 수 없거나(unknown) 정의되지 않음(undefined))되어 해당 기능을 수행하지 못할 수 있다. 이 경우, 사용자 입력에 대응하는 기능이 다소 모호할 수 있다. 예를 들어, 사용자 입력은 둘 이상의 가능한 대체 기능에 해당할 수 있다. 다양한 예로 "엄마에게 100달러 보내기", "삼성 페이로 엄마에게 보내기", "삼성 페이로 100달러 보내기", "100달러 보내기" 또는 "보내기"가 있다.
본 개시의 특정 예는 기능 정보의 누락 항목에 대한 가능한 후보를 결정할 수 있다. 예를 들어, "삼성 페이로 100 달러 보내(send $100 using Samsung Pay)"라는 사용자 입력이 주어지면 기능 정보의 누락 항목에 대한 가능한 후보는 "엄마에게", "아빠에게", "Avi에게" 등이 될 수 있다. 예를 들어, "삼성 페이로 엄마에게 보내"라는 사용자 입력이 주어지면 기능 정보의 누락 항목에 대한 가능한 후보는 "50달러", "100달러", "200달러" 등일 수 있다. 기능 정보 항목 중 2개 이상 누락된 경우, 누락된 각 항목에 대해 가능한 후보가 결정될 수 있다. 특정 예에서, 기능 정보의 누락 항목의 가능한 조합에 대한 후보가 결정될 수 있으며, 예를 들어 "엄마에게 100달러", "아빠에게 50달러", "Avi에게 200달러" 등이 있을 수 있다.
특정 예들에서, 하나 이상의 "향상된" 또는 "증강된" 입력에 대한 후보는 누락된 항목으로서 기능 정보의 하나 이상의 후보 항목, 또는 항목의 조합으로 원래의 사용자 입력을 보완함으로써 결정될 수 있다. 예를 들어, "삼성 페이로 보내(send using Samsung Pay)"라는 사용자 입력이 주어지면 후보 증강 입력의 예는 "삼성 페이로 엄마에게 100달러 보내(send $100 to Mom using Samsung Pay)"일 수 있다.
본 개시의 특정 예들은 기능 정보의 후보 항목들 중 2개 이상을 출력(예를 들어, 디스플레이를 통해 시각적으로, 또는 스피커를 통해 청각적으로)할 수 있다. 예를 들어, 기능 정보의 누락 항목마다 후보 항목 목록이 표시될 수 있다. 그런 다음 사용자는 후보 항목 중 하나 이상을 선택할 수 있고, 선택된 항목은 원래 사용자 입력을 보완하여 증강 입력을 생성하는 데 사용될 수 있다. 대안적으로, 본 개시의 특정 예들은 이전 단락에 따라 결정된 둘 이상의 후보 증강 입력들을 출력(예를 들어, 목록의 형태로)할 수 있다. 그런 다음 사용자는 후보 증강 입력을 선택할 수 있다. 두 경우 모두 결과로 생성된 증강 입력을 사용하여 기능을 수행할 수 있다.
위에서 설명된 바와 같이, 사용자 입력이 모호할 때, 본 개시의 특정 예는 누락된 항목들(또는 항목들의 조합)에 대한 하나 이상의 후보를 결정함으로써 기능 정보의 하나 이상의 누락된 항목이 완성되도록 허용한다. 둘 이상의 후보가 결정되면 사용자는 후보를 선택할 수 있다. 그 결과 모호하지 않은 입력은 기능을 수행하는 데 사용될 수 있다.
기능 정보의 누락된 항목들 또는 항목들의 조합에 대한 후보들은 임의의 적절한 기술을 사용하여 결정될 수 있다.
본 개시의 특정 실시예에서, 후보들은 이전에 수행된 기능들의 이력에 기초하여 결정될 수 있다. 예를 들어, 기능들이 수행될 때, 수행된 각 기능들에 대응하는 기능 정보의 항목들이 기록된다. 모호한 사용자 입력이 제공될 때, 사용자 입력을 기반으로 생성된 입력 요소들에 매핑되는 기능 정보의 항목들(이하, 기능 정보의 "누락 항목"과 대조적으로 기능 정보의 "현재 항목"이라고 함)은 저장된 정보와 비교되고, 비교를 기반으로 기능 정보의 누락 항목들에 대한 후보들이 결정된다.
예를 들어, 기능 정보의 누락 항목들에 대한 후보들은, 기록된 이력 내에서 기능 정보의 현재 항목들과 조합하여 비교적 자주 발생하는 항목들로 결정될 수 있다. 예를 들어, 기록된 이력에서, "엄마에게(to Mom)"와 "100달러"가 "삼성 페이로 쪋 보내(send쪋 using Samsung Pay)"와 함께 비교적 자주 나오는 경우, "엄마에게(to Mom)"와 "100달러"가 가 후보들로 결정될 수 있다. 따라서, "삼성 페이로 보내"라는 사용자 입력에 기초하여 "삼성 페이로 엄마에게 100달러 보내(send $100 to Mom using Samsung Pay)"라는 후보 증강 입력이 결정될 수 있다.
전술한 바와 같이, 각각의 이전에 수행된 기능에 대응하는 기능 정보 항목들이 저장될 수 있다. 예를 들어, 특정 이전에 수행된 기능에 대응하는 기능 정보 항목들의 세트는 대응하는 특정 엔트리 또는 테이블의 레코드로서 저장될 수 있다. 사용자 입력이 제공될 때, 사용자 입력으로부터 획득된 기능 정보의 항목들에 기초하여 하나 이상의 테이블 항목이 선택될 수 있고, 향상된 입력에 대한 하나 이상의 대응하는 후보들이 선택된 테이블 항목들에 기초하여 결정될 수 있다.
이하에서는 편의상, 현재 사용자 입력에 해당하는 기능 정보 항목은 "현재 항목"으로 지칭될 수 있고, 예를 들어 테이블의 해당 엔트리에 기록된 이전에 수행된 기능에 해당하는 기능 정보 항목은 "이전 항목"으로 지칭될 수 있다 따라서, 이전 항목을 포함하는 하나 이상의 테이블 엔트리들이 하나 이상의 현재 항목에 기초하여 선택될 수 있다. 예를 들어, 하나 이상의 현재 항목과 일치하는 하나 이상의 이전 항목을 포함하는 테이블 엔트리들이 선택될 수 있다. 어떤 경우에는 모든 현재 항목과 일치하는 이전 항목을 포함하는 테이블 엔트리들만이 선택될 수 있다. 그러한 테이블 엔트리들이 존재하지 않으면, 하나 이상의 현재 항목과 일치하는 이전 항목의 가장 높은 수를 포함하는 테이블 엔트리들이 선택될 수 있다.
특정 예에서, 테이블 엔트리는 하나 이상의 인자(factor)에 기초하여 순위가 매겨질 수 있다.
하나의 인자(factor)는 얼마나 많은 이전 항목이 현재 항목과 일치하는지에 기반할 수 있다. 예를 들어, 현재 항목과 일치하는 더 많은 수의 이전 항목을 포함하는 테이블 엔트리들은 상대적으로 더 높은 순위가 매겨질 수 있다.
또 다른 인자는 기능이 얼마나 최근에 수행되었는지에 기초할 수 있다. 예를 들어, 가장 최근에 수행된 기능에 해당하는 테이블 엔트리들이 상대적으로 더 높은 순위를 가질 수 있다.
또 다른 인자는 기능이 얼마나 자주 수행되었는지에 기초할 수 있다. 예를 들어, 더 자주 수행되는 기능에 해당하는 테이블 엔트리들이 상대적으로 더 높은 순위를 가질 수 있다.
또 다른 요인은 제공된 모호한 사용자 입력과 모호한 사용자 입력에 따라 결국 수행되는 기능 간의 대응 관계에 기초할 수 있다. 예를 들어, 특정 모호한 사용자 입력이 제공되고 여기에 설명된 기술의 결과로 완전히 정의된 특정 기능이 수행되도록 선택되면, 수행된 기능에 해당하는 테이블 엔트리는 모호한 사용자 입력을 지정하는 정보(예: 사용자 입력에 해당하는 (불완전한) 항목 기능 정보)를 포함할 수 있다. 이후 동일한 모호한 사용자 입력이 다시 제공되면, 모호한 사용자 입력을 지정하는 정보를 포함하는 테이블 엔트리들이 상대적으로 더 높은 순위를 가질 수 있다.
통상의 기술자는 본 개시 내용이 이들 인자에 제한되지 않고 다양한 다른 인자가 통상의 기술자에게 용이하게 발생할 것임을 이해할 것이다.
일부 인자가 다른 인자보다 순위에 더 많이 영향을 미치도록 다양한 인자가 가중될 수 있다.
순위에 이어, 가장 높은 순위의 테이블 엔트리 중 하나 이상이 향상된 입력에 대한 하나 이상의 대응하는 후보로서 선택될 수 있다.
본 개시의 일 실시 예는, 기능을 수행하기 위해 수정된 사용자 입력을 결정하기 위한 방법을 제공하며, 이 방법은 사용자 입력을 수신하는 동작; 사용자 입력으로부터 하나 이상의 입력 요소를 결정하기 위해 사용자 입력을 분석하는 동작; 하나 이상의 입력 요소에 대응하는 기능 정보의 하나 이상의 제1 항목을 결정하는 동작; 기능 정보의 하나 이상의 제2 항목을 결정하는 동작; 및 기능 정보의 제1 및 제2 항목에 기초하여 하나 이상의 수정된 사용자 입력을 결정하는 동작을 포함하되, 기능 정보의 하나 이상의 제2 항목은 기능 정보의 하나 이상의 제1 항목 및 이전에 수행된 기능들에 대응하는 기능 정보 항목들을 포함하는 미리 저장된 정보에 기초하여 결정된다.
특정 예에서, 사용자 입력은 음성 입력을 포함한다.
특정 예에서, 입력 요소는 하나 이상의 단어 및/또는 하나 이상의 구를 포함한다.
특정 예에서, 사용자 입력을 분석하는 동작은 사용자 입력을 파싱하는 동작을 포함한다.
특정 예에서, 기능 정보는 기능을 적어도 부분적으로 정의하는 정보 (예를 들어, (i) 수행할 기능, (ii) 기능을 수행할 수 있거나 수행해야 하는 애플리케이션 또는 서비스, (iii) 기능을 수행하는 장치, (iv) 기능의 하나 이상의 매개변수 중 하나 이상을 정의한 정보)를 포함한다.
특정 예에서, 방법은 하나 이상의 수정된 사용자 입력을 출력(예를 들어, 디스플레이)하는 동작; 및 출력된 하나 이상의 사용자 입력 중 하나를 선택하는 사용자 입력을 수신하는 동작을 더 포함한다.
특정 예에서, 방법은 하나 이상의 수정된 사용자 입력에 대응하는 하나 이상의 기능을 결정하는 동작을 더 포함한다.
특정 예에서, 방법은 수정된 사용자 입력에 대응하는 기능이 지원되는지 여부를 결정하는 동작을 포함할 수 있다.
본 개시의 일 실시 예는, 보이스 어시스턴트 서비스를 제공하는 디바이스가 사용자의 발화 입력에 관련된 추천 발화 문장을 제공하는 방법을 제공하며, 상기 방법은, 사용자의 발화 입력을 수신하는 동작; 사용자가 디바이스에서 실행한 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중 발화 입력에 관련된 애플리케이션 이력 데이터를 획득하는 동작; 및 발화 입력과 획득된 애플리케이션 이력 데이터를 이용하여 발화 입력과 관련된 추천 발화 문장을 생성하는 동작을 포함한다.
특정 예에서, 방법은 발화 입력이 단일 발화 입력인지 여부를 결정하는 동작을 더 포함할 수 있다.
특정 예에서, 애플리케이션 이력 데이터를 획득하는 동작은 발화 입력이 단일 발화 입력일 때 애플리케이션 이력 데이터를 획득하는 동작을 포함할 수 있다.
특정 예에서, 방법은 추천된 발화 문장이 디바이스에 의해 제공되는 보이스 어시스턴트 서비스에 의해 지원되는지 여부를 결정하는 동작을 더 포함할 수 있다.
특정 예에서, 방법은 디바이스의 스크린 상에 추천된 발화 문장을 디스플레이하는 동작을 더 포함할 수 있다.
특정 예에서, 추천 발화 문장을 표시하는 동작은 추천 발화 문장이 보이스 어시스턴트 서비스에 의해 지원되는 경우 추천 발화 문장을 표시하는 동작을 포함할 수 있다.
특정 예에서, 발화 입력 및 추천 발화 문장은 동등한 텍스트 입력 및 추천 텍스트 문장을 대안적으로 포함할 수 있다.
도 1은 일 실시예에 따른 사용자의 단발화 입력에 대한 보이스 어시스턴트 서비스가 디바이스(1000)에 의해 제공되는 예시를 나타내는 도면이다.
도 1을 참조하면, 디바이스(1000)는 사용자의 단발화 입력에 관련된 추천 발화 문장을 생성하고 제공함으로써, 사용자에게 보이스 어시스턴트 서비스를 제공할 수 있다.
디바이스(1000)는 사용자의 발화 입력을 수신하고, 수신된 발화 입력이 단발화 입력인지를 판단할 수 있으며, 사용자의 발화 입력이 단발화 입력인 경우에, 디바이스(1000)는 사용자의 애플리케이션 사용 이력을 이용하여, 사용자의 단발화 입력에 관련된 추천 발화 문장을 생성할 수 있다. 디바이스(1000)는, 단발화 입력에 포함된 단어를 이용하여, 사용자의 애플리케이션 이력 데이터 중에서 단발화 입력에 관련된 애플리케이션 이력 데이터를 검색할 수 있으며, 검색된 애플리케이션 이력 데이터를 이용하여 보이스 어시스턴트 서비스에 의해 지원되는 추천 발화 문장을 사용자에게 제공할 수 있다.
도 2는 일 실시예에 따른 디바이스(1000)의 블록도이다.
도 2를 참조하면, 일 실시예에 따른 디바이스(1000)는 사용자 입력부(1100)(예를 들어, 사용자 입력 디바이스 또는 인터페이스), 디스플레이부(1200), 마이크(1300), 스피커(1400), 통신 인터페이스(1500), 저장부(1600) 및 프로세서(1700)를 포함할 수 있다.
사용자 입력부(1100)는, 사용자가 디바이스(1000)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(1100)는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠 또는 조그 스위치 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다. 사용자 입력부(1100)는 사용자의 발화 입력에 대응되는 발화 문장을 결정하기 위한 사용자 입력을 수신할 수 있다.
디스플레이부(1200)는 디바이스(1000)에서 처리되는 정보를 표시한다. 예를 들어, 디스플레이부(1200)는, 사용자에게 보이스 어시스턴트 서비스를 제공하기 위한 정보를 제공하기 위한 GUI를 디스플레이할 수 있다.
한편, 디스플레이부(1200)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(1200)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(1200)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 디바이스(1000)의 구현 형태에 따라 디바이스(1000)는 디스플레이부(1200)를 2개 이상 포함할 수도 있다.
마이크(1300)는 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 마이크(1300)는 보이스 어시스턴트 서비스를 위한 사용자의 발화 입력을 수신할 수 있다.
스피커(1400)는 통신 인터페이스(1500)로부터 수신되거나 저장부(1600)에 저장된 오디오 데이터를 출력한다. 스피커(1400)는 보이스 어시스턴트 서비스의 응답 메시지의 사운드를 출력할 수 있다.
통신 인터페이스(1500)는 다른 디바이스) 및/또는 서버와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신 인터페이스(1500)는, 근거리 통신부, 이동 통신부 및 방송 수신부를 포함할 수 있다. 근거리 통신부(short-range wireless communication unit)(151)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 이동 통신부는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다. 방송 수신부는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 또한, 통신 인터페이스(1500)는 보이스 어시스턴트 서비스를 제공하기 위한 정보를 외부 디바이스(미도시) 및 서버(미도시)와 송수신할 수 있다.
저장부(1600)는 후술할 프로세서(1700)에 의해 실행될 프로그램을 저장할 수 있고, 디바이스(1000)로 입력되거나 디바이스(1000)로부터 출력되는 데이터를 저장할 수 있다.
저장부(1600)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
저장부(1600)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 단발화 입력 처리 모듈(1610), 보이스 어시스턴트 모듈(1620), DB(1630)를 포함할 수 있다. 단발화 입력 처리 모듈(1610)은 단발화 입력 판단 모듈(1611), 애플리케이션 이력 데이터 생성 모듈(1612), 애플리케이션 이력 데이터 추출 모듈(1613), 추천 발화 문장 생성 모듈(1614), 추천 발화 문장 평가 모듈(1615) 및 추천 발화 문장 표시 모듈(1616)을 포함할 수 있다. 보이스 어시스턴트 모듈(1620)은 NLU 모델(1621), 응답 정보 생성 모듈(1622) 및 NLG 모델(1623)을 포함할 수 있다. DB(1630)는 애플리케이션 이력 데이터 DB(1631), 발화 이력 데이터 DB(1632), 단어 DB(1633) 및 기능 DB(1634)를 포함할 수 있다.
프로세서(1700)는 디바이스(1000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(1700)는, 저장부(1600)에 저장된 프로그램들 (예를 들어, 모듈들)을 실행함으로써, 사용자 입력부(1100), 디스플레이부(1200), 마이크(1300), 스피커(1400), 통신 인터페이스(1500) 및 저장부(1600) 등을 전반적으로 제어할 수 있다.
일부 실시예에 따르면, 프로세서(1700)는 저장부(1600)에 저장된 단발화 입력 처리 모듈(1610)을 실행함으로써, 사용자의 발화 입력이 단발화 입력임을 판단하고, 단발화 입력에 관련된 추천 발화 문장을 생성하여 제공할 수 있다. 단발화 입력 처리 모듈(1610)은 단발화 입력 판단 모듈(1611), 애플리케이션 이력 데이터 생성 모듈(1612), 애플리케이션 이력 데이터 추출 모듈(1613), 추천 발화 문장 생성 모듈(1614), 추천 발화 문장 평가 모듈(1615) 및 추천 발화 문장 표시 모듈(1616)을 포함할 수 있다.
일부 실시예에 따르면, 프로세서(1700)는 단발화 입력 판단 모듈(1611)을 실행함으로써, 사용자의 발화 입력이 단발화 입력인지를 판단할 수 있다. 단발화 입력은 하나의 용어(term)을 나타내는 짧은 발화에 의한 입력으로서, 하나의 단어 또는 하나의 어구로 이루어진 발화에 의한 입력일 수 있으며, 예를 들어, 명사로 이루어진 발화, 명사구로 이루어진 발화, 동사로 이루어진 발화 또는 동사구로 이루어진 발화를 포함할 수 있다. 단발화 입력 판단 모듈(1611)은 사용자의 발화 입력이 나타내는 용어에 대응되는 품사가 기설정된 품사이며, 사용자의 발화 입력이 나타내는 용어의 길이가 기설정된 임계치 이하인 경우에 사용자의 발화 입력을 단발화 입력으로 판단할 수 있다. 예를 들어, 단발화 입력 판단 모듈(1611)은 POS Tagger(Part Of Speech Tagger)를 이용하여 사용자의 발화 입력에 대응되는 용어의 품사가 명사인지, 동사인지, 명사구인지 또는 동사구인지를 판단할 수 있다. 또한, 예를 들어, 단발화 입력에 대응되는 용어의 길이가 미리 설정될 수 있으며, 단발화 입력 판단 모듈(1611)은 사용자의 발화 입력에 대응되는 용어의 길이가 미리 설정된 길이(예를 들어, 미리 설정된 단어 수 및/또는 미리 설정된 음절 수)보다 작은 지를 판단할 수 있다.
일부 실시예에 따르면, 프로세서(1700)는 애플리케이션 이력 데이터 생성 모듈(1612)을 실행함으로써, 사용자에 의해 실행된 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터를 생성 또는 획득할 수 있다. 애플리케이션 이력 데이터는 디바이스(1000)에서 실행된 애플리케이션의 실행 이력을 나타내는 데이터일 수 있다. 애플리케이션 이력 데이터는, 예를 들어, 애플리케이션의 식별 값, 애플리케이션의 종류, 애플리케이션에서 실행된 액션의 종류, 애플리케이션에서 실행된 액션에 관한 파라미터, 애플리케이션의 액션이 실행된 시각, 액션의 누적 실행 횟수 등에 관한 정보를 포함할 수 있다. 애플리케이션 이력 데이터는, 보이스 어시스턴트 서비스와 무관하게 또는 독립적으로 또는 보이스 어시스턴트 서비스만을 통하지 않고, 디바이스(1000)에서 사용자 입력에 의해 실행된 애플리케이션의 실행 이력에 관한 정보를 포함할 수 있다. 또한, 애플리케이션 이력 데이터는 디바이스(1000)가 단발화 입력을 수신하기 이전에 미리 생성되어 저장부(1600)에 저장될 수 있다.
프로세서(1700)는, 특정 품사를 가지는 용어에 관련된 애플리케이션 이력 데이터를 수집함으로써, 사용자의 애플리케이션 이력 데이터를 생성할 수 있다. 프로세서(1700)는 예를 들어, 동사 또는 동사구에 관련된 애플리케이션 이력 데이터로서, 애플리케이션의 Intent, 애플리케이션의 특정 기능의 사용 이력, 애플리케이션의 GUI의 특정 버튼의 선택 이력 등에 기초하여 사용자의 애플리케이션 이력 데이터를 생성할 수 있다. 프로세서(1700)는, 예를 들어, 명사 또는 명사구에 관련된 애플리케이션 이력 데이터로서, 해당 명사 또는 명사구의 명칭을 가지는 애플리케이션의 사용 이력, 해당 명사 또는 명사구를 키워드로 이용한 사용자 동작에 관한 이력 등에 기초하여 사용자의 애플리케이션 이력 데이터를 생성할 수 있다.
한편, 상기에서는 프로세서(1700)가 보이스 어시스턴트 서비스와 무관하게 애플리케이션 이력 데이터를 생성하여 저장부(1600)에 저장하는 것으로 설명되었지만, 이에 제한되지 않는다. 프로세서(1700)는 보이스 어시스턴트 서비스에 의해 지원되는 애플리케이션 이력 데이터를 저장부(1600)에 저장할 수도 있다.
이 경우, 프로세서(1700)는 보이스 어시스턴트 서비스에 의해 이용되는 서비스 발화 문장들로부터 쿼리문들을 미리 생성할 수 있으며, 쿼리문들 및 서비스 발화 문장들을 매칭하여 저장할 수 있다. 서비스 발화 문장은, 보이스 어시스턴트 서비스를 위하여 사용자로부터 수신되는 발화 문장 및 사용자에게 제공되는 발화 문장일 수 있으며, 보이스 어시스턴트 서비스에 관련된 디바이스(1000) 및/또는 다른 디바이스의 기능에 의해 지원되는 액션에 관련된 발화 문장일 수 있다. 또한, 프로세서(1700)는 생성된 애플리케이션 이력 데이터를 서비스 발화 문장으로부터 생성된 쿼리문과 비교하여, 보이스 어시스턴트 서비스에 의해 지원된다고 판단된 애플리케이션 이력 데이터를 선택하여 저장부(1600)에 저장할 수 있다. 또한, 프로세서(1700)는 보이스 어시스턴트 서비스에 의해 지원되는 애플리케이션 이력 데이터를 저장하는 경우에, 애플리케이션 이력 데이터에 대응되는 쿼리문을 서비스 발화 문장으로부터 생성된 쿼리문의 형식으로 변환하여 저장할 수 있다.
일부 실시예에 따르면, 프로세서(1700)는, 애플리케이션 이력 데이터 추출 모듈(1613)을 실행함으로써, 저장부(1600)에 저장된 애플리케이션 이력 데이터 중에서 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 추출할 수 있다. 저장부(1600)에 저장된 애플리케이션 이력 데이터는, 예를 들어, 디바이스(1000) 또는 다른 디바이스에서 생성된 애플리케이션 이력 데이터 및 서버에 의해 생성된 애플리케이션 이력 데이터를 포함할 수 있다. 프로세서(1700)는, 사용자의 발화 입력이 단발화 입력이라고 판단되는 경우에, 사용자의 발화 입력에 대한 추천 발화 문장을 생성하기 위하여, 저장부(1600)에 저장된 애플리케이션 이력 데이터 중에서 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 검색하고 추출할 수 있다.
또한, 프로세서(1700)는 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 검색하기 위한 검색 쿼리를 생성할 수 있다. 예를 들어, 사용자의 발화 입력이 동사 또는 동사구의 단발화 입력인 경우에, 프로세서(1700)는 디바이스(1000) 내의 애플리케이션에서 실행된 액션을 검색하기 위한 검색 쿼리를 생성할 수 있다. 이 경우, 사용자의 발화 입력에 대응되는 단어가 "보내(send)"인 경우에, 프로세서(1700)는 애플리케이션 이력 데이터 내의 액션을 검색하기 위한 "Action/send"를 검색 쿼리로 생성할 수 있다 또한, 예를 들어, 사용자의 발화 입력이 명사 또는 명사구인 단발화 입력인 경우에, 프로세서(1700)는 애플리케이션의 명칭 및 애플리케이션에서 실행된 액션에 관한 파라미터를 검색하기 위한 검색 쿼리를 생성할 수 있다. 이 경우, 예를 들어, 사용자의 발화 입력에 대응되는 단어가 "TV"인 경우에, 프로세서(1700)는 애플리케이션 이력 데이터 내의 애플리케이션 명칭을 검색하기 위한 "App/TV", 및 애플리케이션 이력 데이터 내의 애플리케이션의 액션에 관한 파라미터를 검색하기 위한 "Para/TV"를 검색 쿼리로 생성할 수 있다.
한편, 상기에서는, 발화 입력된 단어를 검색 쿼리로 이용하여, 발화 입력에 관련된 애플리케이션 이력 데이터가 검색되는 것으로 설명되었지만, 이에 제한되지 않는다. 예를 들어, 프로세서(1700)는 발화 입력된 단어와 유사한 단어들을 유사 단어 DB(1633)로부터 추출하고, 발화 입력된 단어 및 추출된 유사 단어를 이용하여 검색 쿼리를 생성할 수 있다.
또한, 보이스 어시스턴트 서비스에 의해 제공된 서비스 발화 문장을 이용하여 검색 쿼리가 생성될 수 있다. 이 경우, 프로세서(1700)는 발화 입력된 단어와 관련된 서비스 발화 문장을 획득할 수 있다. 프로세서(1700)는, 예를 들어, 머신 러닝 기반의 분류 알고리즘을 활용하여 발화 입력에 관련된 서비스 발화 문장을 획득하거나, 발화 입력된 단어와 TF-IDF(Term Frequency - Inverse Document Frequency)가 유사한 단어를 포함하는 서비스 발화 문장을 획득할 수 있다. 또한, 프로세서(1700)는 발화 입력과 관련된 서비스 발화 문장으로부터 애플리케이션 이력 데이터를 검색하기 위한 쿼리문을 생성할 수 있다. 이 경우, 생성되는 쿼리문은, 애플리케이션 이력 데이터의 포맷을 가지도록 생성될 수 있다.
프로세서(1700)는 생성된 검색 쿼리를 이용하여 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 검색할 수 있다. 검색 쿼리가 "Action/send"인 경우에, 프로세서(1700)는 애플리케이션 이력 데이터 중에서, "Action"에 대응되는 값이 "send"인 이력 데이터를 검색할 수 있다. 예를 들어, 검색 쿼리가 "App/TV" 및 "Para/TV"인 경우에, 프로세서(1700)는 애플리케이션 이력 데이터 중에서, "App"에 대응되는 값이 "TV"인 이력 데이터, 및 "Para" 값들 중에서 "TV"를 포함하는 이력 데이터를 검색할 수 있다. 또한, 프로세서(1700)는 검색된 이력 데이터들 중에서 소정 임계치 이상으로 실행된 이력 데이터를 필터링하여 선택할 수 있다.
일부 실시예에 따라, 프로세서(1700)는, 추천 발화 문장 생성 모듈(1614)을 실행함으로써, 사용자의 발화 입력에 관련된 추천 발화 문장을 생성할 수 있다. 프로세서(1700)는 발화 입력된 단어 이외에 추천 발화 문장의 생성을 위한(예를 들어, 생성하는데 필요한) 단어를 결정할 수 있다. 발화 입력된 단어 이외에 추천 발화 문장의 생성을 위한 단어는, 예를 들어, 발화 입력된 단어의 품사와 다른 품사의 단어일 수 있다. 프로세서(1700)는 발화 입력된 단어와 관련된 애플리케이션 이력 데이터를 분석하여 추천 발화 문장의 생성을 위한 단어를 선택할 수 있다. 예를 들어, 발화 입력된 단어가 "보내"인 경우에, 프로세서(1700)는 "보내"와 관련된 애플리케이션 이력 데이터로부터 "보내"의 품사와 다른 품사의 단어들인 "갤러리 애플리케이션" 및 "사진"을 추천 발화 문장의 생성을 위한 단어들로서 선택할 수 있다. 또한, 예를 들어, 발화 입력된 단어가 "보내"인 경우에, 프로세서(1700)는 "보내"와 관련된 애플리케이션 이력 데이터로부터 "보내"의 품사와 다른 품사의 단어들인 "삼성 페이" 및 "돈"을 추천 발화 문장의 생성을 위한 단어들로서 선택할 수 있다.
또한, 프로세서(1700)는 발화 입력된 단어 및/또는 애플리케이션 이력 데이터로부터 결정된 단어를 조합하여 추천 발화 문장을 생성할 수 있다. 예를 들어, 프로세서(1700)는 발화 입력된 단어인 "보내"를 애플리케이션 이력 데이터로부터 결정된 단어들인 "갤러리 애플리케이션" 및 "사진"과 조합하여, "갤러리 애플리케이션에서 사진을 보내."라는 추천 발화 문장을 생성할 수 있다. 다른 예를 들어, 프로세서(1700)는 발화 입력된 단어인 "보내"를 애플리케이션 이력 데이터로부터 결정된 단어들인 "삼성 페이" 및 "돈"과 조합하여, "삼성 페이로 돈을 보내"라는 추천 발화 문장을 생성할 수 있다.
이 경우, 추천 발화 문장의 일부 단어가 유사 단어로 수정될 수 있다. 예를 들어, "갤러리 애플리케이션에서 사진을 보내."는 "갤러리 애플리케이션을 통해 사진을 전송해."로 수정되고, "삼성 페이로 돈을 보내."는 "삼성 페이로 돈을 송금해"로 수정될 수 있다.
한편, 보이스 어시스턴트 서비스의 서비스 발화 문장을 이용하여 애플리케이션 이력 데이터가 검색된 경우에, 프로세서(1700)는 서비스 발화 문장 및 애플리케이션 이력 데이터를 이용하여, 추천 발화 문장을 생성할 수 있다. 프로세서(1700)는 서비스 발화 문장으로부터 생성된 쿼리문 내에 포함된 엔터티의 값(value)를 애플리케이션 이력 데이터 내의 엔터티의 값(value)으로 변경함으로써, 추천 발화 문장을 생성할 수 있다. 예를 들어, 서비스 발화 문장으로부터 생성된 쿼리문이 "{App: Message} & {what: Text} & {Action: Send} & {to: Person}"이고, 애플리케이션 이력 데이터로부터 검색된 이력 데이터로부터 생성된 문장 데이터가 "{App:Message} & {what: Text} & {Action: Send} & {to: Person}-{value:엄마}"인 경우에, 프로세서(1700)는 서비스 발화 문장 내의 엔터티인 "{to: Person}"에 대응되는 값을 "{value:엄마}"로 결정할 수 있다. 또한, 프로세서(1700)는 서비스 발화 문장 내의 쿼리문을 수정함으로써 생성된 "{App:Message} & {what: Text} & {Action: Send} & {to: Person}-{value:엄마}"를 이용하여 "엄마에게 문자 보내줘"라는 추천 발화 문장을 생성할 수 있다.
한편, 프로세서(1700)는 보이스 어시스턴트 서비스에 의해 지원되는 신규 기능을 이용하여 추천 발화 문장을 수정할 수도 있다. 프로세서(1700)는 사용자가 자주 사용하지 않는 애플리케이션의 기능 또는 애플리케이션의 신규 기능 중 적어도 하나를 고려하여, 생성된 추천 발화 문장을 수정할 수 있다. 이 경우, 프로세서(1700)는 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터로부터 사용자의 발화 입력에 관련된 기능을 식별하고, 식별된 기능과 관련된 애플리케이션의 신규 기능이 있는 경우에, 신규 기능에 기초하여 추천 발화 문장을 생성할 수도 있다. 예를 들어, 생성된 추천 발화 문장이 "메신저 애플리케이션으로 문자를 보내."인 경우에, 프로세서(1700)는 추천 발화 문장을 수정하여 "카카오톡 애플리케이션으로 문자를 보내."를 생성할 수 있다. 또한, 프로세서(1700)는, 예를 들어, "삼성 페이로 돈을 송금해."라는 추천 발화 문장을 "카카오 페이로 돈을 송금해"로 수정할 수 있다.
일부 실시예에 따라, 프로세서(1700)는, 추천 발화 문장 평가 모듈(1615)을 실행함으로써, 추천 발화 문장이 보이스 어시스턴트 서비스에 의해 지원되는지를 판단할 수 있다. 프로세서(1700)는 추천 발화 문장에 대응되는 기능이 보이스 어시스턴트 서비스에 관련된 디바이스(1000) 또는 다른 디바이스에 의해 실행되는 지를 식별할 수 있다. 이를 위하여, 프로세서(1700)는 보이스 어시스턴트 서비스에서 제공된 서비스 발화 문장들을 추천 발화 문장과 비교함으로써, 추천 발화 문장이 보이스 어시스턴트 서비스에 의해 지원되는지를 판단할 수 있다. 프로세서(1700)는 보이스 어시스턴트 서비스에서 제공된 서비스 발화 문장들 중에서 추천 발화 문장에 관련된 서비스 발화 문장을 선택할 수 있다. 또한, 프로세서(1700)는 선택된 서비스 발화 문장 및 추천 발화 문장의 유사도를 산출하고, 산출된 유사도가 기설정된 임계치보다 큰 경우에 추천 발화 문장이 보이스 어시스턴트 서비스에 의해 지원된다고 판단할 수 있다. 예를 들어, 프로세서(1700)는 TF-IDF (Term Frequency - Inverse Document Frequency) 기반의 Cosine Similarity 기법을 이용하여, 추천 발화 문장과 서비스 발화 문장의 유사도를 산출할 수 있다.
복수의 추천 발화 문장이 생성된 경우에, 프로세서(1700)는 유사도에 기초하여 복수의 추천 발화 문장들 중에서 사용자에게 제공할 추천 발화 문장을 선택할 수 있다. 예를 들어, 프로세서는 복수의 추천 발화 문장 중에서 유사도가 가장 높은 추천 발화 문장(또는 소정 개수의 추천 발화 문장)을 선택할 수 있다.
일부 실시예에 따라, 프로세서(1700)는, 추천 발화 문장 표시 모듈(1616)을 실행함으로써, 추천 발화 문장을 디바이스(1000)의 디스플레이부(1200) 상에 디스플레이할 수 있다. 프로세서(1700)는 보이스 어시스턴트 서비스에 의해 지원되는 추천 발화 문장을 포함하는 소정의 GUI를 디스플레이부(1200) 상에 디스플레이하고, 사용자의 피드백 입력을 수신할 수 있다.
프로세서(1700)는 사용자의 피드백 입력에 따라, 추천 발화 문장을 수정할 수 있다. 이 경우, 프로세서(1700)는 추천 발화 문장을 수정하기 위한 GUI를 디스플레이부(1200) 상에 디스플레이하고, 디스플레이된 GUI를 통한 사용자 입력에 따라 추천 발화 문장을 수정할 수 있다. 또는, 프로세서(1700)는 추천 발화 문장을 수정하기 위한 사용자의 발화를 수신하고, 사용자의 발화에 기초하여 추천 발화 문장을 수정할 수 있다.
또한, 프로세서(1700)는, 추천 발화 문장에 대응되는 보이스 어시스턴트 서비스의 기능을 실행할 수 있다. 만약, 추천 발화 문장이 사용자에 의해 수정된 경우에는, 프로세서(1700)는 수정된 추천 발화 문장에 대응되는 보이스 어시스턴트 서비스의 기능을 수행할 수 있다.
일부 실시예에 따라, 프로세서(1700)는 보이스 어시스턴트 모듈(1620)을 실행함으로써 사용자에게 보이스 어시스턴트 서비스를 제공할 수 있다. 보이스 어시스턴트 모듈(1620)은 보이스 어시스턴트 서비스를 위한 사용자 입력을 해석하고, 사용자 입력에 대한 응답 정보를 생성할 수 있다. 보이스 어시스턴트 모듈(1620)은 NLU 모델(1621), 응답 정보 생성 모듈(1622) 및 NLG 모델(1623)을 포함할 수 있다.
프로세서(1700)는 NLU 모델(1621)을 실행함으로써, 사용자의 발화 입력으로부터 생성되는 문장 또는 사용자의 단발화 입력에 관련된 추천 발화 문장을 해석할 수 있다. NLU 모델(1621)은 사용자 입력에 대응되는 텍스트를 해석하여 사용자의 의도에 관련된 인텐트 및 파라미터를 출력할 수 있다. 인텐트는 NLU 모델(1621)을 이용하여 텍스트를 해석함으로써 결정되는 정보로서, 예를 들어, 사용자의 의도를 나타낼 수 있다. 인텐트는, 사용자의 의도를 나타내는 의도 정보뿐 아니라, 사용자의 의도를 나타내는 정보에 대응하는 수치 값을 포함할 수 있다. 수치 값은, 텍스트가 특정 의도를 나타내는 정보와 관련될 확률을 나타낼 수 있다. 예를 들어, NLU 모델(1621)을 이용하여 텍스트를 해석한 결과, 사용자의 의도를 나타내는 정보가 복수 개 획득되는 경우, 각 의도 정보에 대응되는 수치 값이 최대인 의도 정보가 인텐트로 결정될 수 있다. 또한, 파라미터는 인텐트와 관련된 세부 정보를 나타낼 수 있다. 파라미터는 인텐트와 관련된 정보로서, 하나의 인텐트에 복수 종류의 파라미터가 대응될 수 있다.
프로세서(1700)는 응답 정보 생성 모듈(1622)을 실행함으로써, 텍스트의 해석 결과에 기초하여 텍스트에 대한 응답 정보를 생성할 수 있다. 응답 정보는, 텍스트에 대한 응답에 관련된 데이터로서, 예를 들어, 디바이스(1000)의 응답 동작을 위한 데이터, 및 다른 디바이스 및/또는 서버에게 제공되는 데이터를 포함할 수 있다. 응답 정보 생성 모듈(1622)은 NLU 모델(1621)의 출력 값에 기초하여 사용자의 의도에 따른 디바이스(1000) 및 다른 디바이스의 액션들을 플래닝할 수 있다. 예를 들어, 응답 정보 생성 모듈(1622)은 텍스트의 해석 결과, DB(1630)에 저장된 발화 데이터 및 액션 데이터를 이용하여, 사용자의 의도에 따른 디바이스(1000) 및/또는 다른 디바이스의 액션들을 플래닝할 수 있다. 또한, 응답 정보 생성 모듈(1622)은 사용자의 의도에 따른 디바이스(1000) 및/또는 다른 디바이스의 액션들을 플래닝함으로써, 사용자 입력에 대응되는 텍스트에 대한 응답 정보를 생성할 수 있다. 예를 들어, 응답 정보 생성 모듈(1622)은 NLG 모델(1623)을 이용하여 사용자의 의도에 따른 응답 메시지를 생성할 수 있다. 또한, 예를 들어, 응답 정보 생성 모듈(1622)은 텍스트, 이미지, 동영상 등과 같이, 사용자에 제공할 응답 컨텐츠를 획득할 수 있다. 또한, 예를 들어, 응답 정보 생성 모듈(1622)은 사용자의 디바이스(1000) 및/또는 다른 디바이스의 동작들을 결정하고, 디바이스(1000) 및/또는 다른 디바이스를 제어하기 위한 제어 명령을 생성할 수도 있다.
DB(1630)는 애플리케이션 이력 데이터 DB(1631), 발화 이력 데이터 DB(1632), 단어 DB(1633) 및 기능 DB(1634)를 포함할 수 있다. 애플리케이션 이력 데이터(1631)는 디바이스(1000)에서 실행된 애플리케이션의 실행 이력에 관한 애플리케이션 이력 데이터를 저장할 수 있다. 발화 이력 데이터 DB(1632)는 보이스 어시스턴트 서비스를 위하여 사용자로부터 수신되는 발화 문장 및 사용자에게 제공되는 발화 문장을 저장할 수 있다. 단어 DB(1633)는 단어 및 유사 단어에 관한 정보를 저장할 수 있다. 기능 DB(1634)는 디바이스(1000)의 기능 및/또는 다른 디바이스의 기능에 관한 정보를 저장할 수 있다. 기능 DB(1634)는 디바이스(1000)의 신규 기능 및 다른 디바이스(미도시)의 신규 기능에 관한 정보가 추가됨으로써 업데이트될 수 있다.
한편, 디바이스(1000)는 서버와 연동 또는 통신함으로써 사용자에게 추천 발화 문장을 제공할 수 있다. 이 경우, 디바이스(1000)는 사용자의 단발화 입력에 관련된 추천 발화 문장을 서버에게 요청할 수 있으며, 서버는 본 명세서에 기재된 디바이스(1000)가 추천 발화 문장을 생성하기 위한 동작들 중 적어도 일부를 수행할 수 있다. 또한, 서버는 본 명세서에 기재된 디바이스(1000)가 애플리케이션 이력 데이터를 생성하고 관리하기 위한 동작들 중 적어도 일부를 수행할 수 있다. 이를 위하여, 서버의 저장부는 도 2에 도시된 디바이스(1000)의 저장부(1610)에 저장된 명령어들 중 적어도 일부를 저장하며, 서버의 프로세서는 서버의 저장부에 저장된 명령어들을 실행함으로써, 추천 발화 문장의 생성을 위한 동작, 및 애플리케이션 이력 데이터의 생성 및 관리를 위한 동작을 수행할 수 있다.
예를 들어, 디바이스(1000)는 단발화 입력의 텍스트를 서버에게 제공하고, 서버는 디바이스(1000)로부터 수신된 단발화 입력의 텍스트에 기초하여, 사용자의 단발화 입력에 관련된 애플리케이션 이력 데이터를 획득할 수 있다. 이 경우, 서버는 서버의 저장부에 미리 저장된 사용자의 애플리케이션 이력 데이터 중에서, 사용자의 단발화 입력에 관련된 애플리케이션 이력 데이터를 검색할 수 있다. 서버의 저장부에 저장되는 애플리케이션 이력 데이터는, 예를 들어, 사용자의 디바이스(1000)에서 실행된 애플리케이션의 실행 이력을 나타내는 데이터 및 사용자의 다른 디바이스에서 실행된 애플리케이션의 실행 이력을 나타내는 데이터를 포함할 수 있다. 서버에 저장되는 애플리케이션 이력 데이터는, 예를 들어, 디바이스(1000)에서 생성된 이력 데이터, 다른 디바이스에서 생성된 이력 데이터 또는 서버에 의해 생성된 이력 데이터 중 적어도 하나를 포함할 수 있다. 또한, 서버는 단발화 입력에 관련된 애플리케이션 이력 데이터를 이용하여 사용자의 단발화 입력에 관련된 추천 발화 문장을 생성하고, 생성된 추천 발화 문장이 보이스 어시스턴트 서비스에 의해 지원되는지를 판단할 수 있다. 서버는 보이스 어시스턴트 서비스에 등록된 사용자의 디바이스(1000) 및 다른 디바이스에서 추천 발화 문장에 관련된 동작을 지원하는 지를 판단할 수 있다. 또한, 서버는, 서버의 통신 인터페이스를 통하여, 보이스 어시스턴트 서비스에 의해 지원되는 추천 발화 문장을 디바이스(1000)에게 제공할 수 있다.
도 3은 본 개시의 일 실시예에 따른 단발화 입력에 관련된 애플리케이션 이력 데이터가 생성되는 예시를 나타내는 도면이다.
도 3을 참조하면, 특정 품사를 가지는 용어에 관련된 애플리케이션 이력이 분석됨으로써, 단발화 입력에 관련된 사용자의 애플리케이션 이력 데이터가 생성될 수 있다.
디바이스(1000)는 단발화 입력의 종류에 따라 미리 설정된 종류의 사용자 이력을 수집하여, 사용자의 애플리케이션 이력 데이터를 생성할 수 있다. 예를 들어, 단발화 입력의 종류가 동사인 경우에, 디바이스(1000)는 사용자의 애플리케이션의 액티비티, 애플리케이션의 특정 기능 및 애플리케이션 내의 intent 등을 수집하고 분석할 수 있다. 예를 들어, "보내"라는 동사에 관련된 사용자의 애플리케이션 이력 데이터를 생성하기 위하여, 디바이스(1000)는 애플리케이션 이력 데이터 생성 모듈(1612)을 실행함으로써, 동사에 관련된 사용자 이력을 수집하고 분석할 수 있다. 디바이스(1000)는 사용자에 의해 실행된 애플리케이션 내의 intent 사용 이력 (예컨대, ACTION_SEND / ACTION_SENDTO)을 수집하고, 디바이스(1000)에서 실행된 공유 기능의 사용 이력(예컨대, ShareVia 기능의 사용 이력)을 수집하고, 디바이스(1000)의 데이터 전송에 관련된 GUI의 사용 이력 등을 수집할 수 있다. 또한, 디바이스(1000)는 수집된 데이터를 분석함으로써, 동사 "보내"에 관련된 사용자의 애플리케이션 이력 데이터를 생성할 수 있다.
예를 들어, 단발화 입력의 종류가 명사인 경우에, 디바이스(1000)는 명사 키워드가 애플리케이션에서 사용된 이력, 기기의 명칭, 애플리케이션의 명칭, 콘텐트의 명칭 등을 수집하고 분석할 수 있다. 예를 들어, "텔레비전"이라는 명사에 관련된 사용자의 애플리케이션 이력 데이터를 생성하기 위하여, 디바이스(1000)는 애플리케이션 이력 데이터 생성 모듈(1612)을 실행함으로써, 명사에 관련된 사용자 이력을 수집하고 분석할 수 있다. 이 경우, 디바이스(1000)는 사용자가 텔레비전을 사용한 이력, 사용자가 텔레비전이라는 키워드를 이용하여 지식 검색을 수행한 이력, 및 사용자가 텔레비전 애플리케이션을 사용한 이력 등을 수집할 수 있다. 디바이스(1000)는 수집된 데이터를 분석함으로써, 명사 "텔레비전"에 관련된 사용자의 애플리케이션 이력 데이터를 생성할 수 있다.
디바이스(1000)가 수집하는 애플리케이션 이력 데이터는 디바이스(1000) 및/또는 하나 이상의 다른 디바이스에서 실행된 애플리케이션에 관련된 이력 데이터일 수 있으며, 단발화 입력의 종류에 따라 수집되는 사용자 이력의 종류가 다양하게 설정될 수 있다. 또한, 디바이스(1000)는 다양한 단발화 입력에 대한 응답을 효율적으로 제공하기 위하여, 여러 용어에 관련된 사용자의 애플리케이션 이력 데이터를 미리 생성하여 DB(1630)에 저장해둘 수 있다.
도 4는 본 개시의 일 실시예에 따른 사용자의 애플리케이션 이력 데이터의 테이블의 일례를 나타내는 도면이다.
도 4를 참조하면, 본 개시의 일 실시예에 따른 사용자의 애플리케이션 이력 데이터의 테이블은 App 필드(40), Action 필드(41), Parameter 필드(42), Time 필드(43) 및 Count 필드(44)를 포함할 수 있다.
App 필드(40)는 사용자에 의해 실행된 애플리케이션의 식별값이 기록될 수 있다. 예를 들어, App 필드(40)에는, Message, SamsungPay, ShareVia, Internet, Smartthings 등이 기록될 수 있다.
Action 필드(41)에는 사용자에 의해 실행된 애플리케이션의 액션이 기록될 수 있다. 예를 들어, Action 필드(41)에는, Send, Search, Up, Off 등의 액션을 식별하기 위한 값이 기록될 수 있다.
Parameter 필드(42)에는 사용자에 의해 실행된 애플리케이션의 액션에 관한 세부 정보가 기록될 수 있다. 예를 들어, Parameter 필드(42)에는, Message 애플리케이션의 Send와 관련하여 {what: Text, to: 엄마}가 기록되고, SamsungPay 애플리케이션의 Send와 관련하여 {what: Money, to: 아빠}가 기록될 수 있다.
또한, Time 필드(43)에는 애플리케이션의 액션의 실행 시간이 기록되며, Count 필드(44)에는 애플리케이션의 액션의 누적 실행 횟수가 기록될 수 있다.
도 5는 본 개시의 일 실시예에 따른 동사인 단발화 입력에 대한 애플리케이션 이력 데이터를 추출하는 예시를 나타내는 도면이다.
도 5를 참조하면, "보내"라는 단발화 입력이 디바이스(1000)에 입력되면, 디바이스(1000)는 단발화 입력 판단 모듈(1611)을 실행함으로써 "보내"라는 입력이 단발화 입력인지를 판단할 수 있다. 단발화 입력 판단 모듈(1611)은 Pos Tagger(50) 및 VerbNoun Detector(51)를 이용하여 "보내"라는 입력이 동사 또는 명사의 단발화 입력인지를 판단하고, "보내"라는 입력의 길이가 기설정된 수치 이하인지를 판단(52)할 수 있다.
디바이스(1000)는 애플리케이션 이력 데이터 추출 모듈(1612)을 실행함으로써, "보내"라는 단발화 입력에 관련된 애플리케이션 이력 데이터를 DB(1630)로부터 추출할 수 있다. 애플리케이션 이력 데이터 추출 모듈(1612)은 Log Converter(53)를 이용하여 "보내"에 관련된 애플리케이션 이력 데이터를 검색하기 위한 검색 쿼리(Send/Action)를 생성할 수 있다. 애플리케이션 이력 데이터 추출 모듈(1612)은, 생성된 검색 쿼리를 이용하여 Log filtering(54)을 수행함으로써, Send인 Action 필드의 값을 가지는 애플리케이션 이력 데이터(55)를 애플리케이션 이력 데이터 테이블에서 검색할 수 있다.
또한, 애플리케이션 이력 데이터 추출 모듈(1612)은 검색된 애플리케이션 이력 데이터(55) 중에서 최근 및/또는 자주 실행된 동작에 관한 데이터를 추출하기 위하여, 검색된 애플리케이션 이력 데이터(55)를 평가할 수 있다(56). 애플리케이션 이력 데이터 추출 모듈(1612)은 검색된 애플리케이션 이력 데이터(55)를 평가하기 위하 다양한 기준을 이용할 수 있으며, 평가 점수(57)에 기초하여 Message에 관한 이력 데이터(58) 및 ShareVia에 관한 이력 데이터(59)를 선택할 수 있다. Message에 관한 이력 데이터(58) 및 ShareVia에 관한 이력 데이터(59)는, "보내"라는 발화 입력에 대한 추천 발화 문장을 생성하는데 이용될 수 있다.
도 6은 본 개시의 일 실시예에 따른 명사인 단발화 입력에 대한 애플리케이션 이력 데이터를 추출하는 예시를 나타내는 도면이다.
도 6을 참조하면, "텔레비전"이라는 단발화 입력이 디바이스(1000)에 입력되면, 디바이스(1000)는 단발화 입력 판단 모듈(1611)을 실행함으로써 "텔레비전"이라는 입력이 단발화 입력인지를 판단할 수 있다. 단발화 입력 판단 모듈(1611)은 POS Tagger(60) 및 VerbNoun Detector(61)를 이용하여 "텔레비전"이라는 입력이 동사 또는 명사의 단발화 입력인지를 판단하고, "텔레비전"이라는 입력의 길이가 기설정된 수치 이하인지를 판단(62)할 수 있다.
디바이스(1000)는 애플리케이션 이력 데이터 추출 모듈(1612)을 실행함으로써, "텔레비전"이라는 단발화 입력에 관련된 애플리케이션 이력 데이터를 DB(1630)로부터 추출할 수 있다. 애플리케이션 이력 데이터 추출 모듈(1612)은 Log Converter(63)를 이용하여 "텔레비전"에 관련된 애플리케이션 이력 데이터를 검색하기 위한 검색 쿼리(TV/App, TV/Parameter)를 생성할 수 있다. 애플리케이션 이력 데이터 추출 모듈(1612)은, 생성된 검색 쿼리를 이용하여 Log filtering(64)을 수행함으로써, TV인 App 필드의 값에 TV가 포함되거나 Parameter 필드 값에 TV가 포함되는 애플리케이션 이력 데이터(65)를 애플리케이션 이력 데이터 테이블에서 검색할 수 있다.
또한, 애플리케이션 이력 데이터 추출 모듈(1612)은 검색된 애플리케이션 이력 데이터(65) 중에서 최근 많이 실행된 동작에 관한 데이터를 추출하기 위하여, 검색된 애플리케이션 이력 데이터(65)를 평가할 수 있다(66). 애플리케이션 이력 데이터 추출 모듈(1612)은 검색된 애플리케이션 이력 데이터(65)를 평가하기 위하 다양한 기준을 이용할 수 있으며, 평가 점수(67)에 기초하여 SmartThings에 관한 이력 데이터(68)을 선택할 수 있다. SmartThings에 관한 이력 데이터(68)는, "텔레비전"이라는 발화 입력에 대한 추천 발화 문장을 생성하는데 이용될 수 있다.
도 7은 본 개시의 일 실시예에 따른, 동사의 단발화 입력에 대한 추천 발화 문장을 생성하는 예시를 나타내는 도면이다.
도 7을 참조하면, 디바이스(1000)는 추천 발화 문장 생성 모듈(1614)을 실행함으로써, 단발화 입력인 "보내"에 관련된 추천 발화 문장을 생성할 수 있다. 추천 발화 문장 생성 모듈(1614)은 단발화 입력의 품사와 다른 품사에 관련된 애플리케이션 이력 데이터를 애플리케이션 이력 데이터 DB(1631)로부터 추출할 수 있다. 예를 들어, 추천 발화 문장 생성 모듈(1614)은 "보내"의 품사인 동사와 다른 품사인 명사에 관련된 애플리케이션 이력 데이터를 애플리케이션 이력 데이터 DB(1631)로부터 추출할 수 있다. 이 경우, 추천 발화 문장 생성 모듈(1614)은, "보내"와 관련하여 애플리케이션 이력 데이터 생성 모듈(1612)에 의해 선택된 애플리케이션 이력 데이터를 이용하여, "보내"와 관련된 명사를 포함하는 애플리케이션 이력 데이터를 애플리케이션 이력 데이터 DB(1631)로부터 추출할 수 있다.
또한, 추천 발화 문장 생성 모듈(1614)은 명사와 관련된 애플리케이션 이력 데이터 및 단발화 입력인 "보내"를 이용하여, 추천 발화 문장에 포함될 단어들을 결정할 수 있다. 이 경우, 단발화 입력의 품사와 다른 품사의 단어가 추천 발화 문장에 포함될 단어로 결정될 수 있으며, 추천 발화 문장에 포함될 단어의 종류 및 개수는 다양한 기준에 따라 결정될 수 있다. 예를 들어, 추천 발화 문장 생성 모듈(1614)은, 발화 입력(동사), App 명(명사) 및 Content(명사)를 추천 발화 문장에 포함될 단어들의 종류로 결정할 수 있다.
또한, 추천 발화 문장 생성 모듈(1614)은 결정된 단어들의 종류들에 각각 대응되는 단어들을 결정하고, 결정된 단어들을 포함하는 추천 발화 문장을 생성할 수 있다. 예를 들어, 추천 발화 문장 생성 모듈(1614)은 결정된 단어들의 종류에 대응되는 단어를 결정하기 위하여, "보내"와 관련된 애플리케이션 이력 데이터를 이용할 수 있으며, "갤러리(App 명)에서 사진(Content)을 보내줘(발화 입력)."를 추천 발화 문장으로 생성할 수 있다.
이 경우, 추천 발화 문장 생성 모듈(1614)은 발화 문장 생성을 위하여 미리 설정된 템플릿을 이용하여 추천 발화 문장을 생성할 수 있다. 발화 문장 생성을 위한 템플릿은 애플리케이션 이력 데이터에 포함된 항목들에 따라 각각 상이하게 설정될 수 있다. 예를 들어, 애플리케이션 이력 데이터 내의 APP 명, Action, 및 파라미터들의 조합에 대응되는 템플릿이 미리 저장될 수 있다.
이후, 추천 발화 문장 평가 모듈(1615)은 서비스 발화 문장을 추천 발화 문장과 비교함으로써, 서비스 발화 문장과 추천 발화 문장의 유사도를 산출할 수 있다. 추천 발화 문장 평가 모듈(1615)은, 예를 들어, TF-IDF 기반의 Cosine Similarity 기법을 이용하여 서비스 발화 문장과 추천 발화 문장의 유사도를 산출할 수 있다. 또한, 추천 발화 문장 평가 모듈(1615)은, 산출된 유사도에 기초하여, 추천 발화 문장을 사용자에게 제공할 지를 결정할 수 있다.
도 8은 본 개시의 일 실시예에 따른, 명사의 단발화 입력에 대한 추천 발화 문장을 생성하는 예시를 나타내는 도면이다.
도 8을 참조하면, 디바이스(1000)는 추천 발화 문장 생성 모듈(1614)을 실행함으로써, 단발화 입력인 "텔레비전"에 관련된 추천 발화 문장을 생성할 수 있다. 추천 발화 문장 생성 모듈(1614)은 단발화 입력의 품사와 동일한 품사 및 단발화 입력의 품사와 다른 품사에 관련된 애플리케이션 이력 데이터를 애플리케이션 이력 데이터 DB(1631)로부터 추출할 수 있다. 예를 들어, 추천 발화 문장 생성 모듈(1614)은 "텔레비전"의 품사인 명사와 동일한 품사인 명사 및 "텔레비전"의 품사인 명사와 다른 품사인 동사에 관련된 애플리케이션 이력 데이터를 애플리케이션 이력 데이터 DB(1631)로부터 추출할 수 있다. 이 경우, 추천 발화 문장 생성 모듈(1614)은, "텔레비전"과 관련하여 애플리케이션 이력 데이터 생성 모듈(1612)에 의해 선택된 애플리케이션 이력 데이터를 이용하여, "텔레비전"과 관련된 명사 및 동사를 포함하는 애플리케이션 이력 데이터를 애플리케이션 이력 데이터 DB(1631)로부터 추출할 수 있다.
또한, 추천 발화 문장 생성 모듈(1614)은 명사 및 동사와 관련된 애플리케이션 이력 데이터 및 단발화 입력인 "텔레비전"을 이용하여, 추천 발화 문장에 포함될 단어들을 결정할 수 있다. 이 경우, 단발화 입력의 품사와 다른 품사의 단어가 추천 발화 문장에 포함될 단어로 결정될 수 있으며, 추천 발화 문장에 포함될 단어의 종류 및/또는 개수는 다양한 기준에 따라 결정될 수 있다. 예를 들어, 추천 발화 문장 생성 모듈(1614)은, 발화 입력(명사), Sub 기능(명사) 및 Action(동사)를 추천 발화 문장에 포함될 단어들의 종류로 결정할 수 있다.
또한, 추천 발화 문장 생성 모듈(1614)은 결정된 단어들의 종류들에 각각 대응되는 단어들을 결정하고, 결정된 단어들을 포함하는 추천 발화 문장을 생성할 수 있다. 예를 들어, 추천 발화 문장 생성 모듈(1614)은 결정된 단어들의 종류에 대응되는 단어들을 결정하기 위하여, "텔레비전"와 관련된 애플리케이션 이력 데이터를 이용할 수 있으며, "텔레비전(입력 발화)에서 볼륨(Sub 기능)을 올려줘(Action)."를 추천 발화 문장으로 생성할 수 있다. 이 경우, 추천 발화 문장 생성 모듈(1614)은 발화 문장 생성을 위하여 미리 설정된 템플릿을 이용하여 추천 발화 문장을 생성할 수 있다. 발화 문장 생성을 위한 템플릿은 애플리케이션 이력 데이터에 포함된 항목들에 따라 각각 상이하게 설정될 수 있다. 예를 들어, 애플리케이션 이력 데이터 내의 APP 명, Action, 및 파라미터들의 조합에 대응되는 템플릿이 미리 저장될 수 있다.
이후, 추천 발화 문장 평가 모듈(1615)은 서비스 발화 문장을 추천 발화 문장과 비교함으로써, 서비스 발화 문장과 추천 발화 문장의 유사도를 산출할 수 있다. 추천 발화 문장 평가 모듈(1615)은, 예를 들어, TF-IDF 기반의 Cosine Similarity 기법을 이용하여 서비스 발화 문장과 추천 발화 문장의 유사도를 산출할 수 있다. 또한, 추천 발화 문장 평가 모듈(1615)은, 산출된 유사도에 기초하여, 추천 발화 문장을 사용자에게 제공할 지를 결정할 수 있다.
도 9는 본 개시의 일 실시예에 따른 서비스 발화 문장을 이용하여 발화 입력에 관련된 애플케이션 이력 데이터를 검색하는 예시를 나타내는 도면이다.
도 9를 참조하면, 애플리케이션 이력 데이터 추출 모듈(1612)은 보이스 어시스턴트 서비스를 통해 제공되는 서비스 발화 문장을 이용하여 애플리케이션 이력 데이터 DB(1631)로부터 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 추출할 수 있다.
예를 들어, 사용자의 발화 입력이 "보내"인 경우에, 애플리케이션 이력 데이터 추출 모듈(1612)은 IntentClassifier(90)를 이용하여 보이스 어시스턴트 서비스의 서비스 발화 문장들 중에서 "보내"에 연관된 Intent를 가지는 서비스 발화 문장을 추출할 수 있다. IntentClassifier(90)는 머신 러닝 기법의 Classification 알고리즘을 이용하거나 TF-IDF를 이용하여 "보내"와 유사한 단어를 포함하는 서비스 발화 문장을 발화 이력 데이터 DB(1632)로부터 추출할 수 있다. 애플리케이션 이력 데이터 추출 모듈(1612)은, 예를 들어, "메시지에서 문자 보내줘.", "사진을 카카오톡으로 공유해줘.", 및 "삼성 페이에서 송금해줘."를 발화 이력 데이터 DB(1632)로부터 추출할 수 있다.
또한, 애플리케이션 이력 데이터 추출 모듈(1612)은 LogQueryGenerator(91)를 이용하여, 추출된 서비스 발화 문장으로부터 발화 입력에 관련된 애플리케이션 이력 데이터를 검색하기 위한 검색 쿼리를 생성할 수 있다. 애플리케이션 이력 데이터 추출 모듈(1612)은, 예를 들어, "메시지에서 문자 보내줘."로부터 "{App:Message} & {what: Text} & {Action: Send}"를 검색 쿼리로 생성할 수 있다. 또한, 애플리케이션 이력 데이터 추출 모듈(1612)은, 예를 들어, "홍길동에게 문자 보내줘."로부터 "{App:Message} & {what: Text} & {Action: Send} & {to: Person}"를 검색 쿼리로 생성할 수 있다. 또한, 애플리케이션 이력 데이터 추출 모듈(1612)은, 예를 들어, "사진을 카카오톡으로 공유해줘."로부터 "{App:ShareVia} & {what: Picture} & {Action: Send} & {to: AppName}" 를 검색 쿼리로 생성할 수 있다. 또한, 애플리케이션 이력 데이터 추출 모듈(1612)은, 예를 들어, "삼성 페이에서 송금해줘."로부터 "{App:SamsungPay} & {what: Money} & {Action: Send}"를 검색 쿼리로 생성할 수 있다. 이 경우, 생성된 검색 쿼리는, 애플리케이션 이력 데이터의 포맷을 가질 수 있다.
또한, 애플리케이션 이력 데이터 추출 모듈(1612)은 생성된 검색 쿼리를 이용하여 Logfiltering(92)을 수행함으로써, 애플리케이션 이력 데이터 중에서 "보내"에 관련된 애플리케이션 이력 데이터(93)을 추출할 수 있다.
도 10은 본 개시의 일 실시예에 따른, 보이스 어시스턴트 서비스의 서비스 발화 문장(100)을 이용하여 애플리케이션 이력 데이터(102)가 검색된 경우에, 추천 발화 문장이 생성되는 예시를 나타내는 도면이다.
도 10을 참조하면, 추천 발화 문장 생성 모듈(1614)은 서비스 발화 문장(100) 및 애플리케이션 이력 데이터(102)를 이용하여, 추천 발화 문장을 생성할 수 있다. 추천 발화 문장 생성 모듈(1614)은, EntityConverter를 이용하여 애플리케이션 이력 데이터(102) 내의 엔터티의 값(value)을 반영하는 문장 데이터(103)을 생성하고, LogQueryGenerator를 이용하여 서비스 발화 문장(100)으로부터 검색 쿼리를(101) 생성할 수 있다. 또한, 추천 발화 문장 생성 모듈(1614)은 생성된 문장 데이터(103) 및 검색 쿼리(101)의 유사도에 기초하여, 서비스 발화 문장(100)으로부터 생성된 검색 쿼리(101) 내에 포함된 엔터티의 값(value)을 애플리케이션 이력 데이터(102) 내의 엔터티의 값(value)으로 변경함으로써, 추천 발화 문장을 생성할 수 있다.
예를 들어, 서비스 발화 문장(100)으로부터 생성된 쿼리문이 "{App:Message} & {what: Text} & {Action: Send} & {to: Person}"이고, 애플리케이션 이력 데이터(102)로부터 검색된 이력 데이터로부터 생성된 문장 데이터(103)가 "{App:Message} & {what: Text} & {Action: Send} & {to: Person}-{value:엄마}"인 경우에, 추천 발화 문장 생성 모듈(1614)은 서비스 발화 문장(100) 내의 엔터티인 "{to: Person}"에 대응되는 값을 "{value:엄마}"로 결정할 수 있다. 또한, 추천 발화 문장 생성 모듈(1614)은 서비스 발화 문장(100) 내의 쿼리문을 수정함으로써 생성된 "{App:Message} & {what: Text} & {Action: Send} & {to: Person}-{value:엄마}"를 이용하여 "엄마에게 문자 보내줘"라는 추천 발화 문장을 생성할 수 있다.
도 11은 본 개시의 일 실시예에 따른 보이스 어시스턴트 서비스에 의해 지원되는 애플리케이션 이력 데이터(114)가 생성되는 예시를 나타내는 도면이다.
도 11을 참조하면, 보이스 어시스턴트 서비스에 의해 지원되는 애플리케이션 이력 데이터(114)가 미리 생성될 수 있으며, 디바이스(1000)는 보이스 어시스턴트 서비스에 의해 지원되는 애플리케이션 이력 데이터(114)를 이용하여 생성되는 추천 발화 문장을, 서비스 발화 문장과 비교하지 않고서도, 사용자에게 제공할 수 있다.
보이스 어시스턴트 서비스의 서비스 발화 문장으로부터 생성된 검색 쿼리를 나타내는 검색 쿼리 테이블(110) 및 보이스 어시스턴트 서비스를 통해 제공된 서비스 발화 문장을 나타내는 서비스 발화 문장 테이블(112)이 발화 이력 데이터 DB(1632)에 저장될 수 있다. 검색 쿼리 테이블(110)에는 서비스 발화 문장으로부터 생성된 검색 쿼리, 및 검색 쿼리에 대응되는 서비스 발화 문장의 인덱스 값이 기록될 수 있으며, 서비스 발화 문장 테이블(112)에는 서비스 발화 문장들이 누적하여 저장될 수 있다. 검색 쿼리 테이블(110) 및 서비스 발화 문장 테이블(112)은 단발화 입력에 대한 보이스 어시스턴트 서비스를 제공하기 위하여 미리 생성되고 저장될 수 있다.
또한, 사용자가 디바이스(1000)를 사용함에 따라 애플리케이션 이력 데이터 생성 모듈(1612)은 애플리케이션 이력 데이터(114)를 생성하고, 생성된 애플리케이션 이력 데이터(100)가 보이스 어시스턴트 서비스에 의해 지원되는 지를 판단할 수 있다. 애플리케이션 이력 데이터 생성 모듈(1612)은 생성된 애플리케이션 이력 데이터(114)를 검색 쿼리 테이블(110) 내의 검색 쿼리들과 비교함으로써, 생성된 애플리케이션 이력 데이터(114)가 보이스 어시스턴트 서비스에 의해 지원되는 지를 판단할 수 있다. 또한, 애플리케이션 이력 데이터 생성 모듈(1612)은 보이스 어시스턴트 서비스에 의해 지원되는 애플리케이션 이력 데이터(114)를 애플리케이션 이력 데이터 DB(1631)에 저장할 수 있다. 애플리케이션 이력 데이터 생성 모듈(1612)은 보이스 어시스턴트 서비스에 의해 지원되는 애플리케이션 이력 데이터(114)를 저장하는 경우에, 애플리케이션 이력 데이터(114)에 대응되는 쿼리문을 서비스 발화 문장으로부터 생성된 쿼리문의 형식으로 변환하여 저장(예를 들어, 검색어 테이블(110)에 또는 별도의 테이블 및/또는 DB에 저장)할 수 있다.
이후, 디바이스(1000)는 사용자의 단발화 입력이 수신되면, 보이스 어시스턴트에 의해 지원되는 애플리케이션 이력 데이터(114) 중에서 단발화 입력에 관련된 애플리케이션 이력 데이터를 추출하고, 추출된 애플리케이션 이력 데이터에 기초하여 추천 발화 문장을 획득할 수 있다.
도 12는 본 개시의 일 실시예에 따른 디바이스(1000)가 단발화 입력에 관련된 추천 문장을 제공하는 방법의 흐름도이다.
동작 S1200에서 디바이스(1000)는 사용자의 발화 입력을 수신할 수 있다. 디바이스(1000)는 마이크(1300)을 통하여 보이스 어시스턴트 서비스를 위한 사용자의 발화 입력을 수신할 수 있다.
동작 S1205에서 디바이스(1000)는 사용자의 발화 입력이 단발화 입력인지를 판단할 수 있다. 디바이스(1000)는 사용자의 발화 입력이 나타내는 용어에 대응되는 품사가 기설정된 품사이며, 사용자의 발화 입력이 나타내는 용어의 길이가 기설정된 임계치 이하인 경우에 사용자의 발화 입력을 단발화 입력으로 판단할 수 있다. 예를 들어, 디바이스(1000)는 POS Tagger(Part Of Speech Tagger)를 이용하여 사용자의 발화 입력에 대응되는 용어의 품사가 명사인지, 동사인지, 명사구인지 또는 동사구인지를 판단할 수 있다. 또한, 예를 들어, 단발화 입력에 대응되는 용어의 길이가 미리 설정될 수 있으며, 디바이스(1000)는 사용자의 발화 입력에 대응되는 용어의 길이가 미리 설정된 길이보다 작은 지를 판단할 수 있다.
동작 S1205에서의 판단 결과, 사용자의 발화 입력이 단발화 입력이 아니라고 판단되면 (또는 판단에 기초하여), 동작 S1210에서 디바이스(1000)는 발화 입력에 따른 보이스 어시스턴트 서비스를 제공할 수 있다. 이 경우, 디바이스(1000)는 NLU 모델(1621)을 이용하여 사용자의 발화 입력을 해석하고, 해석 결과에 관련된 보이스 어시스턴트 서비스를 사용자에게 제공할 수 있다.
동작 S1205에서의 판단 결과, 사용자의 발화 입력이 단발화 입력이라고 판단되면 (또는 판단에 기초하여), 동작 S1215에서 디바이스(1000)는 사용자가 하나 이상의 애플리케이션을 실행한 이력을 나타내는 애플리케이션 이력 데이터로부터 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 선택할 수 있다.
디바이스(1000)는 저장부(1600)에 저장된 애플리케이션 이력 데이터 중에서 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 추출할 수 있다. 디바이스(1000)는 사용자의 발화 입력에 대한 추천 발화 문장을 생성하기 위하여, 저장부(1600)에 저장된 애플리케이션 이력 데이터 중에서 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 검색하고 추출할 수 있다.
또한, 디바이스(1000)는, 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 검색하기 위한 검색 쿼리를 생성할 수 있다. 예를 들어, 사용자의 발화 입력이 동사 또는 동사구의 단발화 입력인 경우에, 디바이스(1000)는 디바이스(1000) 내의 애플리케이션에서 실행된 액션을 검색하기 위한 검색 쿼리를 생성할 수 있다. 이 경우, 사용자의 발화 입력에 대응되는 단어가 "보내(send)"인 경우에, 디바이스(1000)는 애플리케이션 이력 데이터 내의 액션을 검색하기 위한 "Action/send"를 검색 쿼리로 생성할 수 있다. 또한, 예를 들어, 사용자의 발화 입력이 명사 또는 명사구인 단발화 입력인 경우에, 디바이스(1000)는 애플리케이션의 명칭 및 애플리케이션에서 실행된 액션에 관한 파라미터를 검색하기 위한 검색 쿼리를 생성할 수 있다. 예를 들어, 사용자의 발화 입력에 대응되는 단어가 "TV"인 경우에, 디바이스(1000)는 애플리케이션 이력 데이터 내의 애플리케이션 명칭을 검색하기 위한 "App/TV", 및 애플리케이션 이력 데이터 내의 애플리케이션의 액션에 관한 파라미터를 검색하기 위한 "Para/TV"를 검색 쿼리로 생성할 수 있다.
한편, 상기에서는, 발화 입력된 단어를 검색 쿼리로 이용하여, 발화 입력에 관련된 애플리케이션 이력 데이터가 검색되는 것으로 설명되었지만, 이에 제한되지 않는다. 예를 들어, 디바이스(1000)는 발화 입력된 단어와 유사한 단어들을 유사 단어 DB(1633)로부터 추출하고, 발화 입력된 단어 및 추출된 유사 단어를 이용하여 검색 쿼리를 생성할 수 있다.
또한, 예를 들어, 보이스 어시스턴트 서비스에 의해 제공된 서비스 발화 문장을 이용하여 검색 쿼리가 생성될 수 있다. 이 경우, 디바이스(1000)는 발화 입력된 단어와 관련된 서비스 발화 문장을 획득할 수 있다. 디바이스(1000)는, 예를 들어, 머신 러닝 기반의 분류 알고리즘을 활용하여 발화 입력에 관련된 서비스 발화 문장을 획득하거나, 발화 입력된 단어와 TF-IDF(Term Frequency - Inverse Document Frequency)가 유사한 단어를 포함하는 서비스 발화 문장을 획득할 수 있다. 또한, 디바이스(1000)는 발화 입력과 관련된 서비스 발화 문장으로부터 애플리케이션 이력 데이터를 검색하기 위한 쿼리문을 생성할 수 있다. 이 경우, 생성되는 쿼리문은, 애플리케이션 이력 데이터의 포맷(예: 애플리케이션 이력 데이터를 검색하거나 쿼링할 수 있는 포맷, 애플리케이션 이력 데이터에 대응되는 필드를 가지는 형식 등)을 가지도록 생성될 수 있다.
또한, 디바이스(1000)는 생성된 검색 쿼리를 이용하여 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 검색할 수 있다. 예를 들어, 검색 쿼리가 "Action/send"인 경우에, 디바이스(1000)는 애플리케이션 이력 데이터 중에서, "Action"에 대응되는 값이 "send"인 이력 데이터를 검색할 수 있다. 검색 쿼리가 "App/TV" 및 "Para/TV"인 경우에, 디바이스(1000)는 애플리케이션 이력 데이터 중에서, "App"에 대응되는 값이 "TV"인 이력 데이터, 및 "Para" 값들 중에서 "TV"를 포함하는 이력 데이터를 검색할 수 있다. 또한, 디바이스(1000)는 검색된 이력 데이터들 중에서 소정 임계치 이상으로 실행된 이력 데이터를 필터링하여 선택할 수 있다.
동작 S1220에서 디바이스(1000)는 선택된 애플리케이션 이력 데이터에 기초하여 사용자의 발화 입력에 관련된 추천 발화 문장을 생성할 수 있다. 디바이스(1000)는 발화 입력된 단어 이외에 추천 발화 문장의 생성을 위한 단어를 결정할 수 있다. 발화 입력된 단어 이외에 추천 발화 문장의 생성을 위한 단어는, 예를 들어, 발화 입력된 단어의 품사와 다른 품사의 단어일 수 있다. 디바이스(1000)는 발화 입력된 단어와 관련된 애플리케이션 이력 데이터를 분석하여 추천 발화 문장의 생성을 위한 단어를 선택할 수 있다. 예를 들어, 발화 입력된 단어가 "보내"인 경우에, 프로세서(1700)는 "보내"와 관련된 애플리케이션 이력 데이터로부터 "보내"의 품사와 다른 품사의 단어들인 "갤러리 애플리케이션" 및 "사진"을 추천 발화 문장의 생성을 위한 단어들로서 선택할 수 있다. 또한, 예를 들어, 발화 입력된 단어가 "보내"인 경우에, 디바이스(1000)는 "보내"와 관련된 애플리케이션 이력 데이터로부터 "보내"의 품사와 다른 품사의 단어들인 "삼성 페이" 및 "돈"을 추천 발화 문장의 생성을 위한 단어들로서 선택할 수 있다.
디바이스(1000)는 발화 입력된 단어 및 애플리케이션 이력 데이터로부터 결정된 단어를 조합하여 추천 발화 문장을 생성할 수 있다. 예를 들어, 디바이스(1000)는 발화 입력된 단어인 "보내"를 애플리케이션 이력 데이터로부터 결정된 단어들인 "갤러리 애플리케이션" 및 "사진"과 조합하여, "갤러리 애플리케이션에서 사진을 보내."라는 추천 발화 문장을 생성할 수 있다. 또한, 디바이스(1000)는 발화 입력된 단어인 "보내"를 애플리케이션 이력 데이터로부터 결정된 단어들인 "삼성 페이" 및 "돈"과 조합하여, "삼성 페이로 돈을 보내"라는 추천 발화 문장을 생성할 수 있다.
이 경우, 추천 발화 문장의 일부 단어가 유사 단어로 수정될 수 있다. 예를 들어, "갤러리 애플리케이션에서 사진을 보내."는 "갤러리 애플리케이션을 통해 사진을 전송해."로 수정되고, "삼성 페이로 돈을 보내."는 "삼성 페이로 돈을 송금해"로 수정될 수 있다.
한편, 보이스 어시스턴트 서비스의 서비스 발화 문장을 이용하여 애플리케이션 이력 데이터가 검색된 경우에, 디바이스(1000)는 서비스 발화 문장 및 애플리케이션 이력 데이터를 이용하여, 추천 발화 문장을 생성할 수 있다. 디바이스(1000)는 서비스 발화 문장으로부터 생성된 쿼리문 내에 포함된 엔터티의 값(value)를 애플리케이션 이력 데이터 내의 엔터티의 값(value)으로 변경함으로써, 추천 발화 문장을 생성할 수 있다. 예를 들어, 서비스 발화 문장으로부터 생성된 쿼리문이 "{App:Message} & {what: Text} & {Action: Send} & {to: Person}"이고, 애플리케이션 이력 데이터로부터 검색된 이력 데이터로부터 생성된 문장 데이터가 "{App:Message} & {what: Text} & {Action: Send} & {to: Person}-{value:엄마}"인 경우에, 프로세서(1700)는 서비스 발화 문장 내의 엔터티인 "{to: Person}"에 대응되는 값을 "{value:엄마}"로 결정할 수 있다. 또한, 프로세서(1700)는 서비스 발화 문장 내의 쿼리문을 수정함으로써 생성된 "{App:Message} & {what: Text} & {Action: Send} & {to: Person}-{value:엄마}"를 이용하여 "엄마에게 문자 보내줘"라는 추천 발화 문장을 생성할 수 있다.
한편, 디바이스(1000)는 보이스 어시스턴트 서비스에 의해 지원되는 신규 기능을 이용하여 추천 발화 문장을 수정할 수도 있다. 디바이스(1000)는 사용자가 자주 사용하지 않는 애플리케이션의 기능 또는 애플리케이션의 신규 기능 중 적어도 하나를 고려하여, 생성된 추천 발화 문장을 수정할 수 있다. 이 경우, 디바이스(1000)는 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터로부터 사용자의 발화 입력에 관련된 기능을 식별하고, 식별된 기능과 관련된 애플리케이션의 신규 기능이 있는 경우에, 신규 기능에 기초하여 추천 발화 문장을 생성할 수도 있다. 예를 들어, 생성된 추천 발화 문장이 "메신저 애플리케이션으로 문자를 보내."인 경우에, 디바이스(1000)는 추천 발화 문장을 수정하여 "카카오톡 애플리케이션으로 문자를 보내."를 생성할 수 있다. 또한, 디바이스(1000)는 예를 들어, "삼성 페이로 돈을 송금해."라는 추천 발화 문장을 "카카오 페이로 돈을 송금해"로 수정할 수 있다.
동작 S1225에서 디바이스(1000)는 추천 발화 문장이 보이스 어시스턴트 서비스에 의해 지원되는지를 판단할 수 있다. 디바이스(1000)는 추천 발화 문장에 대응되는 기능이 보이스 어시스턴트 서비스에 관련된 디바이스(1000) 및/또는 다른 디바이스에 의해 실행가능한 지를 식별할 수 있다. 이를 위하여, 디바이스(1000)는 보이스 어시스턴트 서비스에서 제공된 서비스 발화 문장들을 추천 발화 문장과 비교함으로써, 추천 발화 문장이 보이스 어시스턴트 서비스에 의해 지원되는지를 판단할 수 있다. 디바이스(1000)는 보이스 어시스턴트 서비스에서 제공된 서비스 발화 문장들 중에서 추천 발화 문장에 관련된 서비스 발화 문장을 선택할 수 있다. 또한, 디바이스(1000)는 선택된 서비스 발화 문장 및 추천 발화 문장의 유사도를 산출하고, 산출된 유사도가 기설정된 임계치보다 큰 경우에 추천 발화 문장이 보이스 어시스턴트 서비스에 의해 지원된다고 판단할 수 있다. 예를 들어, 프로세서(1700)는 TF-IDF (Term Frequency - Inverse Document Frequency) 기반의 Cosine Similarity 기법을 이용하여, 추천 발화 문장과 서비스 발화 문장의 유사도를 산출할 수 있다.
동작 S1225에서의 판단 결과, 추천 발화 문장이 보이스 어시스턴트 서비스에 의해 지원되지 않는다고 판단되면 (또는 판단에 기초하여), 디바이스(1000)는 다른 추천 발화 문장을 생성 또는 선택할 수 있다.
동작 S1225에서의 판단 결과, 추천 발화 문장이 보이스 어시스턴트 서비스에 의해 지원된다고 판단되면 (또는 판단에 기초하여), 동작 S1230에서 디바이스(1000)는 추천 발화 문장을 디바이스(1000)의 화면 상에 디스플레이할 수 있다. 보이스 어시스턴트 서비스에 의해 지원되는 복수의 추천 발화 문장이 생성된 경우에 (또는 생성에 기초하여), 디바이스(1000)는 유사도에 기초하여 복수의 추천 발화 문장들 중에서 사용자에게 제공할 추천 발화 문장을 선택할 수 있다.
디바이스(1000)는 보이스 어시스턴트 서비스에 의해 지원되는 추천 발화 문장을 포함하는 소정의 GUI를 디스플레이부(1200) 상에 디스플레이(및/또는 보이스 어시스턴트 서비스에 의해 지원되는 추천 발화 문장을 포함하는 오디오 쿼리 또는 신호를 출력)하고, 사용자의 피드백 입력을 수신할 수 있다.
디바이스(1000)는 사용자의 피드백 입력에 따라, 추천 발화 문장을 수정할 수 있다. 이 경우, 디바이스(1000)는 추천 발화 문장을 수정하기 위한 GUI를 디스플레이부(1200) 상에 디스플레이하고, 디스플레이된 GUI를 통한 사용자 입력에 따라 추천 발화 문장을 수정할 수 있다. 또는, 디바이스(1000)는 추천 발화 문장을 수정하기 위한 사용자의 발화를 수신하고, 사용자의 발화에 기초하여 추천 발화 문장을 수정할 수 있다.
또한, 디바이스(1000)는, 추천 발화 문장에 대응되는 보이스 어시스턴트 서비스의 기능을 실행할 수 있다. 만약, 추천 발화 문장이 사용자에 의해 수정된 경우에는, 디바이스(1000)는 수정된 추천 발화 문장에 대응되는 보이스 어시스턴트 서비스의 기능을 수행할 수 있다.
하나 이상의 실시예에서 인공지능과 관련된 기능은 프로세서와 메모리를 통해 동작된다. 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다. 인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다.
본 개시에 따른 보이스 어시스턴트 서비스에서, 사용자의 음성을 인식하고 사용자의 의도를 해석하기 위한 방법으로, 디바이스는 마이크를 통해 아날로그 신호인 음성 신호를 수신하고, ASR(Automatic Speech Recognition)모델을 이용하여 음성 부분을 컴퓨터로 판독 가능한 텍스트로 변환할 수 있다. 자연어 이해(Natural Language Understanding, NLU) 모델을 이용하여 변환된 텍스트를 해석하여, 사용자의 발화 의도를 획득할 수 있다. 여기서 ASR 모델 또는 NLU 모델은 인공지능 모델일 수 있다. 인공지능 모델은 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계된 인공지능 전용 프로세서에 의해 처리될 수 있다. 인공지능 모델은 학습을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다.
언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리(Natural Language Processing), 기계 번역(Machine Translation), 대화 시스템(Dialog System), 질의 응답(Question Answering), 음성 인식/합성(Speech Recognition/Synthesis) 등을 포함한다.
하나 이상의 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 또는 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터를 포함할 수 있다.
또한, 컴퓨터에 의해 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
하나 이상의 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 명세서에서, "부"는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 적어도 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (15)

  1. 보이스 어시스턴트 서비스를 제공하는 디바이스가 사용자의 발화 입력에 관련된 추천 발화 문장을 제공하는 방법에 있어서,
    사용자의 발화 입력을 수신하는 동작;
    상기 발화 입력이 단발화 입력인지를 판단하는 동작;
    상기 발화 입력이 단발화 입력으로 판단됨에 기초하여, 상기 디바이스에서 상기 사용자에 의해 실행된 하나 이상의 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중에서, 상기 발화 입력에 관련된 애플리케이션 이력 데이터를 획득하는 동작;
    상기 발화 입력 및 상기 획득된 애플리케이션 이력 데이터를 이용하여, 상기 발화 입력에 관련된 추천 발화 문장을 생성하는 동작;
    상기 추천 발화 문장이 상기 디바이스에 의해 제공되는 상기 보이스 어시스턴트 서비스에 의해 지원되는 지를 판단하는 동작; 및
    상기 추천 발화 문장이 상기 보이스 어시스턴트 서비스에 의해 지원된다고 판단됨에 기초하여, 상기 추천 발화 문장을 출력하는 동작;
    을 포함하는, 방법.
  2. 제1 항에 있어서,
    상기 발화 입력에 관련된 애플리케이션 이력 데이터를 획득하는 동작은,
    상기 발화 입력에 포함된 단어를, 상기 하나 이상의 애플리케이션의 실행 이력을 나타내는 상기 애플리케이션 이력 데이터 내의 파라미터와 비교하는 동작;
    상기 비교에 기초하여, 상기 하나 이상의 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중에서, 상기 발화 입력에 관련된 애플리케이션 이력 데이터를 추출하는 동작;
    을 포함하며,
    상기 추천 발화 문장을 생성하는 동작은, 상기 추출된 애플리케이션 이력 데이터를 이용하여 상기 추천 발화 문장을 생성하는 동작을 포함하는, 방법.
  3. 제2 항에 있어서,
    상기 발화 입력에 관련된 애플리케이션 이력 데이터를 추출하는 동작은,
    상기 발화 입력에 관련된 애플리케이션 이력 데이터에 대응되는 동작의 실행 빈도에 기초하여, 상기 하나 이상의 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중에서, 상기 발화 입력에 관련된 애플리케이션 이력 데이터를 추출하는 동작을 포함하는, 방법.
  4. 제1 항에 있어서,
    상기 발화 입력이 상기 단발화 입력인지를 판단하는 동작은, 상기 발화 입력에 포함된 단어의 품사 또는 상기 발화 입력의 길이 중 적어도 하나에 기초하여 상기 발화 입력이 상기 단발화 입력인지를 판단하는 동작을 포함하는, 방법.
  5. 제1 항에 있어서,
    상기 추천 발화 문장을 생성하는 동작은,
    상기 발화 입력에 포함된 단어의 품사를 식별하는 동작;
    상기 애플리케이션 이력 데이터에 기초하여, 상기 식별된 품사와 다른 품사에 대응되는 추천 단어를 생성하는 동작; 및
    상기 발화 입력에 포함된 단어 및 상기 생성된 추천 단어를 이용하여, 상기 추천 발화 문장을 생성하는 동작;
    을 포함하는, 방법.
  6. 제1 항에 있어서,
    상기 추천 발화 문장이 상기 보이스 어시스턴트 서비스에 의해 지원되는 지를 판단하는 동작은, 상기 추천 발화 문장에 대응되는 기능이 상기 보이스 어시스턴트 서비스에 관련된 상기 디바이스 또는 다른 디바이스 중 적어도 하나에 의해 제공되는 지를 식별하는 동작을 포함하는, 방법.
  7. 제1 항에 있어서,
    상기 추천 발화 문장이 상기 보이스 어시스턴트 서비스에 의해 지원되는 지를 판단하는 동작은,
    상기 보이스 어시스턴트 서비스에서 제공된 서비스 발화 문장들 중에서 상기 추천 발화 문장에 관련된 서비스 발화 문장을 획득하는 동작;
    상기 획득된 서비스 발화 문장 및 상기 추천 발화 문장의 유사도를 획득하는 동작; 및
    상기 획득된 유사도에 기초하여, 상기 추천 발화 문장이 상기 보이스 어시스턴트 서비스에 의해 지원되는 지를 판단하는 동작;
    을 포함하는, 방법.
  8. 제1 항에 있어서,
    상기 출력된 추천 발화 문장에 대한 사용자의 선택 입력을 수신하는 동작; 및
    상기 출력된 추천 발화 문장이 상기 사용자에 의해 선택됨에 따라, 상기 선택된 추천 발화 문장에 기초하여, 상기 보이스 어시스턴트 서비스를 제공하는 동작;
    을 더 포함하는, 방법.
  9. 제1 항에 있어서,
    상기 하나 이상의 애플리케이션의 상기 실행 이력을 나타내는 상기 애플리케이션 이력 데이터는, 상기 발화 입력이 수신되기 이전에 상기 디바이스에 의해 미리 생성된 것인, 방법.
  10. 제1 항에 있어서,
    상기 디바이스에서 상기 사용자에 의해 실행된 상기 하나 이상의 애플리케이션의 실행 이력을 나타내는 상기 애플리케이션 이력 데이터를 생성하는 동작;
    상기 생성된 애플리케이션 이력 데이터 중에서, 상기 보이스 어시스턴트 서비스에 의해 지원되는 동작에 관련된 애플리케이션 이력 데이터를 선택하는 동작; 및
    상기 선택된 애플리케이션 이력 데이터를 상기 디바이스의 메모리에 저장하는 동작;
    을 더 포함하며,
    상기 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 추출하는 동작은, 상기 메모리에 저장된 애플리케이션 이력 데이터 중에서 상기 사용자의 발화 입력에 관련된 애플리케이션 이력 데이터를 추출하는 동작을 포함하는, 방법.
  11. 보이스 어시스턴트 서비스를 제공하는 디바이스에 있어서,
    사용자의 발화 입력을 수신하는 마이크로폰;
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 하나 이상의 인스트럭션을 실행하여 상기 사용자의 발화 입력과 관련된 추천 발화 문장 제공하는 프로세서;
    를 포함하며,
    상기 프로세서는, 상기 발화 입력이 단발화 입력인지를 판단하고, 상기 발화 입력이 단발화 입력임으로 판단됨에 기초하여, 상기 디바이스에서 상기 사용자에 의해 실행된 하나 이상의 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중에서, 상기 발화 입력에 관련된 애플리케이션 이력 데이터를 획득하고, 상기 발화 입력 및 상기 획득된 애플리케이션 이력 데이터를 이용하여, 상기 발화 입력에 관련된 추천 발화 문장을 생성하고, 상기 추천 발화 문장이 상기 디바이스에 의해 제공되는 상기 보이스 어시스턴트 서비스에 의해 지원되는 지를 판단하고, 상기 추천 발화 문장이 상기 보이스 어시스턴트 서비스에 의해 지원된다고 판단됨에 기초하여, 상기 추천 발화 문장을 출력하는, 디바이스.
  12. 제11 항에 있어서,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 발화 입력에 포함된 단어를, 상기 하나 이상의 애플리케이션의 실행 이력을 나타내는 상기 애플리케이션 이력 데이터 내의 파라미터와 비교하고, 상기 비교에 기초하여, 상기 하나 이상의 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중에서, 상기 발화 입력에 관련된 애플리케이션 이력 데이터를 추출하고, 상기 추출된 애플리케이션 이력 데이터를 이용하여 상기 추천 발화 문장을 생성하는 것인, 디바이스.
  13. 제12 항에 있어서,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 발화 입력에 관련된 애플리케이션 이력 데이터에 대응되는 동작의 실행 빈도에 기초하여, 상기 하나 이상의 애플리케이션의 실행 이력을 나타내는 애플리케이션 이력 데이터 중에서, 상기 발화 입력에 관련된 애플리케이션 이력 데이터를 추출하는 것인, 디바이스.
  14. 제11 항에 있어서,
    상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 발화 입력에 포함된 단어의 품사 또는 상기 발화 입력의 길이 중 적어도 하나에 기초하여 상기 발화 입력이 상기 단발화 입력인지를 판단하는 것인, 디바이스.
  15. 제1 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2022/001371 2021-01-28 2022-01-26 사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법 WO2022164192A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22700278.9A EP4064279A4 (en) 2021-01-28 2022-01-26 DEVICE AND METHOD FOR PROVIDING RECOMMENDED SENTENCES ASSOCIATED WITH USER STATEMENT INPUT
US17/587,823 US20220238107A1 (en) 2021-01-28 2022-01-28 Device and method for providing recommended sentence related to utterance input of user

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210012644A KR20220109238A (ko) 2021-01-28 2021-01-28 사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법
KR10-2021-0012644 2021-01-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/587,823 Continuation US20220238107A1 (en) 2021-01-28 2022-01-28 Device and method for providing recommended sentence related to utterance input of user

Publications (1)

Publication Number Publication Date
WO2022164192A1 true WO2022164192A1 (ko) 2022-08-04

Family

ID=81846475

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/001371 WO2022164192A1 (ko) 2021-01-28 2022-01-26 사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법

Country Status (2)

Country Link
KR (1) KR20220109238A (ko)
WO (1) WO2022164192A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115064168A (zh) * 2022-08-17 2022-09-16 广州小鹏汽车科技有限公司 语音交互方法、服务器和存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024071469A1 (ko) * 2022-09-28 2024-04-04 엘지전자 주식회사 인공지능 기기 및 그의 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010181651A (ja) * 2009-02-05 2010-08-19 Sharp Corp 選択問題自動作成装置
JP2013083796A (ja) * 2011-10-11 2013-05-09 Nippon Telegr & Teleph Corp <Ntt> 男女声識別方法、男女声識別装置及びプログラム
KR101505127B1 (ko) * 2013-03-15 2015-03-26 주식회사 팬택 음성 명령에 의한 오브젝트 실행 장치 및 방법
KR20180068850A (ko) * 2016-12-14 2018-06-22 삼성전자주식회사 전자 장치, 그의 가이드 제공 방법 및 비일시적 컴퓨터 판독가능 기록매체
KR101914548B1 (ko) * 2012-01-05 2018-11-02 엘지전자 주식회사 음성 인식 기능을 구비한 이동 단말기 및 그 검색 결과 제공 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010181651A (ja) * 2009-02-05 2010-08-19 Sharp Corp 選択問題自動作成装置
JP2013083796A (ja) * 2011-10-11 2013-05-09 Nippon Telegr & Teleph Corp <Ntt> 男女声識別方法、男女声識別装置及びプログラム
KR101914548B1 (ko) * 2012-01-05 2018-11-02 엘지전자 주식회사 음성 인식 기능을 구비한 이동 단말기 및 그 검색 결과 제공 방법
KR101505127B1 (ko) * 2013-03-15 2015-03-26 주식회사 팬택 음성 명령에 의한 오브젝트 실행 장치 및 방법
KR20180068850A (ko) * 2016-12-14 2018-06-22 삼성전자주식회사 전자 장치, 그의 가이드 제공 방법 및 비일시적 컴퓨터 판독가능 기록매체

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4064279A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115064168A (zh) * 2022-08-17 2022-09-16 广州小鹏汽车科技有限公司 语音交互方法、服务器和存储介质
CN115064168B (zh) * 2022-08-17 2022-12-13 广州小鹏汽车科技有限公司 语音交互方法、服务器和存储介质

Also Published As

Publication number Publication date
KR20220109238A (ko) 2022-08-04

Similar Documents

Publication Publication Date Title
WO2021040163A1 (en) Electronic device and method for providing conversational service
WO2019117466A1 (ko) 발화의 의미를 분석하기 위한 전자 장치 및 그의 동작 방법
WO2016167424A1 (ko) 답변 추천 장치, 자동 문장 완성 시스템 및 방법
WO2022164192A1 (ko) 사용자의 발화 입력에 관련된 추천 문장을 제공하는 디바이스 및 방법
WO2020080834A1 (en) Electronic device and method for controlling the electronic device
WO2020091350A1 (en) Electronic device and control method thereof
WO2020105856A1 (en) Electronic apparatus for processing user utterance and controlling method thereof
WO2020246702A1 (en) Electronic device and method for controlling the electronic device thereof
WO2020040595A1 (ko) 사용자 발화를 처리하는 전자 장치, 및 그 전자 장치의 제어 방법
WO2018174443A1 (en) Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium
WO2018093229A1 (en) Method and device applying artificial intelligence to send money by using voice input
EP3533015A1 (en) Method and device applying artificial intelligence to send money by using voice input
WO2020130447A1 (ko) 페르소나에 기반하여 문장을 제공하는 방법 및 이를 지원하는 전자 장치
WO2021029642A1 (en) System and method for recognizing user&#39;s speech
WO2021029643A1 (en) System and method for modifying speech recognition result
WO2019107674A1 (en) Computing apparatus and information input method of the computing apparatus
WO2021025465A1 (en) Method for recognizing voice and electronic device supporting the same
WO2021060728A1 (ko) 사용자 발화를 처리하는 전자 장치 및 그 작동 방법
WO2021107390A1 (en) Electronic device and method for controlling the electronic device
WO2022169172A1 (ko) 사용자의 질의를 처리하는 디바이스 및 그 동작 방법
WO2022092721A1 (ko) 대용어를 포함하는 텍스트에 관한 보이스 어시스턴트 서비스를 제공하는 시스템 및 방법
WO2022131566A1 (ko) 전자 장치 및 전자 장치의 동작 방법
WO2022139122A1 (ko) 전자 장치 및 이의 제어 방법
WO2020171545A1 (en) Electronic device and system for processing user input and method thereof
WO2020180000A1 (ko) 음성 인식 모델에서 사용되는 언어를 확장시키는 방법 및 음성 인식 모델을 포함하는 전자 장치

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2022700278

Country of ref document: EP

Effective date: 20220128

NENP Non-entry into the national phase

Ref country code: DE