AI를 활용하여 코드를 음성으로 읽어주고 git diff 내용을 설명해 주는 VS Code 확장 프로그램 제작기
요약
이 글은 마크다운(markdown)이나 PR 내용을 효율적으로 듣기 위해 제작한 VS Code 확장 프로그램 'Markdown TTS'를 소개합니다. 이 도구는 단순 텍스트 읽기를 넘어, 구조화된 마크다운을 구문 분석하여 정확하게 음성으로 출력하는 것이 특징입니다. 특히 AI 에이전트의 스킬 파일(SKILL.md 등)처럼 마크다운 기반 설정 파일 처리에도 유용함을 강조합니다.
핵심 포인트
- 마크다운 TTS는 구조화된 문서를 파싱하여 듣기 좋게 변환합니다.
- AI 코딩 도구의 에이전트 스킬 파일 읽기에 매우 실용적입니다.
- OS 네이티브 받아쓰기 기능을 활용하여 안정적인 음성 입력을 제공합니다.
저는 문서 작업이나 리뷰가 많은 일을 많이 하는데, 빽빽한 마크다운(markdown) 파일이나 PR(Pull Request)을 다시 읽는 데 시간을 너무 많이 낭비하고 있었습니다. 단순히 듣는 것이 더 효율적이었죠. '스크린 리더를 사용하라'는 조언은 코드에는 별로 효과가 없습니다. 왜냐하면 마크다운 구조를 이해하는 대신, 별표(*)나 파운드 기호(#) 같은 문자를 문자 그대로 읽어주기 때문입니다. 그래서 저는 내용을 먼저 구문 분석(parse)한 다음 음성으로 출력해 주는 VS Code 확장 프로그램인 Markdown TTS를 만들었습니다.
기능 설명
두 가지의 독립적인 모드가 있습니다:
1. 리터럴 읽기 (Literal reading) — 마크다운 구문을 올바르게 제거합니다(제목은
두 가지의 독립적인 모드가 있습니다:
1. 리터럴 읽기 (Literal reading) — 마크다운 구문을 올바르게 제거합니다(제목은
[이번 청크 (이 부분만 번역하세요)]
- Single-file extension, ~1100 lines, no framework
- Windows local TTS는
System.Speech.Synthesis.SpeechSynthesizer를 실행하는 PowerShell을 스폰하여 처리합니다. SAPI에는 네이티브 일시 정지(pause) 원시 기능이 노출되어 있지 않기 때문에 일시 중지/재개는 제어 파일(control file)을 통해 이루어집니다. - Edge의 신경 음성 경로(neural voice path)는 텍스트를 약 1.5KB 청크로 분할하고, 병렬 WebSockets을 통해 두 개의 청크를 미리 가져옵니다(prefetch). 따라서 긴 파일도 수분 동안 합성 작업이 지연되는 대신 몇 초 만에 읽기 시작합니다.
- 음성 입력은 자체적으로 음성 인식을 수행하기보다는 OS 네이티브 받아쓰기(dictation) 기능을 트리거합니다. 이는 훨씬 간단하며, 그 결과 받아쓰기 품질은 사용자의 OS가 제공하는 대로 됩니다.
제가 만족스러운 결정 중 하나는: 이 확장 프로그램이 어떤 기본 키 바인딩도 포함하지 않는다는 것입니다. 명백한 선택지인 Ctrl+Alt+<문자>는 많은 비(非) 미국식 키보드 레이아웃(인도, 독일, 프랑스, 스페인, 북유럽 등)에서 AltGr과 충돌합니다. 이 경우 OS가 명령을 실행하는 대신 악센트 문자를 입력하게 됩니다. 따라서 대다수의 사용자에게 조용히 오작동할 수 있는 키를 가로채는 것보다, 원하는 키만 직접 바인딩하는 것이 낫습니다.
원래 계획하지 않았던 사용 사례: 에이전트 스킬 파일 읽기
많은 AI 코딩 도구들이 이제 그들의 동작 방식을 전적으로 마크다운을 통해 구성합니다. Claude Code의 SKILL.md 파일, CLAUDE.md 프로젝트 지침, Cursor의 .cursor/rules 파일 등이 있으며, 다른 곳에서도 유사한 형식이 사용됩니다. 이들은 바로 이 확장 프로그램이 문서(docs)와 PR(Pull Request)을 위해 이미 잘 처리하는 구조화된 마크다운—중첩된 제목, 글머리 목록, 임베디드 코드 블록—입니다. 에이전트 스킬 파일에 포인팅하는 것은 다른 어떤 문서에 포인팅하는 것과 동일하게 작동합니다. 요즘 개발자의 실제 작업 파일의 상당 부분이 산문(prose) 대신 에이전트 설정 마크다운으로 변하고 있다는 점을 감안할 때, 이는 이 프로그램의 가장 실용적인 일상 사용 사례 중 하나가 되었습니다.
명백한 것 외에 유용한 곳
몇몇 사용자들이 이 프로그램이 난독증(dyslexia)이나 일반적인 스크린 리더 관련 사용 사례에 정말 도움이 된다고 언급했습니다. (원래는 저의 PR 검토 워크플로우를 위해 만들었지만, 예상보다 더 중요하게 작용하고 있습니다.)
유용한 다른 용도들
현재 상태
지금까지 마케팅 활동을 거의 하지 않았는데도 무료로 121회 설치되었습니다. 현재 Linux에서는 Edge 음성 경로만 사용할 수 있으며, 아직 연결할 로컬 TTS 바이너리는 없습니다.
직접 사용해보시고, 어떤 기능이 빠져 있는지, 또는 실제로 워크플로우에 남기기보다는 그저 장난감 같은 느낌을 주는 부분이 있다면 정말 듣고 싶습니다.
마켓플레이스: https://marketplace.visualstudio.com/items?itemName=AbhishekShr.markdown-tts
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기