Transcribe.cpp — лёгкий локальный движок распознавания речи на C++ с поддержкой формата GGUF и моделями Parakeet и Canary, обеспечивающий автономность, высокую скорость и защиту данных без облака. Он позволяет запускать эффективный ASR на потребительских устройствах с минимальными ресурсами и гибкой интеграцией.
transcribe.cpp: локальное распознавание речи на C++ с поддержкой Parakeet и Canary
полный разбор ролика · 5 глав ↓
Введение и проблемы облака
Облачные API распознавания речи несут риски приватности, сетевые задержки и высокие затраты на трафик.
Локальное распознавание обеспечивает нулевую задержку, автономность и безопасность данных без зависимости от облака.
Концепция и формат GGUF
GGUF — эффективный формат упаковки весов моделей, оптимизирующий баланс между памятью и точностью.
Благодаря GGUF сложные акустические модели запускаются на обычных устройствах без привязки к конкретному вендору.
Архитектура transcribe.cpp
Transcribe.cpp — однолинейный C++17 движок с обёрткой над GGML, работающий локально.
Есть встроенные биндинги для Python, Typescript, Rust и Swift для лёгкой интеграции в существующие стеки.
Сборка и ускорение
Для сборки нужен современный C++ компилятор и Cake, для GPU — Vulkan или Nvidia SDK.
Крайне важно использовать FFM Pack для конвертации аудио в MonaV 16 кГц, иначе модели будут работать некорректно.
Линковка OpenBLAS даёт прирост производительности CPU в 10-15 раз без GPU.
Модели Parakeet и Canary
Canary — универсальная многоязычная модель с ограничением длины аудио (около 6,5 минут), оффлайн.
Parakeet — специализированная модель для английского с поддержкой бесконечного стриминга и высокой точности.
Варианты декодеров (TDT, RНNT, CTC) позволяют балансировать между скоростью и точностью.