Gyeongmin Kim (김경민) 경력기술서
Tech/Library Stack (기술/라이브러리 스택)
Python
Web Crawling
PyTorch
PySide(QT/GUI)
Selenium
Pandas
Numpy
TTS/VC
LLM
Quantization
C.V. (경력기술서)
연세대학교의료원 산학협력단 (KR) 2025년 3월 ~
소속: 연세대학교 의생명시스템정보학교실 유승찬 교수님 연구실 (인턴/연구원)
엔씨소프트 (KR) 2024년 7월 ~ 2025년 1월
소속: AI데이터실 오디오데이터팀 (계약직)
-
[AUDT_자동화 프로젝트 - 오디오 후처리 자동화 프로그램 개발]
-
Problem:
기존에 출시되어 있는 상업용 오디오 처리 프로그램의 경우, 녹음된 기존 오디오 파형을 손상(압축, Fade In/Out)시키며 처리합니다.
기업 단위의 오디오 데이터 처리는 매우 높은 품질을 유지하며 처리해야 하는 팀의 목적과 달라, 팀원들이 각각 수동으로 데이터를 처리합니다.
이는 시간이 굉장히 많이 걸리는 작업이었습니다.
-
Process:
- 1. 팀 회의 시 팀원들의 불편하다고 생각했던 내용 수집
- 2. 해당 내용을 해결하기 위한 자동화 기능 구현
- 3. 불편했던 내용을 제공했던 팀원들과 함께 기능 QA 진행
- 4. 팀 전체 공지 후 자동화 프로그램 배포 및 사용
-
Solution:
다음 내용을 프로그램에 적용하여 오디오 후처리 시스템을 자동화하였습니다.
- 녹음실 미세소음 제거: 녹음된 성우의 음성 파일에서 녹음실의 미세한 잡음을 남김없이 제거하고 깔끔한 목소리로 만들었습니다.
- 숨소리 제거: 숨소리에선 F0가 검출되지 않는 점과 여러 보정값을 이용하여 음성에서 숨소리를 제거하였습니다.
- Endpoint Detection: TTS학습을 위해 맨 앞과 뒷 부분을 감지하여 공백을 일정하게 삽입하였습니다.
- 텍스트 태깅: 대만어 데이터의 경우 업체에서 받는 데이터에 간체자가 섞여있어 이를 태깅하여 대사 수정을 빠르게 할 수 있도록 하였습니다.
- 문장 부호 공백 삽입: 오디오와 텍스트를 강제 정렬하여 각 문장 부호에 대한 공백 시간에 맞춰 공백을 삽입하였습니다.
-
Achievement:
- 팀원들의 기존 작업 시간 대비 약 30% 단축되었습니다.
- 프로젝트 인원: 5명
- 역할: 개발, QA
- 키워드: Text-to-Speech, Data Processing Automation, PyTorch, GUI, Numpy
Axcellworks (JP) 2023년 11월 ~ 2024년 2월
소속: X (프리랜서/재택)
-
[Voice Changer 언어인식률 개선]
-
Problem:
실시간 음성 변환 프로그램 (Voice Converter)에서 지연 시간과 각 청크를 처리함에 있어 목소리가 끊기고, 변환된 목소리의 언어 인식률이 많이 떨어지는 것이 문제였습니다.
-
Process:
- 1. 언어 인식률을 개선하는 방법에 대한 가설을 세워 함께 공유
- 2. 가설을 토대로 프로토타입 구현
- 3. 사람이 판단하는 인식률과 STT의 인식률로 언어 인식률 측정
- 4. 언어 인식률이 많이 개선되었을 때 최종으로 코드 배포
-
Solution:
다음 과정을 통해 언어 인식률 저하 문제를 개선하였습니다.
- 청크 병합: 기존에 1, 2, 3, 4, 5, ... 들어오는 청크를 (1, 2, 3), (2, 3, 4), (3, 4, 5) 로 묶어서 가운데 청크만을 이용하여 변환 및 발화 인식률을 높였습니다.
-
Achievement:
- 실시간 Voice Conversion 시 발생하는 음성 언어 인식률 저하 문제를 이전 코드의 딜레이가 거의 없는 상태로 개선시켰습니다.
- 프로젝트 인원: 1명
- 역할: 개발, QA
- 키워드: Realtime-Voice-Conversion, Python
Taiyaki Studios Ltd. (US) 2023년 1월 ~ 7월
소속: Artificial Intelligence (계약직/재택)
-
[사내용 TTS 학습 도구 개발]
-
Problem:
사내 사람들의 목소리로 TTS를 개발하여 적용하려고 했으나, 음성 데이터의 양이 적어 제대로 된 결과물을 기대할 수 없었고 파이프라인 구축된 것도 없었습니다.
-
Solution:
다음 과정을 거치며 문제점을 해결하였습니다.
- 데이터셋 구축: 길이가 긴 음성 파일을 Text-to-Speech(TTS) 학습에 적합하게 짧게 잘라내고, 해당 음성 파일에 대응하는 대사 파일을 자동으로 생성하는 유틸리티를 개발했습니다. 특히, 희귀하거나 구하기 어려운 데이터셋의 경우, 음성 변환 및 증강 기법을 활용하여 데이터셋 부족 문제에 대응했습니다. 이 과정에서 부적절한 데이터셋(예: 중간에 끊기거나 말단 부분이 잘린 음성 파일 등)의 관리에도 주의를 기울였습니다.
- 모델 학습: TTS 모델과 텍스트를 음소 단위로 변환하는 Grapheme To Phoneme (G2P) 코드 개발을 진행했습니다. 기본 데이터셋을 사용한 사전 학습 모델을 개발하고, 이를 바탕으로 적은 양의 데이터셋으로도 미세 조정을 통해 우수한 성능의 TTS 모델을 개발했습니다. 또한, 모델의 저장 공간 효율성을 높이기 위해 모델 압축 방법도 적용했습니다.
- 성능 테스트: 모델의 추론 속도는 Real-Time Factor(RTF) 측정을 통해 평가했습니다. 또한, 발음의 정확성과 음소 부족으로 인한 부정확한 발음이나 텍스트 문제를 Mean Opinion Score (MOS)를 사용하여 정밀하게 측정함으로써, Ground Truth(GT)와 합성된 음성 사이의 차이를 계산하여 모델의 성능을 검증했습니다. 하이퍼파라미터 조정을 통해 모델의 레이어 수를 최적화하고 경량화하여 기존 모델 대비 빠른 추론 속도를 달성할 수 있었습니다.
- 파이프라인 구축: 마지막 단계에서는 학습을 마친 TTS 모델을 실제 서비스에 통합할 수 있도록, 모델을 배포하기 위한 추론 코드 작성했습니다. 이를 통해 개발한 TTS 모델은 실제 서비스 환경에서 사용자의 요구에 신속하고 효율적으로 대응할 수 있도록 하였습니다.
-
Achievement:
- 사내에서 바로 사용 가능하도록 TTS와 그 파이프라인 도구를 제공할 수 있었습니다.
- 프로젝트 인원: 2명
- 역할: 개발자, QA
- 키워드: Python, Text-to-Speech, Few-shot, Voice-Conversion, Deep-Learning
Team KS (KR) 2018년 1월 ~ 2019년 4월
소속: 개발팀 (외주/재택)
-
[네이버 서비스 광고 프로그램 개발]
-
Problem:
광고 댓글을 직접 달고, 알바를 구하고 하는 과정을 그만두고 싶어하는 고객들이 있었습니다.
-
Solution:
웹 프로세스 자동화 및 크롤링, 프록시, UI Automation을 이용하여 프로그램을 개발하여 납품하였습니다.
- 네이버 메일/쪽지: 자동 메일/쪽지 발송
- 네이버 블로그: 서로이웃 자동 신청
- 네이버 카페: 자동 글 쓰기
- 네이버 쇼핑 라이브: 자동 댓글
- 프로젝트 인원: 2명
- 역할: 개발자, QA
- 키워드: Python, Selenium, CSV, Pandas
Extracurricular Activities (대외활동)
License (자격증)
운전면허 2종 (2023.07.31)
ITQ A등급 (2016.12.15)
Personal Project (개발 포트폴리오)
Education (교육)