
오프라인에서 실행되고, 프라이버시를 유지하며, 터미널에서 작동하는 완전 로컬 음성 번역기를 만들었습니다
요약
프라이버시 보호와 오프라인 작동을 위해 Whisper 모델을 활용하여 개발된 완전 로컬 음성 번역기 프로젝트를 소개합니다. 클라우드 연결 없이 터미널 환경에서 영어와 중국어 간의 실시간 음성-음성 번역을 구현했습니다.
핵심 포인트
- Whisper 모델을 활용한 로컬 음성-텍스트 변환 및 언어 감지
- API 키나 클라우드 연결이 필요 없는 완전 오프라인 작동
- 사용자 프라이버시를 보장하는 오픈 소스 기반 아키텍처
- npm을 통한 간편한 설치 및 터미널 기반 인터페이스 제공
지난 10월, 누군가가 Hacker News에 "Ask HN: Real-time speech-to-speech translation?"라는 글을 게시했습니다. 158 포인트, 70개의 댓글이 달렸습니다. 그들은 듣고, 번역하고, 말하는 모든 과정이 오프라인으로 이루어지는 바벨피쉬(Babelfish) 같은 것을 원했습니다. 사람들이 제안한 모든 대안들(RTranslator, 3PO, Samsung Interpreter)은 최소한 한 가지 측면에서 실패했습니다: 너무 어색하거나, 클라우드(Cloud)가 필요하거나, 오픈 소스(Open Source)가 아니었습니다.
저는 영어와 중국어(Mandarin)를 위한 번역기를 직접 만들기로 결심했습니다.
기능
당신이 영어로 말하면, 그것은 중국어로 똑같은 내용을 말합니다. 당신이 중국어로 말하면, 그것은 영어로 말합니다. 모든 것은 당신의 기기(Machine)에서 실행됩니다.
실시간 번역 작동 모습: 오디오를 캡처하고 로컬에서 음성(Speech)을 생성합니다.
npm install -g live-translate
live-translate start
live-translate
...
API 키가 필요 없습니다. 클라우드도 필요 없습니다. 비행기 모드에서도 작동합니다. 만리장성 방화벽(Great Firewall) 뒤에서도 작동합니다.
제작 이유
기존의 옵션들은 모두 동일한 문제를 가지고 있습니다.
Google Translate는 당신의 오디오를 Google 서버로 전송하며, 중국에서는 차단되어 있습니다. 또한 "我请你吃饭"을 "I'll treat you to dinner" 대신 "I invite you to eat rice"라고 번역합니다.
Microsoft Translator도 크게 나을 것이 없습니다. 유료 Azure 고객은 스페인어와 포르투갈어는 잘 작동하는 반면, 중국어 출력은 "직역(Literal) 또는 단어 대 단어(Word-for-word)" 방식이라고 공개적으로 티켓을 제출했습니다.
DeepL은 중국어에 대한 음성 모드가 전혀 없으며, 학술 테스트 결과 기본적인 중국어 문법을 잘못 처리하는 것으로 나타났습니다.
ChatGPT Voice는 작동할 때는 품질이 매우 뛰어나지만, 번역을 해야 한다는 사실을 잊고 대신 당신의 질문에 대답하기 시작합니다.
저는 프라이버시가 보장되고(가족과의 대화는 Google이 상관할 바가 아닙니다), 오프라인에서 작동하며(신호가 없는 곳으로 여행을 갑니다), 제가 직접 검사하고 수정할 수 있도록 오픈 소스인 것을 원했습니다.
아키텍처 (Architecture)
세 개의 ML 모델이 체인(chain)으로 연결되어 있습니다:
마이크로폰 (Microphone)
|
Whisper (음성-텍스트 변환 (speech to text) + 언어 감지 (language detection))
...
Whisper는 음성 인식(speech recognition)과 언어 감지(language detection)를 한 단계로 처리합니다. Whisper는
Claude Code 또는 Claude Desktop을 사용 중이라면, MCP 서버로서 동일한 엔진을 사용할 수 있습니다:
npx @anthropic-ai/claude-code mcp add live-translate-mcp
Claude에게 오디오 파일을 제공하면, 모든 과정을 로컬에서 전사(transcribe), 번역(translate)하고 번역된 오디오를 저장합니다.
...
npm install -g live-translate
live-translate doctor # 필수 요구 사항 확인
live-translate start # 번역 백엔드 시작
live-translate # SPACE 키를 누르고 말하기
필수 요구 사항 확인하기
- Node.js: v18 이상
- Docker: 로컬 ML 백엔드 실행을 위해 필요
- Sox: 오디오 처리에 사용됨.
live-translate doctor를 실행하여 설정을 확인하세요!
전체 프로젝트는 MIT 라이선스입니다. PR(Pull Request)은 언제나 환영하며, 특히 광둥어(Cantonese)를 구사하신다면 더욱 환영합니다. 광둥어는 가장 추가 요청이 많았던 언어이며, Whisper는 이미 이를 지원합니다.
이 내용이 유용했다면, GitHub 스타(star)를 눌러주시면 큰 힘이 됩니다. 직접 사용해 보셨다면 번역 품질이 어떠했는지, 특히 중국어(Mandarin)에서 영어로의 번역이 어떠했는지 알려주세요. 그 부분을 개선하기 위해 가장 열심히 노력하고 있습니다.
GitHub:
waxberry-dev / live-translate
완전 로컬 영어 ↔ 중국어 음성 번역기. 오픈 소스, 오프라인, 프라이버시 우선. CLI + MCP 서버.
live-translate — 영어 ↔ 중국어
영어와 중국어(Mandarin) 간의 완전 로컬 음성 대 음성(speech-to-speech) 번역기. 클라우드 API가 필요하지 않습니다. 모든 오디오 처리는 사용자의 기기에서 실행됩니다. MIT 라이선스.
설치 (Install)
npm install -g live-translate
빠른 시작 (Quick Start)
live-translate # SPACE를 눌러 녹음, 다시 SPACE를 눌러 번역
# 첫 실행 시 모델을 다운로드하고 서비스를 자동으로 시작합니다
live-translate stop # 완료 시 서비스 중지
명령어 (Commands)
명령어 (Commands)
| Command | Description |
|---|---|
live-translate | 번역 시작 (SPACE를 눌러 녹음/중지, Q 또는 Ctrl-C로 종료) |
| ... |
번역 제공자 (Translation Providers)
백엔드를 선택하려면 live-translate config를 실행하세요. 기본값은 Opus-MT입니다 (완전 로컬이며 API 키가 필요하지 않습니다).
[IMG:N]
| Provider | Type | Quality | Cost |
|---|---|---|---|
| Opus-MT (기본값) | |||
| Local model | Good | Free | |
| Ollama (Qwen 2.5) | Local LLM | High | Free — needs |
…
웹사이트: waxberry.dev
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기