AAYMA
RU
Войти

Khattama AI

Локальный помощник, который по аудио/видео или записи с микрофона совещания готовит протокол: транскрипт с разделением спикеров, краткий итог…

Рабочий MVP
Команда «Hiuaz» 7💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: Hiuaz
Кейс HackAlem.ai: Инновации — Самрук-Казына
Стадия: Рабочий MVP

Задача кейса: «Хаттама»: протокол и поручения по аудиозаписи совещания (каз./рус./смешанная речь)

Суть

Локальный помощник, который по аудио/видео или записи с микрофона совещания готовит протокол: транскрипт с разделением спикеров, краткий итог, поручения с исполнителем, сроком и ссылкой на исходную реплику; архив, трекинг статусов поручений, напоминания и экспорт в DOCX. Интерфейс на казахском и русском.

Как устроено

PyAV декодирует запись, faster-whisper (Whisper small) распознаёт речь в режимах рус./каз./смешанный с определением языка по 30-секундным кускам, Sherpa-ONNX делит голоса на группы, а имена пользователь подтверждает вручную. Qwen2.5-3B-Instruct (GGUF Q4_K_M, llama-cpp-python, CPU) извлекает итог, задачи, исполнителей и сроки; затем проверяются ссылки на реплики и даты относительно даты совещания. Протоколы сохраняются в SQLite, экспорт через python-docx; сервер на стандартной библиотеке Python слушает только 127.0.0.1, внешних AI API нет.

Ключевые решения

  • faster-whisper
  • speaker diarization (Sherpa-ONNX)
  • llama.cpp local inference
  • grounding tasks to utterances
  • relative date resolution

Метрики

Распознавание 60 с записи — 67,45 с, диаризация — 26,37 с, Qwen на коротком русском тексте — 88,99 с, на казахском — 119,72 с (срок пропущен); 18 Python-тестов; WER/DER не измерены

Особенности

Полностью офлайн-обработка на CPU слабого ноутбука (MacBook Air 2017) без отправки аудио во внешние API, каждое поручение привязано к исходной реплике. Честная таблица соответствия требованиям с указанием того, что качество на казахском и смешанном аудио ещё не измерено.

Стек

Python · faster-whisper · Sherpa-ONNX · llama-cpp-python · PyAV · SQLite · python-docx · HTML · JavaScript · Streamlit

Модели

Whisper small · Qwen2.5-3B-Instruct


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-f10f2cb8-hiuaz.

README

README.md

Khattama AI — «Хаттама»

Қазақша · Русский

HackAlem AI · Hiuaz командасы · Жиналыс хаттамасын тапсырмаларымен бірге дайындайтын жергілікті ЖИ көмекші.

Жиналыс жазбасын жүктеңіз, танылған мәтін мен сөйлеушілерді тексеріңіз, жауапты адамдары және мерзімдері көрсетілген хаттаманы алыңыз. Дайын хаттама күні мен уақытымен сақталады: оны кейін архивтен таңдап, түзетіп, Word файлы ретінде жүктеуге болады.

Орнату және қолдану нұсқаулығы · Тексеру нәтижелері · Дамыту жоспары

Қандай мәселені шешеді?

Хатшы жиналысты қолмен жазғанда тапсырманың мазмұны, орындаушысы немесе мерзімі жоғалуы мүмкін. Басшыға кейін кімнің не істеуі керегін қайта анықтауға тура келеді.

«Хаттама» осы жұмысты бір жерде жинайды:

  • Хатшыға: жазбадан мәтін мен хаттама жобасын дайындау, қате жерлерін түзету, DOCX жүктеу.
  • Басшыға: тапсырмалардың орындалуын, жақындаған және өткен мерзімдерін көру.
  • Командаға: бұрынғы жиналысты тауып, тапсырманың қандай сөзге сүйеніп жасалғанын тексеру.

Жобаның ерекшелігі — қазақша/орысша интерфейс, жергілікті модельдер және әр тапсырманы бастапқы репликамен байланыстыру. ЖИ дайындаған нәтиже адам тексергенге дейін хаттама жобасы болып саналады.

Қазір не бар?

МүмкіндікҚазіргі нұсқа
Жазба енгізуАудио/бейне файлын жүктеу, браузер микрофоны, дайын мәтін
Сөйлеуді тануОрысша, қазақша және аралас режим; Whisper small
Сөйлеушілерді ажыратуДауыс топтарын бөлу, үзіндіні тыңдап, адамның атын қолмен растау
Жиналыс нәтижесіҚысқаша қорытынды, тапсырма, орындаушы, мерзім, бастапқы репликаға сілтеме
ТексеруТанылған мәтінді, есімдерді, қорытындыны және тапсырмаларды түзету
АрхивАвтоматты сақтау, сақталған/өзгертілген уақыт, іздеу және DOCX жүктеу
Тапсырмаларды бақылауЖоспарланған / орындалуда / орындалды; кешіккен тапсырмалар сүзгісі
Еске салуҚолданба ішінде мерзімі өткен және алдағы үш күндегі тапсырмалар
ИнтерфейсҚазақша/орысша; телефон, планшет, компьютер өлшемдеріне бейімделеді

Қазіргі шек: бір файл — 64 МБ-қа және 10 минутқа дейін; бір мезгілде бір ЖИ өңдеуі. Есептеу CPU-да жүреді. Қазақша және аралас аудио сапасы әлі өлшенбеген; жауаптыларды, даталарды және қорытындыны тексеру қажет.

Тез іске қосу

Тексерілген орта: MacBook Air 2017 · Intel Core i5 · 8 ГБ RAM · macOS 12.7.6 · Python 3.9.6. Алғашқы орнатуға интернет және кемінде 5 ГБ бос орын қажет. API кілті, Node.js және Docker қажет емес.

Терминалда командаларды ретімен орындаңыз. Қате шықса, келесі қадамға өтпей, ақауларды шешу нұсқаулығын қараңыз.

git clone https://github.com/BAITC-Hacks/hack-f10f2cb8-hiuaz.git
cd hack-f10f2cb8-hiuaz/khattama-ai
bash install_mac.sh
.venv/bin/python prepare_models.py
.venv/bin/python doctor.py
bash start.sh

Браузерде http://127.0.0.1:8501 ашыңыз. doctor.py нәтижесінде барлық кітапхана мен төрт модельге OK шығуы керек. Кейін осы khattama-ai қалтасынан тек bash start.sh орындау жеткілікті. Тоқтату — терминалда Ctrl+C.

Модельдер алғаш жүктелгеннен кейін жиналыс жергілікті өңделеді. Linux, басқа порт, диагностика, тесттер және резервтік көшірме командалары толық нұсқаулықта.

Қалай жұмыс істейді?

flowchart TD
    A["Аудио / бейне / микрофон"] --> B["Whisper: сөзді мәтінге айналдыру"]
    B --> C["Sherpa-ONNX: сөйлеушілерді ажырату"]
    C --> D["Пайдаланушы мәтін мен есімдерді тексереді"]
    T["Дайын мәтін"] --> D
    D --> E["Qwen: қорытынды, тапсырма, орындаушы, мерзім"]
    E --> F["Реплика сілтемелерін және мерзімдерді тексеру"]
    F --> G["SQLite: хаттаманы күні мен уақытымен сақтау"]
    G --> H["Түзету және DOCX жүктеу"]
    G --> I["Тапсырмалар мен еске салғыштар"]
  1. «Жаңа жиналыс» терезесінде атауын, белгілі болса жиналыс күнін енгізіңіз.
  2. Жазбаны таңдаңыз немесе микрофонмен жазыңыз. Қатысушыларға жазба мен ЖИ өңдеуі туралы өзіңіз хабарлап, интерфейсте растаңыз.
  3. Алғашқы тексеруге 60 секунд таңдаңыз; танылған сөздер мен сөйлеушілердің есімдерін түзетіңіз.
  4. Хаттаманы қалыптастырыңыз. Нәтиже архивке автоматты сақталады.
  5. Тапсырмаларды тексеріп, қажет жерін түзетіңіз, «Тексерілді» белгісін қойып, DOCX жүктеңіз.
  6. «Тапсырмалар» бетінде орындалу мәртебесін өзгертіңіз.

Жиналыс күні мен файлдың сақталған уақыты бөлек есептеледі. Мысалы, «ертең» деген мерзімді нақты күнге айналдыру үшін жиналыстың күні қажет. Дауыс тобы адамның расталған тұлғасы емес: есімді пайдаланушы белгілейді.

Технологиялар мен құрылым

ҚабатТехнология / файл
ИнтерфейсHTML, CSS, JavaScript — web/
Жергілікті HTTP APIPython стандартты кітапханасы — server.py
ЖИ тізбегіPyAV, faster-whisper, Sherpa-ONNX, llama-cpp-python — core.py
Тілдік модельQwen2.5-3B-Instruct, GGUF Q4_K_M; CPU
СақтауSQLite — protocol_store.py
Экспортpython-docx; DOCX ішінде қорытынды, тапсырмалар, негіздер және транскрипт
Қайта іске қосуБекітілген тәуелділіктер, модель ревизиялары, SHA256 тізімі, автоматты тесттер

Толық файл құрылымы мен модель параметрлері әзірлеушіге арналған бөлімде.

HackAlem талаптарына сәйкестігі

Міндетті талапІске асырылуы және тексеру шегі
1. Сөйлеуді мәтінге айналдыруНақты орысша жазбаның алғашқы 60 секунды өңделді; дәлдік көрсеткіші өлшенген жоқ
2. Орыс тілін түсінуАудио тану және бөлек синтетикалық мәтіннен тапсырма шығару тексерілді
3. Қазақ тілін түсінуРежим бар; қысқа мәтіннен тапсырма/орындаушы табылды, мерзім мен қорытындыда қате болды; қазақша аудио бағаланбаған
4. Аралас сөйлеуді түсіну30 секундтық бөліктерде тіл анықталады; бөліктің ішіндегі тіл ауысуы қате танылуы мүмкін; аудио сапасы бағаланбаған
5. Тапсырма, орындаушы, мерзімЖергілікті модель, реплика негіздері, даталарды тексеру және қолмен түзету бар
6. Диаризация және адамға байланыстыруДауыс топтары бөлінеді; нақты есімді пайдаланушы растайды; диаризация дәлдігі өлшенбеген
7. PDF/DOCX экспортыDOCX жасалады және қайта ашу тестінен өтті; PDF әзірге жоқ

Қосымша іске асқан мүмкіндіктер: архив, тапсырма мәртебелері, қолданба ішіндегі еске салғыштар, екі тілдегі бейімделетін интерфейс. Teams/Zoom/Meet-ке қосылатын бот, үздіксіз транскрипция, сыртқы хабарламалар және ЭҚАЖ интеграциясы әзірге жоспарға кіреді.

Нақты тексерілген нәтижелер

2026 жылғы 23 қыркүйектегі тексерулер, MacBook Air 2017:

  • 18 Python тесті өтті, Chromium браузеріндегі толық интерфейс сценарийі орындалды.
  • 320, 390, 768 және 1440 px ендерінде бет пен форма көлденең тасып шықпады. Нақты iPhone/Android және Safari бөлек тексерілген жоқ.
  • Нақты жазбаның 60 секундын тану — 67,45 с, дауыстарды бөлу — 26,37 с. Бұл толық хаттама жасау уақыты емес.
  • Qwen-нің қысқа орысша мәтін сынағы — 88,99 с; тапсырма, орындаушы және «ертең» мерзімі дұрыс шықты.
  • Қазақша мәтін сынағы — 119,72 с; тапсырма мен орындаушы табылды, бірақ мерзім түсіп қалып, қорытынды дәл болмады.

Браузер тесттері синтетикалық модель жауабын пайдаланады; олар интерфейс пен сақтауды тексереді. Екі толық жиналыстың барлық кезеңнен өтуі, WER/DER және тапсырма шығару дәлдігі әлі бағаланбаған. Барлық өлшемнің жағдайы мен шектеуі VALIDATION.md ішінде берілген.

Деректер қайда қалады?

Өңдеу кодында сыртқы ЖИ API шақырулары жоқ; модельдер компьютердегі файлдардан жүктеледі. Архив khattama-ai/data/protocols.sqlite3 ішінде сақталады. Аудио қолданба тарапынан сервер дискісіне жазылмайды, уақытша жадта өңделеді. Бастапқы файл пайдаланушының өзінде қалады.

Бұл — жергілікті, бір пайдаланушыға арналған прототип. Сервер тек 127.0.0.1 мекенжайын тыңдайды; телефонға бейімделген интерфейс оны басқа құрылғыдан автоматты түрде қолжетімді етпейді. Көп пайдаланушыға қызмет көрсету, HTTPS, кіру құқықтары және база шифрлауы бөлек әзірлеуді қажет етеді. Микрофонға браузер рұқсаты қажет.

Архив, модельдер және жергілікті тексеру файлдары Git-ке қосылмайды. Демонстрация үшін синтетикалық немесе жеке деректері жасырылған жазбаны қолданыңыз. Сақтау тәртібі мен резервтік көшірме нұсқаулықта.

Алға қарай қандай өзгерістер енгізуге болады?

Төмендегі тармақтар — келесі нұсқаларға ұсынылған жоспар; қазіргі өнімнің дайын мүмкіндіктері емес.

КезеңӨзгерісНәтижені қалай бағалаймыз?
1. СапаҚазақша/орысша/аралас аудиодан жеке деректері жасырылған бағалау жиынын жасау; қолмен транскрипт пен тапсырмаларды белгілеуWER — сөз тану қатесі; DER — сөйлеушіні бөлу қатесі; тапсырма precision/recall, орындаушы мен мерзімнің дәлдігі
1. СапаҚазақшаға лайық модельдерді және лицензиясы сәйкес тілдік модельді салыстыру; қорытынды мен мерзім қателерін азайтуБірдей тест жиынында қазіргі нұсқамен салыстыру; жіберілген және ойдан қосылған тапсырмаларды санау
2. Ұзақ жиналыс және жылдамдықҰзақ жазбаларды бөліктерге өңдеу, қайталанған тапсырмаларды біріктіру, жабық серверде GPU қолдауын қосуТолық өңдеу уақыты, ең жоғары жад шығыны, тапсырмалардың бөліктер арасында сақталуы
2. Қолдану ыңғайлылығыPDF, құжат үлгілері, толық өзгерістер тарихы, архивті басқару, сақтық көшірмені қалпына келтіруWord/PDF көрінісі, өзгеріс авторы мен уақыты, деректі жоғалтпай қалпына келтіру сынағы
3. Ұйым ішінде қолдануПайдаланушылар мен рөлдер, HTTPS, қолжетімділік журналы, қауіпсіз телефон қолжетімділігі, орналастыруды автоматтандыруӘр рөлдің рұқсаты, бір мезгілдегі жұмыс, нақты құрылғылардағы сынақ
3. ИнтеграцияларTeams/Zoom/Meet қосылуы, ЭҚАЖ, күнтізбе, ұйым рұқсат еткен арналарға тапсырма үзіндісі мен еске салғыш жіберуҚайталап жібермеу, жеткізу мәртебесі, қатысушыларды хабардар ету; аудио/мәтінді сыртқы ЖИ API-ға жібермеу талабын сақтау

Бірінші басымдық — қазақша және аралас сөйлеудің сапасын өлшеп, жақсарту. Одан кейін ұзақ жиналыстар мен ұйым ішіндегі ортақ жұмысты дамыту ұсынылады.

Қорғауда қалай көрсетуге болады?

  1. Мәселені көрсетіңіз: «Кім не істеуі керек және қай күнге дейін?» деген ақпарат бір жерде сақталуы қажет.
  2. Қысқа оқу жазбасын өңдеп, сөйлеуші есімін және мәтінді растаңыз. CPU өңдеуіне уақыт бөліңіз; дайын мысал көрсетсеңіз, оны алдын ала өңделген деп белгілеңіз.
  3. Тапсырманың бастапқы репликасын ашыңыз, қажет болса мерзімді түзетіңіз.
  4. DOCX жүктеңіз, бетті жаңартып, хаттаманың күні/уақытымен архивте қалғанын көрсетіңіз.
  5. Тапсырманың мәртебесін өзгертіп, тіл мен экран өлшемін ауыстырыңыз.
  6. Өлшенген нәтижелерді, қазіргі қателерді және келесі даму кезеңін түсіндіріңіз.

Қайталауға арналған мәтін мысалы және қадамдар толық нұсқаулықта. Сапаға қатысты қорытындыны тек мәтіндік не интерфейс тестімен шектемеңіз: аудио тізбегін бөлек көрсетіңіз.

Лицензиялар

Тәуелділіктер мен модель салмақтарының лицензиялары бөлек. Таңдалған Qwen 3B салмақтары Qwen Research License арқылы беріледі; лицензия prepare_models.py орындалғанда models/QWEN_LICENSE файлына жүктеледі. Коммерциялық нұсқа үшін сол шарттарға сәйкес модель таңдау қажет. Құрамдастар туралы лицензиялар бөлімін қараңыз. Репозиторийдің өз коды үшін жеке LICENSE файлы әзірге қосылмаған.

Звёзды
⭐ 0
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
3
Авторы
1
Файлы
31
Ветки
1

Авторы коммитов

zkazym 3

История коммитов

  • 2026-09-23 17:47Add Russian README and language navigationzkazym
  • 2026-09-23 17:36Add responsive meeting workspace and Kazakh HackAlem documentationzkazym
  • 2026-09-23 15:12Add Khattama AI applicationzkazym
Структура репозитория (31 файлов)
README.md
khattama-ai/.gitignore
khattama-ai/.streamlit/config.toml
khattama-ai/README.md
khattama-ai/VALIDATION.md
khattama-ai/app.py
khattama-ai/core.py
khattama-ai/doctor.py
khattama-ai/evaluation/meeting_reference_checks.json
khattama-ai/evaluation/model_checksums.json
khattama-ai/examples/mixed_meeting.txt
khattama-ai/i18n.py
khattama-ai/install_mac.sh
khattama-ai/installed_versions.txt
khattama-ai/prepare_models.py
khattama-ai/protocol_store.py
khattama-ai/requirements-mac.lock
khattama-ai/requirements.txt
khattama-ai/server.py
khattama-ai/start.sh
khattama-ai/tests/browser_check.py
khattama-ai/tests/browser_fixture.py
khattama-ai/tests/test_core.py
khattama-ai/tests/test_protocol_store.py
khattama-ai/tests/test_server.py
khattama-ai/tests/test_ui.py
khattama-ai/web/app.js
khattama-ai/web/favicon.svg
khattama-ai/web/index.html
khattama-ai/web/styles.css
ruReadme.md

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.