본문 바로가기

창업 이야기

기술 창업의 기반 기술 설명, NLG, TTS, CAN, 인공지능 글 생성, 음악 생성, 그림 생성

 사실 창업이라는 거는 생각보다 거창하지 않다. 자신이 아이디어가 있고 그걸 구현할 수 있는 사람들을 찾으면 창업을 할 수 있다. 이렇게 말하면 어떻게 생각할지 모르겠다. 요즘은 인공지능 붐이 아주 심하게 일어나서 모든 기술이 가능하다고 생각한다. 

간지나는 그림 하나.

 간단한 기술들을 몇 가지 소개하고 이를 통해서 만들 수 있는 창업 아이디어들도 공유하겠다. 사실 아이디어는 아무것도 아니다. 창업에서 아이디어가 차지하는 비율을 5% 미만일 가능성이 높다. 중요한 것은 그걸 구현할 수 있는 기술과 디테일 그리고 노력이다. 

또 간지나는 이미지 하나 더

1. 글 생성 기술

 나 또한 이 기술을 기반으로 창업을 하려고 한다. 먼저 추천하는 기반이 되는 기술을 알려주겠다. 가장 유명하고 뛰어난 기술인 GPT-2와 더 고도화된 CTRL이다. 나의 경우는 GPT-2를 기반으로 프로그램을 만들려고 있다. 하지만 CTRL은 논문을 제대로 안 읽어봐서 자세한 기술은 모르겠다. 얼추 훑어봤을 때 상당히 좋은 거 같아서 추천을 한다. 둘 다 NLG 분야에서 최고 수준의 기술들이다. 둘에 대한 Github 링크를 공유하겠다.

 

openai/gpt-2

Code for the paper "Language Models are Unsupervised Multitask Learners" - openai/gpt-2

github.com

 

salesforce/ctrl

Conditional Transformer Language Model for Controllable Generation - salesforce/ctrl

github.com

대규모 언어 모델은 유망한 텍스트 생성 기능을 보여 주지만 사용자는 이 생성 프로세스를 쉽게 제어할 수 없습니다. 우리는 16 억 개의 매개 변수 조건부 변환기 언어 모델 인 CTRL을 출시하여 도메인, 하위 도메인, 엔티티, 엔티티 간의 관계, 날짜 및 작업별 동작을 지정하는 제어 코드를 조건으로 훈련했습니다. 제어 코드는 원시 텍스트와 자연스럽게 공존하는 구조에서 파생되었으며, 감독되지 않은 학습의 이점을 유지하면서 텍스트 생성에 대한보다 명확한 제어를 제공합니다.

 우리는 한국인이다. 따라서 이러한 기술이 아무리 좋다고 하더라도 한국어로 구현할 수 없다면 사용할 수 없다. 먼저 SKT에서 만든 KoGPT2이다. 2천 5백만 이상의 한국어 문장으로 학습했다고 한다. 그리고 밑에 있는 거는 내가 만든 KoGPT2를 원하는 방식으로 FineTuning 하는 Code를 담았다. 

 

SKT-AI/KoGPT2

Korean GPT-2 pretrained cased (KoGPT2). Contribute to SKT-AI/KoGPT2 development by creating an account on GitHub.

github.com

 

gyunggyung/KoGPT2-FineTuning

🔥 Korean GPT-2, KoGPT2 FineTuning cased. 한국어 가사 데이터 학습 🔥 - gyunggyung/KoGPT2-FineTuning

github.com

 이렇게 하면 다양한 문장을 만들 수 있게 된다. 이걸 기반으로 뭘 할 수 있을까? 바로 챗봇, 소설 생성, 가사 생성 등을 직접 구현할 수 있다. 이걸로 무엇을 할 수 있을까? 고민하는 거는 재미있는 일이다. 그리고 Github만 봐도 다양한 기술들이 공개되어 있다.

2. 음성 생성 기술

 이거는 정말 쉽다. 이미 구글에서 오픈한 Code가 있기도 하다. 그냥 아래의 Code를 이용해서 한국어로도 무제한으로 만들 수 있는 TTS를 만들 수 있다. 이렇게만 해도 내가 원하는 음성들을 실시간으로 생성해서 사용자에게 맞는 서비스를 구현할 수 있다.

# Import the Gtts module for text  
# to speech conversion 
from gtts import gTTS 
  
# import Os module to start the audio file
import os 

fh = open("test.txt", "r", encoding='utf-8')
myText = fh.read().replace("\n", " ")

# Language we want to use 
language = 'ko'

output = gTTS(text=myText, lang=language, slow=False)

output.save("output.mp3")
fh.close()

# Play the converted file 
os.system("start output.mp3")

output.mp3
0.03MB

그렇다면 조금 더 대단한 기술을 알아보자. 노래를 부르는 TTS는 어떤가? 딥러닝으로 노래 만들기! 바로 이 논문을 보면 된다. https://www.isca-speech.org/archive/Interspeech_2019/pdfs/1722.pdf 서울대 연구실에 만든 논문으로 Code와 Data를 공개하지 않아서 실제로 저 정도의 성능을 보이는지는 모르겠다. 하지만 상당히 잘 만들어다는 것에 대해서 대부분은 이견이 없을 것이다.

간단한 구조 2
 간단한 구조 1

딥러닝으로 만든 노래

 

 

(PDF) Adversarially Trained End-to-end Korean Singing Voice Synthesis System

PDF | In this paper, we propose an end-to-end Korean singing voice synthesis system from lyrics and a symbolic melody using the following three novel... | Find, read and cite all the research you need on ResearchGate

www.researchgate.net

 그렇다면 우리는 직접 Data도 모으고 Code도 작성해야 한다. Code는 논문을 기반으로 작성할 수 있을 거라고 생각한다. 그럼 목소리만 있는 음악을 어떻게 모을까? 다행히도 음악을 분리하는 오픈소스가 존재한다!

 

andabi/music-source-separation

Deep neural networks for separating singing voice from music written in TensorFlow - andabi/music-source-separation

github.com

 이제 외국은 어느정도의 수준까지 올라왔는지 구경해보자. 나쁘지 않은 성능을 보여주는 딥러닝이 만든 음악이다. 아마도 이 논문을 통해서 만들어진 것으로 기억한다. 잘 안 나오면 링크를 통해서 들어가는 것을 추천한다.  https://arxiv.org/pdf/1912.10128.pdf%EF%BB%BF

https://soundcloud.com/mathias-gatti/shallow-midi2voice%EF%BB%BF

간단한 구조
간단한 구조 2

그리고 유명인의 음색으로 원하는 이야기를 할 수 있는 기술도 상당히 발전했다. 한 번 들어보자.

 

Voice Style Transfer to Kate Winslet with deep neural networks

These are samples of converted voice to Kate Winslet. A is real source voice (anonymous male) B is generated target voice (Kate Winslet) github: https://github.com/andabi/deep-voice-conversion

soundcloud.com

 

Voice Style Transfer to Kate Winslet with deep neural networks

These are samples of converted voice to Kate Winslet. A is real source voice (anonymous male) B is generated target voice (Kate Winslet) github: https://github.com/andabi/deep-voice-conversion

soundcloud.com

외국어로 만든 다른 노래도 들어보자. 신기하다. 꽤 나쁘지는 않은 거 같다. 동시에 Github도 첨부했다.

 

DNN-based singing voice synthesis samples

A history of samples of my singing voice synthesis system. Code: https://github.com/r9y9/nnsvs Database: https://zunko.jp/kiridev/login.php

soundcloud.com

 

r9y9/nnsvs

Neural network-based singing voice synthesis library for research. - r9y9/nnsvs

github.com

 자신만의 보컬을 만들 수도 있고 동시에 유튜브에 자신의 목소리를 올리기 싫은 사람들도 TTS를 사용하면 다양한 콘텐츠를 쉽게 할 수 있다. 이 외에도 다양한 활용 방안이 있을 거라고 생각한다. 이 부분이 글 생성 부분보다 길어서 더 집중했다고 생각할 수 있지만, 사실 이쪽 기술을 몰라서 이것저것 막 쓰다 보니 길어진 것이다.

 

3. 이미지 생성 기술

 먼저 GAN을 모르는 사람이 있을까? 그럼 CAN은 아는가? 

 

mlberkeley/Creative-Adversarial-Networks

(WIP) Implementation of Creative Adversarial Networks https://arxiv.org/pdf/1706.07068.pdf - mlberkeley/Creative-Adversarial-Networks

github.com

CAN으로 만든 이미지
CAN으로 만든 이미지
CAN으로 만든 이미지
CAN으로 만든 이미지

와우 대단한 기술이다. 이렇게 대단한 기술이 있다니 놀랐었다. 진짜 사람이 그린 그림과 비슷한 느낌을 준다. 그리고 실제로도 사람이 그린 그림과 구분이 힘들다고 한다. 필자는 GAN을 봤을 때 약간 이런 느낌이였다.

내가 왔도다.

 참으로 창대한 기술이라고 생각했고 진짜 순식간에 이 정도의 수준으로 왔다. 우리는 이렇게 기술 창업에 Base가 될 수 있는 기술들을 봤다. 그럼 이제 내가 생각하는 창업 아이템을 간단하게 설명하겠다. 

간지나는 이미지 추가

 지금 이걸로 창업을 할지 말지 고민 중인데, 인공지능 예술 엔터테인먼트를 만들까 생각 중이다. 다양한 음악, 글, 그림, 영상 등을 통해서 사람들에게 흥미를 유도하고 실제로 아티스트들과의 협업과 직접 소비자들에게 판매가 가능하지 않을까 생각 중이다. 같이할 기술자가 있다면 당장 시작할지도 모르겠다.