Wispr Flow만큼 뛰어난 받아쓰기 파이프라인(오픈 소스)을 구축하는 데 필요한 것
요약
Wispr Flow와 유사한 성능을 가진 오픈 소스 받아쓰기 파이프라인 구축 과정을 공유합니다. 로컬 ASR 모델의 한계를 극복하기 위해 Whisper Large v3 Turbo와 Qwen3-32B를 결합한 후처리 레이어를 활용하여 개발자 용어 인식 정확도를 높였습니다.
핵심 포인트
- 로컬 ASR 모델만으로는 개발자 전문 용어 처리에 한계가 있음
- Whisper와 LLM(Qwen3)을 결합한 후처리 레이어로 문맥 및 용어 교정 가능
- Groq와 Cloudflare Workers를 활용해 약 600ms의 낮은 지연 시간 달성
- 오픈 소스 프로젝트로 GitHub에 전체 코드 공개
안녕하세요 여러분, Matt입니다. 지난 5주 동안 저는 Wispr Flow와 같은 오픈 소스 받아쓰기(dictation) 앱을 개발해 왔습니다. 지금까지 받아쓰기 파이프라인을 구축하며 얻은 몇 가지 학습 내용을 공유하고자 합니다.
저는 온디바이스(on-device)에서 실행되는 로컬 ASR(자동 음성 인식) 모델을 주요 초점으로 삼아 시작했습니다. Qwen3 ASR, Whisper.cpp와 같은 모델들이 그 대상이었습니다. 하지만 곧 이러한 모델들만으로는 실용적인 사용에 충분하지 않다는 것을 깨달았습니다.
로컬 모델 자체만으로는 문맥(context)과 용어(terminology) 처리에 매우 어려움을 겪었으며, 특히 개발자들에게는 더욱 그러했습니다. 제가 Qwen3 ASR로 테스트한 몇 가지 예시는 다음과 같습니다:
| 내가 말한 내용 | Qwen3 ASR이 생성한 내용 |
|---|---|
| "Upload a file to S3, which fires EventBridge, which triggers Lambda" | "Upload a file to S three, which fires an event bridge, which triggers lambda." |
| "We're on Postgres 16 with pgvector 0.7" | "We're on Postgres sixteen with PG vector zero point seven." |
그래서 저는 전사(transcription) 결과에 문맥적 조정과 정리를 수행할 수 있는 후처리(post-processing) 레이어를 결합하는 방법을 탐구하기 시작했습니다. 지연 시간(latency)과 정확도(accuracy) 사이의 트레이드오프(tradeoff)는 항상 치열한 싸움이었습니다.
받아쓰기 파이프라인에 대한 다양한 설정을 실험한 끝에, 저는 다음과 같은 파이프라인에 도달했습니다. 매우 간단합니다:
- 단축키를 누르고 말한 뒤 떼기 → 오디오가 Cloudflare Workers에 호스팅된 파이프라인으로 전달됨
- Whisper Large v3 Turbo(Groq에서 실행)를 사용하여 전사하되, 개발자 어휘에 가중치를 둠
- Qwen3-32B로 후처리 수행. 문법/구두점 및 개발자 어휘 수정 ("my sequel" → MySQL)
- 커서 위치에 붙여넣기
지금까지 결과에 만족하고 있습니다. 소프트웨어 개발 어휘를 잘 포착하며 상당히 정확합니다. 엔드 투 엔드(end-to-end) 전사 지연 시간은 약 600ms로, Wispr Flow와 경쟁할 만한 수준입니다. 저는 이를 완전히 신뢰하며 Wispr Flow를 대체할 수 있게 되었습니다. 다음 주에는 스트리밍(streaming)과 함께 Soniox를 사용하는 방안을 탐구해 볼 계획입니다. 그 학습 내용도 공유하겠습니다.
이 프로젝트가 흥미로우시다면, 지금까지의 모든 작업물을 GitHub에 공개했습니다. 꼭 확인해 주시고 별(star)을 눌러주시면 감사하겠습니다!
⭐
https://github.com/freestyle-voice/freestyle
제출자: /u/matt8p
[링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기