본문 바로가기
반응형

Programming/AI21

Unity에서 OpenAI API 시작하기 Unity에서 OpenAI API 시작하기API 키 발급부터 첫 텍스트 생성 테스트까지 정리이번 작업에서는 Unity 프로젝트 안에서 OpenAI API를 직접 호출할 수 있는 환경을 먼저 만들고, 가장 기본적인 기능인 텍스트 생성까지 확인해봤다. 목표는 단순했다. Unity 안에서 OpenAI SDK가 정상적으로 연결되는지 확인하고, 키 입력 한 번으로 모델 응답이 Console에 출력되는 최소 테스트를 통과시키는 것이었다. 문서 기록 기준으로는 OpenAI 플랫폼에서 API 키를 발급하고, Unity Package Manager에 OpenUPM 레지스트리를 추가한 뒤, OpenAI 패키지를 설치하고 OpenAIConfiguration에 API 키를 연결하는 흐름으로 정리되어 있다. 이번 글은 이미지 .. 2026. 3. 26.
whisper.cpp Wrapper DLL을 만들고 Unity에서 로컬 STT로 동작 가능하도록 whisper.cpp Wrapper DLL을 만들고 Unity에서 로컬 STT로 동작 가능하도록앞선 단계에서 whisper.cpp를 Windows 환경에서 빌드했고, CPU 기준 동작도 확인했고, CUDA를 붙였을 때 GPU 성능이 크게 올라가는 것도 확인했다. 그런데 여기까지는 어디까지나 whisper-cli를 직접 실행하는 단계였다. 실제 프로젝트, 특히 Unity 같은 엔진 환경에서 쓰려면 커맨드라인 실행만으로는 부족했다. 결국 필요한 건 외부에서 단순한 함수 호출만으로 STT를 실행할 수 있는 구조였고, 그래서 이번에는 whisper.cpp를 감싼 Wrapper DLL을 만들어 Unity에서 붙이는 방향으로 진행했다. 이번 글은 “Whisper가 돌아간다”보다 한 단계 더 나간 기록이다. 모델 로.. 2026. 3. 26.
whisper.cpp에 CUDA를 적용하고 CPU/GPU 성능을 비교 whisper.cpp에 CUDA를 적용하고 CPU/GPU 성능을 비교앞선 글에서는 whisper.cpp를 Windows 환경에서 빌드하고, CPU 기준으로 샘플 음성 파일이 정상적으로 전사되는지 먼저 확인했다. 거기까지는 “일단 돌아간다”를 보는 단계였다면, 이번에는 그 다음 단계로 넘어가서 CUDA를 붙였을 때 실제로 얼마나 빨라지는지를 확인해봤다. 결론부터 말하면 체감 차이는 꽤 컸고, 특히 인코더 구간에서 큰 변화가 있었다. 기록 기준으로 CPU에서 8초 넘게 걸리던 작업이 GPU에서는 0.4초 수준으로 줄었다.이번 글의 목적은 CUDA 설치 방법 자체를 길게 설명하는 것이 아니라, whisper.cpp가 GPU 경로로 정상 실행되도록 설정하고, CPU와 비교했을 때 어디가 얼마나 개선되는지를 확인.. 2026. 3. 26.
Windows에서 whisper.cpp를 빌드하고 CPU로 STT를 실행해본 기록 Windows에서 whisper.cpp를 빌드하고 CPU로 STT를 실행해본 기록이번에 정리한 내용은 whisper.cpp를 Windows 환경에서 직접 빌드하고, CPU 기준으로 샘플 음성 파일을 전사해보면서 기본 동작을 확인한 기록이다. 목표는 거창하지 않았다. 우선 로컬 환경에서 Whisper 기반 STT가 정상적으로 돌아가는지 확인하고, 로그를 보면서 어떤 식으로 동작하는지 감을 잡는 것이 1차 목적이었다. 이후 CUDA 적용이나 Unity 연동도 진행했지만, 그건 다음 글에서 따로 다루고 이번 글은 기본 빌드와 CPU 첫 실행에만 집중하려고 한다. 처음부터 GPU나 엔진 연동까지 한 번에 들어가면 확인해야 할 변수가 너무 많아진다. 그래서 이번에는 가장 단순한 경로로 갔다. 저장소를 받고, Vi.. 2026. 3. 26.
데이터를 따로 구해서 다시 시도 데이터를 따로 구해서 다시 시도한 기록직접 모은 데이터로 학습을 계속 돌려보면서 느낀 건 명확했다.생각보다 시간이 많이 들고, 결과는 쉽게 좋아지지 않았고, 데이터 수집 자체도 꽤 손이 많이 갔다. 한 번 잘라서 넣고 끝나는 게 아니라, 음성을 정리하고, 텍스트를 맞추고, metadata를 다시 만들고, 전처리를 돌리고, 학습을 돌린 뒤에 결과를 들어보는 과정이 계속 반복됐다. 그래서 어느 시점부터는 “이걸 계속 직접 모으는 게 맞나?”라는 생각이 들기 시작했다. 자연스럽게 다음 선택지는 공개 데이터셋이었다.처음에는 남자 목소리냐 여자 목소리냐가 중요한 게 아니라고 생각했다.지금 단계에서 가장 필요한 건 특정 화자의 완벽한 복제가 아니라, 학습이 되는 구조 자체를 확인하는 것에 더 가까웠기 때문이다. 그.. 2026. 3. 26.
MeloTTS 학습을 돌리면서 겪은 문제들 MeloTTS 학습을 돌리면서 겪은 문제들설치만 끝나면 금방 될 줄 알았다.재학습 전에 필요한 것들도 나름대로 정리해뒀고, metadata나 캐시, 전처리 같은 것도 한 번씩 점검했다. 그래서 이제부터는 진짜 학습만 잘 돌리면 되는 줄 알았다. 그런데 실제로 들어가 보니, 여기서부터가 더 오래 걸렸다. 설치는 한 번 뚫으면 끝이지만, 학습은 한 번 돌린다고 끝나지 않았다. 오히려 같은 걸 계속 반복해서 돌려보고, 결과를 듣고, 설정을 바꾸고, 다시 돌리는 과정이 계속 이어졌다. 처음에는 “학습만 시키면 점점 좋아지겠지” 정도로 생각했다.그런데 딥러닝 쪽은 늘 그렇듯, 결국 하이퍼파라미터 문제가 바로 앞에 있었다. epoch를 얼마나 줘야 하는지, batch size를 얼마나 올릴 수 있는지, learni.. 2026. 3. 26.
MeloTTS 재학습 전에 먼저 정리한 것들 MeloTTS 재학습 전에 먼저 정리한 것들MeloTTS를 Windows에서 일단 로컬로 돌리는 데까지는 성공했다.한국어 음성도 나왔고, 설치는 귀찮았지만 최소한 “이 프로젝트로 더 가볼 수는 있겠다”는 판단은 섰다. 문제는 그다음이었다. 그냥 제공되는 모델을 실행해보는 것과, 내 데이터를 넣어서 다시 학습시키는 건 완전히 다른 문제였다. 여기서부터는 설치 삽질과는 다른 종류의 귀찮음이 시작됐다. 처음에는 단순하게 생각했다.데이터를 넣고 학습 스크립트를 돌리면 되겠지 싶었다. 그런데 실제로 해보니 그렇게 간단하지 않았다. 데이터를 조금만 수정해도 이전 캐시가 남아서 에러가 나고, wav 파일 하나를 지웠는데 metadata 쪽에 흔적이 남아 있으면 바로 꼬였다. 학습 로그를 보면 손실값보다 먼저 봐야 할.. 2026. 3. 26.
로컬 MeloTTS, Windows 환경에서 진행 로컬 MeloTTS, Windows 환경에서 진행 sherpa-onnx로 한국어 TTS를 먼저 테스트해봤지만, 결과는 만족스럽지 않았다. 실행 자체는 됐는데 한국어가 아닌 외계어 수준으로 나타났다, 이걸 바로 프로젝트에 넣는 건 무리라고 판단했다. 그래서 조금 더 음성 품질이 괜찮아 보이는 쪽으로 다시 찾아보다가 MeloTTS를 보게 됐다. 문제는 처음부터 보였다.MeloTTS는 한국어 기대치는 더 높아 보였지만, Windows 설치가 만만하지 않았다. 공식 문서도 로컬 설치는 Linux/macOS 기준으로 설명하고 있었고, Windows 쪽은 Docker 설치를 권장하는 흐름이었다. 즉, 이 프로젝트는 Windows에서 바로 로컬로 쓰라고 만든 느낌은 아니었다. 그럼에도 불구하고 이번에는 일단 밀어붙여.. 2026. 3. 26.
TTS(Text To Speech) 로컬 실행 및 테스트 sherpa-onnx TTS TTS(Text To Speech) 로컬 실행 및 테스트 sherpa-onnx TTS 처음부터 CUDA 빌드, 커스텀 빌드, Unity용 wrapper DLL까지 한 번에 들어가면 개발보다 환경 설정에 시간이 더 많이 들어갑니다. 그래서 첫 시도에서는 욕심내지 않고, Windows용 프리빌트 TTS 패키지와 한국어 모델을 받아 공식 실행 파일로 음성이 실제 생성되는지 확인하는 것을 목표로 잡았습니다. 1차 목표Windows에서 sherpa-onnx 프리빌트 라이브러리 받기한국어 TTS 모델 받기공식 exe로 TTS가 실제 동작하는지 검증하기sherpa-onnx를 첫 후보로 잡은 이유는 분명했습니다.이 프로젝트는 ONNX Runtime 기반으로 동작하는 로컬 음성 AI SDK이고, 음성 인식뿐 아니라 TT.. 2026. 3. 26.
반응형