KR20030012064A - 서버-씬 클라이언트 구성용 분산형 음성 인식 시스템 - Google Patents

서버-씬 클라이언트 구성용 분산형 음성 인식 시스템 Download PDF

Info

Publication number
KR20030012064A
KR20030012064A KR1020010045913A KR20010045913A KR20030012064A KR 20030012064 A KR20030012064 A KR 20030012064A KR 1020010045913 A KR1020010045913 A KR 1020010045913A KR 20010045913 A KR20010045913 A KR 20010045913A KR 20030012064 A KR20030012064 A KR 20030012064A
Authority
KR
South Korea
Prior art keywords
client
server
speech recognition
recognition
voice
Prior art date
Application number
KR1020010045913A
Other languages
English (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 와이더덴닷컴 주식회사
Priority to KR1020010045913A priority Critical patent/KR20030012064A/ko
Publication of KR20030012064A publication Critical patent/KR20030012064A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit

Abstract

본 발명은 하나 이상의 클라이언트 및 상기 클라이언트들과 네트워크를 통해 접속된 서버를 포함하는 클라이언트-서버 시스템에서의 분산형 음성 인식에 관한 것이다. 상기 클라이언트는 음성을 입력받기 위한 입력수단과, 입력받은 음성을 전처리하기 위한 전처리 수단과. 상기 전처리된 음성을 네트워크상으로 전송하기 위한 전송수단을 포함하고, 상기 서버는 네트워크상으로 전송된 전처리된 음성을 인식하기 위한 수단과, 각 클라이언트에 해당하는 응용 프로그램을 수행하여 그 결과 화면 데이터를 상기 클라이언트로 전송하기 위한 수단을 포함한다.

Description

서버-씬 클라이언트 구성용 분산형 음성 인식 시스템{DISTRIBUTED SPEECH RECOGNITION SYSTEM FOR SERVER-THIN CLIENT CONFIGURATION} 
        본 발명은 음성 인식 시스템에 관한 것으로서, 보다 상세하게는 씬 클라이언트(thin client)-서버 구성(configuration)에서 사용되는 분산형 음성 인식 시스템에 관한 것이다. 
        서버-씬 클라이언트 시스템이란 개념은 클라이언트를 가능한 한 단순하게 구성하고 모든 정보 및 기능을 서버에 두는 것을 의미한다. 응용 소프트웨어를 서버에서 실행시키며 클라이언트의 하드웨어와 소프트웨어를 최대한 단순화하고 클라이언트에 정보를 저장하지 않는 씬 클라이언트 기술은 클라이언트 가격 및 유지 보수 비용의 절감, 데이터 백업의 용이성 등 여러 장점을 갖는다.  널리 사용되거나 개발중인 대표적인 씬 클라이언트 시스템으로는 다음과 같은 것들이 있다. 
(1) 자바 기반 네트워크 컴퓨터: 자바 가상 머신(Java virtual machine)을 탑재한 컴퓨터로서 자바 클래스 화일(Java class file)을 서버로부터 다운로드하여 클라이언트에서 실행한다. 원칙적으로 모든 정보는 서버에 저장되지만, 속도 문제 때문에 클래스 파일들을 로컬 하드디스크에 캐싱하는 것이 일반적이다. 이 기술은 자바 관련 기술이 성숙되지 못했을 때 나왔기 때문에 자바 버전이 바뀌는 것을 단말기가 쫓아가지 못한다는 문제가 있었다. 또한, 자바 프로그램을 고속으로 수행하기 위한 하드웨어 사양도 저가 PC와 별반 다르지 않았기 때문에 시장에서는 성공하지 못했다. 
(2) 브라우저 기반 응용 프로그램 방식: 실질적인 데이타 처리는 서버에서 이루어지고 CGI(Common Gateway Interface), 서브릿(servlet)등을 사용하여 브라우저 기반의 인터페이스를 제공하는 방식이다. 현재 인터넷/인트라넷에서 가장 널리 사용되는 방식이지만 다음과 같은 몇가지 한계를 가지고 있다. 즉, 브라우저 기반 인터페이스에서 사용되는, 데이터를 먼저 입력하고 페이지를 리로드하는 방식은 상호작용(interactivity) 측면에서 근본적인 제약을 가진다. 이를 극복하기 위하여 자바애플릿(Java applet)이나 액티브엑스(ActiveX)등의 방법이 보조적으로 사용되지만 호환성, 보안성 등에서 여전히 문제가 있다. 
또한, 브라우저 기반으로 보다 다양한 인터페이스를 제공하기 위해 HTML(HyperText Markup Language)에 계속 새로운 기능이 추가되고 새 버전이 발표되고 있으나 오래된 버전의 브라우저도 계속 지원해야 한다는 문제가 있다. 더욱이, 최근의 브라우저는 매우 복잡한 소프트웨어로서 다양한 플랫폼에 포팅되기가 어렵다. 최신 사양을 만족하고 다양한 부가 기능을 갖는 브라우저는 그 크기가 무척 크기 때문에 많은 양의 메모리를 필요로 한다. 
(3) X11: 유닉스에서 널리 사용되는 GUI(Graphical User Interface) 환경인 X11은 애초부터 서버-클라이언트 환경에 적합하도록(network transparent) 설계되었기 때문에 전용 단말장치인 엑스 터미날에서 여러 서버 컴퓨터의 응용 프로그램을 수행하는 것이 가능하다. WAN(Wide Area Network)에서 사용할 때에는 네트워크 지연(network latency)와 대역에 제약을 많이 받으며 GUI의 여러 층 중 상당히 많은 부분이 클라이언트에서 수행되므로 버전에 따른 호환성 문제가 여전히 존재한다. 
(4) 독립 컴퓨터 구조(ICA: Independent Computing Architecture) 
미 시트릭스(Citrix)사의 기술로서 여러 사용자의 응용 프로그램을 동시에 가상 화면에서 수행할 수 있도록 특별히 개조된 윈도우스 NT를 서버로 하여 그 화면을 단말에 그대로 전송하고 단말에서의 사용자 입력을 다시 서버로 전송하는 방식이다. 단말기는 일반 PC의 소프트웨어이거나 전용 하드웨어를 사용한다. 현재 비교적 널리 사용되고 있으나 사용할 수 있는 소프트웨어가 윈도우스 소프트웨어 중 일부에 국한되며 서버의 확장성(scalability)에 문제가 있다. 
이와 같은 종래의 씬 클라이언트 방식에 더하여, 최근에는 휴대전화나 PDA(Personal Digital Assistance)등 휴대용 장치(mobile platform)가 무선 인터넷으로 연결되면서 씬 클라이언트로 사용될 수 있게 되었다. 이러한 휴대용 장치들은 CPU 성능이나 메모리 양이 제한적이고 하드디스크가 없기 때문에 씬 클라이언트 방식에 적합하다고 볼 수 있으나 반면 데스크탑 씬 클라이언트와 비교할 때 여러가지 제약을 갖고 있다. 우선 휴대용 장치는 화면의 크기가 작고 키보드 입력이 불편하다. 경우에 따라서는 마우스등 포인팅 디바이스가 없는 경우(휴대전화의 경우)도 있다. 또한, 화면이 흑백(B/W)이거나 그레이 레벨인 경우가 많고, 네트웍 대역폭이 작고 지연이 크다. 
현재 휴대용장치(mobile platform)에서 씬 클라이언트로 기대되고 있는 방식은 크게 WAP/i-Mode등의 브라우저 방식과 자바 소형판(Java Micro Edition 또는 KVM), GVM(Game Virtual Machine)등 가상머신(virtual machine) 방식이 있다. 이 중 브라우저 방식은 앞서 언급한 브라우저 방식 고유의 인터페이스상의 제약을 가지고 있으며, 휴대전화 등의 경우 특히 한번 사용자에게 기기가 지급되고 나면 소프트웨어의 업그레이드가 힘들기 때문에 버전에 따른 호환성 문제가 있다. 또 휴대전화나 PDA등은 메모리 양이 매우 작고 API (Application Programming Interface)가 표준적이지 않기 때문에 다양한 기능을 갖는 브라우저를 개발하는 것이 용이하지 않다는 문제가 있다. 
KVM은 JVM(Java Virtual Machine)의 일종으로서 휴대장치의 여러 제약을 고려하여 만든 가상머신이다. 자바로 작성된 프로그램을 다운로드하여 오프라인 상태에서도 수행할 수 있다는 점이 가장 큰 장점이지만 속도가 느리고 사용할 수 있는 기능이 매우 제한적이라는 단점이 있으며 표준 자바와 비교할 때 호환성이 많이 떨어져서 자바의 가장 큰 장점인 2진 호환성(binary compatibility)이 큰 의미가 없게 된다. 또한, GVM은 게임 전용 가상 머신으로서 다양한 응용 프로그램을 수행하는데 필요한 복잡한 데이터 구조를 사용하지 못하는 등의 여러가지 기술적 제약을 가지고 있다. 
현재 개발중인 씬 클라이언트-서버 시스템의 예는, 본 발명과 발명자가 동일한 대한민국 특허출원 2000-64551호에 개시되어 있다.   상기 기출원에 개시된 씬 클라이언트-서버 시스템에서는 클라이언트측에서는 프로그램을 수행하지 않고 서버측에서 다수의 사용자별로 응용 프로그램을 실행하며, 응용 프로그램의 실행에 따라 갱신되는 화면 정보만을 클라이언트측에 압축하여 전달한다. 이때 서버 시스템은 하나의 자바 가상 머신과, 상기 하나의 자바 가상 머신에 의해 동작하는 다수의 클라이언트 세션을 포함하고, 각 세션은 각 클라이언트에 해당하는 하나 이상의 응용 프로그램을 수행하도록 구성된다.
  이상과 같은 씬 클라이언트-서버 시스템에서 클라언트에서 수행되어야 하는 연산의 양을 최소화하면 클라이언트 장치의 프로세싱 성능이나 저장 용량은 작아도 되지만, 화면이나 키보드 등의 입출력 장치는 크기가 작으면 사용하기에 불편하기 때문에 이에 대한 개선 방법이 필요하다. 이와 같은 개선 방법으로서 음성을 보조적인 입력 방법으로 사용하는 것이 하나의 대안으로서 연구되고 있다. 음성을 보조 입력 방법으로 사용하기 위해서는 음성인식이 실현되어야 하지만, 프로세싱 성능이나 저장용량이 작은 씬 클라이언트에서 음성인식을 구현하기는 어렵다. 
상기 문제점을 해결하기 위하여, 본 발명에서는 씬 클라이언트-서버 시스템에서 음성 인식을 효율적으로 구성하기 위한 방식을 제시한다. 
즉, 본 발명은 음성 인식 장치를 전반부와 후반부로 나누어 구성하여 효율적으로 분산시킨 씬 클라이언트 및 서버 시스템을 제공하기 위한 것이다.
도 1은 본 발명에 따른 음성 인식 시스템이 사용되는 환경을 도시한 도면. 
도 2는 본 발명에 따른 씬 클라이언트의 내부 블록도. 
도 3은 본 발명에 따른 서버의 블럭도. 
도 4는 본 발명에 따른 서버의 프로그램 구조도. 
<도면의 주요 부분에 대한 부호의 설명> 
10, 20, 30 : 클라이언트  
50 : 서버 
120 : 영상복원부 
130 : 키보드 
160 : 음성 인식 전반부
170 : 송수신부
220 : 입력 이벤트 처리부
240 : 음성 인식 후반부
본 발명의 일면에 따르면, 하나 이상의 클라이언트에 접속되는 서버에 있어서,
상기 클라이언트에서 전처리된 음성 데이타를 전송받기 위한 수단과,
상기 전송받은 음성 데이타를 인식하기 위한 음성 인식 수단과,
각 클라이언트에 해당하는 하나 이상의 응용 프로그램을 수행하기 위한 수단과,
상기 응용 프로그램 수행의 결과에 따라 각 클라이언트의 화면 데이타를 갱신하기 위한 수단과,
상기 갱신한 화면 데이터를 상기 각 클라이언트로 전송하는 수단을 포함하는 서버가 제공된다.
상기 음성 인식 수단은 각 클라이언트에 대한 현상태의 인식 대상 단어의 리스트인 인식 도메인을 이용하여 인식을 수행하는 수단을 포함한다.
상기 인식 대상 단어는 서버에서 수행되고 있는 상기 응용 프로그램의 현상태에서 사용자가 선택할 수 있는 입력을 나타내는 단어들을 포함한다.
상기 서버는,
하나의 자바 가상 머신과,
상기 하나의 자바 가상 머신에 의해 동작하는 다수의 클라이언트 세션을 포함하고,
상기 각 클라이언트 세션은 상기 각 클라이언트에 해당하는 상기 하나 이상의 응용 프로그램을 수행한다.
본 발명의 다른 일면에 따르면, 하나 이상의 클라이언트에 접속되는 서버에 있어서,
하나의 자바 가상 머신과,
상기 하나의 자바 가상 머신에 의해 동작하는 다수의 클라이언트 세션을 포함하고,
각 클라이언트 세션은 상기 각 클라이언트에 해당하는 하나 이상의 응용 프로그램의 수행하는 수단과, 상기 클라이언트에 전처리된 음성 데이타를 전송받아이를 인식하기 위한 음성 인식 수단을 포함하는 서버가 제공된다.
상기 음성 인식 수단은 각 클라이언트에 대한 현상태의 인식 대상 단어의 리스트인 인식 도메인으로부터 결정되는 인식 데이타 구조를 이용하여 인식을 수행한다.
본발명의 다른 일면에 따르면 서버에 접속되는 클라이언트 장치에 있어서,
서버측에서 전송받은 화면 데이터를 디스플레이하기 위한 디스플레이 수단과,
서버측에서의 클라이언트에 대한 응용 프로그램의 수행에 사용되는, 음성 입력을 포함하는 사용자 입력을 입력받기 위한 입력 수단과,
상기 음성 입력을 전처리하기 위한 수단과,
전처리한 음성을 서버측에 전송하기 위한 수단
을 포함하는 클라이언트 장치가 제공된다.
상기 전처리 수단은 상기 클라이언트에 대한 현상태의 인식 대상 단어의 리스트인 인식 도메인을 이용하지 않고 전처리를 수행한다.
본발명의 다른 일면에 따르면, 하나 이상의 클라이언트 및 상기 클라이언트들과 네트워크를 통해 접속된 서버를 포함하는 클라이언트-서버 시스템에 있어서,
상기 클라이언트는,
음성을 입력받기 위한 입력수단과,
입력받은 음성을 전처리하기 위한 전처리 수단과.
상기 전처리된 음성을 네트워크상으로 전송하기 위한 전송수단
을 포함하고,
상기 서버는,
네트워크상으로 전송된 전처리된 음성을 인식하기 위한 수단과,
각 클라이언트에 해당하는 응용 프로그램을 수행하여 그 결과 화면 데이터를 상기 클라이언트로 전송하기 위한 수단을 포함하는 클라이언트-서버 시스템이 제공된다.
본 발명에서는 음성 인식 장치를 전반부와 후반부로 나누어 구성하여 각각 씬 클라이언트와 서버측에 분산한다. 전반부에서는 음성의 녹음, 사용자가 내린 음성 명령의 시작과 끝 검출, 특징의 추출 및 압축등이 이루어지나, 이에 한정되는 것은 아니다. 전반부에서 추출된 음성 데이터는 후반부로 통신망을 통해 전달된다. 후반부에서는 흔히 인식 도메인 (domain)이라 불리는 인식 대상 단어의 리스트를 이용하여 인식 모델을 구성하고 이 인식 모델을 이용하여 전반부로부터 전달받은 데이터로부터 가장 가까운 단어를 찾아 결과를 다시 전반부로 전달한다.
이러한 분산 음성 인식(DSR: Distributed Speech Recognition)을 씬 클라이언트-서버 시스템에서 사용하는 것은 많은 장점을 가지고 있다. 첫째, 프로세싱 파워와 메모리 용량이 많이 필요한 부분을 서버측에서 수행함으로써 클라이언트의 경량화가 가능하고, 한편 서버측에서는 고성능의 인식 알고리즘을 사용할 수 있다. 또한, 소용량의 압축된 음성 특징 데이터만이 통신망을 통해 전달되므로 모든 음성이 전달되는 경우와 비교하여 데이터 전송량을 줄일 수 있다. 셋째, TCP 등의 신뢰성 있는 프로토콜에 의해 씬 클라이언트와 서버간 전송이 일어나므로 실시간(raw)음성을 전달할 때처럼 패킷 손실에 의해 인식률이 저하되는 것을 막을 수 있다. 또한, 예를 들어 전화망의 8bit 8kHz 샘플링 등의 제약에 구애되지 않고 보다 높은 샘플링 레이트 및 고분해능(resolution)을 사용할 수 있어 음성 인식률을 향상시킬 수 있다. 
반면에 음성 인식 시스템이 두 부분으로 나뉘어지고 특히 무선 인터넷과 같이 비교적 느린 통신망으로 연결되어 있을 때는 통신망에서의 지연에 의해 시스템의 응답속도가 느려질 수 있다. 더욱이, 인식 도메인에 관한 정보를 클라이언트에서 수행되는 응용 소프트웨어가 가지고 있는 경우, 특히 그 인식 도메인의 크기가 클 때 압축된 음성 특징 데이터 뿐만 아니라 인식 도메인까지 함께 통신망을 통해 전달되어야 하므로 시간이 더 소모될 수 있다. 여기에서 인식 도메인이라 함은 음성 인식을 입력으로 받아들이는 응용 프로그램 등의 현재 컨텍스트에 따라 결정되는, 현재 상태에서 인식 가능한 단어들의 리스트를 의미한다.  
본 발명에서는 이와 같은 문제를 해결하기 위하여 인식 도메인에 관한 정보가 서버측에서 관리되도록 시스템을 구성한다. 
이하에서는 첨부 도면을 참조하여 본발명의 일실시예를 상세히 설명하기로 한다.
도 1은 본 발명에 따른 음성 인식 시스템이 사용되는 환경을 도시한 도면이다. 도 1에 도시된 바와 같이, 본 발명에 따른 분산 음성 인식 시스템의 구성 요소는 크게 씬 클라이언트(10, 20, 30)와 서버(50)로 나뉜다. 클라이언트는 사용자의 입력을 받아 서버(50)에 전달하고 서버의 출력을 화면이나 소리로 사용자에게전달하는 장치로서 예를 들어 기존의 PC(10)에서 동작하는 소프트웨어, 웹 브라우저에서 동작하는 애플릿, PDA(20)용 소프트웨어, 휴대폰(30) 등에 내장된 소프트웨어 혹은 전용 단말 장치 등의 형태를 가질 수 있다. 서버(50)는 예를 들어 JVM(자바 가상 머신)이 동작하는 일반적인 서버용 컴퓨터이다. 클라이언트와 서버는 TCP/IP등 1:1 통신이 가능한 임의의 네트워크(40, 예를 들어 인터넷)에 의해 연결된다.   
도 2는 본 발명에 따른 음성 인식 시스템의 일부를 포함하는 클라이언트 측의 구성의 일실시예를 도시하고, 도 3은 본 발명에 따른 음성 인식 시스템의 일부를 포함하는 서버측의 구성의 일실시예를 도시한다. 본 발명의 음성 인식 시스템은 본 명세서에 도시된 클라이언트-서버의 구성에 한정되는 것이 아니라, 다양한 다른 아키텍쳐의 씬 클라이언트-서버 시스템에 응용 가능하다.
도 2에 도시한 씬 클라이언트 장치에서 스크린(110)은 일반적인 비트맵(bitmap) 디스플레이 장치이다. 키보드(130)는 일반적인 PC의 키보드일 수도 있고 PDA에서 사용되는 펜에 의한 문자 입력 장치이거나 혹은 휴대전화에서처럼 제한된 수의 키로 이루어져 있을 수도 있다. 포인팅 장치(140)는 마우스, 펜 등의 위치를 입력할 수 있는 장치이다. 키보드(130)와 포인팅 장치(140)에 의해 사용자 입력이 감지되면 이 입력 이벤트는 클라이언트의 송수신부(170)를 거쳐 네트워크를 통하여 서버측으로 전송된다. 이 입력 이벤트와 관련된 데이타는 서버측에서 다양한 응용 소프트웨어의 실행에 사용될 수 있다. 영상 복원부(120)는 서버측에서 전송되는 압축된 영상을 화면에 표시하기 위한 장치 혹은 소프트웨어로서 화면의 깜박거림을 줄이거나 압축 효율을 향상시키기 위하여 오프스크린 버퍼(미도시됨)를 사용할 수 있다. 특정한 종류의 그래픽 연산은 이미지가 아닌 연산 코드(operation code)의 형태로 서버측으로부터 전달되어 스크린(110)이나 오프스크린 버퍼에 이 연산의 결과가 적용될 수 있다. 
음성인식(SR: Speech Recognition) 전반부(160)는 마이크로부터 입력되는 음성 신호를 서버측으로 전송하기에 앞서서 전처리하는 기능을 수행하여, 예를 들어 음성 신호를 디지타이즈하고 음성 명령의 시작과 끝을 검출하며 음성 특징(feature)을 추출한다. 시작과 끝의 검출은 음성 파형으로부터 자동적으로 이루어질 수도 있고, 버튼 등을 이용하여 사용자가 시작과 끝나는 시점을 지정하도록 할 수도 있다. 추출된 특징은 서버측으로 전송하기 전에 필요에 따라 음성 인식 전반부(160)에서 압축을 할 수도 있다. 특징 추출 방법으로는 음성 인식 분야에 알려져 있는 다양한 방법이 사용될 수 있고, 예를 들어 LPC(linear predictive coding) 파라미터를 특징으로 추출할 수 있다. 음성 인식 전반부(160)에서 사용할 특징 추출 방법을 결정하는 데에 있어서 고려할 점은, 씬 클라이언트(100)에서 수행할 수 있을 정도로 연산량이 크지 않을 것, 추출된 특징을 효율적으로 네트워크로 전송하는 것이 가능할 것, 서버측에서는 추출된 특징을 이용하여 고성능의 음성 인식이 가능할 것 등이다.
송수신부(170)는 키보드(130) 또는 포인팅 장치(140)로부터의 사용자 입력 및 사용자가 입력한 음성 데이터를 서버측으로 전송하고, 서버측으로부터 화면 정보를 수신하기 위한 것으로, 유무선 모뎀 등을 포함할 수 있다.
  도 3는 서버의 구성을 보여주는 도면으로서, 클라이언트측에 디스플레이되는 화면과 동일한 화면 정보를 저장하는 가상 스크린부(250)와, 가상 스크린부(250)에 저장된 영상정보를 클라이언트에 전송하기 위하여 압축하는 영상 압축부(210)와, 클라이언트로부터의 입력 이벤트(마우스 이벤트, 키보드 이벤트 및 음성입력 이벤트)들을 GUI(Graphical User Interface) 관리부(255)에 전달하는 입력이벤트 처리부(220)와 가상 스크린부에 연결되어 클라이언트측에 디스플레이되는 GUI를 관리하는 GUI관리부(255)와, 음성 인식 전반부(160)로부터 전송되는 정보를 이용하여 음성 인식을 행하는 음성 인식 후반부(240) 등을 포함한다.
클라이언트로부터 전송된 키보드와 마우스 이벤트는 입력 이벤트 처리부(220) 및 GUI 관리부(255)를 거쳐 응용 소프트웨어(260)로 전달된다. 클라이언트의 음성인식 전반부(160)에서 전송된 음성 데이터는 서버의 음성 인식 후반부(240)에서 처리된다. 음성 인식의 결과는 또한 입력 이벤트로서 입력 이벤트 처리부(220) 및 GUI 관리부(255)를 거쳐 응용 소프트웨어(260)로 전달된다. 서버측에서 응용 소프트웨어(260)가 실행되고 그 결과 화면이 갱신되면, (가상) 스크린(250)의 내용이 변하고 변화된 내용은 영상 압축부(210)에서 압축되어 클라이언트(100)측으로 전달된다.
음성 인식 후반부(240)에서는 현상태의 인식 대상 단어의 리스트인 인식 도메인을 이용하여 인식을 수행한다. 인식 대상 단어는 예를 들어 현재 수행되고 있는 프로그램의 현상태에서 사용자가 선택할 수 있는 입력을 나타내는 단어들이며, 예를 들어 화면에서 누를 수 있는 버튼의 이름, 선택할 수 있는 메뉴의 내용 등을포함할 수 있다. 인식 대상 단어는 이와 같은 프로그램 자체의 구성요소뿐 아니라, 다른 것들도 포함할 수 있다. 예를 들어 응용 프로그램이 브라우저인 경우는 브라우저 상에 표시되는 하이퍼링크는 프로그램 자체의 구성요소는 아니지만, 사용자가 선택할 수 있는 것 중의 하나로서, 인식 대상 단어에 포함된다. 또한, 하나의 사용자가 실행시키는 프로그램이 여러 개인 경우 도메인에 포함되는 인식 대상 단어 리스트에는 각 프로그램 내에서 받을 수 있는 음성입력 단어 뿐 아니라, 실행중인 소프트웨어 중 하나를 활성 프로그램으로 선택하는 음성 입력(윈도우스 운영체제하에서 윈도우 위에서 마우스를 클릭하는 것에 해당함)에 해당하는 단어도 포함될 수 있다.
따라서, 이와 같은 인식 도메인 정보를 추출하는 방법으로서 현재 실행 중인 응용 소프트웨어의 화면상의 버튼 이름, 메뉴 내용 등은 GUI 관리부(255)에서 자동으로 추출할 수 있다. 혹은 음성 인식 후반부(240)가 제공하는 음성인식 API (음성인식 Application Programming Interface, 265)를 응용 소프트웨어(260)에서 명시적으로 사용하여 도메인을 지정할 수도 있다. 음성 인식 API는 인식 대상이 되는 단어를 음성 인식 엔진에 등록하고 등록된 단어가 인식되었을 때 어떤 일이 수행되어야 하는지를 지정할 수 있는 API를 의미한다. 또 음성인식엔진의 기능에 따라서는 개별단어뿐 아니라 특정한 패턴을 갖는 문장에 포함되는 단어들을 인식할 수도 있다. 예를 들어 "A사의 주식 B부를 매입합니다."라는 문장 중에서 "A사," "B부," "매입" 등의 당어를 인식한다. 음성 인식 API를 사용하는 방법은 특히 웹 브라우저의 화면상의 하이퍼 링크와 같이 GUI 관리부(255)를 통해 표준적인 방법으로 접근했을 때 추출해낼 수 없는 항목을 직접 인식 대상 단어 리스트에 추가하기 위해 유용하다.
음성 인식 전반부(160)로부터 전송받은 음성 데이터와, 추출한 도메인 정보로부터 음성 인식이 음성 인식 후반부(240)에서 성공적으로 이루어지면 이 결과는 입력 이벤트 처리부(220)에 전송되고, 입력 이벤트 처리부(220)에서는 예를 들어 버튼이 마우스에 의해 눌려진 것과 동일한 이벤트를 GUI 관리부(255)에 전달한다. 대안적으로는, 음성 인식 결과가 음성 인식 API(265)를 통해 직접 응용 소프트웨어(260)에 전달될 수도 있다.
도 3에서 하나의 클라이언트에 대해서 여러 개의 응용 소프트웨어(260)가 실행될 수 있다. 이 경우, GUI 관리부(255)는 다수의 응용 소프트웨어 중 어떤 응용 소트프웨어(260)가 현재 활성화되어 있는지 (즉, 입력을 받을 수 있는 상태인지) 판단하여, 해당 응용 소프트웨어(260)에 클라이언트로부터의 입력 이벤트를 전달한다.
도 4는 본 발명에 따른 분산 음성 인식 시스템의 서버측의 프로그램 구조도의 일실시예이다. 도 4에 도시된 서버 소프트웨어는 하나의 JVM(410)에 의해 동작한다. 새로운 클라이언트가 접속을 하면 사용자 세션이 새로 생성된다. 하나의 사용자 세션 내에서 복수개의 사용자 응용 소프트웨어(440a, 440b 또는 440c, 440d)가 구동될 수 있다. 클라이언트측의 화면을 갱신하기 위하여, GUI 관리부(255)에서 응용 소프트웨어의 화면 출력을 가로채어서, 이를 압축하여(210) 압축된 데이타를 클라이언트에 전송한다. 클라이언트로부터 전달되는 사용자 입력은 마치 사용자가서버 컴퓨터의 콘솔에서 직접 키보드와 마우스등을 사용하여 입력한 것처럼, 서버측의 입력 이벤트 처리부(220)의 이벤트 큐(event queue)를 거쳐 사용자 응용 프로그램(260, 440)에 전달된다. 
사용자 세션의 현상태(state)는 클라이언트와 서버간의 연결이 종료될 때 서버측의 DB나 파일 시스템(도시되지 않음) 등에 저장되었다가 나중에 다시 연결이 재개되었을 때 로드될 수 있다. 이와 같이 함으로써, 클라이언트측에서는 마음대로 기기를 켜고 꺼도 항상 마지막 작업하던 상태에서 작업을 개시할 수 있다. 
도 4에 명시적으로 도시되지는 않았으나, 도 3에 도시된 영상 압축부(210), 입력이벤트 처리부(220), 음성 인식 후반부(240) 등은 서버측의 각 세션마다(즉, 각 클라이언트마다) 별도로 제공된다.
이하에서는 도 4에 도시된 서버 소프트웨어에 대해 보다 상세히 설명하기로 한다. 
본 발명에 따른 서버 소프트웨어에서는 서로 다른 클라이언트가 사용하는 응용프로그램간의 영향을 최소화하기 위하여 이벤트 처리를 위한 쓰레드(thread)와 이벤트 큐는 각 사용자 세션마다 별도로 할당된다. 이는 종래 기술에서 이벤트 쓰레드와 큐가 일반적으로는 JVM 당 하나만 있는 것과 상이하다.  
세션 관리부(420a)는 새로운 클라이언트가 접속하면 새로운 세션을 생성하고, 만일 클라이언트로부터의 통신이 어느정도 시간 이상 없으면, 클라이언트와의 접속이 중단된 것으로 판단하여, 해당 세션을 삭제한다. 
응용프로그램 관리부(420b)는 본발명의 클라이언트-서버 장치에서 실행되는응용 프로그램들의 리스트를 포함한다. 본 발명의 일실시예에서는 사용자에 따라 서로 다른 응용프로그램에 접근이 가능하도록 할 수 있다. 예를 들어 사용자를 유료 사용자와 무료 사용자로 나누어 유료 사용자만이 다양한 종류의 응용프로그램을 사용할 수 있고, 무료 사용자는 시험용의 몇가지 응용프로그램만 사용할 수 있도록 하는 것이 가능하다.  
영상압축 라이브러리(420c)는 후술하는 바와 같이, 클라이언트측에 디스플레이될 영상 데이터를 압축하는데 사용되는 소프트웨어 컴포넌트들을 포함한다. 
AWT 경량 컴포넌트 라이브러리(420d)는 버튼, 텍스트 필드, 스크롤 바 등의 경량 컴포넌트들의 세트로서 자바의 표준 라이브러리에 있는 것이 아닌 본발명의 환경에 맞도록 구현된 것이다. 
클라이언트가 도 4에 도시된 세션 관리부(420a)에 접속하면 새로운 세션이 생성된다. 각 세션별로 ZAppletContext 객체(460)가 하나씩 생성된다. 본 발명의 일실시예에 따르면 각 ZAppletContext는 이벤트 큐, 클라이언트로부터의 입력을 처리하기 위한 쓰레드(thread), GUI 이벤트를 처리하는 쓰레드(thread), 클라이언트 스크린 버퍼 및 오프스크린 버퍼 등을 포함한다. 이하에서는 그 각각에 대해 상세히 살펴보겠다. 
이벤트 큐 : 일반적인 자바 응용프로그램은 JVM 전체에 하나의 이벤트 큐를 가지지만 본 발명의 서버에서는 각 사용자의 프로그램들이 독립적으로 동작할 수 있도록 각 세션별로 이벤트 큐를 가진다. 
클라이언트로부터의 입력을 처리하는 쓰레드(thread) : 클라이언트의 키보드및 포인팅 디바이스로부터의 이벤트 입력을 받아 이벤트 큐에 넣는 역할을 한다. 
본 발명의 일실시예에 따르면, 상기 이벤트 큐와 입력 처리 쓰레드는 도 3의 입력 이벤트 처리부(220)를 구현하기 위한 것이다. 그러나, 도 3은 서버측의 구성을 기능블럭으로 설명한 것이고, 도 4는 프로그램 아키텍쳐 측면에서 설명한 것이므로 도 3과 도4에 도시된 블럭들이 대응되지는 않는다. 도 4에 도시된 아키텍쳐를 이용하여 본 발명의 서버를 구성하기 위해 다양한 방법이 사용될 수 있을 뿐 아니라, 다른 서버 아키텍쳐를 사용하여 도 3의 기능 블럭들을 구현하는 것도 가능하고 모두 본 발명의 범주에 포함되는 것이다.
GUI 이벤트를 처리하는 쓰레드(thread) : 이벤트 큐(event queue)에 새로운 이벤트가 들어오면 응용 프로그램에 의해 미리 등록된 작업을 수행한다. 
클라이언트 스크린 버퍼(client screen buffer, 550) : 클라이언트의 마지막 화면 내용을 가지는 버퍼. 새로이 디스플레이될 화면을 압축하여 전송할 때 이전 화면과 차분을 계산하기 위해 사용된다. 
오프스크린 버퍼(540) : 응용 프로그램 화면의 복사본을 갖는다. 일반적으로는 오프스크린 버퍼는 화면의 깜박임을 방지하기 위한 이중 버퍼링을 위해 사용되지만 본 발명의 서버의 일실시예에서는 영상 데이타를 직접 액세스하기 위해 사용된다.  
상기 스크린 버퍼(540, 550)는 도 3의 스크린(250)에 대응할 수 있다.
클라이언트가 서버에 접속할 때 클라이언트는 클라이언트 디바이스의 화면 크기에 관한 정보를 서버 측으로 보내고, 클라이언트 스크린 버퍼(550)와 오프스크린 버퍼(540)의 크기는 이 정보에 의해 클라이언트 디바이스의 화면 크기와 같도록 정해진다. 마찬가지로, 클라이언트 스크린 버퍼와 오프스크린 버퍼의 깊이(depth, 화소당 비트)도 클라이언트 디바이스의 스크린 깊이(screen depth)와 동일하도록 정해진다. 
도 4에 도시된 바와 같이, 응용 프로그램은 자바애플릿의 형태를 취하지만 일반적인 애플릿이 상속하는 애플릿 클래스 대신 본 발명에서 정의된 지애플릿(ZApplet, 450) 클래스를 상속한다. 지애플릿은 애플릿의 getGraphics() 함수를 오버라이드(override)하여 응용 프로그램의 모든 그래픽 연산이 지그래픽스(ZGraphics) 객체를 통해 이루어지도록 하는 것이다. 클라이언트로부터 입력에 의해 실행되는 각 응용 프로그램은 지애플릿 클래스에서 상속(inherit)된 새로운 클래스로서 구현된다.  
지금까지 설명한 서버 프로그램의 구조는 예시적인 것으로 본발명의 음성인식 시스템이 응용되는 서버는 이에 한정되지 않고, 클라이언트 단에서 입력받은 음성을 클라이언트와 서버에서 그 기능을 분담하여 인식하기 위한 다양한 하드웨어 및 소프트웨어 구조가 사용될 수 있다. 이는 본 명세서에서 종래기술과 관련하여 설명한 모든 씬 클라이언트-서버 아키텍쳐를 포함하나 이에 한정되는 것은 아니다.
지금까지 설명한 바와 같이, 서버 내의 음성 인식 후반부(240)는 나머지 부분과 같은 하드웨어에서 운영될 수도 있지만 대안으로는 다른 컴퓨터에서 운영될 수도 있다. 음성인식 후반부의 연산량이 많기 때문에 음성인식 후반부만을 별개로 떼어 음성인식에 효율적인 아키텍쳐의 하드웨어에 모아놓음으로써 시스템의 효율을높일 수 있다.
도 4를 참조하여 전술한 구조의 서버에서와 같이 하나의 서버에서 다수의 사용자가 다수의 응용 소프트웨어를 동시에 실행하는 경우 음성 인식의 도메인의 내부 데이터 구조를 캐싱해 두고 여러 사용자간에 공유해서 사용할 수 있다. 이 방법은 특히 텍스트 형태로 표현된 도메인으로부터 음성인식의 내부 데이터 구조로 변환하는데 많은 계산량이 필요한 경우 유용하다. 즉, (음성 인식 후반부 측의)음성인식엔진에서는 흔히 효율적인 인식을 위하여, 모든 단어의 조합이 입력될 수 있다고 가정하지 않고 현 인식 도메인에 포함되어 있는 단어들의 리스트를 이용하여 작성된 복잡한 데이터 구조를 사용하여 도메인에 의존하는 음성 인식을 행한다. 이 경우 상기 데이터 구조를 사용자간에 공유함으로써 성능을 향상시킬 수 있다.
본 발명에 따르면, 종래의 음성 인식에서 요구되는 메모리나 계산량이 적은 전반부만을 클라이언트에 탑재함으로써 씬 클라이언트 시스템에 음성 인식을 적용하는 것이 가능하게 되었다. 
음성을 전처리 과정을 거침으로써 (음성을 그대로 보내는 경우와 비교하여) 데이터의 양을 작게 하여 클라이언트-서버 간 통신량을 줄이고 따라서 응답속도도 빠르게 된다.  
본 발명에 따른 씬 클라이언트-서버시스템에서는 응용 소프트웨어나 버튼, 메뉴 등을 관리하는 GUI 시스템이 서버측에 위치하므로 음성 인식의 후반부를 서버에 배치하면 음성 인식 대상 단어의 리스트나 인식 결과를 통신망을 통해 전달할필요가 없으므로 시스템의 구성이 간단해지고 응답속도가 향상된다. 
클라이언트 장치가 휴대폰이나 PDA등과 같이 제한된 입력 수단과 상대적으로 작은 출력 화면만을 가지고 있을 때 음성을 보조적 (혹은 전적인) 입력 수단으로 사용함으로써 사용의 편의성이 증대된다. 즉 휴대 장치의 작은 화면에서 한번에 보여줄 수 있는, 따라서 마우스나 펜으로 클릭할 수 있는 내용이 제한되는데, 음성 입력의 경우 현재 화면에 보이는 것과 관계없이 다양한 명령어를 인식하도록 할 수 있으므로 사용자가 보다 빠르게 원하는 결과를 얻을 수 있다.  

Claims (10)

  1. 하나 이상의 클라이언트에 접속되는 서버에 있어서,
    상기 클라이언트에서 전처리된 음성 데이타를 전송받기 위한 수단과,
    상기 전송받은 음성 데이타를 인식하기 위한 음성 인식 수단과,
    각 클라이언트에 해당하는 하나 이상의 응용 프로그램을 수행하기 위한 수단과,
    상기 응용 프로그램 수행의 결과에 따라 각 클라이언트의 화면 데이타를 갱신하기 위한 수단과,
    상기 갱신한 화면 데이터를 상기 각 클라이언트로 전송하는 수단을 포함하는 서버.
  2. 제1항에 있어서, 상기 음성 인식 수단은 각 클라이언트에 대한 현상태의 인식 대상 단어의 리스트인 인식 도메인을 이용하여 인식을 수행하는 수단을 포함하는 서버.
  3. 제2항에 있어서, 상기 인식 대상 단어는 서버에서 수행되고 있는 상기 응용 프로그램의 현상태에서 사용자가 선택할 수 있는 입력을 나타내는 단어들을 포함하는 서버.
  4. 제1항에 있어서, 상기 서버는,
    하나의 자바 가상 머신과,
    상기 하나의 자바 가상 머신에 의해 동작하는 다수의 클라이언트 세션을 포함하고,
    상기 각 클라이언트 세션은 상기 각 클라이언트에 해당하는 상기 하나 이상의 응용 프로그램을 수행하는 서버.
  5. 하나 이상의 클라이언트에 접속되는 서버에 있어서,
    하나의 자바 가상 머신과,
    상기 하나의 자바 가상 머신에 의해 동작하는 다수의 클라이언트 세션을 포함하고,
    각 클라이언트 세션은 상기 각 클라이언트에 해당하는 하나 이상의 응용 프로그램의 수행하는 수단과, 상기 클라이언트에 전처리된 음성 데이타를 전송받아 이를 인식하기 위한 음성 인식 수단을 포함하는 서버.
  6. 제1항 또는 제5항에 있어서, 상기 음성 인식 수단은 각 클라이언트에 대한 현상태의 인식 대상 단어의 리스트인 인식 도메인으로부터 결정되는 인식 데이타 구조를 이용하여 인식을 수행하는 서버.
  7. 제6항에 있어서, 상기 인식 데이타 구조는 서로 다른 클라이언트 세션들간에공유되는 서버.
  8. 서버에 접속되는 클라이언트 장치에 있어서,
    서버측에서 전송받은 화면 데이터를 디스플레이하기 위한 디스플레이 수단과,
    서버측에서의 클라이언트에 대한 응용 프로그램의 수행에 사용되는, 음성 입력을 포함하는 사용자 입력을 입력받기 위한 입력 수단과,
    상기 음성 입력을 전처리하기 위한 수단과,
    전처리한 음성을 서버측에 전송하기 위한 수단
    을 포함하는 클라이언트 장치.
  9. 제8항에 있어서, 상기 전처리 수단은 상기 클라이언트에 대한 현상태의 인식 대상 단어의 리스트인 인식 도메인을 이용하지 않고 전처리를 수행하는 클라이언트.
  10. 하나 이상의 클라이언트 및 상기 클라이언트들과 네트워크를 통해 접속된 서버를 포함하는 클라이언트-서버 시스템에 있어서,
    상기 클라이언트는,
    음성을 입력받기 위한 입력수단과,
    입력받은 음성을 전처리하기 위한 전처리 수단과.
    상기 전처리된 음성을 네트워크상으로 전송하기 위한 전송수단
    을 포함하고,
    상기 서버는,
    네트워크상으로 전송된 전처리된 음성을 인식하기 위한 수단과,
    각 클라이언트에 해당하는 응용 프로그램을 수행하여 그 결과 화면 데이터를 상기 클라이언트로 전송하기 위한 수단을 포함하는 클라이언트-서버 시스템.
KR1020010045913A 2001-07-30 2001-07-30 서버-씬 클라이언트 구성용 분산형 음성 인식 시스템 KR20030012064A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010045913A KR20030012064A (ko) 2001-07-30 2001-07-30 서버-씬 클라이언트 구성용 분산형 음성 인식 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010045913A KR20030012064A (ko) 2001-07-30 2001-07-30 서버-씬 클라이언트 구성용 분산형 음성 인식 시스템

Publications (1)

Publication Number Publication Date
KR20030012064A true KR20030012064A (ko) 2003-02-12

Family

ID=27717245

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010045913A KR20030012064A (ko) 2001-07-30 2001-07-30 서버-씬 클라이언트 구성용 분산형 음성 인식 시스템

Country Status (1)

Country Link
KR (1) KR20030012064A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140035707A (ko) * 2012-09-14 2014-03-24 한국전자통신연구원 가상화 시스템 및 가상화 서비스 제공방법
US11514916B2 (en) 2019-08-13 2022-11-29 Samsung Electronics Co., Ltd. Server that supports speech recognition of device, and operation method of the server
US11521619B2 (en) 2019-08-13 2022-12-06 Samsung Electronics Co., Ltd. System and method for modifying speech recognition result
US11532310B2 (en) 2019-08-13 2022-12-20 Samsung Electronics Co., Ltd. System and method for recognizing user's speech

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124291A (ja) * 1996-10-17 1998-05-15 Casio Comput Co Ltd 移動端末音声認識通信システム
JPH10240493A (ja) * 1997-01-06 1998-09-11 Texas Instr Inc <Ti> Javaへ音声認識能力を加えるシステムと方法
KR20000049417A (ko) * 2000-02-29 2000-08-05 이만균 음성 인터넷 명령어 처리방법 및 시스템
KR20010015932A (ko) * 2000-02-24 2001-03-05 김하철 음성인식을 이용한 웹브라우저상의 링크 실행방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124291A (ja) * 1996-10-17 1998-05-15 Casio Comput Co Ltd 移動端末音声認識通信システム
JPH10240493A (ja) * 1997-01-06 1998-09-11 Texas Instr Inc <Ti> Javaへ音声認識能力を加えるシステムと方法
KR20010015932A (ko) * 2000-02-24 2001-03-05 김하철 음성인식을 이용한 웹브라우저상의 링크 실행방법
KR20000049417A (ko) * 2000-02-29 2000-08-05 이만균 음성 인터넷 명령어 처리방법 및 시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140035707A (ko) * 2012-09-14 2014-03-24 한국전자통신연구원 가상화 시스템 및 가상화 서비스 제공방법
US11514916B2 (en) 2019-08-13 2022-11-29 Samsung Electronics Co., Ltd. Server that supports speech recognition of device, and operation method of the server
US11521619B2 (en) 2019-08-13 2022-12-06 Samsung Electronics Co., Ltd. System and method for modifying speech recognition result
US11532310B2 (en) 2019-08-13 2022-12-20 Samsung Electronics Co., Ltd. System and method for recognizing user's speech

Similar Documents

Publication Publication Date Title
US7496053B1 (en) Web-based visual development environment
US5724514A (en) System, method and apparatus for controlling the transfer of data objects over a communications link
US6519605B1 (en) Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls
US6012068A (en) Media manager for access to multiple media types
US7941609B2 (en) HTTP acceleration by prediction and pre-fetching
US7346857B2 (en) Dynamic controls for use in computing applications
US8904012B2 (en) Client-server input method editor architecture
US8578333B2 (en) Method and system for client-side user interface enhancement to enable application integration and portalisation
KR100262432B1 (ko) 인터액티브어플리케이션실행방법,클라이언트-서버다이얼로그시스템
US8079024B2 (en) Method and system for platform-independent file system interaction
US6363433B1 (en) Method and mechanism for client-side handling of extensions originally written for servers
US7363027B2 (en) Sequential multimodal input
CA2471292C (en) Combining use of a stepwise markup language and an object oriented development tool
KR20070110127A (ko) 압축을 이용하여 분산 프로세싱 환경에서 그래픽디스플레이를 업데이트하는 방법 및 장치
US20030028513A1 (en) System and method for providing help services
JP2005525631A (ja) マルチアプリケーションを使用するシステム及び方法
KR20090106454A (ko) 상태기반 브라우징
EP4170650A1 (en) Speech control method for mini-program, and devices and storage medium
CN114816585B (zh) 一种跨运行环境的远程输入重定向方法
US20130342467A1 (en) Dynamically updating a smart physical keyboard
US7149969B1 (en) Method and apparatus for content transformation for rendering data into a presentation format
JP2001516921A (ja) 動的オブジェクト・リンク・インターフェイス
CN112860566B (zh) 小程序检测方法、装置、电子设备以及可读介质
KR20020034347A (ko) 서버-씬 클라이언트 시스템
KR20030012064A (ko) 서버-씬 클라이언트 구성용 분산형 음성 인식 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application