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

·tover0314·10 мин чтения

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

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

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

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

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

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

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

💡Основная философия 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 в этой цепочке нет. Мы не собираем телеметрию, не отслеживаем использование и не имеем доступа к вашим транскрипциям. Код полностью открыт, так что вы можете проверить каждое утверждение.

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

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

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

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