InkPeek — переводчик для Android-читалок: работает офлайн, а с интернетом ещё и объясняет через AI. ai.. ai. android.. ai. android. Boox.. ai. android. Boox. fastText.. ai. android. Boox. fastText. FBReader.. ai. android. Boox. fastText. FBReader. Firefox Translations.. ai. android. Boox. fastText. FBReader. Firefox Translations. InkPeek.. ai. android. Boox. fastText. FBReader. Firefox Translations. InkPeek. llm.. ai. android. Boox. fastText. FBReader. Firefox Translations. InkPeek. llm. Open source.. ai. android. Boox. fastText. FBReader. Firefox Translations. InkPeek. llm. Open source. Изучение языков.. ai. android. Boox. fastText. FBReader. Firefox Translations. InkPeek. llm. Open source. Изучение языков. искусственный интеллект.. ai. android. Boox. fastText. FBReader. Firefox Translations. InkPeek. llm. Open source. Изучение языков. искусственный интеллект. Разработка мобильных приложений.. ai. android. Boox. fastText. FBReader. Firefox Translations. InkPeek. llm. Open source. Изучение языков. искусственный интеллект. Разработка мобильных приложений. словарь.. ai. android. Boox. fastText. FBReader. Firefox Translations. InkPeek. llm. Open source. Изучение языков. искусственный интеллект. Разработка мобильных приложений. словарь. Читальный зал.

Привет. Это пост про небольшое приложение, которое я сделал для себя. Скажу сразу: писал я его в паре с нейронкой. Как Хабр сейчас относится к таким проектам, не знаю, но вдруг кому-то пригодится.

Захотелось мне читать больше книг на иностранном языке – на электронной книге, разумеется. Но удобного словаря для читалки, который сразу переводил бы слово или фразу поверх страницы, а при наличии сети ещё и объяснял грамматику, я не нашёл: AI-плагины к KOReader перегружены, а словари для FBReader выглядят как привет из начала двухтысячных. Поэтому сделал свой.

Работает на читалках вроде Boox: подключается к FBReader, CoolReader или KOReader как внешний словарь и вызывается из меню выделения текста, онлайн и офлайн. Изначально это был эксперимент, но у меня оно прижилось, поэтому решил поделиться.

Пример разбора грамматики с AI

Пример разбора грамматики с AI

Суть функционала в следующем:

  • приложение регистрируется в системе по протоколу “ColorDict 3” и различные читаки могут дергать его как внешний словарь;

  • приложение при вызове открывает окошко поверх читалки (у меня FBReader);

  • позволяет переводить отдельные слова и фразы офлайн:

    • перевод каждого слова по скачанным языковым пакетам: словари мы собираем сами из Викисловаря (выгрузки kaikki.org) + WikDict – там, где в Викисловаре нет статьи. Сейчас это два десятка пар: книги на 8 языках с ответами на английском, на 5 – с ответами на русском, плюс английский: французский, испанский, итальянский, португальский, польский в качестве эксперимента. Готовые словари не подошли: качество у всех разное, формы слов находятся через раз. Поэтому собираю свои, и перед публикацией каждый пак проверяется тестами;

    • перевод фраз – с использованием translation-моделей от Firefox: напрямую, если один из языков английский, иначе через английский (de -> en -> ru), на движке Bergamot прямо на устройстве (через английский оттенки вроде ты/вы могут теряться);

    • для определения исходного языка используется легкая модель определения языка фразы из проекта fastText – для уточнения с какого языка должен идти офлайн-перевод;

    • для слов подсказывает грамматику: der/die/das и множественное число для немецких существительных, основные формы глаголов (gehen — ging — ist gegangen), сильные и неправильные глаголы; любая форма слова в тексте ведёт к словарной: Häusern → das Haus, went → go.

Подстрочник без интернета: каждое слово фразы с начальной формой и значением

Подстрочник без интернета: каждое слово фразы с начальной формой и значением
  • при наличии подключения к сети доступны доп фишки с AI:

    • интеграция с разными провайдерами по API (нужен свой ключ API), в том числе OpenRouter где есть даже бесплатные модельки/лимиты по API, и свой сервер (LM Studio, Ollama);

    • AI перевод фраз, зависит от выбранной модели и провайдера;

    • AI «Разбор»: грамматика фразы и трудные слова;

    • AI «Контекст»: что значит здесь, стиль, идиомы, плюс примеры с переводом;

    • по нажатию на любую AI-вкладку все запросы уходят разом и кэшируются, остальные вкладки потом открываются мгновенно.

  • Также есть стандартные фишки типа истории (у каждой записи — короткий перевод), избранных слов и фраз итд.

AI-перевод фразы из Кафки

AI-перевод фразы из Кафки

Немного цифр:

  • Boox Go 6 (Snapdragon 662, 2 ГБ): офлайн-перевод предложения за 0,1–0,9 с;

  • языковой пак – 25–60 МБ на пару, качаешь только нужные;

  • пара публикуется, только если её словарь знает не меньше 85% из 5000 самых частых слов языка (с формами);

  • 20 пар, интерфейс на 8 языках, без интернета работает всё, кроме AI-вкладок.

Удивило меня в итоге не то, что с нейронкой можно быстро собрать приложение, — к этому уже привыкаешь. Удивило, сколько всего готового и открытого уже лежит под рукой. Модель fastText размером около мегабайта за миллисекунды определяет язык текста среди 176 языков. Весь Викисловарь доступен в виде структурированных данных (kaikki.org), и из него можно собрать свои словари с родом, формами слов и спряжениями. У Mozilla есть открытые модели офлайн-перевода, которые на слабенькой Boox Go 6 переводят предложение меньше чем за секунду. А AI поверх всего этого прикручивается за вечер, через любого провайдера или даже свой сервер. Пять лет назад для такого понадобилась бы команда, а сейчас это пет-проект на пару дней.

В итоге получился проект InkPeek (https://github.com/kafeg/inkpeek) где я с нейронкой на пару реализовал то что нужно именно мне: можно читать литературу на интересующем языке, без сети получать удобный перевод слов (+грамматика +глаголы) и целых фраз (разумеется качество не сравнимо с онлайн версиями), а при наличии сети – еще и получать доп объяснения по грамматическим конструкциям, примеры итд.

Как подключить: ставите APK из Releases, во вкладке «Языки» отмечаете нужные пары и скачиваете. В FBReader: Настройки -> Словарь и переводчик -> «ColorDict 3» и для слов, и для фраз. Для KOReader, Cool Reader и Moon+ инструкция есть в README.

У меня все работает на Boox Go 6, довольно слабой книжке, так что проблем на любой читалке быть не должно. В README на GitHub есть технические подробности. Возможно, кому-то такое приложение-словарь для читалки будет полезно, как и мне.

Код под MIT, словари под CC BY-SA (Викисловарь), модели под MPL-2.0 (Mozilla).

Автор: vitaly_KF

Источник