Pull to refresh
0
Егор Сазанов@Sazzy

Founder @ addicted, indie iOS developer

Send message

Подключал Apple SpeechAnalyzer к своей локальной диктовке — результат совпал: очень быстро на чистой речи, но сложный вход может молча обрезать.

Две ловушки из похожего пайплайна.

Аудиозахват иногда успешно стартует и продолжает отдавать буферы, внутри которых одни нули. Снаружи это выглядит как ошибка модели. Я ловлю это RMS-watchdog’ом: если уровень долго ниже −80 dBFS, останавливаю запись и показываю ошибку микрофона.

И галлюцинации Whisper лучше фильтровать до Qwen. Иначе Whisper придумывает текст на тишине, а редактор превращает мусор в убедительное связное сообщение. VAD и noSpeech — до режимов «Исправить» и «Кратко», проверка результата — после.

С ad-hoc-подписью и tccutil reset Accessibility прошёл тот же путь. До стабильного Developer ID это действительно рабочий вариант.

Раз просили альтернативную реализацию: собрал Daisy — нативное macOS-приложение под Apache 2.0:

https://github.com/addicted-studio/daisy-app

Стек другой: ScreenCaptureKit, WhisperKit и FluidAudio, но грабли те же.

Раздельные треки сами по себе диаризации не мешают. При звонке в наушниках микрофон — это заведомо вы, поэтому диаризировать нужно только системный звук, а потом свести сегменты по таймкодам. Бесплатно получаем одну точную метку спикера. Плата — echo-dedup, когда голос собеседника наводится в микрофон.

Второй полезный обход: офлайн-пайплайн FluidAudio основан на Pyannote Community-1, но работает нативно через CoreML — без Python, hf auth login и gated-страниц.

Имена LLM не угадывает: Daisy запоминает локальные голосовые отпечатки между встречами. Но на часовых созвонах с 4–6 людьми короткие реплики всё равно разъезжаются. Офлайн-проход после Stop лучше стриминга, но проблему полностью не решает.

Information

Rating
Does not participate
Date of birth
Registered
Activity