diff --git a/docs/uk/providers/xiaomi.md b/docs/uk/providers/xiaomi.md
index a1e77e618..f49716a88 100644
--- a/docs/uk/providers/xiaomi.md
+++ b/docs/uk/providers/xiaomi.md
@@ -1,35 +1,34 @@
---
read_when:
- - Ви хочете використовувати моделі Xiaomi MiMo в OpenClaw
+ - Ви хочете моделі Xiaomi MiMo в OpenClaw
- Вам потрібно налаштувати `XIAOMI_API_KEY`
-summary: Використання моделей Xiaomi MiMo з OpenClaw
+summary: Використовуйте моделі Xiaomi MiMo з OpenClaw
title: Xiaomi MiMo
x-i18n:
- generated_at: "2026-04-23T23:06:06Z"
+ generated_at: "2026-04-25T08:51:56Z"
model: gpt-5.4
provider: openai
- source_hash: ae61547fa5864f0cd3e19465a8a7d6ff843f9534ab9c2dd39a86a3593cafaa8d
+ source_hash: 7781973c3a1d14101cdb0a8d1affe3fd076a968552ed2a8630a91a8947daeb3a
source_path: providers/xiaomi.md
workflow: 15
---
-Xiaomi MiMo — це API-платформа для моделей **MiMo**. OpenClaw використовує endpoint Xiaomi,
-сумісний з OpenAI, з автентифікацією через API key.
+Xiaomi MiMo — це API-платформа для моделей **MiMo**. OpenClaw використовує сумісний з OpenAI endpoint Xiaomi з автентифікацією за API-ключем.
-| Властивість | Значення |
-| ----------- | ------------------------------- |
-| Провайдер | `xiaomi` |
-| Auth | `XIAOMI_API_KEY` |
-| API | Сумісний з OpenAI |
-| Base URL | `https://api.xiaomimimo.com/v1` |
+| Властивість | Значення |
+| ----------- | ------------------------------ |
+| Постачальник | `xiaomi` |
+| Автентифікація | `XIAOMI_API_KEY` |
+| API | Сумісне з OpenAI |
+| Базова URL-адреса | `https://api.xiaomimimo.com/v1` |
## Початок роботи
-
- Створіть API key у [консолі Xiaomi MiMo](https://platform.xiaomimimo.com/#/console/api-keys).
+
+ Створіть API-ключ у [консолі Xiaomi MiMo](https://platform.xiaomimimo.com/#/console/api-keys).
-
+
```bash
openclaw onboard --auth-choice xiaomi-api-key
```
@@ -48,19 +47,53 @@ Xiaomi MiMo — це API-платформа для моделей **MiMo**. Open
-## Вбудований catalog
+## Вбудований каталог
-| Посилання на модель | Вхід | Контекст | Макс. вивід | Reasoning | Примітки |
-| ---------------------- | ----------- | --------- | ----------- | --------- | -------------- |
-| `xiaomi/mimo-v2-flash` | text | 262,144 | 8,192 | Ні | Типова модель |
-| `xiaomi/mimo-v2-pro` | text | 1,048,576 | 32,000 | Так | Великий контекст |
-| `xiaomi/mimo-v2-omni` | text, image | 262,144 | 32,000 | Так | Мультимодальна |
+| Посилання на модель | Вхідні дані | Контекст | Макс. вивід | Міркування | Примітки |
+| ----------------------- | ----------- | --------- | ----------- | ---------- | ------------- |
+| `xiaomi/mimo-v2-flash` | текст | 262,144 | 8,192 | Ні | Модель за замовчуванням |
+| `xiaomi/mimo-v2-pro` | текст | 1,048,576 | 32,000 | Так | Великий контекст |
+| `xiaomi/mimo-v2-omni` | текст, зображення | 262,144 | 32,000 | Так | Мультимодальна |
-Типове посилання на модель — `xiaomi/mimo-v2-flash`. Провайдер автоматично додається, коли задано `XIAOMI_API_KEY` або існує auth profile.
+Посилання на модель за замовчуванням — `xiaomi/mimo-v2-flash`. Постачальник додається автоматично, коли встановлено `XIAOMI_API_KEY` або існує профіль автентифікації.
-## Приклад config
+## Text-to-speech
+
+У комплектний plugin `xiaomi` також входить реєстрація Xiaomi MiMo як постачальника мовлення для `messages.tts`. Він викликає TTS-контракт chat-completions Xiaomi з текстом як повідомленням `assistant` і необов’язковими вказівками щодо стилю як повідомленням `user`.
+
+| Властивість | Значення |
+| ----------- | -------------------------------------- |
+| Ідентифікатор TTS | `xiaomi` (`mimo` alias) |
+| Автентифікація | `XIAOMI_API_KEY` |
+| API | `POST /v1/chat/completions` з `audio` |
+| За замовчуванням | `mimo-v2.5-tts`, голос `mimo_default` |
+| Вивід | MP3 за замовчуванням; WAV, якщо налаштовано |
+
+```json5
+{
+ messages: {
+ tts: {
+ auto: "always",
+ provider: "xiaomi",
+ providers: {
+ xiaomi: {
+ apiKey: "xiaomi_api_key",
+ model: "mimo-v2.5-tts",
+ voice: "mimo_default",
+ format: "mp3",
+ style: "Bright, natural, conversational tone.",
+ },
+ },
+ },
+ },
+}
+```
+
+Серед підтримуваних вбудованих голосів: `mimo_default`, `default_zh`, `default_en`, `Mia`, `Chloe`, `Milo` і `Dean`. `mimo-v2-tts` підтримується для старіших облікових записів MiMo TTS; за замовчуванням використовується поточна модель MiMo-V2.5 TTS. Для цілей голосових повідомлень, таких як Feishu і Telegram, OpenClaw перекодовує вивід Xiaomi у 48 кГц Opus за допомогою `ffmpeg` перед доставкою.
+
+## Приклад конфігурації
```json5
{
@@ -109,27 +142,27 @@ Xiaomi MiMo — це API-платформа для моделей **MiMo**. Open
```
-
- Провайдер `xiaomi` автоматично додається, коли `XIAOMI_API_KEY` задано у вашому середовищі або існує auth profile. Вам не потрібно вручну налаштовувати провайдера, якщо тільки ви не хочете перевизначити метадані моделі або base URL.
+
+ Постачальник `xiaomi` додається автоматично, коли `XIAOMI_API_KEY` встановлено у вашому середовищі або існує профіль автентифікації. Вам не потрібно вручну налаштовувати постачальника, якщо тільки ви не хочете перевизначити метадані моделі або базову URL-адресу.
-
- - **mimo-v2-flash** — легка й швидка, ідеальна для загальних текстових завдань. Підтримка reasoning відсутня.
- - **mimo-v2-pro** — підтримує reasoning з контекстним вікном на 1M токенів для роботи з довгими документами.
- - **mimo-v2-omni** — мультимодальна модель із підтримкою reasoning, яка приймає і текст, і зображення.
+
+ - **mimo-v2-flash** — легка й швидка модель, ідеальна для текстових завдань загального призначення. Підтримка міркування відсутня.
+ - **mimo-v2-pro** — підтримує міркування з контекстним вікном на 1M токенів для навантажень із довгими документами.
+ - **mimo-v2-omni** — мультимодальна модель із підтримкою міркування, яка приймає як текстові, так і графічні вхідні дані.
- Усі моделі використовують префікс `xiaomi/` (наприклад `xiaomi/mimo-v2-pro`).
+ Усі моделі використовують префікс `xiaomi/` (наприклад, `xiaomi/mimo-v2-pro`).
-
- - Якщо моделі не з’являються, переконайтеся, що `XIAOMI_API_KEY` задано й він валідний.
- - Коли Gateway працює як daemon, переконайтеся, що ключ доступний цьому процесу (наприклад у `~/.openclaw/.env` або через `env.shellEnv`).
+
+ - Якщо моделі не з’являються, переконайтеся, що `XIAOMI_API_KEY` встановлено й він дійсний.
+ - Коли Gateway працює як демон, переконайтеся, що ключ доступний для цього процесу (наприклад, у `~/.openclaw/.env` або через `env.shellEnv`).
- Ключі, задані лише в інтерактивному shell, не видимі процесам gateway, якими керує daemon. Для постійної доступності використовуйте `~/.openclaw/.env` або config `env.shellEnv`.
+ Ключі, встановлені лише у вашій інтерактивній оболонці, не видимі для процесів Gateway, якими керує демон. Для постійної доступності використовуйте `~/.openclaw/.env` або конфігурацію `env.shellEnv`.
@@ -139,12 +172,12 @@ Xiaomi MiMo — це API-платформа для моделей **MiMo**. Open
- Вибір провайдерів, посилань на моделі та поведінки failover.
+ Вибір постачальників, посилань на моделі та поведінки резервного перемикання.
Повний довідник конфігурації OpenClaw.
- Панель Xiaomi MiMo і керування API key.
+ Панель керування Xiaomi MiMo та керування API-ключами.
diff --git a/docs/uk/tools/tts.md b/docs/uk/tools/tts.md
index 2f989da8b..3aa902b27 100644
--- a/docs/uk/tools/tts.md
+++ b/docs/uk/tools/tts.md
@@ -6,44 +6,45 @@ read_when:
summary: Перетворення тексту на мовлення (TTS) для вихідних відповідей
title: Перетворення тексту на мовлення
x-i18n:
- generated_at: "2026-04-25T08:32:13Z"
+ generated_at: "2026-04-25T08:51:54Z"
model: gpt-5.4
provider: openai
- source_hash: b63be2c606754b3ed334c394fb2ea8da3698ca8bfcbe8c136a5b710cb9c52768
+ source_hash: 14a2d014850395add532faef86659acae7fd6a8a5757f9dd7dac606c0780d278
source_path: tools/tts.md
workflow: 15
---
-OpenClaw може перетворювати вихідні відповіді на аудіо за допомогою ElevenLabs, Google Gemini, Gradium, Microsoft, MiniMax, OpenAI, Vydra або xAI.
+OpenClaw може перетворювати вихідні відповіді на аудіо за допомогою ElevenLabs, Google Gemini, Gradium, Microsoft, MiniMax, OpenAI, Vydra, xAI або Xiaomi MiMo.
Це працює всюди, де OpenClaw може надсилати аудіо.
## Підтримувані сервіси
- **ElevenLabs** (основний або резервний постачальник)
- **Google Gemini** (основний або резервний постачальник; використовує Gemini API TTS)
-- **Gradium** (основний або резервний постачальник; підтримує вихід у форматі голосових повідомлень і телефонії)
+- **Gradium** (основний або резервний постачальник; підтримує вихід voice-note і telephony)
- **Microsoft** (основний або резервний постачальник; поточна вбудована реалізація використовує `node-edge-tts`)
- **MiniMax** (основний або резервний постачальник; використовує API T2A v2)
-- **OpenAI** (основний або резервний постачальник; також використовується для зведень)
+- **OpenAI** (основний або резервний постачальник; також використовується для підсумків)
- **Vydra** (основний або резервний постачальник; спільний постачальник зображень, відео та мовлення)
- **xAI** (основний або резервний постачальник; використовує xAI TTS API)
+- **Xiaomi MiMo** (основний або резервний постачальник; використовує MiMo TTS через chat completions Xiaomi)
### Примітки щодо мовлення Microsoft
-Поточний вбудований постачальник мовлення Microsoft використовує онлайн-службу
+Поточний вбудований постачальник мовлення Microsoft використовує онлайн-сервіс
нейронного TTS Microsoft Edge через бібліотеку `node-edge-tts`. Це хостинговий сервіс (не
локальний), він використовує кінцеві точки Microsoft і не потребує API-ключа.
-`node-edge-tts` надає параметри конфігурації мовлення та формати виводу, але
-сервіс підтримує не всі параметри. Старі конфігурації та вхідні директиви
-з `edge` усе ще працюють і нормалізуються до `microsoft`.
+`node-edge-tts` надає параметри конфігурації мовлення та вихідні формати, але
+сервіс підтримує не всі параметри. Застаріла конфігурація та вхідні директиви
+з використанням `edge` усе ще працюють і нормалізуються до `microsoft`.
-Оскільки цей шлях використовує публічний вебсервіс без опублікованої SLA або квоти,
-ставтеся до нього як до best-effort. Якщо вам потрібні гарантовані ліміти й підтримка, використовуйте OpenAI
+Оскільки цей шлях використовує загальнодоступний вебсервіс без опублікованих SLA або квот,
+вважайте його best-effort. Якщо вам потрібні гарантовані ліміти та підтримка, використовуйте OpenAI
або ElevenLabs.
## Необов’язкові ключі
-Якщо ви хочете використовувати OpenAI, ElevenLabs, Google Gemini, Gradium, MiniMax, Vydra або xAI:
+Якщо ви хочете використовувати OpenAI, ElevenLabs, Google Gemini, Gradium, MiniMax, Vydra, xAI або Xiaomi MiMo:
- `ELEVENLABS_API_KEY` (або `XI_API_KEY`)
- `GEMINI_API_KEY` (або `GOOGLE_API_KEY`)
@@ -52,23 +53,25 @@ OpenClaw може перетворювати вихідні відповіді
- `OPENAI_API_KEY`
- `VYDRA_API_KEY`
- `XAI_API_KEY`
+- `XIAOMI_API_KEY`
-Для мовлення Microsoft API-ключ **не** потрібен.
+Мовлення Microsoft **не** потребує API-ключа.
Якщо налаштовано кілька постачальників, спочатку використовується вибраний постачальник, а решта слугують резервними варіантами.
-Автозведення використовує налаштовану `summaryModel` (або `agents.defaults.model.primary`),
-тому, якщо ви вмикаєте зведення, цей постачальник також має бути автентифікований.
+Автоматичний підсумок використовує налаштований `summaryModel` (або `agents.defaults.model.primary`),
+тому якщо ви вмикаєте підсумки, цей постачальник також має бути автентифікований.
## Посилання на сервіси
- [Посібник OpenAI Text-to-Speech](https://platform.openai.com/docs/guides/text-to-speech)
-- [Довідник API OpenAI Audio](https://platform.openai.com/docs/api-reference/audio)
+- [Довідник OpenAI Audio API](https://platform.openai.com/docs/api-reference/audio)
- [ElevenLabs Text to Speech](https://elevenlabs.io/docs/api-reference/text-to-speech)
- [Автентифікація ElevenLabs](https://elevenlabs.io/docs/api-reference/authentication)
- [Gradium](/uk/providers/gradium)
- [API MiniMax T2A v2](https://platform.minimaxi.com/document/T2A%20V2)
+- [Синтез мовлення Xiaomi MiMo](/uk/providers/xiaomi#text-to-speech)
- [node-edge-tts](https://github.com/SchneeHertz/node-edge-tts)
-- [Формати виводу Microsoft Speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
+- [Вихідні формати Microsoft Speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
- [xAI Text to Speech](https://docs.x.ai/developers/rest-api-reference/inference/voice#text-to-speech-rest)
## Чи ввімкнено це за замовчуванням?
@@ -76,13 +79,13 @@ OpenClaw може перетворювати вихідні відповіді
Ні. Автоматичний TTS **вимкнено** за замовчуванням. Увімкніть його в конфігурації через
`messages.tts.auto` або локально через `/tts on`.
-Якщо `messages.tts.provider` не задано, OpenClaw вибирає першого налаштованого
-постачальника мовлення в порядку авто-вибору реєстру.
+Коли `messages.tts.provider` не задано, OpenClaw вибирає першого налаштованого
+постачальника мовлення в порядку автоматичного вибору реєстру.
## Конфігурація
-Конфігурація TTS розміщена в `messages.tts` у `openclaw.json`.
-Повна схема наведена в [Конфігурації Gateway](/uk/gateway/configuration).
+Конфігурація TTS розміщується в `messages.tts` у `openclaw.json`.
+Повна схема наведена в [Конфігурація Gateway](/uk/gateway/configuration).
### Мінімальна конфігурація (увімкнення + постачальник)
@@ -97,7 +100,7 @@ OpenClaw може перетворювати вихідні відповіді
}
```
-### OpenAI як основний, ElevenLabs як резервний
+### OpenAI як основний з ElevenLabs як резервним
```json5
{
@@ -205,8 +208,8 @@ OpenClaw може перетворювати вихідні відповіді
}
```
-Google Gemini TTS використовує шлях API-ключа Gemini. Ключ API Google Cloud Console,
-обмежений Gemini API, тут є дійсним, і це той самий тип ключа, який використовується
+Google Gemini TTS використовує шлях API-ключа Gemini. Тут дійсний API-ключ Google Cloud Console,
+обмежений Gemini API, і це той самий тип ключа, який використовується
вбудованим постачальником генерації зображень Google. Порядок визначення:
`messages.tts.providers.google.apiKey` -> `models.providers.google.apiKey` ->
`GEMINI_API_KEY` -> `GOOGLE_API_KEY`.
@@ -236,7 +239,35 @@ Google Gemini TTS використовує шлях API-ключа Gemini. Кл
xAI TTS використовує той самий шлях `XAI_API_KEY`, що й вбудований постачальник моделей Grok.
Порядок визначення: `messages.tts.providers.xai.apiKey` -> `XAI_API_KEY`.
Поточні доступні голоси: `ara`, `eve`, `leo`, `rex`, `sal` і `una`; `eve` —
-голос за замовчуванням. `language` приймає тег BCP-47 або `auto`.
+значення за замовчуванням. `language` приймає тег BCP-47 або `auto`.
+
+### Xiaomi MiMo як основний
+
+```json5
+{
+ messages: {
+ tts: {
+ auto: "always",
+ provider: "xiaomi",
+ providers: {
+ xiaomi: {
+ apiKey: "xiaomi_api_key",
+ baseUrl: "https://api.xiaomimimo.com/v1",
+ model: "mimo-v2.5-tts",
+ voice: "mimo_default",
+ format: "mp3",
+ style: "Bright, natural, conversational tone.",
+ },
+ },
+ },
+ },
+}
+```
+
+Xiaomi MiMo TTS використовує той самий шлях `XIAOMI_API_KEY`, що й вбудований постачальник моделей Xiaomi.
+Ідентифікатор постачальника мовлення — `xiaomi`; `mimo` також приймається як псевдонім.
+Цільовий текст надсилається як повідомлення асистента відповідно до контракту TTS Xiaomi.
+Необов’язковий `style` надсилається як інструкція користувача і не озвучується.
### OpenRouter як основний
@@ -327,7 +358,7 @@ OpenRouter TTS використовує той самий шлях `OPENROUTER_A
}
```
-### Вимкнення автозведення для довгих відповідей
+### Вимкнення автоматичного підсумку для довгих відповідей
```json5
{
@@ -350,46 +381,46 @@ OpenRouter TTS використовує той самий шлях `OPENROUTER_A
- `auto`: режим автоматичного TTS (`off`, `always`, `inbound`, `tagged`).
- `inbound` надсилає аудіо лише після вхідного голосового повідомлення.
- `tagged` надсилає аудіо лише тоді, коли відповідь містить директиви `[[tts:key=value]]` або блок `[[tts:text]]...[[/tts:text]]`.
-- `enabled`: застарілий перемикач (doctor переносить його до `auto`).
+- `enabled`: застарілий перемикач (doctor мігрує його до `auto`).
- `mode`: `"final"` (за замовчуванням) або `"all"` (включає відповіді інструментів/блоків).
-- `provider`: ідентифікатор постачальника мовлення, наприклад `"elevenlabs"`, `"google"`, `"gradium"`, `"microsoft"`, `"minimax"`, `"openai"`, `"vydra"` або `"xai"` (резервне перемикання відбувається автоматично).
-- Якщо `provider` **не задано**, OpenClaw використовує першого налаштованого постачальника мовлення в порядку авто-вибору реєстру.
-- Застарілу конфігурацію `provider: "edge"` виправляє `openclaw doctor --fix`, переписуючи її на
- `provider: "microsoft"`.
-- `summaryModel`: необов’язкова недорога модель для автозведення; за замовчуванням використовується `agents.defaults.model.primary`.
+- `provider`: ідентифікатор постачальника мовлення, наприклад `"elevenlabs"`, `"google"`, `"gradium"`, `"microsoft"`, `"minimax"`, `"openai"`, `"vydra"`, `"xai"` або `"xiaomi"` (резервне перемикання відбувається автоматично).
+- Якщо `provider` **не задано**, OpenClaw використовує першого налаштованого постачальника мовлення в порядку автоматичного вибору реєстру.
+- Застаріла конфігурація `provider: "edge"` виправляється командою `openclaw doctor --fix` і
+ переписується на `provider: "microsoft"`.
+- `summaryModel`: необов’язкова недорога модель для автоматичного підсумку; за замовчуванням використовується `agents.defaults.model.primary`.
- Приймає `provider/model` або псевдонім налаштованої моделі.
-- `modelOverrides`: дозволяє моделі видавати директиви TTS (увімкнено за замовчуванням).
+- `modelOverrides`: дозволяє моделі виводити директиви TTS (увімкнено за замовчуванням).
- `allowProvider` за замовчуванням має значення `false` (перемикання постачальника вмикається явно).
-- `providers.`: параметри, що належать постачальнику, з ключем за ідентифікатором постачальника мовлення.
-- Застарілі прямі блоки постачальників (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) виправляються через `openclaw doctor --fix`; у збереженій конфігурації слід використовувати `messages.tts.providers.`.
-- Застарілий `messages.tts.providers.edge` також виправляється через `openclaw doctor --fix`; у збереженій конфігурації слід використовувати `messages.tts.providers.microsoft`.
-- `maxTextLength`: жорстке обмеження для вхідного тексту TTS (символи). Якщо його перевищено, `/tts audio` завершується з помилкою.
+- `providers.`: налаштування, що належать постачальнику, із ключем за ідентифікатором постачальника мовлення.
+- Застарілі прямі блоки постачальників (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) виправляються командою `openclaw doctor --fix`; у збереженій конфігурації слід використовувати `messages.tts.providers.`.
+- Застарілий `messages.tts.providers.edge` також виправляється командою `openclaw doctor --fix`; у збереженій конфігурації слід використовувати `messages.tts.providers.microsoft`.
+- `maxTextLength`: жорстке обмеження для вхідного тексту TTS (символи). `/tts audio` завершується помилкою, якщо ліміт перевищено.
- `timeoutMs`: тайм-аут запиту (мс).
-- `prefsPath`: перевизначає локальний шлях до JSON-файлу налаштувань (постачальник/ліміт/зведення).
-- Значення `apiKey` можуть братися зі змінних середовища (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `GEMINI_API_KEY`/`GOOGLE_API_KEY`, `GRADIUM_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`, `VYDRA_API_KEY`, `XAI_API_KEY`).
+- `prefsPath`: перевизначає локальний шлях до JSON-файлу prefs (постачальник/ліміт/підсумок).
+- Значення `apiKey` беруться з env vars (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `GEMINI_API_KEY`/`GOOGLE_API_KEY`, `GRADIUM_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`, `VYDRA_API_KEY`, `XAI_API_KEY`, `XIAOMI_API_KEY`), якщо не задані явно.
- `providers.elevenlabs.baseUrl`: перевизначає базовий URL API ElevenLabs.
- `providers.openai.baseUrl`: перевизначає кінцеву точку OpenAI TTS.
- Порядок визначення: `messages.tts.providers.openai.baseUrl` -> `OPENAI_TTS_BASE_URL` -> `https://api.openai.com/v1`
- - Значення, відмінні від стандартного, розглядаються як OpenAI-сумісні кінцеві точки TTS, тому допускаються власні назви моделей і голосів.
+ - Значення, відмінні від типових, розглядаються як OpenAI-сумісні кінцеві точки TTS, тому допускаються власні назви моделей і голосів.
- `providers.elevenlabs.voiceSettings`:
- `stability`, `similarityBoost`, `style`: `0..1`
- `useSpeakerBoost`: `true|false`
- - `speed`: `0.5..2.0` (1.0 = звичайна швидкість)
+ - `speed`: `0.5..2.0` (1.0 = нормально)
- `providers.elevenlabs.applyTextNormalization`: `auto|on|off`
-- `providers.elevenlabs.languageCode`: дволітерний ISO 639-1 (наприклад, `en`, `de`)
-- `providers.elevenlabs.seed`: ціле число `0..4294967295` (best-effort детермінізм)
+- `providers.elevenlabs.languageCode`: 2-літерний ISO 639-1 (наприклад, `en`, `de`)
+- `providers.elevenlabs.seed`: ціле число `0..4294967295` (best-effort determinism)
- `providers.minimax.baseUrl`: перевизначає базовий URL API MiniMax (за замовчуванням `https://api.minimax.io`, env: `MINIMAX_API_HOST`).
- `providers.minimax.model`: модель TTS (за замовчуванням `speech-2.8-hd`, env: `MINIMAX_TTS_MODEL`).
- `providers.minimax.voiceId`: ідентифікатор голосу (за замовчуванням `English_expressive_narrator`, env: `MINIMAX_TTS_VOICE_ID`).
- `providers.minimax.speed`: швидкість відтворення `0.5..2.0` (за замовчуванням 1.0).
- `providers.minimax.vol`: гучність `(0, 10]` (за замовчуванням 1.0; має бути більшою за 0).
-- `providers.minimax.pitch`: ціле зміщення тону `-12..12` (за замовчуванням 0). Дробові значення обрізаються перед викликом MiniMax T2A, оскільки API відхиляє нецілі значення тону.
+- `providers.minimax.pitch`: цілочисельне зміщення тону `-12..12` (за замовчуванням 0). Дробові значення відкидаються перед викликом MiniMax T2A, оскільки API не приймає нецілі значення тону.
- `providers.google.model`: модель Gemini TTS (за замовчуванням `gemini-3.1-flash-tts-preview`).
- `providers.google.voiceName`: назва вбудованого голосу Gemini (за замовчуванням `Kore`; також приймається `voice`).
-- `providers.google.audioProfile`: підказка стилю природною мовою, що додається перед озвучуваним текстом.
-- `providers.google.speakerName`: необов’язкова мітка мовця, яка додається перед озвучуваним текстом, коли ваш запит TTS використовує іменованого мовця.
-- `providers.google.baseUrl`: перевизначає базовий URL Gemini API. Дозволено лише `https://generativelanguage.googleapis.com`.
- - Якщо `messages.tts.providers.google.apiKey` пропущено, TTS може повторно використовувати `models.providers.google.apiKey` до переходу на резерв через env.
+- `providers.google.audioProfile`: підказка зі стилем природною мовою, що додається перед озвучуваним текстом.
+- `providers.google.speakerName`: необов’язкова мітка мовця, що додається перед озвучуваним текстом, коли ваш TTS prompt використовує іменованого мовця.
+- `providers.google.baseUrl`: перевизначає базовий URL Gemini API. Приймається лише `https://generativelanguage.googleapis.com`.
+ - Якщо `messages.tts.providers.google.apiKey` пропущено, TTS може повторно використати `models.providers.google.apiKey` перед переходом до env.
- `providers.gradium.baseUrl`: перевизначає базовий URL API Gradium (за замовчуванням `https://api.gradium.ai`).
- `providers.gradium.voiceId`: ідентифікатор голосу Gradium (за замовчуванням Emma, `YTpq7expH9539ERJ`).
- `providers.xai.apiKey`: API-ключ xAI TTS (env: `XAI_API_KEY`).
@@ -397,38 +428,44 @@ OpenRouter TTS використовує той самий шлях `OPENROUTER_A
- `providers.xai.voiceId`: ідентифікатор голосу xAI (за замовчуванням `eve`; поточні доступні голоси: `ara`, `eve`, `leo`, `rex`, `sal`, `una`).
- `providers.xai.language`: код мови BCP-47 або `auto` (за замовчуванням `en`).
- `providers.xai.responseFormat`: `mp3`, `wav`, `pcm`, `mulaw` або `alaw` (за замовчуванням `mp3`).
-- `providers.xai.speed`: перевизначення швидкості, специфічне для постачальника.
+- `providers.xai.speed`: перевизначення швидкості на рівні постачальника.
+- `providers.xiaomi.apiKey`: API-ключ Xiaomi MiMo (env: `XIAOMI_API_KEY`).
+- `providers.xiaomi.baseUrl`: перевизначає базовий URL API Xiaomi MiMo (за замовчуванням `https://api.xiaomimimo.com/v1`, env: `XIAOMI_BASE_URL`).
+- `providers.xiaomi.model`: модель TTS (за замовчуванням `mimo-v2.5-tts`, env: `XIAOMI_TTS_MODEL`; також підтримується `mimo-v2-tts`).
+- `providers.xiaomi.voice`: ідентифікатор голосу MiMo (за замовчуванням `mimo_default`, env: `XIAOMI_TTS_VOICE`).
+- `providers.xiaomi.format`: `mp3` або `wav` (за замовчуванням `mp3`, env: `XIAOMI_TTS_FORMAT`).
+- `providers.xiaomi.style`: необов’язкова інструкція щодо стилю природною мовою, яка надсилається як повідомлення користувача; вона не озвучується.
- `providers.openrouter.apiKey`: API-ключ OpenRouter (env: `OPENROUTER_API_KEY`; може повторно використовувати `models.providers.openrouter.apiKey`).
- `providers.openrouter.baseUrl`: перевизначає базовий URL OpenRouter TTS (за замовчуванням `https://openrouter.ai/api/v1`; застарілий `https://openrouter.ai/v1` нормалізується).
- `providers.openrouter.model`: ідентифікатор моделі OpenRouter TTS (за замовчуванням `hexgrad/kokoro-82m`; також приймається `modelId`).
- `providers.openrouter.voice`: ідентифікатор голосу, специфічний для постачальника (за замовчуванням `af_alloy`; також приймається `voiceId`).
- `providers.openrouter.responseFormat`: `mp3` або `pcm` (за замовчуванням `mp3`).
-- `providers.openrouter.speed`: перевизначення швидкості, специфічне для постачальника.
+- `providers.openrouter.speed`: перевизначення швидкості на рівні постачальника.
- `providers.microsoft.enabled`: дозволяє використання мовлення Microsoft (за замовчуванням `true`; без API-ключа).
- `providers.microsoft.voice`: назва нейронного голосу Microsoft (наприклад, `en-US-MichelleNeural`).
- `providers.microsoft.lang`: код мови (наприклад, `en-US`).
-- `providers.microsoft.outputFormat`: формат виводу Microsoft (наприклад, `audio-24khz-48kbitrate-mono-mp3`).
- - Дійсні значення див. у форматах виводу Microsoft Speech; не всі формати підтримуються вбудованим транспортом на базі Edge.
-- `providers.microsoft.rate` / `providers.microsoft.pitch` / `providers.microsoft.volume`: рядки з відсотками (наприклад, `+10%`, `-5%`).
+- `providers.microsoft.outputFormat`: вихідний формат Microsoft (наприклад, `audio-24khz-48kbitrate-mono-mp3`).
+ - Дійсні значення див. у Microsoft Speech output formats; не всі формати підтримуються вбудованим транспортом на базі Edge.
+- `providers.microsoft.rate` / `providers.microsoft.pitch` / `providers.microsoft.volume`: рядки у відсотках (наприклад, `+10%`, `-5%`).
- `providers.microsoft.saveSubtitles`: записує JSON-субтитри поруч з аудіофайлом.
-- `providers.microsoft.proxy`: URL проксі для запитів мовлення Microsoft.
+- `providers.microsoft.proxy`: URL проксі для запитів до мовлення Microsoft.
- `providers.microsoft.timeoutMs`: перевизначення тайм-ауту запиту (мс).
-- `edge.*`: застарілий псевдонім для тих самих параметрів Microsoft. Виконайте
+- `edge.*`: застарілий псевдонім для тих самих налаштувань Microsoft. Виконайте
`openclaw doctor --fix`, щоб переписати збережену конфігурацію на `providers.microsoft`.
-## Керовані моделлю перевизначення (увімкнено за замовчуванням)
+## Перевизначення, керовані моделлю (увімкнено за замовчуванням)
-За замовчуванням модель **може** видавати директиви TTS для однієї відповіді.
+За замовчуванням модель **може** виводити директиви TTS для однієї відповіді.
Коли `messages.tts.auto` має значення `tagged`, ці директиви потрібні для запуску аудіо.
-Коли це ввімкнено, модель може видавати директиви `[[tts:...]]` для перевизначення голосу
+Коли цю функцію ввімкнено, модель може виводити директиви `[[tts:...]]` для перевизначення голосу
для однієї відповіді, а також необов’язковий блок `[[tts:text]]...[[/tts:text]]`, щоб
-надати виразні теги (сміх, підказки для співу тощо), які мають з’являтися лише в
+додати виразні теги (сміх, підказки для співу тощо), які мають з’являтися лише в
аудіо.
-Директиви `provider=...` ігноруються, якщо не задано `modelOverrides.allowProvider: true`.
+Директиви `provider=...` ігноруються, якщо `modelOverrides.allowProvider: true` не встановлено.
-Приклад корисного навантаження відповіді:
+Приклад payload відповіді:
```
Here you go.
@@ -439,17 +476,17 @@ Here you go.
Доступні ключі директив (коли ввімкнено):
-- `provider` (ідентифікатор зареєстрованого постачальника мовлення, наприклад `openai`, `elevenlabs`, `google`, `gradium`, `minimax`, `microsoft`, `vydra` або `xai`; потребує `allowProvider: true`)
-- `voice` (голос OpenAI або Gradium), `voiceName` / `voice_name` / `google_voice` (голос Google) або `voiceId` (ElevenLabs / Gradium / MiniMax / xAI)
-- `model` (модель OpenAI TTS, ідентифікатор моделі ElevenLabs або модель MiniMax) або `google_model` (модель Google TTS)
+- `provider` (ідентифікатор зареєстрованого постачальника мовлення, наприклад `openai`, `elevenlabs`, `google`, `gradium`, `minimax`, `microsoft`, `vydra`, `xai` або `xiaomi`; потребує `allowProvider: true`)
+- `voice` (голос OpenAI, Gradium або Xiaomi), `voiceName` / `voice_name` / `google_voice` (голос Google) або `voiceId` (ElevenLabs / Gradium / MiniMax / xAI)
+- `model` (модель OpenAI TTS, ідентифікатор моделі ElevenLabs, модель MiniMax або модель Xiaomi MiMo TTS) або `google_model` (модель Google TTS)
- `stability`, `similarityBoost`, `style`, `speed`, `useSpeakerBoost`
- `vol` / `volume` (гучність MiniMax, 0-10)
-- `pitch` (цілий тон MiniMax, від -12 до 12; дробові значення обрізаються перед запитом до MiniMax)
+- `pitch` (цілочисельний тон MiniMax, від -12 до 12; дробові значення відкидаються перед запитом MiniMax)
- `applyTextNormalization` (`auto|on|off`)
- `languageCode` (ISO 639-1)
- `seed`
-Вимкнення всіх перевизначень моделі:
+Вимкнути всі перевизначення моделі:
```json5
{
@@ -463,7 +500,7 @@ Here you go.
}
```
-Необов’язковий список дозволів (увімкнення перемикання постачальника зі збереженням можливості налаштовувати інші параметри):
+Необов’язковий allowlist (увімкнути перемикання постачальника, зберігши можливість налаштовувати інші параметри):
```json5
{
@@ -479,79 +516,80 @@ Here you go.
}
```
-## Налаштування для окремого користувача
+## Налаштування для окремих користувачів
Команди зі слешем записують локальні перевизначення до `prefsPath` (за замовчуванням:
`~/.openclaw/settings/tts.json`, можна перевизначити через `OPENCLAW_TTS_PREFS` або
`messages.tts.prefsPath`).
-Збережені поля:
+Поля, що зберігаються:
- `enabled`
- `provider`
-- `maxLength` (поріг зведення; за замовчуванням 1500 символів)
+- `maxLength` (поріг підсумку; за замовчуванням 1500 символів)
- `summarize` (за замовчуванням `true`)
Вони перевизначають `messages.tts.*` для цього хоста.
-## Формати виводу (фіксовані)
+## Вихідні формати (фіксовані)
-- **Feishu / Matrix / Telegram / WhatsApp**: відповіді голосовими повідомленнями віддають перевагу Opus (`opus_48000_64` від ElevenLabs, `opus` від OpenAI).
+- **Feishu / Matrix / Telegram / WhatsApp**: для відповідей voice-note перевага надається Opus (`opus_48000_64` від ElevenLabs, `opus` від OpenAI).
- 48 кГц / 64 кбіт/с — хороший компроміс для голосових повідомлень.
-- **Feishu**: коли відповідь голосовим повідомленням створюється як MP3/WAV/M4A або в іншому
- імовірному форматі аудіофайлу, плагін Feishu перекодовує її в 48 кГц Ogg/Opus за допомогою
+- **Feishu**: коли відповідь voice-note створюється як MP3/WAV/M4A або інший
+ імовірний аудіофайл, плагін Feishu перекодовує її в 48 кГц Ogg/Opus за допомогою
`ffmpeg` перед надсиланням нативної бульбашки `audio`. Якщо перетворення не вдається, Feishu
отримує оригінальний файл як вкладення.
- **Інші канали**: MP3 (`mp3_44100_128` від ElevenLabs, `mp3` від OpenAI).
- - 44,1 кГц / 128 кбіт/с — стандартний баланс для чіткості мовлення.
-- **MiniMax**: MP3 (модель `speech-2.8-hd`, частота дискретизації 32 кГц) для звичайних аудіовкладень. Для цілей голосових повідомлень, таких як Feishu і Telegram, OpenClaw перекодовує MP3 від MiniMax у 48 кГц Opus за допомогою `ffmpeg` перед доставкою.
-- **Google Gemini**: Gemini API TTS повертає необроблений 24 кГц PCM. OpenClaw обгортає його у WAV для аудіовкладень і повертає PCM напряму для Talk/телефонії. Нативний формат голосових повідомлень Opus цим шляхом не підтримується.
-- **Gradium**: WAV для аудіовкладень, Opus для цілей голосових повідомлень і `ulaw_8000` на 8 кГц для телефонії.
-- **xAI**: MP3 за замовчуванням; `responseFormat` може бути `mp3`, `wav`, `pcm`, `mulaw` або `alaw`. OpenClaw використовує пакетну REST-кінцеву точку xAI TTS і повертає завершене аудіовкладення; потоковий TTS WebSocket xAI цим шляхом постачальника не використовується. Нативний формат голосових повідомлень Opus цим шляхом не підтримується.
+ - 44,1 кГц / 128 кбіт/с — типовий баланс для чіткості мовлення.
+- **MiniMax**: MP3 (модель `speech-2.8-hd`, частота дискретизації 32 кГц) для звичайних аудіовкладень. Для цілей voice-note, таких як Feishu і Telegram, OpenClaw перекодовує MP3 від MiniMax у 48 кГц Opus за допомогою `ffmpeg` перед доставленням.
+- **Xiaomi MiMo**: MP3 за замовчуванням або WAV, якщо налаштовано. Для цілей voice-note, таких як Feishu і Telegram, OpenClaw перекодовує вихід Xiaomi у 48 кГц Opus за допомогою `ffmpeg` перед доставленням.
+- **Google Gemini**: Gemini API TTS повертає необроблений PCM 24 кГц. OpenClaw обгортає його у WAV для аудіовкладень і повертає PCM безпосередньо для Talk/telephony. Нативний формат voice-note Opus цим шляхом не підтримується.
+- **Gradium**: WAV для аудіовкладень, Opus для цілей voice-note і `ulaw_8000` на 8 кГц для telephony.
+- **xAI**: MP3 за замовчуванням; `responseFormat` може бути `mp3`, `wav`, `pcm`, `mulaw` або `alaw`. OpenClaw використовує пакетну REST-кінцеву точку TTS від xAI і повертає завершене аудіовкладення; потоковий TTS WebSocket від xAI не використовується цим шляхом постачальника. Нативний формат voice-note Opus цим шляхом не підтримується.
- **Microsoft**: використовує `microsoft.outputFormat` (за замовчуванням `audio-24khz-48kbitrate-mono-mp3`).
- Вбудований транспорт приймає `outputFormat`, але сервіс підтримує не всі формати.
- - Значення формату виводу відповідають форматам виводу Microsoft Speech (включно з Ogg/WebM Opus).
+ - Значення вихідного формату відповідають Microsoft Speech output formats (включно з Ogg/WebM Opus).
- Telegram `sendVoice` приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам
потрібні гарантовані голосові повідомлення Opus.
- - Якщо налаштований формат виводу Microsoft не спрацьовує, OpenClaw повторює спробу з MP3.
+ - Якщо налаштований вихідний формат Microsoft не спрацьовує, OpenClaw повторює спробу з MP3.
-Формати виводу OpenAI/ElevenLabs фіксовані для кожного каналу (див. вище).
+Вихідні формати OpenAI/ElevenLabs фіксовані для кожного каналу (див. вище).
## Поведінка автоматичного TTS
-Коли цю функцію ввімкнено, OpenClaw:
+Коли функцію ввімкнено, OpenClaw:
- пропускає TTS, якщо відповідь уже містить медіа або директиву `MEDIA:`.
- пропускає дуже короткі відповіді (< 10 символів).
-- створює зведення для довгих відповідей, якщо це ввімкнено, за допомогою `agents.defaults.model.primary` (або `summaryModel`).
+- підсумовує довгі відповіді, коли це ввімкнено, за допомогою `agents.defaults.model.primary` (або `summaryModel`).
- додає згенероване аудіо до відповіді.
-Якщо відповідь перевищує `maxLength`, а зведення вимкнене (або немає API-ключа для
-моделі зведення), аудіо
-пропускається і надсилається звичайна текстова відповідь.
+Якщо відповідь перевищує `maxLength`, а підсумок вимкнено (або немає API-ключа для
+моделі підсумку), аудіо
+пропускається, і надсилається звичайна текстова відповідь.
## Схема потоку
```
-Reply -> TTS enabled?
- no -> send text
- yes -> has media / MEDIA: / short?
- yes -> send text
- no -> length > limit?
- no -> TTS -> attach audio
- yes -> summary enabled?
- no -> send text
- yes -> summarize (summaryModel or agents.defaults.model.primary)
- -> TTS -> attach audio
+Відповідь -> TTS увімкнено?
+ ні -> надіслати текст
+ так -> є медіа / MEDIA: / коротко?
+ так -> надіслати текст
+ ні -> довжина > ліміт?
+ ні -> TTS -> прикріпити аудіо
+ так -> підсумок увімкнено?
+ ні -> надіслати текст
+ так -> підсумувати (`summaryModel` або `agents.defaults.model.primary`)
+ -> TTS -> прикріпити аудіо
```
## Використання команд зі слешем
Є одна команда: `/tts`.
-Докладніше про ввімкнення див. у [Командах зі слешем](/uk/tools/slash-commands).
+Деталі ввімкнення див. у [Команди зі слешем](/uk/tools/slash-commands).
-Примітка для Discord: `/tts` — це вбудована команда Discord, тому OpenClaw реєструє
-там `/voice` як нативну команду. Текстовий формат `/tts ...` усе одно працює.
+Примітка щодо Discord: `/tts` — це вбудована команда Discord, тому OpenClaw реєструє
+там `/voice` як нативну команду. Текстова команда `/tts ...` усе одно працює.
```
/tts off
@@ -565,28 +603,28 @@ Reply -> TTS enabled?
Примітки:
-- Команди вимагають авторизованого відправника (правила allowlist/owner усе ще застосовуються).
+- Команди потребують авторизованого відправника (правила allowlist/owner також застосовуються).
- Має бути ввімкнено `commands.text` або реєстрацію нативних команд.
- Конфігурація `messages.tts.auto` приймає `off|always|inbound|tagged`.
-- `/tts on` записує локальну перевагу TTS як `always`; `/tts off` записує її як `off`.
-- Використовуйте конфігурацію, якщо вам потрібні типові значення `inbound` або `tagged`.
-- `limit` і `summary` зберігаються в локальних налаштуваннях, а не в основній конфігурації.
+- `/tts on` записує локальне налаштування TTS як `always`; `/tts off` записує його як `off`.
+- Використовуйте конфігурацію, якщо потрібні типові значення `inbound` або `tagged`.
+- `limit` і `summary` зберігаються в локальних prefs, а не в основній конфігурації.
- `/tts audio` генерує одноразову аудіовідповідь (не вмикає TTS).
-- `/tts status` містить інформацію про резервне перемикання для останньої спроби:
+- `/tts status` містить видимість резервного перемикання для останньої спроби:
- успішне резервне перемикання: `Fallback: -> ` плюс `Attempts: ...`
- помилка: `Error: ...` плюс `Attempts: ...`
- - докладна діагностика: `Attempt details: provider:outcome(reasonCode) latency`
-- Збої API OpenAI та ElevenLabs тепер включають розібрані деталі помилки постачальника та ідентифікатор запиту (коли його повертає постачальник), що відображається в помилках/журналах TTS.
+ - детальна діагностика: `Attempt details: provider:outcome(reasonCode) latency`
+- Збої API OpenAI і ElevenLabs тепер включають розібрані деталі помилки постачальника та request id (коли постачальник його повертає), які відображаються в помилках/журналах TTS.
## Інструмент агента
-Інструмент `tts` перетворює текст на мовлення і повертає аудіовкладення для
-доставки у відповіді. Коли канал — це Feishu, Matrix, Telegram або WhatsApp,
-аудіо доставляється як голосове повідомлення, а не як вкладення файлу.
-Feishu може перекодовувати не-Opus вивід TTS на цьому шляху, якщо доступний
+Інструмент `tts` перетворює текст на мовлення та повертає аудіовкладення для
+доставлення у відповіді. Коли каналом є Feishu, Matrix, Telegram або WhatsApp,
+аудіо доставляється як голосове повідомлення, а не як файлове вкладення.
+Feishu може перекодовувати не-Opus вихід TTS на цьому шляху, коли доступний
`ffmpeg`.
-Він приймає необов’язкові поля `channel` і `timeoutMs`; `timeoutMs` —
-це тайм-аут запиту до постачальника для одного виклику в мілісекундах.
+Він приймає необов’язкові поля `channel` і `timeoutMs`; `timeoutMs` — це
+тайм-аут запиту до постачальника для окремого виклику в мілісекундах.
## Gateway RPC