chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-16 06:27:21 +00:00
parent 4edc8e36f8
commit 6c038d2f7e
2 changed files with 243 additions and 164 deletions

View File

@ -1,22 +1,22 @@
---
read_when:
- Ви хочете використовувати моделі Google Gemini з OpenClaw
- Вам потрібен API key або потік автентифікації OAuth
summary: Налаштування Google Gemini (API key + OAuth, генерація зображень, розуміння медіа, вебпошук)
- Вам потрібен ключ API або потік автентифікації OAuth
summary: Налаштування Google Gemini (ключ API + OAuth, генерація зображень, розуміння медіа, TTS, вебпошук)
title: Google (Gemini)
x-i18n:
generated_at: "2026-04-12T10:03:22Z"
generated_at: "2026-04-16T06:26:12Z"
model: gpt-5.4
provider: openai
source_hash: 64b848add89061b208a5d6b19d206c433cace5216a0ca4b63d56496aecbde452
source_hash: ec2d62855f5e80efda758aad71bcaa95c38b1e41761fa1100d47a06c62881419
source_path: providers/google.md
workflow: 15
---
# Google (Gemini)
Plugin Google надає доступ до моделей Gemini через Google AI Studio, а також
генерацію зображень, розуміння медіа (зображення/аудіо/відео) і вебпошук через
Плагін Google надає доступ до моделей Gemini через Google AI Studio, а також до
генерації зображень, розуміння медіа (зображення/аудіо/відео), перетворення тексту на мовлення та вебпошуку через
Gemini Grounding.
- Провайдер: `google`
@ -26,14 +26,14 @@ Gemini Grounding.
## Початок роботи
Виберіть бажаний спосіб автентифікації та виконайте кроки налаштування.
Оберіть бажаний спосіб автентифікації та виконайте кроки налаштування.
<Tabs>
<Tab title="API key">
**Найкраще підходить для:** стандартного доступу до Gemini API через Google AI Studio.
**Найкраще для:** стандартного доступу до Gemini API через Google AI Studio.
<Steps>
<Step title="Запустіть онбординг">
<Step title="Run onboarding">
```bash
openclaw onboard --auth-choice gemini-api-key
```
@ -47,7 +47,7 @@ Gemini Grounding.
--gemini-api-key "$GEMINI_API_KEY"
```
</Step>
<Step title="Установіть модель за замовчуванням">
<Step title="Set a default model">
```json5
{
agents: {
@ -58,7 +58,7 @@ Gemini Grounding.
}
```
</Step>
<Step title="Переконайтеся, що модель доступна">
<Step title="Verify the model is available">
```bash
openclaw models list --provider google
```
@ -66,21 +66,21 @@ Gemini Grounding.
</Steps>
<Tip>
Змінні середовища `GEMINI_API_KEY` і `GOOGLE_API_KEY` обидві підтримуються. Використовуйте ту, яка у вас уже налаштована.
Змінні середовища `GEMINI_API_KEY` і `GOOGLE_API_KEY` обидві підтримуються. Використовуйте ту, яку вже налаштовано у вас.
</Tip>
</Tab>
<Tab title="Gemini CLI (OAuth)">
**Найкраще підходить для:** повторного використання наявного входу Gemini CLI через PKCE OAuth замість окремого API key.
**Найкраще для:** повторного використання наявного входу Gemini CLI через PKCE OAuth замість окремого ключа API.
<Warning>
Провайдер `google-gemini-cli` є неофіційною інтеграцією. Деякі користувачі
повідомляють про обмеження акаунта при використанні OAuth у такий спосіб. Використовуйте на власний ризик.
повідомляють про обмеження облікового запису під час використання OAuth у такий спосіб. Використовуйте на власний ризик.
</Warning>
<Steps>
<Step title="Установіть Gemini CLI">
<Step title="Install the Gemini CLI">
Локальна команда `gemini` має бути доступною в `PATH`.
```bash
@ -92,14 +92,14 @@ Gemini Grounding.
```
OpenClaw підтримує як встановлення через Homebrew, так і глобальні встановлення npm, зокрема
типові Windows/npm-розкладки.
поширені схеми Windows/npm.
</Step>
<Step title="Увійдіть через OAuth">
<Step title="Log in via OAuth">
```bash
openclaw models auth login --provider google-gemini-cli --set-default
```
</Step>
<Step title="Переконайтеся, що модель доступна">
<Step title="Verify the model is available">
```bash
openclaw models list --provider google-gemini-cli
```
@ -107,7 +107,7 @@ Gemini Grounding.
</Steps>
- Модель за замовчуванням: `google-gemini-cli/gemini-3-flash-preview`
- Аліас: `gemini-cli`
- Псевдонім: `gemini-cli`
**Змінні середовища:**
@ -117,39 +117,41 @@ Gemini Grounding.
(Або варіанти `GEMINI_CLI_*`.)
<Note>
Якщо OAuth-запити Gemini CLI не вдаються після входу, установіть `GOOGLE_CLOUD_PROJECT` або
Якщо запити Gemini CLI OAuth не вдаються після входу, задайте `GOOGLE_CLOUD_PROJECT` або
`GOOGLE_CLOUD_PROJECT_ID` на хості Gateway і повторіть спробу.
</Note>
<Note>
Якщо вхід не вдається до запуску потоку в браузері, переконайтеся, що локальна команда `gemini`
установлена й доступна в `PATH`.
Якщо вхід не вдається до початку потоку в браузері, переконайтеся, що локальну команду `gemini`
встановлено та додано до `PATH`.
</Note>
Провайдер `google-gemini-cli`, що підтримує лише OAuth, є окремою
поверхнею текстового інференсу. Генерація зображень, розуміння медіа та Gemini Grounding залишаються на ідентифікаторі провайдера `google`.
Провайдер `google-gemini-cli`, який підтримує лише OAuth, є окремою
поверхнею текстового інференсу. Генерація зображень, розуміння медіа та Gemini Grounding залишаються на
ідентифікаторі провайдера `google`.
</Tab>
</Tabs>
## Можливості
| Можливість | Підтримується |
| ----------------------- | ----------------- |
| Чат-комплішени | Так |
| Генерація зображень | Так |
| Генерація музики | Так |
| Розуміння зображень | Так |
| Транскрипція аудіо | Так |
| Розуміння відео | Так |
| Вебпошук (Grounding) | Так |
| Thinking/reasoning | Так (Gemini 3.1+) |
| Моделі Gemma 4 | Так |
| Можливість | Підтримка |
| ---------------------- | ------------------ |
| Завершення чату | Так |
| Генерація зображень | Так |
| Генерація музики | Так |
| Перетворення тексту на мовлення | Так |
| Розуміння зображень | Так |
| Транскрипція аудіо | Так |
| Розуміння відео | Так |
| Вебпошук (Grounding) | Так |
| Мислення/міркування | Так (Gemini 3.1+) |
| Моделі Gemma 4 | Так |
<Tip>
Моделі Gemma 4 (наприклад, `gemma-4-26b-a4b-it`) підтримують режим thinking. OpenClaw
Моделі Gemma 4 (наприклад, `gemma-4-26b-a4b-it`) підтримують режим мислення. OpenClaw
перезаписує `thinkingBudget` у підтримуваний Google `thinkingLevel` для Gemma 4.
Установлення thinking у `off` зберігає вимкнений thinking замість зіставлення з
Встановлення мислення в `off` зберігає вимкнений стан мислення замість зіставлення з
`MINIMAL`.
</Tip>
@ -163,7 +165,7 @@ Gemini Grounding.
- Режим редагування: увімкнено, до 5 вхідних зображень
- Керування геометрією: `size`, `aspectRatio` і `resolution`
Щоб використовувати Google як провайдер зображень за замовчуванням:
Щоб використовувати Google як провайдера зображень за замовчуванням:
```json5
{
@ -178,20 +180,20 @@ Gemini Grounding.
```
<Note>
Див. [Генерація зображень](/uk/tools/image-generation) щодо спільних параметрів інструмента, вибору провайдера та поведінки failover.
Див. [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку перемикання при збоях.
</Note>
## Генерація відео
Вбудований Plugin `google` також реєструє генерацію відео через спільний
Вбудований плагін `google` також реєструє генерацію відео через спільний
інструмент `video_generate`.
- Модель відео за замовчуванням: `google/veo-3.1-fast-generate-preview`
- Режими: text-to-video, image-to-video і потоки з посиланням на одне відео
- Режими: text-to-video, image-to-video та потоки з одним опорним відео
- Підтримує `aspectRatio`, `resolution` і `audio`
- Поточне обмеження тривалості: **від 4 до 8 секунд**
Щоб використовувати Google як провайдер відео за замовчуванням:
Щоб використовувати Google як провайдера відео за замовчуванням:
```json5
{
@ -206,22 +208,22 @@ Gemini Grounding.
```
<Note>
Див. [Генерація відео](/uk/tools/video-generation) щодо спільних параметрів інструмента, вибору провайдера та поведінки failover.
Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку перемикання при збоях.
</Note>
## Генерація музики
Вбудований Plugin `google` також реєструє генерацію музики через спільний
Вбудований плагін `google` також реєструє генерацію музики через спільний
інструмент `music_generate`.
- Модель музики за замовчуванням: `google/lyria-3-clip-preview`
- Також підтримує `google/lyria-3-pro-preview`
- Керування запитом: `lyrics` і `instrumental`
- Формат виводу: `mp3` за замовчуванням, а також `wav` у `google/lyria-3-pro-preview`
- Вхідні дані-посилання: до 10 зображень
- Запуски з підтримкою сесій відокремлюються через спільний потік task/status, включно з `action: "status"`
- Опорні вхідні дані: до 10 зображень
- Запуски з підтримкою сесій відокремлюються через спільний потік задачі/статусу, зокрема `action: "status"`
Щоб використовувати Google як провайдер музики за замовчуванням:
Щоб використовувати Google як провайдера музики за замовчуванням:
```json5
{
@ -236,22 +238,66 @@ Gemini Grounding.
```
<Note>
Див. [Генерація музики](/uk/tools/music-generation) щодо спільних параметрів інструмента, вибору провайдера та поведінки failover.
Див. [Генерація музики](/uk/tools/music-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку перемикання при збоях.
</Note>
## Перетворення тексту на мовлення
Вбудований мовленнєвий провайдер `google` використовує шлях Gemini API TTS з
`gemini-3.1-flash-tts-preview`.
- Голос за замовчуванням: `Kore`
- Автентифікація: `messages.tts.providers.google.apiKey`, `models.providers.google.apiKey`, `GEMINI_API_KEY` або `GOOGLE_API_KEY`
- Вивід: WAV для звичайних TTS-вкладень, PCM для Talk/телефонії
- Нативний вивід голосових нотаток: не підтримується в цьому шляху Gemini API, оскільки API повертає PCM, а не Opus
Щоб використовувати Google як TTS-провайдера за замовчуванням:
```json5
{
messages: {
tts: {
auto: "always",
provider: "google",
providers: {
google: {
model: "gemini-3.1-flash-tts-preview",
voiceName: "Kore",
},
},
},
},
}
```
Gemini API TTS приймає виразні квадратні аудіотеги в тексті, наприклад
`[whispers]` або `[laughs]`. Щоб приховати теги з видимої відповіді в чаті, але
надсилати їх до TTS, помістіть їх у блок `[[tts:text]]...[[/tts:text]]`:
```text
Ось чистий текст відповіді.
[[tts:text]][whispers] Ось озвучена версія.[[/tts:text]]
```
<Note>
Ключ API Google Cloud Console, обмежений Gemini API, є дійсним для цього
провайдера. Це не окремий шлях Cloud Text-to-Speech API.
</Note>
## Розширене налаштування
<AccordionGroup>
<Accordion title="Пряме повторне використання кешу Gemini">
Для прямих запусків Gemini API (`api: "google-generative-ai"`), OpenClaw
передає налаштований дескриптор `cachedContent` у запити до Gemini.
<Accordion title="Direct Gemini cache reuse">
Для прямих запусків Gemini API (`api: "google-generative-ai"`) OpenClaw
передає налаштований дескриптор `cachedContent` у запити Gemini.
- Налаштовуйте параметри для окремої моделі або глобальні параметри через
`cachedContent` або застарілий `cached_content`
- Якщо присутні обидва, перевага надається `cachedContent`
- Налаштовуйте параметри для окремої моделі або глобально за допомогою
`cachedContent` або застарілого `cached_content`
- Якщо присутні обидва, `cachedContent` має пріоритет
- Приклад значення: `cachedContents/prebuilt-context`
- Використання Gemini cache-hit нормалізується в OpenClaw `cacheRead` із
висхідного `cachedContentTokenCount`
- Використання влучення кешу Gemini нормалізується в OpenClaw `cacheRead` з
вихідного `cachedContentTokenCount`
```json5
{
@ -271,19 +317,19 @@ Gemini Grounding.
</Accordion>
<Accordion title="Примітки щодо використання JSON у Gemini CLI">
Під час використання OAuth-провайдера `google-gemini-cli`, OpenClaw нормалізує
<Accordion title="Gemini CLI JSON usage notes">
Під час використання OAuth-провайдера `google-gemini-cli` OpenClaw нормалізує
JSON-вивід CLI таким чином:
- Текст відповіді береться з поля CLI JSON `response`.
- Використання повертається до `stats`, коли CLI залишає `usage` порожнім.
- Використання повертається до `stats`, якщо CLI залишає `usage` порожнім.
- `stats.cached` нормалізується в OpenClaw `cacheRead`.
- Якщо `stats.input` відсутній, OpenClaw обчислює вхідні токени з
- Якщо `stats.input` відсутній, OpenClaw виводить кількість вхідних токенів із
`stats.input_tokens - stats.cached`.
</Accordion>
<Accordion title="Налаштування середовища й демона">
<Accordion title="Environment and daemon setup">
Якщо Gateway працює як демон (launchd/systemd), переконайтеся, що `GEMINI_API_KEY`
доступний цьому процесу (наприклад, у `~/.openclaw/.env` або через
`env.shellEnv`).
@ -293,16 +339,16 @@ Gemini Grounding.
## Пов’язане
<CardGroup cols={2}>
<Card title="Вибір моделі" href="/uk/concepts/model-providers" icon="layers">
Вибір провайдерів, посилань на моделі та поведінки failover.
<Card title="Model selection" href="/uk/concepts/model-providers" icon="layers">
Вибір провайдерів, посилань на моделі та поведінки перемикання при збоях.
</Card>
<Card title="Генерація зображень" href="/uk/tools/image-generation" icon="image">
<Card title="Image generation" href="/uk/tools/image-generation" icon="image">
Спільні параметри інструмента зображень і вибір провайдера.
</Card>
<Card title="Генерація відео" href="/uk/tools/video-generation" icon="video">
<Card title="Video generation" href="/uk/tools/video-generation" icon="video">
Спільні параметри інструмента відео і вибір провайдера.
</Card>
<Card title="Генерація музики" href="/uk/tools/music-generation" icon="music">
<Card title="Music generation" href="/uk/tools/music-generation" icon="music">
Спільні параметри інструмента музики і вибір провайдера.
</Card>
</CardGroup>

View File

@ -1,80 +1,82 @@
---
read_when:
- Увімкнення синтезу мовлення для відповідей
- Увімкнення перетворення тексту на мовлення для відповідей
- Налаштування провайдерів TTS або обмежень
- Використання команд /tts
summary: Синтез мовлення (TTS) для вихідних відповідей
title: Синтез мовлення
- Використання команд `/tts`
summary: Перетворення тексту на мовлення (TTS) для вихідних відповідей
title: Text-to-Speech
x-i18n:
generated_at: "2026-04-12T22:42:43Z"
generated_at: "2026-04-16T06:26:13Z"
model: gpt-5.4
provider: openai
source_hash: ad79a6be34879347dc73fdab1bd219823cd7c6aa8504e3e4c73e1a0554c837c5
source_hash: de7c1dc8831c1ba307596afd48cb4d36f844724887a13b17e35f41ef5174a86f
source_path: tools/tts.md
workflow: 15
---
# Синтез мовлення (TTS)
# Перетворення тексту на мовлення (TTS)
OpenClaw може перетворювати вихідні відповіді на аудіо за допомогою ElevenLabs, Microsoft, MiniMax або OpenAI.
OpenClaw може перетворювати вихідні відповіді на аудіо за допомогою ElevenLabs, Google Gemini, Microsoft, MiniMax або OpenAI.
Це працює всюди, де OpenClaw може надсилати аудіо.
## Підтримувані сервіси
- **ElevenLabs** (основний або резервний провайдер)
- **Google Gemini** (основний або резервний провайдер; використовує Gemini API TTS)
- **Microsoft** (основний або резервний провайдер; поточна вбудована реалізація використовує `node-edge-tts`)
- **MiniMax** (основний або резервний провайдер; використовує API T2A v2)
- **OpenAI** (основний або резервний провайдер; також використовується для зведень)
- **OpenAI** (основний або резервний провайдер; також використовується для підсумків)
### Примітки щодо Microsoft speech
### Примітки щодо мовлення Microsoft
Вбудований провайдер Microsoft speech наразі використовує онлайн-сервіс
Вбудований провайдер мовлення Microsoft наразі використовує онлайн-сервіс
нейронного TTS Microsoft Edge через бібліотеку `node-edge-tts`. Це хостований сервіс (не
локальний), він використовує кінцеві точки Microsoft і не потребує API-ключа.
`node-edge-tts` надає параметри налаштування мовлення та вихідні формати, але
сервіс підтримує не всі параметри. Застаріла конфігурація та вхідні дані директив
із `edge` усе ще працюють і нормалізуються до `microsoft`.
`node-edge-tts` надає параметри конфігурації мовлення та вихідні формати, але
не всі параметри підтримуються сервісом. Застаріла конфігурація та введення директив
із використанням `edge` усе ще працюють і нормалізуються до `microsoft`.
Оскільки цей шлях використовує публічний вебсервіс без опублікованих SLA або квот,
вважайте його best-effort. Якщо вам потрібні гарантовані ліміти та підтримка, використовуйте OpenAI
вважайте його рішенням із найкращими можливими зусиллями. Якщо вам потрібні гарантовані ліміти та підтримка, використовуйте OpenAI
або ElevenLabs.
## Необов’язкові ключі
Якщо ви хочете використовувати OpenAI, ElevenLabs або MiniMax:
Якщо ви хочете використовувати OpenAI, ElevenLabs, Google Gemini або MiniMax:
- `ELEVENLABS_API_KEY` (або `XI_API_KEY`)
- `GEMINI_API_KEY` (або `GOOGLE_API_KEY`)
- `MINIMAX_API_KEY`
- `OPENAI_API_KEY`
Microsoft speech **не** потребує 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 Text-to-Speech](https://platform.openai.com/docs/guides/text-to-speech)
- [Довідка API Audio OpenAI](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)
- [API MiniMax T2A v2](https://platform.minimaxi.com/document/T2A%20V2)
- [MiniMax T2A v2 API](https://platform.minimaxi.com/document/T2A%20V2)
- [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)
## Чи ввімкнено це за замовчуванням?
Ні. Автоматичний TTS **вимкнено** за замовчуванням. Увімкніть його в конфігурації через
`messages.tts.auto` або локально через `/tts on`.
`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).
### Мінімальна конфігурація (увімкнення + провайдер)
@ -177,7 +179,33 @@ Microsoft speech **не** потребує API-ключа.
}
```
### Вимкнути Microsoft speech
### Google Gemini як основний
```json5
{
messages: {
tts: {
auto: "always",
provider: "google",
providers: {
google: {
apiKey: "gemini_api_key",
model: "gemini-3.1-flash-tts-preview",
voiceName: "Kore",
},
},
},
},
}
```
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`.
### Вимкнення мовлення Microsoft
```json5
{
@ -208,7 +236,7 @@ Microsoft speech **не** потребує API-ключа.
}
```
### Відповідати аудіо лише після вхідного голосового повідомлення
### Відповідати лише аудіо після вхідного голосового повідомлення
```json5
{
@ -220,7 +248,7 @@ Microsoft speech **не** потребує API-ключа.
}
```
### Вимкнути автоматичне зведення для довгих відповідей
### Вимкнення автоматичного підсумку для довгих відповідей
```json5
{
@ -243,83 +271,87 @@ Microsoft speech **не** потребує API-ключа.
- `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"`, `"microsoft"`, `"minimax"` або `"openai"` (резервний вибір відбувається автоматично).
- Якщо `provider` **не задано**, OpenClaw використовує перший налаштований провайдер мовлення в порядку автоматичного вибору реєстру.
- Застарілий `provider: "edge"` усе ще працює і нормалізується до `microsoft`.
- `summaryModel`: необов’язкова недорога модель для автоматичного зведення; типово `agents.defaults.model.primary`.
- Приймає `provider/model` або псевдонім налаштованої моделі.
- `modelOverrides`: дозволяє моделі виводити директиви TTS (увімкнено за замовчуванням).
- `provider`: ідентифікатор провайдера мовлення, наприклад `"elevenlabs"`, `"google"`, `"microsoft"`, `"minimax"` або `"openai"` (резервне перемикання відбувається автоматично).
- Якщо `provider` **не задано**, OpenClaw використовує першого налаштованого провайдера мовлення в порядку автоматичного вибору реєстру.
- Застарілий `provider: "edge"` усе ще працює та нормалізується до `microsoft`.
- `summaryModel`: необов’язкова недорога модель для автоматичного підсумку; типово використовується `agents.defaults.model.primary`.
- Приймає `provider/model` або налаштований псевдонім моделі.
- `modelOverrides`: дозволяє моделі видавати директиви TTS (типово ввімкнено).
- `allowProvider` типово має значення `false` (перемикання провайдера вмикається явно).
- `providers.<id>`: налаштування провайдера, що належать провайдеру мовлення, із ключем за його ідентифікатором.
- Застарілі прямі блоки провайдерів (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) автоматично переносяться до `messages.tts.providers.<id>` під час завантаження.
- `maxTextLength`: жорстке обмеження для вхідного тексту TTS (символи). `/tts audio` завершується помилкою, якщо ліміт перевищено.
- `providers.<id>`: налаштування, що належать провайдеру, із ключем за ідентифікатором провайдера мовлення.
- Застарілі прямі блоки провайдерів (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) автоматично мігруються до `messages.tts.providers.<id>` під час завантаження.
- `maxTextLength`: жорстке обмеження для вхідного тексту TTS (символи). `/tts audio` завершується помилкою, якщо його перевищено.
- `timeoutMs`: тайм-аут запиту (мс).
- `prefsPath`: перевизначає шлях до локального JSON-файла prefs (провайдер/ліміт/зведення).
- Значення `apiKey` беруться з env vars як запасний варіант (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`).
- `providers.elevenlabs.baseUrl`: перевизначає базовий URL API ElevenLabs.
- `prefsPath`: перевизначає локальний шлях до JSON-файлу prefs (провайдер/ліміт/підсумок).
- Значення `apiKey` резервно беруться зі змінних середовища (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `GEMINI_API_KEY`/`GOOGLE_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_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`: 2-літерний ISO 639-1 (наприклад, `en`, `de`)
- `providers.elevenlabs.seed`: ціле число `0..4294967295` (детермінізм у межах можливого)
- `providers.minimax.baseUrl`: перевизначає базовий URL API MiniMax (типово `https://api.minimax.io`, env: `MINIMAX_API_HOST`).
- `providers.elevenlabs.seed`: ціле число `0..4294967295` (детермінованість у межах найкращих можливих зусиль)
- `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).
- `providers.microsoft.enabled`: дозволяє використання Microsoft speech (типово `true`; без API-ключа).
- `providers.minimax.pitch`: зміщення тону `-12..12` (типово 0).
- `providers.google.model`: модель Gemini TTS (типово `gemini-3.1-flash-tts-preview`).
- `providers.google.voiceName`: назва вбудованого голосу Gemini (типово `Kore`; також приймається `voice`).
- `providers.google.baseUrl`: перевизначає базову URL-адресу Gemini API. Приймається лише `https://generativelanguage.googleapis.com`.
- Якщо `messages.tts.providers.google.apiKey` пропущено, TTS може повторно використати `models.providers.google.apiKey` перед резервним переходом до env.
- `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%`).
- Дивіться вихідні формати Microsoft Speech для допустимих значень; не всі формати підтримуються вбудованим транспортом на основі Edge.
- `providers.microsoft.rate` / `providers.microsoft.pitch` / `providers.microsoft.volume`: рядки у відсотках (наприклад, `+10%`, `-5%`).
- `providers.microsoft.saveSubtitles`: записує JSON-субтитри поруч з аудіофайлом.
- `providers.microsoft.proxy`: URL проксі для запитів Microsoft speech.
- `providers.microsoft.proxy`: URL-адреса проксі для запитів мовлення Microsoft.
- `providers.microsoft.timeoutMs`: перевизначення тайм-ауту запиту (мс).
- `edge.*`: застарілий псевдонім для тих самих налаштувань Microsoft.
## Перевизначення, керовані моделлю (типово увімкнено)
## Перевизначення, керовані моделлю (типово ввімкнено)
За замовчуванням модель **може** виводити директиви TTS для однієї відповіді.
Типово модель **може** видавати директиви TTS для однієї відповіді.
Коли `messages.tts.auto` має значення `tagged`, ці директиви потрібні для запуску аудіо.
Коли це ввімкнено, модель може виводити директиви `[[tts:...]]`, щоб перевизначити голос
для однієї відповіді, а також необов’язковий блок `[[tts:text]]...[[/tts:text]]`, щоб
додати виразні теги (сміх, підказки для співу тощо), які мають з’являтися
Коли це ввімкнено, модель може видавати директиви `[[tts:...]]` для перевизначення голосу
для однієї відповіді, а також необов’язковий блок `[[tts:text]]...[[/tts:text]]` для
додавання виразних тегів (сміх, підказки для співу тощо), які мають з’являтися
лише в аудіо.
Директиви `provider=...` ігноруються, якщо не встановлено `modelOverrides.allowProvider: true`.
Приклад payload відповіді:
Приклад корисного навантаження відповіді:
```
Ось.
Here you go.
[[tts:voiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]]
[[tts:text]](сміється) Прочитай пісню ще раз.[[/tts:text]]
[[tts:text]](laughs) Read the song once more.[[/tts:text]]
```
Доступні ключі директив (коли ввімкнено):
- `provider` (ідентифікатор зареєстрованого провайдера мовлення, наприклад `openai`, `elevenlabs`, `minimax` або `microsoft`; потребує `allowProvider: true`)
- `voice` (голос OpenAI) або `voiceId` (ElevenLabs / MiniMax)
- `model` (модель OpenAI TTS, ідентифікатор моделі ElevenLabs або модель MiniMax)
- `provider` (ідентифікатор зареєстрованого провайдера мовлення, наприклад `openai`, `elevenlabs`, `google`, `minimax` або `microsoft`; потребує `allowProvider: true`)
- `voice` (голос OpenAI), `voiceName` / `voice_name` / `google_voice` (голос Google) або `voiceId` (ElevenLabs / MiniMax)
- `model` (модель OpenAI TTS, ідентифікатор моделі ElevenLabs або модель MiniMax) або `google_model` (модель Google TTS)
- `stability`, `similarityBoost`, `style`, `speed`, `useSpeakerBoost`
- `vol` / `volume` (гучність MiniMax, 0-10)
- `pitch` (висота тону MiniMax, від -12 до 12)
- `pitch` (тон MiniMax, від -12 до 12)
- `applyTextNormalization` (`auto|on|off`)
- `languageCode` (ISO 639-1)
- `seed`
Вимкнути всі перевизначення моделі:
Вимкнення всіх перевизначень моделі:
```json5
{
@ -333,7 +365,7 @@ Microsoft speech **не** потребує API-ключа.
}
```
Необов’язковий allowlist (увімкнути перемикання провайдера, зберігши можливість налаштовувати інші параметри):
Необов’язковий allowlist (увімкнення перемикання провайдера зі збереженням можливості налаштовувати інші параметри):
```json5
{
@ -349,17 +381,17 @@ Microsoft speech **не** потребує API-ключа.
}
```
## Налаштування для окремого користувача
## Налаштування для окремих користувачів
Слеш-команди записують локальні перевизначення до `prefsPath` (типово:
`~/.openclaw/settings/tts.json`, можна перевизначити через `OPENCLAW_TTS_PREFS` або
Команди зі слешем записують локальні перевизначення в `prefsPath` (типово:
`~/.openclaw/settings/tts.json`, перевизначається через `OPENCLAW_TTS_PREFS` або
`messages.tts.prefsPath`).
Збережені поля:
- `enabled`
- `provider`
- `maxLength` (поріг для зведення; типово 1500 символів)
- `maxLength` (поріг підсумку; типово 1500 символів)
- `summarize` (типово `true`)
Вони перевизначають `messages.tts.*` для цього хоста.
@ -367,54 +399,55 @@ Microsoft speech **не** потребує API-ключа.
## Вихідні формати (фіксовані)
- **Feishu / Matrix / Telegram / WhatsApp**: голосове повідомлення Opus (`opus_48000_64` від ElevenLabs, `opus` від OpenAI).
- 48 кГц / 64 кбіт/с — це вдалий компроміс для голосових повідомлень.
- 48 кГц / 64 кбіт/с — це хороший компроміс для голосових повідомлень.
- **Інші канали**: MP3 (`mp3_44100_128` від ElevenLabs, `mp3` від OpenAI).
- 44,1 кГц / 128 кбіт/с — типовий баланс для чіткості мовлення.
- **MiniMax**: MP3 (модель `speech-2.8-hd`, частота дискретизації 32 кГц). Формат голосових нотаток нативно не підтримується; використовуйте OpenAI або ElevenLabs, якщо вам потрібні гарантовані голосові повідомлення Opus.
- **Google Gemini**: Gemini API TTS повертає необроблений PCM 24 кГц. OpenClaw обгортає його у WAV для аудіовкладень і повертає PCM напряму для Talk/телефонії. Нативний формат голосових нотаток Opus у цьому шляху не підтримується.
- **Microsoft**: використовує `microsoft.outputFormat` (типово `audio-24khz-48kbitrate-mono-mp3`).
- Вбудований транспорт приймає `outputFormat`, але сервіс підтримує не всі формати.
- Значення вихідного формату відповідають вихідним форматам Microsoft Speech (зокрема Ogg/WebM Opus).
- Вбудований транспорт приймає `outputFormat`, але не всі формати доступні в сервісі.
- Значення вихідного формату відповідають вихідним форматам Microsoft Speech (включно з Ogg/WebM Opus).
- Telegram `sendVoice` приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам потрібні
гарантовані голосові повідомлення Opus.
- Якщо налаштований вихідний формат 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-ключа для
моделі підсумку), аудіо
пропускається, і надсилається звичайна текстова відповідь.
## Діаграма потоку
```
Відповідь -> TTS увімкнено?
ні -> надіслати текст
так -> є медіа / MEDIA: / коротка?
так -> надіслати текст
ні -> довжина > ліміт?
ні -> TTS -> прикріпити аудіо
так -> зведення увімкнено?
ні -> надіслати текст
так -> зробити зведення (`summaryModel` або `agents.defaults.model.primary`)
-> TTS -> прикріпити аудіо
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`.
Докладніше про ввімкнення див. у [Слеш-команди](/uk/tools/slash-commands).
Докладніше про ввімкнення див. у [Команди зі слешем](/uk/tools/slash-commands).
Примітка для Discord: `/tts` — це вбудована команда Discord, тому OpenClaw реєструє
`/voice` як нативну команду. Текстова команда `/tts ...` усе ще працює.
`/voice` як нативну команду там. Текстова команда `/tts ...` усе ще працює.
```
/tts off
@ -430,22 +463,22 @@ Microsoft speech **не** потребує API-ключа.
- Команди потребують авторизованого відправника (правила allowlist/owner усе ще застосовуються).
- Має бути ввімкнено `commands.text` або реєстрацію нативних команд.
- Конфігурація `messages.tts.auto` приймає значення `off|always|inbound|tagged`.
- Конфігурація `messages.tts.auto` приймає `off|always|inbound|tagged`.
- `/tts on` записує локальне налаштування TTS як `always`; `/tts off` записує його як `off`.
- Використовуйте конфігурацію, якщо вам потрібні типові значення `inbound` або `tagged`.
- `limit` і `summary` зберігаються в локальних prefs, а не в основній конфігурації.
- `/tts audio` генерує одноразову аудіовідповідь (не вмикає TTS).
- `/tts status` включає видимість резервного переходу для останньої спроби:
- успішний резервний перехід: `Fallback: <primary> -> <used>` плюс `Attempts: ...`
- `/tts status` містить видимість резервного перемикання для останньої спроби:
- успішне резервне перемикання: `Fallback: <primary> -> <used>` плюс `Attempts: ...`
- помилка: `Error: ...` плюс `Attempts: ...`
- докладна діагностика: `Attempt details: provider:outcome(reasonCode) latency`
- Збої API OpenAI та ElevenLabs тепер включають розібрані деталі помилки провайдера та ідентифікатор запиту (коли провайдер його повертає), які відображаються в помилках/логах TTS.
- Збої API OpenAI та ElevenLabs тепер містять розібрані відомості про помилку провайдера та ідентифікатор запиту (коли його повертає провайдер), що відображається в помилках/журналах TTS.
## Інструмент агента
Інструмент `tts` перетворює текст на мовлення та повертає аудіовкладення для
доставки у відповіді. Коли каналом є Feishu, Matrix, Telegram або WhatsApp,
аудіо доставляється як голосове повідомлення, а не як вкладений файл.
аудіо доставляється як голосове повідомлення, а не як файлове вкладення.
## Gateway RPC