Представляем OpenTypeless: голосовой ввод, который действительно работает

|Автор tover0314|10 мин чтения

Голосовой ввод существует уже много лет, но он никогда не работал так, как мне хотелось. Встроенная диктовка ограничена одним провайдером, сторонние инструменты требуют подписки, а результат всегда приходится серьёзно редактировать. Мне нужно было нечто принципиально лучшее — инструмент, дающий полный контроль над каждым этапом преобразования голоса в текст.

Проблема голосового ввода

Как разработчик, я провожу большую часть дня за набором текста. Голосовой ввод мог бы сэкономить часы рутинной работы, но существующие решения подводили в ключевых моментах. Они были привязаны к единственному движку распознавания речи без возможности переключения. Они не умели шлифовать результат — вы получали сырую транскрипцию, полную слов-паразитов и без знаков препинания. И они плохо справлялись с технической лексикой, превращая «PostgreSQL» в «пост гресс сиквел» каждый раз.

Я перепробовал все инструменты голосового ввода, которые смог найти. Диктовка macOS неплохо справлялась с обычным текстом, но была ужасна для обсуждения кода. Распознавание речи Windows ощущалось как реликт 2005 года. Сторонние приложения вроде Otter.ai и инструменты на базе Whisper были лучше, но все они страдали от одной и той же фундаментальной проблемы: невозможности настроить конвейер обработки. Вы были привязаны к тому STT-движку, который они выбрали, к той постобработке, которую они реализовали, и к тем ограничениям, которые они наложили.

  • Нет выбора STT-провайдера — привязка к одному движку
  • Нет ИИ-обработки — сырая транскрипция со словами-паразитами и грамматическими ошибками
  • Плохая работа с технической лексикой — «React» превращается в «реакт», «PostgreSQL» — в абракадабру
  • Нет пользовательского словаря — невозможно обучить терминам вашего проекта
  • Подписочная модель — ежемесячная плата за то, что должно быть утилитой

Почему я создал OpenTypeless

Мне нужен был инструмент, позволяющий выбирать собственных провайдеров, автоматически приводить речь в порядок и работать в любом приложении на десктопе. Не веб-приложение, не расширение для браузера — полноценное нативное десктопное приложение, способное захватывать аудио глобально и вставлять отшлифованный текст куда угодно. Ключевое понимание состояло в том, что голосовой ввод — это по сути задача конвейера: захват с микрофона, преобразование речи в текст, ИИ-обработка текста и вывод в буфер обмена. Каждый этап должен настраиваться независимо.

TIPОсновная философия OpenTypeless: вы используете свои API-ключи, выбираете своих провайдеров и сохраняете полный контроль. Без посредников, без подписки, без привязки к вендору.

Подробный разбор архитектуры

OpenTypeless построен на современном десктопном стеке, спроектированном для производительности и расширяемости. Архитектура чётко разделяет ответственности: нативная оболочка отвечает за системную интеграцию, UI-слой — за взаимодействие с пользователем, а система провайдеров — за всю коммуникацию с внешними API.

Диаграмма архитектуры OpenTypeless: оболочка Tauri, UI на React и система провайдеров
Многослойная архитектура OpenTypeless: десктопная оболочка Tauri, UI на React и модульная система провайдеров

Десктопная оболочка Tauri

Tauri обеспечивает нативную десктопную оболочку — Rust на бэкенде означает отличную производительность, крошечный размер бинарника (менее 10 МБ) и надёжную безопасность. В отличие от Electron, Tauri использует системный нативный webview вместо встроенного Chromium, что приводит к значительно меньшему потреблению памяти. Бэкенд на Rust отвечает за захват аудио, регистрацию глобальных горячих клавиш, управление буфером обмена и интеграцию с системным треем. Все эти операции требуют нативного доступа к ОС и выигрывают от характеристик производительности Rust.

Фронтенд на React + TypeScript

Интерфейс построен на React и TypeScript, обеспечивая привычный опыт разработки с полной типобезопасностью. Фронтенд отвечает за элементы управления записью, панель настроек, предпросмотр текста и конфигурацию провайдеров. Управление состоянием простое — встроенные хуки React обрабатывают локальное состояние, а IPC-мост Tauri обеспечивает связь с бэкендом на Rust для системных операций.

Система провайдеров

Система провайдеров — самое важное архитектурное решение OpenTypeless. Вместо жёсткого кодирования одного STT-движка или LLM, OpenTypeless определяет чистый интерфейс, который может реализовать любой провайдер. Добавление нового провайдера сводится к реализации простого адаптера — остальная часть конвейера не меняется.

На данный момент OpenTypeless поддерживает 6 STT-провайдеров (Deepgram Nova-3, OpenAI Whisper, Groq Whisper, GLM-ASR, AssemblyAI и SiliconFlow) и 11 LLM-провайдеров для обработки текста. У каждого провайдера свои сильные стороны — Deepgram лидирует по точности для английского, Groq обеспечивает минимальную задержку, GLM-ASR оптимизирован для китайского, а Ollama работает полностью офлайн на вашем компьютере.

Рабочий процесс голосового ввода: микрофон → STT → LLM → буфер обмена
Конвейер голосового ввода: Микрофон → STT-провайдер → LLM-обработка → Буфер обмена

ИИ-обработка текста

Сырой результат распознавания речи по своей природе неаккуратен. Люди говорят «эм», «ну», «типа» — и это нормально в разговоре, но ужасно в письменном тексте. Этап ИИ-обработки OpenTypeless отправляет сырую транскрипцию выбранной вами LLM с тщательно составленным промптом, который исправляет грамматику, расставляет знаки препинания, убирает слова-паразиты и форматирует текст естественным образом. Функция пользовательского словаря гарантирует, что технические термины сохраняются именно так, как вы их определили.

Loading animation…

Конфиденциальность как принцип

Конфиденциальность в OpenTypeless — не запоздалая мысль, а основополагающий принцип проектирования. Ваши API-ключи хранятся локально на вашем компьютере, а не на наших серверах. Аудио отправляется напрямую с вашего компьютера выбранному STT-провайдеру — сервера OpenTypeless в этой цепочке нет. Мы не собираем телеметрию, не отслеживаем использование и не имеем доступа к вашим транскрипциям. Код полностью открыт, так что вы можете проверить каждое утверждение.

TIPПуть ваших данных: Ваш микрофон → Выбранный вами STT-провайдер → Выбранная вами LLM → Ваш буфер обмена. OpenTypeless никогда не видит ваше аудио или текст.

Философия открытого исходного кода

OpenTypeless распространяется под лицензией MIT и бесплатен навсегда. Я верю, что отличные инструменты должны быть доступны каждому. Модель открытого исходного кода означает, что сообщество может добавлять провайдеров, исправлять ошибки и расширять функциональность. Это также означает, что вы никогда не окажетесь в ловушке — если OpenTypeless исчезнет завтра, у вас останется код. Несколько участников уже добавили адаптеры провайдеров и улучшения интерфейса, и проект приветствует пулл-реквесты от всех желающих.

Если вам надоел голосовой ввод, который работает кое-как, попробуйте OpenTypeless. Скачайте его с нашего сайта, подключите свои API-ключи и начните набирать текст голосом — где угодно. Ознакомьтесь с нашим руководством по выбору подходящего STT-провайдера, чтобы получить лучшие результаты для вашего языка и сценария использования.