텍스트만으로 어떤 목소리든 만들어내는 로컬 AI (VoxCPM)

BBetter Stack
컴퓨터/소프트웨어AI/미래기술

스크립트

00:00:00드디어 배포했습니다. 진짜로 해냈다고요. 아무것도 건드리지 마세요. 일레븐랩스를 완전히 박살 낼 겁니다.
00:00:04방금 한 말 다시 해줘요. 더 천천히요. 제발요. 이게 일레븐랩스를 박살 낸다고요?
00:00:10어떻게 그게 가능하죠?
00:00:11어떤 음성이 가짜인지 구별할 수 있겠어요? 뉴스입니다, 둘 다 가짜였어요.
00:00:15이 기기에서 로컬로 실행되는 20억 파라미터 모델에서 나온 겁니다.
00:00:20일레븐랩스도 없고, 오디오 업로드도 없죠. 그런데 이상한 점은,
00:00:24목소리 복제가 이 기능의 가장 유용한 점조차 아닐 수도 있다는 겁니다. 자세히 알아봅시다.
00:00:30이것은 OpenBMB의 Vox CPM2입니다. 텍스트 음성 변환의 아주 사소한 일부분을 해결하는 대신,
00:00:40우리가 보통 따로 조합해 쓰던 세 가지 기능을 결합했습니다. 음성을 생성할 수 있고,
00:00:46텍스트 설명만으로 완전히 새로운 목소리를 만들어낼 수 있으며,
00:00:49사용 권한이 있는 목소리를 복제할 수도 있습니다. 그리고 감정 표현이
00:00:54정말 훌륭합니다. 설명할 게 많지만 유용한 핵심은 간단합니다. 음성을
00:00:58먼저 코드로 변환하는 대신, 연속적인 오디오 표현을 직접 다룹니다.
00:01:03덕분에 음성을 인간답게 만드는 작은 디테일들을 살릴 가능성이 더 높아집니다. 숨소리,
00:01:08말하기 속도, 문장 중간에 바뀌는 감정 같은 것 말이죠.
00:01:12하지만 단순히 더 나은 오디오를 찾는 것뿐이라면 이 모든 건 중요하지 않습니다. 여러분의 앱에 음성 기능이 있다면,
00:01:16아마 다른 사람의 API로 텍스트를 보내고 있을 겁니다. 일레븐랩스처럼 말이죠. 그 순간
00:01:22세 가지 문제를 떠안게 됩니다. 완전히 통제할 수 없는 지연 시간, 사용량에 따라 불어나는 비용. 그리고
00:01:28때로는 참고용 오디오까지 네트워크 밖으로 유출되죠. Vox CPM2는 이 모든 것을 바꿔줍니다. 음성 모델이
00:01:34앱 바로 옆에 위치할 수 있으니까요. 이제 “이거 멋지네?”라고 자문할 필요가 없습니다. 오히려
00:01:40“내 시스템을 망가뜨리지 않고 호스팅 종속성을 제거할 수 있을까?”라는 관점에 가깝죠. 이제 이걸 설치해서
00:01:46유용한 무언가를 만들어 보겠습니다. 서비스로 변환하고 텍스트로 목소리를 디자인하는 법을 이야기하죠.
00:01:51제 목소리를 직접 복제해 보기까지 할 겁니다. 그런 다음 실제로 이 기술을 써야 할지 결정하는 기준인
00:01:55한계점과 그 외 모든 사항들을 다뤄보겠습니다. 실행해 보죠.
00:02:00작업 속도를 높여주는 코딩 도구를 좋아하신다면 구독해 주세요. 유용한 영상이
00:02:05계속 업로드됩니다. 설치는 쉽지만 몇 기가바이트의 여유 공간이 필요합니다. 가상 환경에서
00:02:11Torch audio와 함께 PyTorch를 설치하고 Vox CPM을 받으면 됩니다. 패키지 이름은 그냥 Vox CPM입니다. 메인
00:02:19체크포인트는 OpenBnB slash Vox CPM2입니다. 비교적 최신 버전의 Python과 적당히 최신 PyTorch 빌드가 필요합니다.
00:02:27하지만 여기서 첫 번째 난관이 있습니다. 기본 경로상 이 모델은 GPU가 필요합니다. 저는 Mac M4 Pro를 쓰고 있죠.
00:02:34NVIDIA 환경으로 간다면 VRAM이 약 8기가바이트 정도 필요합니다. 그리고 그 수치는 여전히 중요합니다. 왜냐하면
00:02:40유일한 장비가 성능이 낮은 노트북 GPU라면, 이걸 직접 호스팅하려는 시도 자체가 번지수가 틀렸기 때문입니다.
00:02:46저는 맥을 쓰고 있으니, 제가 알고 싶었던 첫 번째 질문에는 답하기 충분합니다. 목소리가
00:02:50정말 좋게 들릴까요? 프로덕션 환경에서 쓸 머신은 아니지만, 여기선 작동할 겁니다.
00:02:55그러니 인프라를 건드리기 전에 허깅 페이스 데모를 먼저 쓰세요. 실제 문장으로 테스트해 보는 겁니다.
00:03:00거기서 목소리가 별로라면, 애초에 필요도 없던 배포 문제를 해결하느라 고생하는 걸 미리 면한 셈이죠.
00:03:04자, 이걸 답변해 보죠. 기본적인 기능이 실제로 잘 작동할까요? 단순하게 'hello'나 'hello world' 같은 걸
00:03:10입력하진 않을 겁니다. 여기 실제 문장들을 몇 가지 넣어보겠습니다.
00:03:14이 과정 전체를 처리하려고 작성한 파이썬 스크립트가 보이실 겁니다. 꽤 직관적이죠.
00:03:20임포트를 하고, Vox CPM으로 모델을 구성했습니다. 여기에 몇 가지 초기 텍스트를 설정하죠.
00:03:27목소리가 어떻게 들렸으면 좋겠는지, 어떤 출력을 원하는지 세부적으로 묘사할 수 있는 부분입니다.
00:03:32하지만 이건 잠시 후에 다루기로 하고, 마지막으로 이 메서드를 통해 아래에서 모든 걸 생성합니다.
00:03:38잠시 후에 제 목소리를 복제할 수 있는 샘플 오디오를 넣어볼 겁니다. 하지만 우선.
00:03:42초기 버전을 실행해 보죠. 파이썬 스크립트를 실행하겠습니다. 컴파일되는 게 보이실 겁니다. 여기서 자기 역할을 하죠.
00:03:49터미널을 통해 실행하기만 하면 됩니다. AF play를 실행하고 파일 이름을 입력하면 됩니다.
00:03:54US East 1에서 배포가 실패했습니다. 문제없죠. 자, 꽤 잘 되지 않나요? 방금 출력을 들으셨을 겁니다.
00:04:02더 나아질 수도 있겠지만요. 하지만 이건 뻔하고 지루한 방식이었습니다. 때로는 지루한 게 좋은 법이죠. 텍스트가 들어가고.
00:04:0948kHz 웨이브 파일이 나옵니다. 화자 ID도 없고, 제가 임의로 넣은 언어 파라미터도 없습니다.
00:04:15외부 API도 없죠. 따라서 첫 번째 질문은 여기서 어느 정도 해결됩니다. 네, 잘 작동합니다. 만약 이게.
00:04:23실제 제품에 들어간다면, 당연히 엉뚱한 장고 라우트 안에 거대한 모델을 통째로 임포트하진 않겠죠.
00:04:28서비스가 필요할 겁니다. 실제로 어떻게 쓸 수 있는지 보고 싶으실 테고요. 바로 여기서 Vox CPM2가.
00:04:32훨씬 더 흥미로워집니다. 목소리가 됨을 증명한 로컬 스크립트를, 앱이 실제로 처리할 수 있는.
00:04:38형태로 바꾸는 방법입니다. GPU 위에서 바로 이 명령어를 실행할 수 있습니다.
00:04:44앞서 말씀드린 그 NVIDIA GPU 말입니다. 지금 저는 여기서 실행하고 있진 않습니다. GPU 호스트 명령어니까요. 즉 Linux나.
00:04:50NVIDIA 환경이어야 하죠. 모델을 유지할 충분한 VRAM도 필요하고요. 이 노트북에서는 안 됩니다.
00:04:56하지만 일단 실행되고 나면, 애플리케이션에서 라우트를 호출할 수 있습니다. v1 audio speech 말이죠. 해당 엔드포인트는 OpenAI 형식과 같습니다. 그러니 앱이.
00:05:03이미 v1 audio speech와 통신하고 있다면, 전체 오디오 레이어를 다시 만들 필요가 없습니다.
00:05:10베이스 URL만 바꾸고, 여기저기 매개변수를 조금만 손보면 끝납니다. 방금 제가 실행한 건.
00:05:17목소리를 테스트해 본 것에 불과합니다. 이 엔드포인트가 실제로 기능을 확장해 주는 거죠. 이제 평범한 서비스 뒤에.
00:05:23일반적인 TTS가 붙게 됩니다. 자, 꽤 유용하죠. 하지만 호스팅형 API들은 이미 이 작업을 엄청나게 잘 해내고 있습니다. Vox CPM2가.
00:05:29흥미로운 진짜 이유는 평범한 목소리를 요구하는 것을 멈출 때 일어나는 일들 때문입니다. 먼저 목소리 디자인입니다.
00:05:36참고 녹음도 필요 없고, 화자 파일도 필요 없습니다. 원하는 사람을 묘사하기만 하면 됩니다.
00:05:42제가 문제가 좀 있었던 chatterbox 같은 것에 비하면 감정 표현이 정말 미칠 듯이 훌륭합니다.
00:05:48여기에 텍스트를 좀 적어보죠. 바로 이거요. 카페인에 잔뜩 취한 흥분한 미국인. 좋습니다, 이 정도면 됐어요. 그런 다음.
00:05:53그 뒤에 텍스트를 넣을 수 있습니다. 이렇게요. 이번 마이그레이션은 되돌릴 수 있습니다. 금요일에는 절대 안 합니다.
00:05:59이것은 아마 제가 가장 과소평가했던 기능일 겁니다. 보통 새로운 목소리가 필요하면 찾아 나서야 하죠.
00:06:05하지만 여기서는 그냥 묘사하면 됩니다. 목소리가 설정 자체가 되는 것이죠. 먼저 녹음해야 하는 에셋이 아닙니다.
00:06:12전체 음성 파이프라인을 다시 구축할 필요 없이, 말 그대로 10초 만에 마음에 안 드는 페르소나를 버릴 수 있습니다. 마이그레이션은 되돌릴 수 있습니다. 금요일에는 안 합니다.
00:06:19정말 훌륭합니다. 좋습니다, 그다음은 복제입니다. 제 진짜 목소리 8초 분량입니다. 이제 Vox CPM2에.
00:06:27완전히 다른 문장을 줍니다. 그리고 이것이 핵심적인 차이점입니다. 참고 음성을 그대로 재생하는 게 아니라.
00:06:32그 목소리를 가져와 새로운 텍스트에 적용하는 것이죠. 이걸 통해 말하고 있는 제 목소리의 복제본입니다.
00:06:39복제 측면에서는 실제로 정말 훌륭했습니다. 하지만 복제는 문제의 절반일 뿐입니다. 목소리는.
00:06:45올바른 사람처럼 들리면서도 대사를 완전히 엉뚱하게 칠 수 있거든요. 바로 그때 더 완벽한 복제.
00:06:51방식이 필요해집니다. 참고 오디오의 대본까지 함께 제공하면, 모델은 단순한 화자의 음색뿐만 아니라.
00:06:56실제 연기나 억양에 대한 더 많은 정보를 얻게 됩니다. 그런 다음 동일한 파이프라인을.
00:07:01다른 언어로 확장할 수 있습니다. 번역을 직접 해주는 건 아니지만, 출력할 언어를 지정해 줄 수는 있죠. 아랍어를 예로 들어보겠습니다.
00:07:07좋네요, 아주 최고는 아니었습니다. 아랍어라서 그랬을 수도 있지만 잘 작동하긴 했습니다. 이번에는.
00:07:16프랑스어를 해보죠. 훨씬 더 낫네요. 여러 중국어 방언을 포함해 약 30개 언어를 지원합니다.
00:07:25이 지점에서 저는 이 모델이 무엇을 할 수 있는지 묻는 것을 멈추고, 제가 실제로 무엇을.
00:07:30포기하고 있는지 묻기 시작했습니다. TTS 모델을 고르는 것은 여전히 엔지니어링적 타협이니까요. Vox CPM 2가 흥미로운 이유는.
00:07:35꽤 이례적인 중간 지점에 안착하기 때문입니다. 로컬에서 실행되고, 상업적으로 친화적인 라이선스를 가졌으며.
00:07:42다국어를 지원하고, 복제가 가능하며, 텍스트만으로 새로운 목소리를 처음부터 디자인할 수 있습니다. 이 모든 게 단 하나의 체크포인트에서 가능하죠. 하지만.
00:07:48그렇다고 해서 이게 무조건 최고라는 뜻은 아닙니다. 작업에 따라서는 Chatterbox가 더 쉽고 가벼울 수 있죠. 물론.
00:07:55감정 표현이 까다롭긴 합니다. 목소리 디자인이 중요하다면 Qwen 3 TTS가 직접적으로 살펴볼 만한 또 다른 모델일 겁니다.
00:08:02그리고 일레븐랩스는, 훌륭합니다. 하지만 거듭 말하지만 이것도 정말 좋은 대안입니다. 제 텍스트를.
00:08:07어딘가로 보내고 싶지 않고, 그걸 쓰기 위해 남에게 돈을 내고 싶지도 않으니까요. 그 편리함에 돈을 지불하는 거겠죠.
00:08:12Vox CPM 2를 쓰면 음성 스택을 직접 소유하기로 선택하는 셈입니다. 그 대가로 세 가지가 바뀝니다.
00:08:18데이터가 내 인프라 내부에 안전하게 머물 수 있죠. 그리고 하나의 모델이 잠재적으로.
00:08:24목소리 디자인, 복제, 다국어 음성을 위한 각각의 별개 시스템을 대체할 수 있습니다. 멋지게 들리죠.
00:08:29실제 프로덕션 인프라처럼 다루기 전까지는 말입니다. 자, 이 도구는 사용하기 꽤 쉬웠습니다. 보시다시피 48kHz 출력도 좋고요.
00:08:36텍스트 기반 음성 디자인은 페르소나를 프로토타이핑하는 데 유용합니다. Apache 2.0 덕분에 상업적 활용에 대한 고민도.
00:08:42훨씬 수월해집니다. VLLM 경로를 이용하면 일반적인 서비스처럼 보일 수도 있죠. 일반적인 NVIDIA 설정이 아닌 경우에도.
00:08:47ComfyUI, GGUF, MLX 같은 커뮤니티 경로들이 있습니다. 하지만 이제 비용을 따져봐야죠. 첫째로.
00:08:54VRAM입니다. NVIDIA에서 이걸 구동한다면 8GB로 모델을 띄우기엔 충분할 수도 있습니다. 하지만 그것은.
00:08:59프로덕션 환경에서 8GB면 충분하다는 뜻과는 다릅니다. KV 캐시, 다중 요청, 동시성을 추가하면.
00:09:0624GB 그래픽카드가 훨씬 더 많은 여유를 줍니다. 둘째로, 모든 프롬프트에 대해.
00:09:11품질이 무조건 최첨단 수준인 것은 아닙니다. 아랍어에서 들으셨듯 언어에 따라서, 혹은 참고 오디오와 요구 사항에 따라서.
00:09:17사람들은 여전히 VoxCPM, Chatterbox, Qwen, 어쩌면 일레븐랩스 사이를 오가고 있습니다. 그러니.
00:09:22“VoxCPM 2가 모든 영어 문장에서 일레븐랩스를 이기나요?”라는 질문은 틀렸습니다. 정말 잘 해내긴 하지만요.
00:09:28더 나은 질문은 이겁니다. “이 모델이 우리가 생성하는 작업의 약 80%에 대해 호스팅 API를 대체하고.
00:09:33나머지 일부만 호스팅 상태로 유지할 수 있을까요?” 그렇게 한다면 비용 절감에 실제로 도움이 되며.
00:09:38훨씬 더 타당한 선택이 됩니다. 자, 그럼 이걸 정말 써야 할까요? 음, 이미 GPU 박스가 있다면 쓰세요. 저는 맥에서.
00:09:44해냈습니다. 꽤 잘 해냈으니 특정 작업들은 충분히 처리할 수 있습니다. 음성이 일회성 보이스오버가 아니라.
00:09:49실제 제품 기능이라면 말이죠. 로컬 음성, 다국어 지원, 혹은 커스텀 페르소나가 필요하다면.
00:09:54정말 훌륭한 선택입니다. 다만 본인의 세팅에 따라 다름을 명심하세요. 저장소 링크는 아래에 남겨둘 테니.
00:10:00여러분도 확인해 보세요. BetterStack의 Josh였습니다. 이와 같은 코딩 팁과 요령이.
00:10:05마음에 드셨다면 구독해 주세요. 유용한 영상이 계속 업로드됩니다.

핵심 요약

Vox CPM2는 텍스트만으로 목소리를 디자인하고 로컬에서 직접 음성을 생성하여 외부 API 의존성과 비용을 제거한다.

하이라이트

  • OpenBMB의 Vox CPM2는 20억 파라미터 규모의 로컬 텍스트 음성 변환 모델로 일레븐랩스의 대안이 된다.

  • 텍스트 설명만으로 새로운 목소리를 생성하며 참고 오디오를 활용한 음성 복제 기능을 제공한다.

  • Apache 2.0 라이선스를 적용하여 상업적 활용이 가능하고 약 30개 언어를 지원한다.

  • NVIDIA 환경에서 원활한 구동을 위해 약 8GB 이상의 VRAM이 필요하다.

타임라인

Vox CPM2의 주요 특징과 기존 TTS와의 차이점

  • Vox CPM2는 OpenBMB에서 개발한 20억 파라미터 로컬 음성 생성 모델이다.
  • 음성 생성, 텍스트 기반 목소리 디자인, 권한 있는 음성 복제 기능을 결합했다.
  • 연속적인 오디오 표현을 직접 다루어 숨소리와 감정 표현 같은 세부 디테일을 살린다.

기존의 분리된 오디오 파이프라인과 달리 연속적인 오디오를 직접 다루어 인간다운 디테일을 높인다. 외부 API 사용 시 발생하는 지연 시간과 비용 문제를 해결한다.

설정 방법과 하드웨어 요구 사항

  • 설정을 위해 Torch audio와 함께 PyTorch를 설치하고 Vox CPM 패키지를 내려받는다.
  • 기본적으로 GPU 환경이 필요하며 NVIDIA 환경에서는 약 8GB의 VRAM이 요구된다.
  • 파이썬 스크립트를 통해 화자 ID나 외부 언어 파라미터 없이 48kHz 웨이브 파일을 생성한다.

가상 환경 구축 후 메인 체크포인트인 OpenBnB slash Vox CPM2를 활용한다. 로컬 테스트를 거쳐 정상적인 작동을 확인할 수 있다.

서비스 통합과 목소리 디자인 기능

  • v1 audio speech 엔드포인트를 통해 OpenAI 형식과 호환되는 서비스 형태로 확장할 수 있다.
  • 참고 녹음 없이 텍스트 설명만으로 새로운 페르소나의 목소리를 디자인한다.
  • 8초 분량의 실제 목소리 샘플을 입력하여 새로운 텍스트에 적용하는 복제를 지원한다.

GPU 호스트 환경에서 서비스를 구동하면 기존 애플리케이션의 오디오 레이어를 크게 수정하지 않고 통합할 수 있다. 텍스트 묘사만으로 페르소나를 빠르게 프로토타이핑하는 기능이 강점이다.

다국어 지원 및 프로덕션 도입 기준

  • 중국어 방언을 포함해 약 30개 언어를 지원하며 프랑스어와 아랍어 등에서 작동을 확인했다.
  • Apache 2.0 라이선스로 상업적 활용에 대한 부담이 적다.
  • 동시성과 다중 요청을 처리하려면 8GB보다 더 여유로운 VRAM 사양이 필요하다.

다양한 대안 모델들과 비교할 때 로컬 소유권, 다국어 처리, 커스텀 페르소나 생성 측면에서 균형 잡힌 중간 지점을 제공한다. 생성 작업의 상당 부분을 대체하여 호스팅 비용을 줄이는 데 유용하다.

커뮤니티 글

모든 글 보기