음성 입력을 WPF 애니메이션으로 만들어 가상 카메라로 송출하기

저는 MBTI로 치면 I에 해당하는 내향적인 사람입니다. 물론 이렇게 말하면 주변의 친한 분들 중에는 말도 안 된다고 하시는 분들도 있습니다만 사실입니다. 일단 친해진 분들에게는 E처럼 보이겠지만, 문제는 그 친해지기 위한 시간이 필요한 편입니다. 그리고 언제부터인지, 이제는 SNS에 얼굴을 비추는 것도 꺼리게 되어 스스로의 사진을 찍는 것도 잘 하지 않게 되었습니다.

그런데 얼마 전, .NET Usiverse Unplugged 2025-08이 열린다는 소식을 들었습니다.

그래서 일단 신청은 했지만, 내향적인 제 성격 탓에 모르는 사람들이 우르르 모여 있는 화상 회의에서 카메라 앞에 얼굴을 비추는 게 조금 망설여졌습니다. 그것도 그렇지만, 애초부터 제 PC에 카메라가 없습니다. ㅎㅎ

어쩔 수 없이 그냥 음성으로만 참가하려고 생각하던 중, 가상 카메라를 통해서 뭔가 저만의 개성 있는 영상을 송출하면 좀 더 재밌지 않을까 하는 생각이 들었습니다. 거의 모든 SNS에서 제 얼굴을 대신하고 있는 Vagabond K 엠블럼을 이용해서 마이크 음성 입력에 따른 애니메이션을 만들어 송출하면 재밌지 않을까? 하는 생각이 들었던 것입니다.

그래서 이번에 Speech Visualizer라는 이름으로 토이 프로젝트를 간단히 진행해보게 되었습니다. NAudio를 통한 음성 데이터 수집, WPF를 이용한 애니메이션 적용, Microsoft Media Foundation을 이용한 가상 카메라 송출 등의 기능을 구현했습니다.

물론, OBS Studio를 사용하면 굳이 가상 카메라까지 구현할 필요는 없지만 경험 삼아 직접 구현해보기로 했습니다. 그리고 구현 과정에서 Simon Mourier 님의 VCamNetSample 리포지토리가 아주 큰 도움이 되었습니다.

다음의 영상은 가상 카메라를 통한 실제 구동 영상입니다.

혹시라도 이런 기능이 필요하셨던 분은 GitHub 리포지토리를 참고하시기 바랍니다.

그리고 자세한 구현 과정은 블로그 글에 기록했습니다.
https://blog.naver.com/vagabond-k/223962112483

11개의 좋아요

이제 다음 닷넷데브 행사때는 이것으로 발표 주제를 한번 모셔보도록…

공개 감사합니다!

4개의 좋아요

Simon Mourier 님의 샘플 코드를 기반으로 WPF 구현 부분을 약간 추가한 것이라 크게 내용은 없을 것 같습니다만, 그래도 감사드립니다. :sweat_smile:

5개의 좋아요

실력이 대단하신것 같은데 나중에 무슨 알바같은것도 하시나요 ㅎ??

5개의 좋아요

우와 뚝딱뚝딱 만드시는게 멋있습니다!

5개의 좋아요

좋은 평가 감사드립니다. ㅎㅎ
사실 몸 담고 있는 회사와 잘 이야기해서 작년부터 겸업으로 프리랜서를 해보려고 했는데요, 개인적으로 개발 진행 중인 프로젝트와 기존 회사의 업무량 때문에 전혀 해볼 시간이 나지 않고 있습니다… :cry:

4개의 좋아요

멋지게 봐주셔서 감사합니다~ :grinning: :+1:

4개의 좋아요

아, 그 말씀을 못드렸네요. 카메라 켜는거 옵션입니다. ㅎㅎ

5개의 좋아요

ㅎㅎㅎ 네 알고 있었습니다.
그냥 이런 거 하나 만들어보면 재밌을 것 같아서 해본 것입니다~:grinning:

6개의 좋아요