Содержание
  1. Минимальная версия и платформа
  2. Загрузка модели phonon
  3. Команды озвучки: текст, голос, пайп
  4. Интерактивный режим и выход
  5. Запись в WAV при перенаправлении вывода
  6. Связка LLM → TTS через пайп
  7. Голоса и языковые варианты
  8. Лицензии: Apache 2.0 и CC BY-NC 4.0
  9. Таблица выбора способа озвучки
  10. Частые вопросы
Гайды

Ollama TTS: как озвучить текст моделью Phonon

27 октября 2026 · 8 минут чтения

Ollama TTS: как озвучить текст моделью Phonon — для этого в Ollama есть встроенная речевая модель, которой нужна версия 0.40.11 или новее. Модель Phonon читает текст вслух прямо в терминале, аудио отдаётся потоком, а для работы нужен Apple Silicon Mac.

Минимальная версия и платформа

Официальная документация Ollama и страница модели называют минимальной версией 0.40.9, а анонс в блоге вендора — 0.40.11. Ориентируйтесь на более свежую цифру: ставьте Ollama 0.40.11 или новее, тогда речевые команды точно доступны. Если установленная версия старше, сначала обновите Ollama.

Платформа — Apple Silicon Mac. В блоге Ollama прямо сказано, что речевые модели доступны для macOS, а поддержка Windows и Linux обозначена как coming soon. На Apple Silicon Ollama ускоряется через MLX, фреймворк машинного обучения Apple. Вендор приводит замер: на MacBook Pro с M5 Max Ollama оказалась на 35% быстрее следующего по скорости движка — собственного рантайма Gradium. Точность реализации совпадает с эталонной по метрике word error rate в Hugging Face Transformers. Цифра 35% — замер самого вендора на MacBook Pro с M5 Max, на другом Mac скорость может отличаться.

Практический вывод для выбора железа: если у вас Mac на чипе Apple Silicon, встроенный TTS запускается одной командой. На Windows и Linux встроенная озвучка пока недоступна, поэтому там нужен внешний движок или облачный сервис — об этом ниже в таблице выбора.

Загрузка модели phonon

Модель ставится обычной командой pull, как и любой другой тег Ollama:

ТЕРМИНАЛ
ollama pull phonon

Без тега скачивается вариант по умолчанию — Phonon 31M English. Страница модели сообщает, что он включает один голос с именем default. Для другого языка или мультиязычного чекпоинта нужен тег 40M, например ollama pull phonon:40m-fr.

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

ТЕРМИНАЛ
ollama show phonon

Документация отмечает: ollama show phonon и /api/show показывают возможности модели как speech, а голоса — в поле voices. По странице модели на Apple M5 Max загруженная модель занимает в памяти 121 МБ для 31M English и 141 МБ для каждого 40M-варианта. Аудио на выходе — 24 кГц, моно.

Команды озвучки: текст, голос, пайп

Базовый запуск читает строку вслух через динамики компьютера:

ТЕРМИНАЛ
ollama run phonon "Hello from Ollama."

Выбор голоса делается флагом --voice:

ТЕРМИНАЛ
ollama run phonon --voice Zoey "Hi, this is Zoey."

Документация уточняет: имена голосов работают в любом регистре и с диакритикой или без неё. Текст из другой программы принимается через пайп:

ТЕРМИНАЛ
echo "Text from another program works too." | ollama run phonon

Пайп читается по мере поступления: текст начинает звучать, как только приходит первая пара предложений. Это ключевое свойство потоковой отдачи — не нужно ждать, пока сгенерируется весь текст целиком. Для длинных материалов документация задаёт лимит: до 4096 знаков на запрос, а ollama run сам разбивает более длинный текст по абзацам и предложениям.

Интерактивный режим и выход

Запуск без текста открывает интерактивный режим:

ТЕРМИНАЛ
ollama run phonon

Появляется приглашение >>>, куда построчно вводится текст. Каждая строка озвучивается после нажатия Enter. Остановить текущую речь можно сочетанием Ctrl+C. Выход из режима — команда /bye или Ctrl+D. Такой режим удобен для проверки голосов и произношения отдельных фраз: вводите строку, слушаете, меняете формулировку. Для пакетной обработки файлов он не подходит — там работает пайп или API.

Запись в WAV при перенаправлении вывода

Когда вывод перенаправляется, ollama run пишет WAV-файл вместо воспроизведения. Это работает и на серверах без динамиков:

ТЕРМИНАЛ
ollama run phonon "Save this to a file." > speech.wav

Формат по умолчанию — WAV: 16 бит, моно, 24 кГц. Документация предупреждает об особенности заголовка: он записывается до того, как длина файла известна, поэтому поля размера содержат максимальное значение. При программной обработке файла учитывайте, что поля размера в заголовке не совпадают с фактической длиной. Альтернатива в API — сырые 16-битные little-endian сэмплы без заголовка через response_format: pcm.

Чтобы услышать удалённый сервер, Ollama запускают на своём компьютере и указывают на сервер — звук идёт там, где выполняется команда:

ТЕРМИНАЛ
OLLAMA_HOST=my-server:11434 ollama run phonon "Hello from the server."

Связка LLM → TTS через пайп

Документация даёт готовый пример: ответ чат-модели уходит прямо в Phonon.

ТЕРМИНАЛ
ollama run gemma4 --hidethinking "Tell me a fun fact about owls in two sentences." | ollama run phonon

Ответ начинает звучать после первых одного-двух предложений, потому что текст озвучивается по мере поступления. Так ответы чат-модели озвучиваются одной строкой в терминале, без отдельного TTS-пайплайна на Python. Тот же приём работает с любой моделью, которая пишет в stdout.

Для интеграции в код есть OpenAI-совместимый эндпоинт /v1/audio/speech. Существующий код на OpenAI SDK требует только нового base URL. Пример из документации:

ТЕРМИНАЛ
curl http://localhost:11434/v1/audio/speech \
  -H "Content-Type: application/json" \
  -d '{
    "model": "phonon",
    "voice": "default",
    "input": "Hello from Ollama."
  }' --output speech.wav

Ответ стримится по мере генерации аудио, поэтому воспроизведение можно начинать сразу. Неподдерживаемые опции — другие форматы, скорости, инструкции — возвращают ошибку 400. Неизвестный голос тоже даёт 400 со списком доступных голосов. Запросы chat, completion и embedding к речевой модели возвращают 400: она умеет только синтез речи.

Голоса и языковые варианты

Голоса приходят из каталога Gradium. Документация перечисляет английские голоса Zoey, Easton и Freya; блог вендора приводит Hadley. Страница модели при этом говорит, что вариант по умолчанию (31M English) включает один голос с именем default. Источники расходятся в описании набора, поэтому проверяйте доступные голоса командой ollama show phonon для конкретного тега и не рассчитывайте, что каждый голос есть в каждой сборке.

Языковые варианты по блогу и странице модели:

Тег Язык Размер модели
phonon (31m-en, en) английский 31M
phonon:40m-en английский 40M
phonon:40m-fr (fr) французский 40M
phonon:40m-de (de) немецкий 40M
phonon:40m-es (es) испанский 40M
phonon:40m-pt (pt) португальский 40M
phonon:40m-multilingual (multilingual) все пять языков 40M

Русского языка среди вариантов нет: встроенный TTS Ollama русский текст не озвучивает. Для русского нужен внешний движок или облачный сервис. Ещё одна деталь из документации: цены, числа, символы, адреса почты и URL перед озвучкой разворачиваются в слова, поэтому $4.59 звучит как «4 dollars and 59 cents». Время и числовые даты читаются как написано — пишите даты словами (October 23), чтобы звучало естественно. По документации эмодзи, маркеры списков и символы markdown вроде * и # пропускаются, а страница модели предупреждает, что заголовки Markdown могут прозвучать вслух, поэтому подавайте в модель чистый текст.

Лицензии: Apache 2.0 и CC BY-NC 4.0

Лицензии различаются по чекпоинтам. 31M English выпущен под Apache 2.0 — коммерческое использование разрешено. Все 40M-чекпоинты — английский, французский, немецкий, испанский, португальский и мультиязычный — выпущены под CC BY-NC 4.0, которая ограничивает применение некоммерческими целями.

Практическое следствие: если проект коммерческий и нужен английский, берите 31M English. Если нужен французский, немецкий, испанский, португальский или мультиязычный режим в коммерческом продукте, лицензия 40M этого не позволяет — потребуется другой движок с подходящей лицензией. Для личных и исследовательских задач ограничение не мешает.

Таблица выбора способа озвучки

Критерий Встроенный Phonon Внешний движок (Bark, XTTS-v2) Облачный сервис
Язык английский, французский, немецкий, испанский, португальский, мультиязычный по документации движка по документации сервиса
Русский недоступен по документации движка по документации сервиса
Лицензия 31M — Apache 2.0; 40M — CC BY-NC 4.0 по документации движка по условиям сервиса
Платформа Apple Silicon Mac по документации движка браузер или API
Установка ollama pull phonon сборка окружения движка регистрация и ключ
Клонирование голоса не заявлено по документации движка по документации сервиса

Требования к железу, лицензии и тарифы внешних движков и облачных сервисов сверяйте с документацией конкретного движка или условиями сервиса. Для встроенного варианта всё проверяется командами из этой статьи.

Частые вопросы

Какая версия Ollama нужна для озвучки текста?
Документация и страница модели называют 0.40.9, анонс в блоге вендора — 0.40.11. Ставьте 0.40.11 или новее, чтобы речевые команды были доступны без сюрпризов.

Работает ли Phonon на Windows и Linux?
Речевые модели доступны для macOS. Поддержка Windows и Linux обозначена вендором как coming soon, поэтому встроенная озвучка на этих системах сейчас не запускается.

Можно ли озвучить русский текст через Ollama?
Среди языковых вариантов Phonon есть английский, французский, немецкий, испанский, португальский и мультиязычный чекпоинт. Русского среди них нет, поэтому для русской озвучки нужен внешний движок или облачный сервис.

Как сохранить озвучку в файл?
Перенаправьте вывод команды ollama run phonon "текст" > speech.wav. При перенаправлении Ollama пишет WAV-файл вместо воспроизведения, формат — 16 бит, моно, 24 кГц.

Можно ли использовать Phonon в коммерческом продукте?
31M English выпущен под Apache 2.0, коммерческое использование разрешено. Все 40M-чекпоинты под CC BY-NC 4.0 ограничены некоммерческими целями, поэтому для коммерции на этих языках нужен другой движок.

Читайте также

3 материала