

PulseMark
Розширення VS Code, яке перетворює коректуру на роботу «на слух» — слухай свій Markdown із синхронним підсвічуванням слів, через ElevenLabs або повністю власний сервер Ollama та Orpheus, піднятий у домашній лабораторії.
Visit Project#Проблема
Перевіряти власний текст — справа невдячна. Мозок читає те, що очікує побачити, і незграбні фрази тихо прослизають повз увагу. Класичний спосіб дати собі раду — почути текст уголос — у VS Code змушує вийти з редактора: скопіювати зміст у вкладку браузера з озвученням, втратити місце в документі, втратити контекст роботи.
PulseMark прибирає цей зайвий крок. Уся петля перевірки залишається там, де народжується текст — у редакторі.
#Що вміє
PulseMark відкриває окрему панель попереднього перегляду поруч із редактором для будь-якого файлу .md і читає його вголос через обраний голосовий рушій. Під час відтворення панель підсвічує те слово, яке зараз звучить, і автоматично прокручується, аби текст завжди залишався у полі зору — слухати, стежити очима й помічати помилки можна без втрати зосередження.
- Підсвічування з точністю до окремого слова, коли голосовий рушій повертає мітки часу
- Перегляд поряд із редактором, що оновлюється під час набору тексту
- Пошук, пауза, гарячі клавіші — усе всередині VS Code
- Налаштування через звичну панель параметрів VS Code, без окремого вікна
#Для кого
- Технічні письменники та команди документації, які по кілька разів проходять одні й ті самі довгі тексти у форматі Markdown
- Розробники, що підтримують файли README, документи RFC і списки змін, і хочуть пришвидшити коректуру
- Команди, що дбають про доступність, для яких озвучення тексту — частина щоденної роботи, а не доданий згори елемент
- Середовища з підвищеною конфіденційністю, де надсилати чернетки до зовнішніх служб неприпустимо
#Домашня лабораторія та локальні моделі
PulseMark із самого початку проєктувався під повністю власне розгортання голосового рушія, а не лише під хмарні служби. Тому будь-хто, у кого є домашня лабораторія, або будь-яка команда, що мусить тримати чернетки у власній інфраструктурі, може під'єднати розширення до локального сервера озвучення, сумісного з API OpenAI, і ніколи не надіслати назовні жодного байта.
У сховищі вже є готовий до запуску шаблон під найпоширенішу конфігурацію:
- Ollama на хост-машині з моделлю
legraphista/Orpheusдля нейронного озвучення - Orpheus-FastAPI у контейнері Docker, який віддає
http://127.0.0.1:8000/v1/audio/speechдля розширення - Одна команда
docker compose up --build, щоб підняти все разом
Коли локальна служба працює, PulseMark спілкується з нею так само, як з ElevenLabs — те ж відтворення, ті ж кнопки, той самий звичний хід. Перемикання постачальника з панелі інструментів не потребує перезапуску. ElevenLabs — для найвищої якості голосу, коли вартість і затримка прийнятні; домашня лабораторія — коли важливі приватність, робота без інтернету або необмежена кількість озвучень.
#Технічні рішення
Розширення побудоване на Webview API VS Code, а звук відтворюється через Web Audio API всередині панелі перегляду, а не через рідні бібліотеки Node. Це обходить кросплатформні труднощі зі встановленням, на яких зазвичай ламаються розширення, що працюють зі звуком, і тримає код достатньо невеликим, щоб його підтримувала одна людина.
Звук генерується частинами й зберігається на диску (~/.globalStorage/tts-cache/), тому повторне прослуховування того ж абзацу — миттєве і безкоштовне. Ключі API лежать у SecretStorage VS Code, ніколи у файлі settings.json, і процес випуску перевіряє це окремим контролем перед кожною публікацією.
Чітке відокремлення постачальників у tts.ts означає, що додати третій рушій (інший власний сервер, іншу хмарну службу) — це невелика, локальна правка, а не перебудова.
#Поширення
PulseMark публікується у Visual Studio Marketplace. Пакуванням опікується vsce, а випусками — процес у GitHub Actions, який автоматично підвищує номер версії, ставить мітку в сховищі та надсилає файл .vsix у магазин. Завдяки цьому випускати невеликі покращення можна без жодної церемонії.
#Результати
- Швидша й зосередженіша робота з коректурою Markdown без виходу з редактора
- Реальний вибір між якістю хмари і приватністю власного сервера — без різниці у повсякденній роботі
- Невелике, легке для підтримки розширення, що здатне приймати нових голосових постачальників і нові функції редагування без переписування