뒤로가기back

아침에 Juice, 오디오 개발에 Juce!

2021.10.08 by Dewey Yoon

아침에 Juice, 오디오 개발에 Juce! 🍊

오디오 어플리케이션 개발을 도와주는 Juce Framework

(2021-10-08)

 

안녕하세요, 가우디오랩 Application 팀의 Software Engineer, Alan 입니다.

저는 올해 초부터 So Hot! Spatial Audio 맛보기 한 스푼 🥄에서 소개드렸던 Spatial Audio 컨텐츠 제작 툴을 만드는 프로젝트에 참여하고 있습니다. 제가 속한 Application 팀은 이 프로젝트를 기점으로 가우디오랩의 핵심 기술들을 실 사용자에게 서비스할 수 있는 제품 개발에 초점을 맞추어 움직이고 있습니다.

 

사용자에게 소프트웨어가 전달되는 과정에는 다양한 기술들이 사용되게 마련인데요. 오늘은 그 중에서도 Audio에 특화된 기능들을 빠르게 구현할 수 있도록 도와주는 Juce Framework를 소개하고, 가우디오랩에서는 이 프로그램을 어떻게 활용하고 있는지 소개해 드리려고 합니다. Juce의 세부적인 이야기는 다른 이슈들과 함께 다음 기회에 빌어 다뤄보려고 해요.

 

 Juce? 처음 들어보신다구요?

 
Juce는 Trakition이라는 DAW를 개발하면서 시작되었고, 2004년에 처음으로 공개되었습니다. 지금도 Juce Github에는 초기에 코드 빌드업을 하면서 고민한 흔적들을 찾아볼 수 있습니다. 후에 2014년 영화 라라랜드에도 등장한 바 있는 Seaboard를 출시한 Roli가 Juce를 자사로 인수하여 운영했었고, 지금은 Audio Software를 중심으로 라이센싱 서비스를 제공하고 있는 Pace가 인수하여 운영을 하고 있습니다. Juce의 시작을 리드하고 오랜 기간동안 운영했던 Julien Storer는 Roli에 남아 여전히 Juce에 공헌을 하고 있죠.
 
 
 
 
<Roli사의 seaboard 모습>

 

Audio 관련 기능의 집합체, Juce

 
Juce는 C++언어 기반의 Audio 관련 기능이 특화된 프레임 워크입니다. GUI, 네트워크, 자료구조 등의 기본적인 기능부터 오디오 플러그인 포맷, 오디오 파일 입출력에 이르기까지 Audio와 관련된 기능을 총 망라해서 제공하고 있다는 점이 큰 특징이죠. 크게 Open-Source와 Commercial 라이센스로 제공되고, 모든 라이브러리가 코드 기반으로 제공되기 때문에 개인이 첫 걸음을 떼기에도 어려움이 없습니다. 최근에는 Mobile 플랫폼도 지원되어 Mac, Windows 등 데스크톱 환경을 벗어나 모바일 플랫폼에서의 간단한 Application 제작도 가능해졌습니다.
 
 
그런데 왜 Juce는 C++ 언어 기반일까요? 
많은 Audio Application의 기본 언어가 C/C++의 Native 언어로 제공되는 이유는 왜 일까요?
 
 
바로 퍼포먼스 이슈 때문입니다. 영상 등 시각 정보의 경우, 디스플레이의 Frame Rate가 낮아지면 부드러운 재생에 영향을 줄지언정 고객이 내용을 인지하는 과정에서 심각한 불편함을 주지는 않습니다. 하지만, 소리의 경우 뒤이어 재생되어야 하는 소리가 멈춘다면 어떨까요? 우리의 귀와 뇌는 본능적으로 이 공백을 듣고 인지하게 됩니다. Glitch 라고도 하는데요. 청자에게 노이즈 등으로 인지되기 때문에 심각한 불편함으로 이어지죠.

 

 
 
<청자에게 심각한 노이즈로 인식되는 Glitch issue>

 

요즘처럼 Managed 언어와 모던 프레임워크들로 서비스를 빠르게 개발할 수 있게 도와주는 세상에…
이게 웬 맷돌 돌아가는 소리 일까요?

 

다행히도 C++도 C++11을 기점으로 언어 차원에서의 도약을 하고 있고 동시에 Juce도 이러한 언어의 도약을 병렬적으로 지원하고 있어 현재 C++17 컴파일러까지 사용 가능합니다. 뿐만아니라, Web이나 Mobile 세계의 매우 발전된 Front-End 프레임워크를 같이 사용할 수 있는 프로젝트들을 진행하는 Audio Application 개발자들의 고민을 커뮤니티에서 많이 접해볼 수 있기도 합니다. 

 

 

다양한 Audio 플러그인을 손 쉽게

 
Juce는 다양한 Audio 플러그인을 손쉽게 만들 수 있도록 도와준다는 또 다른 장점이 있습니다. 특히 요즘은 거의 모든 미디어 작업이 컴퓨터를 기반으로 이루어지고 있는데요. 녹음, 믹싱, 마스터링 등 일련의 음원 작업은 대부분 DAW(Digital Audio Workstation)라 불리는 소프트웨어에 의해 진행됩니다. 애플 사용자라면 익숙한 Garage Band, Logic 부터 전문 스튜디오에서 많이 쓰이는 Pro Tools 등이 모두 이에 해당하죠. 이와 더불어 비디오 편집 툴인 Premiere나 Final Cut Pro 등에서도 간단한 오디오 편집 및 음향 효과 등이 사용 가능합니다. 이 툴들에도 기본적으로는 Audio 관련 기능들이 내부에 구현이 되어 있죠. 
 
 
 
 <가시밭 길 같아 보이지만 이게 바로 DAW입니다>

 

DAW 프로그램 내부에는 다양한 음향 효과를 적용하기 위한 필터들이 존재합니다. 이 필터들을 플러그인 형태로 제공하는 회사들이 굉장히 많고 각 플러그인 들은 DAW에서 운용하기 위해 기본적인 약속들을 제공하고 있습니다. 대표적인 플러그인의 형식으로는 AAX, VST, AU가 있고, ARA 등 점유율은 높지 않지만 기타 플러그인 포맷들도 있어요. 
 
 
오디오 알고리즘을 개발하고 이를 다양한 프로그램에서 사용할 수 있도록 하려면, 각각의 포맷의 약속에 맞는 코드를 만들어야 하는데요. Juce는 각 플러그인 포맷의 사양을 하나로 통합한 WrapperClass를 제공하여 하나의 코드만으로 많은 사용자에게 소리 효과를 전달해 줄 수 있도록 프로그램 내부에서 지원하고 있어요. 
 
 
가우디오랩의 경우, 초기 VR 컨텐츠 제작을 위한 플러그인 툴인 Works(request link: 현재 추가 Support는 하지 않습니다)를 만들 때 이 기능을 적극 활용하기도 했습니다. Works를 제작할 당시에는 Pro Tools의 제작 경험을 중심으로 진행했기 때문에 형식은 AAX만 존재합니다만, 입출력이 비교적 기본적인 형태의 필터라면 여러 포맷으로 쉽게 만들어 낼 수 있는 장점을 가진 툴입니다. 가우디오랩의 공개 제품은 아니지만 개발중인 필터들의 일부는 소리 효과 등을 동작해보기 위해 내부적으로 VST, AAX의 플러그인으로 포팅하여 사용하고 있기도 합니다.

 

 

 

<Juce로 만들 수 있는 여러 플러그인. 얘네도 다 짝꿍이 있다>

 

최근 Application팀은 BTRS 프로젝트에서 플러그인 포맷에서 제한되는 사용자 경험을 확대하기 위해, 이를 Standalone Audio App 형태로 확장하는 작업을 했습니다. Juce가 제공해주는 여러 이점들을 활용해 App 형태를 새롭게 포팅하고 신규 기능을 가진 MVP를 약 3개월 정도의 기간 내에 만들어낼 수 있었어요. 지금은 기능 고도화를 위해 설계를 가다듬고 신규 기술 접목을 위한 리서치 기간을 가지고 있습니다. 

 

 
<더 나은 소리경험을 위해 앞다퉈 한마디씩 하는 PM, 개발자, 디자이너, 사운드 엔지니어…
그리고 그걸 지켜보는 나,, 그건 아마도 전쟁일거야…🎤>

 

사실 Juce가 일반 개발자 분들에게 익숙하지는 않을겁니다. 개발 지원 도구가 비교적 빈약한 것도 사실이에요.

 

때문에 가우디오랩에서는 Juce의 가장 큰 장점인 Audio 기능만 취하고, UI 영역은 Juce가 아닌 더욱 훌륭한 프레임워크로 변경하려는 계획을 가지고 있답니다. 더 많은 사람들이 더 훌륭한 소리경험을 할 수 있도록, 최신의 Front-End 기술을 접목하여 개발할 수 있는 방향으로 고민하며 실험해 보고 있답니다! (으쌰💪🏼)

 
<보다 풍부한 사용자 경험 개발을 위한 UI 프레임워크 리서치>
 

Spatial Audio Application, 같이 만들어요!

그래서… 이 계획의 일원이 되어 저와 함께 Application 팀을 발전시켜나갈 분! (두리번 두리번) Application 팀원 모두가 고개를 쭉 내밀고 동료 가우딘을 기다리고 있답니다!
 
Juce 프레임 워크가 더 궁금하신 분, 라이브 스트리밍 서비스에서 요즘 대세 중의 대세인 Spatial Audio 기술을 활용한 오디오 편집 어플리케이션은 어떻게 구현되는지 궁금하신 분이라면 저와 가벼운 커피챗, 얼마든지 환영이에요!
 
직접 설계한 소프트웨어를 통해 소리를 생성해내고, 그 청각적 효과가 설계 의도와 부합하는지 확인하며 더 좋은 소프트웨어를 만드는 과정! 그리고 팀에서 개발한 기술이 국내외 유수의 서비스에 탑재되어 수 많은 이용자에게 가닿는 기쁨과 희열! 언제나 상호 존중하며 최상의 결과물을 만들어내는 가우디오랩에서 함께 만들어요! (찡긋😉)
pre-image
So Hot! Spatial Audio 맛보기 한 스푼 🥄

So Hot! Spatial Audio 맛보기 한 스푼 🥄 (2021-08-24)   방구석 콘서트, 랜선 공연, 비대면 페스티벌 더는 우리에게 낯설지만은 않은 말들입니다. 거리 두기가 일상이 된 날들에 잇따라 등장한 언택트 공연 포맷은 그동안 쌓였던 대중들의 갈증을 일부 해소하는 한편, 공연 형식 자체의 발전을 통해 새로운 기술이 접목된 공연을 선보이는 계기가 되기도 했습니다. 이러한 흐름 속에서 가우디오랩의 주 전공인 ‘내가 그곳에 가지 않아도, 그곳이 내게 오게 하는’ 오디오 기술은 사용자가 그동안 전혀 겪어보지 못했던 새로운 차원의 오디오 경험을 제공하며 콘텐츠 경험의 층위 자체를 바꿔나가고 있습니다.   콘서트 1열을 방구석 1열로 만드는 기술의 핵심은 스페이셜 오디오(Spatial Audio)에 있습니다. 콘서트 장의 ‘공기 반 소리 반‘을 ‘나’ 위주로 옮겨오는 오디오 기술 덕분에 마치 ‘내가 화면 속 그곳에 있는 듯한’ 새로운 경험을 생생히 맛볼 수 있게 됩니다. 가우디오랩의 Spatial Audio는 방구석 관객인 나의 시선이 향하는 방향에 따라 소리의 모습도 자연스럽게 변화시켜, 이질감 없이 화면 속 세상에 몰입할 수 있도록 해줍니다. VR/XR은 물론, 메타버스 세상의 오디오를 구현하는 핵심적 기술이죠. (참, 스페이셜 오디오에 대한 자세한 설명은 헤니의 블로그 포스트 – 요즘 핫한 Spatial Audio – 에서도 확인하실 수 있답니다 )   2D 세상을 누비는 가우디오랩의 Spatial Audio 소리는 3D로 확장되고 있지만 우리가 주로 소비하는 스크린은 휴대폰, 랩톱, TV 스크린 등 아직 2D에 머무르고 있는 상황입니다. XR 세상에서는 사용자가 360도 모든 방향을 둘러볼 수 있는 자유도가 있지만, 현실에서는 2D 화면을 통해 대부분의 콘텐츠를 경험하고 있는 실정이죠. 이런 현실적 제약 하에서 3D 오디오(Spatial Audio)를 전달하려면 많은 고민과 시도가 필요합니다. 그렇다면 가우디오랩의 3D 오디오는, 2D 세상에서 어떤 식으로 그려지고 있을까요?      Spatial Audio를 2D 세상에 적용하기 위해 다양한 시나리오를 염두에 둘 수 있습니다. 먼저, 콘텐츠 창작자(디렉터)의 의도를 최대한 잘 녹여내기 위해 많은 수의 카메라(각 인물, 구도, 방향마다…)를 설치하는 방법을 생각해 봅니다. 각각의 카메라를 곧 각각 관객의 위치(좌석)으로 설정하는 것이죠.   🤷🏻‍♂️: 이런 멀티 카메라 프로덕션을 통하면, 오디오 경험이 어떻게 달라지는건가요? 💁🏻‍♀️: 무대 위, 멤버 앞, VIP석, 공연장 중심… 우리는 각 카메라 뷰를 맘대로 바꿔가며 공연을 즐길 수 있게 됩니다!       가우디오랩 Spatial Audio 기술이 적용된 View Adaptive Audio의 모습   위 그림에서처럼, 가우디오랩의 View Adaptive Audio를 통하면 2D 스크린에서도 Spatial Audio를 즐길 수 있습니다. 이름 그대로 View Adaptive, 내가 고른 View에 맞춰 사운드가 변화하는 차원 높은 콘텐츠 경험이 전달됩니다. 예를 들어, 오마이걸의 토크쇼를 보면서 제가 좋아하는 유아 View를 선택하면 유아에 집중된 오디오를 들을 수 있고, 그러다 승희 View를 선택하면 마치 멤버 승희 바로 앞에 있는 듯한 느낌을 받을 수 있습니다.      이를 공연 현장으로 옮겨와볼까요? 에스파 공연을 보면서 카리나 앞에 설치된 카메라 View를 선택한다면, 카리나 위주의 화면과 그에 맞는 소리를 들을 수 있게 됩니다. 그러다 전체적인 화면이 보고 싶어지면 스테이지 1열 시점을 선택해 마치 VVIP석에 앉은 것처럼 에스파 멤버들의 동선에 따라 고개를 자유자재로 돌리며 그에 딱 맞는 사운드의 공연을 즐길 수 있게 되죠. 각 시점을 내 마음대로 왔다 갔다~ 하며 자유롭게 선택하는 것은 물론이고요. 👍🏼     글로 설명드리니 대체 어떤 모습인지 궁금하시죠?   가우디오랩의 Spatial Audio 한 스푼 맛보기 🎧 그래서! 바뀌는 화면마다 그에 맞는 사운드가 입혀지는 신기한 경험을 맛보기 하실 수 있도록! 간접 체험 콘텐츠를 들고 왔습니다! (총총🐰) 앞서 말씀드렸던 가우디오랩의 View Adaptive Audio처럼, 직접 View를 선택하고 사운드가 그에 맞게 전환되는, View를 시시각각 전환할 때마다 달라지는 새로운 차원의 사운드를 얕게나마 체험할 수 있는 맛보기 영상이랍니다 😎     바로 네이버 NOW. 유튜브 채널에 업로드된 Spatial Audio 콘텐츠인데요! 가우디오랩의 Spatial Audio 기술이 적용된 이 클립들을 통해, View Adaptive Audio를 살짜쿵 느껴보시죠~😍     정신없이 바뀌는 화면마다 달라지는 소리를 느껴보세요! (속닥) 아 맞다, 눈 감고 들으면 더 대박이라고..   슬기와 조이의 듀엣, 두 목소리가 양쪽에서 따로 들린다구~~🎧   성시경과 수현, 안 그래도 좋은 두 아티스트의 목소리인데, Spatial Audio까지 더해지니 더 황홀하고요 🥳   콘텐츠에 가우디오랩의 공간 음향 기술을 더한 것만으로도 밋밋했던 사운드가 짠! 하고 살아나는 완전히 새로운 경험을 하게 됩니다. 2D 화면에 묻혀있던 사운드가 가우디오랩의 솔루션을 통해 한 겹 한 겹 살아나는 느낌인데요. 앞으로 많은 스트리밍 서비스에서 제공될 Spatial Audio 콘텐츠가 벌써 기대됩니다 😊   콘텐츠 공급과잉의 시대라고들 하죠. 쏟아져 나오는 디지털 플랫폼의 향연에, 우리는 자연스레 전과는 다른 새로운 경험과 재미를 선사하는 콘텐츠를 찾고 있습니다. 그 틈바구니에서 어느덧 성큼 우리 삶에 다가온 Spatial Audio! 이 기술을 통해 앞으로 좋아하는 아티스트의 토크쇼나 공연을 더 가까이서, 더 현장감 있게, 더 몰입하여 볼 수 있게 될 거라는 사실이 모두를 들뜨게 합니다!   그래서 오늘도 가우디오랩은 여러분들께 더 완전하고 몰입감 있는 사운드, 전에는 느껴본 적 없던 전혀 새로운 소리로, 기대 그 이상의 즐겁고 설레는 소리 경험을 드릴 수 있도록, 열심히 소리를 연구하고 있답니다 🎧

2021.08.24
after-image
AI Text Sync 개발의 어려움, 이렇게 격!파! 했어요 👊🏼

AI Text Sync 개발의 어려움, 이렇게 격!파! 했어요 👊🏼 (2021-10-25)   진화하는 ‘실시간 가사보기’ 사람이 일일이 수기로 음악과 가사의 싱크(Sync)를 맞추던 ‘실시간 가사보기’는 이제 가우디오랩 GTS(Gaudio Text Sync)의 등장으로 과거의 일이 되어가고 있습니다. AI기술이 음성과 텍스트를 자동으로 동기화(Speech-Text Synchronization)하고 있으니까요! 😎 (무려 5초에 1곡씩 싱크를 맞춰버리는 스피드!)   GTS에 대한 소개는 지난 번 Ben과의 인터뷰(“가사나 자막 입력도 이제 AI가 해준다고요?”)를 통해 전해드리기도 했었어요 ☺️   사실 텍스트 싱크에 대한 수요는 영화, 드라마, 예능 등 수출/수입용 콘텐츠의 자막 뿐만아니라, 뮤직 스트리밍 서비스의 실시간 가사(동기 가사), UCC(or UGC)의 자막, 어학 교육 자료 제작 등 주류 미디어에서부터 1인 미디어 콘텐츠까지 다양한 곳에서 콸콸콸 쏟아져 나오고 있습니다. 특히나 스트리밍이 중심이 되는 현 미디어 생태계에서는 GTS가 가진 AI Text Sync 기술의 수요가 더욱 뜨겁게 증가할 수 밖에 없죠. 🔥     범람하는 콘텐츠 시장, 이제 텍스트 Sync는 GTS에 맡겨두세요!   AI Text Sync 개발의 어려움을 격파한 이야기 이렇게 핫한 기술이지만, 사실 해당 AI 모델을 설계하고 학습하는데 마주하는 실질적인 어려움도 적지 않았다고 합니다. GTS는 그 모든 어려움을 뚫어낸 소중한 노력의 산물인데요, 그 결과로 가우디오랩 AI그룹은 음원 분리, 음성 인식 등을 응용한 모델 설계와 다양한 알고리즘 신호처리 기술의 조합으로 AI Speech-Text Synchronization 기술을 개발, 상용화까지 성공해 시장에서 인정받고 있답니다!   가우디오랩의 CSO인 Ben과 GTS를 소중히 키워 세상에 내놓은 Manuel이 실제 Text Sync 모델을 개발하고 이를 상용화하는 과정에서 얻은 현장감 가득한 인사이트를 지난 9월 말 AI DATA INSIGHT를 통해 나눴다는 사실! AI 음성-동기화(AI Speech-Text Synchronization) 기술 개발 전반에 대한 특별 기고를 지금 바로 [AI DATA Insight]에서 확인하세요! ☺️  

2021.10.25