KR102431369B1 - 대화형 인공지능을 이용한 코딩 방법 및 장치 - Google Patents

대화형 인공지능을 이용한 코딩 방법 및 장치 Download PDF

Info

Publication number
KR102431369B1
KR102431369B1 KR1020200124022A KR20200124022A KR102431369B1 KR 102431369 B1 KR102431369 B1 KR 102431369B1 KR 1020200124022 A KR1020200124022 A KR 1020200124022A KR 20200124022 A KR20200124022 A KR 20200124022A KR 102431369 B1 KR102431369 B1 KR 102431369B1
Authority
KR
South Korea
Prior art keywords
coding
keyword
user
code block
voice
Prior art date
Application number
KR1020200124022A
Other languages
English (en)
Other versions
KR20220040828A (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 KR1020200124022A priority Critical patent/KR102431369B1/ko
Publication of KR20220040828A publication Critical patent/KR20220040828A/ko
Application granted granted Critical
Publication of KR102431369B1 publication Critical patent/KR102431369B1/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/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • 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
    • G10L15/1822Parsing for meaning understanding
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/22Interactive procedures; Man-machine interfaces
    • G10L17/24Interactive procedures; Man-machine interfaces the user being prompted to utter a password or a predefined phrase

Landscapes

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

Abstract

본 발명의 일 실시예에 따른 대화형 인공지능을 이용한 코딩 방법은 사용자로부터 코딩을 수행하기 위한 음성인 키워드음성을 입력받는 단계; 상기 키워드음성을 분석하여, 코딩과 관련된 상기 사용자의 의도 및 적어도 하나의 키워드를 추출하는 단계; 코딩의 기본 단위인 복수의 템플릿을 포함하는 템플릿 사전에서 상기 사용자의 의도 및 상기 적어도 하나의 키워드에 대응되는 대응템플릿을 결정하고, 상기 적어도 하나의 키워드를 상기 대응템플릿에 맵핑하는 단계; 상기 사용자와의 대화를 통해 상기 대응템플릿에 미맵핑된 적어도 하나의 미맵핑키워드를 입력받고, 상기 적어도 하나의 미맵핑키워드를 상기 대응템플릿에 맵핑하는 단계; 및 상기 대응템플릿에 대응되는 코드블록을 생성하는 단계를 포함한다.
본 발명은 서울특별시 서울산업진흥원 2017년도 4차산업혁명 대응기술 개발지원사업(FI170003) "영상인식 및 AR기반 상호작용 가능한 교육용 로봇플랫폼 개발"을 통해 개발된 기술이다.

Description

대화형 인공지능을 이용한 코딩 방법 및 장치{CODING METHOD AND APPARATUS USING INTERACTIVE ARTIFICIAL INTELLIGENCE}
본 발명은 대화형 인공지능을 이용하여 프로그램의 코딩을 수행하는 방법 및 그 장치에 관한 것이다.
종래의 코딩 교육 과정은 교육 환경에서 사용하는 텍스트 위주의 UI와 어려운 영어 단어 위주의 어휘로 인해, 교육 대상에게 접근성이 떨어지는 문제가 있었다.
이를 해결하기 위해 소형 로봇을 교육 보조 장치로 사용하는 방법들이 시도되어 왔다. 하지만 소형 로봇을 이용한 교육 방법은 단순한 행동을 지시하기 위하여 복잡한 단위와 어려운 코드를 사용해야 하므로 교육효과가 떨어질 수 있는 문제가 있다.
이런 문제를 해결하기 위하여 본 발명에서는 음성 기반의 추상적인 명령어를 사용하여 코딩 활동을 수행하는 방법을 제시하고자 하며, 이 방법을 사용하면 단순한 명령을 위해 여러 단계의 복잡한 코딩 활동을 거칠 필요 없이 음성을 이용하여 보다 쉽고, 효율적으로 코딩을 수행할 수 있다.
본 발명은 서울특별시 서울산업진흥원 2017년도 4차산업혁명 대응기술 개발지원사업(FI170003) "영상인식 및 AR기반 상호작용 가능한 교육용 로봇플랫폼 개발"을 통해 개발된 기술이다.
대한민국 공개특허 제10-2020- 0082489호
본 발명은 대화형 인공지능을 이용하여 프로그램의 코딩을 수행하는 방법 및 그 장치를 제공하고자 한다.
상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 대화형 인공지능을 이용한 코딩 방법은 사용자로부터 코딩을 수행하기 위한 음성인 키워드음성을 입력받는 단계; 상기 키워드음성을 분석하여, 코딩과 관련된 상기 사용자의 의도 및 적어도 하나의 키워드를 추출하는 단계; 코딩의 기본 단위인 복수의 템플릿을 포함하는 템플릿 사전에서 상기 사용자의 의도 및 상기 적어도 하나의 키워드에 대응되는 대응템플릿을 결정하고, 상기 적어도 하나의 키워드를 상기 대응템플릿에 맵핑하는 단계; 상기 사용자와의 대화를 통해 상기 대응템플릿에 미맵핑된 적어도 하나의 미맵핑키워드를 입력받고, 상기 적어도 하나의 미맵핑키워드를 상기 대응템플릿에 맵핑하는 단계; 및 상기 대응템플릿에 대응되는 코드블록을 생성하는 단계를 포함한다.
바람직하게는, 상기 적어도 하나의 키워드를 상기 대응템플릿에 맵핑하는 단계 및 상기 적어도 하나의 미맵핑키워드를 상기 대응템플릿에 맵핑하는 단계는 상기 대응템플릿의 맵핑 과정 각각에 대응되는 코드블록을 디스플레이 장치에 출력할 수 있다.
바람직하게는, 상기 코드블록을 생성하는 단계의 이후에 소정의 선택된 코드블록을 기준으로 코드블록의 상대적인 위치에 관한 음성을 입력받거나, 코드블록에 대응되는 고유한 레이블, 색상 또는 코드블록을 구성하는 개별 코드의 줄 번호에 대응되는 음성을 입력받는 단계; 상기 입력받은 음성에 대응되는 새로운 코드블록을 선택하여 상기 사용자와의 대화를 통해 편집하는 단계를 더 포함할 수 있다.
바람직하게는, 상기 코딩의 기본 단위는 프로그램을 구성하는 조건문, 순차문, 반복문, 블록, 수식, 외부 API 및 사용자생성 함수를 포함할 수 있다.
바람직하게는, 상기 대응템플릿에 대응되는 코드블록을 포함하는 프로그램은 유선 또는 무선으로 연결된 외부기기에 전송되며, 상기 외부기기의 적어도 하나의 기능을 모델링한 기능모델에 매칭되어 실행될 수 있다.
또한, 상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 대화형 인공지능을 이용한 코딩 장치는 사용자로부터 음성을 입력받아 문자를 출력하는 TTS 모듈; 문자를 입력받아 상기 사용자에게 음성을 출력하는 STT 모듈; 상기 TTS 모듈이 상기 사용자로부터 코딩을 수행하기 위한 음성인 키워드음성을 입력받아 출력한 문자를 분석하여, 코딩과 관련된 상기 사용자의 의도 및 적어도 하나의 키워드를 추출하는 의도 분석 모듈; 코딩의 기본 단위인 복수의 템플릿을 포함하는 템플릿 사전에서 상기 사용자의 의도 및 상기 적어도 하나의 키워드에 대응되는 대응템플릿을 결정하고, 상기 적어도 하나의 키워드를 상기 대응템플릿에 맵핑하고, 상기 TTS 모듈 및 상기 STT 모듈을 이용한 상기 사용자와의 대화를 통해 상기 대응템플릿에 미맵핑된 적어도 하나의 미맵핑키워드를 입력받고, 상기 적어도 하나의 미맵핑키워드를 상기 대응템플릿에 맵핑하는 맵핑 모듈; 및 상기 대응템플릿에 대응되는 코드블록을 생성하는 생성 모듈을 포함한다.
바람직하게는, 상기 맵핑 모듈은 상기 대응템플릿의 맵핑 과정 각각에 대응되는 코드블록을 디스플레이 장치에 출력할 수 있다.
바람직하게는, 상기 TTS 모듈이 소정의 선택된 코드블록을 기준으로 코드블록의 상대적인 위치에 관한 음성을 입력받거나, 코드블록에 대응되는 고유한 레이블, 색상 또는 코드블록을 구성하는 개별 코드의 줄 번호에 대응되는 음성을 입력받을 때, 상기 TTS 모듈 및 상기 STT 모듈을 이용하여, 상기 입력받은 음성에 대응되는 새로운 코드블록을 선택하고, 상기 사용자와의 대화를 통해 편집하는 편집 모듈을 더 포함할 수 있다.
바람직하게는, 상기 코딩의 기본 단위는 프로그램을 구성하는 조건문, 순차문, 반복문, 블록, 수식, 외부 API 및 사용자생성 함수를 포함할 수 있다.
바람직하게는, 상기 대응템플릿에 대응되는 코드블록을 포함하는 프로그램은 유선 또는 무선으로 연결된 외부기기에 전송되며, 상기 외부기기의 적어도 하나의 기능을 모델링한 기능모델에 매칭되어 실행될 수 있다.
본 발명의 일 실시예에 따른 대화형 인공지능을 이용한 코딩 방법 및 장치는 사용자의 음성을 기반으로 대화형으로 코딩을 수행할 수 있기 때문에, 시각장애인, 어린이 및 비전문가의 코딩에 대한 접근 장벽을 낮출 수 있는 효과가 있다.
또한, 본 발명의 일 실시예에 따른 대화형 인공지능을 이용한 코딩 방법 및 장치는 종래의 텍스트 위주의 코딩 교육에서 벗어나, 음성 기반의 대화형 코딩을 가능하게 하므로, 각종 학교 및 학원 등에서의 코딩 교육의 효과를 극대화할 수 있다.
도 1은 본 발명의 일 실시예에 따른 대화형 인공지능을 이용한 코딩 방법의 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 대화형 인공지능을 이용한 코딩 장치의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 STT 모듈과 TTS 모듈을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 의도 분석 모듈을 설명하기 위한 도면이다.
도 5 및 6은 본 발명의 일 실시예에 따른 템플릿을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면을 참조하여 상세하게 설명하도록 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재 항목들의 조합 또는 복수의 관련된 기재 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급될 때에는 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 포함한다고 할때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다.
이한, 첨부된 도면을 참조하여 본 발명에 따른 가상현실환경을 이용한 인지 및 실행능력 훈련 평가 방법에 대해 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 대화형 인공지능을 이용한 코딩 방법의 흐름도이다.
단계 S110에서는, 코딩 장치가 사용자로부터 코딩을 수행하기 위한 음성인 키워드음성을 입력받는다.
이때, 코딩 장치는 그 사용자로부터 코딩을 수행하기 위하여 음성으로 입력한 키워드음성을 입력받을 수 있다. 즉, 코딩 장치에는 마이크가 부착되어, 그 마이크를 통해 사용자로부터 음성을 입력받을 수 있다.
예컨대, 키워드음성은 “만약에 빨간색이 보이면”과 같이 조건문을 입력하기 위한 음성이거나, “열번 동안”과 같이 반복문을 입력하기 위한 음성일 수 있다.
단계 S120에서는, 코딩 장치가 그 키워드음성을 분석하여, 코딩과 관련된 사용자의 의도 및 적어도 하나의 키워드를 추출한다.
이때, 코딩 장치는 STT(speech to text) 모듈을 이용하여 키워드음성을 문자로 변환할 수 있다. 그리고, 코딩 장치는 그 문자를 분석하여 코딩과 관련지어 사용자의 의도 및 적어도 하나의 키워드를 추출할 수 있다. 이를 위해, 코딩 장치는 코딩과 관련된 사용자의 의도 및 키워드를 추출하도록 학습된 대화형 인공지능 모듈을 이용하여, 사용자가 입력한 키워드음성에 대응되는 사용자의 의도와 적어도 하나의 키워드를 추출할 수 있다.
이때, 대화형 인공지능은 지능적인 추론을 통해 사람과 유사한 수준의 대화가 가능한 인공지능으로, 이를 활용하여 코딩의 맥락을 이해하고 대화를 통해 사람과 공동으로 코딩을 수행할 수 있다. 예컨대 IBM의 Watson, Naver의 Clova등이 이에 포함된다.
예컨대, 도 4를 참조하면, 코딩 장치는 키워드음성이 “앞에 빨간색이 보이면”인 경우, 사용자의 의도가 “조건문”(예, ifstatement)을 입력하려는 것으로 판단할 수 있다. 또한, 코딩 장치는 “빨간색”(예, red)과 “보이면”(예, visible)을 키워드로 추출할 수 있다. 또한, 코딩 장치는 키워드음성이 “열번 동안” 인 경우, 사용자의 의도가 “반복문”을 입력하려는 것으로 판단할 수 있다. 그리고, 코딩 장치는 그 반복문에 이용되는 적어도 하나의 키워드에 관한 정보를 더 추출할 수 있다.
단계 S130에서는, 코딩 장치가 코딩의 기본 단위인 복수의 템플릿을 포함하는 템플릿 사전에서 그 사용자의 의도 및 적어도 하나의 키워드에 대응되는 대응템플릿을 결정하고, 그 적어도 하나의 키워드를 대응템플릿에 맵핑한다.
여기서, 템플릿 사전은 기본적으로 사전에 생성된(pre-defined) 템플릿의 집합이며, 템플릿은 코딩에 이용되는 다양한 기본 단위를 사전에 모델링한 결과물일 수 있다. 예컨대, 코딩 교육을 위하여 교사가 사전에 다수의 템플릿을 생성하여 템플릿 사전을 작성할 수 있다. 또한, 교사는 사전에 그 템플릿 사전을 이용하여 개별 템플릿을 완성하기 위한 대화를 수행할 수 있도록 대화형 인공지능을 학습시킬 수 있다. 또한, 학생은 그 키워드 사전을 이용하여 코딩을 수행할 수 있다.
보다 구체적으로, 템플릿은 변수값의 입력 또는 변경, 수식입력, 조건문, 순차문, 반복문, 블록, 외부 API, 사용자생성 함수 등의 개별 기본 단위에 대응되는 것으로써, 개별 기본 단위의 속성에 대한 결정이 필요할 수 있다.
이때, 코딩 장치는 템플릿 사전에서 그 사용자의 의도 및 적어도 하나의 키워드에 대응되는 대응템플릿을 결정하고, 그 적어도 하나의 키워드를 이용하여 대응템플릿의 속성에 맵핑할 수 있다.
예컨대, 도 5를 참조하면, 코딩 장치는 사용자의 의도가 “조건문” 을 입력하려는 것으로 판단되는 경우, 템플릿 사전에서 조건문에 대응되는 템플릿을 대응템플릿으로 결정하고, “빨간색”(red) 과 “보이면”(visible) 을 그 대응템플릿의 조건으로 맵핑할 수 있다.
다른 실시예에서는, 코딩의 기본 단위는 프로그램을 구성하는 조건문, 순차문, 반복문, 블록, 수식, 외부 API 및 사용자생성 함수일 수 있다.
예컨대, 일반 구성자는 변수값의 입력 또는 변경, 수식입력, 조건문, 순차문, 반복문, 블록, 수식 등일 수 있다. 또한, 외부 API는 코딩에 이용되는 외부 라이브러리 등에 포함된 API(application programming interface)일 수 있다. 또한, 사용자생성 함수(user-defined function)는 사용자가 정의한 함수일 수 있다.
단계 S140에서는, 코딩 장치가 그 사용자와의 대화를 통해 대응템플릿에 미맵핑된 적어도 하나의 미맵핑키워드를 입력받고, 그 적어도 하나의 미맵핑키워드를 대응템플릿에 맵핑한다.
여기서, 코딩 장치는 그 대응템플릿의 구성요소를 완성하기 위하여, 그 대응템플릿에 대응되는 대화형 템플릿을 이용하여 사용자와 대화할 수 있다. 즉, 코딩 장치는 사용자로부터 음성을 입력받아 텍스트를 출력하는 TTS(text to speech) 모듈과 텍스트를 입력받아 사용자에게 음성을 출력하는 STT 모듈을 포함하거나 외부의 TTS 모듈 및 STT 모듈과 연결되어 있으며, 스피커와 마이크가 부착되어, 그 스피커와 마이크를 통해 TTS 모듈과 STT모듈을 이용하여 사용자와 대화할 수 있다. 한편, 외부의 TTS 모듈은 Google TTS, Watson TTS이고, STT 모듈은 Naver Clova STT, Google STT 등일 수 있다.
예컨대, 도 3을 참조하면, STT 모듈은 사용자의 음성 명령을 코딩 장치에서 인식가능한 텍스트로 변환할 수 있고, TTS 모듈은 코딩 장치의 텍스트를 사용자가 들을 수 있는 음성으로 변환할 수 있다.
이때, 대화형 템플릿은 대응템플릿에 미맵핑된 적어도 하나의 속성을 완성하기 위하여 미리 마련된 대화 계획으로, 코딩 장치는 사용자와의 질답을 통해 그 적어도 하나의 속성에 대한 정보를 획득할 수 있다.
예컨대, 도 6을 참조하면, 코딩 장치는 대응템플릿에서 미맵핑된 속성인 “실행 블록” 항목을 완성하기 위한 대화를 사용자와 수행하여, “앞으로 5칸 가”(go forward 5 times)라는 3개의 미맵핑키워드를 획득하고, 그 대응템플릿의 실행 블록에 맵핑할 수 있다.
이를 통해, 코딩 장치는 대응템플릿의 모든 속성에 관한 정보를 획득할 수 있다. 예컨대, 대응템플릿이 조건문인 경우, (1) 조건, (2) 조건 만족시 실행, (3) 불만족시 실행의 3가지 속성이 존재할 수 있다. 또한, 대응템플릿이 외부 API인 경우, (1) API명칭, (2) API 파라미터의 2가지 속성이 존재할 수 있다. 또한, 대응템플릿이 변수값의 변경인 경우, (1) 변수명 (2) 변수값의 2가지 속성이 존재할 수 있다. 또한, 대응템플릿이 반복문인 경우, (1) 반복문 변수 선언, (2) 반복 조건 (2) 매 반복마다 실행의 3가지 속성이 존재할 수 있다.
보다 구체적으로, 코딩 장치가 사용자에게 “그럼 어떻게 하실 건가요?”라고 질문할 수 있다. 그러면, 사용자는 코딩 장치에게 “앞으로 5칸 가”라고 대답할 수 있다. 다시 코딩 장치가 사용자에게 “그 외에 하실 일이 있나요?”라고 질문할 수 있다. 그러면, 사용자는 코딩 장치에게 “딱히 없어”라고 대답할 수 있다. 그러면, 코딩 장치가 사용자에게 “만약 말씀하신 조건대로 안 되면요?”라고 질문할 수 있다. 그러면, 사용자는 코딩 장치에게 “아무것도 안 할거야”라고 대답할 수 있다.
즉, 코딩 장치는 도 5를 참조하면, “빨간색이 보이면”이라는 조건이 만족되면, “앞으로 5칸 가”를 수행하고, 그 조건이 만족되지 않으면 “아무것도 안하는” 속성을 갖는 조건문에 대응되는 대응템플릿을 완성할 수 있다.
단계 S150에서는, 코딩 장치가 그 대응템플릿에 대응되는 코드블록을 생성한다.
즉, 코딩 장치는 그 맵핑이 완료된 대응템플릿를 이용하여, 코딩의 구성 단위인 코드블록을 생성할 수 있다. 이때, 코드블록은 텍스트로 구성된 소스코드일 수 있다. 나아가 코딩 장치는 디스플레이 장치를 통해 해당 코드블록을 사용자에게 나타낼 수 있다.
예컨대, 코딩 장치는 대응템플릿이 조건문에 해당하고, 그 조건문의 속성 정보가 (1) 빨간색이 감지되는 조건에 따라, (2) 조건이 만족되면 앞으로 5칸 가고, (3) 조건이 만족되지 않으면 아무것도 하지 않는 속성인 경우에, 이를 소스코드의 형태로 구성하여 생성할 수 있는 것이다.
이때, 템플릿은 다음과 같은 구성 요소를 포함할 수 있다. 첫째로, 음성키워드와 템플릿을 맵핑하기 위한 의도(intention)을 포함한다. 둘째로, 코드블록을 생성하기 위해 필요한 메타데이터(코드블록의 형태, 색상, 빈 칸의 위치)를 포함한다. 셋째로, 코드블록의 하위 인자들(parameter)을 포함한다. 이때, 하위 인자는 코드블록의 제약조건, 코드블록을 사용자와의 대화를 통해 완성하기 위해 미리 마련된 대화 계획일 수 있다.
다른 실시예에서는, 코딩 장치가 그 적어도 하나의 키워드를 대응템플릿에 맵핑하거나 그 적어도 하나의 미맵핑키워드를 대응템플릿에 맵핑할 때, 그 맵핑 과정 각각에 대응되는 코드블록을 디스플레이 장치에 출력할 수 있다.
즉, 코딩 장치는 그 적어도 하나의 키워드를 대응템플릿에 맵핑한 후, 곧바로 디스플레이 장치에 현재까지 맵핑된 결과를 나타낼 수 있다. 예컨대, 코딩 장치는 대응템플릿이 조건문이고, 키워드가 “빨간색” 과 “보이면” 인 경우, 조건에 관한 속성만이 채워진 코드블록을 디스플레이 장치에 실시간으로 출력할 수 있다.
또한, 코딩 장치는 그 적어도 하나의 미맵핑키워드를 대응템플릿에 맵핑한 후, 곧바로 디스플레이 장치에 현재까지 맵핑된 결과를 나타낼 수 있다. 예컨대, 미맵핑키워드가 “앞으로”(forward), “5칸”(5 times), “가”(go)인 경우, 모든 속성이 채워진 코드블록을 디스플레이 장치에 실시간으로 출력할 수 있다.
또 다른 실시예에서는, 코딩 장치가 소정의 선택된 코드블록을 기준으로 코드블록의 상대적인 위치에 관한 음성을 입력받거나, 코드블록에 대응되는 고유한 레이블, 색상 또는 코드블록을 구성하는 개별 코드의 줄 번호에 대응되는 음성을 입력받아, 그 입력받은 음성에 대응되는 새로운 코드블록을 선택하고, 사용자와의 대화를 통해 그 코드블록을 편집할 수 있다.
예컨대, 코딩 장치는 생성된 코드블록을 디스플레이 장치를 통해 출력할 때, 블록 단위의 레이블, 색상 또는 개별 코드의 줄 번호가 보이도록 출력할 수 있다. 이때, 사용자가 “A 레이블 블록 삭제해 줘”, “B 색상 블록 삭제해 줘”, 또는 “C 라인의 10을 100으로 바꿔줘”라는 음성입력을 입력하면, 코딩 장치는 해당 코드블록을 사용자의 명령에 따라 편집할 수 있다.
또한, 코딩 장치는 사용자로부터 선택된 코드블록을 기준으로 코드블록의 상대적인 위치에 관한 음성을 입력받아, 사용자와의 대화를 통해 그 코드블록을 편집할 수 있다. 예컨대, 코딩 장치는 사용자가 “다음 블록을 삭제해 줘”, “이전 블록에서 조건을 변경할께” 라는 음성입력을 입력하면, 코딩 장치는 해당 코드블록을 사용자의 명령에 따라 편집하거나, 선택된 코드블록을 변경하여 편집하도록 할 수 있다.
또 다른 실시예에서는, 코딩 장치가 선택된 코드블록의 존재 여부에 따라, 상이하게 코딩 과정을 진행할 수 있다.
예컨대, 코딩 장치는 선택된 코드블록이 없는 경우, 사용자에게 추가적인 발화를 통해 새로운 코드블록을 선택하도록 할 수 있다. 그리고, 코딩 장치는 사용자와 그 코드블록의 템플릿을 완성하기 위한 대화를 진행할 수 있다.
반면에, 코딩 장치는 선택된 코드블록이 있는 경우, 사용자와 그 코드블록의 템플릿을 완성하기 위한 대화를 진행할 수 있다. 즉, 코딩 장치는 사용자의 발화를 분석하여 의도 및 키워드를 추출하고, 그 선택된 코드블록에 대응되는 템플릿에 키워드를 맵핑할 수 있다.
또 다른 실시예에서는, 코딩 장치가 사용자의 요청에 의해 코딩 과정을 중지할 수 있다.
예컨대, 코딩 장치는 사용자와 대화하여 선택된 코드블록에 대응되는 템플릿에 키워드를 맵핑하기 위한 대화를 진행하던 도중에 사용자로부터 중지 요청을 받을 수 있다. 이때, 코딩 장치는 그 템플릿에 대한 코드블록 생성 과정을 모두 중지할 수 있다. 나아가, 그 템플릿에 대응되는 코드블록이 디스플레이 장치에 표시되지 않도록 할 수 있다.
또 다른 실시예에서는, 코딩 장치가 단계 S110 내지 단계 S150을 반복하여, 복수의 코드블록으로 구성되는 프로그램을 완성할 수 있다.
즉, 코딩 장치는 사용자로부터 키워드음성을 입력받고, 그에 대응되는 코드블록을 생성하는 것을 여러 차례 반복적으로 제어하여 복수의 코드블록을 생성한 후에, 프로그램을 완성할 수 있다.
또 다른 실시예에서는, 대응템플릿에 대응되는 코드블록을 포함하는 프로그램은 유선 또는 무선으로 연결된 외부기기에 전송되며, 그 외부기기의 적어도 하나의 기능을 모델링한 기능모델에 매칭되어 실행될 수 있다.
코딩 장치가 모델속성정보에 포함된 적어도 하나의 속성에 대하여, 외부기기의 적어도 하나의 기능을 모델링한 기능모델에 매칭할 수 있다. 또한, 완성된 프로그램은 유선 또는 무선으로 연결된 외부기기에 전송되어 실행될 수 있다.
예컨대, 코딩 장치가 완성한 프로그램이 소형 로봇과 같은 외부기기를 작동시키기 위한 프로그램인 경우를 가정한다. 또한, 코드블록은 대응템플릿이 조건문이고, 그 대응템플릿의 속성정보가 (1) 빨간색이 감지되는 조건에 따라, (2) 조건이 만족되면 앞으로 5칸 가고, (3) 조건이 만족되지 않으면 아무것도 하지 않는 속성인 경우를 가정한다.
이때, 코딩 장치는 소형 로봇의 기능 “방향”과 “거리”에 대한 것이라면, 방향을 {전진, 후진, 좌로, 우로}의 4가지로 모델링하고, 거리를 {1, 2, 3, 4, 5, …, 10}의 10가지로 모델링 할 수 있다. 따라서, 코딩 장치는 “빨간색이 감지”되는 조건이 만족되었을 때 수행되어야 하는 “앞으로 5칸 가”를 (전진, 5)로 매칭하고, 그 매칭한 결과를 이용하여 코드블록을 생성할 수 있다.
도 2는 본 발명의 일 실시예에 따른 대화형 인공지능을 이용한 코딩 장치의 블록도이다.
도 2를 참조하면 본 발명의 일 실시예에 따른 대화형 인공지능을 이용한 코딩 장치(200)는 TTS 모듈(210), STT 모듈(220), 의도 분석 모듈(230), 맵핑 모듈(240) 및 생성 모듈(250)를 포함한다. 또한, 선택적으로 편집 모듈(미도시)을 포함할 수 있다.
TTS 모듈(210)은 사용자로부터 음성을 입력받아 문자를 출력한다.
STT 모듈(220)은 문자를 입력받아 사용자에게 음성을 출력한다.
의도 분석 모듈(230)은 TTS 모듈(210)이 사용자로부터 코딩을 수행하기 위한 음성인 키워드음성을 입력받아 출력한 문자를 분석하여, 코딩과 관련된 사용자의 의도 및 적어도 하나의 키워드를 추출한다.
맵핑 모듈(240)은 코딩의 기본 단위인 복수의 템플릿을 포함하는 템플릿 사전에서 그 사용자의 의도 및 적어도 하나의 키워드에 대응되는 대응템플릿을 결정하고, 그 적어도 하나의 키워드를 상기 대응템플릿에 맵핑하며, TTS 모듈(210) 및 STT 모듈(220)을 이용한 사용자와의 대화를 통해 대응템플릿에 미맵핑된 적어도 하나의 미맵핑키워드를 입력받고, 그 적어도 하나의 미맵핑키워드를 대응템플릿에 맵핑할 수 있다.
생성 모듈(250)은 그 대응템플릿에 대응되는 코드블록을 생성한다.
편집 모듈(미도시)는 TTS 모듈(210)이 소정의 선택된 코드블록을 기준으로 코드블록의 상대적인 위치에 관한 음성을 입력받거나, 코드블록에 대응되는 고유한 레이블, 색상 또는 코드블록을 구성하는 개별 코드의 줄 번호에 대응되는 음성을 입력받을 때, TTS 모듈(210) 및 STT 모듈(220)을 이용하여, 그 입력받은 음성에 대응되는 새로운 코드블록을 선택하고, 사용자와의 대화를 통해 편집한다.
다른 실시예에서는, 맵핑 모듈(240)은 대응템플릿의 맵핑 과정 각각에 대응되는 코드블록을 디스플레이 장치에 출력할 수 있다.
또 다른 실시예에서는, 코딩의 기본 단위는 프로그램을 구성하는 조건문, 순차문, 반복문, 블록, 수식, 외부 API 및 사용자생성 함수를 포함할 수 있다.
또 다른 실시예에서는, 대응템플릿에 대응되는 코드블록을 포함하는 프로그램은 유선 또는 무선으로 연결된 외부기기에 전송되며, 그 외부기기의 적어도 하나의 기능을 모델링한 기능모델에 매칭되어 실행될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 사람이라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (10)

  1. 사용자로부터 코딩을 수행하기 위한 음성인 키워드음성을 입력받는 단계;
    상기 키워드음성을 분석하여, 코딩과 관련된 상기 사용자의 의도 및 적어도 하나의 키워드를 추출하는 단계;
    코딩의 기본 단위인 복수의 템플릿을 포함하는 템플릿 사전에서 상기 사용자의 의도 및 상기 적어도 하나의 키워드에 대응되는 대응템플릿을 결정하고, 상기 적어도 하나의 키워드를 상기 대응템플릿에 맵핑하는 단계;
    상기 사용자와의 대화를 통해 상기 대응템플릿에 미맵핑된 적어도 하나의 미맵핑키워드를 입력받고, 상기 적어도 하나의 미맵핑키워드를 상기 대응템플릿에 맵핑하는 단계;
    상기 대응템플릿에 대응되는 코드블록을 생성하는 단계;
    상기 코드블록을 생성하는 단계의 이후에, 소정의 선택된 코드블록을 기준으로 코드블록의 상대적인 위치에 관한 음성을 입력받거나, 코드블록에 대응되는 고유한 레이블, 색상 또는 코드블록을 구성하는 개별 코드의 줄 번호에 대응되는 음성을 입력받는 단계; 및
    상기 입력받은 음성에 대응되는 새로운 코드블록을 선택하여 상기 사용자와의 대화를 통해 편집하는 단계
    를 포함하는 것을 특징으로 하는 대화형 인공지능을 이용한 코딩 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 키워드를 상기 대응템플릿에 맵핑하는 단계 및 상기 적어도 하나의 미맵핑키워드를 상기 대응템플릿에 맵핑하는 단계는
    상기 대응템플릿의 맵핑 과정 각각에 대응되는 코드블록을 디스플레이 장치에 출력하는 것을 특징으로 하는 대화형 인공지능을 이용한 코딩 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 코딩의 기본 단위는
    프로그램을 구성하는 조건문, 순차문, 반복문, 블록, 수식, 외부 API 및 사용자생성 함수를 포함하는 것을 특징으로 하는 대화형 인공지능을 이용한 코딩 방법.
  5. 제1항에 있어서,
    상기 대응템플릿에 대응되는 코드블록을 포함하는 프로그램은
    유선 또는 무선으로 연결된 외부기기에 전송되며, 상기 외부기기의 적어도 하나의 기능을 모델링한 기능모델에 매칭되어 실행되는 것을 특징으로 하는 대화형 인공지능을 이용한 코딩 방법.
  6. 사용자로부터 음성을 입력받아 문자를 출력하는 TTS 모듈;
    문자를 입력받아 상기 사용자에게 음성을 출력하는 STT 모듈;
    상기 TTS 모듈이 상기 사용자로부터 코딩을 수행하기 위한 음성인 키워드음성을 입력받아 출력한 문자를 분석하여, 코딩과 관련된 상기 사용자의 의도 및 적어도 하나의 키워드를 추출하는 의도 분석 모듈;
    코딩의 기본 단위인 복수의 템플릿을 포함하는 템플릿 사전에서 상기 사용자의 의도 및 상기 적어도 하나의 키워드에 대응되는 대응템플릿을 결정하고, 상기 적어도 하나의 키워드를 상기 대응템플릿에 맵핑하고,
    상기 TTS 모듈 및 상기 STT 모듈을 이용한 상기 사용자와의 대화를 통해 상기 대응템플릿에 미맵핑된 적어도 하나의 미맵핑키워드를 입력받고, 상기 적어도 하나의 미맵핑키워드를 상기 대응템플릿에 맵핑하는 맵핑 모듈;
    상기 대응템플릿에 대응되는 코드블록을 생성하는 생성 모듈; 및
    상기 TTS 모듈이 소정의 선택된 코드블록을 기준으로 코드블록의 상대적인 위치에 관한 음성을 입력받거나, 코드블록에 대응되는 고유한 레이블, 색상 또는 코드블록을 구성하는 개별 코드의 줄 번호에 대응되는 음성을 입력받을 때, 상기 TTS 모듈 및 상기 STT 모듈을 이용하여, 상기 입력받은 음성에 대응되는 새로운 코드블록을 선택하고, 상기 사용자와의 대화를 통해 편집하는 편집 모듈
    을 포함하는 것을 특징으로 하는 대화형 인공지능을 이용한 코딩 장치.
  7. 제6항에 있어서,
    상기 맵핑 모듈은
    상기 대응템플릿의 맵핑 과정 각각에 대응되는 코드블록을 디스플레이 장치에 출력하는 것을 특징으로 하는 대화형 인공지능을 이용한 코딩 장치.
  8. 삭제
  9. 제6항에 있어서,
    상기 코딩의 기본 단위는
    프로그램을 구성하는 조건문, 순차문, 반복문, 블록, 수식, 외부 API 및 사용자생성 함수를 포함하는 것을 특징으로 하는 대화형 인공지능을 이용한 코딩 장치.
  10. 제6항에 있어서,
    상기 대응템플릿에 대응되는 코드블록을 포함하는 프로그램은
    유선 또는 무선으로 연결된 외부기기에 전송되며, 상기 외부기기의 적어도 하나의 기능을 모델링한 기능모델에 매칭되어 실행되는 것을 특징으로 하는 대화형 인공지능을 이용한 코딩 장치.
KR1020200124022A 2020-09-24 2020-09-24 대화형 인공지능을 이용한 코딩 방법 및 장치 KR102431369B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200124022A KR102431369B1 (ko) 2020-09-24 2020-09-24 대화형 인공지능을 이용한 코딩 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200124022A KR102431369B1 (ko) 2020-09-24 2020-09-24 대화형 인공지능을 이용한 코딩 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20220040828A KR20220040828A (ko) 2022-03-31
KR102431369B1 true KR102431369B1 (ko) 2022-08-10

Family

ID=80934960

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200124022A KR102431369B1 (ko) 2020-09-24 2020-09-24 대화형 인공지능을 이용한 코딩 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102431369B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117037790B (zh) * 2023-10-10 2024-01-09 朗朗教育科技股份有限公司 一种ai交互智慧屏控制系统及方法
KR102635363B1 (ko) * 2023-10-19 2024-02-08 주식회사 크레드잇 대화용 챗봇 기반 ai 코드 생성 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170033722A (ko) * 2015-09-17 2017-03-27 삼성전자주식회사 사용자의 발화 처리 장치 및 방법과, 음성 대화 관리 장치
KR101957277B1 (ko) * 2017-02-14 2019-03-12 윤종식 음성 인식을 이용한 코딩시스템 및 코딩방법
KR102199203B1 (ko) 2018-12-28 2021-01-06 주식회사 멀틱스 코딩퍼즐을 이용한 코딩교육 장치

Also Published As

Publication number Publication date
KR20220040828A (ko) 2022-03-31

Similar Documents

Publication Publication Date Title
US7412389B2 (en) Document animation system
KR102431369B1 (ko) 대화형 인공지능을 이용한 코딩 방법 및 장치
Trung Multimodal dialogue management-state of the art
Jung et al. TurtleTalk: An educational programming game for children with voice user interface
Diprose et al. Designing an API at an appropriate abstraction level for programming social robot applications
Abdullah et al. Parametric design procedures: a new approach to generative-form in the conceptual design phase
Hunyadi Multimodal human-computer interaction technologies
Bertacchini et al. A project based learning approach for improving students’ computational thinking skills
Anderson et al. Language learning with interactive virtual agent scenarios and speech recognition: Lessons learned
CN110832570B (zh) 使用四值逻辑的交互式故事系统
Wang et al. Enhancing user experience in large language models through human-centered design: Integrating theoretical insights with an experimental study to meet diverse software learning needs with a single document knowledge base
Baloian et al. Modeling educational software for people with disabilities: theory and practice
Wang et al. Modeling and verification of an intelligent tutoring system based on Petri net theory
Engelbrecht et al. Memo workbench for semi-automated usability testing.
Turunen Jaspis-a spoken dialogue architecture and its applications
Macias-Huerta et al. CARLA: Conversational Agent in Virtual Reality with Analytics.
CN115964622A (zh) 用于机器学习模型的评测方法、装置及计算机存储介质
KR20200103187A (ko) 컴파일러 기술을 이용한 ai 튜터 기반의 코딩학습 플랫폼 제공 방법 및 장치
da Rocha et al. Evasim: a software simulator for the eva open-source robotics platform
Giunchi et al. DreamCodeVR: Towards Democratizing Behavior Design in Virtual Reality with Speech-Driven Programming
Hanser et al. Scenemaker: Intelligent multimodal visualisation of natural language scripts
Khan An Approach of Lip Synchronization With Facial Expression Rendering for an ECA
David et al. Interaction Templates: A Data-Driven Approach for Authoring Robot Programs
Meron et al. Improving the authoring of foreign language interactive lessons in the tactical language training system.
Seibert Towards dialogue based, computer aided software requirements elicitation

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right