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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000013473 artificial intelligence Methods 0.000 title abstract description 8
- 238000013527 convolutional neural network Methods 0.000 claims description 55
- 238000013507 mapping Methods 0.000 claims description 49
- 238000010801 machine learning Methods 0.000 claims description 38
- 238000013528 artificial neural network Methods 0.000 claims description 6
- 238000013135 deep learning Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 41
- 238000007781 pre-processing Methods 0.000 description 29
- 238000012795 verification Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000003058 natural language processing Methods 0.000 description 8
- 238000011176 pooling Methods 0.000 description 6
- 230000002787 reinforcement Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000238558 Eucarida Species 0.000 description 1
- 238000012356 Product development Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/16—Speech 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
Description
본 발명은 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 사용자의 음성을 인식하여 자연어로 변환하고, 상기 변환된 자연어에 대응하는 프로그래밍 코드를 생성할 때, 딥러닝을 포함한 인공지능을 알고리즘을 적용하여 프로그래밍 결과가 사용자의 음성에 의해서 자동으로 생성, 개선 및 최적화되도록 하는 음성인식을 통한 인공지능 프로그램코딩 시스템 및 그 방법에 관한 것이다.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
이러한 자연어-프로그램 코드 레이블에 대한 매핑 테이블은 음성인식을 통한 인공지능 프로그램코딩 장치(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
한편 음성인식을 통한 인공지능 프로그램코딩 장치(100)는 학습데이터를 학습하는 과정에 있어서 상기에서 나열한 기계학습 기법(즉, RNN 또는 CNN)에 적합하도록 상기 학습데이터를 전처리한다. 이후, 음성인식을 통한 인공지능 프로그램코딩 장치(100)는 상기 전처리한 학습데이터를 학습하여, 특정 자연어 문구에 대한 프로그램코드를 추정하기 위한 학습모델을 생성한다. 한편 상기 CNN 또는 RNN에 따른 전처리 과정은 도 3 및 도 4를 각각 참조하여 상세히 설명하도록 한다.Meanwhile, the artificial intelligence
사용자는 음성인식을 통한 인공지능 프로그램코딩 장치(100)를 통해 프로그램 코드를 생성하기 위해 상기 학습모델 데이터베이스(300)로부터 학습모델을 액세스하여 사용한다. 사용자 디바이스(400)에서는 음성인식을 통한 인공지능 프로그램코딩 장치(100)를 통하거나 혹은 자체적적으로 상기 음성인식을 통한 인공지능 프로그램코딩 장치(100)로부터 다운로딩한 프로그램코딩용 앱을 통해서 사용자의 음성을 인식한 결과를 프로그램 코드로 변환한다(④). 이 과정에서 사용자는 음성으로 입력한 내용과 프로그램 결과가 최적이 아니라면 새롭게 자연어와 프로그램 코드의 매핑 데이터를 입력시킬 수 있다. 즉, 특정 권한을 가진 사용자나 관리자는 출력된 프로그램을 확인한 다음 검증과정을 거쳐 최적의 프로그램인지 확증하고 그 결과를 상기 매핑 테이블을 저장하고 있는 학습데이터 데이터베이스(200)에 업데이트 한다(⑤). 여기서 특정 권한을 가진 사용자나 관리자는 특정 프로그래밍 언어에 대한 전문가가 될 수 있다. 따라서 상기 검증과정을 수행하는 사용자는 일반 사용자가 아니라 상기 특정 프로그래밍 언어에 대한 고도화된 숙련도를 가지고 있는 사람을 의미한다.The user accesses and uses the learning model from the
또한 사용자 디바이스(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
다음으로 음성인식코딩 서버는 데이터베이스가 새롭게 갱신되면 이를 이용하여 학습모델도 새롭게 갱신하고(⑥) 그 결과를 학습모델 데이터베이스(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
도 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
음성인식부(110)는 사용자 단말로부터 실시간으로 수신되는 사용자 음성을 인식하고, 상기 인식한 사용자 음성에 대한 자연어 문구(이하 자연어라 칭함)를 추출하여 전처리부(120)로 제공한다.The
이때, 상기 전처리부(120)는 상기 자연어를 전처리하여 상기 학습모델 생성부(130)에 의해 생성한 학습모델에 입력할 수 있도록 함으로써, 상기 학습모델을 통해 사용자 음성에 대한 프로그램 코드를 추정할 수 있도록 한다.At this time, the
즉, 상기 음성인식부(110)는 음성인식 엔진을 통해 사용자 음성을 인식하여 자연어 처리를 수행함으로써, 해당 사용자의 음성으로부터 자연어를 추출하여, 학습모델을 통해 상기 추출한 자연어에 대한 특정 프로그램 코드를 추정할 수 있도록 하는 것이다.That is, the
한편 상기 음성인식부(100)는 프로그래밍 실습이나 코딩작업을 수행하는 사용자에 의해 입력되는 사용자 음성을 형태소, 구문, 의미, 담화분석 등을 통해 자연어 처리를 수행하는 것으로, 에코(echo), 시리(siri) 등과 같은 다양한 음성인식 엔진 또는 음성인식을 위한 다양한 기계학습 방법을 이용하여 사용자 음성에 대한 자연어 처리를 수행할 수 있으며, 본 발명에서는 사용자 음성을 자연어 처리하는 방법에 대해서는 그 제한을 두지 않는다.Meanwhile, the
한편 사용자 음성에 대한 자연어 처리는 상기 음성인식엔진을 탑재한 사용자 디바이스(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
또한 전처리부(120)는 학습데이터 데이터베이스(200)에 저장된 학습데이터를 로딩하여, 상기 학습모델 생성부(130)에서 수행되는 기계학습 방법에 따라 상기 로딩한 학습데이터를 전처리한다.The
한편 학습데이터는 특정 프로그램 코드에 인덱스된 one-hot 인코딩 방식으로 구성된 프로그램 코드 레이블과 해당 프로그램 코드 레이블에 대한 자연어가 1:1로 매핑된 매핑테이블 형태로 학습데이터 데이터베이스(200)에 저장된다.On the other hand, the learning data is stored in the learning
또한 학습모델 생성부(130)는 CNN, RNN 중 적어도 하나의 기계학습 방법을 통해 상기 전처리된 학습데이터를 학습하여 학습모델을 생성할 수 있다.Also, the learning
따라서, 상기 전처리부(120)는 상기 학습모델 생성부(130)가 CNN을 통해 기계학습을 수행하는 경우, 상기 학습데이터가 CNN에 적합하도록 상기 매핑테이블의 자연어와 프로그램 코드 간의 매핑관계를 수치화하여 이미지화하고, 상기 이미지화한 학습데이터를 학습데이터 데이터베이스(200)에 저장한다.Accordingly, when the learning
이후, 학습모델 생성부(120)는 상기 이미지화한 학습데이터를 입력받아 특정 자연어에 대한 프로그램코드를 추정할 수 있도록 하는 학습모델을 생성하여 학습모델 데이터베이스(300)에 저장한다.Then, the learning
한편 상기 매핑관계를 수치화한 각각의 이미지는 특정 자연어와 프로그램 코드 레이블 간의 매핑관계를 유일하게 중복되지 않도록 설정된다.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
이후, 학습모델 생성부(120)는 상기 자연어에 대한 프로그램 코드 레이블 간의 매핑관계를 수치화한 복수의 수열을 입력받아 학습을 수행하여, 사용자 음성으로부터 특정 프로그램 코드를 추정할 수 있도록 하는 학습모델을 생성하여 학습모델 데이터베이스(300)에 저장한다.Thereafter, the learning
한편 상기 매핑관계를 수치화한 각각의 수열은 특정 자연어와 프로그램 코드 간 레이블의 매핑관계를 유일하게 중복되지 않도록 설정된다.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
또한 상기 학습모델 생성부(130)에서 생성된 학습모델은 사용자 디바이스(200)에서 인식되거나, 상기 음성인식부(110)에서 인식한 사용자 음성을 토대로 프로그램 코드를 추정하기 위한 것으로, 상기 학습모델의 입력은 상기 인식한 사용자의 음성에 대한 자연어를 전처리한 데이터이며, 출력은 해당 자연어에 대한 프로그램 코드이다.The learning model generated by the learning
또한 학습모델 생성부(130)는 특정 자연어에 대한 프로그램 코드를 알고 있으므로, 상기 학습과정에 있어서 백프로퍼게이션(back propagation)방법을 적용하여 기계학습 네트워크(즉, RNN 또는 CNN 네트워크)의 가중치를 조정함으로써, 상기 학습모델을 생성하기 위한 기계학습 네트워크의 정확도를 향상시킬 수 있도록 한다.Also, since the learning
또한 프로그램 코드 추정부(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
이때, 제공되는 프로그램 코드는 해당 사용자가 요청한 사용자 음성에 대한 프로그래밍 언어(예: 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
즉, 학습모델 생성부(130)가 CNN을 통해 학습데이터를 학습하여 학습모델을 생성하는 경우 상기 사용자 음성에 대한 자연어는 이미지화되며, 상기 학습모델 생성부(130)가 RNN을 통해 학습데이터를 학습하여 학습모델을 생성하는 경우 상기 사용자 음성에 대한 자연어는 수열 슬라이스로 전처리된다.That is, when the learning
또한 검증부(150)는 상기 프로그램코드 추정부(140)에서 추정한 프로그램 코드와 상기 추정한 프로그램 코드의 기반이 된 사용자 음성에 대한 자연어를 특정 권한을 가지는 사용자 혹은 관리자(예: 음성인식을 통한 인공지능 프로그램코딩 장치(100)에서 특정 권한을 준 프로그래밍 언어에 대한 전문가)에게 실시간 혹은 주기적으로 제공하여 상기 생성한 프로그램코드에 대한 검증을 수행할 수 있도록 한다. Also, the verifying
한편 상기 특정 권한을 가지는 사용자 혹은 관리자는 검증부(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
다시 말해, 상기 특정 권한을 가지는 사용자 혹은 관리자는 검증결과에 따라 상기 학습데이터 데이터베이스(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
또한 학습데이터 업데이트부(160)는 상기 검증부(150)로부터 검증결과에 따른 업데이트 데이터를 수신한 경우, 상기 수신한 업데이트 데이터를 학습데이터 데이터베이스(200)에 반영함으로써, 상기 학습데이터 데이터베이스(200)를 업데이트 한다. 한편 상기 업데이트는 검증부(140)의 정책(즉, 검증과정을 실시간 혹은 주기적으로 수행)에 따라 실시간 혹은 주기적으로 수행된다.The learning
또한 학습모델 생성부(130)는 학습데이터 데이터베이스(200)가 업데이트되는 경우, 상기 업데이트된 학습데이터를 반영하여 기존에 생성된 학습모델보다 정확도 및 신뢰도가 높은 학습모델을 새롭게 생성하며, 상기 생성한 학습모델을 학습모델 데이터베이스(300)에 저장한다. 이러한 과정을 반복적으로 수행하는 경우, 상기 학습부(130)를 통해 생성되는 학습모델을 점점 고도화되며, 이를 통해 사용자 음성으로부터 최적의 프로그램코드를 생성할 수 있도록 한다.When the learning
도 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
학습데이터는 자연어와 해당 자연어에 대응되는 프로그램 코드 레이블과 유일성을 가지며 매핑되어 있다. 또한 프로그램 코드 레이블은 상기 자연어에 대응되는 특정 프로그램 코드와 레이블링 되어 있다.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
상기 프로그램 코드 레이블은 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
한편 상기 해상도는 학습되는 학습데이터의 전체 용량에 따라 지속적으로 추가할 수 있도록 구성된다. 즉, 음성인식 기반 인공지능 프로그램코딩 장치(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
상기에서 설명한 것과 같이, 상기 전처리 과정은 음성인식 기반 인공지능 프로그램코딩 장치(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
도 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
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 각 자연어를 소정의 과정에 따라 수치화하여 하나의 수열로 생성하여, 상기 생성한 각 자연어에 대한 각각의 수열을 하나의 수열 슬라이스에 각각 부여한다. 이때, 상기 수열 슬라이스는 적어도 하나 이상의 비트열에 대한 조합을 포함하여, 상기 비트열의 사이즈는 RNN 네트워크의 크기에 따라 지속적으로 추가될 수 있다. 즉, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 비트열의 크기를 확장할 수 있도록 하여 상기 학습데이터를 적응적으로 학습할 수 있도록 한다.Next, the speech recognition-based artificial intelligence
다음으로 상기 각 수열 슬라이스에 레이블링을 수행하여 상기 각 수열 슬라이스에 프로그램 코드 레이블을 부여하여 최종적인 소스 수열을 생성한다. 한편 상기 프로그램 코드 레이블은 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
도 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
도 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
또한 입력레이어는 전처리 과정을 통해 이미지화된 학습데이터를 입력받으며, 상기 컨볼루션 레이어는 특정 가중치를 가지는 커널을 미리 설정한 스트라이드(상기 커널의 이동단위를 의미함)에 따라 이동해 가면서 상기 이미지의 특정 부분과 상기 커널의 가중치를 컨볼루션하여, 상기 이미지의 특정 부분에 대한 특징 맵(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
또한 음성인식 기반 인공지능 프로그램코딩 장치(100)는 특정 자연어와 이에 해당하는 프로그램코드를 미리 알고 있으므로, 상기 학습과정에 있어서 백프로퍼게이션 방법을 통해 상기 CNN의 네트워크에 대한 가중치를 조정할 수 있으며, 이를 통해 상기 CNN 네트워크의 정확도를 향상시킬 수 있다.Also, since the speech recognition-based artificial intelligence
도 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
상기 엔코더는 전처리 과정을 통해 생성한 소스 수열의 수치값을 순차적으로 입력받아, 내부노드의 상태값으로 축적하고, 상기 각 내부노드의 가중치에 따라 각 내부노드에 대한 최종상태를 디코더로 전달한다.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
도 3 및 도 4를 참조하여 설명한 것과 같이, 학습데이터를 학습하여 학습모델을 생성하기 위한 기계학습의 입력데이터를 생성하기 위해 수행되는 것으로, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 CNN을 통해 학습데이터를 학습하는 경우, 상기 학습데이터를 이미지화하는 전처리 과정을 수행하며, 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 RNN을 통해 학습데이터를 학습하는 경우, 상기 학습데이터를 소스 수열로 변환하는 전처리 과정을 수행한다.As described with reference to FIG. 3 and FIG. 4, the speech recognition based artificial intelligence
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 학습데이터 데이터베이스(200)로부터 전처리한 학습데이터를 로딩(S120)하고, 상기 로딩한 학습데이터를 학습(S130)하여 특정 자연어에 대한 특정 프로그램코드를 생성하기 위한 학습모델을 생성하여 학습모델 데이터베이스(300)에 저장한다.Next, the speech recognition-based artificial intelligence
한편 상기 학습은 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
한편 사용자 음성에 대한 자연어는 음성인식 기반 인공지능 프로그램코딩 장치(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
한편 사용자 음성에 대한 전처리 과정은 음성인식 기반 인공지능 프로그램코딩 장치(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
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 학습모델 데이터베이스(300)로부터 학습모델을 로딩하고, 상기 로딩한 학습모델에 전처리한 사용자 음성에 대한 자연어를 입력한다. 이를 통해 상기 자연어에 대한 프로그램코드를 생성함으로서, 상기 사용자 음성에 상응하는 프로그램코드를 추정한다(S230).Next, the speech recognition based artificial intelligence
즉, 상기 학습모델의 입력은 자연어이며, 상기 학습모델의 출력은 상기 자연어에 대한 프로그램 코드 레이블이며, 상기 프로그램 코드 레이블에 대한 프로그램 코드를 생성함으로써, 상기 프로그램 코드를 추정하게 된다.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
한편 음성인식 기반 인공지능 프로그램코딩 장치(100)는 강화학습을 통해 상기 추정한 프로그램코드의 정확도와 신뢰성을 고도화시킬 있다.Meanwhile, the speech recognition based artificial intelligence
즉, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 추정한 프로그램코드를 프로그래밍 언어에 대한 전문가와 같이 상기 특정 권한을 가지는 사용자 혹은 관리자에게 실시간 혹은 주기적으로 제공(S240)하여 검증과정(S250)을 수행할 수 있다. That is, the speech recognition-based artificial intelligence
다음으로 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 검증과정의 검증결과에 따라 학습데이터를 업데이트(S260)할 수 있다.Next, the speech recognition based artificial intelligence
즉, 상기 특정 권한을 가지는 사용자 혹은 관리자는 음성인식 기반 인공지능 프로그램코딩 장치(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
이때, 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 상기 제공받은 업데이트 데이터를 반영하여 학습데이터를 업데이트함으로써, 상기 학습데이터 데이터베이스(200)를 업데이트한다.At this time, the speech recognition based artificial intelligence
이후, 상기 음성인식 기반 인공지능 프로그램코딩 장치(100)는 학습데이터 가 업데이트 된 경우, 상기 업데이트된 학습데이터를 반영한 강화학습과정을 수행하여 새로운 학습모델을 생성한다. 이러한 과정을 반복함으로써, 음성인식 기반 인공지능 프로그램코딩 장치(100)는 프로그램코딩을 위한 학습모델에 대한 정확성과 신뢰성을 획기적으로 고도화시킬 수 있다.Thereafter, when the learning data is updated, the speech recognition based artificial intelligence
이상에서 설명한 바와 같이, 본 발명은 사용자의 음성을 기반으로 프로그램코드를 생성하기 위해 자연어와 상기 자연어에 해당하는 프로그램코드를 매핑한 학습데이터를 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.
상기 음성인식을 통한 인공지능 프로그램코딩 방법은,
사용자의 음성을 인식하여 자연어 문구를 추출하기 위한 음성인식 단계;
상기 출력한 프로그램 코드를 검증하는 단계; 및
상기 검증한 결과에 따라 상기 매핑관계를 추가하거나 변경하는 단계;를 더 포함하며,
상기 음성인식은 클라우드서버, 로컬서버, 사용자기기 또는 이들의 조합에 구비된 음성인식 엔진을 통해 수행되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 방법.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.
상기 학습모델을 생성하는 단계는,
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.
상기 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.
상기 학습모델을 생성하는 단계는,
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.
상기 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.
상기 음성인식을 통한 인공지능 프로그램코딩 시스템은,
사용자의 음성을 인식하여 자연어 문구를 추출하기 위한 음성인식부;를 더 포함하며,
상기 음성인식은 클라우드서버, 로컬서버, 사용자기기 또는 이들의 조합에 구비된 음성인식 엔진을 통해 수행되는 것을 특징으로 하는 음성인식을 통한 인공지능 프로그램코딩 시스템.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.
상기 학습모델 생성부는,
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.
상기 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.
상기 학습모델 생성부는,
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.
상기 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.
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)
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)
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)
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 |
-
2017
- 2017-11-28 KR KR1020170159924A patent/KR102027141B1/en active IP Right Grant
Patent Citations (1)
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)
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)
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 |