KR102396187B1 - 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법 - Google Patents

음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법 Download PDF

Info

Publication number
KR102396187B1
KR102396187B1 KR1020200130799A KR20200130799A KR102396187B1 KR 102396187 B1 KR102396187 B1 KR 102396187B1 KR 1020200130799 A KR1020200130799 A KR 1020200130799A KR 20200130799 A KR20200130799 A KR 20200130799A KR 102396187 B1 KR102396187 B1 KR 102396187B1
Authority
KR
South Korea
Prior art keywords
code
voice
converted
text
unit
Prior art date
Application number
KR1020200130799A
Other languages
English (en)
Other versions
KR20220048075A (ko
KR102396187B9 (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 KR1020200130799A priority Critical patent/KR102396187B1/ko
Publication of KR20220048075A publication Critical patent/KR20220048075A/ko
Application granted granted Critical
Publication of KR102396187B1 publication Critical patent/KR102396187B1/ko
Publication of KR102396187B9 publication Critical patent/KR102396187B9/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
    • 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/165Management of the audio stream, e.g. setting of volume, audio stream path
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • 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
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems

Landscapes

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

Abstract

본 발명은 손을 이용하여 타이핑을 하지 않더라도 사용자의 음성을 인식하여 자동으로 코딩이 이루어지도록 하는 것으로서, 더욱 상세하게는 사용자에 의해 입력된 음성을 텍스트로 변환한 후, 변환한 텍스트를 다시 코드로 변환하는 과정을 거침으로써 손을 사용하지 않고 음성만으로 코드작성이 완료될 수 있도록 하는, 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드작성 방법에 관한 것이다.

Description

음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법{System for automatically generating code using voice recognition and method for automatically generating code using the same}
본 발명은 손을 이용하여 타이핑을 하지 않더라도 사용자의 음성을 인식하여 자동으로 코딩이 이루어지도록 하는 것으로서, 더욱 상세하게는 사용자에 의해 입력된 음성을 텍스트로 변환한 후, 변환한 텍스트를 다시 코드로 변환하는 과정을 거침으로써 손을 사용하지 않고 음성만으로 코드작성이 완료될 수 있도록 하는, 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드작성 방법에 관한 것이다.
4차 산업혁명의 키워드이자 붐을 일으키고 있는 인공지능을 “코딩 교육”에 접목시킴으로써 코딩에 대한 접근성을 한 층 더 낮출 수 있다.
코딩 능력이 시간의 흐름에 따라 필요가 아닌 필수가 되고 있으며, 그에 따라 학생들은 어려서부터 코딩을 접하게 된다. 하지만 일방적인 주입식 교육은 학생들에게 흥미가 아닌 반감을 심어줄 수 있다.
난이도가 있는 코딩의 경우 학생들이 어렵게 느낄 수 있을 뿐만 아니라 일찍이 포기하는 경우가 발생할 수 있다. 따라서 학생들에게 충분히 흥미를 심어 주고 보다 쉽게 접근할 수 있는 방안을 제시할 필요가 있다.
본 발명과 관련하여,
대한민국 등록특허 10-1213890(등록일자 2012.12.12)에는, ' 자연 언어 사용가능 애플리케이션(natural language enabled applications)으로의 자연 언어 입력을 해석하기 위한 시스템으로서,
객체 지향 데이터 유형의 집합 및 상기 데이터 유형의 집합에 대한 규칙을 정의하는 시맨틱 코드(semantic code)를 포함하는 문법 - 상기 객체 지향 데이터 유형의 집합은 복수의 클래스를 포함함 - ;
연관된 매개변수로 강형 문법(strongly-typed grammar)을 생성하도록, 하나 이상의 매개변수로 상기 객체 지향 데이터 유형의 집합 중 선택된 데이터 유형을 인스턴스화함에 의해 상기 문법에 액세스하기 위한 컴퓨터 판독가능 코드를 포함하는 소스 파일; 및
자연 언어 입력을 수신하고, 상기 자연 언어 입력을 상기 연관된 매개변수에 따라 강형 문법으로 매핑하기 위한 음성 인식기(speech recognizer) - 상기 음성 인식기는 상기 매핑에 기초하여 인식 출력(recognition output)을 생성함 - 를 포함하는, 자연 언어 사용가능 애플리케이션으로의 자연 언어 입력을 해석하기 위한 시스템. '에 대한 기술이 개시된 바 있다.
대한민국 등록특허 10-2027141(등록일자 2019.09.25)에는, ' 자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 단계; 및 사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 단계;를 포함하며,
상기 학습모델을 생성하는 단계는,
CNN(Convolutional Neural Network)을 통한 기계학습을 수행하는 단계;를 포함하며,
상기 CNN은, 특정 프로그램 코드에 대한 레이블에 자연어 문구를 할당한 자연어 문구와 프로그램 코드 간의 매핑관계를 수치화한 이미지를 입력 받아 학습을 수행하며,
상기 매핑관계를 수치화한 각각의 이미지는, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정되며,
상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하며, 상기 이미지 슬라이스는 바이너리 이미지, 그레이 스케일 이미지, 컬러이미지 또는 이들의 조합을 포함하는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법. '에 대한 기술이 개시된 바 있다.
대한민국 등록특허 10-1213890(등록일자 2012.12.12) 대한민국 등록특허 10-2027141(등록일자 2019.09.25)
본 발명은 손을 이용하여 타이핑을 하지 않더라도 사용자의 음성을 인식하여 자동으로 코딩이 이루어지도록 하는 것으로서, 더욱 상세하게는 사용자의 입력된 음성을 텍스트로 변환한 후, 변환한 텍스트를 다시 코드로 변환하는 과정을 거침으로써 손을 사용하지 않고 음성만으로 코드작성이 완료될 수 있도록 하는, 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드작성 방법을 제공하고자 하는 것을 발명의 목적으로 한다.
상기 목적을 달성하기 위하여,
본 발명은 사용자의 음성신호를 입력하는 음성입력부와,
상기 음성입력부와 전기적으로 연결되는 코드구현부를 포함하되,
상기 코드구현부는 인터엑티브 형식의 라이브 코드를 제공하는 웹 베이스 어플리케이션이 설치되고, GUI(Graphical User Interface) 환경에서 구동되는 것으로서,
상기 음성입력부를 통해 입력된 음성 파일을 텍스트 문자로 변환하는 문자변환부와,
상기 문자변환부를 통해 변환된 문자를 출력하는 문자출력부와,
상기 문자출력부를 통해 출력된 문자를 코드로 변환하는 코드변환부와,
상기 코드변환부를 통해 생성된 코드를 상기 웹 베이스 어플리케이션으로 전송하여 코딩을 실행하는 코드실행부를 포함하는, 음성인식을 이용한 자동코드 작성시스템을 제공한다.
그리고,
음성입력부를 통해 사용자의 음성신호를 입력받되, GUI(Graphical User Interface) 환경을 통해 상기 사용자에게 입력한 음성신호가 정확한 정보인지를 확인하는 절차를 거쳐 부정확한 경우에는 음성신호의 재입력을 유도하고, 정확한 경우에는 음성파일을 생성하는 단계(S10)와,
상기 단계(S10)를 거쳐 생성된 음성파일의 음성정보를 문자변환부를 통해 텍스트 문자로 변환하는 단계(S20)와,
상기 문자변환부를 통해 변환된 텍스트 문자를 문자출력부를 통해 출력한 후, 상기 출력된 문자를 코드변환부를 통해 코드로 변환하는 단계(S30)와,
인터엑티브 형식의 라이브 코드를 제공하는 웹 베이스 어플리케이션을 실행한 후, 상기 단계(S30)를 거쳐 변환된 코드를 상기 어플리케이션에 전송하여 코딩을 실행한 후 그 결과를 모니터를 통해 표출하는 단계(S40)를 포함하는, 음성인식을 이용한 자동코드 작성시스템을 이용한 자동코드작성방법을 제공한다.
본 발명에 따른 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드작성 방법은 다음의 효과를 갖는다.
첫째. 종래 일방적인 주입식 교육방식, 난이도가 있는 코딩 교육 등의 이유로 인해 쉽게 코딩 교육을 포기하는 학생들에게 음성을 통한 자동코딩 방식을 도입하여 손을 사용하지 않더라도 코딩을 접할 수 있어 학생들에게 충분히 흥미를 심어주고 보다 쉽게 접근할 수 있도록 한다는 장점을 갖는다.
둘째. 텍스트(Source) 데이터에서 변수, 숫자 등을 전부 알파벳(A, B, C, ...) 순서대로 치환하고, 코드(Target) 데이터에서 변수, 숫자 등을 전부 한글(가, 나, 다, ...) 순서대로 치환하는 2가지 규칙을 사용하여 학습데이터가 기존 딥러닝의 학습데이터의 양보다 적더라도 데이터들이 규칙을 이루고 있기 때문에 충분한 학습이 이루어질 수 있다는 장점을 갖는다.
도 1은 본 발명에 따른 음성인식을 이용한 자동코드 작성시스템의 전체 구성도.
도 2는 본 발명에 따른 음성인식을 이용한 자동코드 작성시스템의 개념도.
도 3은 본 발명의 음성인식을 이용한 자동코드 작성시스템을 통해 마이크의 스위치를 물리적으로 ON/OFF 함에 따라 음성을 인식할 범위를 제어하는 상태를 예시적으로 도시한 도면.
도 4는 시퀀스 투 시퀀스(sequence-to-sequence) 모델을 나타낸 개념도이다.
도 5는 본 발명의 음성인식을 이용한 자동코드 작성시스템을 이용한 플로우 다이어그램.
도 6은 워드2벡(Word2Vec) 모델(Mikolov et al., NAACL HLT, 2013)을 나타낸 개념도.
도 7은 본 발명의 음성인식을 이용한 자동코드 작성시스템을 구성하는 프로그램을 실행할 때의 인터페이스 화면을 나타낸 도면.
도 8은 상기 도 7에 도시된 인터페이스 화면에서 사용자가 입력한 음성이 정확한지 사용자에게 묻는 메시지 박스(Msgbox)가 표출된 상황을 도시한 도면.
도 9는 본 발명에 따른 음성인식을 이용한 자동코드 작성시스템을 구성하는 프로그램을 통해 텍스트가 코드로 번역되고, 그 결과가 주피터 노트북(Jupyter Notebook)으로 전송되는 과정을 도시한 도면.
도 10은 상기 도 7 내지 도 9에 도시된 도면을 일련의 단계(step 1~3)별로 도시한 도면.
이하, 본 발명에 따른 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드작성 방법을 도면과 함께 구체적으로 살펴보도록 한다.
도 1에 도시된 바와 같이,
본 발명에 따른 음성인식을 이용한 자동코드 작성시스템(1)은
사용자의 음성신호를 입력하는 음성입력부(10)와,
상기 음성입력부(10)와 전기적으로 연결되는 코드구현부(20)를 포함하되,
상기 코드구현부(20)는 인터엑티브 형식의 라이브 코드를 제공하는 웹 베이스 어플리케이션이 설치되고, GUI(Graphical User Interface) 환경에서 구동되는 것으로서,
상기 음성입력부(10)를 통해 입력된 음성 파일을 텍스트 문자로 변환하는 문자변환부(201)와,
상기 문자변환부(201)를 통해 변환된 문자를 출력하는 문자출력부(202)와,
상기 문자출력부(202)를 통해 출력된 문자를 코드로 변환하는 코드변환부(203)와,
상기 코드변환부(203)를 통해 생성된 코드를 상기 웹 베이스 어플리케이션으로 전송하여 코딩을 실행하는 코드실행부(204)를 포함한다.
상기 자동코드 작성시스템(1)은 도 2에 도시된 바와 같이, 음성인식을 이용하여 코딩을 보다 쉽게 습득할 수 있도록 진입 장벽을 낮춰주는 것으로서, 손을 사용하지 않더라도 코딩을 배우고 습득하여 활용할 수 있다는 장점을 갖는다.
구현과정에 대한 예를 들자면,
" 만약 a가 3이상이면 바나나를 출력하고 아니면 사과를 출력해줘 "라는 음성을 입력하면, 이와 같이 입력된 음성은 텍스트 데이터로 변환된다.
다음으로, 이와 같이 변환된 텍스트 데이터는 " if a >= 3 : print('바나나') else : print('사과') "와 같이 파이썬 코드(Python code)로 변환하여 주피터 노트북과 같은 인터엑티브 형식의 라이브 코드를 제공하는 웹 베이스 어플리케이션에 자동으로 입력되면서 코딩이 이루어진다.
이와 같이 해당 코드는 주피터 노트북(Jupyter Notebook)과 같은 해당 언어의 네비게이터(Navigator) 환경에 연동되도록 한다.
상기 주피터 노트북은 IPython과 같이 인터엑티브 형식의 라이브 코드를 제공하는 웹 베이스 어플리케이션이다. 주피터 노트북을 사용하면 웹 브라우저 안에서 실행하고 싶은 코드를 입력하고 그 결과를 바로 확인할 수 있다. 주피터 노트북은 오픈소스이므로 무료로 다운받아 사용할 수 있다.
이하, 상기 자동코드 작성시스템(1)을 구성하는 각 부 구성에 대해 자세하게 살펴보도록 한다.
상기 음성입력부(10)는 도 3에 도시된 바와 같이 음성입력장치가 'ON' 상태인 경우에는 음성 신호를 계속 저장하고, 'OFF' 상태인 경우에는 녹음이 중지되었다는 것을 인지하여 녹음파일을 자동으로 생성한다.
또한 음성정보의 정확도 판단하여 부정확한 경우에는 음성을 재입력하도록 표출하는 음성정확도확인부(101)를 포함한다.
구체적인 예로서, 자동코드 작성시스템(1)을 구성하는 음성입력장치, 예를 들어 마이크, 로 사용자가 원하는 명령어를 입력하고 입력신호가 끊기면 음성신호를 텍스트로 변환하고, 사용자에게 변환된 텍스트가 맞는지를 확인하는 메시지 박스(Msgbox)가 GUI(Graphical User Interface)를 통해 표출된다.
만일, 메시지 박스(Msgbox)를 통해 사용자가 '예'를 클릭하면, 텍스트가 코드로 변환되고 그 결과가 화면상에 표출된다.
'아니오'를 클릭하면 초기화되어 사용자로부터 다시 음성신호를 받는다.
상기 음성입력부(10)를 통해 입력된 음성신호는 문장 내에서 엘리먼트를 추출하기 위하여 아래의 규칙들을 갖는다.
첫째. 변수명 앞에는 '변수'를 사용한다.
일례로, " 바나나는 10으로 초기화해줘 "는 " 변수 바나나는 10으로 초기화해줘 "이다.
둘째. 함수명 앞에는 '함수'를 사용한다.
셋째. 매개변수 앞에는 '매개변수'를 사용한다.
넷째. 인자 앞에는 '인자'를 사용한다.
상기 둘째 내지 넷째의 일례로, " 파인애플을 a와 b로 만들어줘 "는 " 함수 파인애플을 매개변수 a와 매개변수 b로 만들어줘 "이다.
상기 음성입력부(10)를 통해 입력되는 문장 데이터(Source data)와 코드 데이터(Target data)는 다음의 표 1과 같이 6가지로 분류되어 수집된다.
Source Target
문장 데이터 코드 데이터
변수표현 A, B, C, ... 가, 나, 다, ...



구분
반복문 예) A가 B 이상일 때까지 돌려줘 예) white 가 〉〓 나:
조건문 예) 만약 A가 B 보다 크거나 같다면 예) if 가 〉〓 나:
변수입력 예) A는 B로 초기화해줘 예) 가 = 나
입출력 예) A를 출력해줘 / 문자열 A를 출력해줘 예) print(A)/print("A")
함수 예) 함수 A인데 인자 B 포함해줘 예) def 가 (나):
기타명령어 예) 탭해줘 / 엔터쳐줘 / ... 예) tab/enter/...
그리고 상기 문장 데이터(Source data)와 코드 데이터(Target data)는 다음의 2가지 규칙을 통해 가공된다.
규칙 1. 문장(Source) 데이터에서 변수, 숫자 등을 전부 알파벳(A, B, C, ...)순대로 치환한다.
예를 들어, " 바나나는 10으로 초기화해줘 "는 " A는 B으로 초기화 해줘 "
예를 들어, " 만약 바나나가 변수 10보다 크다면 "은 " 만약 A가 B보다 크다면 "으로 치환한다.
규칙 2. 코드(Target) 데이터에서 변수, 숫자 등을 전부 한글(가, 나, 다, ...)순대로 치환한다.
예를 들어, " banana = 10 "은 " 가 = 나 "
예를 들어, " if banana > 10 : "은 " if 가 > 나 : "로 치환한다.
이와 같은 2가지 규칙을 이용함으로써 학습데이터가 기존 딥러닝의 학습데이터의 양보다 적다고 하더라도 데이터들이 규칙을 이루고 있기 때문에 충분한 학습을 가능하게 한다.
다만, 상기 2가지 규칙을 적용하게 되면 변수, 숫자 등을 어떻게 찾아야 할지와 어떻게 다시 바꿔야하는지에 대한 문제가 발생하게 되며, 이와 같은 문제는 다음을 통해 해결한다.
변수 및 숫자 등을 찾기 위해, 그리고 다시 복원하기 위해 다음과 같은 방법을 사용한다.
첫째. 입력 문장에서 영어와 숫자 변수들을 임시 변수 리스트에 저장한다.
일례로, ' 만약 변수 a가 3보다 작다면 '이라는 문장이 입력된다면 임시 변수 리스트에 'a'와 '3'을 저장한다.
이때, 'a가'에서 'a'와 같이, 변수 다음으로 나오는 음절 중 알파벳을 추출한다.
또한 '바나나에다가'에서 '바나나'와 같이, 만약 알파벳이 없다면 한글 변수이므로 변수 다음으로 나오는 음절 중 형태로 분석기(konipy)를 통해 명사만 추출한다.
둘째. 기존의 변수 자리에 알파벳순으로 치환하여 입력 문장으로 전달한다.
일례로, ' 만약 변수 바나나가 3보다 작다면 '은 ' 만약 변수 A가 B보다 작다면 '으로 치환하여 입력 문장으로 전달한다.
데이터는 이와 같이 임의의 순서로 변수가 할당된 입력 문장과 그에 대응하는 임의의 한글 변수가 할당된 출력 문장으로 쌍을 이루고 있다.
일례로, [변수 A를 출력해줘, print(가)]
셋째. 출력된 문장은 데이터를 따라 변수의 자리에는 한글 변수로 출력한다.
일례로, '만약 변수 A가 B보다 작다면 "은 'if 가 < 나'이다.
넷째. 한글 변수 자리에 기존의 변수들을 순서대로 다시 치환한다.
일례로, ' if 가<나 '는 ' if a<3 '로 치환한다.
이와 같이 변수 또는 숫자를 변수로 바꾸는 이유는 변수와 숫자는 순서가 있기 때문에 특정한 정렬 과정을 거치지 않더라도 위치를 찾기 쉬운 특성이 있기 때문이다.
그리고 학습 데이터가 모두 같은 임의의 변수로 이루어져 있기 때문에 동일한 문장을 다른 변수들로 학습시키지 않아도 된다는 장점이 있다. 또한 순서가 중요하기 때문에 도 4에 도시된 Seq2seq 모델의 장점을 극대화시킬 수 있다.
다음으로, 음성인식을 이용한 자동코드 작성시스템을 이용한 자동코드 작성방법에 대해 살펴보도록 한다.
도 5에 도시된 바와 같이, 본 발명에 따른 자동코드 작성방법은 음성입력부를 통해 사용자의 음성신호를 입력받되, GUI(Graphical User Interface) 환경을 통해 상기 사용자에게 입력한 음성신호가 정확한 정보인지를 확인하는 절차를 거쳐 부정확한 경우에는 음성신호의 재입력을 유도하고, 정확한 경우에는 음성파일을 생성하는 단계(S10)와,
상기 단계(S10)를 거쳐 생성된 음성파일의 음성정보를 문자변환부(201)를 통해 텍스트 문자로 변환하는 단계(S20)와,
상기 문자변환부(201)를 통해 변환된 텍스트 문자를 문자출력부(202)를 통해 출력한 후, 상기 출력된 문자를 코드변환부(40)를 통해 코드로 변환하는 단계(S30)와,
인터엑티브 형식의 라이브 코드를 제공하는 웹 베이스 어플리케이션을 실행한 후, 상기 단계(S30)를 거쳐 변환된 코드를 상기 어플리케이션에 전송하여 코딩을 실행한 후 그 결과를 모니터를 통해 표출하는 단계(S40)를 포함한다.
텍스트를 코드로 변환하기 위한 기계 번역 모델은 도 3에 도시된 바와 같이 attention기반의 시퀀스 투 시퀀스(sequence-to-sequence) 모델을 사용한다.
상기 시퀀스 투 시퀀스(sequence-to-sequence) 모델은 2개의 GRU셀로 구성되어 있으며, 도 4에서 Encoder의 GRU셀을 통해 ABC를 순차적으로 입력받는다.
오른쪽의 <go>WXYZ를 입력으로 받는 것은 Decoder의 GRU셀이다. ABC라고 입력했을 경우, WXYZ라고 대답하도록 훈련하고 싶다면 인코더에 ABC를 순서대로 넣는다. 그리고 <go>WX YZ를 디코더에 순차적으로 입력하고 각각 출력이 WXYZ<eos>가 되도록 학습한다.
즉, ABC<go>WXYZ -> ___WXYZ<eos>으로 훈련을 시키는 것이다. 여기서 <go>는 문장의 시작을, <eos>는 문장의 끝을 나타내며, 그리고 각 단어는 워드2벡(Word2Vec) 모델을 사용하여 벡터로 표현하였다.
상기 워드2벡(Word2Vec) 모델은 단어를 벡터화할 때 단어의 문맥적 의미를 보존하기 때문에 효율이 좋다. 도 6에 도시된 바와 같이, MAN과 WOMAN 사이의 거리는 KING과 QUEEN 거리와 유사함을 볼 수 있다.
벡터로 바뀐 단어들은 코사인 유사도(cosine similarity)를 사용하여 유사도를 계산한 후 그 크기가 작을수록 의미가 비슷한 단어라고 해석한다
따라서 텍스트를 코드로 변환하는 데에 워드2벡(Word2Vec) 기계번역 모델을 사용하였으며, 워드임베딩으로 워드2벡(Word2Vec)을 사용한다. 해당 모델은 은닉층은 256개, 학습 횟수는 30000번으로 학습한다.
도 1 내지 도 3 및 도 7 내지 도 10에 도시된 내용을 참고하여, 음성인식을 이용한 자동코드 작성시스템(1)의 구현과정의 일례를 살펴보도록 한다.
이때 도 7은 본 발명의 음성인식을 이용한 자동코드 작성시스템을 구성하는 프로그램을 실행할 때의 인터페이스 화면을 나타낸 도면이고, 도 8은 상기 도 7에 도시된 인터페이스 화면에서 사용자가 입력한 음성이 정확한지 사용자에게 묻는 메시지 박스(Msgbox)가 표출된 상황을 도시한 도면이며, 도 9는 본 발명에 따른 음성인식을 이용한 자동코드 작성시스템을 구성하는 프로그램을 통해 텍스트가 코드로 번역되고, 그 결과가 주피터 노트북(Jupyter Notebook)으로 전송되는 과정을 도시한 도면이고, 도 10은 상기 도 7 내지 도 9에 도시된 도면을 일련의 단계(step 1~3)별로 도시한 도면이다.
본 발명에 따른 음성인식을 이용한 자동코드 작성시스템(1)은 마이크가 데스크탑 또는 노트북의 단말기에 연결된 상태이고, 상기 단말기에는 주피터 노트북이 설치가 되어 있어야 한다. 또한 모든 과정은 그래픽유저인터페이스(GUI)환경에서 일어난다.
1. 본 발명의 음성인식을 이용한 자동코드 작성시스템(1)을 구동하는 프로그램을 실행하면 도 7에 도시된 바와 같이 그래픽유저인터페이스(GUI)가 나타난다.
2. 도 1 내지 도 3에 도시된 바와 같이, 사용자는 상기 마이크를 통해 본인이 원하는 명령어를 말한다.
예를 들어, " 만약 바나나가 사과보다 크다면 "의 음성을 마이크를 통해 입력하면, 음성신호는 문장 내에서 엘리먼트를 추출하기 위하여 변수 앞에 "변수"가 붙어서 다음의 문장으로 표출된다. " 만약 변수 바나나가 변수 사과보다 크다면 "
이와 같이 음성신호가 입력되면 텍스트로 변환되고, 변환된 텍스트가 맞는지 메시지 박스(Msgbox)가 도 8과 같이 보여진다.
상기 메시지 박스(Msgbox)에는 입력한 텍스트가 맞는지 또는 틀리는지에 따라 '예'와 '아니오'를 선택할 수 있는 버튼이 활성화된다.
'아니오'를 선택하여 다시 음성신호를 입력하게 되고,
'예'를 선택하면 텍스트가 코드로 변환되고, 변환된 코드는 리스트 박스(list box)에 표출된다. 그리고 도 9에 도시된 바와 같이 상기 리스트 박스(list box)에 표출됨과 동시에 자동으로 주피터노트북에 출력된다. 도 10은 이와 같이 상기 도 7 내지 도 9에 도시된 일련의 과정을 정리하여 보인 도면이다.
본 발명에 따른 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법은 종래 일방적인 주입식 교육방식, 난이도가 있는 코딩 교육 등의 이유로 인해 쉽게 코딩 교육을 포기하는 학생들에게 음성을 통한 자동코딩 방식을 도입하여 손을 사용하지 않더라도 코딩을 접할 수 있어 학생들에게 충분히 흥미를 심어주고 보다 쉽게 접근할 수 있도록 한다는 장점을 갖고 있어 산업상 이용가능성이 크다.
1 : 자동코드 작성시스템
10 : 음성입력부
20 : 문자변환부
30 : 문자출력부
40 : 코드변환부
50 : 코드출력부

Claims (5)

  1. 사용자의 음성신호를 입력하되, 음성입력장치가 'ON' 상태인 경우에는 음성 신호를 계속 저장하고, 'OFF' 상태인 경우에는 녹음이 중지되었다는 것을 인지하여 녹음파일을 자동으로 생성하며,
    입력된 음성신호는 변수명 앞에는 '변수'를, 함수명 앞에는 '함수'를, 매개변수 앞에는 '매개변수'를, 인자 앞에는 '인자'를 사용하는 규칙들에 기반하여 문장 내에서 엘리먼트를 추출하는 음성입력부(10);
    상기 음성입력부(10)와 전기적으로 연결되어, 상기 음성입력부(10)를 통해 입력되는 문장 데이터(Source data)와 코드 데이터(Target data)를 문장(Source) 데이터에서 변수, 숫자를 전부 알파벳 순서대로 치환하는 제1규칙과, 코드(Target) 데이터에서 변수, 숫자를 전부 한글 순서대로 치환하는 제2규칙을 통해 가공되는 코드구현부(20)를 포함하되,
    상기 코드구현부(20)는 인터엑티브 형식의 라이브 코드를 제공하는 웹 베이스 어플리케이션이 설치되고, GUI(Graphical User Interface) 환경에서 구동되는 것으로서,
    상기 음성입력부(10)를 통해 입력된 음성 파일을 텍스트 문자로 변환하되, 사용자에게 변환된 텍스트가 맞는지를 확인하는 메시지 박스(Msgbox)가 GUI(Graphical User Interface)를 통해 표출되고, 상기 메시지 박스(Msgbox)를 통해 사용자가 '예'를 클릭하면, 텍스트가 코드로 변환되어 그 결과가 화면상에 표출되도록하고, '아니오'를 클릭하면 초기화되어 사용자로부터 다시 음성신호를 받도록 하는 문자변환부(201)와,
    상기 문자변환부(201)를 통해 변환된 문자를 출력하는 문자출력부(202)와,
    상기 문자출력부(202)를 통해 출력된 문자를 코드로 변환하는 코드변환부(203)와,
    상기 코드변환부(203)를 통해 생성된 코드를 상기 웹 베이스 어플리케이션으로 전송하여 코딩을 실행하는 코드실행부(204)를 포함하는 것을 특징으로 하는 음성인식을 이용한 자동코드 작성시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 청구항 1의 음성인식을 이용한 자동코드 작성시스템을 통해 구현되는 것으로서,
    음성입력장치가 'ON' 상태인 경우에는 음성 신호를 계속 저장하고, 'OFF' 상태인 경우에는 녹음이 중지되었다는 것을 인지하여 녹음파일을 자동으로 생성하는 음성입력부(10)를 통해 사용자의 음성신호를 입력받되, GUI(Graphical User Interface) 환경을 통해 상기 사용자에게 입력한 음성신호가 정확한 정보인지를 확인하는 절차를 거쳐 부정확한 경우에는 음성신호의 재입력을 유도하고, 정확한 경우에는 음성파일을 생성하고,
    상기 입력된 음성신호는 문장 내에서 엘리먼트를 추출하되, 변수명 앞에는 '변수'를 사용하고, 함수명 앞에는 '함수'를 사용하고, 매개변수 앞에는 '매개변수'를 사용하고, 인자 앞에는 '인자'를 사용하는 규칙들에 기반하여 엘리먼트를 추출하는 단계(S10)와,
    상기 단계(S10)를 거쳐 생성된 음성파일의 음성정보를 문자변환부(201)를 통해 텍스트 문자로 변환하되, 사용자에게 변환된 텍스트가 맞는지를 확인하는 메시지 박스(Msgbox)가 GUI(Graphical User Interface)를 통해 표출되고, 상기 메시지 박스(Msgbox)를 통해 사용자가 '예'를 클릭하면, 텍스트가 코드로 변환되어 그 결과가 화면상에 표출되도록하고, '아니오'를 클릭하면 초기화되어 사용자로부터 다시 음성신호를 받도록 하는 단계(S20)와,
    상기 문자변환부(201)를 통해 변환된 텍스트 문자를 문자출력부(202)를 통해 출력한 후, 상기 출력된 문자를 코드변환부(40)를 통해 코드로 변환하되, 문장(Source) 데이터에서 변수, 숫자를 전부 알파벳 순서대로 치환하는 제1규칙과, 코드(Target) 데이터에서 변수, 숫자를 전부 한글 순서대로 치환하는 제2규칙을 통해 가공하는 단계(S30)와,
    인터엑티브 형식의 라이브 코드를 제공하는 웹 베이스 어플리케이션을 실행한 후, 상기 단계(S30)를 거쳐 변환된 코드를 상기 어플리케이션에 전송하여 코딩을 실행한 후 그 결과를 모니터를 통해 표출하는 단계(S40)를 포함하는 것을 특징으로 하는 음성인식을 이용한 자동코드 작성시스템을 이용한 자동코드작성방법.


KR1020200130799A 2020-10-12 2020-10-12 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법 KR102396187B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200130799A KR102396187B1 (ko) 2020-10-12 2020-10-12 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200130799A KR102396187B1 (ko) 2020-10-12 2020-10-12 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법

Publications (3)

Publication Number Publication Date
KR20220048075A KR20220048075A (ko) 2022-04-19
KR102396187B1 true KR102396187B1 (ko) 2022-05-09
KR102396187B9 KR102396187B9 (ko) 2022-07-06

Family

ID=81391734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200130799A KR102396187B1 (ko) 2020-10-12 2020-10-12 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법

Country Status (1)

Country Link
KR (1) KR102396187B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101537693B1 (ko) * 2008-11-24 2015-07-20 엘지전자 주식회사 단말기 및 그 제어 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460996B2 (en) 2005-06-23 2008-12-02 Microsoft Corporation Using strong data types to express speech recognition grammars in software programs
KR101957277B1 (ko) * 2017-02-14 2019-03-12 윤종식 음성 인식을 이용한 코딩시스템 및 코딩방법
KR102027141B1 (ko) 2017-11-28 2019-11-04 윤종식 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101537693B1 (ko) * 2008-11-24 2015-07-20 엘지전자 주식회사 단말기 및 그 제어 방법

Also Published As

Publication number Publication date
KR20220048075A (ko) 2022-04-19
KR102396187B9 (ko) 2022-07-06

Similar Documents

Publication Publication Date Title
Black et al. Statistically-driven computer grammars of English: The IBM/Lancaster approach
Shaalan 1 An intelligent computer assisted language learning system for Arabic learners
CN110797010A (zh) 基于人工智能的问答评分方法、装置、设备及存储介质
US8137105B2 (en) Chinese/English vocabulary learning tool
CN110532573A (zh) 一种翻译方法和系统
US20070055520A1 (en) Incorporation of speech engine training into interactive user tutorial
CN114511860B (zh) 一种差异描述语句生成方法、装置、设备及介质
WO2008048090A2 (en) Method, device, computer program and computer program product for processing linguistic data in accordance with a formalized natural language.
US11907665B2 (en) Method and system for processing user inputs using natural language processing
KR20140094919A (ko) 문장 형식별 구성요소 배열 및 확장에 따른 언어 교육 시스템 및 방법과 기록 매체: 팩토리얼 언어 교육법
Jamil Design and implementation of an intelligent system to translate arabic text into arabic sign language
CN115952263A (zh) 一种融合机器阅读理解的问答方法
Shynkarenko et al. Constructive model of the natural language
KR102396187B1 (ko) 음성인식을 이용한 자동코드 작성시스템 및 이를 이용한 자동코드 작성방법
Winiwarter Learning transfer rules for machine translation from parallel corpora
Biermann et al. A voice-and touch-driven natural language editor and its performance
CN115374784A (zh) 一种多模态信息选择性融合的中文命名实体识别方法
CN115298736A (zh) 用于数据输入的语音识别和训练
Sonntag Towards combining finite-state, ontologies, and data driven approaches to dialogue management for multimodal question answering
Cuartero-Olivera et al. Reading and writing mathematical notation in e-learning environments
US20230083096A1 (en) Context based language training system, device, and method thereof
WO2001098941A1 (en) Method of sentence analysis
US11830381B2 (en) Information processing apparatus, information processing method, and recording medium
Silva et al. Computational linguistics: Analysis of the functional use of microsoft text word processor text corrector
Rampriya et al. Speech Recognition System for Upper-Limb Impairment: A Text Editor for Programming via Voice

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]