음성 전사 모델을 위한 ASR biasing 구현 방법 [오픈 소스]
요약
음성 받아쓰기 앱 개발 과정에서 특정 단어의 인식률을 높이는 ASR biasing 기술의 구현 방법을 소개합니다. OpenAI, Groq, Deepgram 등 다양한 API 제공업체별 구현 방식의 차이점과 오픈 소스 프로젝트 활용법을 다룹니다.
핵심 포인트
- ASR biasing은 모델에 단어 힌트를 주어 전사 정확도를 높이는 기술임
- Groq 등 일부 API는 시스템 프롬프트에 단어를 주입하는 방식으로 구현
- Deepgram 등은 검색 파라미터의 키워드 설정을 통해 구현 가능
- 관련 구현 코드는 Freestyle 오픈 소스 프로젝트에서 확인 가능
저는 지난 몇 주 동안 Wispr Flow의 클론을 오픈 소스 프로젝트로 구축하는 데 시간을 보냈습니다. 배경 설명을 드리자면, 이는 실제로 타이핑하는 대신 말함으로써 더 빠르게 타이핑할 수 있게 해주는 음성 받아쓰기(voice dictation) 앱입니다.
저는 첫 일주일 동안 기본적인 STT (Speech-to-Text) 기능을 구축하는 데 보냈습니다. Wispr Flow가 가진 가장 멋진 기능 중 하나는 ASR biasing입니다. Wispr Flow는 이를 '사전(dictionary)'이라고 부릅니다. 저는 제 프로젝트에 이를 어떻게 구현할 수 있는지 알아냈고, 어떻게 수행되었는지 공유하고 싶었습니다.
ASR biasing이란 무엇인가요?
ASR biasing은 단어의 철자가 어떻게 되는지, 또는 어떤 구절이 흔하게 사용되는지에 대한 힌트를 통해 모델을 안내하는 전사(transcription) 기술입니다. 영상 속의 제 예시에서는 제가 "Knicks"와 "OG Anunoby"에 대해 이야기하고 싶다는 가이드를 주었습니다.
biasing을 설정해 두면, 유사하게 들리는 구절을 말할 때 설정해 둔 단어들이 나타날 가능성이 더 높아집니다.
코드에서의 구현 방식
ASR biasing을 구현하는 것은 사실 믿을 수 없을 정도로 쉽습니다. 각 모델 제공업체는 이를 다르게 처리하며, 서로 다른 이름으로 부릅니다. 예를 들어, OpenAI와 Groq는 LLM의 시스템 프롬프트(system prompt)와 유사하게 프롬프트를 bias 메커니즘으로 설정합니다. whisper.cpp와 같은 로컬 모델 및 MLX 기반의 로컬 Mac 모델들도 동일한 프롬프트 시스템을 실행합니다.
Deepgram 및 Eleven Labs와 같은 다른 제공업체에서는 이를 키워드(key terms)라고 부르며 검색 파라미터(search parameters)를 통해 구성합니다.
다음은 Groq에서 구현하는 모습입니다. 모델의 "system prompt"에 사전 단어를 주입하는 것만큼 간단합니다.
const transcription = await groq.audio.transcriptions.create({ file: fs.createReadStream("YOUR_AUDIO.wav"), model: "whisper-large-v3-turbo", prompt: "vocabulary: Knicks, OG Anonuby", // 선택 사항
response_format: "verbose_json",
timestamp_granularities: ["word", "segment"],
language: "en",
temperature: 0.0,
});
Freestyle에서는 ASR biasing을 구현하여 이를 "Vocabulary" 기능이라고 부릅니다. 어휘(vocabulary)를 생성하면 Freestyle 내에 로컬로 저장됩니다.
추론 (inference)을 실행할 때마다, 저장된 어휘 (vocabulary)는 모델의 시스템 프롬프트 (system prompt) 또는 핵심 용어 (keyterms)에 새롭게 주입됩니다.
Freestyle 오픈 소스 프로젝트
ASR biasing과 관련하여 저희가 수행한 모든 작업은 오픈 소스이며 저희 GitHub 저장소에서 확인하실 수 있습니다. 이 프로젝트가 흥미로우시다면, 별 (star)을 눌러주시는 것을 고려해 주세요!
또한 저희는 오픈 소스 음성 받아쓰기 (voice dictation) 작업에 관심이 있는 사람들의 커뮤니티를 구축하고자 합니다.
https://github.com/freestyle-voice/freestyle
제출자: /u/matt8p
[link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기