Сегодня (12 апреля) в проект llama.cpp залили PR, который добавляет новый функционал - работа с audio.

Речь идёт о поддержке моделей Gemma4, которые умеют распознавать речь:

https://huggingface.co/google/gemma-4-E4B-it

  • Total Parameters 4.5B effective (8B with embeddings)

https://huggingface.co/google/gemma-4-E2B-it

  • Total Parameters 2.3B effective (5.1B with embeddings)

Обе модели поддерживают:

  • режим LLM (большая языковая модель), поддерживается режим thinking (размышления)

  • распознавание изображений: объектов, фотографий, документов, скриншотов экрана, рукописного текста.

  • распознавание видео

  • распознавание речи (ASR) и распознавание речи с переводом (speech-to-translated-text translation)

  • работа с кодом

  • поддерживается 35+ языков (включая русский).

  • контекст 128k

Так как в этой статье речь идёт о работе с llama.cpp, то требуется формат GGUF (кванты), который можно взять вот тут:

https://huggingface.co/ggml-org/gemma-4-E4B-it-GGUF

https://huggingface.co/ggml-org/gemma-4-E2B-it-GGUF

Так как поддержка добавлена только сегодня, то этот функционал ещё не работает в опубликованном контейнере докера (будет завтра). Я компилировал из исходников и запускал у себя на RTX 4090D:

CUDA_VISIBLE_DEVICES=0  ./build/bin/llama-server   --host 0.0.0.0  --port 8080  \
  --ctx-size 128000  \
  -b 1024 -ub 1024   \
  -hf ggml-org/gemma-4-E4B-it-GGUF:Q8_0

ggml_cuda_init: found 1 CUDA devices (Total VRAM: 48508 MiB):
  Device 0: NVIDIA GeForce RTX 4090 D, compute capability 8.9, VMM: yes, VRAM: 48508 MiB
main: n_parallel is set to auto, using n_parallel = 4 and kv_unified = true
build_info: b8770-82764d8f4

C параметрами по умолчанию движок работает нестабильно, падает:

https://github.com/ggml-org/llama.cpp/issues/21816 Gemma 4 E4B audio assert error

Нужно добавлять `-b 1024 -ub 1024`, как в примере у меня выше.

Я использовал квант Q8_0 - используется 10 GB VRAM.

Я решил провести эксперимент, и выставил llama.cpp в Интернет, безо всякой авторизации:

https://habr.acloud.app/

Так что можете попробовать, если интересно. Если Хабр положит мой компьютер, то ссылку уберу отсюда.

Так как поддержку только добавили, то выглядит это немного "сыровато". Модель не всегда понимает промпты. Так что будет интересно получить обратную связь.

На Reddit народ пишет, что вроде бы ещё поддерживается модель Voxtral, но я до неё ещё не добрался.

У Гугла, в описании модели даны рекомендации:

  • Audio поддерживается длиною 30 секунд.

Audio supports a maximum length of 30 seconds.

Я тестировал - бывает успешно обрабатываются и более длительные отрывки, а бывает что и нет

  • Рекомендуемый формат промптов:

Для распознавания речи (Audio Speech Recognition / ASR):

Transcribe the following speech segment in {LANGUAGE} into {LANGUAGE} text. Follow these specific instructions for formatting the answer: Only output the transcription, with no newlines. When transcribing numbers, write the digits, i.e. write 1.7 and not one point seven, and write 3 instead of three.

Для перевода речи на другой язык (Automatic Speech Translation / AST):

Transcribe the following speech segment in {SOURCE_LANGUAGE}, then translate it into {TARGET_LANGUAGE}.
When formatting the answer, first output the transcription in {SOURCE_LANGUAGE}, then one newline, then output the string '{TARGET_LANGUAGE}: ', then the translation in {TARGET_LANGUAGE}.