KR20190061488A - A program coding system based on artificial intelligence through voice recognition and a method thereof - Google Patents

A program coding system based on artificial intelligence through voice recognition and a method thereof Download PDF

Info

Publication number
KR20190061488A
KR20190061488A KR1020170159924A KR20170159924A KR20190061488A KR 20190061488 A KR20190061488 A KR 20190061488A KR 1020170159924 A KR1020170159924 A KR 1020170159924A KR 20170159924 A KR20170159924 A KR 20170159924A KR 20190061488 A KR20190061488 A KR 20190061488A
Authority
KR
South Korea
Prior art keywords
natural language
program code
learning
size
speech recognition
Prior art date
Application number
KR1020170159924A
Other languages
Korean (ko)
Other versions
KR102027141B1 (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 KR1020170159924A priority Critical patent/KR102027141B1/en
Publication of KR20190061488A publication Critical patent/KR20190061488A/en
Application granted granted Critical
Publication of KR102027141B1 publication Critical patent/KR102027141B1/en

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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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/16Speech classification or search using artificial neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Acoustics & Sound (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

The present invention relates to a program coding system based on artificial intelligence through voice recognition and a method thereof. The program coding system based on artificial intelligence through voice recognition recognizes voice of a user to convert the voice into a natural language and automatically generates, improves, and optimizes programming results by the voice of the user with application of algorithms to artificial intelligence including deep learning when the program coding system generates a programming code corresponding to the converted natural language.

Description

음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법{A PROGRAM CODING SYSTEM BASED ON ARTIFICIAL INTELLIGENCE THROUGH VOICE RECOGNITION AND A METHOD THEREOF}FIELD OF THE INVENTION [0001] The present invention relates to an artificial intelligence program coding system and a method thereof,

본 발명은 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 사용자의 음성을 인식하여 자연어로 변환하고, 상기 변환된 자연어에 대응하는 프로그래밍 코드를 생성할 때, 딥러닝을 포함한 인공지능을 알고리즘을 적용하여 프로그래밍 결과가 사용자의 음성에 의해서 자동으로 생성, 개선 및 최적화되도록 하는 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법에 관한 것이다.The present invention relates to an artificial intelligence program coding system and a method thereof. More particularly, the present invention relates to a system and method for recognizing a user's voice and generating a programming code corresponding to the converted natural language, The present invention relates to an artificial intelligence program coding system and a method thereof using speech recognition, in which programming results are automatically generated, improved and optimized by a user's voice by applying an artificial intelligence including an artificial intelligence.

디지털 통신기술의 발달과 컴퓨팅 성능의 개선에 따라 복잡한 딥러닝에 기반한 인공지능 알고리즘의 성공적인 적용 사례도 늘어가고 있는 추세이다. 특히 기계학습의 경우 계산량이 너무 많아 과거에는 실생활에 적용하기 어려운 것으로 여겨졌으나, 최근에는 실생활에 딥러닝이 활용되는 경우가 많으며, 그 적용분야도 점점 확대되고 있는 추세이다.As the development of digital communication technology and the improvement of computing performance, the successful application of artificial intelligence algorithm based on complicated deep learning is increasing. Especially, in the case of machine learning, it is considered that it is difficult to apply it to real life in the past due to an excessive amount of computation. However, in recent years, deep learning has been utilized in real life and its application field is increasing.

이러한 인공지능의 근간은 컴퓨터 프로그래밍에 의해서 실현되는 것이기 때문에 소프트웨어에 대한 전문적인 지식을 갖춘 전문가를 양성하는 것이 필요하다. 따라서 컴퓨터의 활용력을 높이기 위한 각종 소프트웨어 교육의 필요성이 점차 증가하고 있으며, 웹 프로그램, 애플리케이션 프로그램, 빅데이터 분석, 데이터 마이닝, 통계분석 등과 관련한 소프트웨어를 직접 제작하고 것에 대한 사용자들의 관심도가 높아지고 있다.Since the basis of such artificial intelligence is realized by computer programming, it is necessary to train experts with expert knowledge of software. Therefore, the need for various kinds of software education for increasing the power of computers is increasing, and users are increasingly interested in creating software related to web programs, application programs, big data analysis, data mining, and statistical analysis.

이처럼 각종 소프트웨어에 대한 교육의 수요가 크게 늘어나고 있지만, 오프라인 교육의 경우, 사용자들이 특정 장소 및 시간에 교육을 받아야 하는 특성상 원하는 시간에 자유롭게 교육을 받지 못하였고, 교육을 담당하는 인력과 양질의 교재나 도구가 부족함은 물론, 교육공간도 많이 부족한 실정이며, 교육비용도 과다하게 소요되는 문제가 있었다.Although the demand for education for various kinds of software has been greatly increased, offline education has not been freely educated at a desired time due to the fact that users have to be educated at a certain place and time. Also, Not only is there a lack of tools, but also a lot of educational space is lacking, and there is a problem that the education cost is too high.

이러한 문제를 해결하기 위하여 대량의 교육, 양질의 교육, 실습 위주의 교육, 시공간의 제약극복 등의 여러 가지 장점을 가진 온라인 교육이 활성화되고 있으며, 스마트폰, 태블릿 등의 모바일 형태의 사용자 단말기를 통해 이동 중에도 자유롭게 교육 관련 콘텐츠를 이용할 수 있는 스마트 러닝(smart learning) 서비스가 각광받고 있다.In order to solve these problems, online education with various advantages such as mass education, high quality education, practice-oriented education, overcoming limitations of time and space is being actively promoted, and a mobile user terminal such as a smart phone or a tablet Smart learning services that can use educational contents freely on the move are attracting attention.

그러나 사용자 단말기를 통해 온라인 교육을 수행할 때, 실습이나 코딩작업이 필수인 프로그래밍과 관련된 학습 콘텐츠(예를 들어, R 프로그램, Python, Java, C 등)를 이용하는 경우 사용자들은 사용자 단말기에 구비된 키보드가 작기 때문에 프로그램 실습이나 코딩작업을 위한 데이터의 입력이 쉽지 않고, 경우에 따라 키보드를 별도로 연결하여 사용하여야 하는 불편함이 있었으며, 결과적으로 모바일 환경에서 프로그램 학습을 원활하게 수행하지 못하게 되는 문제점이 있었다.However, in the case of using learning contents (for example, R program, Python, Java, C, etc.) related to programming in which practice or coding work is essential when performing online education through a user terminal, It is not easy to input data for a program practice or a coding work and it is inconvenient to use a keyboard separately in some cases. As a result, there is a problem that program learning can not be smoothly performed in a mobile environment .

또한, 현재 온라인상에서 이루어지고 있는 대부분의 소프트웨어에 대한 교육은 일반인들을 대상으로 하는 것이기 때문에 거동이 불편한 장애인들의 경우 소프트웨어에 관심이 있더라도 소프트웨어에 관련된 실습교육을 받는데 한계가 있었다.In addition, most of the software that is currently on-line is intended for the general public. Therefore, even if they are interested in software, disabled people with limited mobility have limitations in receiving training on software.

아울러 소프트웨어를 강의하는 사람에 따라 교육의 질에 대한 차이가 많이 있으며, 정보의 흐름이 워낙 빠르고 그 정보를 접하는 사람의 능력도 천차만별이기 때문에 프로그램을 교육하는 사람보다 프로그램을 배우는 사람이 더 많은 지식을 가지고 있는 경우가 흔히 발생하고 있다. 즉, 이제는 프로그램에 관한 한 교육자와 피교육자가 따로 있는 것이 아니라, 프로그램에 관심이 있는 사람들이 상호 정보를 교류하면서 스스로 배워가는 수평적인 교육이 필요한 시점이다.In addition, there are many differences in the quality of education depending on the lecturer of software, and because the flow of information is so fast and the ability of the person to contact the information is very different, It is often the case. In other words, it is now time for educators and educators to be involved in the program, as well as for the people who are interested in the program to exchange their information and learn their own level.

따라서 본 발명에서는 사용자의 음성을 인식하여 자연어 처리를 수행하고, 이를 토대로 프로그래밍 코드를 생성하여 각종 프로그래밍 언어를 사용한 프로그래밍 작업을 자동으로 처리함으로써, 키 입력의 불편함을 해소하여 이동 중에도 클라우드 환경에서 프로그램 실습이나 코딩작업을 수행할 수 있으며, 특히 딥러닝을 통해서 프로그래밍 결과가 점점 개선되도록 함으로써, 바로 제품화하여도 손색이 없을 정도의 최적화된 프로그램 코드를 제공하는 방안을 제시하고자 한다.Accordingly, the present invention recognizes a user's speech, performs natural language processing, generates programming codes based on the generated speech, automatically processes programming tasks using various programming languages, thereby eliminating the inconvenience of key input, We can do practice or coding work, and in particular, we suggest a way to provide optimized program code that can be easily commercialized by gradually improving programming results through deep learning.

다음으로 본 발명의 기술분야에 존재하는 선행기술에 대하여 간단하게 설명하고, 이어서 본 발명이 상기 선행기술에 비해서 차별적으로 이루고자 하는 기술적 사항에 대해서 기술하고자 한다.Next, a brief description will be given of the prior arts that exist in the technical field of the present invention, and technical matters which the present invention intends to differentiate from the prior arts will be described.

먼저 한국공개특허 제2002-0030156호(2002.04.24.)는 컴퓨터의 운영 시스템 및 각종 응용프로그램을 키보드 또는 마우스와 같은 손조작에 의한 입력장치 없이도 음성인식기술을 이용하여 사용자의 음성명령만으로 제어할 수 있도록 함으로써 일반인은 물론 각종 장애인들도 간편하게 컴퓨터 시스템은 물론 각종 프로그램을 활용할 수 있도록 하는 음성인식을 이용한 컴퓨터 프로그램의 제어방법에 관한 것이다.Korean Unexamined Patent Publication No. 2002-0030156 (Apr. 24, 2002) discloses a system and method for controlling a computer operating system and various application programs using only a voice command of a user using a voice recognition technology without a manual input device such as a keyboard or a mouse The present invention relates to a method of controlling a computer program using speech recognition, which enables not only the general public but also various people with disabilities to easily utilize various programs as well as a computer system.

상기 선행기술은 컴퓨터 프로그램을 제어하는 것이지 프로그램 코드 자체를 생성하는 것이 아니다. 반면에 본 발명은 사용자의 음성을 인식하여 자연어 처리를 수행하고, 이에 대응하는 프로그래밍 코드를 딥러닝에 기반으로 생성함으로써, 프로그래밍 작업을 자동으로 처리하는 것뿐만 아니라, 프로그래밍 코딩 결과가 기계학습을 통해서 점점 개선되도록 하는 기술적 구성을 제시하고 있다. 따라서 상기 선행기술은 본 발명에서 제시하는 기술과 차이점이 명확하다.The prior art controls the computer program and not the program code itself. On the other hand, the present invention recognizes a user's voice to perform natural language processing and generates a corresponding programming code based on the deep learning, thereby not only automatically processing a programming task, And a technical configuration for improving the quality of the image. Therefore, the prior art is clearly different from the technique presented in the present invention.

또한, 한국등록특허 제1213890호(2012.12.18.)는 강한 데이터 유형을 이용하여 소프트웨어 프로그램에서 음성 인식 문법을 나타내기 위한 방법에 관한 것이다.Korean Patent No. 1213890 (Dec. 18, 2012) relates to a method for expressing a speech recognition grammar in a software program using a strong data type.

상기 선행기술은 음성을 인식하여 운영체제, 애플리케이션 프로그램, 기타 프로그램 모듈, 프로그램 데이터를 구동하는 것이지, 본 발명과 같이 사용자의 음성을 인식하여 프로그램 코딩작업을 자동으로 수행하는 것이 아니다. 따라서 상기 선행기술은 본 발명에서 제시하는 기술과 차이가 있다.The prior art recognizes a voice to drive an operating system, an application program, other program modules, and program data, and does not automatically recognize a user's voice and perform a program coding operation as in the present invention. Therefore, the prior art differs from the technique presented in the present invention.

즉 상기 언급한 각각의 선행기술들은 대부분 음성 인식을 통해 컴퓨터의 응용프로그램이나 모바일 전화기에서 특정 애플리케이션을 실행하도록 하는 기술적 구성을 제시하고 있기 때문에, 사용자의 음성명령을 자연어 처리를 통해 인식하고, 이를 토대로 프로그래밍 코드를 생성하고 실행하여 C++, JAVA, Python, R 프로그램 등의 각종 프로그래밍 언어를 사용한 코딩작업을 자동으로 실행할 수 있고, 또한 상기 프로그램 코드가 점점 개선되도록 하여 최적화된 코드를 생성하는 본 발명의 구성과는 기술적 차이점이 분명하다.That is, since each of the above-mentioned prior arts presents a technical configuration for allowing a specific application to be executed in an application program or a mobile phone of a computer through voice recognition, it is possible to recognize a voice command of a user through natural language processing, The present invention is capable of automatically generating a programming code using various programming languages such as C ++, JAVA, Python, and R programs, and generating the optimized code by gradually improving the program code. There is a technical difference with.

본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 사용자의 음성을 인식하여 프로그램코딩 작업을 자동으로 수행할 수 있는 음성 인식을 통한 프로그램코딩 시스템 및 코딩 방법을 제공하는 것을 목적으로 한다.It is an object of the present invention to provide a program coding system and a coding method through voice recognition which are created to solve the above-mentioned problems, and which can automatically perform a program coding operation by recognizing a voice of a user.

또한, 본 발명은 사용자가 말하는 음성을 인식하여 자연어로 변환하고, 이를 토대로 프로그램코드를 생성함에 있어서, 딥러닝을 통한 기계학습을 적용하여 상기 자연어를 프로그래밍 언어로 번역하되, 번역 결과가 학습을 통해서 점점 개선되도록 하는 음성인식 기반 인공지능 프로그램코딩 시스템 및 코딩 방법을 제공하는 것을 또 다른 목적으로 한다.In addition, the present invention recognizes a user's speech and converts the natural language into a natural language, and generates a program code based on the translated speech. The natural language is translated into a programming language by applying machine learning through deep learning, It is another object to provide a speech recognition based artificial intelligence program coding system and a coding method which are gradually improved.

또한 본 발명은 음성인식을 이용하여 이동 중이거나 모바일 환경에서도 클라우드 상에서 프로그램 코딩을 실습하거나 프로그램 코딩으로 제품을 개발하는 작업을 수행할 수 있도록 하는 음성인식 기반 프로그램코딩 시스템 및 코딩 방법을 제공하는 것을 다른 목적으로 한다.It is another object of the present invention to provide a speech recognition-based program coding system and a coding method capable of performing a program coding exercise in the cloud or a product development by program coding in a mobile environment or in a mobile environment using speech recognition. The purpose.

또한, 본 발명은 동작이 불편하거나 시각적인 장애로 인하여 키보드 자판을 조작하는데 어려움이 있는 장애인들에 대한 프로그램 관련 교육 및 작업에 도움을 줄 수 있는 음성인식 기반 프로그램코딩 시스템 및 코딩 방법을 제공하는 것을 또 다른 목적으로 한다.It is another object of the present invention to provide a speech recognition-based program coding system and a coding method capable of assisting a program-related education and work for a disabled person having difficulty in operating a keyboard board due to inconvenience in operation or visual obstacle For another purpose.

본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 방법은, 자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 단계 및 사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 단계를 포함하는 것을 특징으로 한다.The speech recognition based artificial intelligence program coding method according to an embodiment of the present invention includes steps of generating a learning model by learning a mapping relation between a natural language phrase and a program code, extracting a natural language phrase by recognizing the user's speech, And estimating and outputting the program code.

또한 상기 음성인식을 통한 인공지능 프로그램코딩 방법은, 사용자의 음성을 인식하여 자연어 문구를 추출하기 위한 음성인식 단계, 상기 출력한 프로그램 코드를 검증하는 단계 및 상기 검증한 결과에 따라 상기 매핑관계를 추가하거나 변경하는 단계를 더 포함하며, 상기 음성인식은 클라우드서버, 로컬서버, 사용자기기 또는 이들의 조합에 구비된 음성인식 엔진을 통해 수행되는 것을 특징으로 한다.Also, the artificial intelligence program coding method using speech recognition may include a speech recognition step of recognizing a user's speech and extracting a natural language phrase, a step of verifying the output program code, and a step of adding the mapping relation according to the verified result Wherein the voice recognition is performed through a voice recognition engine provided in a cloud server, a local server, a user equipment, or a combination thereof.

또한 상기 학습모델을 생성하는 단계는, CNN(Convolutional Neural Network)을 통한 기계학습을 수행하는 단계를 포함하며, 상기 CNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며, 상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 한다.In addition, the step of generating the learning model may include performing a machine learning through a CNN (Convolutional Neural Network), wherein the size of the CNN with respect to the network is composed of a plurality of networks having the same size, Wherein the network is constructed so as to gradually increase in size and adaptively correspond to the entire capacity to be learned, and the depth of the network is variably set according to the size.

또한 상기 CNN은, 특정 프로그램 코드에 대한 레이블에 자연어 문구를 할당한 자연어 문구와 프로그램 코드 간의 매핑관계를 수치화한 이미지를 입력 받아 학습을 수행하며, 상기 매핑관계를 수치화한 각각의 이미지는, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정되며, 상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하며, 상기 이미지 슬라이스는 바이너리 이미지, 그레이 스케일 이미지, 컬러이미지 또는 이들의 조합을 포함하며, 상기 이미지의 해상도는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 한다.The CNN performs learning by inputting an image obtained by digitizing a mapping relation between a natural language phrase and a program code in which a natural language phrase is assigned to a label of a specific program code, and each image obtained by digitizing the mapping relationship is classified into a specific natural language Wherein the image slice comprises a binary image, a grayscale image, a color image, or a combination thereof, wherein the image slice comprises at least one image slice, The resolution of the network can be continuously added according to the size of the network.

또한 상기 학습모델을 생성하는 단계는, RNN(Recursive Neural Network)을 통한 기계학습을 수행하는 단계를 포함하며, 상기 RNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며, 상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 한다.In addition, the step of generating the learning model may include performing a machine learning through an RNN (Recursive Neural Network), and the size of the RNN for the network may be a plurality of networks having the same size, Wherein the network is constructed so as to gradually increase in size and adaptively correspond to the entire capacity to be learned, and the depth of the network is variably set according to the size.

또한 상기 RNN은, 특정 자연어 문구에 대한 프로그램 코드 간의 매핑관계를 수치화한 수열을 입력 받아 학습을 수행하며, 상기 매핑관계를 수치화한 각각의 수열은, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정하며, 상기 수열은 적어도 하나 이상의 수열 슬라이스를 포함하며, 상기 수열 슬라이스는 적어도 하나 이상의 비트열의 조합을 포함하며, 상기 비트열의 사이즈는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 한다.In addition, the RNN performs learning by receiving a series of numerical values representing mapping relations between program codes for specific natural language phrases, and each of the series of numerical values of the mapping relationship is unique in that the mapping relationship between a specific natural language and the program code is duplicated Wherein the sequence comprises at least one or more sequence slices and the sequence slice includes a combination of at least one bit sequence and the size of the bit sequence is continuously added according to the size of the network .

아울러 본 발명의 일 실시예에 따른 음성인식을 통한 인공지능 프로그램코딩 시스템은, 자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 학습모델 생성부 및 사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 프로그램 코드 추정부를 포함하는 것을 특징으로 한다.In addition, the artificial intelligence program coding system using speech recognition according to an embodiment of the present invention includes a learning model generation unit for learning a mapping relation between a natural language phrase and a program code to generate a learning model, Extracts the program code, inputs it to the learning model, estimates and outputs the program code, and outputs the program code.

또한 상기 음성인식을 통한 인공지능 프로그램코딩 시스템은, 사용자의 음성을 인식하여 자연어 문구를 추출하기 위한 음성인식부를 더 포함하며, 상기 음성인식은 클라우드서버, 로컬서버, 사용자기기 또는 이들의 조합에 구비된 음성인식 엔진을 통해 수행되는 것을 특징으로 한다.Further, the artificial intelligence program coding system using speech recognition may further include a speech recognition unit for recognizing a user's speech and extracting a natural language phrase, and the speech recognition may be provided in a cloud server, a local server, a user equipment, Is performed through the speech recognition engine.

또한 상기 학습모델 생성부는, CNN(Convolutional Neural Network)을 통해 기계학습을 수행하며, 상기 CNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며, 상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 한다.The learning model generation unit may perform a machine learning through a CNN (Convolutional Neural Network). The CNN may be constructed of a plurality of networks having the same size, or the size may be gradually increased And the depth of the network is variably set according to the size of the network.

또한 상기 CNN은, 특정 프로그램 코드에 대한 레이블에 자연어 문구를 할당한 자연어 문구와 프로그램 코드 간의 매핑관계를 수치화한 이미지를 입력 받아 학습을 수행하며, 상기 매핑관계를 수치화한 각각의 이미지는, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정되며, 상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하며, 상기 이미지 슬라이스는 바이너리 이미지, 그레이 스케일 이미지, 컬러이미지 또는 이들의 조합을 포함하며, 상기 이미지의 해상도는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 한다.The CNN performs learning by inputting an image obtained by digitizing a mapping relation between a natural language phrase and a program code in which a natural language phrase is assigned to a label of a specific program code, and each image obtained by digitizing the mapping relationship is classified into a specific natural language Wherein the image slice comprises a binary image, a grayscale image, a color image, or a combination thereof, wherein the image slice comprises at least one image slice, The resolution of the network can be continuously added according to the size of the network.

또한 상기 학습모델 생성부는, RNN(Recursive Neural Network)을 통해 기계학습을 수행하며, 상기 RNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며, 상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 한다.Also, the learning model generation unit may perform a machine learning through an RNN (Recursive Neural Network), and the size of the RNN may be composed of a plurality of networks having the same size or may be configured to gradually increase in size And the depth of the network is variably set according to the size of the network.

또한 상기 RNN은, 특정 자연어 문구에 대한 프로그램 코드 간의 매핑관계를 수치화한 수열을 입력 받아 학습을 수행하며, 상기 매핑관계를 수치화한 각각의 수열은, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정하며, 상기 수열은 적어도 하나 이상의 수열 슬라이스를 포함하며, 상기 수열 슬라이스는 적어도 하나 이상의 비트열의 조합을 포함하며, 상기 비트열의 사이즈는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 한다.In addition, the RNN performs learning by receiving a series of numerical values representing mapping relations between program codes for specific natural language phrases, and each of the series of numerical values of the mapping relationship is unique in that the mapping relationship between a specific natural language and the program code is duplicated Wherein the sequence comprises at least one or more sequence slices and the sequence slice includes a combination of at least one bit sequence and the size of the bit sequence is continuously added according to the size of the network .

이상에서와 같이 본 발명의 음성인식 기반 인공지능 프로그램코딩 시스템 및 코딩 방법에 따르면, 음성을 인식하여 코딩작업을 자동으로 수행할 수 있기 때문에, 사용자가 키보드, 마우스 등의 별도의 입력장치를 사용할 필요 없이 음성을 통해 간편하게 코딩작업을 수행할 수 있으며, 특히 모바일이나 이동 환경에서 프로그램 실습이나 코딩작업을 수행할 때 발생할 수 있는 키 입력의 불편함을 해소할 수 있는 효과가 있다.As described above, according to the speech recognition based artificial intelligence program coding system and coding method of the present invention, since the speech recognition can be performed and the coding operation can be automatically performed, the user needs to use a separate input device such as a keyboard and a mouse It is possible to easily perform the coding operation through the voice, and it is possible to solve the inconvenience of the key input that may occur when performing the program practice or the coding operation in the mobile or mobile environment.

또한, 사용자의 음성만으로 특정 프로그래밍 언어의 실습이나 코딩작업이 이루어지기 때문에 사용자가 프로그래밍 언어를 모르더라도 음성인식에 의한 코딩작업을 직관적으로 확인할 수 있어, 프로그래밍 언어나 코딩작업을 이해하는데 도움이 되는 효과가 있다.In addition, since the practice or coding work of a specific programming language is performed only by the user's voice, even if the user does not know the programming language, the coding work by speech recognition can be intuitively confirmed, .

또한, 본 발명은 사용자가 말하는 음성을 인식하여 자연어로 변환하고, 이를 토대로 프로그래밍 코드를 생성함에 있어서, 딥러닝을 통한 기계학습을 적용하여 상기 자연어를 프로그래밍 언어로 번역하되, 번역 결과가 학습을 통해서 점점 개선되도록 하기 때문에 최적화된 프로그램 코드를 학습하고 제작하는 효과가 있다.In addition, the present invention recognizes a user's speech and converts the natural language into a natural language, and generates programming code based on the translated speech. The natural language is translated into a programming language by applying machine learning through deep learning, So that it is effective to learn and produce optimized program codes.

또한, 본 발명은 동작이 불편하거나 시각적인 장애로 인하여 키보드 자판을 조작하는데 어려움이 있는 장애인들에 대한 프로그램 관련 교육 및 작업에 도움을 줄 수 있는 효과가 있다.In addition, the present invention has an effect of helping a program-related education and work for a disabled person having difficulty in operating a keyboard board due to an inconvenient operation or a visual obstacle.

또한, 본 발명은 특정 프로그래밍 언어에 대한 단순한 교육 차원을 벗어나, 음성명령만으로 모바일 환경의 애플리케이션을 구축하거나 블로그 및 홈페이지를 제작할 수도 있으며, 말로 표현하기 어려운 부분에 있어서도 사용자가 말하는 대표 키워드를 통해 프로그래밍 작업에 도움이 되는 프로그램의 제공이 가능할 것이므로 향후 프로그래밍 언어를 사용하는 모든 산업 분야의 발전에 적용할 수 있는 효과가 있다.In addition, the present invention can be applied to mobile applications, a blog, and a homepage by voice commands alone, and it is possible to create a homepage, It is possible to apply the program to the development of all industrial fields using the programming language in the future.

도 1은 본 발명이 적용된 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법의 개념을 설명하기 위한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에 대한 구성도이다.
도 3은 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에서 CNN을 통해 기계학습을 수행하는 경우, CNN에 입력되는 입력 데이터의 전처리를 과정을 보인 도면이다.
도 4는 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에서 RNN을 통해 기계학습을 수행하는 경우, RNN에 입력되는 입력데이터의 전처리 과정을 보인 도면이다.
도 5는 본 발명의 일 실시예에 따른 CNN을 통한 기계학습 구조와 학습과정을 설명하기 위해 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 RNN을 통한 기계학습 구조와 학습과정을 설명하기 위해 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 방법이 실행되는 과정을 보인 흐름도이다.
FIG. 1 is a conceptual diagram for explaining a concept of an artificial intelligence program coding system and a method thereof according to the present invention.
2 is a block diagram of a speech recognition based artificial intelligence program coding apparatus according to an embodiment of the present invention.
3 is a diagram illustrating a process of preprocessing input data to be input to a CNN when performing a machine learning through a CNN in a speech recognition based artificial intelligence program coding apparatus according to an embodiment of the present invention.
FIG. 4 is a diagram illustrating a preprocessing process of input data to be input to an RNN when performing a machine learning through an RNN in a speech recognition based artificial intelligence program coding apparatus according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating a CNN-based learning structure and a learning process according to an embodiment of the present invention. Referring to FIG.
FIG. 6 is a diagram for explaining a machine learning structure and a learning process through an RNN according to an embodiment of the present invention. Referring to FIG.
FIG. 7 is a flowchart illustrating a process of executing a speech recognition based artificial intelligence program coding method according to an embodiment of the present invention.

이하, 첨부한 도면을 참조하여 본 발명의 딥러닝을 통한 음성인식코딩 시스템 및 그 방법에 대한 바람직한 실시 예를 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 또한 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는 것이 바람직하다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings. Like reference symbols in the drawings denote like elements. Furthermore, specific structural and functional descriptions for embodiments of the present invention are presented for the purpose of describing an embodiment of the present invention only, and, unless otherwise defined, all terms used herein, including technical or scientific terms Have the same meaning as commonly understood by those of ordinary skill in the art to which the present invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as ideal or overly formal in the sense of the art unless explicitly defined herein .

도 1은 본 발명이 적용된 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법의 개념을 설명하기 위한 개념도이다.FIG. 1 is a conceptual diagram for explaining a concept of an artificial intelligence program coding system and a method thereof according to the present invention.

도 1에 도시된 바와 같이, 음성인식을 통한 인공지능 프로그램코딩 시스템(10)은 사용자의 음성을 인식하고, 상기 인식한 사용자 음성을 딥러닝을 통한 기계학습을 적용하여 프로그램코드로 변환하는 음성인식을 통한 인공지능 프로그램코딩 장치(100), 상기 기계학습을 위한 학습데이터로써, 자연어와 프로그램 코드 레이블에 대한 매핑 테이블이 저장된 학습데이터 데이터베이스(Sen2Cod)(200), 기계학습에 의해 학습된 학습모델을 저장하는 학습모델 데이터베이스(300) 및 적어도 하나 이상의 사용자 디바이스(400)들 사이에서 작용한다.As shown in FIG. 1, the artificial intelligence program coding system 10 using speech recognition recognizes a user's voice and converts the recognized user speech into a program code by applying machine learning through deep learning. A learning data database (Sen2Cod) (200) in which mapping tables for natural language and program code labels are stored as the learning data for the machine learning, a training data database (Sen2Cod) And at least one or more user devices (400).

먼저 학습데이터 데이터베이스(200)에는 사용자의 음성인식을 토대로 현재 사용되고 있는 R 프로그램, C++, JAVA, Python 등의 각종 프로그래밍 언어에 대한 명령어, 함수, 변수, 상수 또는 이들의 조합을 포함한 프로그래밍 엘리먼트에 대한 프로그램 코드 레이블과 사용자들이 말하는 단어를 매칭한 정보를 데이터베이스로 구축하고 있다. 예를 들어 특정 프로그램 코드에 대해 가능한 모든 자연어 표현을 생성하며, 상기 자연어 표현과 상기 특정 프로그램 코드는 1:1로 매칭되어 저장된다.First, the learning data database 200 stores a program for a programming element including commands, functions, variables, constants, or combinations thereof for various programming languages such as R programs, C ++, JAVA, Python, The database is building information that matches the code label and the words that users speak. For example, all possible natural language expressions are generated for specific program codes, and the natural language expressions and the specific program codes are stored in a 1: 1 match.

이러한 자연어-프로그램 코드 레이블에 대한 매핑 테이블은 음성인식을 통한 인공지능 프로그램코딩 장치(100)에서 딥러닝을 위한 학습데이터로 활용된다(①). 학습데이터는 기계학습의 입력데이터로 사용되고, 그 결과로 학습모델이 생성되며(②), 상기 생성된 학습모델은 프로그램 코딩에 활용하기 위해 학습모델 데이터베이스에 저장된다(③). 여기서 기계학습은 RNN(recurrent neural network)으로 수행되거나, CNN(convolution neural network)으로 수행될 수 있다. The mapping table for the natural language-program code label is used as learning data for deep learning in the artificial intelligence program coding device 100 through speech recognition (1). Learning data is used as input data of machine learning, and as a result, a learning model is created (②) and the generated learning model is stored in a learning model database for use in program coding (③). Here, the machine learning may be performed with a recurrent neural network (RNN) or a convolution neural network (CNN).

한편 음성인식을 통한 인공지능 프로그램코딩 장치(100)는 학습데이터를 학습하는 과정에 있어서 상기에서 나열한 기계학습 기법(즉, RNN 또는 CNN)에 적합하도록 상기 학습데이터를 전처리한다. 이후, 음성인식을 통한 인공지능 프로그램코딩 장치(100)는 상기 전처리한 학습데이터를 학습하여, 특정 자연어 문구에 대한 프로그램코드를 추정하기 위한 학습모델을 생성한다. 한편 상기 CNN 또는 RNN에 따른 전처리 과정은 도 3 및 도 4를 각각 참조하여 상세히 설명하도록 한다.Meanwhile, the artificial intelligence program coding device 100 through speech recognition preprocesses the learning data to match the machine learning techniques (i.e., RNN or CNN) listed above in the course of learning learning data. Then, the artificial intelligence program coding device 100 through speech recognition learns the preprocessed learning data and generates a learning model for estimating a program code for a specific natural language phrase. The preprocessing process according to CNN or RNN will be described in detail with reference to FIGS. 3 and 4, respectively.

사용자는 음성인식을 통한 인공지능 프로그램코딩 장치(100)를 통해 프로그램 코드를 생성하기 위해 상기 학습모델 데이터베이스(300)로부터 학습모델을 액세스하여 사용한다. 사용자 디바이스(400)에서는 음성인식을 통한 인공지능 프로그램코딩 장치(100)를 통하거나 혹은 자체적적으로 상기 음성인식을 통한 인공지능 프로그램코딩 장치(100)로부터 다운로딩한 프로그램코딩용 앱을 통해서 사용자의 음성을 인식한 결과를 프로그램 코드로 변환한다(④). 이 과정에서 사용자는 음성으로 입력한 내용과 프로그램 결과가 최적이 아니라면 새롭게 자연어와 프로그램 코드의 매핑 데이터를 입력시킬 수 있다. 즉, 특정 권한을 가진 사용자나 관리자는 출력된 프로그램을 확인한 다음 검증과정을 거쳐 최적의 프로그램인지 확증하고 그 결과를 상기 매핑 테이블을 저장하고 있는 학습데이터 데이터베이스(200)에 업데이트 한다(⑤). 여기서 특정 권한을 가진 사용자나 관리자는 특정 프로그래밍 언어에 대한 전문가가 될 수 있다. 따라서 상기 검증과정을 수행하는 사용자는 일반 사용자가 아니라 상기 특정 프로그래밍 언어에 대한 고도화된 숙련도를 가지고 있는 사람을 의미한다.The user accesses and uses the learning model from the learning model database 300 to generate the program code through the artificial intelligence program coding device 100 using speech recognition. In the user device 400, through the artificial intelligence program coding device 100 through speech recognition or through an application for program coding downloaded from the artificial intelligence program coding device 100 through speech recognition, Converts the result of voice recognition to the program code (④). In this process, the user can input the mapping data between the natural language and the program code if the contents input by voice and the program result are not optimal. That is, a user or a manager having a specific authority confirms the output program, then verifies that the program is the optimal program through a verification process, and updates the learning data database 200 storing the mapping table (5). Here, a user or manager with a specific authority can be an expert on a particular programming language. Therefore, the user performing the verification process is not a general user but a person who has an advanced proficiency level with respect to the specific programming language.

또한 사용자 디바이스(400)는 스마트폰, 태블릿 PC 등과 같은 모바일 통신기기로써 사용자가 구비한 사용자 단말을 의미하며, 사용자의 음성을 입력받는 마이크가 구비되어 있다. 즉, 상기 모바일 통신기기는 음성인식을 통한 인공지능 프로그램코딩 장치(100)로부터 프로그램코딩을 위한 애플리케이션(application, app)을 다운로드 받아 상기 애플리케이션을 실행함으로써, 프로그램코딩을 위한 사용자 디바이스(400)가 된다.The user device 400 is a mobile communication device such as a smart phone, a tablet PC, or the like, and is a user terminal provided by a user. The user device 400 includes a microphone for receiving user's voice. That is, the mobile communication device downloads an application (application, app) for program coding from the artificial intelligence program coding device 100 through voice recognition and executes the application to become a user device 400 for program coding .

다음으로 음성인식코딩 서버는 데이터베이스가 새롭게 갱신되면 이를 이용하여 학습모델도 새롭게 갱신하고(⑥) 그 결과를 학습모델 데이터베이스(300)에 저장한다(⑦).When the database is newly updated, the speech recognition coding server updates the learning model (6) and stores the result in the learning model database 300 (7).

이렇게 사용자가 본 발명에 따른 음성인식코딩 시스템을 사용하며 할수록 학습모델이 강화학습(reinforcement learning)을 통해서 점점 고도화되게 된다.As the user uses the speech recognition coding system according to the present invention, the learning model becomes more advanced through reinforcement learning.

또한 음성인식을 통한 인공지능 프로그램코딩 장치(100)는 클라우드 서버, 로컬 서버 또는 이들의 조합으로 구현될 수 있으며, 상기 음성인식은 사용자 디바이스(400)로부터 사용자 음성을 수신하여 상기 음성인식을 통한 인공지능 프로그램 코딩 장치(100)에 구비된 음성인식 엔진을 통해 수행되는 것이 바람직하지만, 상기 음성인식 엔진을 구비한 사용자 디바이스(400)에서 수행될 수도 있다. In addition, the artificial intelligence program coding apparatus 100 through speech recognition may be implemented by a cloud server, a local server, or a combination thereof. The speech recognition may include receiving user speech from the user device 400, But it may be performed in the user device 400 having the speech recognition engine.

도 2는 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에 대한 구성도이다.2 is a block diagram of a speech recognition based artificial intelligence program coding apparatus according to an embodiment of the present invention.

도 2에 도시한 바와 같이, 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치(100)는 사용자 디바이스(400)로부터 수신되는 사용자 음성을 인식하는 음성인식부(110), 상기 인식한 사용자 음성과 학습데이터를 전처리하여 상기 학습데이터를 기계학습 방법에 따라 적용할 수 있도록 하는 전처리부(120), 상기 전처리한 학습데이터를 학습하여 학습모델을 생성하는 학습모델 생성부(130), 상기 생성한 학습모델에 상기 전처리한 사용자 음성을 적용하여 프로그램코드를 추정하는 프로그램 코드 추정부(140), 상기 추정한 프로그램 코드에 대한 검증을 수행하는 검증부(150), 상기 검증한 결과에 따라 학습데이터를 업데이트하는 학습데이터 업데이트부(160) 및 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)의 각 구성부분을 전반적으로 제어하는 제어부(170)를 포함하여 구성된다.2, the speech recognition based artificial intelligence program coding apparatus 100 according to an embodiment of the present invention includes a speech recognition unit 110 for recognizing a user speech received from a user device 400, A preprocessing unit 120 for preprocessing a user voice and learning data to apply the learning data according to a machine learning method, a learning model generating unit 130 for generating a learning model by learning the preprocessed learning data, A program code estimator 140 for estimating a program code by applying the preprocessed user voice to the generated learning model, a verifying unit 150 for verifying the estimated program code, The learning data updating unit 160 for updating the learning data and the constituent parts of the speech recognition based artificial intelligence program coding apparatus 100 as a whole It is configured to include a controller 170 that controls.

음성인식부(110)는 사용자 단말로부터 실시간으로 수신되는 사용자 음성을 인식하고, 상기 인식한 사용자 음성에 대한 자연어 문구(이하 자연어라 칭함)를 추출하여 전처리부(120)로 제공한다.The speech recognition unit 110 recognizes the user speech received in real time from the user terminal, extracts a natural language phrase (hereinafter referred to as natural language) of the recognized user speech, and provides the extracted speech to the preprocessing unit 120.

이때, 상기 전처리부(120)는 상기 자연어를 전처리하여 상기 학습모델 생성부(130)에 의해 생성한 학습모델에 입력할 수 있도록 함으로써, 상기 학습모델을 통해 사용자 음성에 대한 프로그램 코드를 추정할 수 있도록 한다.At this time, the preprocessing unit 120 preprocesses the natural language and inputs it to the learning model generated by the learning model generation unit 130, so that the program code for the user voice can be estimated through the learning model .

즉, 상기 음성인식부(110)는 음성인식 엔진을 통해 사용자 음성을 인식하여 자연어 처리를 수행함으로써, 해당 사용자의 음성으로부터 자연어를 추출하여, 학습모델을 통해 상기 추출한 자연어에 대한 특정 프로그램 코드를 추정할 수 있도록 하는 것이다.That is, the speech recognition unit 110 recognizes the user speech through the speech recognition engine and performs natural language processing, extracts a natural language from the user's speech, and estimates a specific program code for the extracted natural language through a learning model To be able to do so.

한편 상기 음성인식부(100)는 프로그래밍 실습이나 코딩작업을 수행하는 사용자에 의해 입력되는 사용자 음성을 형태소, 구문, 의미, 담화분석 등을 통해 자연어 처리를 수행하는 것으로, 에코(echo), 시리(siri) 등과 같은 다양한 음성인식 엔진 또는 음성인식을 위한 다양한 기계학습 방법을 이용하여 사용자 음성에 대한 자연어 처리를 수행할 수 있으며, 본 발명에서는 사용자 음성을 자연어 처리하는 방법에 대해서는 그 제한을 두지 않는다.Meanwhile, the speech recognition unit 100 performs natural language processing on user speech inputted by a user who performs programming exercises or coding tasks through morphological, syntactic, semantic, discourse analysis, and the like. The echo, siri), or a variety of machine learning methods for speech recognition can be used to perform natural language processing on user speech. In the present invention, there is no limitation on a method for processing natural user speech.

한편 사용자 음성에 대한 자연어 처리는 상기 음성인식엔진을 탑재한 사용자 디바이스(400)에서 수행될 수 있으며, 상기 음성인식부(120)는 상기 사용자 디바이스(400)로부터 자연어를 수신하여, 상기 전처리부(120)를 통해 상기 학습모델에 입력할 수 있는 데이터로 변환할 수 있도록 한다.Meanwhile, the natural language processing of the user voice may be performed in the user device 400 equipped with the speech recognition engine. The voice recognition unit 120 receives the natural language from the user device 400, 120) into data that can be input to the learning model.

또한 전처리부(120)는 학습데이터 데이터베이스(200)에 저장된 학습데이터를 로딩하여, 상기 학습모델 생성부(130)에서 수행되는 기계학습 방법에 따라 상기 로딩한 학습데이터를 전처리한다.The preprocessing unit 120 prepares learning data loaded in the learning data database 200 and preprocesses the loaded learning data in accordance with the machine learning method performed by the learning model generation unit 130.

한편 학습데이터는 특정 프로그램 코드에 인덱스된 one-hot 인코딩 방식으로 구성된 프로그램 코드 레이블과 해당 프로그램 코드 레이블에 대한 자연어가 1:1로 매핑된 매핑테이블 형태로 학습데이터 데이터베이스(200)에 저장된다.On the other hand, the learning data is stored in the learning data database 200 in the form of a mapping table in which a program code label configured in a one-hot encoding scheme indexed in a specific program code and a natural language 1: 1 mapped to the program code label are mapped.

또한 학습모델 생성부(130)는 CNN, RNN 중 적어도 하나의 기계학습 방법을 통해 상기 전처리된 학습데이터를 학습하여 학습모델을 생성할 수 있다.Also, the learning model generation unit 130 can generate the learning model by learning the preprocessed learning data through at least one of the CNN and RNN machine learning methods.

따라서, 상기 전처리부(120)는 상기 학습모델 생성부(130)가 CNN을 통해 기계학습을 수행하는 경우, 상기 학습데이터가 CNN에 적합하도록 상기 매핑테이블의 자연어와 프로그램 코드 간의 매핑관계를 수치화하여 이미지화하고, 상기 이미지화한 학습데이터를 학습데이터 데이터베이스(200)에 저장한다.Accordingly, when the learning model generation unit 130 performs the machine learning through the CNN, the preprocessing unit 120 numerically maps the mapping relation between the natural language of the mapping table and the program code so that the learning data is suitable for CNN And stores the imaged learning data in the learning data database 200.

이후, 학습모델 생성부(120)는 상기 이미지화한 학습데이터를 입력받아 특정 자연어에 대한 프로그램코드를 추정할 수 있도록 하는 학습모델을 생성하여 학습모델 데이터베이스(300)에 저장한다.Then, the learning model generation unit 120 generates a learning model for receiving the imaged learning data and estimating a program code for a specific natural language, and stores the generated learning model in the learning model database 300.

한편 상기 매핑관계를 수치화한 각각의 이미지는 특정 자연어와 프로그램 코드 레이블 간의 매핑관계를 유일하게 중복되지 않도록 설정된다.On the other hand, each image obtained by quantifying the mapping relation is set so that the mapping relation between the specific natural language and the program code label is not uniquely duplicated.

또한 CNN을 구성하는 네트워크의 크기는 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 상기 학습데이터의 업데이트 또는 변경에 따라 상기 네트워크의 크기가 점진적으로 커지도록 구성될 수 있다. 즉, 상기 CNN의 네트워크는 학습해야 되는 전체적인 학습데이터의 용량에 적응적으로 대응할 수 있도록 구성된다. 이에 따라 상기 CNN 네트워크의 뎁스는 상기 네트워크의 크기에 따라 가변적으로 설정될 수 있다. Also, the size of the network constituting the CNN may be composed of a plurality of networks having the same size, or the size of the network may be gradually increased in accordance with an update or a change of the learning data. That is, the network of the CNN is adapted to adaptively adapt to the capacity of the entire learning data to be learned. Accordingly, the depth of the CNN network can be variably set according to the size of the network.

또한 상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하여 구성되며, 상기 이미지 슬라이스는 상기 자연어, 프로그램코드 및 매핑관계를 수치화하는 정도에 따라 바이너리 이미지, 그레이 스케일 이미지, 컬러 이미지 또는 이들의 조합을 포함한다. 예를 들어, 상기 자연어, 프로그램코드 및 이의 매핑관계를 0 또는 1로 수치화하는 경우 바이너리 이미지로 상기 학습데이터를 변환할 수 있으며, 0 ~ 255 범위로 수치화하는 경우 그레이 스케일 이미지로 상기 학습데이터를 변환할 수 있다. 상기 이미지의 해상도는 상기 CNN 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성된다. 한편 상기 CNN을 위한 전처리 과정은 도 3을 참조하여 상세히 설명하도록 한다.The image also comprises at least one image slice, wherein the image slice comprises a binary image, a grayscale image, a color image, or a combination thereof depending on the degree of quantification of the natural language, program code and mapping relationship. For example, when the natural language, the program code and the mapping relation thereof are numerically expressed as 0 or 1, the learning data can be converted into a binary image. When the numerical value is in the range of 0 to 255, the learning data is converted into a gray- can do. The resolution of the image is configured to be continuously added according to the size of the CNN network. The preprocessing process for the CNN will be described in detail with reference to FIG.

또한 전처리부(120)는 상기 학습모델 생성부(130)가 RNN을 통해 기계학습을 수행하는 경우, 상기 학습데이터가 RNN에 적합하도록 상기 매핑테이블의 자연어와 프로그램 코드 레이블 간의 매핑관계를 수열로 수치화한다.Also, when the learning model generation unit 130 performs the machine learning through the RNN, the preprocessing unit 120 may quantify the mapping relation between the natural language of the mapping table and the program code label as a series of numbers so that the learning data is suitable for the RNN do.

이후, 학습모델 생성부(120)는 상기 자연어에 대한 프로그램 코드 레이블 간의 매핑관계를 수치화한 복수의 수열을 입력받아 학습을 수행하여, 사용자 음성으로부터 특정 프로그램 코드를 추정할 수 있도록 하는 학습모델을 생성하여 학습모델 데이터베이스(300)에 저장한다.Thereafter, the learning model generation unit 120 receives a plurality of sequences obtained by digitizing the mapping relation between the program code labels of the natural language, and generates a learning model for estimating a specific program code from the user speech And stores it in the learning model database 300.

한편 상기 매핑관계를 수치화한 각각의 수열은 특정 자연어와 프로그램 코드 간 레이블의 매핑관계를 유일하게 중복되지 않도록 설정된다.On the other hand, each of the series of numerical values of the mapping relation is set so that the mapping relation of the label between the specific natural language and the program code is not duplicated.

또한 RNN을 구성하는 네트워크의 크기는 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 상기 학습데이터의 업데이트 또는 변경에 따라 상기 네트워크의 크기가 점진적으로 커지도록 구성될 수 있다. 즉, 상기 CNN의 네트워크는 학습해야 되는 전체적인 학습데이터의 용량에 적응적으로 대응할 수 있도록 구성된다. 이에 따라 상기 CNN을 통한 기계학습과 같이 상기 CNN 네트워크의 뎁스 또한 상기 CNN 네트워크의 크기에 따라 가변적으로 설정될 수 있다. Also, the size of the network constituting the RNN may be composed of a plurality of networks having the same size, or the size of the network may be gradually increased according to the updating or changing of the learning data. That is, the network of the CNN is adapted to adaptively adapt to the capacity of the entire learning data to be learned. Accordingly, the depth of the CNN network, such as the machine learning through the CNN, can be variably set according to the size of the CNN network.

또한 상기 수열은 적어도 하나 이상의 수열 슬라이스를 포함하며, 상기 수열 슬라이스는 적어도 하나 이상의 비트열의 조합을 포함한다. 한편 상기 비트열의 사이즈는 상기 CNN 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성된다. 한편 상기 CNN을 위한 전처리 과정은 도 4를 참조하여 상세히 설명하도록 한다.Also, the sequence includes at least one sequence slice, and the sequence slice includes a combination of at least one bit sequence. On the other hand, the size of the bit stream can be continuously added according to the size of the CNN network. The preprocessing process for the CNN will be described in detail with reference to FIG.

또한 학습모델 생성부(130)는 상기 전처리부(120)에 의해 전처리한 학습데이터를 학습데이터 데이터베이스(200)로부터 로딩하여 학습함으로써, 사용자 디바이스(400)로부터 수신되는 사용자 음성에 대응하는 프로그램 코드를 추정하기 위한 학습모델을 생성한다. 한편 학습모델 생성부(130)는 CNN, RNN 중 적어도 하나에 대한 기계학습 방법을 통해 기계학습을 수행할 수 있으며, 상기 학습데이터는 상기 학습모델 생성부(130)에서 수행하는 기계학습 방법에 따라 전처리됨은 상술한 바와 같다.Also, the learning model generation unit 130 loads learning data pre-processed by the preprocessing unit 120 from the learning data database 200, and learns the program code corresponding to the user voice received from the user device 400 A learning model for estimation is generated. Meanwhile, the learning model generating unit 130 may perform machine learning through a machine learning method for at least one of CNN and RNN, and the learning data may be generated according to a machine learning method performed by the learning model generating unit 130 The pretreatment is as described above.

또한 상기 학습모델 생성부(130)에서 생성된 학습모델은 사용자 디바이스(200)에서 인식되거나, 상기 음성인식부(110)에서 인식한 사용자 음성을 토대로 프로그램 코드를 추정하기 위한 것으로, 상기 학습모델의 입력은 상기 인식한 사용자의 음성에 대한 자연어를 전처리한 데이터이며, 출력은 해당 자연어에 대한 프로그램 코드이다.The learning model generated by the learning model generation unit 130 is for estimating a program code based on a user voice recognized by the user device 200 or recognized by the voice recognition unit 110, The input is data obtained by preprocessing the natural language for the voice of the recognized user, and the output is the program code for the natural language.

또한 학습모델 생성부(130)는 특정 자연어에 대한 프로그램 코드를 알고 있으므로, 상기 학습과정에 있어서 백프로퍼게이션(back propagation)방법을 적용하여 기계학습 네트워크(즉, RNN 또는 CNN 네트워크)의 가중치를 조정함으로써, 상기 학습모델을 생성하기 위한 기계학습 네트워크의 정확도를 향상시킬 수 있도록 한다.Also, since the learning model generation unit 130 knows the program code for a specific natural language, the back propagation method is applied to the learning process to adjust the weight of the machine learning network (i.e., RNN or CNN network) Thereby improving the accuracy of the machine learning network for generating the learning model.

또한 프로그램 코드 추정부(140)는 상기 학습모델 생성부(130)를 통해 학습모델이 생성된 이후, 사용자로부터 입력되는 사용자의 음성에 대한 자연어가 입력되는 경우, 상기 학습모델을 학습모델 데이터베이스(300)로부터 로딩하여 상기 로딩한 학습모델에 상기 자연어를 적용함으로서, 해당 자연어에 대응되는 프로그램 코드를 추정하여 사용자 디바이스(400)로 제공한다.When a natural language for the user's voice inputted from the user is inputted after the learning model is generated through the learning model generating unit 130, the program code estimating unit 140 calculates the learning model from the learning model database 300 And applies the natural language to the loaded learning model, thereby estimating a program code corresponding to the natural language and providing the same to the user device 400.

이때, 제공되는 프로그램 코드는 해당 사용자가 요청한 사용자 음성에 대한 프로그래밍 언어(예: JAVA, C++ 등등)이다.At this time, the provided program code is a programming language (e.g., JAVA, C ++, etc.) for the user's voice requested by the user.

한편 사용자 음성에 대한 자연어는 전처리부(120)에 의해 학습데이터를 전처리하는 과정과 동일한 과정을 통해 전처리된 데이터이다. On the other hand, the natural language of the user voice is preprocessed data through the same process as preprocessing the learning data by the preprocessing unit 120. [

즉, 학습모델 생성부(130)가 CNN을 통해 학습데이터를 학습하여 학습모델을 생성하는 경우 상기 사용자 음성에 대한 자연어는 이미지화되며, 상기 학습모델 생성부(130)가 RNN을 통해 학습데이터를 학습하여 학습모델을 생성하는 경우 상기 사용자 음성에 대한 자연어는 수열 슬라이스로 전처리된다.That is, when the learning model generation unit 130 learns learning data through CNN to generate a learning model, the natural language for the user's voice is imaged, and the learning model generation unit 130 learns learning data through the RNN The natural language for the user's voice is preprocessed with a series of slices.

또한 검증부(150)는 상기 프로그램코드 추정부(140)에서 추정한 프로그램 코드와 상기 추정한 프로그램 코드의 기반이 된 사용자 음성에 대한 자연어를 특정 권한을 가지는 사용자 혹은 관리자(예: 음성인식을 통한 인공지능 프로그램코딩 장치(100)에서 특정 권한을 준 프로그래밍 언어에 대한 전문가)에게 실시간 혹은 주기적으로 제공하여 상기 생성한 프로그램코드에 대한 검증을 수행할 수 있도록 한다. Also, the verifying unit 150 may compare the program code estimated by the program code estimating unit 140 and the natural language of the user's voice based on the estimated program code with a user or an administrator having a specific authority (e.g., The artificial intelligence program coding apparatus 100 may provide real-time or periodic information to a specialist (for example, a specialist in a programming language that gives a specific authority) to perform verification of the generated program code.

한편 상기 특정 권한을 가지는 사용자 혹은 관리자는 검증부(150)로부터 수신한 자연어 및 프로그램 코드를 확인하여, 상기 자연어에 대하여 생성한 프로그램코드가 최적의 프로그램코드인지를 확정하고 상기 확정한 결과에 따라 상기 학습데이터 데이터베이스를 업데이트할 수 있도록 한다.On the other hand, the user or the administrator having the specific authority confirms the natural language and the program code received from the verification unit 150, determines whether the program code generated for the natural language is the optimal program code, Allows you to update the learning data database.

다시 말해, 상기 특정 권한을 가지는 사용자 혹은 관리자는 검증결과에 따라 상기 학습데이터 데이터베이스(200)에 저장되는 자연어와 프로그램 코드 레이블의 매핑관계를 새롭게 생성하여 추가하거나, 변경할 수 있다. 예를 들어, 상기 사용자 혹은 관리자는 검증부(150)를 통해 수신한 자연어에 대한 프로그램코드가 최적의 결과가 아닌 경우, 새롭게 자연어와 상기 자연어에 해당하는 프로그램 코드에 대한 프로그램 코드 레이블을 포함하는 업데이트 데이터를 상기 검증부(150)로 제공할 수 있으며, 상기 검증부(150)를 상기 수신한 업데이터 데이터를 학습데이터 업데이트부(160)로 제공하여 학습데이터 데이터베이스(200)를 업데이트할 수 있도록 한다.In other words, the user or the manager having the specific authority can newly create and add or change the mapping relation between the natural language and the program code label stored in the learning data database 200 according to the verification result. For example, if the program code for the natural language received through the verification unit 150 is not optimal, the user or the administrator may update the program code label for the program code corresponding to the natural language and the natural language The verification unit 150 may provide the received updater data to the learning data updater 160 to update the learning data database 200.

또한 학습데이터 업데이트부(160)는 상기 검증부(150)로부터 검증결과에 따른 업데이트 데이터를 수신한 경우, 상기 수신한 업데이트 데이터를 학습데이터 데이터베이스(200)에 반영함으로써, 상기 학습데이터 데이터베이스(200)를 업데이트 한다. 한편 상기 업데이트는 검증부(140)의 정책(즉, 검증과정을 실시간 혹은 주기적으로 수행)에 따라 실시간 혹은 주기적으로 수행된다.The learning data update unit 160 may update the learning data database 200 by reflecting the received update data to the learning data database 200 when the updating data according to the verification result is received from the verification unit 150. [ Lt; / RTI > Meanwhile, the update is performed in real time or periodically according to the policy of the verification unit 140 (i.e., the verification process is performed in real time or periodically).

또한 학습모델 생성부(130)는 학습데이터 데이터베이스(200)가 업데이트되는 경우, 상기 업데이트된 학습데이터를 반영하여 기존에 생성된 학습모델보다 정확도 및 신뢰도가 높은 학습모델을 새롭게 생성하며, 상기 생성한 학습모델을 학습모델 데이터베이스(300)에 저장한다. 이러한 과정을 반복적으로 수행하는 경우, 상기 학습부(130)를 통해 생성되는 학습모델을 점점 고도화되며, 이를 통해 사용자 음성으로부터 최적의 프로그램코드를 생성할 수 있도록 한다.When the learning data database 200 is updated, the learning model generation unit 130 newly generates a learning model having higher accuracy and reliability than the existing learning model by reflecting the updated learning data, And stores the learning model in the learning model database 300. In the case where such a process is repeatedly performed, the learning model generated through the learning unit 130 is gradually advanced so that an optimal program code can be generated from the user's voice.

도 3은 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에서 CNN을 통해 기계학습을 수행하는 경우, CNN에 입력되는 입력 데이터의 전처리를 과정을 보인 도면이다.3 is a diagram illustrating a process of preprocessing input data to be input to a CNN when performing a machine learning through a CNN in a speech recognition based artificial intelligence program coding apparatus according to an embodiment of the present invention.

도 3에 도시한 바와 같이 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치(100)에서 CNN을 통해 기계학습을 수행하는 경우, 입력 데이터의 전처리 과정은, 우선 학습데이터 데이터베이스(200)로부터 학습데이터를 로딩한다.As shown in FIG. 3, when performing the machine learning through the CNN in the speech recognition based artificial intelligence program coding apparatus 100 according to an embodiment of the present invention, the preprocessing process of the input data is performed in the first learning data database 200 ) Of the learning data.

학습데이터는 자연어와 해당 자연어에 대응되는 프로그램 코드 레이블과 유일성을 가지며 매핑되어 있다. 또한 프로그램 코드 레이블은 상기 자연어에 대응되는 특정 프로그램 코드와 레이블링 되어 있다.The learning data is uniquely mapped with the program code label corresponding to the natural language and the corresponding natural language. The program code label is labeled with a specific program code corresponding to the natural language.

다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 각 자연어는 소정의 과정에 따라 수치화되어 하나의 이미지 슬라이스에 각각 부여되고, 상기 각 이미지 슬라이스에 레이블링을 수행하여 상기 각 이미지 슬라이스에 프로그램 코드 레이블을 부여한다.Next, the speech recognition-based artificial intelligence program coding apparatus 100 is characterized in that each natural language is digitized in accordance with a predetermined process and assigned to one image slice, and labeling is performed on each image slice, .

상기 프로그램 코드 레이블은 one-hot 인코딩 형식으로 구성되며, 상기 각 프로그램 코드 레이블은 특정 프로그램 코드와 각각 인덱스되어 있으며, 상기 프로그램 코드는 상기 자연어에 대해 하나의 완성된 프로그램 라인을 의미한다. 즉, 상기 프로그램 코드는 단순히 하나의 코드(a = b)뿐만 아니라 sum(), printf() 등과 같은 완전한 함수를 나타낼 수 있다. 이에 따라 상기 사용자는 사용자 음성을 순차적으로 입력함으로서, 복수의 프로그램 코드를 연결할 수 있도록 하여 하나의 완전한 프로그램을 생성할 수 있다.The program code label is configured in a one-hot encoding format, wherein each program code label is indexed with a specific program code, and the program code means one complete program line for the natural language. That is, the program code may represent a complete function such as sum (), printf (), etc., as well as a single code (a = b). Accordingly, the user can sequentially input the user's voice, thereby allowing a plurality of program codes to be connected to create a complete program.

다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 레이블링을 수행한 복수의 이미지 슬라이스를 특정 해상도(예: 32 x 32)를 가지는 이미지로 이미지화하여 이미지 데이터를 생성한다.Next, the speech recognition based artificial intelligence program coding apparatus 100 generates image data by imaging a plurality of the image slices subjected to labeling into an image having a specific resolution (for example, 32 x 32).

한편 상기 해상도는 학습되는 학습데이터의 전체 용량에 따라 지속적으로 추가할 수 있도록 구성된다. 즉, 음성인식 기반 인공지능 프로그램코딩 장치(10)는 상기 해상도를 확장해 가면서 상기 학습데이터를 적응적으로 학습할 수 있도록 한다.Meanwhile, the resolution is configured to be continuously added in accordance with the total capacity of the learning data to be learned. That is, the speech recognition based artificial intelligence program coding apparatus 10 can adaptively learn the learning data while expanding the resolution.

다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 이미지 데이터를 CNN에 입력함으로써, 자연어와 프로그램 코드 레이블 간의 매핑관계를 학습하여 특정 자연어에 대한 프로그램 코드를 출력할 수 있도록 하는 학습모델을 생성할 수 있도록 한다.Next, the speech recognition based artificial intelligence program coding device 100 generates a learning model for inputting the image data to the CNN, thereby learning a mapping relation between the natural language and the program code label and outputting the program code for a specific natural language .

상기에서 설명한 것과 같이, 상기 전처리 과정은 음성인식 기반 인공지능 프로그램코딩 장치(100)가 CNN을 통해 학습을 수행하는 경우, 학습데이터를 CNN에 적용하기 위해 수행된다.As described above, the preprocessing process is performed to apply learning data to the CNN when the speech recognition based artificial intelligence program coding device 100 performs learning through CNN.

도 4는 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치에서 RNN을 통해 기계학습을 수행하는 경우, RNN에 입력되는 입력데이터의 전처리 과정을 보인 도면이다.FIG. 4 is a diagram illustrating a preprocessing process of input data to be input to an RNN when performing a machine learning through an RNN in a speech recognition based artificial intelligence program coding apparatus according to an embodiment of the present invention.

도 4에 도시한 바와 같이, 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치(100)에서 RNN을 통해 기계학습을 수행하는 경우, RNN에 입력되는 입력데이터의 전처리 과정은, 우선 상기 음성인식 기반 인공지능 프로그램 코딩 장치(100)는 자연어와 프로그램 코드 레이블이 매핑되어 저장된 학습데이터를 학습데이터 데이터베이스(200)로부터 로딩한다.As shown in FIG. 4, in the case where the machine learning is performed through the RNN in the speech recognition based artificial intelligence program coding apparatus 100 according to the embodiment of the present invention, the preprocessing process of the input data input to the RNN The speech recognition based artificial intelligence program coding apparatus 100 loads training data mapped with a natural language and a program code label from the learning data database 200.

다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 각 자연어를 소정의 과정에 따라 수치화하여 하나의 수열로 생성하여, 상기 생성한 각 자연어에 대한 각각의 수열을 하나의 수열 슬라이스에 각각 부여한다. 이때, 상기 수열 슬라이스는 적어도 하나 이상의 비트열에 대한 조합을 포함하여, 상기 비트열의 사이즈는 RNN 네트워크의 크기에 따라 지속적으로 추가될 수 있다. 즉, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 비트열의 크기를 확장할 수 있도록 하여 상기 학습데이터를 적응적으로 학습할 수 있도록 한다.Next, the speech recognition-based artificial intelligence program coding apparatus 100 generates each of the natural words by a predetermined process and generates them as one sequence, and assigns the respective sequences for the generated natural language to one sequence slice do. At this time, the sequence slice includes a combination of at least one bit string, and the size of the bit string may be continuously added according to the size of the RNN network. That is, the speech recognition based artificial intelligence program coding apparatus 100 allows the size of the bit string to be expanded so that the learning data can be adaptively learned.

다음으로 상기 각 수열 슬라이스에 레이블링을 수행하여 상기 각 수열 슬라이스에 프로그램 코드 레이블을 부여하여 최종적인 소스 수열을 생성한다. 한편 상기 프로그램 코드 레이블은 one-hot 인코딩 형식으로 구성됨은 상술한 바와 같으며 이때, 상기 프로그램 코드 레이블은 상기 자연어에 대응하는 프로그램 코드에 대한 타겟 수열이 된다.Next, labeling is performed on each of the sequence slices to assign a program code label to each of the sequence slices to generate a final source sequence. Meanwhile, the program code label is configured as a one-hot encoding format, and the program code label is a target sequence for the program code corresponding to the natural language.

다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 생성한 소스 수열을 RNN에 입력함으로써, 자연어와 프로그램 코드 레이블 간의 매핑관계를 학습하여 특정 자연어에 대한 프로그램 코드를 출력할 수 있도록 하는 학습모델을 생성할 수 있도록 한다.Next, the speech recognition-based artificial intelligence program coding apparatus 100 inputs a generated source sequence into the RNN, thereby learning a mapping relation between a natural language and a program code label, and outputting a program code for a specific natural language . ≪ / RTI >

도 4를 참조하여 설명한 것과 같이, 상기 전처리 과정은 음성인식 기반 인공지능 프로그램코딩 장치(100)가 RNN을 통해 학습데이터에 대한 학습을 수행하는 경우, 상기 학습데이터를 RNN에 적용할 수 있도록 하기 위해 수행된다.As described above with reference to FIG. 4, the preprocessing process is performed so that the speech recognition-based artificial intelligence program coding apparatus 100 can apply the learning data to the RNN when performing learning on the learning data through the RNN .

도 5는 본 발명의 일 실시예에 따른 CNN을 통한 기계학습 구조와 학습과정을 설명하기 위해 나타낸 도면이다.FIG. 5 is a diagram illustrating a CNN-based learning structure and a learning process according to an embodiment of the present invention. Referring to FIG.

도 5에 도시한 바와 같이, 음성인식 기반 인공지능 프로그램코딩 장치(100)의 학습모델 생성부(130)에서 CNN을 통해 학습데이터를 학습하는 경우, 상기 CNN의 학습구조는 전처리과정을 통해 이미지화된 학습데이터를 입력받은 입력레이어, 특정 크기의 커널(kernel)을 이용하여 상기 커널과 상기 이미지의 특정 부분을 컨볼루션(convolution)하는 컨볼루션 레이어, 상기 컨볼루션한 특정 부분을 최대값이나 평균값으로 풀링하여 서브샘플링(subsampling)을 수행하는 풀링레이어(pooling layer) 및 완전연관레이어(fully connected layer)로 구성된다.As shown in FIG. 5, when the learning model generating unit 130 of the speech recognition based artificial intelligence program coding apparatus 100 learns learning data through CNN, the learning structure of the CNN is imaged through a preprocessing process A convolution layer for convoluting a specific portion of the image with the kernel using a kernel of a specific size, an input layer to which learning data is input, a convolution layer for pooling the convolved specific portion into a maximum value or an average value A pooling layer for performing subsampling and a fully connected layer.

또한 입력레이어는 전처리 과정을 통해 이미지화된 학습데이터를 입력받으며, 상기 컨볼루션 레이어는 특정 가중치를 가지는 커널을 미리 설정한 스트라이드(상기 커널의 이동단위를 의미함)에 따라 이동해 가면서 상기 이미지의 특정 부분과 상기 커널의 가중치를 컨볼루션하여, 상기 이미지의 특정 부분에 대한 특징 맵(feature map)을 생성하여 출력한다.In addition, the input layer receives the imaged learning data through a preprocessing process, and the convolution layer moves according to a predetermined stride (meaning a moving unit of the kernel) of a kernel having a specific weight, And a weight of the kernel, and generates and outputs a feature map for a specific portion of the image.

다음으로 풀링레이어는 맥스 풀링(max pooling) 또는 평균값 풀링(average pooling)방법을 통해 상기 커널과 스트라이드의 크기에 따라 상기 특징 맵을 풀링함으로써, 적어도 하나 이상의 서브 이미지 데이터로 서브 샘플링한다.The pooling layer then sub-samples at least one or more subimage data by pooling the feature maps according to the size of the kernel and stride through a max pooling or an average pooling method.

또한 상기 CNN은 상기 컨볼루션과 서브 샘플링 과정을 반복적으로 수행하여 특정 자연어에 대한 프로그램 코드 레이블에 대한 특징 맵을 생성할 수 있도록 한다.Also, the CNN can repeatedly perform the convolution and sub-sampling to generate a feature map for a program code label for a specific natural language.

다음으로 상기 완전연관레이어는 상기 프로그램 코드 레이블에 대한 특징 맵을 연결시켜 특정 자연어에 대한 프로그램 코드를 출력할 수 있도록 한다.Next, the fully associative layer links the feature map for the program code label to output the program code for a specific natural language.

이러한 과정을 통해 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 자연어, 프로그램 코드 및 상기 자연어와 프로그램 코드 간의 매핑관계에 대한 학습데이터를 학습할 수 있다. 또한 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 학습데이터의 업데이트를 반영하여 고도화된 학습모델을 생성함으로서, 사용자 음성에 대한 최적화된 프로그램코드를 추정하여 사용자에게 제공할 수 있다.Through this process, the speech recognition based artificial intelligence program coding device 100 can learn the natural language, the program code, and the learning data on the mapping relation between the natural language and the program code. Also, the speech recognition based artificial intelligence program coding apparatus 100 may estimate an optimized program code for a user's voice and provide the same to a user by generating an advanced learning model by reflecting the update of the learning data.

또한 음성인식 기반 인공지능 프로그램코딩 장치(100)는 특정 자연어와 이에 해당하는 프로그램코드를 미리 알고 있으므로, 상기 학습과정에 있어서 백프로퍼게이션 방법을 통해 상기 CNN의 네트워크에 대한 가중치를 조정할 수 있으며, 이를 통해 상기 CNN 네트워크의 정확도를 향상시킬 수 있다.Also, since the speech recognition-based artificial intelligence program coding apparatus 100 knows the specific natural language and the corresponding program code in advance, the weight for the network of the CNN can be adjusted through the back propagation method in the learning process, The accuracy of the CNN network can be improved.

도 6은 본 발명의 일 실시예에 따른 RNN을 통한 기계학습 구조와 학습과정을 설명하기 위해 나타낸 도면이다.FIG. 6 is a diagram for explaining a machine learning structure and a learning process through an RNN according to an embodiment of the present invention. Referring to FIG.

도 6에 도시한 바와 같이 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 장치(100)의 학습모델 생성부(130)에서 RNN을 통해 학습데이터를 학습하는 경우, RNN의 구조는 엔코더(encoder) 및 디코더(decoder)로 지칭되는 RNN 네트워크를 포함하여 구성될 수 있다.As shown in FIG. 6, when learning data is learned through the RNN in the learning model generation unit 130 of the speech recognition based artificial intelligence program coding apparatus 100 according to the embodiment of the present invention, an RNN network referred to as an encoder and a decoder.

상기 엔코더는 전처리 과정을 통해 생성한 소스 수열의 수치값을 순차적으로 입력받아, 내부노드의 상태값으로 축적하고, 상기 각 내부노드의 가중치에 따라 각 내부노드에 대한 최종상태를 디코더로 전달한다.The encoder sequentially receives the numerical values of the source sequence generated through the preprocessing process, accumulates the values as state values of the internal nodes, and delivers the final state of each internal node to the decoder according to the weights of the internal nodes.

또한 상기 디코더는 상기 엔코더로부터 전달된 소스 수열에 대한 최종상태를 상기 디코더를 구성하는 각 내부노드의 가중치에 따라 상기 소스 수열에 대한 타겟 수열(즉, 프로그램 코드 레이블)의 수치값을 하나씩 출력한다. Also, the decoder outputs the final state of the source sequence transmitted from the encoder, one by one, to the target sequence (i.e., the program code label) for the source sequence according to the weight of each internal node constituting the decoder.

즉, 상기 엔코더와 디코더를 구성하는 각각의 노드는 서로 다른 가중치를 가지고 있으며, 상기 엔코더는 소스 수열을 입력데이터로 순차적으로 받아 타임 스템프(time stamp)에 따라 피드 포워드 프로퍼게이션(feed forward propagation) 시켜 상기 엔코더의 제일 마지막 노드의 정보를 상기 디코더에 전달한다. 이때, 상기 디코더에 전달되는 정보는 상기 입력된 소스 수열의 정보를 모두 담고 있는 센텐스 리프리젠테이션(sentence representation)이라 볼 수 있다. 또한 상기 소스 수열의 정보를 받은 디코더는 상기 각 노드의 가중치에 따라 타겟 수열에 대한 수치값을 하나씩 출력함으로서, 특정 자연어에 대한 프로그램 코드를 추정할 수 있도록 한다.That is, each of the nodes constituting the encoder and the decoder has different weights, and the encoder sequentially receives the source sequence as input data and performs feed forward propagation according to a time stamp, And transmits the information of the last node of the encoder to the decoder. At this time, information transmitted to the decoder can be regarded as a sentence representation containing all the information of the input source sequence. The decoder receiving the information of the source sequence outputs the numerical values of the target sequence one by one according to the weights of the nodes, so that the program code for a specific natural language can be estimated.

도 7은 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 방법이 실행되는 과정을 보인 흐름도이다.FIG. 7 is a flowchart illustrating a process of executing a speech recognition based artificial intelligence program coding method according to an embodiment of the present invention.

도 7에 도시한 바와 같이, 본 발명의 일 실시예에 따른 음성인식 기반 인공지능 프로그램코딩 방법이 실행되는 과정은 우선, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 기계학습의 입력데이터가 되는 학습데이터를 CNN이나 RNN에 적용할 수 있도록 상기 학습데이터를 전처리하여 학습데이터 데이터베이스(200)에 저장한다(S110).As shown in FIG. 7, the process of executing the speech recognition based artificial intelligence program coding method according to an embodiment of the present invention starts with the speech recognition based artificial intelligence program coding apparatus 100, The learning data is pre-processed and stored in the learning data database 200 so that the learning data can be applied to CNN or RNN (S110).

도 3 및 도 4를 참조하여 설명한 것과 같이, 학습데이터를 학습하여 학습모델을 생성하기 위한 기계학습의 입력데이터를 생성하기 위해 수행되는 것으로, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 CNN을 통해 학습데이터를 학습하는 경우, 상기 학습데이터를 이미지화하는 전처리 과정을 수행하며, 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 RNN을 통해 학습데이터를 학습하는 경우, 상기 학습데이터를 소스 수열로 변환하는 전처리 과정을 수행한다.As described with reference to FIG. 3 and FIG. 4, the speech recognition based artificial intelligence program coding apparatus 100 is executed to generate input data of machine learning for learning data and to generate a learning model, The learning-based artificial intelligence program coding apparatus 100 performs learning processing on the learning data by using the learning data as a source sequence, and when the learning data is learned through the RNN, And performs a preprocessing process for converting.

다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 학습데이터 데이터베이스(200)로부터 전처리한 학습데이터를 로딩(S120)하고, 상기 로딩한 학습데이터를 학습(S130)하여 특정 자연어에 대한 특정 프로그램코드를 생성하기 위한 학습모델을 생성하여 학습모델 데이터베이스(300)에 저장한다.Next, the speech recognition-based artificial intelligence program coding apparatus 100 loads learning data preprocessed from the learning data database 200 (S120), and learns the loaded learning data (S130) to acquire specific program codes And stores the learning model in the learning model database 300.

한편 상기 학습은 RNN 혹은 CNN을 통해 수행될 수 있음은 상술한 바와 같다.On the other hand, the learning can be performed through RNN or CNN as described above.

이후, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 사용자 디바이스(400)로부터 프로그램코딩을 위한 사용자 음성을 수신한 경우(S210), 상기 수신한 사용자 음성을 인식하기 위해 자연어 처리과정을 수행하고, 상기 자연어 처리과정을 통해 생성한 자연어를 전처리한다(S220).When the speech recognition based artificial intelligence program coding apparatus 100 receives a user speech for program coding from the user device 400 (S210), the speech recognition based artificial intelligence program coding apparatus 100 performs a natural language process to recognize the received user speech, The natural language generated through the natural language processing is pre-processed (S220).

한편 사용자 음성에 대한 자연어는 음성인식 기반 인공지능 프로그램코딩 장치(100)에서 처리되어 생성되는 것이 바람직하지만, 음성인식 엔진을 탑재한 사용자 디바이스(200)에서 자체적으로 처리되어 생성될 수 있다. 이때, 상기 사용자 디바이스(200)는 상기 생성한 자연어를 음성인식 기반 인공지능 프로그램코딩 장치(100)로 전송한다. On the other hand, it is preferable that the natural language of the user voice is generated and processed by the speech recognition based artificial intelligence program coding apparatus 100, but it can be processed and generated in the user device 200 equipped with the speech recognition engine. At this time, the user device 200 transmits the generated natural language to the speech recognition based artificial intelligence program coding device 100. [

한편 사용자 음성에 대한 전처리 과정은 음성인식 기반 인공지능 프로그램코딩 장치(100)의 기계학습 방법(즉, RNN 또는 CNN)에 따라 상기 S110단계에서 수행하는 전처리 과정과 동일한 과정을 통해 수행된다.On the other hand, the preprocessing process for the user speech is performed in the same manner as the preprocessing process performed in step S110 according to the machine learning method (i.e., RNN or CNN) of the speech recognition based artificial intelligence program coding apparatus 100. [

다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 학습모델 데이터베이스(300)로부터 학습모델을 로딩하고, 상기 로딩한 학습모델에 전처리한 사용자 음성에 대한 자연어를 입력한다. 이를 통해 상기 자연어에 대한 프로그램코드를 생성함으로서, 상기 사용자 음성에 상응하는 프로그램코드를 추정한다(S230).Next, the speech recognition based artificial intelligence program coding apparatus 100 loads a learning model from the learning model database 300, and inputs a natural language for the user speech preprocessed in the loaded learning model. In operation S230, a program code corresponding to the user voice is estimated by generating a program code for the natural language.

즉, 상기 학습모델의 입력은 자연어이며, 상기 학습모델의 출력은 상기 자연어에 대한 프로그램 코드 레이블이며, 상기 프로그램 코드 레이블에 대한 프로그램 코드를 생성함으로써, 상기 프로그램 코드를 추정하게 된다.That is, the input of the learning model is a natural language, and the output of the learning model is a program code label for the natural language, thereby generating the program code for the program code label, thereby estimating the program code.

다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 추정한 프로그램코드를 해당 사용자가 구비한 사용자 디바이스(400)로 전송함으로써, 상기 추정한 프로그램코드를 사용자에게 제공한다.Next, the speech recognition based artificial intelligence program coding apparatus 100 transmits the estimated program code to the user device 400 provided by the user, thereby providing the estimated program code to the user.

한편 음성인식 기반 인공지능 프로그램코딩 장치(100)는 강화학습을 통해 상기 추정한 프로그램코드의 정확도와 신뢰성을 고도화시킬 있다.Meanwhile, the speech recognition based artificial intelligence program coding apparatus 100 enhances the accuracy and reliability of the estimated program code through reinforcement learning.

즉, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 추정한 프로그램코드를 프로그래밍 언어에 대한 전문가와 같이 상기 특정 권한을 가지는 사용자 혹은 관리자에게 실시간 혹은 주기적으로 제공(S240)하여 검증과정(S250)을 수행할 수 있다. That is, the speech recognition-based artificial intelligence program coding apparatus 100 provides the estimated program code to a user or an administrator having the specific authority like an expert on a programming language in real time or periodically (S240) Can be performed.

다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 검증과정의 검증결과에 따라 학습데이터를 업데이트(S260)할 수 있다.Next, the speech recognition based artificial intelligence program coding apparatus 100 may update the learning data according to the verification result of the verification process (S260).

즉, 상기 특정 권한을 가지는 사용자 혹은 관리자는 음성인식 기반 인공지능 프로그램코딩 장치(100)로부터 실시간 혹은 주기적으로 상기 사용자 음성에 대한 자연어 및 해당 자연어를 토대로 추정한 프로그램코드를 수신하고, 상기 자연어에 대한 프로그램코드가 최적의 결과가 아닌 경우에 해당 자연어에 해당하는 최적의 프로그램코드를 포함하는 업데이트 데이터를 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)로 제공하게 된다.That is, the user or manager having the specific authority receives the program code estimated based on the natural language of the user voice and the natural language in real time or periodically from the speech recognition based artificial intelligence program coding device 100, If the program code is not optimal, update data including the optimal program code corresponding to the natural language is provided to the speech recognition based artificial intelligence program coding apparatus 100.

이때, 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 제공받은 업데이트 데이터를 반영하여 학습데이터를 업데이트함으로써, 상기 학습데이터 데이터베이스(200)를 업데이트한다.At this time, the speech recognition based artificial intelligence program coding device 100 updates the learning data database 200 by updating learning data reflecting the provided updating data.

이후, 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 학습데이터 가 업데이트 된 경우, 상기 업데이트된 학습데이터를 반영한 강화학습과정을 수행하여 새로운 학습모델을 생성한다. 이러한 과정을 반복함으로써, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 프로그램코딩을 위한 학습모델에 대한 정확성과 신뢰성을 획기적으로 고도화시킬 수 있다.Thereafter, when the learning data is updated, the speech recognition based artificial intelligence program coding apparatus 100 performs a reinforcement learning process that reflects the updated learning data to generate a new learning model. By repeating this process, the speech recognition based artificial intelligence program coding apparatus 100 can dramatically improve the accuracy and reliability of the learning model for program coding.

이상에서 설명한 바와 같이, 본 발명은 사용자의 음성을 기반으로 프로그램코드를 생성하기 위해 자연어와 상기 자연어에 해당하는 프로그램코드를 매핑한 학습데이터를 RNN 또는 CNN을 통해 학습하여 학습모델을 생성하며, 상기 사용자가 프로그램코드를 생성하기 위해 사용자 음성을 자연어로 변환하여 상기 학습모델에 입력함으로써, 단순히 사용자의 음성만으로도 프로그램코드가 자동으로 생성될 수 있도록 하는 효과가 있다.As described above, according to the present invention, in order to generate a program code based on a user's voice, learning data obtained by mapping a natural language and a program code corresponding to the natural language is learned through RNN or CNN to generate a learning model, There is an effect that a user can automatically generate a program code by simply converting the user's voice into a natural language and inputting it into the learning model to generate the program code.

또한 본 발명은 상기 생성한 프로그램코드에 대한 검증과정을 통해 학습데이터를 업데이트함으로써, 상기 학습데이터에 대한 강화학습을 수행하여 사용자 음성을 토대로 생성되는 프로그램코드의 정확도와 신뢰성을 더욱 향상시킬 수 있는 효과가 있다.Further, according to the present invention, the learning data is updated through the verification process on the generated program code, thereby performing reinforcement learning on the learning data, thereby improving the accuracy and reliability of the program code generated based on the user's voice .

상기에서는 본 발명에 따른 바람직한 실시 예를 위주로 상술하였으나, 본 발명의 기술적 사상은 이에 한정되는 것은 아니며 본 발명의 각 구성요소는 동일한 목적 및 효과의 달성을 위하여 본 발명의 기술적 범위 내에서 변경 또는 수정될 수 있을 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. .

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the present invention.

10: 음성인식을 통한 인공지능 프로그램코딩 시스템
100: 음성인식을 통한 인공지능 프로그램코딩 장치
110: 음성인식부 120: 전처리부
130: 학습모델 생성부 140: 프로그램 코드 추정부
150: 검증부 160: 학습데이터 업데이트부
200: 학습데이터 데이터베이스 300: 학습모델 데이터베이스
400: 사용자 디바이스
10: Artificial intelligence program coding system through speech recognition
100: Artificial intelligence program coding device through speech recognition
110: voice recognition unit 120: preprocessing unit
130: Learning model generation unit 140: Program code estimation unit
150: verification unit 160: learning data update unit
200: learning data database 300: learning model database
400: User device

Claims (12)

자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 단계; 및
사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 단계;를 포함하는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.
Generating a learning model by learning a mapping relation between a natural language phrase and a program code; And
Extracting a natural language phrase by recognizing the user's voice, inputting the natural language phrase into the learning model, and estimating and outputting the program code.
청구항 1에 있어서,
상기 음성인식을 통한 인공지능 프로그램코딩 방법은,
사용자의 음성을 인식하여 자연어 문구를 추출하기 위한 음성인식 단계;
상기 출력한 프로그램 코드를 검증하는 단계; 및
상기 검증한 결과에 따라 상기 매핑관계를 추가하거나 변경하는 단계;를 더 포함하며,
상기 음성인식은 클라우드서버, 로컬서버, 사용자기기 또는 이들의 조합에 구비된 음성인식 엔진을 통해 수행되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.
The method according to claim 1,
The artificial intelligence program coding method using speech recognition,
A speech recognition step for recognizing a user's speech and extracting a natural language phrase;
Verifying the output program code; And
And adding or changing the mapping relation according to the verified result,
Wherein the speech recognition is performed through a speech recognition engine provided in a cloud server, a local server, a user equipment, or a combination thereof.
청구항 1에 있어서,
상기 학습모델을 생성하는 단계는,
CNN(Convolutional Neural Network)을 통한 기계학습을 수행하는 단계;를 포함하며,
상기 CNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며,
상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.
The method according to claim 1,
Wherein the step of generating the learning model comprises:
Performing machine learning through a Convolutional Neural Network (CNN)
The size of the CNN for the network may be composed of a plurality of networks having the same size or may be configured to gradually increase in size so as to adaptively correspond to the overall capacity to be learned,
Wherein the depth of the network is variably set according to the size.
청구항 3에 있어서,
상기 CNN은, 특정 프로그램 코드에 대한 레이블에 자연어 문구를 할당한 자연어 문구와 프로그램 코드 간의 매핑관계를 수치화한 이미지를 입력 받아 학습을 수행하며,
상기 매핑관계를 수치화한 각각의 이미지는, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정되며,
상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하며, 상기 이미지 슬라이스는 바이너리 이미지, 그레이 스케일 이미지, 컬러이미지 또는 이들의 조합을 포함하며,
상기 이미지의 해상도는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.
The method of claim 3,
The CNN performs learning by receiving an image obtained by digitizing a mapping relation between a natural language phrase and a program code in which a natural language phrase is assigned to a label for a specific program code,
Each image obtained by digitizing the mapping relationship is set so that a mapping relation between a specific natural language and a program code is not uniquely duplicated,
Wherein the image comprises at least one image slice, the image slice comprising a binary image, a grayscale image, a color image or a combination thereof,
Wherein the resolution of the image is continuously added according to the size of the network.
청구항 1에 있어서,
상기 학습모델을 생성하는 단계는,
RNN(Recursive Neural Network)을 통한 기계학습을 수행하는 단계;를 포함하며,
상기 RNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점짐적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며,
상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.
The method according to claim 1,
Wherein the step of generating the learning model comprises:
Performing machine learning through a Recursive Neural Network (RNN)
The size of the RNN for the network may be constituted by a plurality of networks having the same size or may be constructed so that the sizes are gradually increased so as to adaptively correspond to the overall capacity to be learned,
Wherein the depth of the network is variably set according to the size.
청구항 5에 있어서,
상기 RNN은, 특정 자연어 문구에 대한 프로그램 코드 간의 매핑관계를 수치화한 수열을 입력 받아 학습을 수행하며,
상기 매핑관계를 수치화한 각각의 수열은, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정하며,
상기 수열은 적어도 하나 이상의 수열 슬라이스를 포함하며, 상기 수열 슬라이스는 적어도 하나 이상의 비트열의 조합을 포함하며,
상기 비트열의 사이즈는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.
The method of claim 5,
The RNN performs learning by inputting a series of numbers obtained by digitizing a mapping relation between program codes for a specific natural language phrase,
Each of the series of numerical values of the mapping relation sets the mapping relation between the specific natural language and the program code so as not to be unique,
Wherein the sequence comprises at least one or more sequence slices, wherein the sequence slice comprises a combination of at least one bit sequence,
Wherein the size of the bit string is continuously added according to the size of the network.
자연어 문구와 프로그램 코드 간의 매핑관계를 학습하여 학습모델을 생성하는 학습모델 생성부; 및
사용자의 음성을 인식하여 자연어 문구를 추출한 다음 상기 학습모델에 입력하여 프로그램 코드를 추정하여 출력하는 프로그램 코드 추정부;를 포함하는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 시스템.
A learning model generation unit for learning a mapping relation between a natural language phrase and a program code to generate a learning model; And
And a program code estimating unit for recognizing a user's speech, extracting a natural language phrase, inputting the natural language phrase into the learning model, and estimating and outputting the program code.
청구항 6에 있어서,
상기 음성인식을 통한 인공지능 프로그램코딩 시스템은,
사용자의 음성을 인식하여 자연어 문구를 추출하기 위한 음성인식부;를 더 포함하며,
상기 음성인식은 클라우드서버, 로컬서버, 사용자기기 또는 이들의 조합에 구비된 음성인식 엔진을 통해 수행되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 시스템.
The method of claim 6,
Wherein the artificial intelligence program coding system through speech recognition comprises:
And a speech recognition unit for recognizing the user's speech and extracting a natural language phrase,
Wherein the speech recognition is performed through a speech recognition engine provided in a cloud server, a local server, a user equipment, or a combination thereof.
청구항 6에 있어서,
상기 학습모델 생성부는,
CNN(Convolutional Neural Network)을 통해 기계학습을 수행하며,
상기 CNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점진적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며,
상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 시스템.
The method of claim 6,
Wherein the learning model generation unit comprises:
Performs machine learning through Convolutional Neural Network (CNN)
The size of the CNN for the network may be composed of a plurality of networks having the same size or may be configured to gradually increase in size so as to adaptively correspond to the overall capacity to be learned,
Wherein the depth of the network is variably set according to the size.
청구항 9에 있어서,
상기 CNN은, 특정 프로그램 코드에 대한 레이블에 자연어 문구를 할당한 자연어 문구와 프로그램 코드 간의 매핑관계를 수치화한 이미지를 입력 받아 학습을 수행하며,
상기 매핑관계를 수치화한 각각의 이미지는, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정되며,
상기 이미지는 적어도 하나 이상의 이미지 슬라이스를 포함하며, 상기 이미지 슬라이스는 바이너리 이미지, 그레이 스케일 이미지, 컬러이미지 또는 이들의 조합을 포함하며,
상기 이미지의 해상도는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 시스템.
The method of claim 9,
The CNN performs learning by receiving an image obtained by digitizing a mapping relation between a natural language phrase and a program code in which a natural language phrase is assigned to a label for a specific program code,
Each image obtained by digitizing the mapping relationship is set so that a mapping relation between a specific natural language and a program code is not uniquely duplicated,
Wherein the image comprises at least one image slice, the image slice comprising a binary image, a grayscale image, a color image or a combination thereof,
Wherein the resolution of the image is continuously added according to the size of the network.
청구항 7에 있어서,
상기 학습모델 생성부는,
RNN(Recursive Neural Network)을 통해 기계학습을 수행하며,
상기 RNN의 네트워크에 대한 크기는, 동일한 크기를 가지는 복수의 네트워크로 구성되거나, 크기가 점짐적으로 커지도록 구성되어 학습해야할 전체적인 용량에 적응적으로 대응하도록 구성되며,
상기 네트워크의 깊이는 상기 크기에 따라 가변적으로 설정되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 시스템.
The method of claim 7,
Wherein the learning model generation unit comprises:
Performs machine learning through RNN (Recursive Neural Network)
The size of the RNN for the network may be constituted by a plurality of networks having the same size or may be constructed so that the sizes are gradually increased so as to adaptively correspond to the overall capacity to be learned,
Wherein the depth of the network is variably set according to the size.
청구항 11에 있어서,
상기 RNN은, 특정 자연어 문구에 대한 프로그램 코드 간의 매핑관계를 수치화한 수열을 입력 받아 학습을 수행하며,
상기 매핑관계를 수치화한 각각의 수열은, 특정 자연어와 프로그램 코드 간의 매핑관계를 유일하게 중복되지 않게 설정하며,
상기 수열은 적어도 하나 이상의 수열 슬라이스를 포함하며, 상기 수열 슬라이스는 적어도 하나 이상의 비트열의 조합을 포함하며,
상기 비트열의 사이즈는 네트워크의 크기에 따라 지속적으로 추가할 수 있도록 구성되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 시스템.
The method of claim 11,
The RNN performs learning by inputting a series of numbers obtained by digitizing a mapping relation between program codes for a specific natural language phrase,
Each of the series of numerical values of the mapping relation sets the mapping relation between the specific natural language and the program code so as not to be unique,
Wherein the sequence comprises at least one or more sequence slices, wherein the sequence slice comprises a combination of at least one bit sequence,
Wherein the size of the bit string is continuously added according to the size of the network.
KR1020170159924A 2017-11-28 2017-11-28 A program coding system based on artificial intelligence through voice recognition and a method thereof KR102027141B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170159924A KR102027141B1 (en) 2017-11-28 2017-11-28 A program coding system based on artificial intelligence through voice recognition and a method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170159924A KR102027141B1 (en) 2017-11-28 2017-11-28 A program coding system based on artificial intelligence through voice recognition and a method thereof

Publications (2)

Publication Number Publication Date
KR20190061488A true KR20190061488A (en) 2019-06-05
KR102027141B1 KR102027141B1 (en) 2019-11-04

Family

ID=66845101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170159924A KR102027141B1 (en) 2017-11-28 2017-11-28 A program coding system based on artificial intelligence through voice recognition and a method thereof

Country Status (1)

Country Link
KR (1) KR102027141B1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102087889B1 (en) 2019-11-11 2020-03-11 손동우 A deep-learning eduacation system using arrow images
CN111292721A (en) * 2020-02-20 2020-06-16 深圳壹账通智能科技有限公司 Code compiling method and device and computer equipment
KR20210004166A (en) * 2019-07-03 2021-01-13 샘코포레이션 주식회사 Method and apparatus of updating a color code included in a image using the artificial intelligence
WO2021182984A1 (en) * 2020-03-13 2021-09-16 Сергей Станиславович ЧАЙКОВСКИЙ Method and system for applying artificial intelligence in software development
KR102324352B1 (en) * 2021-06-22 2021-11-12 수테크시스템즈 주식회사 Ai-based program auto-generation system
WO2022019533A1 (en) * 2020-07-24 2022-01-27 주식회사 레드브릭 Method, system, and non-transitory computer-readable recording medium for supporting block coding
WO2023286951A1 (en) * 2021-07-13 2023-01-19 주식회사크리모 Coding algorithm training tool capable of speech recognition
CN115794065A (en) * 2022-11-01 2023-03-14 中犇科技有限公司 Visual intelligent programming method based on AI voice interaction
DE102021132399A1 (en) 2021-12-09 2023-06-15 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Method, system and computer program product for autonomously constructing and/or designing at least one component for an entity

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102396187B1 (en) 2020-10-12 2022-05-09 광운대학교 산학협력단 System for automatically generating code using voice recognition and method for automatically generating code using the same
US20230041718A1 (en) * 2021-08-09 2023-02-09 Kenneth Raymond Perry Automated code generation based on pseudo-code

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060106608A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Method and system for efficient voice-based programming

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060106608A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Method and system for efficient voice-based programming

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Aditya Desai et al, "Program Synthesis using Natural Language"(2015.09.) 1부.* *
Francisco Javier Ordóñez et al, "Deep Convolutional and LSTM Recurrent Neural Networks for Multimodal Wearable Activity Recognition", Sensors Volume 16, Issue 1(2016.01.) 1부.* *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210004166A (en) * 2019-07-03 2021-01-13 샘코포레이션 주식회사 Method and apparatus of updating a color code included in a image using the artificial intelligence
KR102087889B1 (en) 2019-11-11 2020-03-11 손동우 A deep-learning eduacation system using arrow images
CN111292721A (en) * 2020-02-20 2020-06-16 深圳壹账通智能科技有限公司 Code compiling method and device and computer equipment
WO2021182984A1 (en) * 2020-03-13 2021-09-16 Сергей Станиславович ЧАЙКОВСКИЙ Method and system for applying artificial intelligence in software development
WO2022019533A1 (en) * 2020-07-24 2022-01-27 주식회사 레드브릭 Method, system, and non-transitory computer-readable recording medium for supporting block coding
KR102324352B1 (en) * 2021-06-22 2021-11-12 수테크시스템즈 주식회사 Ai-based program auto-generation system
WO2023286951A1 (en) * 2021-07-13 2023-01-19 주식회사크리모 Coding algorithm training tool capable of speech recognition
DE102021132399A1 (en) 2021-12-09 2023-06-15 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Method, system and computer program product for autonomously constructing and/or designing at least one component for an entity
CN115794065A (en) * 2022-11-01 2023-03-14 中犇科技有限公司 Visual intelligent programming method based on AI voice interaction
CN115794065B (en) * 2022-11-01 2023-11-03 中犇科技有限公司 Visual intelligent programming method based on AI voice interaction

Also Published As

Publication number Publication date
KR102027141B1 (en) 2019-11-04

Similar Documents

Publication Publication Date Title
KR20190061488A (en) A program coding system based on artificial intelligence through voice recognition and a method thereof
CN109859736B (en) Speech synthesis method and system
CN111061847A (en) Dialogue generation and corpus expansion method and device, computer equipment and storage medium
CN110609891A (en) Visual dialog generation method based on context awareness graph neural network
CN113127624B (en) Question-answer model training method and device
CN110990543A (en) Intelligent conversation generation method and device, computer equipment and computer storage medium
CN113505205A (en) System and method for man-machine conversation
CN111274362B (en) Dialogue generation method based on transformer architecture
WO2020155619A1 (en) Method and apparatus for chatting with machine with sentiment, computer device and storage medium
CN117234341B (en) Virtual reality man-machine interaction method and system based on artificial intelligence
JP2021106016A (en) Dialog generation method, device, electronic equipment, and medium
CN112131368B (en) Dialogue generation method and device, electronic equipment and storage medium
CN111737432A (en) Automatic dialogue method and system based on joint training model
CN114860915A (en) Model prompt learning method and device, electronic equipment and storage medium
CN114424208A (en) Gated attention neural network
CN113823272A (en) Voice processing method, device, electronic equipment and storage medium
CN110516240B (en) Semantic similarity calculation model DSSM (direct sequence spread spectrum) technology based on Transformer
CN113326367B (en) Task type dialogue method and system based on end-to-end text generation
CN110955765A (en) Corpus construction method and apparatus of intelligent assistant, computer device and storage medium
CN114548053A (en) Text comparison learning error correction system, method and device based on editing method
CN117236335B (en) Two-stage named entity recognition method based on prompt learning
CN114528387A (en) Deep learning conversation strategy model construction method and system based on conversation flow bootstrap
CN113779224A (en) Personalized dialogue generation method and system based on user dialogue history
CN113420111A (en) Intelligent question-answering method and device for multi-hop inference problem
CN115840820A (en) Small sample text classification method based on domain template pre-training

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