Открытый код, GPL-3.0. Работает без интернета.
README из репозиторияvoice-teleprompter-android
Суфлёр — бесплатный телесуфлёр для Android с управлением голосом и открытым кодом: он слышит тебя. Он висит поверх Instagram, TikTok или камеры и прокручивает сценарий, пока ты говоришь, так что бежать за текстом не нужно. Работает полностью офлайн: разрешения на интернет у приложения нет вообще.
Он сделан для тех, кто держит телефон в руке, читает пару строк в объектив, смотрит в текст и продолжает. Если собьёшься и начнёшь фразу заново, текст вернётся за тобой. Если пропустишь абзац, он догонит.
Note. Работает на русском и английском. Интерфейс — на языке телефона, язык речи Суфлёр выбирает по буквам сценария (или задай его в настройках). Другие языки — в планах.
Скриншоты
Возможности
Следит за голосом
- Потоковое распознавание русской и английской речи прямо на телефоне (sherpa-onnx): без облака, без аккаунта и без сетевых задержек.
- В английском понимает сокращения (don't, it's), числа, написанные цифрами, но сказанные словами, аббревиатуры (Mr., AI, CEO) и «эканье».
- Ищет место по всему сценарию, а не только в следующих словах. Редкие слова весят больше частых, поэтому текст не прыгает на каждое «и».
- Если перечитать строку, текст вернётся к ней примерно через два слова. Пропущенный блок находится через три-четыре.
- В паузах и в разговорах не по тексту суфлёр стоит на месте.
- Прочитанные строки гаснут.
[Пометки в квадратных скобках]видны, но читать их не нужно.
Поверх любой камеры
- Слышит тебя, пока Instagram, TikTok или системная камера снимают видео. Микрофон у суфлёра не отнимается, и звук в рилсе остаётся.
- Текст начинается сразу под фронтальной камерой, чтобы взгляд был у объектива. Кнопки внизу.
- Замок: нажатия проходят сквозь окно к кнопкам камеры.
- Горизонтальная съёмка: окно встаёт у объектива и поворачивает текст, даже если камера держит экран вертикально.
- Плитка в шторке: запускает суфлёр поверх открытого приложения.
- Кнопка «Aa» в окне: шрифт, строки, фон и скорость меняются прямо над камерой.
Пульты и прокрутка
- Кнопки громкости, Bluetooth-пульты для селфи, кольца, кликеры и клавиатуры. Какая кнопка что делает, настраивается.
- Прокрутка с заданной скоростью и отсчётом 3-2-1, если голос не нужен.
- Прокрутка по звуку: текст идёт с этой скоростью, пока ты говоришь, и ждёт в тишине. Подходит для сценария на любом языке.
- Суфлёр на весь экран внутри приложения: шрифт до 80, управление с пульта и зеркальный режим для стекла телесуфлёра.
Сценарии остаются у тебя
- Текст сценария можно отправить, сценарий можно дублировать, чтобы попробовать другую версию, а всю библиотеку сохранить в zip с файлами Markdown и восстановить на другом телефоне.
- Редактор считает слова и длительность дубля прямо во время набора.
Открывает почти всё
- TXT (UTF-8, UTF-16, Windows-1251, KOI8-R), Markdown и заметки Obsidian, DOCX, ODT, RTF, HTML и PDF (PDF — на Android 15 или на Android 12–14 со свежими системными обновлениями Google Play).
- «Поделиться» и «Открыть с помощью» из других приложений, вставка из буфера или редактор.
- Длинные абзацы делятся на короткие фразы — каждую можно прочитать на одном дыхании.
Как это работает
flowchart LR
Mic["Микрофон"] --> ASR["sherpa-onnx<br/>потоковое распознавание<br/>(на телефоне)"]
ASR -->|"последние слова"| Tracker["Трекер сценария<br/>нечёткое выравнивание<br/>по всему тексту"]
Tracker -->|"позиция"| View["Окно суфлёра<br/>поверх камеры"]
Script["Сценарий"] --> Tracker
Трекер сопоставляет несколько последних распознанных слов со всем сценарием. Он оставляет только совпадения, которые заканчиваются на одном из двух последних сказанных слов (последнее весит больше), и учитывает, насколько каждое слово редкое в тексте. Для шага вперёд хватает одного хорошего совпадения. Чтобы вернуться на соседнюю строку, нужно примерно два слова с её начала. Для дальнего прыжка нужны хотя бы три слова и явный отрыв от остальных мест в тексте; если совпало меньше четырёх редких слов, трекер ждёт, чтобы следующее обновление его подтвердило.
Конфиденциальность
Всё остаётся на телефоне. У приложения нет разрешения INTERNET, Android не даст ему никуда подключиться, и это легко проверить.
- Микрофон работает только во время сессии суфлёра. Звук не записывается, не хранится и никуда не отправляется.
- Служба специальных возможностей работает только во время сессии и не может читать содержимое экрана. Она нужна, чтобы микрофон работал во время записи в других приложениях, чтобы показывать окно поверх и чтобы принимать кнопки громкости и пульта (по умолчанию включено для стандартного набора кнопок, выключить или переназначить можно в настройках).
- Аналитики, рекламы, аккаунтов и трекеров нет.
Подробнее — в PRIVACY.md.
Установка
Что нужно: Android 10 или новее, 64-битный ARM-телефон (почти любой после 2017 года), около 130 МБ места: обе модели речи внутри приложения. Проверено на Samsung Galaxy S24 FE с One UI 6.1.1 (Android 14), см. проверенные телефоны.
- Скачай
Suflyor-<версия>.apkв Releases и открой его. Разреши браузеру или файловому менеджеру устанавливать приложения. - Открой Суфлёр и разреши микрофон.
- Включи службу специальных возможностей «Суфлёр: окно поверх и голос», приложение само откроет нужный экран.
- На Android 13 и новее переключатель у приложений, установленных из файла, сначала серый. Открой Настройки → Приложения → Суфлёр → ⋮ → Разрешить ограниченные настройки и включи службу ещё раз.
- В сценарии выбери под кнопкой «Поверх камеры» Instagram, TikTok или Камеру, нажми кнопку и читай.
Язык: приложение говорит на языке телефона; на Android 13 и новее язык можно выбрать только для Суфлёра: Настройки → О приложении → Язык приложения. Язык речи задаётся отдельно: «Авто» выбирает его по буквам сценария; для одного сценария его меняет кнопка Речь на экране сценария, а значение по умолчанию лежит в Настройки → Слежение за голосом.
Обновления ставятся поверх старой версии. С Obtainium они приходят сами прямо из этого репозитория.
Если Android пишет, что разработчик не проверен
Google вводит проверку разработчиков. В 2026 году она не затрагивает установку с GitHub и через Obtainium. С 2027 года телефоны с сервисами Google будут ставить приложения ещё не проверенных разработчиков только после одноразовой настройки («расширенный режим»):
- Включи режим разработчика: Настройки → Сведения о телефоне → семь раз нажми Номер сборки (на Samsung: Сведения о телефоне → Сведения о ПО → Номер сборки).
- В Параметрах разработчика включи «Разрешить приложения от непроверенных разработчиков» и подтверди блокировкой экрана. Android ещё попросит подтвердить, что тебя никто не инструктирует: это защита от мошенников.
- Перезагрузи телефон и подожди 24 часа. Эта пауза нужна только один раз.
- Снова открой эту настройку, подтверди и выбери «Бессрочно» (или на 7 дней).
- Установи APK и нажми «Всё равно установить».
Ещё вариант: установка с компьютера командой adb install Suflyor-<версия>.apk, без ожидания. Телефоны без сервисов Google (LineageOS без GApps, Huawei) это не затрагивает.
Проверка скачанного файла
Релизные APK собирает GitHub Actions из исходников с тегом версии. К каждому релизу приложены SHA256SUMS.txt и подписанная аттестация происхождения сборки. Все версии подписаны одним ключом; SHA-256 отпечаток его сертификата:
77:F3:94:32:F5:05:FB:B7:8B:85:E7:37:CD:00:21:0A:44:C0:7A:13:2C:AC:FF:81:FE:9D:9D:79:CD:E9:A9:06
# Сертификат должен совпасть с SHA-256 выше:
apksigner verify --print-certs Suflyor-*.apk
# Подтверждает, что APK собран workflow этого репозитория:
gh attestation verify Suflyor-*.apk --owner olerast67
Проверить сертификат прямо на телефоне можно приложением AppVerifier.
Сборка из исходников
Нужны JDK 17 и Android SDK (platform 36).
git clone https://github.com/olerast67/voice-teleprompter-android.git
cd suflyor
./gradlew assembleDebug testDebugUnitTest
- При первой сборке скачиваются библиотека распознавания sherpa-onnx (около 50 МБ), русская модель (около 28 МБ) и английская (около 73 МБ). В git их нет. Файлы берутся из закреплённых ревизий и сверяются по SHA-256.
- Релизная сборка подписывается, только если задан ключ: через
keystore.propertiesили переменныеSUFLYOR_*. Без ключа APK выходит неподписанным. Подробности — в RELEASING.md. - На Windows есть
.\build.ps1и.\install.ps1. Путиsdk.dirиjdk.dirони берут изlocal.properties.
Проверенные телефоны
Слышит ли суфлёр голос, пока приложение камеры записывает видео, зависит от прошивки телефона. Что проверено на сегодня:
| Телефон | Android | Samsung Camera | TikTok | |
|---|---|---|---|---|
| Samsung Galaxy S24 FE, One UI 6.1.1 | 14 | работает | работает | не проверено |
Попробовал на другом телефоне? Напиши в Issues модель, версию Android, в каких приложениях записывал и шёл ли текст за голосом. Сообщение «всё работает» тоже полезно.
Планы
- Языковые пакеты: испанский, немецкий, итальянский, польский, вьетнамский и другие языки, для которых есть компактные потоковые модели. Пакет — это файл, который открывается приложением, так что разрешение на интернет по-прежнему не понадобится, а APK не вырастет.
Идеи и голоса за них — в Issues.
Частые вопросы
Есть ли телесуфлёр для Android, который слышит голос?
Да: Суфлёр слушает микрофон и прокручивает текст к словам, которые ты говоришь. Он бесплатный, с открытым кодом, а распознавание речи работает прямо на телефоне.
Можно ли пользоваться суфлёром во время записи в Instagram, TikTok или камере?
Да. Суфлёр висит поверх любого приложения, текст начинается сразу под фронтальной камерой. Обычно Android отнимает микрофон у остальных приложений, пока камера пишет видео; слушать дальше суфлёру позволяет служба специальных возможностей, а звук в ролике при этом остаётся.
Работает ли без интернета? Мой голос куда-то отправляется?
Работает полностью без интернета. У приложения нет разрешения на интернет, поэтому отправить что-либо оно просто не может; звук не записывается и не хранится. Подробнее — в PRIVACY.md.
Какие языки он понимает?
Русскую и английскую речь: язык выбирается сам по тексту сценария или задаётся в настройках. Интерфейс на русском и английском. Другие языки появятся как скачиваемые пакеты.
Работает ли с Bluetooth-пультом?
Да: кнопки громкости, Bluetooth-пульты для селфи, кольца, кликеры для презентаций и клавиатуры ставят на паузу и листают строки. Кнопки можно переназначить. Есть и прокрутка по скорости с отсчётом 3-2-1.
Это бесплатно? Есть платная версия?
Бесплатно: без рекламы, аккаунтов и платных функций. Код под лицензией GPL-3.0. Если суфлёр помогает, можно поддержать проект.
Какие телефоны поддерживаются? Есть версия для iPhone?
Android 10 и новее на 64-битном ARM-телефоне (почти любой после 2017 года). Версии для iPhone нет: iOS не позволяет приложению показывать окно поверх других приложений, как это нужно Суфлёру.
Поддержать проект
Суфлёр бесплатный и таким останется: без рекламы, платных функций и «про»-версии. Если он экономит тебе дубли, можно поддержать разработку. Донаты идут на новые языки и на телефоны для тестов.
Звёздочка репозиторию и рассказ о нём другим авторам тоже очень помогают.
Участие
Больше всего помогают отчёты об ошибках с разных телефонов. Приложи к отчёту журнал приложения: Настройки → О приложении → Журнал → Поделиться. Как собрать проект, как оформлять код и как добавить язык, написано в CONTRIBUTING.md. Об уязвимостях пиши приватно, как описано в SECURITY.md.
Благодарности
- sherpa-onnx от команды k2-fsa — потоковое распознавание речи (Apache-2.0).
- vosk-model-small-streaming-ru от Alpha Cephei — русская модель (Apache-2.0).
- Потоковый Zipformer проекта icefall, обученный на LibriSpeech, — английская модель (Apache-2.0).
- ONNX Runtime (MIT), Jetpack Compose (Apache-2.0).
- Полный список — в THIRD_PARTY_NOTICES.md.
Как это сделано: автор придумал приложение, руководил разработкой и проверял его на настоящем телефоне. Значительную часть кода написал ИИ-ассистент (Claude от Anthropic). Трекер голоса (на обоих языках) и импорт файлов покрыты юнит-тестами в app/src/test.
Лицензия
GNU GPL v3.0. Суфлёр можно использовать, изучать, распространять и изменять. Изменённые версии при распространении должны оставаться открытыми под той же лицензией.