← Вернуться к стенду

Контурные голоса на нашем Mac mini

M4Pro ·48GiB unified memory · проверка16.10.2026. Веса и inference остаются на Mini. Это анализ пяти установленных вариантов и неподключённой GigaChat-сборки, а не перечень всех существующих моделей.

Для первого разговора — Serena; для сравнения нативного S2S — Qwen3-Omni. CosyVoice и VoxCPM полезны для выбора звучания, но текущие порты синтезируют целую фразу. MiniCPM пока не подходит для русского.

СвязкаТипОбработка/репликаОтклик браузераПамять: разный охват₽/мин: только Mini
Qwen → SerenaКомпозит2.11 с2.22 с5.7 GiB MLX≈1.39 ₽
Qwen3-Omni30B-A3BОмни4.05 с2.34 с22.9 GiB MLX≈1.39 ₽
Qwen → CosyVoice3Композит2.15 с3.26 с2.7 GiB толькоTTS≈1.39 ₽
Qwen → VoxCPM2Композит3.71 с4.76 с8.4 GiB MLX≈1.39 ₽
MiniCPM-o4.5Омни21.05 с2.82 сНе измеренаНе квалифицирован
Наша GigaChat-сборкаКомпозит——Не измеренаНет замера

Обработка — wall-time runtime, без VAD/браузера; отклик — от конца пользовательской речи до первого звука в браузере. Пик MLX и RSS не равны RAM всей машины. Короткие синтетические прогоны не являются SLA или человеческой оценкой звучания.

Как считается стоимость

Метод mac-v2: в основной таблице — выделенные Mini по одной линии на машину плюс выбранный резерв. Для примера75000мин, пик20 и резерв1:21машина, цена180000₽,3года, питание24/7 в течение30дней,5/60Вт,8₽/кВт⋅ч. Для Serena:1,380822₽/мин износа +0,008064 простоя +0,001030 обработки =≈1,39₽/мин. Это допущения о покупке и энергии, не клиентский тариф или SLA.

Распределённая активная доля0,017–0,033₽/мин не оплачивает простой выделенных машин. Гипотеза разделения вычислений0,40–0,73₽/мин вынесена из основной цены: её мощность и задержка ещё не проверены. Сходная цена разных моделей при одинаковом числе выделенных машин объясняется доминирующим износом оборудования.

Полная методика: единицы, формулы, проверяемый пример и границы ↗ · Данные и версии

Память, пики и очередь

48GiB — общая памятьCPU/GPU/системы. A3B у Qwen Omni означает активных экспертов, а не размер всех весов. Нельзя делить48GiB на пик одной модели и объявлять результат числом звонков. Нужны KV/контексты, буферы аудио, система, запас и измерения очереди.

Во время теста общий system swap составлял примерно38–40GiB. Он может включать чужие и исторические нагрузки; причинность и принадлежность конкретной модели не установлены. Остаток swap не измеряет текущую GPU-загрузку. Для производственного расчёта нужны изолированный прогретый прогон и измерения задержки при2/4/... звонках. В текущем стенде общий Mini намеренно обслуживает один тест за раз.

Планировать нужно по всплескам реплик и хвостам задержки, а не только по75000мин.20 подключённых звонков не равно20 одновременным генерациям. Но расчёт средних занятых секунд не защищает от одновременной фразы всех20 абонентов. Запас60% — допущение, не доказанный предел очереди.

Qwen → Serena

Основной контрольный композит: отдельные ASR0.6B, Qwen3-4B4bit и Qwen TTS0.6B8bit. Потоковый синтез Serena; простая проверка текста и сценарные действия после ASR.

Русский заявлен у ASR/TTS; Serena — китайский исходный тембр с межъязычной речью, ударения нужно слушать. В наших тестах исправление пятницы19:30 сохранено.

Три разных модели и остановка по VAD; ошибки ASR могут перейти в LLM. Это не устаревшая архитектура: она удобнее для контролируемых инструментов и проверки реквизитов.

Потоковый TTS после полного короткого ответа LLM

MLX-пик процесса композита, не RAM всей машины

Фактические ответы в тесте

Алена, уточните, пожалуйста, точное время завтра.

Алена, вы хотите записаться на пятницу в 19:30?

Алена, вы выбрали пятницу в 19:30.

Точная версия и протокол

mlx-community/Qwen3-ASR-0.6B-8bit@89e96d92ba34aca20b3e29fb10cc284097d1219f → mlx-community/Qwen3-4B-4bit@4dcb3d101c2a062e5c1d4bb173588c54ea6c4d25 → mlx-community/Qwen3-TTS-12Hz-0.6B-CustomVoice-8bit@049ef77fe8816b536193c0c25f9a214d17921282

Источник: mac-analysis/mini-cascade-webrtc.json; голос Serena; реплик 3; 2026-10-16T19:27:38.774Z.

Первоисточник · Первоисточник

Qwen3-Omni30B-A3B

Нативный S2S Thinker–Talker MoE30B-A3B, сторонняя HybridQuantMLX-конверсия. Аудиовход и аудиовыход без скрытого отдельного STT/TTS.

Upstream прямо заявляет русский на входе и выходе. На нашем Mini есть русские ответы; независимой оценки качества нет.

В MLX-порте сначала завершается текст Thinker, затем идёт Talker. Наш транспорт работает по репликам; наличие streaming не означает full-duplex. Инструменты в стенде пока не подключены.

Talker выдаёт аудио частями после Thinker

MLX-пик единого Omni-процесса; A3B не означает3B хранимых весов

Фактические ответы в тесте

Алена, запись на завтра после 18:00?

Алена, запись на пятницу в 19:30?

Алена, запись на пятницу в 19:30.

Точная версия и протокол

ZolMik2004/Qwen3-Omni-30B-A3B-Instruct-HybridQuant-MLX@49a7decb47c312dcce58a7ab2ae8ea97a083696c

Источник: mac-analysis/qwen-omni-webrtc.json; голос Chelsie; реплик 3; 2026-10-16T19:28:21.177Z.

Первоисточник · Первоисточник

Qwen → CosyVoice3

Те же ASR/LLM, заменён только TTS: CosyVoice3-0.5B8bit через SwiftMLX. Номера1/2/3 — стили подачи.

Русский входит в заявленные языки upstream. Сохранены реальные русские образцы и трёхрепличный разговор на Mini; субъективный голос не оценён. В свежем прогоне ASR превратил «в пятницу» в «в пять низу»; защита сохранила19:30 и запросила день, вместо выдуманного подтверждения.

В upstream есть streaming, но наш конкретный Swift-порт возвращает целую фразу. Поэтому первые аудиоданные зависят от длины ответа. Голосовые инструменты этой связки не подключены.

Наш порт: целая фраза; возможность upstream другая

TTS-пик отдельного Swift-процесса; дополнительно ASR/LLM, их нельзя потерять в оценке RAM

Фактические ответы в тесте

Алена, уточни время завтра после шести.

Я услышала 19:30. Уточните, пожалуйста, день.

Я услышала 19:30. Уточните, пожалуйста, день.

Точная версия и протокол

mlx-community/Qwen3-ASR-0.6B-8bit@89e96d92ba34aca20b3e29fb10cc284097d1219f → mlx-community/Qwen3-4B-4bit@4dcb3d101c2a062e5c1d4bb173588c54ea6c4d25 → aufklarer/CosyVoice3-0.5B-MLX-8bit@c9ebb1a5dabe0a5c19c76c4cc65fb7593d73c337

Источник: mac-analysis/mini-cosyvoice3-webrtc.json; голос 3; реплик 3; 2026-10-16T19:29:12.799Z.

Первоисточник · Первоисточник

Qwen → VoxCPM2

Те же ASR/LLM, VoxCPM2-2B8bit в роли TTS. Многоязычная генерация, варианты подачи через описание.

Русский есть среди30 заявленных языков. У нас возвращаются русские ответы, сохранены образцы трёх вариантов.

Upstream поддерживает streaming, но наш вызов MLX собирает всю фразу. По старым3 репликам один TTS занимал2.87–4.19s. Замер NVIDIA4090 из README нельзя переносить на M4Pro. В текущем ответе обращается на «ты»: деловой стиль требует отдельной проверки.

Наш порт: целая фраза

MLX-пик процесса ASR+LLM+TTS, не RAM всей машины

Фактические ответы в тесте

Алена, уточни время завтра после шести.

Алена, уточни: пятница, 19:30.

Алена, ты выбрала пятницу, 19:30.

Точная версия и протокол

mlx-community/Qwen3-ASR-0.6B-8bit@89e96d92ba34aca20b3e29fb10cc284097d1219f → mlx-community/Qwen3-4B-4bit@4dcb3d101c2a062e5c1d4bb173588c54ea6c4d25 → mlx-community/VoxCPM2-8bit@d52725898a0675703f7f9ddc5a4d1a3cdbb99032

Источник: mac-analysis/mini-voxcpm2-webrtc.json; голос 3; реплик 3; 2026-10-16T19:29:55.434Z.

Первоисточник · Первоисточник

MiniCPM-o4.5

MiniCPM-o4.5:9B, GGUFQ4_K_M плюс F16аудиомодули, C++/Metal. Нативный аудиоцикл без скрытого каскада.

Официальный речевой режим рассчитан на китайский/английский. В наших тестах ответыzh/en не по русской задаче; для русского демо не квалифицирован.

Full-duplex есть в upstream, в нашем адаптере не проверен. Не считать неподходящий длинный ответ дешёвым успешным русским разговором.

Аудио частями, сессия в стенде по репликам

Пик памяти native C++/Metal пока не измерен; размерGGUF не является RAM

Фактические ответы в тесте

你看俄罗斯人是怎么在地铁里谈恋爱的呢? 哎哟,他们可直接了,站台上一见面就说,亲爱的,下一站就是我的家了。 然后那个姑娘就咯咯笑,哎哟,你还真会拐弯抹角啊,我可不想坐完这趟车还得再走十分钟。

Точная версия и протокол

openbmb/MiniCPM-o-4_5-gguf@db25077c33951fe163b42986fba0132e279872a2

Источник: mac-analysis/minicpm-post-guard.json; голос 1; реплик 1; 2026-10-16T19:50:08.741Z.

Первоисточник

Наша GigaChat-сборка

Ранее проверен nglain/voiceagent на коммитеbae90492: GigaChatLLM/SaluteTTS используют API. Набор локальных весов этой сборки не установлен.

Полностью контурный речевой цикл этой сборки не подтверждён.

Профиль оставлен отдельным и недоступным. Корпоративная поставка Сбера не подставляется вместо него.6–8₽/мин не подтверждены вычислительным замером.

Точная версия и протокол

Локальные веса не подтверждены

Источник: —; голос —; реплик 0; —.

Первоисточник

Границы этого разговорного стенда

Контекст короткий: композиты передают LLM последние4сообщения, Qwen Omni —2предыдущих аудиохода; MiniCPM хранит4сообщения. Полный архив в браузере не означает, что модель видит весь звонок. У композитов отдельно переносится состояние даты/времени, но это не общая долговременная память клиента.

ASR получает реплику после VAD, не потоковую частичную гипотезу. Пауза по умолчанию600ms, максимальная входная реплика30s. На динамиках перебивание кнопкой, режим голоса требует отдельной проверки. НативныйS2S здесь не равен доказанному full-duplex.

Демо-инструменты подключены голосом к Serena через сценарный обработчик послеASR; реальных CRM, календаря и телефонии нет. Поддержка function calling в upstream не означает её наличие в нашем адаптере. Внешний инструмент добавит собственные задержки и стоимость.

Входы синтетические16kHz, выход стенда24kHz. Телефонный8kHz-кодек, реальные микрофоны, шум, субъективныйMOS, реальные длинные звонки иp95/p99на нагрузке не проверены. Это следующий уровень приёмки. Для другого голоса до его собственного3репличного теста цена переносится с указанного эталонного голоса той же модели.

Что происходит при одновременных репликах

Арифметическая модель:20запросов поступили одновременно, один runtime выполняет их последовательно. Это не проведённый нагрузочный тест; текущий стенд второй разговор блокирует. Для последнего запроса время до первого пакета составило бы:

VAD и сеть добавятся сверху. Поэтому дешёвый вычислительный бюджет сам по себе не обеспечивает быстрые звонки: нужны замеры очереди, p95/p99 и отдельно проверенный планировщик. Для ответа за2–3сек нижний ценовой сценарий пока обещать нельзя.

Что ещё имеет смысл рассматривать

PersonaPlex7B: Не установлен; русский не подтверждён, поэтому не подменяет русский контур. Модель требует принятия отдельной лицензии весов.

Step-Audio2/mini: Не установлен; отдельная проверка русского и порта Apple требуется. Старый Step-Audio130B не рассматривается как готовая модель для48GB.

Каскад не устарел: для инструментов и проверяемого текста он остаётся полезным. S2S сохраняет больше речевого контекста, но не гарантирует быстрый первый звук, полноценное перебивание, русский язык и интеграции в конкретном порте. Возможности upstream и установленного адаптера проверяются отдельно.