pizzaplanet

2018 SW중심대학 Open Source Hackathon - Openhack 본문

Participation

2018 SW중심대학 Open Source Hackathon - Openhack

scio 2018. 9. 11. 13:40

교내 해커톤 수상이력으로 학교에서 추천 받아 나가게 된 제3회 소프트웨어 중심대학 오픈소스 해커톤.


[ 2018.6.28 - 2018.6.30 OpenHack ]

S/W, 디자인을 전공하는 학생들이 모여 창의적이고 새로운 아이디어 보다는 협업을 통해 S/W를 개발한다. 과정에서 오픈소스를 활용하고 결과물을 오픈소스로 공개하는 공개하는 과정을 배운다. 현업의 개발자, 디자이너들이 학생들의 개발과정 중 멘토링을 해서 짧은 기간 내 수준 높은 결과를 낼 수 있도록 하는 해커톤


개요

주제: 자유. 각자 만들고 싶은 것을 발표 후 25개의 주제를 선발(전체투표).


팀빌딩: 주제 발표자 외 남은 인원은 하고 싶은 주제로 가서 자신을 어필하여 간택을 당해야 한다.


기간: 2박 3일. 1박2일은 몇번 해봤어도 2박3일은 처음. 결과적으로 1박2일 해커톤보다 체력소모가 심했다.


규모: 약 125인, 25팀(팀당 5인)


심사기준: 상호투표


특징: 디자이너, 개발자 모두 깃허브를 통해 서로 협업해야 하며 모든 결과물을 깃허브에 등록한다. 상호간의 심사시에도 깃허브를 참조하여 투표한다. 깃허브 협업지수를 통해 중간중간 부상이 나누어진다.




참가 전에는 내 주제로 하고 싶은 마음이 높았으나 이번엔 타인의 주제에 참여해보자라는 마음이 샘솟았다. 


힙스터의 플레이리스트: '난 사람들이 모르는 노래만 듣는다. 좋은 노래를 찾았더라도 많이 알려진다면 더이상 듣지 않는다' 라는 컨셉

여러 발표 주제중 위의 주제가 맘에 들었으나 발표 내용에서는 AI 관련 내용이 없었다. 본인은 AI를 하러 왔었고 위 주제를 하고싶었다. 팀빌딩 시작되자마자 발표자를 찾아가 기존 주제에서 AI 파트를 어필하고 같이 참여하게 되었다.


상세 아이디어

0) App Name: DRUG THE BEAT


1) 메인 플레이리스트: 사운드클라우드를 참조하여 일정 조회수 미만의 곡들의 플레이리스트


2) 발할라 플레이리스트: 일정 조회수에 도달해가는 노래들이 모여있는 플레이 리스트. 일정 조회수가 넘어가면 해당 곡은 발할라로 떠난다(플레이리스트에서 삭제. 영원히 앱 안에서 들을 수 없다.)


3) AI Part: 발할라 플레이리스트에 올라간 노래들은 조회수가 낮음에도 노래가 좋아 뜨기 시작한 유행 할 노래로 판단. 발할라 플레이리스트의 곡 성향을 분석한다. 아직 발할라 플레이리스트에는 없지만비슷한 노래를 메인 플레이리스에서 추천.



음성 관련 AI에 대한 경험은 한번도 없었다. 본 대회는 오픈소스사용을 적극 권장하는 대회였으므로 우선 음성관련 오픈소스를 찾아보았다.


tyiannak/pyAudioAnalysis

Python Audio Analysis Library: Feature Extraction, Classification, Segmentation and Applications


wiki도 잘 되어있다. Feature 추출을 위해 사용하였으며 11종 34개의 Feature를 추출할 수 있다.

사용한 Feature: 'ZeroCrossing Rate', 'Energy', 'EntropyofEnergy', 'SpectralCentroid', 'SpectralSpread', 'SpectralEntropy', 'SpectralFlux', 'Spectral Rolloff', 'MFCCs', 'ChromaVector', 'ChromaDeviation'


위의 피쳐를 이용하여 Linear Classification을 통해 유행할 노래를 예측한다. 코드는 [ github ] (너무 간단한 코드라 공유하기도 민망)


Classification 서비스와 앱서비스가 한 서버 안에 있었으면 좋았겠으나 AI 서버를 집에 구축해놔서 집 서버에서 구분한 데이터를 앱서버에서 활용하는 방식으로 구현하였다.

물론 1박2일간의 짧은 기간이었기에 만족할만한 완성도는 나오지 않았으나 코드를 공유해본다. [ github ]




작품 영상

Comments