- iPhone
- Всё на телефоне, сервера нет. Запись — WAV 24 кГц моно, после остановки сжатие в AAC. Голоса — pyannote, WeSpeaker и кластеризация VBx через FluidAudio на Core ML / Neural Engine, речь — Parakeet. Интернет нужен один раз — скачать модели, около 1 ГБ.
- общая логика
- Отдельный модуль без зависимостей от iOS сопоставляет слова голосам, правит роли и делает экспорт. В веб-версию он перенесён построчно, поэтому реплики режутся одинаково.
- веб
- Одна страница. Модели в фоновом потоке на WebAssembly: pyannote-segmentation-3.0, WeSpeaker ResNet34, Whisper base с временем слов. Отпечатки голосов — иерархическая кластеризация, записи и кэш моделей — в IndexedDB.
- сборка без Mac
- GitHub Actions на macOS: тесты, сборка для симулятора, скриншоты в демо-режиме, автопроверка записи, сборка для iPhone. На Linux — тесты веб-версии.