목록토이프로젝트 (6)
장난감 연구소

올해를 끝으로 소프트웨어학과 4년 생활이 끝난다고 하니 뭔가 아쉬운 마음이 든다. 2주 전 캡스톤 디자인 전시회를 치렀는데, 많이 부족하긴 해도 오랜 시간 공들인 프로젝트라 그런지 신경 썼던 점이나 아쉬웠던 점을 꼭 기록해야만 할 것 같아 써보려고 한다.프로젝트 소개프로젝트의 정식 주제는 "사용자 음역 및 선호 기반 노래방 음악 추천 시스템"이다. 이는 사용자의 음역대와 개인의 선호도를 활용해 부르기 좋은 노래를 추천하는 서비스라는 의미를 담고 있다. "사용자 목소리 기반 노래방 음악 추천 시스템"이란 더 직관적인 이름도 고려했으나, 이는 목소리 톤과 같은 더 다양한 특성을 분석한다는 오해를 불러일으킬 수 있어 좀 더 구체적인 현재의 주제명을 선택했다.이 주제를 처음 시도하는 것은 아니었다. 3학년 1학..

음악 오디오 파일에서 가수의 노래 목소리의 음 높이를 추출하는 작업을 하면서, 사용해 본 음 높이 예측(Pitch Estimation) 모델을 정리하였습니다. 기계학습과 관련해서 잘 알고 있지는 않지만, 관련된 글이 없어 개인적으로 사용할 때 참고용으로 적어 보았습니다. CREPECREPE는 New York University의 연구자들이 2018년 발표한 모델로, CNN을 기반으로 한 Pitch 예측 모델이다. 발표한 논문은 [1802.06182] CREPE: A Convolutional Representation for Pitch Estimation (arxiv.org)에서 확인할 수 있다.코드와 파이썬 패키지를 제공하는데 깃허브 저장소는 GitHub - marl/crepe: CREPE: A Conv..

지난 5월에는 토이프로젝트로서 웹 브라우저에서 재생중인 동영상과 음악을 제어해주는 유틸리티 프로그램을 만들어보고자 했다. 결과로 '재생', '정지', '다음', '이전' 기능은 만들 수 있었지만, '뒤로 이동', '특정 시간으로 이동'과 같은 기능은 만들 수 없어 실용성이 부족하여 중간에 개발을 그만두었다. 이 과정에 관하여 단순 정리한 글로, 읽어도 큰 도움이 되는 글은 아니다. 계획 이번에 토이프로젝트로서 만들고자 한 프로그램은 웹 브라우저의 동영상과 음악을 재생, 정지 등을 할 수 있는 제어 프로그램이다. 이와 같은 프로그램을 계획하게 된 이유는 동영상을 재생한 상태로 창을 최소화하고 소리만 들을 때가 있는데, 브라우저 창을 다시 열 필요 없이 편하게 제어하기 위해서이다. 사실 비슷한 기능이 존재하..

목차 라즈베리파이 웹 서버 운영하기 - 우분투 설치, SSH 설정 라즈베리파이 웹 서버 운영하기 - 고정 IP 설정, 포트포워딩 이번 글에서는 라즈베리파이 단말기의 내부 IP를 고정하고, 외부 IP의 특정 포트가 라즈베리파이의 내부 IP로 연결되도록 포트포워딩을 하는 방법을 다룬다. 이를 통해 외부에서 라즈베리파이로 접속할 수 있도록 한다. 배경 지식 위 그림은 우리집 안의 라우터를 중심으로 네트워크가 어떻게 연결되어 있는지 나타낸다. 라우터(공유기)는 ISP에 할당받은 외부 IP로 내부 단말기들이 인터넷에 접속할 수 있게 해주고, 내부 단말기들에 내부 IP를 직접 할당하여 관리한다. 또, 포트포워딩을 통해 외부 특정 포트와 내부의 특정 단말기 특정 포트를 연결해준다. ① 외부 IP 주소 IP 주소는 컴..

이 글에서는 라즈베리파이에서 Node.js와 Mongo DB를 사용하여 웹페이지를 제공하는 웹 서버를 만든 경험을 되새기면서, 알게 된 지식을 공유하고자 한다. 독자의 관련 지식이 없다고 생각하고 설명해볼 테니, 라즈베리파이로 본인의 웹페이지를 만들어보려는 사람에게 도움 되었으면 한다. 목차 라즈베리파이 웹 서버 운영하기 - 우분투 설치, SSH 설정 라즈베리파이 웹 서버 운영하기 - 고정 IP 설정, 포트포워딩 필요한 장비 라즈베리파이 3/4/이후 버전, SD 카드, 랜선, 라즈베리파이 전원 공급용 충전기, HDMI 케이블, 모니터, 키보드 배경 설명 이 글을 시작으로 6개의 글에서 라즈베리파이를 사용해 소규모 웹 서버를 만들며 알게 된 지식을 적어볼 생각이다. 이는 직접 연구해 알게 된 사실은 아니므..

며칠 늦긴 했지만, 2020년 새해가 밝았다. 새해가 되면 많은 사람들이 새해 인사말을 보낸다. 그래서 그런지 카카오톡도 1월 1일 새벽에 2시간 정도 멈췄다고 한다. 나도 마찬가지로 여러 개의 새해 인사말을 보냈다. 새해 인사말을 보내다 보니 컴퓨터로 인사말을 보내는 작업을 자동화해보자 생각했다. 금방 결과물을 볼 수 있을 걸로 보여 작은 토이 프로젝트 삼아 해보면 재밌을 것 같았다. SMS 문자 메시지보다 요금 부담이 없고 많이 사용하는 카카오톡으로 보낼 수 있었으면 했지만, 가벼운 마음으로 만들어 보기에는 할게 많아 보였다... 닷넷 코어 콘솔 환경에서 사용할 수 있는지도 모르겠고. (아마 REST API라고 제공하는 걸 사용해야 할 듯 하다.) 카카오 측의 문서화가 잘 되어있어 언제 한번 해보면 ..