Transcript
00:00:00음성 인식 기능은 이제 대화 내용을 텍스트로 바꾸는 것 자체는 잘하지만, 문제는 여전히 정리에 있습니다.
00:00:06지저분한 텍스트를 처리할 때마다 GPT나 Claude를 쓸 수도 있겠지만, 이 작업을 위해 만들어진 6억 파라미터 모델을 사용할 수도 있죠.
00:00:14Super Whisper가 방금 S1 Mini를 출시했습니다. 완전히 로컬에서 실행되며 군더더기 말, 오타 수정, 숫자, 서식을 깔끔하게 정리해 줍니다.
00:00:22게다가 규모도 작아서 자체 ASR 파이프라인에 바로 집어넣을 수 있죠.
00:00:26직접 테스트해 봤는데, 이 기술이 어디로 향하고 있는지 보여드릴 때가 되었습니다.
00:00:30S1 Mini. 핵심은 파이프라인에 있습니다. 구조를 이렇게 생각하시면 됩니다.
00:00:39여러분이 이미 사용 중인 어떤 음성 인식 시스템이든 음성 데이터를 입력합니다.
00:00:43Whisper, Whisper CPP, Parakeet, 혹은 자체 ASR 서비스 등 말이죠.
00:00:47그러면 원본 텍스트가 나옵니다.
00:00:50그 뒤에 S1 Mini가 바로 배치되는 겁니다.
00:00:53지저분한 텍스트가 들어가서 깔끔한 텍스트가 나오는 거죠.
00:00:56"음", "어" 같은 군더더기를 제거하고, 말실수나 자가 수정을 정리하며, 숫자와 날짜, 이메일 주소의 서식을 맞춰줍니다.
00:01:06출력물의 어조까지 제어할 수 있습니다.
00:01:09이 모든 과정에서 텍스트를 다른 API로 보낼 필요가 전혀 없습니다.
00:01:12이것이 바로 핵심 가치의 대부분이라고 생각합니다.
00:01:16기존 음성 인식 스택을 통째로 바꾸는 게 아닙니다.
00:01:18거기에 아주 작은 정리 레이어 하나를 추가하는 것뿐이죠.
00:01:21Super Whisper는 S1 Voice와 S1 Language도 출시했지만, 그것들은 클라우드 모델입니다.
00:01:27우리에게 흥미로운 건 S1 Mini입니다. 오픈소스 모델이기 때문이죠.
00:01:32게다가 완전히 로컬에서 실행할 수 있으므로 실제로 잘 작동하는지 확인해 보겠습니다.
00:01:36작업 속도를 높여주는 코딩 도구를 좋아하신다면 구독해 주세요.
00:01:39다양한 영상들이 계속 업로드됩니다.
00:01:41자, 현재 Mac M4 Pro에서 실행 중인데 첫 번째 놀라운 점은 용량입니다.
00:01:46거대한 로컬 모델을 다운로드할 필요가 없어요.
00:01:49제가 사용 중인 양자화 버전은 약 462메가바이트입니다.
00:01:53Hugging Face에서 다운로드해서 curl 명령어로 설치했습니다.
00:01:57GGUF 버전도 제공되므로 일반적인 로컬 도구로 실행할 수 있습니다.
00:02:02따라서 Llama CPP, Ollama, LM Studio 등 취향에 맞는 것을 선택하면 됩니다.
00:02:07이미 사용 중인 작업 환경에 맞추면 되는데, 여기서는 이미 실행 중이던 Ollama를 선택했습니다.
00:02:13모델을 설치하고 데스크톱에 간단한 모델 파일을 만든 후, Ollama를 통해
00:02:18서버를 띄워 실행할 수 있습니다.
00:02:20자, 이 모델은 텍스트 정제 도구라는 점을 명심하세요.
00:02:23정리가 어떻게 되는지, 그리고 이를 어떻게 워크플로우에 통합할 수 있는지 살펴보겠습니다.
00:02:28일부러 엉망진창인 데이터를 한번 넣어볼까요?
00:02:31여기 원본 텍스트가 있습니다.
00:02:33보시다시피 제가 여러 곳에서 말을 더듬었습니다.
00:02:36어, 좀 망가졌네요.
00:02:37이런저런 일들이 실제로 벌어지고 있죠.
00:02:39그리고 맨 마지막에는 support@betterstack.com으로 이메일을 보내라고 말합니다.
00:02:43여기에 음성 인식 기능을 짜증 나게 만드는 요소가 거의 다 들어 있습니다.
00:02:47시작 부분의 군더더기 말과 중간의 정정 내용이 포함되어 있죠.
00:02:50말로 표현된 숫자도 있습니다.
00:02:52소리 내어 말한 이메일 주소 안에도 복잡한 내용들이 섞여 있고요.
00:02:55이런 상황에서는 일반 LLM이라면 오히려 과하게 처리해 버릴 수 있습니다.
00:03:00S1 Mini가 대신 무엇을 하는지 보죠.
00:03:02모델을 통과시키면 짠, 결과가 나옵니다.
00:03:05지연 시간 없이 군더더기 말들이 순식간에 사라집니다.
00:03:08중간에 말을 바꾼 의도까지 정확히 이해하죠.
00:03:11이메일 주소도 올바른 형식으로 서식이 지정되며, 결과물은 제가 실제로
00:03:17입력하려던 내용에 훨씬 가깝습니다.
00:03:18좋습니다.
00:03:19간단하게 테스트해 볼 수 있는 몇 가지 예시를 더 보여드릴게요.
00:03:22여기에 하나 더 있습니다.
00:03:23좋아요.
00:03:24자, 빠르게 보죠.
00:03:25또 다른 예시입니다.
00:03:26아주 잘 되네요.
00:03:27그리고 이것도요.
00:03:29보시다시피 모두 거의 실시간으로 처리되었으며, 간단한 정리를 거친
00:03:34결과물을 확인할 수 있습니다.
00:03:35하나의 문장을 갑자기 장황하고 늘어지는 이메일처럼 바꿔버리지도 않습니다.
00:03:39대부분의 의미는 그대로 유지하죠.
00:03:41주변의 지저분한 부분만 깔끔하게 정리해 줍니다.
00:03:44텍스트 정제라는 목적에 정확히 부합하는 기능입니다.
00:03:47이제 이 기능을 간단한 흐름에 녹여내 보겠습니다. 실시간 음성을 다루는 또 다른
00:03:51실제 레이어에 넣으면 멋질 테니까요.
00:03:53제 Mac에 미리 녹음해 둔 오디오 파일이 있습니다.
00:03:56길이는 10초 정도입니다.
00:03:57먼저 제 Mac에서 깔끔하게 실행되는 MLX Whisper를 사용하겠습니다.
00:04:02이 실행을 통해 여기서 오디오를 텍스트로 변환합니다.
00:04:05그런 다음 이 명령어를 실행하면 정리가 아주 훌륭하게 수행되어
00:04:09텍스트로 출력됩니다.
00:04:10실제 오디오 파일을 가져와서 작업해 본 과정이었습니다.
00:04:14S1 Mini는 애플리케이션의 메인 모델로 사용하는 것은 바람직하지 않습니다.
00:04:18우리가 원하는 방식은 아니죠.
00:04:19다른 두 요소 사이의 작은 레이어로 사용하는 것이 훨씬 타당합니다.
00:04:23완전히 로컬 환경에서 작동하는 받아쓰기 시스템을 구축한다고 상상해 보세요.
00:04:26Whisper CPP가 오디오를 처리합니다.
00:04:29S1 Mini가 정리를 담당하죠.
00:04:31그러면 정제된 텍스트가 편집기로 바로 들어가므로 데이터가 기기 밖으로 전혀 유출되지 않습니다.
00:04:35바로 이거죠.
00:04:36S1 Mini가 들어가야 할 자리가 바로 여기입니다.
00:04:38원문 텍스트가 들어오죠.
00:04:40정제된 텍스트가 나갑니다.
00:04:42그리고 이 기능이 훨씬 더 중요하게 작용하는 곳들이 꽤 많습니다.
00:04:46글쎄요.
00:04:46코딩 에이전트를 예로 들어보죠.
00:04:47에이전트에 전달되기 전에 텍스트를 먼저 다듬으면 명령어의 의미가 훨씬 명확해집니다.
00:04:52음성으로 작성하는 슬랙 메시지도 마찬가지고요.
00:04:54이메일 지원 티켓이나
00:04:56회의록도 그렇습니다.
00:04:57말로 입력하되 결과물은 글쓴 것처럼 보이게 만들고 싶은 모든 곳에서 유용합니다.
00:05:01모든 텍스트 정제 과정을 로컬에서 처리할 수 있죠.
00:05:04추가 API 호출이나 외부로 전송되는 트랜스크립트도 없습니다.
00:05:08여기서 당연한 의문이 하나 생깁니다.
00:05:10대형 모델들이 이미 이 작업을 잘 해내는데, 왜 굳이 이 작은 모델을 쓸까요?
00:05:14물론이죠.
00:05:15트랜스크립트를 GPT나 Claude, 혹은 로컬 Llama 모델에 보내면 확실히 잘 정리해 주겠지만요.
00:05:21바로 그 지점에 문제가 있습니다.
00:05:23이 모델들은 너무 많은 것을 할 수 있거든요.
00:05:25범용 LLM은 트랜스크립트를 재작성하고, 요약하고, 확장할 수 있습니다.
00:05:28여러분도 이런 일이 일어나는 걸 본 적이 있으실 겁니다.
00:05:32LLM에 저런 텍스트를 맡기면 어떻게 되는지 아실 겁니다.
00:05:34텍스트를 원하지 않는 방향으로 이끌어갈 수도 있죠.
00:05:37반면 S1 mini가 맡은 역할은 훨씬 더 단순합니다.
00:05:41지저분한 음성을 받아 정규화하는 것.
00:05:43그게 전부입니다.
00:05:46정확히 이 종류의 변환을 위해 설계된
00:05:476억 개의 파라미터를 가진 모델을 사용하는 이유죠.
00:05:53따라서 이 단일 작업에서는 더 적은 리소스 사용량과 낮은 지연 시간을 기대할 수 있습니다.
00:05:57대규모로 처리할 때도 텍스트 정제 API 비용이 들지 않습니다.
00:06:01또한 S1 mini를 로컬 Whisper 같은 도구와 구분해 볼 필요가 있습니다.
00:06:05Whisper는 하나의 문제를 해결합니다.
00:06:07오디오를 텍스트로 바꾸는 것이죠.
00:06:09S1 mini는 그다음 문제를 해결합니다.
00:06:12그 텍스트를 사람이 직접 타이핑하거나 작성한 것처럼 보이게 만들어 줍니다.
00:06:17파이프라인은 정말 간단합니다.
00:06:20음성, 원문 트랜스크립트, 정제된 텍스트.
00:06:22이제 Whisper 측에도 워크플로우의 양쪽을 위한 모델이 있습니다.
00:06:25하지만 중요한 점은 전체 스택을 다 쓸 필요는 없다는 겁니다.
00:06:28S1 mini를 가져와 여러분의 스택에 쏙 집어넣으면 됩니다.
00:06:31바로 이 점 때문에 이 모델이 또 다른 소형 LLM 출시보다 더 흥미로운 것입니다.
00:06:35하지만 완벽한 것은 아닙니다.
00:06:36중요한 곳에 도입하기 전에 알아두어야 할 몇 가지 한계가 있습니다.
00:06:40자, 좋은 점부터 볼까요.
00:06:41좋은 점이라면요.
00:06:42크기가 작고,
00:06:43속도가 빠르며,
00:06:43완전한 로컬 실행이 가능하다는 것입니다.
00:06:44따라서 변환이 끝나면 텍스트 정제만을 위해 네트워크 왕복을 거칠 필요가 없습니다.
00:06:49이것은 엄청난 장점입니다.
00:06:50특히 당연한 부분들에서 매우 강력합니다.
00:06:53군더더기 말, 셀프 교정, 구어체 숫자, 기본 서식 정리 같은 것들이죠.
00:06:56하지만 이제 첫 번째로 정말 큰 한계에 부딪히게 됩니다.
00:06:59현재는 영어만 지원된다는 점입니다.
00:07:01따라서 다국어 트랜스크립트 정리가 필요한 워크플로우라면 지금 당장은 적합한 도구가 아닙니다.
00:07:05둘째로, 좁은 초점을 약점으로 오해해서는 안 됩니다.
00:07:08Claude 등을 대체하려고 S1 mini를 다운로드하는 것이 아니니까요.
00:07:12추론, 요약, 또는 일반적인 로컬 에이전트가 필요하다면 Claude를 쓰세요.
00:07:17범용 모델을 사용하세요.
00:07:18S1 mini는 오직 트랜스크립트만 정제합니다.
00:07:21그게 임무의 전부입니다.
00:07:22그리고 짚고 넘어가야 할 또 다른 차이점이 있습니다.
00:07:24S1 mini는 S1 voice가 아닙니다.
00:07:26S1 voice는 Super Whisper의 클라우드 음성 인식 모델입니다.
00:07:30제가 여기서 테스트 중인 것과는 스택 상의 별개 부분입니다.
00:07:34또한 전체 S1 패밀리는 매우 신기술입니다.
00:07:368월 19일에 출시되었으므로 여전히 초기 소프트웨어로 다루는 것이 좋습니다.
00:07:41모델 자체는 단독으로 실행할 수 있으니 질문은 꽤 단순해집니다.
00:07:46과연 누가 이걸 써야 할까요?
00:07:48이미 로컬 음성-텍스트 변환을 사용하고 있다면 S1 mini는 매우 합리적인 선택입니다.
00:07:53특히 Whisper CPP, Parakeet, 혹은 자체 ASR 시스템을 쓰면서 그 이후에 텍스트를
00:07:58어떻게 처리할지 고민해 왔다면 더욱 그렇습니다.
00:08:00우리 중 많은 이들이 이미 하고 있는 것처럼 모든 것을 거대한 범용 LLM에 보내는 대신,
00:08:06변환 직후에 이 소형 모델을 배치하여 정리를 맡길 수 있습니다.
00:08:10프라이버시가 중요하다면 이 모델의 유용성은 더 커집니다.
00:08:12로컬에서 실행되니까요.
00:08:13단순 서식 지정을 위해 트랜스크립트를 다른 클라우드 모델로 보내는 것은 왠지 불필요하게 느껴집니다.
00:08:18방대한 양의 음성을 처리하는 경우라면 더욱 말이 됩니다.
00:08:20이런 자잘한 정리는 전부 API 호출에 해당하므로, S1 mini를 사용한다면
00:08:24사실상 그럴 필요가 없어집니다.
00:08:25직접 확인해 보실 수 있도록 S1 mini 허깅 페이스 페이지를 더보기란에 남겨두겠습니다.
00:08:30이와 같은 코딩 팁과 요령이 마음에 드셨다면 BetterStack 채널을 구독해 주세요.
00:08:33다음 영상에서 뵙겠습니다.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video