KR101957277B1 - 음성 인식을 이용한 코딩시스템 및 코딩방법 - Google Patents

음성 인식을 이용한 코딩시스템 및 코딩방법 Download PDF

Info

Publication number
KR101957277B1
KR101957277B1 KR1020170019819A KR20170019819A KR101957277B1 KR 101957277 B1 KR101957277 B1 KR 101957277B1 KR 1020170019819 A KR1020170019819 A KR 1020170019819A KR 20170019819 A KR20170019819 A KR 20170019819A KR 101957277 B1 KR101957277 B1 KR 101957277B1
Authority
KR
South Korea
Prior art keywords
programming
user
program
user terminal
management server
Prior art date
Application number
KR1020170019819A
Other languages
English (en)
Other versions
KR20180093556A (ko
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 KR1020170019819A priority Critical patent/KR101957277B1/ko
Priority to PCT/KR2018/001708 priority patent/WO2018151464A1/ko
Priority to US16/485,770 priority patent/US11494161B2/en
Publication of KR20180093556A publication Critical patent/KR20180093556A/ko
Application granted granted Critical
Publication of KR101957277B1 publication Critical patent/KR101957277B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Acoustics & Sound (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 음성 인식을 이용한 코딩시스템 및 코딩방법에 관한 것으로, 사용자가 말하는 음성명령을 인식하여 형태소 분석, 구문 분석, 의미 분석, 담화 분석 또는 이들의 조합을 포함한 자연어 처리를 수행하고, 이를 토대로 프로그래밍 코드를 생성 및 실행하여 자동으로 프로그래밍을 수행함으로써, 사용자가 별도의 입력장치를 사용할 필요 없이 클라우드 상에서 각종 프로그래밍 언어를 사용한 코딩작업을 간편하게 처리할 수 있다.

Description

음성 인식을 이용한 코딩시스템 및 코딩방법{SYSTEM AND METHOD FOR CODING WITH VOICE RECOGNITION}
본 발명은 코딩시스템에 관한 것으로, 더욱 상세하게는 사용자의 음성명령을 인식하여 자동으로 프로그래밍을 수행함으로써, 사용자가 별도의 입력장치를 사용할 필요 없이 클라우드 상에서 각종 프로그래밍 언어를 사용한 코딩작업을 간편하게 처리할 수 있는 음성 인식을 이용한 코딩시스템 및 코딩방법에 관한 것이다.
최근 들어 디지털 통신기술의 발달과 컴퓨터의 고도화에 따라 화상, 영상 등의 시각정보가 기존의 데이터 및 음성정보와 함께 동시에 처리되고 송수신되는 멀티미디어 시대가 도래하였다.
이에 따라 컴퓨터의 활용 능력을 높이기 위한 각종 소프트웨어 교육의 필요성이 점차 증가하고 있으며, 최근에 각광받고 있는 IoT(사물인터넷, Inter of Thing), 웹 프로그램, 애플리케이션 프로그램, 빅데이터 분석, 데이터 마이닝, 통계분석 등과 관련한 소프트웨어 및 프로그램에 대한 사용자들의 관심도가 높아지고 있다.
이처럼 각종 소프트웨어 및 프로그램에 대한 교육의 수요가 크게 늘어나고 있지만, 오프라인 교육의 경우 사용자들이 특정 장소 및 시간에 교육을 받아야 하는 특성상 원하는 시간에 자유롭게 교육을 받지 못하였고, 교육을 담당하는 인력과 양질의 교재가 부족함은 물론, 교육공간도 많이 부족한 실정이며, 교육비용도 과다하게 소요되는 문제가 있었다.
이러한 문제를 해결하기 위하여 대량의 교육, 양질의 교육, 실습 위주의 교육, 시공간의 제약극복 등의 여러 가지 장점을 가진 온라인 교육이 활성화되고 있으며, 스마트폰, 태블릿 등의 모바일 형태의 사용자 단말기를 통해 이동 중에도 자유롭게 교육 관련 콘텐츠를 이용할 수 있는 스마트 러닝(smart learning) 서비스가 각광받고 있다.
그러나, 상술한 바와 같은 사용자 단말기를 통해 온라인 교육을 수행할 때, 실습이나 코딩작업이 필수인 프로그래밍과 관련된 학습 콘텐츠(예를 들어, R 프로그램, Python, Java, C 등)를 이용하는 경우 사용자들은 사용자 단말기에 구비된 키보드가 작기 때문에 프로그램 실습이나 코딩작업을 위한 데이터의 입력이 쉽지 않고, 경우에 따라 키보드를 별도로 연결하여 사용하여야 하는 불편함이 있었으며, 결과적으로 모바일 환경에서 프로그램 학습을 원활하게 수행하지 못하게 되는 문제점이 있었다.
또한, 현재 온라인상에서 이루어지고 있는 대부분의 소프트웨어 및 프로그램에 대한 교육은 일반인들을 대상으로 하는 것이기 때문에 거동이 불편한 장애인들의 경우 소프트웨어 및 프로그램에 관심이 있더라도 소프트웨어 및 프로그램에 관련된 실습교육을 받는데 한계가 있었다.
따라서 본 발명에서는 사용자의 음성명령을 인식하여 자연어 처리를 수행하고, 이를 토대로 프로그래밍 코드를 생성 및 실행하여 각종 프로그래밍 언어를 사용한 프로그래밍 작업을 자동으로 처리함으로써, 클라우드 환경에서 프로그램 실습이나 코딩작업을 수행할 수 있으며, 이때 발생할 수 있는 키 입력의 불편함을 해소할 수 있는 방안을 제시하고자 한다.
다음으로 본 발명의 기술분야에 존재하는 선행기술에 대하여 간단하게 설명하고, 이어서 본 발명이 상기 선행기술에 비해서 차별적으로 이루고자 하는 기술적 사항에 대해서 기술하고자 한다.
먼저 한국공개특허 제2002-0030156호(2002.04.24.)는 컴퓨터의 운영 시스템 및 각종 응용프로그램을 키보드 또는 마우스와 같은 손조작에 의한 입력장치 없이도 음성인식기술을 이용하여 사용자의 음성명령만으로 제어할 수 있도록 함으로써 일반인은 물론 각종 장애인들도 간편하게 컴퓨터 시스템은 물론 각종 프로그램을 활용할 수 있도록 하는 음성인식을 이용한 컴퓨터 프로그램의 제어방법에 관한 것이다.
상기 선행기술은 컴퓨터상의 프로그램의 실행 및 각종 기능을 키보드 또는 마우스와 같은 손조작에 의한 입력장치 없이 사용자가 미리 등록시킨 예정된 명령을 음성으로 입력하는 것만으로 실행시킬 수 있는 효과를 제공하는 것으로서, 음성으로 명령을 입력하여 컴퓨터상의 프로그램이나 기능을 실행시키는 점에서 본 발명의 사용자의 음성명령을 인식하여 코딩작업을 자동으로 수행하는 구성과 일부 유사성이 있다.
하지만, 본 발명은 사용자의 음성명령을 인식하여 자연어 처리를 수행하고, 이를 토대로 프로그래밍 코드를 생성 및 실행하여 프로그래밍 작업을 자동으로 처리하는 기술적 구성을 제시하고 있기 때문에, 상기 선행기술의 미리 등록한 예정된 명령을 음성으로 입력하는 것으로 프로그램 및 각종 기능을 실행하는 기술 구성과 비교해 볼 때 사용자의 음성명령을 자연어 처리하고 이를 통해 프로그래밍 코드를 생성하고 실행하는 점에서 기술적 차이점이 명확하다.
또한, 한국등록특허 제1213890호(2012.12.18.)는 강한 데이터 유형을 이용하여 소프트웨어 프로그램에서 음성 인식 문법을 나타내기 위한 방법에 관한 것으로, 자연 언어 사용가능한 애플리케이션으로의 자연 언어 입력을 해석하기 위한 시스템은 문법, 소스파일, 및 음성 인식기를 갖고, 문법은 데이터 유형의 집합에 대한 규칙을 정의하는 데이터 유형들의 집합 및 시맨틱 코드를 갖고, 소스 파일은 데이터 유형들의 집합의 선택된 데이터 유형을 인스턴스화함으로써 문법을 액세스하도록 구성된 컴퓨터 판독가능 코드를 포함하며, 음성 인식기는 자연 언어 입력을 수신하고 자연 언어 입력을 선택된 데이터 유형으로 매핑하도록 구성된다.
상기 선행기술은 음성을 인식하여 운영체제, 애플리케이션 프로그램, 기타 프로그램 모듈, 프로그램 데이터를 구동하는 점에서 본 발명의 사용자의 음성명령을 인식하여 코딩작업을 자동으로 수행하는 구성과 일부 유사성이 있다.
하지만, 본 발명은 사용자의 음성명령을 자연어 처리 방식으로 인식하고, 이를 토대로 프로그래밍 코드를 생성 및 실행하여 프로그래밍 작업을 자동으로 처리하는 기술적 구성을 제시하고 있기 때문에, 상기 선행기술의 음성 인식을 통해 컴퓨터 상의 운영체제나 각종 프로그램을 동작시키는 기술 구성과 비교해 볼 때 사용자의 음성명령을 자연어 처리 방식으로 인식하여 각종 프로그래밍 언어를 사용한 코딩작업을 간편하게 처리할 수 있는 점에서 기술적 구성이 차이가 있다.
또한, 한국등록특허 제1218332호(2013.01.21.)는 서로 다른 발음 형태에 해당하는 적어도 두 개의 발화(發話)를 수신하여 하나의 발화의 인식 결과에 오류가 발생할 시 다른 하나의 발화의 인식 결과를 이용하는 하이브리드 방식의 문자 입력 방법 및 장치에 관한 것이다.
상기 선행기술은 사용자로부터 수신된 제 1 발화에 대한 음성 인식 오류가 발생한 경우, 음성 인식 오류가 발생한 발음에 해당하는 음소 단위의 제 2 발화를 수신하여 음성 인식 오류에 해당하는 발음을 제 2 발화의 음성 인식을 통해 학습하기 때문에 사용자 발음의 특성을 정확하게 분석할 수 있는 효과를 제공하는 것으로서, 본 발명의 음성으로 입력된 명령을 자연어 처리 방식으로 인식하는 구성과 일부 유사성이 있다.
하지만, 사용자의 음성명령을 인식하여 자연어 처리를 수행하고, 이를 토대로 프로그래밍 코드를 생성 및 실행하여 각종 프로그래밍 언어를 사용한 프로그래밍 작업을 자동으로 처리하는 본 발명의 기술적 구성은 상기 선행기술에 전혀 언급되어 있지 않은 본 발명만의 특징적 구성이다.
즉 상기 언급한 각각의 선행기술들은 대부분 음성 인식을 통해 컴퓨터의 응용프로그램이나 모바일 전화기에서 특정 애플리케이션을 실행하도록 하는 기술적 구성을 제시하고 있기 때문에, 사용자의 음성명령을 자연어 처리를 통해 인식하고, 이를 토대로 프로그래밍 코드를 생성하고 실행하여 C++, JAVA, Python, R 프로그램 등의 각종 프로그래밍 언어를 사용한 코딩작업을 자동으로 실행할 수 있는 본 발명의 구성과는 기술적 차이점이 분명한 것이다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 사용자의 음성명령을 인식하여 코딩작업을 자동으로 수행할 수 있는 음성 인식을 이용한 코딩시스템 및 코딩방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 사용자가 말하는 음성명령을 인식하여 형태소 분석, 구문 분석, 의미 분석, 담화 분석 또는 이들의 조합을 포함한 자연어 처리를 수행하고, 이를 토대로 프로그래밍 코드를 생성 및 실행하여 클라우드 상에서 프로그래밍 언어를 이용한 코딩작업을 자동으로 수행할 수 있는 음성 인식을 이용한 코딩시스템 및 코딩방법을 제공하는 것을 다른 목적으로 한다.
또한, 본 발명은 모바일 환경에서 프로그램 관련 콘텐츠를 이용하는 학생들이나 프로그래머들이 프로그램을 실습하거나 코딩작업을 수행할 때 발생할 수 있는 키 입력의 불편함을 해소할 수 있는 음성 인식을 이용한 코딩시스템 및 코딩방법을 제공하는 것을 또 다른 목적으로 한다.
또한, 본 발명은 거동이 불편한 장애인들의 프로그램 관련 교육 및 작업에 도움을 줄 수 있는 음성 인식을 이용한 코딩시스템 및 코딩방법을 제공하는 것을 또 다른 목적으로 한다.
본 발명의 일 실시예에 따른 음성 인식을 이용한 코딩시스템은, 사용자의 음성명령 인식정보를 토대로 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 확인하는 프로그래밍 엘리먼트 확인부; 확인된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 결합하여 프로그래밍 코드로 변환하는 프로그래밍 코드 변환부; 및 변환된 프로그래밍 코드의 실행결과를 사용자 단말기로 제공하는 프로그래밍 처리부;를 포함하는 것을 특징으로 한다.
그리고 상기 코딩시스템은, 상기 프로그래밍 코드 변환부를 통해 변환된 프로그래밍 코드의 적합 여부를 확인하며, 상기 사용자 단말기에서의 음성 인식을 이용한 프로그램 작성이 완료되면 컴파일 및 디버깅을 수행하는 프로그래밍 검증부;를 더 포함하는 것을 특징으로 한다.
그리고 상기 사용자의 음성명령 인식정보는, 프로그래밍 관리서버에서, 네트워크를 통해 상기 사용자 단말기로부터 사용자의 음성신호를 입력받아 음성인식 서버를 통해 문장을 인식하고, 상기 음성인식 서버를 통해 인식한 문장을 토대로 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 통해 추출하는 유의미한 단어로 이루어진 집합인 것을 특징으로 한다.
그리고 상기 사용자의 음성명령 인식정보는, 상기 사용자 단말기에서 사용자의 음성신호를 입력받아 문장을 인식하고, 인식된 문장을 토대로 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 통해 추출하는 유의미한 단어로 이루어진 집합으로서, 프로그래밍 관리서버에서 네트워크를 통해 상기 사용자 단말기로부터 제공받는 것을 특징으로 한다.
그리고 상기 프로그래밍 코드 변환부는, 상기 사용자 단말기에서 확인하여 나열된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 데이터베이스에 기 저장된 테이블 정보를 참조하여 해당 프로그래밍 언어의 문법 체계에 맞는 프로그래밍 코드로 변환하는 것을 특징으로 한다.
그리고 상기 코딩시스템은, 특정 프로그래밍 언어에서 사용되는 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트별로 복수의 사용자들이 말하는 음성정보를 수집하고, 수집한 음성정보를 분석하여 각각의 프로그래밍 엘리먼트별로 유사 단어를 분류하고, 분류한 유사 단어와 각각의 프로그래밍 엘리먼트를 매칭한 테이블 정보를 데이터베이스에 저장, 관리하는 프로그래밍 데이터 관리부;를 더 포함하는 것을 특징으로 한다.
또한, 본 발명의 일 실시예에 따른 음성 인식을 이용한 코딩방법은, 프로그래밍 관리서버에서, 사용자의 음성명령 인식정보를 토대로 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 확인하는 프로그래밍 엘리먼트 확인 단계; 상기 프로그래밍 관리서버에서, 상기 프로그래밍 엘리먼트 확인 단계에서 확인된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 결합하여 프로그래밍 코드로 변환하는 프로그래밍 코드 변환 단계; 및 상기 프로그래밍 관리서버에서, 상기 프로그래밍 코드 변환 단계를 통해 변환된 프로그래밍 코드의 실행결과를 사용자 단말기로 제공하는 프로그래밍 처리 단계;를 포함하는 것을 특징으로 한다.
그리고 상기 코딩방법은, 상기 프로그래밍 관리서버에서, 상기 프로그래밍 코드 변환 단계를 통해 변환된 프로그래밍 코드의 적합 여부를 확인하는 프로그래밍 코드 변환 검증 단계; 및 상기 프로그래밍 관리서버에서, 상기 사용자 단말기에서의 음성 인식을 이용한 프로그램 작성이 완료되면 컴파일 및 디버깅을 수행하는 프로그래밍 검증 단계;를 더 포함하는 것을 특징으로 한다.
그리고 상기 사용자의 음성명령 인식정보는, 프로그래밍 관리서버에서, 네트워크를 통해 상기 사용자 단말기로부터 사용자의 음성신호를 입력받아 음성인식 서버를 통해 문장을 인식하고, 상기 음성인식 서버를 통해 인식한 문장을 토대로 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 통해 추출하는 유의미한 단어로 이루어진 집합인 것을 특징으로 한다.
그리고 상기 사용자의 음성명령 인식정보는, 상기 사용자 단말기에서 사용자의 음성신호를 입력받아 문장을 인식하고, 인식된 문장을 토대로 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 통해 추출하는 유의미한 단어로 이루어진 집합으로서, 프로그래밍 관리서버에서 네트워크를 통해 상기 사용자 단말기로부터 제공받는 것을 특징으로 한다.
그리고 상기 프로그래밍 코드 변환 단계는, 상기 사용자 단말기에서 확인하여 나열된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 데이터베이스에 기 저장된 테이블 정보를 참조하여 해당 프로그래밍 언어의 문법 체계에 맞는 프로그래밍 코드로 변환하는 것을 특징으로 한다.
그리고 상기 코딩방법은, 상기 프로그래밍 관리서버에서, 특정 프로그래밍 언어에서 사용되는 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트별로 복수의 사용자들이 말하는 음성정보를 수집하고, 수집한 음성정보를 분석하여 각각의 프로그래밍 엘리먼트별로 유사 단어를 분류하고, 분류한 유사 단어와 각각의 프로그래밍 엘리먼트를 매칭한 테이블 정보를 데이터베이스에 저장, 관리하는 프로그래밍 데이터 관리 단계;를 더 포함하는 것을 특징으로 한다.
이상에서와 같이 본 발명의 음성 인식을 이용한 코딩시스템 및 코딩방법에 따르면, 클라우드 상에서 사용자의 음성명령을 인식하여 코딩작업을 자동으로 수행할 수 있기 때문에 사용자들이 키보드, 마우스 등의 별도의 입력장치를 사용할 필요 없이 음성을 통해 간편하게 코딩작업을 수행할 수 있으며, 다양한 프로그래밍 언어를 적용하여 이용할 수 있는 효과가 있다.
또한, 프로그램 관련 콘텐츠를 이용하는 학생들이나 프로그래머들이 음성명령을 통해 프로그램을 실습하거나 코딩작업을 손쉽게 수행할 수 있기 때문에 모바일 환경에서 프로그램 실습이나 코딩작업을 수행할 때 발생할 수 있는 키 입력의 불편함을 해소할 수 있는 효과가 있다.
또한, 거동이 불편한 장애인들을 대상으로 한 프로그램 관련 교육 및 소프트웨어 작업에 도움을 줄 수 있으며, 이에 따라 소프트웨어 공교육에 이바지할 수 있는 효과가 있다.
또한, 사용자의 음성명령만으로 특정 프로그래밍 언어의 실습이나 코딩작업이 이루어지기 때문에 사용자가 프로그래밍 언어를 모르더라도 음성인식에 의한 코딩작업을 직관적으로 확인할 수 있으므로 프로그래밍 언어나 코딩작업을 이해하는데 도움이 되는 효과가 있다.
또한, 특정 프로그래밍 언어에 대한 단순한 교육 차원을 벗어나, 음성명령만으로 모바일 환경의 애플리케이션을 구축하거나 블로그 및 홈페이지를 제작할 수도 있으며, 말로 표현하기 어려운 부분에 있어서도 사용자가 말하는 대표 키워드를 통해 프로그래밍 작업에 도움이 되는 프로그램의 제공이 가능할 것이므로 향후 프로그래밍 언어를 사용하는 모든 산업 분야의 발전에 크게 이바지할 수 있는 효과가 있다.
도 1은 본 발명이 적용된 음성 인식을 이용한 코딩과정을 설명하기 위한 개념도이다.
도 2는 본 발명이 적용된 음성 인식을 이용한 코딩작업의 일 예를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 음성 인식을 이용한 코딩시스템의 구성을 개략적으로 나타낸 도면이다.
도 4는 상기 도 3의 사용자 단말기의 구성을 보다 상세하게 나타낸 도면이다.
도 5는 상기 도 3의 프로그래밍 관리서버의 구성을 보다 상세하게 나타낸 도면이다.
도 6은 상기 도 5의 음성인식 처리부에서 수행되는 자연어 처리과정을 보다 상세하게 나타낸 도면이다.
도 7은 도 5의 프로그래밍 데이터 관리부에서 수행되는 음성입력의 다양성을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 음성 인식을 이용한 코딩방법의 동작과정을 상세하게 나타낸 순서도이다.
도 9는 상기 도 8의 유의미한 단어를 토대로 프로그래밍 코드변환을 수행하는 과정을 보다 상세하게 나타낸 순서도이다.
이하, 첨부한 도면을 참조하여 본 발명의 음성 인식을 이용한 코딩시스템 및 코딩방법에 대한 바람직한 실시 예를 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 또한 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는 것이 바람직하다.
도 1은 본 발명이 적용된 음성 인식을 이용한 코딩과정을 설명하기 위한 개념도이며, 도 2는 본 발명이 적용된 음성 인식을 이용한 코딩작업의 일 예를 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 음성 인식을 토대로 클라우드 상의 사용자들에게 프로그래밍 실습이나 코딩작업을 지원하기 위한 프로그래밍 관리서버(300)는 현재 사용되고 있는 R 프로그램, C++, JAVA, Python 등의 각종 프로그래밍 언어에 대한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트와 사용자들이 말하는 단어를 매칭한 정보를 데이터베이스로 구축하고 있다.
또한, 상기 프로그래밍 관리서버(300)는 프로그래밍 실습이나 코딩작업을 수행하는 사용자가 말하는 음성명령이 사용자 단말기(200)로부터 전송되면, 이를 음성인식 서버(400)를 통해 문장을 인식하도록 제어하고, 음성인식 서버(400)에서 인식한 문장을 자연어 처리하여 유의미한 단어를 추출한다. 즉 음성인식 서버(400)에서 인식한 문장으로부터 형태소, 구문, 의미, 담화 분석 등을 통해 유의미한 단어를 추출하는 것이다. 이 방식은 사용자 단말기(200)의 사양이 낮거나 사용 환경에 따라 음성인식 프로그램을 직접 사용하지 못하는 경우에 사용될 수 있으며, 사용자의 음성명령을 전송받은 프로그래밍 관리서버(300)에서 음성인식 서버(400)를 통해 사용자의 음성명령을 인식하고, 이를 토대로 자연어 처리를 수행한다.
또한, 상기 프로그래밍 관리서버(300)는 사용자들이 말하는 음성명령의 인식에 따라 추출되는 단어와 매칭되는 프로그래밍 엘리먼트들을 해당 프로그래밍 언어의 문법 체계에 맞는 프로그래밍 코드로 변환하기 위한 프로그래밍 코드 세트정보를 데이터베이스로 구축하고 있다.
또한, 상기 프로그래밍 관리서버(300)는 사용자들이 클라우드 상에서 음성 인식을 토대로 각종 프로그래밍 언어를 실습하거나 또는 프로그래밍 언어를 사용하여 코딩작업을 수행할 수 있는 애플리케이션이나 실행프로그램을 사용자 단말기(200)로 제공하여 설치하도록 지원한다.
상기 사용자 단말기(200)는 사용자들이 소지하고 있는 스마트폰, 태블릿 등의 통신기기로서, 네트워크(100)를 통해 프로그래밍 관리서버(300)와 통신 접속되어 있고, 상기 프로그래밍 관리서버(300)로부터 사용자의 음성명령을 자연어 처리하여 추출한 어근에 맞는 프로그램 명령어들이 전송되면 이를 나열하여 사용자가 자신이 의도한 프로그램 명령어를 확인하여 선택할 수 있도록 하며, 상기 프로그래밍 관리서버(300)에서 사용자의 선택을 토대로 처리한 프로그래밍 코드의 실행결과(텍스트, 그래프 등)를 전송받아 사용자가 확인할 수 있도록 한다. 이때 상기 사용자 단말기(200)는 사용자와의 인터랙션을 통해 사용자가 자신이 말하는 음성에 따라 프로그래밍 코드가 적합하게 변환되었는지를 확인하면서 수정작업을 진행할 수 있도록 한다.
또한, 상기 사용자 단말기(200)는 프로그래밍 실습이나 코딩작업을 수행하는 사용자가 말하는 음성을 기기에 구비된 음성인식 프로그램을 사용하여 자연어 처리(즉 형태소, 구문, 의미, 담화 분석 등을 통해 사용자가 말하는 문장에서 유의미한 단어를 추출하는 것)를 통해 인식하며, 인식한 음성정보인 유의미한 단어에 대한 정보를 상기 프로그래밍 관리서버(300)로 전송할 수 있다. 이때 사용자의 음성명령 인식은 사용자 단말기(200)에 구비된 프로그래밍 관리서버(300) 사업자 측에서 자체적으로 제작한 음성인식 프로그램을 사용하거나, 또는 공지되어 있는 아마존의 에코(echo)나 애플의 시리(siri) 등의 음성인식 프로그램을 사용한다.
또한, 상기 사용자 단말기(200)는 상기 설명과 같이 프로그래밍 관리서버(300)와 연동하지 않고, 자체적으로 프로그래밍 실습이나 코딩작업을 수행하는 사용자가 말하는 음성을 토대로 프로그램 코딩작업을 직접 처리할 수도 있다.
이러한 음성 인식을 이용한 프로그래밍 실습이나 코딩작업 과정을 상세하게 설명하면 다음과 같다.
먼저, 상기 사용자 단말기(200)는 사용자의 음성명령을 마이크를 통해 입력받는다. 이때 사용자의 음성명령은 특정 프로그래밍 언어와 관련된 실습이나 코딩작업을 위한 것으로서, 예를 들어 도 2에서와 같이 "1, 2, 3을 a 변수에 할당하라"의 문장 형태로 입력된다.
사용자가 음성명령을 입력하면, 사용자 단말기(200)는 사용자의 음성명령을 프로그래밍 관리서버(300)로 전송하고, 프로그래밍 관리서버(300)에서는 음성인식 서버(400)를 통해 사용자의 음성명령을 문장으로 인식하며, 인식한 문장을 자연어 처리를 통해 분석하여 사용자가 말하는 문장에서 유의미한 단어를 추출한다. 예를 들어 도 2에서와 같이 사용자가 문장 형태로 입력하는 "1, 2, 3을 a 변수에 할당하라"를 자연어 처리를 통한 분석을 수행하여 "1, 2, 3, a, 변수, 할당"의 유의미한 단어를 추출하는 것이다.
유의미한 단어를 추출한 이후, 상기 프로그래밍 관리서버(300)는 사용자의 음성명령 인식정보인 유의미한 단어를 토대로 프로그래밍 작업에 사용되는 각종 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 확인한다. 즉 프로그래밍 관리서버(300)는 도 2에 나타낸 "1, 2, 3, a, 변수, 할당"의 유의미한 단어를 데이터베이스로 구축되어 있는 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트에 대한 정보와 매칭하여 "a, ←, c(1, 2, 3)"의 프로그래밍 엘리먼트를 확인하는 것이다.
사용자의 음성명령에 대한 인식정보를 토대로 프로그래밍 엘리먼트를 확인한 이후, 상기 프로그래밍 관리서버(300)는 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 사용자 단말기(200)로 전송하여 사용자가 의도한 것인지를 확인하여 선택하도록 하며, 사용자의 확인 및 선택이 이루어지면 상기 프로그래밍 관리서버(300)는 사용자가 선택한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 결합하여 프로그래밍 코드로 변환하는 작업을 수행한다. 즉 상기 프로그래밍 관리서버(300)는 도 2에 나타낸 "a, ←, c(1, 2, 3)"의 프로그래밍 엘리먼트를 데이터베이스로 구축되어 있는 프로그래밍 코드 세트정보를 참조하여 해당 프로그래밍 언어의 문법 체계에 맞는 "a←c(1, 2, 3)"의 프로그래밍 코드로 변환하는 것이다.
프로그래밍 코드 변환이 이루어지면, 상기 프로그래밍 관리서버(300)는 사용자로부터 자신이 말한 음성에 적합한 프로그래밍 코드의 생성작업이 완료되었는지를 확인하며, 확인결과 프로그래밍 코드 변환의 반복적인 수행을 통해 코드생성작업이 완료되면 상기 프로그래밍 관리서버(300)는 사용자가 음성만으로 작성한 프로그램의 컴파일 및 디버깅을 처리하여 작성된 프로그램에 오류가 있는지의 여부를 검증한다.
그리고 검증결과 이상이 없으면, 상기 프로그래밍 관리서버(300)는 사용자가 작성한 프로그램을 실행하고, 프로그램 실행결과를 사용자 단말기(200)로 제공하여 원하는 결과를 얻었는지의 여부를 확인하도록 함으로써, 사용자가 본인이 소유하고 있는 사용자 단말기(200)를 통해 프로그래밍 언어와 관련된 실습이나 코딩작업을 간편하게 수행할 수 있도록 한다.
이에 따라 본 발명은 사용자들이 키보드, 마우스 등의 입력장치를 사용하지 않고 음성명령만으로 각종 프로그래밍 언어를 사용한 실습이나 코딩작업을 간편하게 수행할 수 있게 된다.
한편, 본 발명의 음성 인식을 토대로 한 코딩서비스는 단순히 교육이나 실습에 그치지 않고, 모바일 환경의 각종 애플리케이션이나 블로그 및 홈페이지를 음성만으로 만들 수 있다. 또한, 말로 표현하기 어려운 부분에 있어서도 사용자가 말하는 대표 키워드를 통해 프로그램 작성에 도움이 되는 프로그램을 제공해 줄 수 있다. 예를 들어, 사용자가 '앱생성'과 같이 음성명령을 하면, 앱을 생성할 수 있는 전반적인 프로그램을 마련해 주는 것이 가능할 것이다.
도 3은 본 발명의 일 실시예에 따른 음성 인식을 이용한 코딩시스템의 구성을 개략적으로 나타낸 도면이고, 도 4는 상기 도 3의 사용자 단말기의 구성을 상세하게 나타낸 도면이고, 도 5는 상기 도 3의 프로그래밍 관리서버의 구성을 보다 상세하게 나타낸 도면이고, 도 6은 상기 도 5의 음성인식 처리부에서 수행되는 자연어 처리과정을 보다 상세하게 나타낸 도면이며, 도 7은 도 5의 프로그래밍 데이터 관리부에서 수행되는 음성입력의 다양성을 설명하기 위한 도면이다.
도 3에 도시된 바와 같이 본 발명의 음성 인식을 이용한 코딩시스템은, 네트워크(100), 사용자 단말기(200), 프로그래밍 관리서버(300), 음성인식 서버(400), 데이터베이스(500) 등으로 구성된다.
네트워크(100)는 유/무선 인터넷, 블루투스(bluetooth), 비콘(beacon), RFID(Radio Frequency Identification), 지그비(Zigbee), 와이파이(WiFi) 등을 포함한 현재 공지되어 있는 각종 통신망으로서, 복수의 사용자 단말기(200), 프로그래밍 관리서버(300), 음성인식 서버(400) 사이의 통신회선을 연결하여 상호간에 사용자의 음성명령에 대한 인식정보, 프로그래밍 실습이나 코딩작업에 관련된 프로그래밍 언어와 관련된 데이터 통신이 이루어지도록 한다.
사용자 단말기(200)는 스마트폰, 태블릿 등의 모바일 통신기기로서, 사용자의 음성명령을 입력받는 마이크가 구비되어 있으며, 마이크로 입력되는 사용자의 음성명령을 프로그래밍 관리서버(300)로 전송한다.
또한, 상기 사용자 단말기(200)는 네트워크(100)를 통해 프로그래밍 관리서버(300)로부터 사용자의 음성명령에 따라 확인되는 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 전송받아 화면상에 표시하며, 이를 확인한 사용자가 자신의 의도에 맞는 프로그래밍 엘리먼트를 선택하면 해당 선택정보를 상기 프로그래밍 관리서버(300)로 전송한다.
이때 상기 설명에서는 사용자의 음성명령을 프로그래밍 관리서버(300)로 전송하여 프로그래밍 관리서버(300)에서 직접 사용자의 음성명령을 음성인식 서버(400)를 통해 인식하여 프로그래밍 코딩작업을 수행하도록 하는 것을 예로 하여 설명하였으나, 이와는 달리 사용자 단말기(200)에 자연어 처리 분석을 통해 유의미한 단어를 추출하는 음성인식 프로그램이 내장되어 있는 경우 사용자가 말하는 음성명령을 인식하여 유의미한 단어를 추출하고 이를 프로그래밍 관리서버(300)로 전송하여 프로그래밍 코딩작업을 수행하도록 할 수 있다.
프로그래밍 관리서버(300)는 R 프로그램, C++, JAVA, Python 등을 포함한 각종 프로그래밍 언어에 대한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트와 사용자들이 말하는 음성명령에 대한 인식에 따라 추출되는 단어를 상호간에 매칭한 정보를 데이터베이스(500)에 저장, 관리한다. 그리고 사용자들이 말하는 음성명령의 인식에 따라 추출되는 단어들과 매칭되는 적어도 하나 이상의 프로그래밍 엘리먼트들을 해당 프로그래밍 언어의 문법 체계에 맞는 프로그래밍 코드로 변환하기 위한 프로그래밍 코드 세트정보를 데이터베이스(500)에 저장, 관리한다.
또한, 상기 프로그래밍 관리서버(300)는 네트워크(100)를 통해 사용자 단말기(200)로부터 사용자의 음성명령이 입력되면 음성인식 서버(400)를 통해 문장으로 인식하고, 인식한 문장을 자연어 처리하여 유의미한 단어를 추출한 후, 데이터베이스(500)에 저장된 각각의 단어별로 프로그래밍 엘리먼트를 매칭한 테이블 정보를 참조하여 사용자의 음성명령 인식정보에 포함된 단어에 해당하는 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 확인한다. 그리고 확인된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 사용자 단말기(200)로 전송하여 사용자가 자신의 의도에 맞는 프로그래밍 엘리먼트를 선택하도록 한다.
또한, 상기 프로그래밍 관리서버(300)는 사용자 단말기(200)에서 프로그래밍 엘리먼트가 선택되면, 이를 토대로 해당 프로그래밍 언어의 문법 체계에 맞도록 결합하여 프로그래밍 코드로 변환한다.
또한, 상기 프로그래밍 관리서버(300)는 사용자 단말기(200)에서의 음성 인식을 토대로 한 프로그래밍 작업이 완료되면, 해당 프로그램의 컴파일 및 디버깅을 처리하여 작성된 프로그램에 오류가 있는지의 여부를 검증하며, 검증 결과 이상이 없으면 해당 프로그램을 실행한 후, 프로그램 실행결과를 사용자 단말기(200)로 제공하여 원하는 결과를 얻었는지의 여부를 확인하도록 한다.
이때 상기 사용자의 음성명령 인식정보는, 프로그래밍 관리서버(300)에서, 네트워크(100)를 통해 상기 사용자 단말기(200)로부터 사용자의 음성신호를 입력받아 음성인식 서버(400)를 통해 문장을 인식하고, 상기 음성인식 서버(400)를 통해 인식한 문장을 토대로 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 통해 추출하는 유의미한 단어로 이루어진 집합이다.
또한, 상기 사용자의 음성명령 인식정보는 상기와 같이 프로그래밍 관리서버(300)에서 처리하는 방식 이외에, 상기 사용자 단말기(200)에서 사용자의 음성신호를 입력받아 직접 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 통해 유의미한 단어를 추출하고, 추출된 유의미한 단어를 프로그래밍 관리서버(300)로 전송할 수도 있다.
즉 사용자의 음성명령 인식은 사용자 단말기(200)로부터 사용자의 음성명령을 전달받은 프로그래밍 관리서버(300)에서 음성인식 서버(400)를 통해 사용자가 말하는 음성명령에 대한 인식정보를 추출하는 형태를 사용하거나, 또는 사용자 단말기(200)에 구비된 자체적으로 제작하거나 공지의 음성인식 프로그램을 사용하여 사용자가 말하는 음성명령에 대한 인식정보를 추출하여 프로그래밍 관리서버(300)로 제공하는 형태로 사용될 수 있는 것이다.
데이터베이스(500)는 음성 인식을 토대로 프로그램 실습이나 코딩작업을 수행하기 위한 각종 프로그램 언어와 관련된 각종 데이터를 저장, 관리한다.
예를 들어, 상기 데이터베이스(500)는 프로그램 실습이나 코딩작업에 필요한 각종 교육 콘텐츠는 물론, 사용자들이 말하는 음성명령에 대한 인식에 따라 추출되는 단어별로 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 매칭한 테이블 정보, 프로그래밍 엘리먼트들을 해당 프로그래밍 언어의 문법 체계에 맞는 프로그래밍 코드로 변환하기 위한 프로그래밍 코드 세트정보 등을 저장, 관리한다.
한편, 상기 사용자 단말기(200)는 도 4에 도시된 바와 같이, 음성 입력부(210), 통신부(220), 프로그램 처리부(230), 제어부(240) 등으로 구성된다.
음성 입력부(210)는 사용자 단말기(200)에 구비된 마이크로서, 프로그램 실습이나 코딩작업을 수행하는 사용자가 음성만으로 프로그램을 작성하기 위하여 마이크를 통해 입력하는 음성명령을 전기신호로 변환하는 기능을 수행한다.
통신부(220)는 네트워크(100)를 통해 프로그래밍 관리서버(300)와 통신 접속을 수행하고, 프로그래밍 관리서버(300)로부터 사용자의 음성명령 인식정보를 토대로 한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트 정보를 전송받아 제어부(240)로 출력한다.
또한, 상기 통신부(220)는 프로그래밍 엘리먼트 정보를 확인하는 사용자가 선택하는 프로그래밍 엘리먼트 정보를 상기 프로그래밍 관리서버(300)로 전송하며, 사용자가 선택한 프로그래밍 엘리먼트에 따라 작성된 프로그램의 실행결과를 상기 프로그래밍 관리서버(300)로부터 전송받아 제어부(240)로 출력한다.
프로그램 처리부(230)는 상기 통신부(220)를 통해 프로그래밍 관리서버(300)로부터 전송받은 사용자의 음성명령 인식정보를 토대로 확인한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트 정보를 화면상에 표시하며, 사용자의 프로그래밍 엘리먼트 정보의 선택을 토대로 프로그래밍 관리서버(300)에서 실행한 프로그램 실행결과를 화면상에 표시하여 사용자가 결과를 확인하도록 한다.
제어부(240)는 음성 입력부(210)에서의 사용자가 말하는 음성명령의 전기적 신호 변환, 통신부(220)에서의 사용자의 음성명령 전송, 사용자의 음성명령에 대한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트 정보의 수신, 사용자의 프로그래밍 엘리먼트 선택정보의 전송 및 프로그램 실행결과의 수신, 프로그램 처리부(230)에서의 사용자가 말하는 음성명령에 따라 확인된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트 정보의 표시 및 사용자의 음성명령에 따라 작성된 프로그램 실행결과의 표시 등을 총괄적으로 제어한다.
한편, 상기 프로그래밍 관리서버(300)는 도 5에 도시된 바와 같이, 통신부(310), 음성인식 처리부(320), 프로그래밍 엘리먼트 확인부(330), 프로그래밍 코드 변환부(340), 프로그래밍 검증부(350), 프로그래밍 처리부(360), 프로그래밍 데이터 관리부(370), 제어부(380) 등으로 구성된다.
통신부(310)는 네트워크(100)를 통해 사용자 단말기(200)로부터 사용자의 음성명령을 전송받아 제어부(380)로 출력하며, 제어부(380)의 제어를 토대로 사용자의 음성명령 인식정보를 토대로 확인한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트 정보, 사용자가 선택하는 프로그래밍 엘리먼트를 토대로 작성된 프로그램의 실행결과를 해당 사용자 단말기(200)로 전송한다.
음성인식 처리부(320)는 상기 사용자 단말기(200)로부터 전송받아 음성인식 서버(400)를 통해 인식한 사용자의 음성명령에 대한 문장을 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 수행함으로써, 사용자가 말하는 문장에서 유의미한 단어를 추출하는 기능을 수행한다.
도 6을 참조하여 보다 구체적으로 설명하면, 상기 음성인식 처리부(320)는 사용자가 말하는 문장을 형태소 단위로 분할하는 형태소 분석부(322)와, 사용자가 말하는 문장을 주어, 목적어, 서술어 등의 구문 단위를 확인하는 구문 분석부(324)와, 사용자가 말하는 문장이 의미적으로 올바른지의 여부를 판단하는 의미 분석부(326)와, 사용자가 말하는 문장이 어떤 의미를 가지는지를 확인하는 담화 분석부(328)로 구성된다.
프로그래밍 엘리먼트 확인부(330)는 음성인식 서버(400)를 통해 확인한 사용자의 음성명령 인식정보를 토대로 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 확인한다. 즉 상기 프로그래밍 엘리먼트 확인부(330)는 사용자 단말기(200)로부터 전송받은 사용자의 음성명령 인식정보인 유의미한 단어를 데이터베이스(500)에 저장, 관리하고 있는 단어별 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트에 대한 정보와 매칭하고, 매칭결과에 따라 사용자가 말하는 음성명령이 어느 프로그래밍 엘리먼트인지를 찾아내는 것이다.
프로그래밍 코드 변환부(340)는 상기 프로그래밍 엘리먼트 확인부(330)를 통해 제공된 프로그래밍 엘리먼트 정보를 확인하는 사용자의 선택을 토대로 프로그래밍 엘리먼트를 결합하여 프로그래밍 코드로 변환한다. 즉 상기 프로그래밍 엘리먼트 확인부(330)에서 확인된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 확인하는 사용자의 선택을 토대로 데이터베이스(500)에 기 저장된 테이블 정보를 참조하여 해당 프로그래밍 언어의 문법 체계에 맞는 프로그래밍 코드로 변환하는 것이다.
예를 들어, 상기 프로그래밍 코드 변환부(340)에서 처리되는 프로그래밍 언어의 문법 체계에 따른 프로그래밍 코드 변환은, 프로그래밍 엘리먼트 확인부(330)를 통해 확인된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트와 프로그래밍 처리부(360)에서 사전에 데이터베이스(500)에 저장, 관리하고 있는 특정 프로그래밍 언어의 구문구조(syntax) 등에 따라 각각의 프로그래밍 엘리먼트의 위치와 결합관계를 매칭한 테이블 정보의 비교를 통해 수행된다.
프로그래밍 검증부(350)는 상기 프로그래밍 코드 변환부(340)를 통해 변환된 프로그래밍 코드의 적합 여부를 확인하며, 상기 사용자 단말기(200)에서의 음성 인식을 이용한 프로그램 작성이 완료되면 컴파일 및 디버깅을 수행하여 프로그램의 오류를 찾아낸다.
프로그래밍 처리부(360)는 상기 프로그래밍 엘리먼트 확인부(330)에서 처리된 사용자의 음성명령 인식정보에 따라 확인되는 프로그래밍 엘리먼트에 대한 정보를 사용자 단말기(200)로 제공하여 사용자가 자신이 의도한 프로그램 코드를 작성할 수 있도록 한다.
또한, 상기 프로그래밍 처리부(360)는 사용자들이 말하는 음성명령의 인식에 따라 추출되는 단어들을 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트와 매칭한 테이블 정보의 생성 및 데이터베이스(500) 저장을 수행한다. 그리고 사용자들이 말하는 음성명령의 인식에 따라 추출되는 단어들과 매칭되는 프로그래밍 엘리먼트들을 해당 프로그래밍 언어의 문법 체계에 맞는 프로그래밍 코드로 변환하기 위한 프로그래밍 코드 세트정보의 생성 및 데이터베이스(500) 저장을 수행한다.
프로그래밍 데이터 관리부(370)는 특정 프로그래밍 언어에서 사용되는 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트별로 복수의 사용자들이 말하는 음성정보를 수집하고, 수집한 음성정보를 분석하여 각각의 프로그래밍 엘리먼트별로 유사 단어를 분류하고, 분류한 유사 단어와 각각의 프로그래밍 엘리먼트를 매칭한 테이블 정보를 데이터베이스(500)에 저장, 관리하는 기능을 수행한다.
예를 들어, 도 7에 도시된 바와 같이, 복수의 프로그래머들에게 "a←c(1, 2, 3)"의 특정 프로그래밍 코드를 제시하여 직접 읽어 보게 하고, 각각의 프로그래머들이 말하는 "1, 2, 3을 a 변수에 할당하라 ", "a에 1, 2, 3을 대입하라", "변수 a에 1, 2, 3을 넣어라" 등의 음성정보를 입력받아 상기 프로그래밍 데이터 관리부(360)에서 이를 분석하여 유사 단어를 분류한 후 분류한 유사 단어와 각각의 프로그래밍 엘리먼트를 매칭하여 데이터베이스(500)에 저장함으로써, 음성 프로그래밍의 다양성을 확보하도록 하는 것이다.
제어부(380)는 통신부(310)에서의 사용자의 음성명령 수신과 이를 토대로 확인되는 프로그래밍 엘리먼트의 전송, 사용자가 선택하는 프로그래밍 엘리먼트 정보의 수신 및 프로그래밍 엘리먼트의 코드 변환을 토대로 작성된 프로그램의 실행결과의 전송, 음성인식 처리부(320)에서의 음성인식 서버(400)를 통한 문장 인식과 이를 토대로 한 자연어 처리를 제어한다.
또한, 상기 제어부(380)는 프로그래밍 엘리먼트 확인부(330)에서의 사용자의 음성명령 인식정보를 토대로 한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트의 확인, 프로그래밍 코드 변환부(340)에서의 프로그래밍 엘리먼트의 결합을 통한 프로그래밍 코드 변환을 제어한다.
또한, 제어부(380)는 프로그래밍 검증부(350)에서의 프로그래밍 코드의 검증과 작성된 프로그램의 컴파일 및 디버깅, 프로그래밍 처리부(360)에서의 프로그래밍 엘리먼트 정보의 사용자 제공, 사용자의 음성명령에 대한 단어들과 프로그래밍 엘리먼트를 매칭한 테이블 정보 및 문법 체계에 맞는 프로그래밍 엘리먼트의 결합과 관련된 프로그래밍 코드 세트정보의 저장, 프로그래밍 데이터 관리부(370)에서의 특정 프로그램 코드에 대한 음성 프로그래밍의 다양성 확보를 제어한다.
다음에는, 이와 같이 구성된 본 발명에 따른 음성 인식을 이용한 코딩방법의 일 실시예를 도 8과 도 9를 참조하여 상세하게 설명한다. 이때 본 발명의 방법에 따른 각 단계는 사용 환경이나 당업자에 의해 순서가 변경될 수 있다.
도 8과 도 9는 본 발명의 일 실시예에 따른 음성 인식을 이용한 코딩방법의 동작과정을 상세하게 나타낸 순서도이다.
우선, 사용자 단말기(200)는 마이크를 통해 사용자의 음성명령을 입력받는다(S100). 이때 사용자의 음성명령은 특정 프로그래밍 언어와 관련된 실습이나 코딩작업을 수행하기 위하여 사용자가 말하는 것으로서, 도 2의 예에서와 같이 "1, 2, 3을 a 변수에 할당하라"의 문장 형태로 되어 있다.
S100 단계를 통해 사용자의 음성명령이 입력되면, 상기 사용자 단말기(200)는 사용자의 음성명령을 프로그래밍 관리서버(300)로 전송하며, 상기 프로그래밍 관리서버(300)에서 음성인식 서버(400)를 통해 사용자의 음성명령을 문장으로 인식하며, 인식된 문장을 자연어 처리를 통해 분석하고, 분석결과에 따라 추출된 유의미한 단어 정보를 추출한다(S200).
S200 단계의 자연어 처리를 통해 사용자의 음성명령으로부터 유의미한 단어를 추출한 이후, 상기 프로그래밍 관리서버(300)는 추출된 유의미한 단어를 토대로 프로그래밍 코드변환 작업을 수행한다(S300).
상기 S300 단계를 도 9를 참조하여 구체적으로 설명하면, 상기 프로그래밍 관리서버(300)는 사용자의 음성명령 인식정보인 유의미한 단어를 토대로 프로그래밍 작업에 사용되는 각종 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 확인한다(S310).
그리고 S310 단계에서 확인한 각종 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 네트워크(100)를 통해 해당 사용자 단말기(200)로 전송하고(S320), 사용자가 자신이 의도한 것인지를 확인하여 프로그래밍 엘리먼트를 선택하는지를 판단한다(S330). 즉 사용자가 자신이 말하는 음성명령에 따라 나열되는 프로그래밍 엘리먼트를 선택하여 프로그램을 완성할 수 있도록 하는 것이다.
S330 단계의 판단결과 사용자의 선택이 이루어지면, 상기 프로그래밍 관리서버(300)는 사용자가 선택한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 데이터베이스(500)에 저장되어 있는 프로그래밍 코드 세트정보를 참조하여 해당 프로그래밍 언어의 문법 체계에 맞는 프로그래밍 코드로 변환한다(S240).
S340 단계를 통해 프로그래밍 코드로 변환한 이후, 상기 프로그래밍 관리서버(300)는 사용자로부터 모든 프로그램 코드변환 작업이 종료되는지를 판단하며(S350), 코드변환 작업이 종료될 때까지 상기 S320 단계 이후를 반복하여 수행한다.
이제, S300 단계를 통해 사용자의 음성명령에 따른 유의미한 단어를 토대로 프로그래밍 코드변환 작업을 수행한 이후, 상기 프로그래밍 관리서버(300)는 사용자가 음성만으로 작성한 프로그램의 컴파일을 수행하여 작성된 프로그램에 오류가 있는지의 여부를 검증한다(S400).
S400 단계를 통해 사용자가 음성만으로 작성한 프로그램의 검증이 완료되면, 상기 프로그래밍 관리서버(300)는 해당 프로그램을 실행하고(S500), 프로그램의 실행결과에 대한 텍스트, 그래픽 등의 정보를 해당 사용자 단말기(200)로 제공하여 사용자가 프로그램의 처리결과를 확인하도록 한다(S600).
프로그램 실행결과를 제공한 이후, 상기 프로그래밍 관리서버(300)는 사용자의 선택에 따라 프로그램의 처리결과에 에러가 발생되었는지를 판단하고(S700), 판단결과 에러가 발생되지 않은 경우 사용자의 프로그램 실습에 관련된 서비스 이용을 종료하고, 에러가 발생되면 상기 S300 단계 이후를 반복하여 수행한다.
이처럼, 본 발명은 사용자의 음성명령을 인식하여 코딩작업을 자동으로 수행하기 때문에 별도의 입력장치를 사용하지 않고 음성을 통해 간편하게 코딩작업을 수행할 수 있으며, 다양한 프로그래밍 언어를 적용할 수 있다.
또한, 모바일 환경에서 학생들이나 프로그래머들이 프로그램 실습 및 코딩작업을 수행할 때 발생할 수 있는 키 입력의 불편함을 해소할 수 있으며, 거동이 불편한 장애인들의 프로그램 관련 교육 및 작업에 도움을 줄 수 있다.
이상으로 본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 판단되어야 할 것이다.
100 : 네트워크 200 : 사용자 단말기
210 : 음성 입력부 220 : 통신부
230 : 프로그램 처리부 240 : 제어부
300 : 프로그래밍 관리서버 310 : 통신부
320 : 음성인식 처리부 322 : 형태소 분석부
324 : 구문 분석부 326 : 의미 분석부
328 : 담화 분석부 330 : 프로그래밍 엘리먼트 확인부
340 : 프로그래밍 코드 변환부 350 : 프로그래밍 검증부
360 : 프로그래밍 처리부 370 : 프로그래밍 데이터 관리부
380 : 제어부 400 : 음성인식 서버
500 : 데이터베이스

Claims (12)

  1. 사용자의 음성명령 인식정보를 토대로 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 확인하는 프로그래밍 엘리먼트 확인부;
    상기 확인된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 결합하여 프로그래밍 코드로 변환하는 프로그래밍 코드 변환부;
    상기 변환된 프로그래밍 코드의 실행결과를 사용자 단말기로 제공하는 프로그래밍 처리부; 및
    특정 프로그래밍 언어에서 사용되는 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트별로 복수의 사용자들이 말하는 음성정보를 수집 및 분석하여 상기 각 프로그래밍 엘리먼트별 유사 단어를 분류하고, 상기 분류한 유사 단어와 상기 각 프로그래밍 엘리먼트를 매칭한 테이블 정보를 저장 및 관리하는 프로그래밍 데이터 관리부;를 포함하며,
    상기 사용자의 음성명령 인식정보는,
    프로그래밍 관리서버에서, 네트워크를 통해 사용자 단말기로부터 사용자의 음성신호를 입력받아 음성인식 서버를 통해 문장을 인식하고, 상기 음성인식 서버를 통해 인식한 문장을 토대로 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 통해 추출하는 유의미한 단어로 이루어진 집합이며,
    상기 프로그래밍 엘리먼트 확인부는,
    상기 추출한 유의미한 단어별로, 상기 저장 및 관리되는 테이블 정보를 참조함으로서, 상기 사용자의 음성명령 인식정보에 대한 프로그래밍 엘리먼트를 확인하는 것을 포함하며,
    상기 사용자가 특정 프로그래밍 언어나 해당 프로그래밍 언어에 대한 문법체계를 알지 못하여도 프로그램을 작성할 수 있도록 하는 것을 특징으로 하는 음성 인식을 이용한 코딩시스템.
  2. 청구항 1에 있어서,
    상기 코딩시스템은,
    상기 프로그래밍 코드 변환부를 통해 음성 인식을 이용한 프로그램 작성이 완료되면 컴파일 및 디버깅을 수행하는 프로그래밍 검증부;를 더 포함하는 것을 특징으로 하는 음성 인식을 이용한 코딩시스템.
  3. 삭제
  4. 청구항 1에 있어서,
    상기 사용자의 음성명령 인식정보는,
    상기 사용자 단말기에서 사용자의 음성신호를 입력받아 문장을 인식하고, 인식된 문장을 토대로 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 통해 추출하는 유의미한 단어로 이루어진 집합으로서, 프로그래밍 관리서버에서 네트워크를 통해 상기 사용자 단말기로부터 제공받는 것을 더 포함하는 것을 특징으로 하는 음성 인식을 이용한 코딩시스템.
  5. 청구항 1에 있어서,
    상기 프로그래밍 코드 변환부는,
    상기 사용자 단말기에서 확인하여 나열된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 데이터베이스에 기 저장된 프로그래밍 코드 세트정보를 참조하여 해당 프로그래밍 언어의 문법 체계에 맞는 프로그래밍 코드로 변환하는 것을 특징으로 하는 음성 인식을 이용한 코딩시스템.
  6. 삭제
  7. 프로그래밍 관리서버에서, 사용자의 음성명령 인식정보를 토대로 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 확인하는 프로그래밍 엘리먼트 확인 단계;
    상기 프로그래밍 관리서버에서, 상기 프로그래밍 엘리먼트 확인 단계에서 확인된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 결합하여 프로그래밍 코드로 변환하는 프로그래밍 코드 변환 단계; 및
    상기 프로그래밍 관리서버에서, 상기 프로그래밍 코드 변환 단계를 통해 변환된 프로그래밍 코드의 실행결과를 사용자 단말기로 제공하는 프로그래밍 처리 단계; 및
    상기 프로그래밍 관리서버에서, 특정 프로그래밍 언어에서 사용되는 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트별로 복수의 사용자들이 말하는 음성정보를 수집 및 분석하여 상기 각 프로그래밍 엘리먼트별 유사 단어를 분류하고, 상기 분류한 유사 단어와 상기 각 프로그래밍 엘리먼트를 매칭한 테이블 정보를 저장 및 관리하는 프로그래밍 데이터 관리 단계;를 포함하며,
    상기 사용자의 음성명령 인식정보는,
    상기 프로그래밍 관리서버에서, 네트워크를 통해 사용자 단말기로부터 사용자의 음성신호를 입력받아 음성인식 서버를 통해 문장을 인식하고, 상기 음성인식 서버를 통해 인식한 문장을 토대로 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 통해 추출하는 유의미한 단어로 이루어진 집합이며,
    상기 프로그래밍 엘리먼트 확인 단계는,
    상기 추출한 유의미한 단어별로, 상기 저장 및 관리되는 테이블 정보를 참조함으로서, 상기 사용자의 음성명령 인식정보에 대한 프로그래밍 엘리먼트를 확인하는 것을 포함하며,
    상기 사용자가 특정 프로그래밍 언어나 해당 프로그래밍 언어에 대한 문법체계를 알지 못하여도 프로그램을 작성할 수 있도록 하는 것을 특징으로 하는 음성 인식을 이용한 코딩방법.
  8. 청구항 7에 있어서,
    상기 코딩방법은,
    상기 프로그래밍 관리서버에서, 상기 프로그래밍 코드 변환 단계를 통해 음성 인식을 이용한 프로그램 작성이 완료되면 컴파일 및 디버깅을 수행하는 프로그래밍 검증 단계;를 더 포함하는 것을 특징으로 하는 음성 인식을 이용한 코딩방법.
  9. 삭제
  10. 청구항 7에 있어서,
    상기 사용자의 음성명령 인식정보는,
    상기 사용자 단말기에서 사용자의 음성신호를 입력받아 문장을 인식하고, 인식된 문장을 토대로 형태소, 구문, 의미, 담화 또는 이들의 조합을 포함한 자연어 처리 분석을 통해 추출하는 유의미한 단어로 이루어진 집합으로서, 프로그래밍 관리서버에서 네트워크를 통해 상기 사용자 단말기로부터 제공받는 것을 더 포함하는 것을 특징으로 하는 음성 인식을 이용한 코딩방법.
  11. 청구항 7에 있어서,
    상기 프로그래밍 코드 변환 단계는,
    상기 사용자 단말기에서 확인하여 나열된 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트를 데이터베이스에 기 저장된 프로그래밍 코드 세트정보를 참조하여 해당 프로그래밍 언어의 문법 체계에 맞는 프로그래밍 코드로 변환하는 것을 특징으로 하는 음성 인식을 이용한 코딩방법.
  12. 삭제
KR1020170019819A 2017-02-14 2017-02-14 음성 인식을 이용한 코딩시스템 및 코딩방법 KR101957277B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170019819A KR101957277B1 (ko) 2017-02-14 2017-02-14 음성 인식을 이용한 코딩시스템 및 코딩방법
PCT/KR2018/001708 WO2018151464A1 (ko) 2017-02-14 2018-02-08 음성 인식을 이용한 코딩시스템 및 코딩방법
US16/485,770 US11494161B2 (en) 2017-02-14 2018-02-08 Coding system and coding method using voice recognition

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170019819A KR101957277B1 (ko) 2017-02-14 2017-02-14 음성 인식을 이용한 코딩시스템 및 코딩방법

Publications (2)

Publication Number Publication Date
KR20180093556A KR20180093556A (ko) 2018-08-22
KR101957277B1 true KR101957277B1 (ko) 2019-03-12

Family

ID=63170727

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170019819A KR101957277B1 (ko) 2017-02-14 2017-02-14 음성 인식을 이용한 코딩시스템 및 코딩방법

Country Status (3)

Country Link
US (1) US11494161B2 (ko)
KR (1) KR101957277B1 (ko)
WO (1) WO2018151464A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11217230B2 (en) * 2017-11-15 2022-01-04 Sony Corporation Information processing device and information processing method for determining presence or absence of a response to speech of a user on a basis of a learning result corresponding to a use situation of the user
EP3564812B1 (en) * 2018-04-30 2022-10-26 Mphasis Limited Method and system for automated creation of graphical user interfaces
CN109493872B (zh) * 2018-12-13 2021-12-14 北京三快在线科技有限公司 语音信息验证方法及装置、电子设备、存储介质
US11003419B2 (en) 2019-03-19 2021-05-11 Spotify Ab Refinement of voice query interpretation
KR102243258B1 (ko) * 2019-08-09 2021-04-21 주식회사 한화 텍스트 및 키워드 마이닝을 통한 디버깅을 수행하는 장치 및 그 방법
KR102298000B1 (ko) * 2019-10-15 2021-09-02 서울시립대학교 산학협력단 모델 기반 디버깅 방법 및 이를 적용한 디버그 교육 시스템
CN111292721A (zh) * 2020-02-20 2020-06-16 深圳壹账通智能科技有限公司 代码编写方法、装置及计算机设备
KR102437242B1 (ko) * 2020-03-31 2022-08-30 한국과학기술원 대화를 통하여 하드웨어의 제어 및 프로그래밍을 수행하는 물리적 컴퓨팅 방법, 컴퓨터 프로그램 및 시스템
KR102431369B1 (ko) * 2020-09-24 2022-08-10 서울시립대학교 산학협력단 대화형 인공지능을 이용한 코딩 방법 및 장치
KR102396187B1 (ko) * 2020-10-12 2022-05-09 광운대학교 산학협력단 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법
KR102300584B1 (ko) * 2020-12-08 2021-09-10 주식회사 플레이코드 코딩을 교육하는 장치 및 방법
US11669307B2 (en) * 2021-04-29 2023-06-06 Microsoft Technology Licensing, Llc Code injection from natural language derived intent
KR102579180B1 (ko) * 2021-07-13 2023-09-15 주식회사 크리모 음성 인식이 가능한 코딩 알고리즘 훈련 교구
CN115794065B (zh) * 2022-11-01 2023-11-03 中犇科技有限公司 一种基于ai语音交互的可视化智能编程方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110040A1 (en) * 2001-12-07 2003-06-12 Creative Logic Solutions Inc. System and method for dynamically changing software programs by voice commands
US20060106608A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Method and system for efficient voice-based programming

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3140894B2 (ja) * 1993-10-01 2001-03-05 三菱電機株式会社 言語処理装置
KR20130020970A (ko) * 2011-08-22 2013-03-05 인크로스 주식회사 코딩 시스템
WO2014115189A1 (en) * 2013-01-28 2014-07-31 Nec Corporation Method and system for transforming specification scripts to program code
US20150044642A1 (en) * 2013-08-12 2015-02-12 Khan Academy Methods and Systems for Learning Computer Programming
CN103645931B (zh) * 2013-12-25 2016-06-22 盛杰 代码转换的方法及装置
RU2014111971A (ru) * 2014-03-28 2015-10-10 Юрий Михайлович Буров Способ и система голосового интерфейса
KR20160060915A (ko) * 2014-11-21 2016-05-31 에스케이텔레콤 주식회사 어근 기반의 언어모델 생성 방법 및 이를 위한 언어처리장치
US10409564B2 (en) * 2015-08-03 2019-09-10 Microsoft Technology Licensing, Llc Recording and playback of development sessions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110040A1 (en) * 2001-12-07 2003-06-12 Creative Logic Solutions Inc. System and method for dynamically changing software programs by voice commands
US20060106608A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Method and system for efficient voice-based programming

Also Published As

Publication number Publication date
US11494161B2 (en) 2022-11-08
KR20180093556A (ko) 2018-08-22
US20200026488A1 (en) 2020-01-23
WO2018151464A1 (ko) 2018-08-23

Similar Documents

Publication Publication Date Title
KR101957277B1 (ko) 음성 인식을 이용한 코딩시스템 및 코딩방법
CN108428446B (zh) 语音识别方法和装置
JP5405672B2 (ja) 外国語学習装置及び対話システム
CN102243871B (zh) 作为语音识别错误预测器的用于语法适合度评估的方法和系统
US10019984B2 (en) Speech recognition error diagnosis
KR102191425B1 (ko) 인터랙티브 캐릭터 기반 외국어 학습 장치 및 방법
JP4181590B2 (ja) インタフェース装置及びインタフェース処理方法
JP2017058673A (ja) 対話処理装置及び方法と知能型対話処理システム
US20170199867A1 (en) Dialogue control system and dialogue control method
Ashok et al. Capti-speak: a speech-enabled web screen reader
CN105283914A (zh) 用于识别语音的系统和方法
CN110797010A (zh) 基于人工智能的问答评分方法、装置、设备及存储介质
US10977155B1 (en) System for providing autonomous discovery of field or navigation constraints
KR20150085145A (ko) 사용자 반응 기반 통역 시스템 및 그 방법
CN110782880B (zh) 一种韵律生成模型的训练方法及装置
KR102372069B1 (ko) 언어학습을 위한 양국어 자유 대화 시스템 및 방법
CN111554276A (zh) 语音识别方法、装置、设备及计算机可读存储介质
Bastianelli et al. Speaky for robots: the development of vocal interfaces for robotic applications
CN114330371A (zh) 基于提示学习的会话意图识别方法、装置和电子设备
KR20210059995A (ko) 학습 기반의 외국어 말하기 평가 방법 및 그 시스템
CN112818096A (zh) 对话生成方法及其装置
KR20210051523A (ko) 도메인 자동 분류 대화 시스템
KR102564008B1 (ko) 실시간 통역단위문 추출에 기반한 동시통역 장치 및 방법
CN111916062A (zh) 语音识别方法、装置和系统
US20190279623A1 (en) Method for speech recognition dictation and correction by spelling input, system and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant