KR20150005608A - Building multi-language processes from existing single-language processes - Google Patents

Building multi-language processes from existing single-language processes Download PDF

Info

Publication number
KR20150005608A
KR20150005608A KR1020147031587A KR20147031587A KR20150005608A KR 20150005608 A KR20150005608 A KR 20150005608A KR 1020147031587 A KR1020147031587 A KR 1020147031587A KR 20147031587 A KR20147031587 A KR 20147031587A KR 20150005608 A KR20150005608 A KR 20150005608A
Authority
KR
South Korea
Prior art keywords
language
input
component
machine translation
providing
Prior art date
Application number
KR1020147031587A
Other languages
Korean (ko)
Other versions
KR102092426B1 (en
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 마이크로소프트 코포레이션
Publication of KR20150005608A publication Critical patent/KR20150005608A/en
Application granted granted Critical
Publication of KR102092426B1 publication Critical patent/KR102092426B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems

Abstract

앵커 언어와 하나 이상의 언어 상호간을 번역하는 머신 번역 컴포넌트와 함께, 상이한 앵커 언어와 연관되는 기존 언어 컴포넌트를 재사용함으로써 하나 이상의 언어로 된 언어 입력을 수용할 수 있는 프로세서가 생성된다. 언어 입력은 이러한 입력을 그 언어로부터 앵커 언어로 번역하는 머신 번역 컴포넌트로 유도된다. 그 후, 이들 기존 언어 컴포넌트가 사용되어 응답 프로세싱을 개시하고 출력을 생성하는 데에 사용된다. 선택적으로, 출력은 머신 번역 컴포넌트를 통해 유도된다. 언어 식별자는 최초에 언어 입력을 수신할 수 있고 이러한 언어 입력이 제공되는 데 사용된 언어를 식별하여 적합한 머신 번역 컴포넌트를 선택할 수 있다. 또한, 머신 번역 컴포넌트와, 앵커 언어와 연관되는 언어 컴포넌트를 포함하는 하이브리드 프로세스는 단일 언어 프로세스가 시간이 흐름에 따라 생성되는 시작 구성체(initiating construct)로서 기능할 수도 있다. A processor is created that can accommodate language input in one or more languages by reusing existing language components associated with different anchor languages, with a machine translation component that translates between the anchor language and one or more languages. Language input is directed to a machine translation component that translates these inputs from that language into an anchor language. These existing language components are then used to initiate response processing and generate output. Optionally, the output is derived via a machine translation component. The language identifier can initially receive the language input and identify the language used to provide such language input to select the appropriate machine translation component. In addition, a hybrid process including a machine translation component and a language component associated with an anchor language may function as an initiating construct in which a single language process is created over time.

Figure P1020147031587
Figure P1020147031587

Description

기존의 단일 언어 프로세스로부터 다수의 언어 프로세스를 구축하는 기법{BUILDING MULTI-LANGUAGE PROCESSES FROM EXISTING SINGLE-LANGUAGE PROCESSES}TECHNICAL FIELD [0001] The present invention relates to a method for constructing a plurality of language processes from an existing single language process,

종래, 컴퓨팅 디바이스의 사용자는 이 컴퓨팅 디바이스에서 실행되는 프로세스에 대한 입력을 이들 프로세스에 의해 지정된 방식으로 제공해야 했다. 따라서, 가령, 컴퓨팅 디바이스에서 실행되는 스프레드시트 애플리케이션 프로그램에서 계산을 수행하기 위해, 사용자는 계산하고자 하는 수치 및 공식을 이 스프레드시트 애플리케이션 프로그램에 의해 지정되는 방식으로 입력해야 한다. 다른 예로서, 컴퓨팅 디바이스에서 실행되는 워드 프로세싱 애플리케이션 프로그램에서 다른 폰트를 선택하기 위해, 사용자는 이 워드 프로세싱 애플리케이션에 의해 제공되는 메커니즘을 통해 글자체 정보를 선택해야 한다. 컴퓨팅 디바이스에서 실행되는 이러한 애플리케이션 프로그램과 계속해서 대화하는 사용자에게 이러한 메커니즘은 제2의 천성이 될 수 있지만, 그럼에도 불구하고 사용자들이 서로 일상적으로 대화하는 방식과는 상이하다.
Conventionally, a user of a computing device has had to provide input for a process running on this computing device in a manner specified by these processes. Thus, for example, to perform calculations in a spreadsheet application program running on a computing device, the user must enter the numbers and formulas to be calculated in the manner specified by this spreadsheet application program. As another example, to select a different font in a word processing application program running on a computing device, the user must select the font information via the mechanism provided by the word processing application. This mechanism may be a second nature for a user who continues to talk to such an application program running on a computing device, but it is nonetheless different from the way that users routinely interact with each other.

컴퓨팅 디바이스의 프로세싱 기능이 증가됨에 따라, 보다 자연스럽게 사용자에 의해 제공되는 입력을 수용하도록 설계되는, 컴퓨팅 디바이스상에서 실행되는 애플리케이션 프로그램의 수가 늘어나고 있다. 예를 들어, 늘어나는 공통 입력 메커니즘 중 하나는 사용자가 수행하고자 하는 애플리케이션 프로그램을 말하거나 언어적으로 입력하는 것이며, 이 애플리케이션 프로그램은 그 후 이러한 언어 입력을 해석하고 그에 맞추어 응답할 수 있다. 언어 입력에 대응하는 기능을 애플리케이션 프로그램에 제공함으로써, 이러한 애플리케이션 프로그램의 프로그래머는 사용자가 익히고 사용하기 쉬운 애플리케이션 프로그램을 제공하고 있다. As the processing capabilities of computing devices have increased, there has been an increasing number of application programs running on computing devices that are designed to accommodate input provided by a user more naturally. For example, one of the increasing common input mechanisms is to speak or linguistically input an application program that the user wishes to perform, and the application program can then interpret the language input and respond accordingly. By providing a function corresponding to language input to an application program, the programmer of such an application program provides an application program that the user can learn and use.

불행히도, 언어 입력은 사용자가 말하는 언어에 의존한다. 따라서, 한 언어로 제공된 언어 입력을 수용하도록 설계된 애플리케이션 프로그램은 다른 상이한 언어로 제공되는 언어 입력을 이해할 수 없을 것이다. 전세계의 사용자들이 말하는 언어의 종류가 다양하고 이들 사이에 상당한 언어적 차이점이 존재하기 때문에, 언어 입력을 수용하는 애플리케이션을 개발하고자 하는 개발자들은 상이한 언어들마다 이러한 애플리케이션 프로그램을 지원할 상이한 버전의 애플리케이션 프로그램을 생성해야 한다.
Unfortunately, language input depends on the language the user speaks. Thus, an application program designed to accommodate language input provided in one language will not understand language input provided in another language. Developers who want to develop applications that accept language input have different versions of application programs to support these application programs in different languages because there are many different languages spoken by users around the world and there are significant linguistic differences between them Should be created.

더 중요하게는, 언어 입력을 수용할 수 있는 애플리케이션 프로그램을 생성하는 프로세스는 시간 소모적이며 고비용을 요구할 수 있다. 예를 들어, 사용자에 의해 제공되는 언어 입력으로부터 사용자의 의도를 정확하게 해독할 수 있도록 이러한 애플리케이션 프로그램의 언어 이해 컴포넌트를 트레이닝하는 데에 상당한 시간 및 리소스가 투자될 수 있다. 그리고, 정확히는 이러한 언어 이해 컴포넌트는 애플리케이션 개발자가 그 애플리케이션이 지원하기를 원하는 언어마다 재생성되어야 한다.
More importantly, the process of creating an application program that can accommodate language input can be time consuming and costly. Significant amounts of time and resources can be invested in training the language understanding components of such application programs, for example, to accurately decipher the user's intent from the language input provided by the user. And, precisely, these language understanding components must be regenerated for each language the application developer wants the application to support.

일 실시예에서, 앵커 언어로 동작하고 상당한 시간 및 리소스가 투자된 기존 애플리케이션 프로그램의 언어 컴포넌트는, 이러한 앵커 언어 이외의 언어로 된 언어 입력을 수용할 수 있는 애플리케이션 프로그램을 생성하기 위해 재사용될 수 있다. 한 언어로 수신된 입력을 컴퓨팅 디바이스에 의해 다른 상이한 언어로 번역하기 위한 머신 번역 기술이, 기존 애플리케이션 프로그램의 이러한 언어 컴포넌트와 연결되어 이들 언어 컴포넌트를 재사용하면서 앵커 언어 이외의 언어로 된 입력의 수용을 가능하게 할 수 있다. In one embodiment, a language component of an existing application program that operates in an anchor language and has been invested significant amount of time and resources may be reused to create an application program capable of accepting language input in languages other than this anchor language . A machine translation technique for translating an input received in one language to another different language by a computing device may be used in conjunction with these language components of an existing application program to reuse these language components while accepting input in languages other than anchor language .

다른 실시예에서, 다수의 언어들과 기존 언어 컴포넌트의 앵커 언어 상호간을 번역하는 기능을 나타내는 다수의 머신 번역 컴포넌트가 하나의 애플리케이션 프로그램으로 패키지화되어, 다양한 상이한 언어로 된 언어 입력을 수신하는 기능을 애플리케이션 프로그램에 제공할 수 있다. 언어 식별 컴포넌트는 최초에 언어 입력을 수신할 수 있고 이러한 언어 입력이 제공되는 데 사용된 언어를 이로부터 식별할 수 있다. 그 후, 적합한 머신 번역 컴포넌트가 이러한 언어 식별에 기초하여 선택될 수 있다. In another embodiment, a number of machine translation components representing the ability to translate between anchor languages of a plurality of languages and existing language components are packaged into one application program so that the ability to receive language input in a variety of different languages, Can be provided to the program. The language identification component may initially receive the language input and identify the language from which it was provided. A suitable machine translation component may then be selected based on this language identification.

다른 실시예에서, 앵커 언어와 연관되는 기존 언어 컴포넌트와, 다른 언어와 이러한 앵커 언어 상호간을 번역하는 머신 번역 컴포넌트를 포함하는 하이브리드 애플리케이션은 원 언어와 연관되는 언어 컴포넌트를 개발하는 시작점으로서 기능할 수 있어서, 머신 번역 컴포넌트의 필요성을 배제한다. In another embodiment, a hybrid application that includes an existing language component associated with an anchor language and a machine translation component that translates between another language and these anchor languages may serve as a starting point for developing a language component associated with the native language , Eliminating the need for machine translation components.

본 요약부는 상세한 설명에서 후술할 선택된 개념들을 단순화된 형태로 소개하고자 제공된다. 본 요약부는 청구 대상의 핵심 특징 또는 필수 특징을 밝히고자 함이 아니며, 청구 대상의 범위를 한정하기 위해 사용되는 것도 아니다.  This summary is provided to introduce selected concepts to be described below in a simplified form in the detailed description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it used to limit the scope of the claimed subject matter.

추가적인 특징 및 장점은 첨부된 도면을 참조하여 설명할 이하의 상세한 설명으로부터 자명할 것이다
Additional features and advantages will be apparent from the following detailed description taken in conjunction with the accompanying drawings,

이하의 상세한 설명은 첨부된 도면을 참조하여 가장 잘 이해될 것이다.
도 1은 언어 입력을 수신할 수 있는 예시적 컴퓨팅 디바이스의 블록도이다.
도 2는 앵커 언어와 연관되는 언어 컴포넌트와, 앵커 언어와 다른 언어 상호간을 번역하는 머신 번역 컴포넌트를 포함하는 예시적 하이브리드 프로세스의 블록도이다.
도 3은 하이브리드 프로세스를 원 언어 프로세스로 변환하는 예의 블록도이다.
도 4는 앵커 언어와 연관되는 언어 컴포넌트와, 앵커 언어와 다른 언어 상호간을 번역하는 머신 번역 컴포넌트를 포함하는 하이브리드 프로세스의 예시적 생성의 흐름도이다.
도 5는 앵커 언어와 연관되는 언어 컴포넌트와, 앵커 언어와 다른 언어 상호간을 번역하는 머신 번역 컴포넌트를 포함하는 하이브리드 프로세스의 예시적 동작의 흐름도이다.
도 6은 하이브리드 프로세스를 원 언어 프로세스로 변환하는 예의 흐름도이다.
The following detailed description will be best understood with reference to the accompanying drawings.
1 is a block diagram of an exemplary computing device capable of receiving language input.
Figure 2 is a block diagram of an exemplary hybrid process that includes a language component associated with an anchor language and a machine translation component translating between an anchor language and another language.
3 is a block diagram of an example of converting a hybrid process into a native language process.
4 is a flowchart of an exemplary generation of a hybrid process including a language component associated with an anchor language and a machine translation component translating between an anchor language and another language.
5 is a flowchart of an exemplary operation of a hybrid process including a language component associated with an anchor language and a machine translation component translating between an anchor language and another language.
6 is a flowchart of an example of converting a hybrid process to a native language process.

이하의 설명은, 앵커 언어와 하나 이상의 다른 언어 상호간을 번역할 수 있는 머신 번역 컴포넌트와 함께, 상이한 앵커 언어와 연관되는 기존 언어 컴포넌트를 재사용함으로써 하나 이상의 언어로 된 언어 입력을 수용할 수 있는 프로세서의 효율적인 생성에 관한 것이다. 언어 입력은 이 입력이 어떤 언어로 제공되더라도 기존 언어 컴포넌트와 연관되는 앵커 언어로 변환할 수 있는 머신 번역 컴포넌트로 유도될 수 있다. 그 후, 이들 기존 언어 컴포넌트는 언어 입력에 응답하여 프로세싱을 개시하고 적합한 출력을 생성하는 데에 사용될 수 있다. 선택적으로, 출력이 머신 번역 컴포넌트에 유도되어 입력된 언어와 동일한 언어로 다시 번역되어 사용자에게 제공될 수 있다. 다수의 머신 번역 컴포넌트가 사용되어 다수의 상이한 언어로부터의 언어 입력을 수용할 수 있으며, 언어 식별 컴포넌트는 이러한 언어 입력을 초기에 수신하여 이 언어 입력이 제공되는 언어를 식별함으로써 적합한 머신 번역 컴포넌트를 선택할 수 있다. 또한, 머신 번역 컴포넌트와, 앵커 언어와 연관되는 언어 컴포넌트를 포함하는 하이브리드 프로세스는 단일 언어 프로세스가 시간이 흐름에 따라 생성되는 시작 구성체(initiating construct)로서 기능할 수도 있다.The following discussion is directed to a processor capable of accepting language input in one or more languages by reusing existing language components associated with different anchor languages with a machine translation component capable of translating between an anchor language and one or more other languages Efficient generation. The language input may be derived to a machine translation component that can be translated into an anchor language associated with an existing language component, regardless of the language in which this input is provided. These existing language components can then be used to initiate processing in response to language input and generate appropriate output. Optionally, the output may be derived to a machine translation component and translated back to the same language as the input language and provided to the user. A number of machine translation components may be used to accommodate language input from a plurality of different languages and the language identification component may initially receive the language input and identify the language in which the language input is provided to select the appropriate machine translation component . In addition, a hybrid process including a machine translation component and a language component associated with an anchor language may function as an initiating construct in which a single language process is created over time.

본 명세서에서 설명되는 기술은 음성 입력과 같은 언어 입력에 초점을 맞춘다. 그러나, 이러한 예시 및 설명은 설명을 용이하게 하기 위한 것이며 본 명세서에서 설명되는 기술은 그렇게 한정되지 않는다. 특히, 설명되는 기술은 언어 기반인 임의의 종류의 입력에 마찬가지로 적용될 수 있다. 그러므로, 이하의 예시 및 설명은 단지 예시적인 것으로 후술하는 기술을 설명하는 특정 언어 입력에 한정하기 위한 것이 아니다. The techniques described herein focus on language input, such as speech input. However, these examples and explanations are for ease of explanation and the techniques described herein are not so limited. In particular, the described techniques can be applied equally to any kind of input that is language based. Therefore, the following examples and descriptions are by way of example only and are not intended to be limiting to the specific language input describing the techniques described below.

이하에서는, 연산 기능을 갖는 디바이스에 의해 실행되는 인스트럭션의 일반적인 맥락에서 설명하지만, 이것이 요구되는 것은 아니다. 이러한 컴퓨팅 디바이스는 통상적인 컴퓨터와, 중앙 처리 장치에 의해 제공되는 것과 같은 연산 기능을 갖는 소비자-전자 디바이스 모두를 포함한다. 따라서, 이하에서는 이러한 컴퓨팅 디바이스에 의해 실행될 수 있는 프로그램 모듈과 같은 컴퓨터로 실행 가능한 인스트럭션의 일반적인 맥락에서 설명된다. 보다 구체적으로, 특별한 언급이 없는 한, 하나 이상의 컴퓨팅 디바이스 또는 주변장치에 의해 수행되는 동작 및 기호 표현을 참조하여 설명할 것이다. 이와 같이, 때로는 컴퓨터로 실행되는 것으로 참조될 수 있는 이러한 동작 및 오퍼레이션은 구조화된 형태로 데이터를 표현하는 전기 신호의 프로세싱 유닛에 의한 조작을 포함한다. 이 조작은 데이터를 변형하거나 메모리의 그 위치에 유지시키는데, 이는 컴퓨팅 디바이스 또는 주변장치의 동작을 당업자에게 잘 이해되는 방식으로 재구성하거나 변경한다. 데이터가 유지되는 데이터 구조는 데이터 포맷에 의해 정의되는 특정 특징을 갖는 물리적 위치이다. Although described below in the general context of instructions executed by a device with arithmetic functions, this is not required. Such computing devices include both conventional computers and consumer-electronic devices having computing capabilities such as those provided by a central processing unit. Thus, the following is described in the general context of computer-executable instructions, such as program modules, that may be executed by such computing devices. More specifically, and unless otherwise specified, will be described with reference to operations and symbolic representations performed by one or more computing devices or peripherals. As such, such operations and operations, which may sometimes be referred to as being executed by a computer, include manipulation by the processing unit of an electrical signal representing the data in a structured form. This manipulation modifies or keeps the data in place in the memory, which reconfigures or alters the operation of the computing device or peripheral device in a manner well understood by those skilled in the art. The data structure in which the data is maintained is a physical location having certain characteristics defined by the data format.

일반적으로, 프로그램 모듈은, 특정 작업을 수행하거나 특정 추상적 데이터 유형(abstract data types)을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 당업자가 인식할 바와 같이, 컴퓨팅 디바이스는 종래 개인 컴퓨터 및 종래 개인 전자 디바이스에 한정될 필요가 없으며, 핸드헬드 디바이스(handheld devices), 멀티 프로세서 시스템, 기타 마이크로프로세서 기반 또는 프로그래밍 가능한 소비자 전자장비, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 연산이 가능한 다른 디바이스를 포함할 수 있다. 유사하게, 컴퓨팅 디바이스는 독립형(stand-alone) 디바이스에 한정될 필요가 없으며, 통신 네트워크를 통해 링크된 원격 프로세싱 디바이스에 의해 작업이 수행되는 분산형 컴퓨팅 환경에서 메커니즘이 실시될 수도 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 디바이스 양쪽 모두에 위치될 수 있다.  Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Further, as will be appreciated by those skilled in the art, computing devices need not be limited to conventional personal computers and conventional personal electronic devices, and may be used in handheld devices, multiprocessor systems, other microprocessor-based or programmable consumer electronic equipment, A network PC, a minicomputer, a mainframe computer, and the like. Similarly, computing devices need not be limited to stand-alone devices, and mechanisms may be implemented in a distributed computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

도 1을 참조하면, 예시적 컴퓨팅 디바이스(100)가 도시되어 있는데, 이는 하나 이상의 중앙 처리 장치(CPU; 120)와, 시스템 메모리(130)와, 시스템 메모리를 포함하는 다양한 시스템 구성요소들을 중앙 처리 장치(120)에 연결하는 시스템 버스(121)를 포함할 수 있으며, 이에 한정되는 것은 아니다. 시스템 버스(121)는, 다양한 버스 아키텍처 중 하나를 사용하는 메모리 버스 또는 메모리 컨트롤러, 주변장치용 버스(peripheral bus), 및 로컬 버스를 포함하는 여러 유형의 버스 구조 중 하나일 수 있다. 컴퓨팅 디바이스(100)는 사용자(150)로 하여금 컴퓨팅 디바이스와 대화(interact)할 수 있게 하는 주변장치들을 포함할 수 있다. 이러한 주변장치는, 사용자 피드백(152)과 같이, 컴퓨팅 디바이스(100)로부터 사용자(150)에게 정보를 제공하는 주변장치를 포함할 수 있으며, 사용자 입력(151)과 같이, 사용자(150)로 하여금 정보 및 인스트럭션을 컴퓨팅 디바이스(100)에 제공할 수 있게 하는 주변장치를 포함할 수 있다. 컴퓨팅 디바이스(100)로 하여금 사용자에게 정보를 제공할 수 있게 하는 주변장치는, 컴퓨팅 디바이스에 의해 사용되어 사용자에게 시각적, 도식적 사용자 인터페이스를 제공하는 데에 사용될 수 있는 그래픽스 하드웨어 인터페이스(190) 및 디스플레이 디바이스(191)를 포함하는 그래픽 하드웨어를 포함할 수 있으며, 이에 한정되는 것은 아니다. 컴퓨팅 디바이스(100)로 하여금 사용자에게 정보를 제공할 수 있게 하는 추가적인 주변장치는 또한, 컴퓨팅 디바이스(100)로부터 이 컴퓨팅 디바이스의 사용자에게 청각적 정보를 제공할 수 있는 하나 이상의 스피커(189)와, 도 1에 명시적으로 도시되지 않은 다른 유사한 주변장치들을 포함할 수 있다. 이러한 주변장치는 시스템 버스(121)에 접속되는 주변장치 인터페이스(180)를 통해 컴퓨팅 디바이스(100)에 통신 가능하게 연결될 수 있다. 사용자로 하여금 컴퓨팅 디바이스(100)에 정보를 제공할 수 있게 하는 주변장치는, 마우스(182), 키보드(181), 마이크로폰(184), 움직임 검출기(185) 또는 도 1에 명시적으로 도시되지 않은 다른 디바이스, 가령, 트랙 패드(track pads), 액세서리 태블릿(accessory tablets), 멀티-터치 입력 장치 등을 포함할 수 있다. 전술한 주변장치는 주변장치 인터페이스(180)를 통해 컴퓨팅 디바이스(100)의 시스템 버스(121)에 통신 가능하게 연결될 수 있으며, 그 기능을 인에이블하기 위해 흔히 하드웨어적 측면 및 소프트웨어적 측면 모두를 포함한다. 이와 같이, 도 1에는 그 하드웨어 표현만이 도시어 있지만, 이하의 주변장치의 설명에서는 이러한 주변장치의 올바른 동작을 위해 하드웨어 측면 및 소프트웨어 측면 모두를 포함하는 것으로 의도된다. 1, an exemplary computing device 100 is shown, which includes a central processing unit (CPU) 120, a system memory 130, and various system components, including system memory, But is not limited to, a system bus 121 that connects to the device 120. The system bus 121 may be one of several types of bus structures including a memory bus or memory controller using one of various bus architectures, a peripheral bus, and a local bus. The computing device 100 may include peripheral devices that allow the user 150 to interact with the computing device. Such peripherals may include peripheral devices that provide information from the computing device 100 to the user 150, such as user feedback 152, and may allow a user 150 Information, and instructions to the computing device 100. In one embodiment, A peripheral device that allows computing device 100 to provide information to a user includes a graphics hardware interface 190 that may be used by a computing device to provide a visual and graphical user interface to a user, And graphics hardware including, but not limited to, graphics hardware 191. Additional peripheral devices that allow the computing device 100 to provide information to a user may also include one or more speakers 189 that can provide auditory information from the computing device 100 to the user of the computing device, Other similar peripheral devices not explicitly shown in FIG. Such peripheral devices may be communicatively coupled to the computing device 100 via a peripheral device interface 180 that is connected to the system bus 121. A peripheral device that allows a user to provide information to the computing device 100 may be a mouse 182, a keyboard 181, a microphone 184, a motion detector 185, Other devices, such as track pads, accessory tablets, multi-touch input devices, and the like. The peripheral devices described above may be communicatively coupled to the system bus 121 of the computing device 100 via the peripheral device interface 180 and include both hardware and software aspects to enable the functionality thereof. do. Thus, although only the hardware representation thereof is shown in FIG. 1, the following description of the peripheral device is intended to include both hardware and software aspects for correct operation of such a peripheral device.

또한, 컴퓨팅 디바이스(100)는 통상적으로 컴퓨터 판독 가능한 매체를 포함하는데, 이는 컴퓨팅 디바이스(100)에 의해 액세스될 수 있는 임의의 이용 가능한 매체를 포함할 수 있으며 휘발성 매체 및 비휘발성 매체 모두를 포함하고 제거 가능한 매체 및 제거 가능하지 않은 매체 모두를 포함한다. 제한적이 아닌 예시적으로, 컴퓨터 판독 가능한 매체는 컴퓨터 저장 매체, 통신 매체 또는 그 조합을 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능한 인스트럭션, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 매체를 포함한다. 통상적으로 통신 매체는 컴퓨터 판독 가능한 인스트럭션, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 변조된 데이터 신호와 같은 반송파 또는 기타 전송 메커니즘으로 구현하며, 임의의 정보 전송 매체를 포함한다. In addition, the computing device 100 typically includes a computer-readable medium, which may include any available media that can be accessed by the computing device 100 and includes both volatile and non-volatile media Removable media, and non-removable media. By way of illustration, and not limitation, computer readable media may comprise computer storage media, communication media, or combinations thereof. Computer storage media includes media embodied in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a carrier wave or other transport mechanism, such as a modulated data signal, and includes any information transmission medium.

시스템 메모리(130)는 ROM(read only memory; 131) 및 RAM(random access memory; 132)과 같은 휘발성 메모리 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 가령, 시동 중, 컴퓨터 디바이스(100) 내의 요소들 사이의 정보 전달을 돕는 기본 루틴을 포함하는 기본 입력/출력 시스템(BIOS; 133)은 통상적으로 ROM(131)에 저장된다. 통상적으로, RAM(132)은, 중앙 처리 장치(120)에 즉시 액세스 가능하고/가능하거나 중앙 처리 장치(120)에 의해 현재 실행되고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 제한적이 아닌 예시적으로, 도 1은 운영 시스템(134), 기타 프로그램 모듈(135) 및 프로그램 데이터(136)를 도시하고 있다. The system memory 130 includes computer storage media in the form of volatile memory and / or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. For example, a basic input / output system (BIOS) 133, containing the basic routines that help to transfer information between elements within the computer device 100 during start-up, is typically stored in ROM 131. The RAM 132 typically includes data and / or program modules that are immediately accessible to and / or presently being executed by the central processing unit 120. For example, By way of example, and not limitation, FIG. 1 illustrates operating system 134, other program modules 135, and program data 136.

컴퓨팅 디바이스(100)는 또한 기타 제거 가능한/제거 가능하지 않은 컴퓨터 저장 매체 및 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예시를 위한 목적으로, 도 1은 비휘발성 자기 매체로부터 판독하고 이에 기록하는 하드디스크 드라이브(141)를 도시하고 있다. 본 예시적 컴퓨팅 디바이스와 함께 사용될 수 있는 기타 제거 가능한/제거 가능하지 않은 컴퓨터 저장 매체 및 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래시 메모리 카드, DVD(digital versatile disks), 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등을 포함하지만, 이에 한정되는 것은 아니다. 하드디스크 드라이브(141)는 통상적으로 비휘발성 메모리 인터페이스(140)와 같은 인터페이스를 통해 시스템 버스(121)에 접속된다. The computing device 100 may also include other removable / non-removable computer storage media and volatile / non-volatile computer storage media. For illustrative purposes only, FIG. 1 illustrates a hard disk drive 141 that reads from and writes to non-volatile magnetic media. Other removable / non-removable computer storage media and volatile / non-volatile computer storage media that may be used with the exemplary computing device include magnetic tape cassettes, flash memory cards, digital versatile disks (DVD) State RAM, solid state ROM, and the like. The hard disk drive 141 is typically connected to the system bus 121 via an interface, such as a non-volatile memory interface 140.

전술한 드라이브 및 그 관련 컴퓨터 저장 매체와, 도 1에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨팅 디바이스(100)에 관한 컴퓨터 판독 가능한 인스트럭션, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 1에서, 예를 들어, 하드디스크 드라이브(141)는 운영 시스템(144), 기타 프로그램 모듈(145) 및 프로그램 데이터(146)를 저장하는 것으로 도시되어 있다. 이들 구성요소는 운영 시스템(134), 기타 프로그램 모듈(135) 및 프로그램 데이터(136)와 동일할 수도 있고 상이할 수도 있다는 것을 유의하자. 운영 시스템(144), 기타 프로그램 모듈(145) 및 프로그램 데이터(146)는 이들이 최소한 상이한 카피라는 것을 설명하기 위해 상이한 번호로 표시된다.The drives and their associated computer storage media discussed above and the drives and their associated computer storage media shown in FIG. 1 provide for the storage of computer readable instructions, data structures, program modules, and other data related to the computing device 100. In FIG. 1, for example, hard disk drive 141 is shown as storing operating system 144, other program modules 145, and program data 146. Note that these components may or may not be the same as operating system 134, other program modules 135, and program data 136. Operating system 144, other program modules 145, and program data 146 are represented by different numbers to illustrate that they are at least different copies.

컴퓨팅 디바이스(100)는 하나 이상의 원격 컴퓨터로의 로직 접속을 사용하여 네트워킹된 환경에서 동작할 수 있다. 컴퓨팅 디바이스(100)는 임의의 특정 네트워크 또는 네트워킹 프로토콜로 한정되지 않는다. 따라서, 설명의 간략히 하기 위해, 도 1에서 컴퓨팅 디바이스(100)는 LAN (local area network), WAN (wide area network) 또는 기타 네트워크일 수 있는 일반적인 네트워크 접속(171)을 통해 네트워크(172)에 접속되는 것으로 도시되어 있다. 컴퓨팅 디바이스(100)는 네트워크 인터페이스 또는 어댑터(170)를 통해 일반적인 네트워크 접속(171)에 접속되어, 결국 시스템 버스(121)에 접속된다. 네트워킹된 환경에서, 컴퓨팅 디바이스(100) 또는 그 일부 또는 그 주변장치에 관해 도시된 프로그램 모듈은 일반적인 네트워크 접속(171)을 통해 컴퓨팅 디바이스(100)에 통신 가능하게 연결되는 하나 이상의 다른 컴퓨팅 디바이스의 메모리에 저장될 수 있다. 도시된 네트워크 접속은 예시적이며 컴퓨팅 디바이스들 사이의 통신 링크를 수립하는 다른 수단이 사용될 수 있음을 인식할 것이다. The computing device 100 may operate in a networked environment using logical connections to one or more remote computers. The computing device 100 is not limited to any particular network or networking protocol. 1, the computing device 100 may be connected to the network 172 via a conventional network connection 171, which may be a local area network (LAN), a wide area network (WAN) Lt; / RTI > The computing device 100 is connected to a generic network connection 171 via a network interface or adapter 170 and is ultimately connected to the system bus 121. In a networked environment, a program module depicted relative to computing device 100, or a portion thereof, or a peripheral device thereof, is coupled to a memory (not shown) of one or more other computing devices communicatively coupled to computing device 100 via a general network connection 171, Lt; / RTI > It will be appreciated that the network connections shown are exemplary and that other means of establishing a communication link between computing devices may be used.

도 2를 참조하면, 도시된 시스템(200)은 기존 인프라스트럭쳐를 재사용하여 기존 인프라스트럭쳐가 생성되는 데 사용된 언어와는 상이한 하나 이상의 언어에 대한 언어 이해 기능을 효율적으로 제공하는 예시적 프로세스를 설명하고 있다. 일 실시예에서, 예시적 컴퓨팅 디바이스(100)와 같은 컴퓨팅 디바이스상에서 실행되는 기존 애플리케이션 또는 프로세스는 언어 입력을 수용할 수 있으며, 선택적으로 그 애플리케이션 또는 프로세스가 생성된 앵커 언어(anchor language)로 언어 출력을 생성할 수 있다. 본 명세서에서 사용되는 바와 같이, “언어 입력”이라는 용어는 사람들 사이의 대화를 위해 사용되는 방식의 단어 또는 문장을 포함하는 임의의 형태의 입력을 의미한다. 예를 들어, 홈 엔터테인먼트 컴퓨팅 디바이스상에서 실행되는 애플리케이션은, 영어로 말하는 명령어를 수용하고 이해하며 응답하도록 프로그래밍되어, 사용자가 엔터테인먼트 콘텐트를 검색하고 선택하여 이러한 홈 엔터테인먼트 디바이스에 의해 제공될 수 있게 한다. 다른 예로서, 스마트폰 컴퓨팅 디바이스상에서 실행되는 애플리케이션은, 사용자가 묻는 질문을 포함하는 영어로 말하는 입력을 수용하고 이해하며 응답하도록 프로그래밍될 수 있다. 통상적으로, “언어 입력”은 사용자가 말하는 형태로 제공될 것이지만, 본 명세서에서 사용되고 정의되는 “언어 입력”이라는 용어는 그렇게 한정되지 않는다. 실제로, 본 명세서에서 설명되는 메커니즘은 텍스트, 제스처, 시선(gazes), 수화(sign language) 및 본 명세서에서 정의되는 “언어 입력”이 컴퓨팅 디바이스에 제공될 수 있는 다른 유사한 메커니즘에 마찬가지로 적용될 수 있다. Referring to FIG. 2, the illustrated system 200 illustrates an exemplary process for efficiently reusing an existing infrastructure to efficiently provide language understanding functionality for one or more languages that are different from those used to create an existing infrastructure . In one embodiment, an existing application or process running on a computing device, such as the exemplary computing device 100, may accept language input and, optionally, an anchor language in which the application or process is created, Can be generated. As used herein, the term " language input " means any type of input, including words or phrases in a manner that is used for conversation between people. For example, an application running on a home entertainment computing device is programmed to accept, understand and respond to commands in English, allowing a user to search for and select entertainment content to be provided by such a home entertainment device. As another example, an application running on a smartphone computing device can be programmed to accept, understand, and respond to English speaking input that includes a question asked by the user. Typically, " language input " will be provided in a form that the user speaks, but the term " language input " as used and defined herein is not so limited. Indeed, the mechanisms described herein may be equally applicable to text, gestures, gazes, sign language, and other similar mechanisms in which a " language input " as defined herein may be provided to a computing device.

이러한 애플리케이션 또는 프로세스는 도 2에 도시된 바와 같은 기존 애플리케이션 인프라스트럭처(220)를 포함할 수 있는데, 이는 앵커 언어로 제공되는 언어 입력에 따라 이해하고 동작하는 데 관여하는 컴퓨터로 실행 가능한 인스트럭션을 나타낼 수 있다. 당업자가 인식할 바와 같이, 기존 애플리케이션 인프라스트럭처(220) 내에 포함되는 구성요소 및 프로세스에는 상당한 시간과 리소스가 투자되었을 수 있다. 또한, 이러한 인프라스트럭처는 이를 생성하는 데 사용된 언어에 특유하다(unique). 예를 들어, 기존 애플리케이션 인프라스트럭처(220)가 영어로 제공된 언어 입력에 따라서 수용하고 동작하도록 설계된 애플리케이션의 일부일 경우, 이러한 인프라스트럭처는 불어와 같은 다른 언어로 제공되는 입력에 따라서는 동작할 수 없을 것이다. 결과적으로, 기존 애플리케이션 인프라스트럭처(220)를 포함하는 애플리케이션 또는 프로세스의 개발자가, 가령, 이러한 애플리케이션 또는 프로세스의 불어 버전을 출시하려는 경우, 이 개발자는 기존 애플리케이션 인프라스트럭처(220)의 불어로 된 버전에 상당한 양의 시간과 리소스를 다시 투자해야 할 것이다. 전 세계적으로 사용될 애플리케이션 또는 프로세스의 경우, 이러한 단일 언어 제한은 수많은 언어에 대해 단일 언어 애플리케이션 인프라스트럭처를 처음부터 생성하는 것을 반복하게 할 것이다. 이러한 상당한 시간 및 리소스 투자를 피하기 위해, 기존 애플리케이션 인프라스트럭처(220)는 머신 번역 컴포넌트(machine translation components)를 사용하여 재사용될 수 있다. 보다 구체적으로, 그리고 상세히 후술할 바와 같이, 머신 번역 컴포넌트는 애플리케이션 또는 프로세스의 사용자의 원 언어(native language)로 된 입력 및 선택적으로 출력을 기존 애플리케이션 인프라스트럭처(220)의 앵커 언어(anchor language)로 번역함으로써, 기존 애플리케이션 인프라스트럭처(220)로 하여금 앵커 언어와는 상이한 원 언어로 운영되는 애플리케이션 또는 프로세스에 언어 서비스를 제공할 수 있게 한다. 기존 애플리케이션 인프라스트럭처(220)를 재사용함으로써, 애플리케이션 또는 프로세스의 개발자는 다른 언어로 기존 애플리케이션 인프라스트럭처(220)의 유사한 버전을 재생성하는 데에 통상적으로 요구되는 상당한 시간 및 리소스를 투자하지 않고 이들 다른 언어의 동등한 버전을 생성할 수 있다. 설명의 명확성과 용이성을 위해, 본 명세서에서 “앵커 언어”라는 용어는 최초 언어 인프라스트럭처를 생성하는 데 사용된 언어를 의미하며, 이 최초 언어 인프라스트럭처는 재사용될 것이다. 본 명세서에서 “원 언어”라는 용어는 애플리케이션 또는 프로세스에 제공될 입력이 표현되는 언어와, 애플리케이션 또는 프로세스로부터 제공될 것으로 예상되는 임의의 출력이 표현되는 언어를 의미하도록 사용된다. Such an application or process may include an existing application infrastructure 220 as shown in FIG. 2, which may represent computer-executable instructions involved in understanding and operating according to language input provided in an anchor language have. As those skilled in the art will appreciate, the components and processes contained within the existing application infrastructure 220 may have invested significant time and resources. Also, this infrastructure is unique to the language used to create it. For example, if the existing application infrastructure 220 is part of an application designed to accommodate and operate in accordance with language input provided in English, such infrastructure would not be able to operate according to inputs provided in other languages such as French . As a result, if a developer of an application or process that includes an existing application infrastructure 220 wants to release, for example, a French version of such an application or process, then the developer has a French version of the existing application infrastructure 220 You will have to invest a significant amount of time and resources again. In the case of an application or process to be used globally, this single language restriction will cause the repetition of creating a single language application infrastructure from scratch for many languages. In order to avoid this significant time and resource investment, the existing application infrastructure 220 may be reused using machine translation components. More specifically, and as will be described in more detail below, the machine translation component can be used to provide input and optionally output in the native language of the user of the application or process to an anchor language of the existing application infrastructure 220 Translation enables the existing application infrastructure 220 to provide language services to applications or processes running in a native language different from an anchor language. By reusing the existing application infrastructure 220, the developer of the application or process can be able to access those other languages without investing significant time and resources typically required to regenerate a similar version of the existing application infrastructure 220 in another language ≪ / RTI > For clarity and ease of description, the term " anchor language " herein refers to the language used to create the initial language infrastructure, and this initial language infrastructure will be reused. The term " native language " is used herein to refer to the language in which the input to be provided to the application or process is expressed, and the language in which any output expected to be provided from the application or process is expressed.

도 2에 도시된 시스템(200)은 기존 애플리케이션 인프라스트럭처(220)를 도시하고 있는데, 이는, 컴퓨팅 디바이스상에서 실행되고 사용자(150)와 같은 사용자로부터 언어 입력을 수용하는 애플리케이션 또는 프로세스에서 사용될 것이다. 특히, 도 2의 시스템(200)에 의해 도시된 바와 같이, 사용자(150)에 의해 생성되는 언어 입력은 사용자(150)에 의해 제공되는 언어 입력에 적합한 입력 인식 컴포넌트(211)에 의해 최초로 수신될 수 있다. 예를 들어, 사용자(150)에 의해 제공되는 언어 입력이 음성 입력인 경우, 입력 인식 컴포넌트(211)는 사용자의 음성 입력을 나타내는 청각적 정보를 텍스트 정보로 변환할 수 있는 스피치 인식 컴포넌트일 수 있다. 다른 예로서, 사용자(150)에 의해 제공되는 언어 입력이 수화인 경우, 입력 인식 컴포넌트(211)는 사용자의 수화 입력을 나타내는 이미지 정보를 텍스트 정보로 변환할 수 있는 수화 인식 컴포넌트일 수 있다. 2 illustrates an existing application infrastructure 220 that may be used in an application or process running on a computing device and accepting language input from a user, In particular, as shown by the system 200 of FIG. 2, the language input generated by the user 150 is initially received by the input recognition component 211 that is appropriate for the language input provided by the user 150 . For example, if the language input provided by the user 150 is speech input, the input recognition component 211 may be a speech recognition component that can convert audible information representing the user's speech input into text information . As another example, if the language input provided by the user 150 is sign language, the input recognition component 211 may be a sign language recognition component that can convert image information representing the user's sign language input into text information.

사용자의 언어 입력을 나타내는 텍스트 정보는 언어 이해 컴포넌트(211)에 제공될 수 있다. 언어 이해 컴포넌트(221)는 텍스트 포맷으로 이러한 언어 입력을 수용할 수 있으며, 다이얼로그 관리자(dialog manager; 222) 및 정보 소스(knowledge source; 223)와 함께, 수행될 적합한 응답 프로세싱을 식별하는 콘텍스트 등에서 언어 입력으로부터 의미를 도출할 수 있다. 예를 들어, 사용자가 특정 텔레비전 쇼의 이용 가능한 에피소드 전부를 디스플레이라하는 인스트럭션을 말한 경우, 언어 이해 컴포넌트(221)는, 다이얼로그 관리자(222) 및 정보 소스(223)와 함께, 이러한 언어 입력을 검색-및-결과 표시 요청(search-and-display- results request)으로 해석하고 사용자가 지정하는 이름이 검색 파라미터이며 이것이 타이틀의 지정이라고 해석한다. 유사하게, 다른 예로서, 사용자가 특정 도시에 대한 확장된 일기예보를 요청한 경우, 언어 이해 컴포넌트(221)는, 다이얼로그 관리자(222) 및 정보 소스(223)와 함께, 이러한 언어 입력을 기상 정보에 대한 사실적 요청으로 해석하고, 사용자에 의해 제공되는 이름이 기상 정보가 요청된 지리적 지역을 정의하는 도시의 이름이라고 해석한다. Textual information representing the language input of the user may be provided to the language understanding component 211. The language understanding component 221 may accept such language input in a text format and may be used in conjunction with a dialog manager 222 and an information source 223 in a language, such as in a context that identifies the appropriate response processing to be performed, Meaning can be derived from the input. For example, if a user has said an instruction to display all of the available episodes of a particular television show, the language understanding component 221, along with the dialog manager 222 and the information source 223, -And- interpreted as a search-and-display-results request, and the user-specified name is the search parameter, which translates to the specification of the title. Similarly, as another example, if the user has requested extended weather forecast for a particular city, the language understanding component 221, along with the dialog manager 222 and the information source 223, Interprets it as a factual request and interprets the name provided by the user as the name of the city defining the geographical region for which weather information is requested.

전술한 바와 같이, 언어 이해 컴포넌트(221), 다이얼로그 관리자(222) 및 정보 소스(223)에는 상당한 시간 및 리소스가 투자되었을 수 있다. 보다 구체적으로, 언어 이해 컴포넌트(221), 다이얼로그 관리자(222) 및 정보 소스(223)는 사용자로부터 언어 입력을 수신하고 응답 프로세싱을 결정하고 착수하는 과정을 다수 반복함으로써 구축되고 세밀화(refined)되었을 수 있다. 이러한 다수의 반복은 이전 반복에서 준최적으로(sub-optimally) 구현되었을 수 있는 언어 이해 컴포넌트(221), 다이얼로그 관리자(222) 및 정보 소스(223)의 측면을 정정하기 위한 것일 수 있다. 예를 들어, 사용자는 동일한 정보를 요구하는 데에 상이한 단어 및 언어 스타일을 사용할 수 있으며, 언어 이해 컴포넌트(221), 다이얼로그 관리자(222) 및 정보 소스(223)는 다수의 반복 및 세밀화(refinements)를 통해 이러한 단어 및 언어 스타일의 수가 증가한다는 것을 파악하여 보다 광범위한 사용자와 보다 다양한 입력에 유의미하게(meaningfully) 응답할 수 있게 될 수 있다. As described above, considerable time and resources may have been invested in the language understanding component 221, the dialog manager 222, and the information source 223. More specifically, the language understanding component 221, the dialog manager 222, and the information source 223 may be constructed and refined by multiple iterations of receiving language input from a user and determining and starting response processing have. This multiple iteration may be to correct aspects of the language understanding component 221, the dialog manager 222, and the information source 223 that may have been implemented sub-optimally in the previous iteration. For example, a user may use different words and language styles to request the same information, and the language understanding component 221, the dialog manager 222, and the information source 223 may use a number of iterations and refinements, Can increase the number of such words and language styles to be able to respond meaningfully to a wider range of users and more diverse inputs.

일 실시예에서, 언어 이해 컴포넌트(221), 다이얼로그 관리자(222) 및 정보 소스(223)는 이들이 사용되는 특정 콘텍스트에 기초하여 더 세밀화될 수 있다. 예를 들어, 홈 엔터테인먼트 컴퓨팅 디바이스에서 엔터테인먼트 콘텐트로의 액세스를 제공하는 애플리케이션은 이러한 엔터테인먼트 콘텐트로 유도된 언어 입력을 수신할 수 있으며, 언어 이해 컴포넌트(221), 다이얼로그 관리자(222) 및 정보 소스(223)는 이러한 콘텍스트를 고려하는 데 초점을 맞출 수 있다. 이러한 예를 계속 설명하면, 이전에 기존 애플리케이션 인프라스트럭처(220)의 일부가 아니었던 단어 또는 용어를 이름에 포함하는 새로운 텔레비전 쇼가 추가된 경우, 인프라스트럭처는 이러한 단어 또는 용어와, 사용자의 발음 및 기타 전달 태도(delivery)를 포함하도록 업데이트될 수 있어서, 사용자가 이러한 새로운 텔레비전 쇼를 요청하면 기존 애플리케이션 인프라스트럭처가 이러한 요청을 인식할 수 있을 것이다. 유사하게, 다른 예로서, 스마트폰 컴퓨팅 디바이스에서 개인 지원 서비스를 제공하는 애플리케이션은 이러한 개인 지원 서비스에 의해 통상적으로 수행되는 좁은 동작 세트(a narrow set of action)로 지정된 언어 입력을 수신할 수 있으며, 언어 이해 컴포넌트(221), 다이얼로그 관리자(222) 및 정보 소스(223)는 이러한 콘텍스트를 고려하는 데 초점을 맞출 수 있다. 이 다른 예를 계속 설명하면, 지정된 사용자에게 텍스트 메시지를 생성하라는 요청을 기존 애플리케이션 인프라스트럭처(220)의 1회 반복을 통해 올바르게 추론하지 못하거나 효율적으로 처리하지 못한 경우, 기존 애플리케이션 인프라스트럭처(220)은 후속 반복을 통해 사용자의 언어 입력에 기초하여 이러한 요청을 보다 용이하게 인식하고 이에 응답하도록 업데이트될 수 있다. In one embodiment, the language understanding component 221, the dialog manager 222, and the information source 223 may be further refined based on the particular context in which they are used. For example, an application providing access to entertainment content from a home entertainment computing device may receive language input derived from such entertainment content and may include a language understanding component 221, a dialog manager 222, and an information source 223 ) Can focus on taking this context into account. Continuing with this example, if a new television show is added that includes a word or term in the name that was not previously part of the existing application infrastructure 220, then the infrastructure can use that word or term, And other delivery behaviors, so that if a user requests this new television show, the existing application infrastructure will be able to recognize this request. Similarly, as another example, an application providing personal support services in a smartphone computing device may receive language input specified in a narrow set of actions typically performed by such personal support services, The language understanding component 221, the dialog manager 222, and the information source 223 may focus on taking this context into account. Continuing with this alternative example, if a request to create a text message to a designated user can not be correctly inferred or efficiently handled through a single iteration of the existing application infrastructure 220, May be updated to more easily recognize and respond to such requests based on the user ' s language input via subsequent iterations.

언어 이해 컴포넌트(221), 다이얼로그 관리자(222) 및 정보 소스(223)가 일단 응답 처리 동작을 개시한 경우, 적합한 어떤 범위까지의 출력은 다이얼로그 관리자(222) 및 정보 소스(223)와 협력하여 언어 방식으로 출력을 제공할 수 있는 언어 생성 컴포넌트(224)로 유도될 수 있다. 언어 이해 컴포넌트(221), 다이얼로그 관리자(222) 및 정보 소스(223)와 마찬가지로, 언어 생성 컴포넌트(224) 역시 상당한 시간 및 리소스가 투자되었을 수 있으며 응답 출력을 제공하는 데에 있어서 언어 생성 컴포넌트(224)에 의해 사용되는 언어의 사용자 인지를 개선하려는 다수의 반복의 결과로서 생성되었을 수 있다. Once the language understanding component 221, the dialog manager 222, and the information source 223 have initiated response processing operations, output to any suitable extent can be made in the language (s) in cooperation with the dialog manager 222 and the information source 223 May be directed to a language generating component 224 that may provide output in a manner consistent with the present invention. Like the language understanding component 221, the dialog manager 222 and the information source 223, the language generation component 224 may also have invested considerable time and resources, and the language generation component 224 May be generated as a result of multiple iterations to improve the user's perception of the language used by the user.

일 실시예에서, 언어 생성 컴포넌트(224)에 의해 제공되는 출력은 출력 생성 컴포넌트(212)로 유도되어 사용자(150)에 의해 인지될 수 있는 형태로 생성될 수 있다. 예를 들어, 텍스트-스피치 컴포넌트(text-to-speech component)는 음성 포맷으로 언어 출력을 생성할 수 있는 출력 생성 컴포넌트일 수 있다. 당업자가 인식할 바와 같이, 다른 유형의 출력 생성 컴포넌트가 마찬가지로 사용될 수 있다. In one embodiment, the output provided by the language generating component 224 may be generated in a form that can be directed to the output generating component 212 and be recognized by the user 150. [ For example, a text-to-speech component may be an output generating component capable of generating language output in a voice format. As will be appreciated by those skilled in the art, other types of output generating components may be used as well.

전술한 바와 같이, 기존 애플리케이션 인프라스트럭처(220)에는 상당한 시간 및 리소스가 투자되었을 수 있다. 불행히도, 기존 애플리케이션 인프라스트럭처(220)는 통상적으로, 가령, 영어와 같은 단일 언어의 콘텍스트(context) 내에서 생성된다. 결과적으로, 불어와 같은 다른 상이한 언어로 언어 입력을 제공하는 사용자는 이러한 애플리케이션을 사용할 수 없을 것이다. 그러나, 일 실시예에서, 다른 언어로 기존 애플리케이션 인프라스트럭처(220)의 컴포넌트와 유사한 컴포넌트를 재생성하는 대신에, 이러한 다른 언어와 기존 애플리케이션 인프라스트럭처(220)가 최초로 생성된 콘텍스트의 앵커 언어 상호간을 번역할 수 있는 머신 번역 기술이 사용될 수 있다. 도 2의 시스템(200)은, 앵커 언어로 된 기존 애플리케이션 인프라스트럭처(220)와, 원 언어와 앵커 언어 상호간을 번역하는 머신 번역 컴포넌트를 포함할 수 있는 이러한 하이브리드 애플리케이션을 도시하고 있는데, 이에 의해 하나 이상의 원 언어로 언어 이해 기능을 제공하면서, 앵커 언어로 된 기존 애플리케이션 인프라스트럭처(220)를 재사용하고 이들 다른 원 언어로 된 유사한 인프라스트럭처를 재생성하는 데 필요한 시간 및 비용을 절감한다. As described above, the existing application infrastructure 220 may have invested considerable time and resources. Unfortunately, the existing application infrastructure 220 is typically created within a single language context, e.g., English. As a result, users who provide language input in other different languages, such as French, will not be able to use such applications. However, in one embodiment, instead of regenerating components that are similar to the components of the existing application infrastructure 220 in other languages, these other languages and existing application infrastructure 220 may translate between the anchor languages of the context that was originally created A machine translation technique can be used. The system 200 of FIG. 2 illustrates this hybrid application, which may include an existing application infrastructure 220 in an anchor language and a machine translation component that translates between native and anchor languages, Thereby reducing the time and cost required to reuse existing application infrastructure 220 in anchor language and regenerate similar infrastructures in these other native languages.

우선, 기존 애플리케이션 인프라스트럭처(220)를 생성하는 데 사용한 앵커 언어와는 상이한 원 언어를 사용하는 사용자에 의해 제공되는 언어 입력은 언어 식별 컴포넌트(230)로 유도될 수 있다. 예를 들어, 외국인 사용자(250)가 원 언어로 입력을 제공할 수 있다. 이러한 입력은 언어 식별 컴포넌트(230)로 유도될 수 있고, 이는 외국인 사용자(250)에 의해 제공되고 있는 언어 입력에 사용된 언어를 식별하기 위한 공지된 기술을 사용할 수 있다. 외국인 사용자(250)에 의해 제공된 언어 입력의 언어가 식별되면, 이 입력은 입력 인식 컴포넌트들(241, 261 및 271) 중 적합한 것으로 유도될 수 있다. 예를 들어, 외국인 사용자(250)가 불어로 언어 입력을 제공하는 경우, 언어 식별 컴포넌트(230)가 그 언어 입력이 불어라고 식별할 수 있으며, 이를 불어 입력 인식 컴포넌트로 유도할 수 있다. 입력 인식 컴포넌트들(241, 261 및 271) 각각은 이러한 입력 인식 컴포넌트가 관련되는 그 콘텍스트에서 이들이 동작하는 언어에 대해 유사한 기능을 수행할 수 있다. 또한, 이러한 기능은 상세히 전술한 입력 인식 컴포넌트(211)에 유사하다.  First, language input provided by a user using a native language different from the anchor language used to create the existing application infrastructure 220 may be derived to the language identification component 230. For example, the foreign user 250 may provide input in the native language. This input may be directed to the language identification component 230, which may use a known technique for identifying the language used in the language input being provided by the foreign user 250. If the language of the language input provided by the foreign user 250 is identified, this input may be derived as appropriate among the input recognition components 241, 261 and 271. For example, if the foreign user 250 provides language input in French, the language identification component 230 may identify the language input as being French and may lead it to the French input recognition component. Each of the input recognition components 241, 261, and 271 may perform a similar function for the language in which they operate in the context to which such input recognition component is associated. This function is also similar to the above-described input recognition component 211 in detail.

외국인 사용자(250)에 의해 제공되는 언어 입력이 텍스트 기반 언어 입력으로 변환된 후, 외국인 사용자(250)에 의해 제공된 입력의 언어로 텍스트 기반 언어 입력이 머신 번역 컴포넌트에 제공되어 앵커 언어로 번역됨으로써, 기존 애플리케이션 인프라스트럭처(220)가 재사용될 수 있다. 언어 식별 컴포넌트(230)에 의해 수행되는 언어 식별에 기초하여 입력 인식 컴포넌트들(241, 261 및 271) 중 어느 것이 선택되는지에 따라, 머신 번역 컴포넌트들(240, 260 및 270) 중 적합한 머신 번역 컴포넌트에는 입력 인식 컴포넌트들(241, 261 및 271) 중 선택된 것에 의해 생성되는 텍스트 기반 언어 입력이 제공될 수 있다.  After the language input provided by the foreign user 250 is converted to a text-based language input, a text-based language input in the language of the input provided by the foreign user 250 is provided to the machine translation component and translated into an anchor language, The existing application infrastructure 220 can be reused. Depending on which one of the input recognition components 241, 261, and 271 is selected based on the language identification performed by the language identification component 230, an appropriate one of the machine translation components 240, 260, A text-based language input may be provided that is generated by a selected one of the input recognition components 241, 261, and 271.

머신 번역 컴포넌트들(240, 260 및 270)과 같은 머신 번역 컴포넌트들 중 하나가 언어 입력을 앵커 언어로 번역한 후, 그 번역된 입력은 번역된 입력이 전술한 설명에서의 입력과 동일한 앵커 언어로 되어 있으므로, 상세히 전술한 바와 동일한 방식으로 언어 이해 컴포넌트(221)에 제공될 수 있다. 또한, 기존 애플리케이션 인프라스트럭처(220)가, 가령, 언어 생성 컴포넌트(224)를 통해 출력을 생성하는 경우, 언어 이해 컴포넌트(221)에 번역된 입력을 제공한 머신 번역 컴포넌트는 또한 언어 생성 컴포넌트(224)에 의해 생성된 출력을 수신할 수 있으며 이를 다시 원 언어로 번역하여 외국인 사용자(250)에게 제공할 수 있다. 보다 구체적으로, 그리고 당업자가 인식할 바와 같이, 머신 번역 기술은 양방향적일 수 있는데, 즉, 한 애플리케이션에서 다른 애플리케이션으로 또는 그 반대로 번역할 수 있다. 결과적으로, 언어 생성 컴포넌트(224)에 의해 생성된 출력을 수신하면, 머신 번역 컴포넌트들(240, 260 및 270) 중 적합한 것은, 이러한 출력이 언어 생성 컴포넌트(224)에 의해 제공되는 데에 사용된 앵커 언어로부터, 외국인 사용자(250)에 의해 최초의 입력을 제공하는 데에 사용된 원 언어로 번역할 수 있다.  After one of the machine translation components, such as machine translation components 240, 260, and 270, translates the language input into an anchor language, the translated input is translated into an anchor language in which the translated input is the same as the input in the above- And can be provided to the language understanding component 221 in the same manner as described above in detail. In addition, when an existing application infrastructure 220 generates output through, for example, a language generation component 224, the machine translation component that provided the translated input to the language understanding component 221 may also include a language generation component 224 ), And can translate the same into a native language and provide it to the foreign user 250. More specifically, and as will be appreciated by those skilled in the art, machine translation techniques may be bi-directional, i.e., translating from one application to another, or vice versa. As a result, upon receiving the output generated by the language generation component 224, one of the machine translation components 240, 260, and 270 is suitable for use by the language generation component 224, Can be translated from the anchor language into the original language used by the alien user 250 to provide the initial input.

머신 번역 컴포넌트(240, 260 및 270) 중 하나에 의해 번역된 출력은 상세히 전술한 출력 생성 컴포넌트(212)와 유사한 방식으로 동작할 수 있는 대응 출력 생성 컴포넌트(242, 262 및 272)에 제공될 수 있다. 당업자가 인식할 바와 같이, 출력 생성 컴포넌트가 단지 매우 기본적인 텍스트-스피치 컴포넌트인 경우, 특정 언어에 특정한 출력 생성 컴포넌트가 필요하지 않을 수 있다. 그러나, 이러한 매우 기본적인 텍스트-스피치 컴포넌트는 언어 출력의 특정 측면을 정확하게 구어로 표현하지 못할 수 있으며 특유한 소리를 이용하는 언어를 수용하지 못할 수 있다. 결과적으로, 도 2의 시스템(200)은 언어에 특정되는 출력 생성 컴포넌트(242, 262 및 272)를 도시하고 있으며, 이에 의해 각 출력 생성 컴포넌트는 자신이 연관되는 언어의 재생에 맞춰질(tailored) 수 있게 한다. The output translated by one of the machine translation components 240, 260, and 270 may be provided to a corresponding output generation component 242, 262, and 272 that may operate in a manner similar to the output generation component 212 described above in detail. have. As will be appreciated by those skilled in the art, if the output generating component is merely a very basic text-to-speech component, then a particular language-specific output generating component may not be required. However, these very basic text-to-speech components may not accurately spell certain aspects of language output and may not accommodate languages that use distinctive sounds. As a result, the system 200 of FIG. 2 shows language-specific output generation components 242, 262, and 272, whereby each output generation component can be tailored to the playback of its associated language Let's do it.

도 2의 시스템(200)은, 컴퓨터로 실행 가능한 하나의 인스트럭션의 집합(collection)이 다수의 상이한 언어를 말하는 외국인 사용자로부터의 입력을 수용할 수 있는 실시예, 즉, 다국어 하이브리드 애플리케이션(multi-lingual hybrid application)을 설명하고 있다. 일례로서, 기존 애플리케이션 인프라스트럭쳐(220)가 영어 애플리케이션 또는 프로세스의 일부인 경우, 도 2의 시스템은 하나의 컴퓨터로 실행 가능한 인스트럭션 집합이 불어, 중국어 및 아랍어로 된 입력을 마찬가지로 수용할 수 있는 실시예를 설명하고 있다. 불어 입력은 언어 식별 컴포넌트(230)에 의해 불어로서 식별되어, 가령, 입력 인식 컴포넌트(241)로 유도될 수 있으며, 이어서, 대응 머신 번역 컴포넌트(240)로 유도될 수 있는데, 이는 불어와 앵커 언어, 이 예에서는 영어를 상호간에 번역할 수 있다. 유사하게, 이 예로 계속 설명하면, 중국어 입력은 언어 식별 컴포넌트(230)에 의해 중국어로서 식별되어, 가령, 입력 인식 컴포넌트(261)로 유도될 수 있으며, 이어서, 대응 머신 번역 컴포넌트(260)로 유도될 수 있는데, 이는 중국어와 영어를 상호간에 번역하도록 기능할 수 있다. 마찬가지로, 일례로서, 아랍어 입력도 입력 인식 컴포넌트(271) 및 머신 번역 컴포넌트(270)로 유도될 수 있다.  The system 200 of FIG. 2 is an embodiment in which a collection of instructions executable by a computer can accommodate input from an alien user speaking a number of different languages, i. E. A multi-lingual application hybrid application. By way of example, if the existing application infrastructure 220 is part of an English application or process, the system of FIG. 2 may include an embodiment in which a set of instructions executable on one computer may similarly accommodate input in French and Chinese and Arabic . The French input may be identified as French by the language identification component 230 and may be derived, for example, into the input recognition component 241 and then forwarded to the corresponding machine translation component 240, In this example, you can translate English to one another. Similarly, for purposes of this example, the Chinese input may be identified as Chinese by the language identification component 230, for example, may be derived to the input recognition component 261 and then sent to the corresponding machine translation component 260 , Which can function to translate Chinese and English into each other. Similarly, by way of example, the Arabic input may also be derived to the input recognition component 271 and the machine translation component 270.

그러나, 다른 실시예에서는, 각 단일 애플리케이션 또는 프로세서는 단 하나의 특정 언어로 유도될 수 있는데, 이는 단일어 하이브리드 애플리케이션(mono-lingual hybrid application)이다. 이러한 실시예에서, 언어 식별 컴포넌트(230)는 제거될 수 있는데, 머신 번역 컴포넌트들과, 관련 입력 인식 컴포넌트들 및 출력 생성 컴포넌트들 중 하나 빼고는 모두 제거될 수 있다. 예를 들어, 한 애플리케이션이 불어를 말하는 사람을 위해 구성된 경우, 영어를 말하는 사람을 위해 구성된 기존 애플리케이션 인프라스트럭처(220)를 사용하여, 이러한 애플리케이션은, 불어 입력을 수용하여 이를 불어로 된 텍스트 기반 언어 입력으로 변환할 수 있는 하나의 입력 인식 컴포넌트와, 불어로 된 텍스트 기반 언어 입력을 영어로 된 텍스트 기반 입력으로 번역하여 언어 이해 컴포넌트(221)에 제공할 수 있는 하나의 머신 번역 컴포넌트를 포함할 수 있다. 유사하게, 이 하나의 머신 번역 컴포넌트는 기존 애플리케이션 인프라스트럭처가 생성한 범위 내에서 영어 출력을 불어로 번역할 수 있으며, 이 번역된 불어 출력을 단일 불어 출력 생성 컴포넌트에 제공한다. 이러한 방식으로, 애플리케이션 또는 프로세스의 복잡도와 크기가 감소될 수 있지만, 이러한 각 단일어 애플리케이션 또는 프로세스는 하나의 언어의 콘텍스트에서만 동작할 수 있다.  However, in other embodiments, each single application or processor may be derived in only one specific language, which is a mono-lingual hybrid application. In this embodiment, the language identification component 230 may be eliminated, and all but one of the machine translation components, the associated input recognition components, and the output generation components may be eliminated. For example, if an application is configured for a French speaking person, using an existing application infrastructure 220 configured for an English speaking person, such an application would accept the French input and translate it into a French text-based language And a machine translation component that can provide the language understanding component 221 with a translation of the French-language text-based language input into an English-language text-based input. have. Similarly, this single machine translation component can translate the English output into French within the range created by the existing application infrastructure, and provides this translated French output to a single French output generating component. In this way, the complexity and size of the application or process may be reduced, but each such monolingual application or process may only operate in the context of one language.

당업자가 인식할 바와 같이, 도 2의 시스템(200)에 도시된 것과 같은 머신 번역 컴포넌트는 이 기술 분야에 공지되어 있으며 계속 연구하고 개선시키고 있다. 그럼에도 불구하고, 일 실시예에서, 상세히 전술한 방식 등으로 사용되는 머신 번역 컴포넌트는 애플리케이션 또는 프로세스의 특정 콘텍스트 내에서 정확성을 높이기 위해 변경될 수 있다. 예를 들어, 홈 엔터테인먼트 컴퓨팅 디바이스상에서 실행되는 것과 같은 엔터테인먼트 콘텐트로의 액세스를 사용자에게 제공하도록 설계되는 애플리케이션은, 규격품인(off-the-shelf) 머신 번역 컴포넌트의 일부가 아닐 수 있는, 엔터테인먼트 애플리케이션에 대한 지나친(verbiage) 관련성을 포함하도록 수정될 수 있는 머신 번역 컴포넌트를 포함할 수 있는데, 이는 새로운 텔레비전 쇼 또는 영화에 의해 사용되는 용어들로 계속해서 진화할 수 있다. 유사하게, 언어 이해 컴포넌트(221), 다이얼로그 관리자(222), 정보 소스(223) 및 언어 생성 컴포넌트(224)도 마찬가지로 머신 번역 컴포넌트를 도입함으로써 발생할 수 있는 특정 이슈를 수용하도록 수정될 수 있다. 예를 들어, 앵커 언어로 된 특정 단어, 용어 또는 구절은 관련 언어로 된 유의어인 다른 단어, 용어 또는 구절보다 머신 번역 컴포넌트에 의해 보다 정확하게 번역될 수 있다. 이러한 경우, 이들 단어, 용어 및 구절은 기존 애플리케이션 인프라스트럭처(220)에 의한 우대를 수신할 수 있다. As will be appreciated by those skilled in the art, machine translation components such as those shown in system 200 of FIG. 2 are known in the art and continue to be studied and refined. Nonetheless, in one embodiment, the machine translation component used in the manner or the like described in detail above may be modified to increase accuracy within the specific context of the application or process. For example, an application designed to provide users with access to entertainment content, such as those running on a home entertainment computing device, may be an entertainment application that may not be part of an off-the-shelf machine translation component May include machine translation components that may be modified to include verbiage relevance to the content, which may continue to evolve into terms used by a new television show or movie. Similarly, the language understanding component 221, the dialog manager 222, the information source 223, and the language creation component 224 may likewise be modified to accommodate certain issues that may arise by introducing machine translation components. For example, certain words, terms, or phrases in the anchor language may be more accurately translated by machine translation components than other words, terms or phrases that are synonyms in the relevant language. In such a case, these words, terms and phrases may receive preference by the existing application infrastructure 220.

일 실시예에서, 머신 번역 컴포넌트가 원 언어와 앵커 언어 상호간을 번역하도록 사용되어 앵커 언어로 된 기존 애플리케이션 인프라스트럭처의 재사용을 촉진하는, 도 2의 시스템(220)에 의해 도시되는 하이브리드 애플리케이션은 앵커 언어와 상이한 원 언어로 된 단일 언어 애플리케이션 또는 프로세스를 생성하기 위한 시작점으로서 사용될 수 있다. 도 3을 참조하면, 도시된 시스템(300)은 하이브리드 애플리케이션 또는 프로세스로부터 하이브리드가 아닌 단일 언어 애플리케이션 또는 프로세스를 생성하는 예시를 도시하고 있다. 우선, 도 3의 시스템(300)에 의해 도시된 바와 같이, 입력은 입력 인식 컴포넌트(311)에 의해 원 언어로 수신될 수 있으며, 그 후 머신 번역 컴포넌트(310)에 제공되어 기존 애플리케이션 인프라스트럭처(220)로 제공하기 위해 상세히 전술한 방식으로 앵커 언어로 번역될 수 있다. In one embodiment, the hybrid application depicted by the system 220 of FIG. 2, which facilitates the reuse of existing application infrastructure in anchor language, is used to translate machine translation components between native language and anchor language, And as a starting point for creating a single language application or process in a different native language than the native language. Referring to FIG. 3, the illustrated system 300 illustrates an example of generating a single language application or process that is not hybrid from a hybrid application or process. First, as shown by the system 300 of FIG. 3, the input may be received in native language by the input recognition component 311 and then provided to the machine translation component 310 to provide an existing application infrastructure 220 in an anchor language in the manner described above in detail.

전술한 바와 같이, 사용자 입력의 특정 용어, 단어, 구절 및 기타 언어 요소에 있어서, 머신 번역 컴포넌트(310), 기존 애플리케이션 인프라스트럭처(220) 또는 그 어떤 조합은 이들 언어 요소를 보다 정확하게 해석하고 응답하기 위해 수정될 수 있다. 일 실시예에서, 이러한 개선을 위해 머신 번역 컴포넌트(310) 또는 기존 애플리케이션 인프라스트럭처(220)를 수정하는 대신, 원 언어로 된 새로운 언어 이해 컴포넌트(321), 역시 원 언어로 된 새로운 다이얼로그 관리자(322), 새로운 정보 소스(323) 및 새로운 언어 생성 컴포넌트(324)가 이러한 수정 및 개선을 해결하기 위해 생성될 수 있다. 시간이 흐름에 따라 후속 반복을 통해, 언어 이해 컴포넌트(321), 다이얼로그 관리자(322), 정보 소스(323) 및 언어 생성 컴포넌트(324)는 계속해서 개선되고 확장되어 최종적으로 기존 애플리케이션 인프라스트럭쳐(220)에 의지하지 않고 동작할 수 있게 된다. 이러한 경우, 머신 번역 컴포넌트(310)도 마찬가지로 더 이상 요구되지 않을 것이며, 결과적으로 원 언어에 대한 새로운 애플리케이션 또는 프로세스는 상세히 전술한 것들과 같이 하이브리드이기를 중단할 수 있다. 대신, 원 언어에 대한 이러한 애플리케이션 또는 프로세스는 입력 인식 컴포넌트(310), 언어 이해 컴포넌트(321), 다이얼로그 관리자(322), 정보 소스(323), 언어 생성 컴포넌트(324) 및 출력 생성 컴포넌트(312)를 포함할 수 있으며, 이들 모두가 원 언어로 직접 동작할 수 있다. 이러한 방식으로, 기존 애플리케이션 인프라스트럭처(220)를 재사용한 하이브리드 애플리케이션 또는 프로세스는, 원 언어로 된 단일 언어 컴포넌트가 현실에서의 사용 및 피드백에 기초하여 개발되고 세밀화된 후속 반복을 통해, 하이브리드가 아닌 단일 언어 애플리케이션 또는 프로세스가 생성될 수 있는 미봉책 또는 임시 구성체(temporary construct)로서 기능하였을 수 있다. As noted above, for certain terms, words, phrases, and other language elements of user input, the machine translation component 310, existing application infrastructure 220, or any combination thereof, can more accurately interpret and respond to these language elements . In one embodiment, instead of modifying the machine translation component 310 or the existing application infrastructure 220 for this improvement, a new language understanding component 321 in native language, a new dialog manager 322 in native language ), A new information source 323 and a new language creation component 324 may be created to address these modifications and improvements. Over time, the language understanding component 321, the dialog manager 322, the information source 323 and the language generation component 324 continue to be refined and extended to eventually replace the existing application infrastructure 220 Without having to rely on it. In this case, the machine translation component 310 would likewise not be required any more, and as a result a new application or process for the native language may cease to be a hybrid as described in detail above. Instead, this application or process for the native language includes an input recognition component 310, a language understanding component 321, a dialog manager 322, an information source 323, a language generation component 324 and an output generation component 312, , All of which may operate directly in the native language. In this way, a hybrid application or process that reuses the existing application infrastructure 220 can be implemented as a single language component in a native language, developed and refined on the basis of usage and feedback in the real world, A language application or a process may be created as a temporary construct.

도 4를 참조하면, 흐름도(400)는 앵커 언어로 된 기존 애플리케이션의 언어 컴포넌트가 앵커 언어와 상이한 하나 이상의 원 언어로 된 언어 기능을 제공하기 위해 재사용될 수 있는 예시적인 일련의 단계를 도시하고 있다. 예를 들어, 일 실시예에서, 도 4에 도시된 흐름도(400)의 예시적 단계는, 애플리케이션 또는 프로세스 개발자들에게 제공되어 이들로 하여금 이들 개발자들이 그 애플리케이션 또는 프로세스를 처음 생성하는 데 사용한 앵커 언어와 상이한 하나 이상의 원 언어로 된 언어 입력을 수용할 수 있는 애플리케이션 또는 프로세스의 버전을 효율적으로 생성할 수 있게 하는 서비스에 의해 수행될 수 있다. 도시된 바와 같이, 단계(410)에서, 앵커 언어로 된 기존 단일 언어 프로세스 또는 애플리케이션은 서비스에 제공될 입력과 같은 시작점으로서 사용될 수 있다. 이어서, 단계(420)에서, 단계(410)로부터의 기존 단일 언어 프로세스를 수신하거나 이에 액세스하면, 앵커 언어 이외의 언어로 된 입력을 수용할 수 있으며 입력을 제공하는 데 사용된 이러한 언어를 식별하고 적합한 머신 번역 컴포넌트를 선택할 수 있는 언어 식별 컴포넌트가 설치될 수 있다. 전술한 바와 같이, 일 실시예에서, 생성될 하이브리드 애플리케이션 또는 프로세스가 앵커 언어 이외의 단일 언어로 된 입력만을 수용하는 경우, 단계(420)은 선택적일 수 있는데, 단 하나의 머신 번역 컴포넌트, 즉, 앵커 언어와, 하이브리드 애플리케이션 또는 프로세스가 유도될 단일의 다른 언어 상호간을 번역하기 위한 머신 번역 컴포넌트가 사용될 수 있기 때문이다. Referring to Figure 4, a flowchart 400 illustrates an exemplary sequence of steps in which a language component of an existing application in an anchor language may be reused to provide one or more native language features that differ from the anchor language . For example, in one embodiment, the exemplary steps of the flowchart 400 shown in FIG. 4 may be provided to application or process developers to enable them to use the anchor language that these developers originally used to create the application or process Or a service that can efficiently generate a version of an application or process that can accommodate language input in one or more native languages different from the native language. As shown, in step 410, an existing single language process or application in an anchor language may be used as a starting point, such as an input to be provided to the service. Then, at step 420, when receiving or accessing an existing single language process from step 410, it identifies those languages that can accept inputs in languages other than an anchor language and that are used to provide input A language identification component may be installed that allows selection of a suitable machine translation component. As described above, in one embodiment, if the hybrid application or process to be generated accepts only inputs in a single language other than an anchor language, then step 420 may be optional, with only one machine translation component, A machine translation component can be used to translate between anchor language and a single other language in which the hybrid application or process will be derived.

단계(430)에서, 단계(410)으로부터의 단일 언어 프로세스가 생성된 콘텍스트의 앵커 언어와, 앵커 언어와 상이하며 입력이 수용될 수 있고 선택적으로 출력이 제공될 수 있는 하나 이상의 원 언어 상호간을 번역할 수 있는 하나 이상의 머신 번역 컴포넌트가 설치될 수 있다. 단계(430)에서 다수의 머신 번역 컴포넌트가 설치되면, 단계(430)에서 설치된 머신 번역 컴포넌트는 앵커 언어와, 단계(420)에서 설치된 언어 식별 컴포넌트게 의해 식별될 수 있는 이들 원 언어 상호간을 번역할 수 있다. In step 430, a single language process from step 410 translates between the anchor language of the created context and one or more native languages that are different from the anchor language and whose input can be accommodated and optionally provided with output One or more machine translation components may be installed. If a plurality of machine translation components are installed in step 430, then the installed machine translation component in step 430 translates between the anchor language and those native languages that can be identified by the installed language identification component in step 420 .

이어서, 단계(440)에서, 단계(430)에서 설치되는 머신 번역 컴포넌트에 대응하는 입력 인식 컴포넌트 및 출력 생성 컴포넌트가 설치될 수 있다. 전술한 바와 같이, 입력 인식 컴포넌트는 음성 언어 입력의 오디오와 같은 다양한 형태의 언어 입력을 수용할 수 있으며 이러한 형태를 인식하고 이들은 텍스트 기반 언어 입력으로 변환할 수 있다. 그 후, 이러한 텍스트 기반 언어 입력은, 가령, 머신 번역 컴포넌트와 같은 추가 프로세스에 제공될 수 있다. 또한 전술한 바와 같이, 단계(440)에서 설치된 것과 같은 입력 인식 컴포넌트는, 하나의 언어로 된 언어 입력을 인식하도록 설계된 입력 인식 컴포넌트가 그 하나의 언어로 된 이러한 언어 입력만을 정확하게 인식할 수 있을 것이라는 점에서, 언어 특정적일 수 있다. 결과적으로, 단계(440)에서 설치된 입력 인식 컴포넌트는 이러한 컴포넌트가 그 언어의 콘텍스트 내에서 동작하는 한, 단계(430)에서 설치된 머신 번역 컴포넌트에 대응할 수 있다. 따라서, 단계(430)에서 특정 언어 세트에 대한 머신 번역 컴포넌트가 설치되면, 단계(440)에서, 이들 동일 언어에 대한 입력 인식 컴포넌트가 설치될 수 있다. Subsequently, at step 440, an input recognition component and an output generation component corresponding to the machine translation component installed at step 430 may be installed. As described above, the input recognition component can accept various types of language input, such as audio of a spoken language input, and recognize these types and convert them into text-based language input. This text-based language input may then be provided to an additional process, such as a machine translation component. Also, as described above, the input recognition component, such as that installed in step 440, may be configured so that an input recognition component designed to recognize a language input in one language will correctly recognize only those language inputs in that one language In point, it can be language specific. As a result, the input recognition component installed in step 440 may correspond to the machine translation component installed in step 430, as long as such component operates within the context of that language. Thus, if a machine translation component for a particular language set is installed at step 430, then at step 440, input recognition components for these same languages can be installed.

또한 전술한 바와 같이, 출력 생성 컴포넌트는 텍스트 기반 언어 출력을 수용할 수 있으며 사용자에 의해 수용될 수 있는 방식, 가령, 언어 입력을 말하는 방식으로 그 출력을 생성할 수 있다. 출력 생성 컴포넌트가 언어 중성적(language neutral)일 수 있지만 이러한 출력 컴포넌트는 준최적(sub-optimal)일 수 있다. 결과적으로, 일 실시예에서, 단계(440)에서, 언어 특정적 출력 생성 컴포넌트가 설치될 수 있는데, 이는 단계(440)에서 역시 설치된 입력 인식 컴포넌트의 언어에 대응한다.  Also as described above, the output generating component can receive the text-based language output and generate its output in a manner that can be accommodated by the user, e.g., speaking the language input. The output generating component may be language neutral, but such an outputting component may be sub-optimal. As a result, in one embodiment, at step 440, a language specific output generating component may be installed, which corresponds to the language of the input recognizing component also installed at step 440.

이어서, 단계(450)에서, 단계(430)에서 설치된 머신 번역 컴포넌트는, 특정 언어로 된 언어 입력을 수용하는 입력 인식 컴포넌트가 이러한 언어 및 앵커 언어 상호간을 번역할 수 있는 머신 번역 컴포넌트와 통신 가능하게 연결되는 방식과, 특정 언어로 된 언어 출력을 생성하는 출력 생성 컴포넌트가 그 언어와 앵커 언어 상호간을 번역할 수 있는 머신 번역 컴포넌트와 통신 가능하게 연결되는 방식으로 단계(440)에서 설치된 입력 인식 컴포넌트 및 출력 생성 컴포넌트와 통신 가능하게 연결될 수 있다. 단계(460)에서, 단계(430)에서 설치된 머신 번역 컴포넌트는 단계(410)의 기존 단일 언어 프로세스 또는 애플리케이션의 언어 컴포넌트와 통신 가능하게 연결될 수 있다. 특히, 단계(430)에서 설치된 머신 번역 컴포넌트는 기존 단일 언어 프로세스 또는 애플리케이션의 이러한 언어 컴포넌트에 대해 이러한 입력이 제공되는 데에 사용된 원 언어로부터 앵커 언어로 번역된 언어 입력을 제공할 수 있다. 유사하게, 단계(430)에서 설치된 머신 번역 컴포넌트는, 선택적으로 기존 단일 언어 애플리케이션 또는 프로세스의 이러한 언어 컴포넌트로부터, 앵커 언어로 된 언어 입력을 수신할 수 있고, 그 후 머신 번역 컴포넌트가 이를 원 언어로 번역할 수 있다. Then, in step 450, the machine translation component installed in step 430 is configured to enable the input recognition component, which accepts language input in a particular language, to communicate with a machine translation component capable of translating between the language and anchor language An input recognition component installed in step 440 in a manner that communicates with a machine translation component that is capable of translating between the language and anchor language, And may be communicatively coupled with the output generating component. At step 460, the machine translation component installed at step 430 may be communicatively coupled with the language component of the existing single language process or application at step 410. [ In particular, the machine translation component installed at step 430 may provide a language input translated into an anchor language from the native language used to provide such input for such language component of an existing single language process or application. Similarly, the machine translation component installed in step 430 may optionally receive language input in an anchor language from such language component of an existing single language application or process, and then the machine translation component translates it into the native language You can translate.

도 2의 시스템(200)에 의해 도시된 바와 같이, 단계(420 내지 460)에 의해 수행된 설치 및 통신 연결은 단계(410)에서의 그 입력과 같은 기존 단일 언어 애플리케이션 또는 프로세스를, 앵커 언어와 상이한 하나 이상의 원 언어로부터의 입력을 수용할 수 있고 선택적으로 이들 동일한 원 언어로 된 출력을 제공할 수 있는 하이브리드 애플리케이션 또는 프로세스로 변환할 수 있다. 결과적으로, 도 4에 도시된 흐름도(400)의 관련 프로세싱은 단계(470)에서 종료될 수 있다. As illustrated by system 200 of FIG. 2, the installation and communication connections performed by steps 420 through 460 may be accomplished by connecting an existing single language application or process, such as its input at step 410, To a hybrid application or process capable of accepting input from one or more different native languages and optionally providing output in these same native languages. As a result, the associated processing of the flowchart 400 shown in FIG. 4 may end at step 470.

도 5를 참조하면, 흐름도(500)는 하이브리드 애플리케이션 또는 프로세스에 의해 수행될 수 있는 예시적인 일련의 단계를 도시하고 있는데, 이는 하나 이상의 원 언어로 된 입력을 수용할 수 있고 선택적으로 출력을 제공할 수 있으면서 이들 원 언어와 상이한 앵커 언어로 된 언어 컴포넌트를 재사용한다. 우선, 단계(510)에서, 도시된 바와 같이 언어 입력이 원 언어로 수신될 수 있다. 이어서, 단계(515)에서, 단계(510)에서 수신된 언어 입력에 사용된 원 언어가 식별될 수 있다. 그 후, 단계(520)에서 이 식별은 단계(510)에서 수신된 언어 입력이 유도될 입력 인식 컴포넌트를 선택하는 데에 사용될 수 있다. 특히, 단계(520)에서 선택된 입력 인식 컴포넌트는, 단계(550)에서 식별된 원 언어로 된 입력을 인식하도록 설계된 입력 인식 컴포넌트일 수 있다. 그 후, 단계(525)에서, 선택된 입력 인식 컴포넌트는 단계(510)으로부터의 언어 입력을 인식하고 이를 텍스트 기반 언어 입력으로 변환할 수 있다. Referring to FIG. 5, a flowchart 500 illustrates an exemplary sequence of steps that may be performed by a hybrid application or process, which may receive input in one or more native languages and optionally provide output And reuse language components in an anchor language that are different from those native languages. First, at step 510, the language input may be received in the native language as shown. Then, at step 515, the native language used for the language input received at step 510 may be identified. This identification may then be used in step 520 to select the input recognition component from which the language input received in step 510 will be derived. In particular, the input recognition component selected in step 520 may be an input recognition component designed to recognize the input in the native language identified in step 550. Thereafter, at step 525, the selected input recognition component may recognize the language input from step 510 and convert it to a text-based language input.

단계(530)에서, 텍스트 기반 언어 입력은, 단계(510)에서 수신된 언어 입력의 단계(515)에서 식별된 원 언어와 앵커 언어 상호간을 번역할 수 있는 머신 번역 컴포넌트에 제공될 수 있다. 단계(535)에서, 머신 번역 컴포넌트는 텍스트 기반 언어 입력을 이러한 언어 입력이 최초로 제공되는 데 사용된 원 언어로부터의 앵커 언어로 번역할 수 있다. 이어서, 단계(540)에서, 이제 앵커 언어로 된 번역된 텍스트는, 원래 앵커 언어로 생성되었던 기존 애플리케이션 또는 프로세스의 언어 컴포넌트에 제공될 수 있다. 전술한 바와 같이, 상당한 시간 및 리소스가 투자되었을 수 있는 이들 기존 언어 컴포넌트는 그 후 단계(540)에서 앵커 언어로 제공된 입력을 처리할 수 있고 적합한 응답을 생성할 수 있다. In step 530, the text-based language input may be provided to a machine translation component capable of translating between the native language and the anchor language identified in step 515 of the language input received in step 510. In step 535, the machine translation component may translate the text-based language input into an anchor language from the native language that was used to initially provide the language input. Then, in step 540, the translated text in the anchor language can now be provided to the language component of the existing application or process that was originally created in the anchor language. As described above, these existing language components, which may have invested significant time and resources, can then process the input provided in the anchor language at step 540 and generate an appropriate response.

단계(545)에서, 기존 언어 컴포넌트로부터의 응답은 앵커 언어로 수신될 수 있으며, 단계(550)에서 앵커 언어로부터 단계(510)에서 언어 입력이 수신되는 데 사용된 원 언어로 번역될 수 있다. 단계(555)에서, 번역된 응답은 원 언어와 관련된 출력 생성 컴포넌트에 제공될 수 있다. 예를 들어, 전술한 바와 같이, 이러한 출력 생성 컴포넌트는 번역된 응답을 구어로 표현할 수 있는 텍스트-스피치 컴포넌트일 수 있다. 당업자가 인식할 바와 같이, 이러한 텍스트-스피치 컴포넌트는, 특정 음성 언어의 뉘앙스를 담아내고 사용자가 수신할 보다 정확한 출력을 제공하기 위해 언어 특정적일 수 있다. 따라서, 단계(555)에서, 선택될 수 있는 출력 생성 컴포넌트는 단계(510)에서 수신된 언어 입력이 수신되는 데 필요한 언어로 된 출력을 제공하는 출력 생성 컴포넌트일 수 있다. 단계(560)에서, 출력은 출력 생성 컴포넌트에 의해 생성될 수 있고 사용자에게 제공될 수 있다. 그 후, 관련 프로세싱은 단계(565)에서 종료될 수 있다. In step 545, the response from the existing language component may be received in an anchor language and translated in step 550 from the anchor language in step 510 to the original language used to receive the language input. At step 555, the translated response may be provided to an output generating component associated with the original language. For example, as described above, this output generating component may be a text-to-speech component capable of spoken the translated response. As will be appreciated by those skilled in the art, such text-to-speech components may be language-specific to capture the nuances of a particular speech language and to provide a more accurate output for the user to receive. Thus, at step 555, the selectable output generating component may be an output generating component that provides an output in the language needed to receive the language input received at step 510. In step 560, the output may be generated by the output generating component and provided to the user. The associated processing may then be terminated at step 565. [

도 6을 참조하면, 도시된 흐름도(600)는 원 언어로 된 입력을 수용할 수 있고 선택적으로 출력을 제공할 수 있는 단일 언어 프로세스를 생성하기 위해 수행될 수 있는 예시적인 일련의 단계를 도시하고 있는데, 이러한 단일 언어 프로세스는, 앵커 언어와 원 언어 상호간을 번역하는 머신 번역 컴포넌트를 함께 사용하여, 원래 앵커 언어로 생성된 기존 언어 컴포넌트를 재사용하고 있는 하이브리드 프로세스로부터 생성될 수 있다. 우선, 단계(610)에서, 이러한 하이브리드 프로세스는, 가령, 도 4의 흐름도(400)의 단계에 의해 이미 생성되었을 수 있다. 이어서, 하이브리드 프로세스의 실행의 일부로서, 원 언어로 된 언어 입력은, 가령, 단계(650)에서 수신될 수 있다. 단계(620)에서, 하이브리드 프로세스는, 가령 상세히 전술한 방식으로, 언어 입력을 인식하고 이를 텍스트 기반 언어 입력으로 변환할 수 있다. Referring to FIG. 6, the illustrated flowchart 600 illustrates an exemplary sequence of steps that may be performed to create a single language process capable of receiving input in a native language and optionally providing output Such a monolingual process may be created from a hybrid process that reuses existing language components originally generated in an anchor language, using a machine translation component that translates between anchor language and native language. First, at step 610, this hybrid process may have already been generated, for example, by the steps of flowchart 400 of FIG. Then, as part of the execution of the hybrid process, language input in the native language may be received, e.g., at step 650. In step 620, the hybrid process may recognize the language input and convert it into a text-based language input, for example, in the manner described in detail above.

단계(625)에서, 원 언어로 된 언어 이해 컴포넌트가 단계(620)에서 생성된 텍스트 기반 언어 입력을 적합하게 처리할 수 있는지가 판단될 수 있다. 원 언어로 동작하는 이러한 언어 이해 컴포넌트가 이러한 언어 입력을 적합하게 처리할 수 없는 경우, 프로세싱은 상세히 전술한 단계(530 내지 555)로 진행할 수 있다. 이어서, 단계(530 내지 555)의 실행 후, 프로세싱은 단계(630)로 복귀할 수 있는데, 이 단계에서 단계(530 내지 555)에 의해 수행된 프로세싱으로의 수신된 언어 입력에 관한 정보는 원 언어로 구현된 언어 이해 컴포넌트, 다이얼로그 관리자 및 기타 유사 언어 컴포넌트를 개선하기 위해 사용될 수 있다. 그 후, 프로세싱은 단계(645)로 진행하는데, 이 단계에서 단계(530 내지 555)에 의해 생성된 응답이 원 언어로 사용자에게 제공 또는 출력될 수 있다. At step 625, it can be determined whether the native language understanding component can suitably handle the text-based language input generated at step 620. [ If such a language understanding component operating in native language can not adequately handle such language input, processing may proceed in detail to steps 530 through 555 described above. Subsequently, after execution of steps 530 through 555, processing may return to step 630, wherein the information about the received language input to processing performed by steps 530 through 555 is returned to the source language Can be used to improve language understanding components, dialog managers, and other similar language components implemented in the language. Processing then proceeds to step 645 where the response generated by steps 530 through 555 may be provided or output to the user in the native language.

그러나, 단계(625)에서 원 언어로 된 언어 프로세싱 컴포넌트가 언어 입력을 적합하게 처리할 수 있다고 판단하면, 프로세싱은 대신 단계(635)로 진행하는데, 이 단계에서 원 언어와 앵커 언어 상호간의 어떠한 머신 번역도 요구하지 않고 텍스트 기반 언어 입력이 원 언어로 된 언어 이해 컴포넌트에 제공될 수 있다. 이어서, 단계(640)에서, 언어 이해 컴포넌트와 마찬가지로 원 언어의 콘텍스트 내에서 동작하는 언어 생성 컴포넌트로부터 응답이 수신될 수 있다. 단계(645)에서, 전술한 바와 같이, 이러한 원 언어 응답이 사용자에게 출력될 수 있다. 일 실시예에서, 단계(650)에서, 하이브리드 프로세스에 의해 재사용되고 있는 앵커 언어로 된 기존 언어 컴포넌트가 여전히 실제로 사용되고 있는지를 체크할 수 있다. 이러한 앵커 언어로 된 언어 컴포넌트가 여전히 사용되고 있다고 단계(650)에서 판단되면, 프로세싱은 단계(615)로 복귀하여 추가 언어 입력을 수신할 수 있다. 그러나, 단계(650)에서, 앵커 언어의 콘텍스트 내에서 동작하는 언어 컴포넌트가 더 이상 사용되고 있지 않다고 판단되면, 일 실시예에서는, 단계(655)에서, 이들 언어 컴포넌트는 하이브리드 애플리케이션 또는 프로세스로부터 폐기될 수 있으며, 단계(660)에서 설명되는 바와 같이, 원 언어의 콘텍스트 내에서 동작하는 단 하나의 언어 애플리케이션 또는 프로세스만을 남겨 둘 수 있다. However, if at step 625 the language processing component in the native language determines that it can appropriately process the language input, then processing proceeds instead to step 635, where any machine between native language and anchor language Text-based language input can be provided to a language understanding component in a native language without requiring translation. Then, at step 640, a response may be received from a language generating component operating within the context of the native language as well as the language understanding component. At step 645, such a native language response may be output to the user, as described above. In one embodiment, at step 650, it may be checked whether an existing language component in an anchor language being reused by the hybrid process is still in fact being used. If it is determined at step 650 that a language component in this anchor language is still being used, processing may return to step 615 to receive additional language input. However, if it is determined at step 650 that the language components operating in the context of the anchor language are no longer being used, then in one embodiment, at step 655, these language components may be discarded from the hybrid application or process And may leave only a single language application or process operating within the context of the native language, as described in step 660.

전술한 설명으로부터 알 수 있는 바와 같이, 기존 언어 컴포넌트가 동작하는 콘텍스트의 언어 이외의 언어들과 기존 컴포넌트의 언어 상호간을 번역하는 머신 번역 컴포넌트를 사용함으로써 이러한 언어 이외의 언어로 된 언어 입력을 처리하고 선택적으로 출력을 처리하도록 기존 언어 컴포넌트를 재사용하는 메커니즘을 설명하였다. 본 명세서에서 설명되는 청구대상의 많은 가능한 변형의 관점에서, 본 발명의 이러한 모든 실시형태가 이하의 청구범위 및 균등물의 범위 내에 존재할 수 있다고 주장한다. As can be seen from the foregoing description, language input in languages other than these languages is handled by using a machine translation component that translates languages other than the language of the context in which the existing language components operate, A mechanism has been described for reusing existing language components to selectively process the output. In light of the many possible variations of the claimed subject matter described herein, it is contemplated that all such embodiments of the invention may be within the scope of the following claims and equivalents.

Claims (10)

언어 서비스(linguistic services) 제공 방법으로서,
사용자로부터 제 1 언어로 된 언어 입력(linguistic input)을 수신하는 단계와,
상기 수신된 언어 입력을 인식함으로써 상기 제 1 언어로 된 텍스트 기반 언어 입력을 생성하는 단계와,
상기 텍스트 기반 입력을 상기 제 1 언어로부터 상기 제 1 언어와 상이한 제 2 언어로 번역하기 위해 머신 번역(machine translation)을 사용하는 단계와,
상기 제 2 언어의 콘텍스트(context)에서 동작하며 언어 서비스를 제공하는 기존 컴포넌트에, 상기 제 2 언어로 된 상기 번역된 텍스트 기반 언어 입력을 제공하는 단계와,
상기 기존 컴포넌트로부터 상기 제 2 언어로 제공되는, 상기 언어 입력에 대한 응답인 출력을 수신하는 단계와,
상기 제 2 언어로 된 상기 출력을 상기 제 1 언어로 번역하도록 상기 머신 번역을 사용하는 단계와,
상기 제 1 언어로 된 상기 번역된 출력에 맞추어 상기 사용자에 의해 수신 가능한 출력을 생성하는 단계를 포함하는
언어 서비스 제공 방법.
A method for providing linguistic services,
Receiving a linguistic input in a first language from a user;
Generating a text-based language input in the first language by recognizing the received language input;
Using machine translation to translate the text-based input from the first language to a second language different from the first language,
Providing the translated text-based language input in the second language to an existing component operating in a context of the second language and providing a language service;
Receiving an output, provided in said second language from said existing component, that is a response to said language input;
Using the machine translation to translate the output in the second language into the first language,
Generating an output receivable by said user in accordance with said translated output in said first language
A method of providing a language service.
제 1 항에 있어서,
상기 언어 입력은 상기 사용자가 상기 제 1 언어로 말함으로써 상기 사용자에 의해 입력되는
언어 서비스 제공 방법.
The method according to claim 1,
Wherein the language input is input by the user by the user speaking in the first language
A method of providing a language service.
제 1 항에 있어서,
상기 사용자에 의해 수신 가능한 출력을 생성하는 단계는, 텍스트-스피치(text-to-speech) 컴포넌트를 사용하는 단계를 포함하는
언어 서비스 제공 방법.
The method according to claim 1,
Wherein generating the output receivable by the user comprises using a text-to-speech component,
A method of providing a language service.
제 1 항에 있어서,
상기 수신된 언어 입력으로부터 상기 제 1 언어를 식별하는 단계와,
상기 식별된 제 1 언어에 기초하여, 상기 텍스트 기반 언어 입력을 생성하는 단계를 수행하는 입력 인식 컴포넌트와 머신 번역 컴포넌트를 선택하는 단계를 더 포함하는
언어 서비스 제공 방법.
The method according to claim 1,
Identifying the first language from the received language input;
Further comprising selecting an input recognition component and a machine translation component to perform the step of generating the text based language input based on the identified first language
A method of providing a language service.
제 4 항에 있어서,
적어도 2개의 머신 번역 컴포넌트를 사용하는 단계를 더 포함하되,
상기 적어도 2개의 머신 번역 컴포넌트 중 적어도 하나는 상기 텍스트 기반 언어 입력을 상기 제 1 언어로부터 상기 제 2 언어로 번역하는 데에 사용되는
언어 서비스 제공 방법.
5. The method of claim 4,
Using at least two machine translation components,
Wherein at least one of the at least two machine translation components is used to translate the text-based language input from the first language to the second language
A method of providing a language service.
제 1 항에 있어서,
상기 제 1 언어의 콘텍스트에서 동작하고, 상기 제 2 언어의 콘텍스트에서 동작하며 언어 서비스를 제공하는 컴포넌트와 유사한, 언어 서비스를 제공하는 컴포넌트를 사용하는 단계를 더 포함하는
언어 서비스 제공 방법,
The method according to claim 1,
Further comprising using a component operating in a context of the first language and operating in a context of the second language and providing a language service similar to a component providing a language service,
Language service delivery method,
제 6 항에 있어서,
상기 제 2 언어의 콘텍스트에서 동작하며 언어 서비스를 제공하는 컴포넌트와, 상기 머신 번역은 상기 제 1 언어의 콘텍스트에서 동작하며 언어 서비스를 제공하는 컴포넌트의 생성을 위한 시작점으로서 동작하는
언어 서비스 제공 방법.
The method according to claim 6,
A component operating in a context of the second language and providing a language service; and the machine translation operating in a context of the first language and acting as a starting point for creation of a component providing a language service
A method of providing a language service.
제 1 항에 있어서,
상기 머신 번역은, 컴퓨터로 실행 가능한 인스트럭션에 의해 제공되는 기능에 특정되는 언어 요소를 파악하도록 수정되는
언어 서비스 제공 방법.
The method according to claim 1,
The machine translation is modified to identify language elements specific to the functionality provided by the computer-executable instructions
A method of providing a language service.
제 1 항에 있어서,
상기 기존 컴포넌트는, 컴퓨터로 실행 가능한 인스트럭션에 의해 제공되는 기능에 특정되는 언어 요소를 파악하도록 수정되는
언어 서비스 제공 방법.
The method according to claim 1,
The existing component is modified to identify language elements specific to the functionality provided by the computer-executable instructions
A method of providing a language service.
제 1 항에 기재된 단계들을 수행하기 위한 컴퓨터로 실행 가능한 인스트럭션을 포함하는 하나 이상의 컴퓨터로 판독 가능한 매체. Readable medium comprising computer-executable instructions for performing the steps of claim 1.
KR1020147031587A 2012-05-10 2013-05-01 Building multi-language processes from existing single-language processes KR102092426B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/469,078 US9098494B2 (en) 2012-05-10 2012-05-10 Building multi-language processes from existing single-language processes
US13/469,078 2012-05-10
PCT/US2013/038966 WO2013169530A2 (en) 2012-05-10 2013-05-01 Building multi-language processes from existing single-language processes

Publications (2)

Publication Number Publication Date
KR20150005608A true KR20150005608A (en) 2015-01-14
KR102092426B1 KR102092426B1 (en) 2020-03-23

Family

ID=48468775

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147031587A KR102092426B1 (en) 2012-05-10 2013-05-01 Building multi-language processes from existing single-language processes

Country Status (7)

Country Link
US (1) US9098494B2 (en)
EP (1) EP2847689A2 (en)
JP (1) JP6595912B2 (en)
KR (1) KR102092426B1 (en)
CN (1) CN104412260B (en)
TW (1) TWI585681B (en)
WO (1) WO2013169530A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354511B2 (en) 2017-06-26 2022-06-07 Sony Corporation Information processing device, information processing method, and recording medium

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9503504B2 (en) * 2014-11-19 2016-11-22 Diemsk Jean System and method for generating visual identifiers from user input associated with perceived stimuli
US9690776B2 (en) 2014-12-01 2017-06-27 Microsoft Technology Licensing, Llc Contextual language understanding for multi-turn language tasks
US9792560B2 (en) * 2015-02-17 2017-10-17 Microsoft Technology Licensing, Llc Training systems and methods for sequence taggers
US9886958B2 (en) 2015-12-11 2018-02-06 Microsoft Technology Licensing, Llc Language and domain independent model based approach for on-screen item selection
US10366690B1 (en) 2017-05-15 2019-07-30 Amazon Technologies, Inc. Speech recognition entity resolution
CN112236817A (en) * 2018-04-11 2021-01-15 谷歌有限责任公司 Low latency neighbor group translation
JP7434978B2 (en) * 2020-02-10 2024-02-21 トヨタ自動車株式会社 Information processing device, information processing method, and program
US11587362B2 (en) * 2020-12-16 2023-02-21 Lenovo (Singapore) Pte. Ltd. Techniques for determining sign language gesture partially shown in image(s)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232883A (en) * 1996-10-23 1998-09-02 I T I:Kk Document retrieval system coping with many languages
KR100194798B1 (en) * 1995-11-16 1999-06-15 이계철 Integrated Method of Single Meaning Word in Multilingual Translation System Using Conceptual Structure
JP2000010999A (en) * 1998-06-24 2000-01-14 Matsushita Electric Ind Co Ltd Translation communication equipment
WO2002031814A1 (en) * 2000-10-10 2002-04-18 Intel Corporation Language independent voice-based search system
KR20100081534A (en) * 2009-01-06 2010-07-15 삼성전자주식회사 Multilingual dialogue system and method thereof
JP2013171478A (en) * 2012-02-22 2013-09-02 Zenrin Datacom Co Ltd Retrieval server device, information retrieval method and information retrieval program

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0176858B1 (en) * 1984-09-18 1993-01-20 Sharp Kabushiki Kaisha Translation system
JPS6471254A (en) * 1987-09-11 1989-03-16 Hashimoto Corp Automatic answering telephone system
US5477451A (en) * 1991-07-25 1995-12-19 International Business Machines Corp. Method and system for natural language translation
JPH10198680A (en) * 1997-01-07 1998-07-31 Hitachi Ltd Distributed dictionary managing method and machine translating method using the method
US6085160A (en) 1998-07-10 2000-07-04 Lernout & Hauspie Speech Products N.V. Language independent speech recognition
JP4089148B2 (en) * 2000-10-17 2008-05-28 株式会社日立製作所 Interpreting service method and interpreting service device
GB2372864B (en) 2001-02-28 2005-09-07 Vox Generation Ltd Spoken language interface
US7043431B2 (en) 2001-08-31 2006-05-09 Nokia Corporation Multilingual speech recognition system using text derived recognition models
JP2005100335A (en) * 2003-09-01 2005-04-14 Advanced Telecommunication Research Institute International Machine translation apparatus, machine translation computer program, and computer
US8249854B2 (en) * 2005-05-26 2012-08-21 Microsoft Corporation Integrated native language translation
US8090570B2 (en) * 2006-10-26 2012-01-03 Mobile Technologies, Llc Simultaneous translation of open domain lectures and speeches
US8204739B2 (en) * 2008-04-15 2012-06-19 Mobile Technologies, Llc System and methods for maintaining speech-to-speech translation in the field
DE102006057159A1 (en) 2006-12-01 2008-06-05 Deutsche Telekom Ag Method for classifying spoken language in speech dialogue systems
JP5121252B2 (en) * 2007-02-26 2013-01-16 株式会社東芝 Apparatus, method, and program for translating speech in source language into target language
US8909532B2 (en) 2007-03-23 2014-12-09 Nuance Communications, Inc. Supporting multi-lingual user interaction with a multimodal application
JP5239307B2 (en) * 2007-11-20 2013-07-17 富士ゼロックス株式会社 Translation apparatus and translation program
KR20100037813A (en) * 2008-10-02 2010-04-12 삼성전자주식회사 Statistical machine translation apparatus and method
EP2192575B1 (en) 2008-11-27 2014-04-30 Nuance Communications, Inc. Speech recognition based on a multilingual acoustic model
US8554558B2 (en) * 2010-07-12 2013-10-08 Nuance Communications, Inc. Visualizing automatic speech recognition and machine translation output
TWI477989B (en) * 2010-10-07 2015-03-21 Inventec Corp Apparatus for providing translation conversations between two users simultaneously and method thereof
US9646001B2 (en) 2011-09-19 2017-05-09 Nuance Communications, Inc. Machine translation (MT) based spoken dialog systems customer/machine dialog

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100194798B1 (en) * 1995-11-16 1999-06-15 이계철 Integrated Method of Single Meaning Word in Multilingual Translation System Using Conceptual Structure
JPH10232883A (en) * 1996-10-23 1998-09-02 I T I:Kk Document retrieval system coping with many languages
JP2000010999A (en) * 1998-06-24 2000-01-14 Matsushita Electric Ind Co Ltd Translation communication equipment
WO2002031814A1 (en) * 2000-10-10 2002-04-18 Intel Corporation Language independent voice-based search system
KR20100081534A (en) * 2009-01-06 2010-07-15 삼성전자주식회사 Multilingual dialogue system and method thereof
JP2013171478A (en) * 2012-02-22 2013-09-02 Zenrin Datacom Co Ltd Retrieval server device, information retrieval method and information retrieval program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Bassam J. et al., Investigating multiple approaches for SLU portability to a new language, Conf. on INTERSPEECH 2010, pp.2502-2505 (2010) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354511B2 (en) 2017-06-26 2022-06-07 Sony Corporation Information processing device, information processing method, and recording medium

Also Published As

Publication number Publication date
WO2013169530A2 (en) 2013-11-14
TW201403471A (en) 2014-01-16
US20130304451A1 (en) 2013-11-14
KR102092426B1 (en) 2020-03-23
JP6595912B2 (en) 2019-10-23
CN104412260B (en) 2018-09-21
JP2015523623A (en) 2015-08-13
EP2847689A2 (en) 2015-03-18
US9098494B2 (en) 2015-08-04
WO2013169530A3 (en) 2014-03-13
TWI585681B (en) 2017-06-01
CN104412260A (en) 2015-03-11

Similar Documents

Publication Publication Date Title
KR102092426B1 (en) Building multi-language processes from existing single-language processes
US10489112B1 (en) Method for user training of information dialogue system
US11735182B2 (en) Multi-modal interaction between users, automated assistants, and other computing services
US20190019112A1 (en) Automated assistant invocation of appropriate agent
US9805718B2 (en) Clarifying natural language input using targeted questions
CN109002510B (en) Dialogue processing method, device, equipment and medium
US11281862B2 (en) Significant correlation framework for command translation
US11200893B2 (en) Multi-modal interaction between users, automated assistants, and other computing services
US9589578B1 (en) Invoking application programming interface calls using voice commands
US11676602B2 (en) User-configured and customized interactive dialog application
US20220415305A1 (en) Speech generation using crosslingual phoneme mapping
US20180246954A1 (en) Natural language content generator
US20230153541A1 (en) Generating and updating conversational artifacts from apis
EP3552114A1 (en) Natural language content generator
CN111104118A (en) AIML-based natural language instruction execution method and system
US20230097338A1 (en) Generating synthesized speech input

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant