From a307c75df7c1e9bbec2135c270f0ff93e2025eae Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Sun, 26 Apr 2026 00:48:05 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/providers/azure-speech.md | 126 +++++++++++++ docs/uk/providers/index.md | 39 ++-- docs/uk/tools/tts.md | 302 +++++++++++++++++------------- 3 files changed, 320 insertions(+), 147 deletions(-) create mode 100644 docs/uk/providers/azure-speech.md diff --git a/docs/uk/providers/azure-speech.md b/docs/uk/providers/azure-speech.md new file mode 100644 index 000000000..1f4b71752 --- /dev/null +++ b/docs/uk/providers/azure-speech.md @@ -0,0 +1,126 @@ +--- +read_when: + - Ви хочете синтез мовлення Azure Speech для вихідних відповідей + - Вам потрібен нативний вивід голосових повідомлень Ogg Opus від Azure Speech +summary: Azure AI Speech перетворення тексту на мовлення для відповідей OpenClaw +title: Azure Speech +x-i18n: + generated_at: "2026-04-26T00:46:16Z" + model: gpt-5.4 + provider: openai + source_hash: 59baf0865e0eba1076ae5c074b5978e1f5f104b3395c816c30c546da41a303b9 + source_path: providers/azure-speech.md + workflow: 15 +--- + +Azure Speech — це провайдер перетворення тексту на мовлення Azure AI Speech. В OpenClaw він +синтезує аудіо вихідних відповідей як MP3 за замовчуванням, нативний Ogg/Opus для голосових +повідомлень і аудіо mulaw 8 кГц для телефонних каналів, таких як Voice Call. + +OpenClaw використовує REST API Azure Speech безпосередньо з SSML і надсилає +формат виводу, що належить провайдеру, через `X-Microsoft-OutputFormat`. + +| Деталь | Значення | +| ----------------------- | ------------------------------------------------------------------------------------------------------------- | +| Вебсайт | [Azure AI Speech](https://azure.microsoft.com/products/ai-services/ai-speech) | +| Документація | [Speech REST text-to-speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech) | +| Автентифікація | `AZURE_SPEECH_KEY` плюс `AZURE_SPEECH_REGION` | +| Голос за замовчуванням | `en-US-JennyNeural` | +| Вивід файлу за замовчуванням | `audio-24khz-48kbitrate-mono-mp3` | +| Файл голосового повідомлення за замовчуванням | `ogg-24khz-16bit-mono-opus` | + +## Початок роботи + + + + У порталі Azure створіть ресурс Speech. Скопіюйте **KEY 1** з + Resource Management > Keys and Endpoint, а також скопіюйте розташування ресурсу, + наприклад `eastus`. + + ``` + AZURE_SPEECH_KEY= + AZURE_SPEECH_REGION=eastus + ``` + + + + ```json5 + { + messages: { + tts: { + auto: "always", + provider: "azure-speech", + providers: { + "azure-speech": { + voice: "en-US-JennyNeural", + lang: "en-US", + }, + }, + }, + }, + } + ``` + + + Надішліть відповідь через будь-який підключений канал. OpenClaw синтезує аудіо + за допомогою Azure Speech і доставляє MP3 для стандартного аудіо або Ogg/Opus, коли + канал очікує голосове повідомлення. + + + +## Параметри конфігурації + +| Параметр | Шлях | Опис | +| ----------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| `apiKey` | `messages.tts.providers.azure-speech.apiKey` | Ключ ресурсу Azure Speech. Використовує `AZURE_SPEECH_KEY`, `AZURE_SPEECH_API_KEY` або `SPEECH_KEY` як запасний варіант. | +| `region` | `messages.tts.providers.azure-speech.region` | Регіон ресурсу Azure Speech. Використовує `AZURE_SPEECH_REGION` або `SPEECH_REGION` як запасний варіант. | +| `endpoint` | `messages.tts.providers.azure-speech.endpoint` | Необов’язкове перевизначення endpoint/base URL Azure Speech. | +| `baseUrl` | `messages.tts.providers.azure-speech.baseUrl` | Необов’язкове перевизначення base URL Azure Speech. | +| `voice` | `messages.tts.providers.azure-speech.voice` | `ShortName` голосу Azure (за замовчуванням `en-US-JennyNeural`). | +| `lang` | `messages.tts.providers.azure-speech.lang` | Код мови SSML (за замовчуванням `en-US`). | +| `outputFormat` | `messages.tts.providers.azure-speech.outputFormat` | Формат виводу аудіофайлу (за замовчуванням `audio-24khz-48kbitrate-mono-mp3`). | +| `voiceNoteOutputFormat` | `messages.tts.providers.azure-speech.voiceNoteOutputFormat` | Формат виводу голосового повідомлення (за замовчуванням `ogg-24khz-16bit-mono-opus`). | + +## Примітки + + + + Azure Speech використовує ключ ресурсу Speech, а не ключ Azure OpenAI. Ключ + надсилається як `Ocp-Apim-Subscription-Key`; OpenClaw виводить + `https://.tts.speech.microsoft.com` з `region`, якщо ви не + вкажете `endpoint` або `baseUrl`. + + + Використовуйте значення `ShortName` голосу Azure Speech, наприклад + `en-US-JennyNeural`. Вбудований провайдер може перелічувати голоси через + той самий ресурс Speech і відфільтровує голоси, позначені як deprecated або retired. + + + Azure приймає такі формати виводу, як `audio-24khz-48kbitrate-mono-mp3`, + `ogg-24khz-16bit-mono-opus` і `riff-24khz-16bit-mono-pcm`. OpenClaw + запитує Ogg/Opus для цілей `voice-note`, щоб канали могли надсилати нативні + голосові бульбашки без додаткового перетворення MP3. + + + `azure` приймається як псевдонім провайдера для наявних PR і конфігурації користувачів, + але в новій конфігурації слід використовувати `azure-speech`, щоб уникнути плутанини з + провайдерами моделей Azure OpenAI. + + + +## Пов’язане + + + + Огляд TTS, провайдери та конфігурація `messages.tts`. + + + Повний довідник із конфігурації, включно з параметрами `messages.tts`. + + + Усі вбудовані провайдери OpenClaw. + + + Поширені проблеми та кроки налагодження. + + diff --git a/docs/uk/providers/index.md b/docs/uk/providers/index.md index 125beeeef..8f502f525 100644 --- a/docs/uk/providers/index.md +++ b/docs/uk/providers/index.md @@ -1,28 +1,28 @@ --- read_when: - - Ви хочете вибрати постачальника моделей + - Ви хочете вибрати провайдера моделі - Вам потрібен швидкий огляд підтримуваних бекендів LLM -summary: Постачальники моделей (LLM), які підтримує OpenClaw -title: Каталог постачальників +summary: Провайдери моделей (LLM), які підтримує OpenClaw +title: Каталог провайдерів x-i18n: - generated_at: "2026-04-25T11:57:10Z" + generated_at: "2026-04-26T00:46:16Z" model: gpt-5.4 provider: openai - source_hash: 9e031e997f0dbf97e3e26d5ee05bd99c2877653daa04423d210d01b9045d8c5c + source_hash: b5d3bf5b30bd7a1dbd8b1348f4f07f178fea9bfea523afa96cad2a30d566a139 source_path: providers/index.md workflow: 15 --- -# Постачальники моделей +# Провайдери моделей -OpenClaw може використовувати багато постачальників LLM. Виберіть постачальника, пройдіть автентифікацію, а потім задайте типову модель як `provider/model`. +OpenClaw може використовувати багато провайдерів LLM. Виберіть провайдера, пройдіть автентифікацію, а потім встановіть модель за замовчуванням у форматі `provider/model`. -Шукаєте документацію для каналів чату (WhatsApp/Telegram/Discord/Slack/Mattermost (plugin)/тощо)? Див. [Channels](/uk/channels). +Шукаєте документацію для чат-каналів (WhatsApp/Telegram/Discord/Slack/Mattermost (Plugin)/тощо)? Див. [Канали](/uk/channels). ## Швидкий старт -1. Пройдіть автентифікацію в постачальника (зазвичай через `openclaw onboard`). -2. Задайте типову модель: +1. Пройдіть автентифікацію у провайдера (зазвичай через `openclaw onboard`). +2. Встановіть модель за замовчуванням: ```json5 { @@ -30,13 +30,14 @@ OpenClaw може використовувати багато постачаль } ``` -## Документація постачальників +## Документація провайдерів - [Alibaba Model Studio](/uk/providers/alibaba) - [Amazon Bedrock](/uk/providers/bedrock) - [Amazon Bedrock Mantle](/uk/providers/bedrock-mantle) - [Anthropic (API + Claude CLI)](/uk/providers/anthropic) - [Arcee AI (моделі Trinity)](/uk/providers/arcee) +- [Azure Speech](/uk/providers/azure-speech) - [BytePlus (міжнародний)](/uk/concepts/model-providers#byteplus-international) - [Chutes](/uk/providers/chutes) - [Cloudflare AI Gateway](/uk/providers/cloudflare-ai-gateway) @@ -50,7 +51,7 @@ OpenClaw може використовувати багато постачаль - [Моделі GLM](/uk/providers/glm) - [Google (Gemini)](/uk/providers/google) - [Groq (інференс LPU)](/uk/providers/groq) -- [Hugging Face (Inference)](/uk/providers/huggingface) +- [Hugging Face (інференс)](/uk/providers/huggingface) - [inferrs (локальні моделі)](/uk/providers/inferrs) - [Kilocode](/uk/providers/kilocode) - [LiteLLM (уніфікований шлюз)](/uk/providers/litellm) @@ -74,7 +75,7 @@ OpenClaw може використовувати багато постачаль - [Synthetic](/uk/providers/synthetic) - [Tencent Cloud (TokenHub)](/uk/providers/tencent) - [Together AI](/uk/providers/together) -- [Venice (Venice AI, орієнтований на приватність)](/uk/providers/venice) +- [Venice (Venice AI, з акцентом на конфіденційність)](/uk/providers/venice) - [Vercel AI Gateway](/uk/providers/vercel-ai-gateway) - [vLLM (локальні моделі)](/uk/providers/vllm) - [Volcengine (Doubao)](/uk/providers/volcengine) @@ -86,11 +87,11 @@ OpenClaw може використовувати багато постачаль ## Спільні оглядові сторінки - [Додаткові вбудовані варіанти](/uk/providers/models#additional-bundled-provider-variants) - Anthropic Vertex, Copilot Proxy і Gemini CLI OAuth -- [Генерація зображень](/uk/tools/image-generation) - Спільний інструмент `image_generate`, вибір постачальника та failover -- [Генерація музики](/uk/tools/music-generation) - Спільний інструмент `music_generate`, вибір постачальника та failover -- [Генерація відео](/uk/tools/video-generation) - Спільний інструмент `video_generate`, вибір постачальника та failover +- [Генерація зображень](/uk/tools/image-generation) - Спільний інструмент `image_generate`, вибір провайдера та перемикання при збої +- [Генерація музики](/uk/tools/music-generation) - Спільний інструмент `music_generate`, вибір провайдера та перемикання при збої +- [Генерація відео](/uk/tools/video-generation) - Спільний інструмент `video_generate`, вибір провайдера та перемикання при збої -## Постачальники транскрипції +## Провайдери транскрипції - [Deepgram (транскрипція аудіо)](/uk/providers/deepgram) - [ElevenLabs](/uk/providers/elevenlabs#speech-to-text) @@ -101,6 +102,6 @@ OpenClaw може використовувати багато постачаль ## Інструменти спільноти -- [Claude Max API Proxy](/uk/providers/claude-max-api-proxy) - Проксі спільноти для облікових даних підписки Claude (перед використанням перевірте політику/умови Anthropic) +- [Claude Max API Proxy](/uk/providers/claude-max-api-proxy) - Проксі від спільноти для облікових даних підписки Claude (перед використанням перевірте політику/умови Anthropic) -Повний каталог постачальників (xAI, Groq, Mistral тощо) і розширену конфігурацію див. у [Постачальники моделей](/uk/concepts/model-providers). +Повний каталог провайдерів (xAI, Groq, Mistral тощо) і розширену конфігурацію див. у розділі [Провайдери моделей](/uk/concepts/model-providers). diff --git a/docs/uk/tools/tts.md b/docs/uk/tools/tts.md index 12bab2b1e..6b9edd996 100644 --- a/docs/uk/tools/tts.md +++ b/docs/uk/tools/tts.md @@ -1,24 +1,25 @@ --- read_when: - - Увімкнення перетворення тексту на мовлення для відповідей + - Увімкнення синтезу мовлення для відповідей - Налаштування провайдерів TTS або обмежень - Використання команд `/tts` -summary: Перетворення тексту на мовлення (TTS) для вихідних відповідей -title: Перетворення тексту на мовлення +summary: Синтез мовлення (TTS) для вихідних відповідей +title: Синтез мовлення x-i18n: - generated_at: "2026-04-25T22:53:52Z" + generated_at: "2026-04-26T00:46:18Z" model: gpt-5.4 provider: openai - source_hash: cde18cee5061f315fb60cc23c07d11f20cf51b8b094a85cc100c1402a5ea0f4d + source_hash: fb8c84b87b4a92f3ddc68ce8caa4a911ca353343a6a7f3c23e5ba7777861dabb source_path: tools/tts.md workflow: 15 --- -OpenClaw може перетворювати вихідні відповіді на аудіо за допомогою ElevenLabs, Google Gemini, Gradium, Inworld, Local CLI, Microsoft, MiniMax, OpenAI, Volcengine, Vydra, xAI або Xiaomi MiMo. +OpenClaw може перетворювати вихідні відповіді на аудіо за допомогою Azure Speech, ElevenLabs, Google Gemini, Gradium, Inworld, Local CLI, Microsoft, MiniMax, OpenAI, Volcengine, Vydra, xAI або Xiaomi MiMo. Це працює всюди, де OpenClaw може надсилати аудіо. ## Підтримувані сервіси +- **Azure Speech** (основний або резервний провайдер; використовує Azure AI Speech REST API) - **ElevenLabs** (основний або резервний провайдер) - **Google Gemini** (основний або резервний провайдер; використовує Gemini API TTS) - **Gradium** (основний або резервний провайдер; підтримує вивід голосових нотаток і телефонії) @@ -34,22 +35,23 @@ OpenClaw може перетворювати вихідні відповіді ### Примітки щодо мовлення Microsoft -Вбудований провайдер мовлення Microsoft наразі використовує онлайн-сервіс -нейронного TTS від Microsoft Edge через бібліотеку `node-edge-tts`. Це -хостинговий сервіс (не локальний), він використовує кінцеві точки Microsoft -і не потребує API-ключа. +Поточний вбудований провайдер мовлення Microsoft використовує онлайн-сервіс +нейронного TTS Microsoft Edge через бібліотеку `node-edge-tts`. Це хостинговий сервіс (не +локальний), він використовує кінцеві точки Microsoft і не вимагає API-ключа. `node-edge-tts` надає параметри конфігурації мовлення та формати виводу, але -не всі параметри підтримуються сервісом. Застарілі конфігурації та вхідні -директиви з `edge` усе ще працюють і нормалізуються до `microsoft`. +не всі параметри підтримуються сервісом. Застаріла конфігурація та вхідні директиви +з використанням `edge` усе ще працюють і нормалізуються до `microsoft`. -Оскільки цей шлях використовує публічний вебсервіс без опублікованої SLA або квоти, -вважайте його найкращою спробою. Якщо вам потрібні гарантовані ліміти та підтримка, -використовуйте OpenAI або ElevenLabs. +Оскільки цей шлях використовує публічний вебсервіс без опублікованого SLA або квоти, +його слід вважати best-effort. Якщо вам потрібні гарантовані ліміти та підтримка, використовуйте OpenAI +або ElevenLabs. ## Необов’язкові ключі -Якщо ви хочете використовувати ElevenLabs, Google Gemini, Gradium, Inworld, MiniMax, OpenAI, Volcengine, Vydra, xAI або Xiaomi MiMo: +Якщо ви хочете використовувати Azure Speech, ElevenLabs, Google Gemini, Gradium, Inworld, MiniMax, OpenAI, Volcengine, Vydra, xAI або Xiaomi MiMo: +- `AZURE_SPEECH_KEY` плюс `AZURE_SPEECH_REGION` (також приймає + `AZURE_SPEECH_API_KEY`, `SPEECH_KEY` і `SPEECH_REGION`) - `ELEVENLABS_API_KEY` (або `XI_API_KEY`) - `GEMINI_API_KEY` (або `GOOGLE_API_KEY`) - `GRADIUM_API_KEY` @@ -59,22 +61,24 @@ OpenClaw може перетворювати вихідні відповіді `MINIMAX_CODING_API_KEY` - `OPENAI_API_KEY` - `VOLCENGINE_TTS_API_KEY` (або `BYTEPLUS_SEED_SPEECH_API_KEY`); - застаріла автентифікація AppID/token також приймає `VOLCENGINE_TTS_APPID` і + застаріла автентифікація через AppID/token також приймає `VOLCENGINE_TTS_APPID` і `VOLCENGINE_TTS_TOKEN` - `VYDRA_API_KEY` - `XAI_API_KEY` - `XIAOMI_API_KEY` -Local CLI і мовлення Microsoft **не** потребують API-ключа. +Local CLI і мовлення 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) - [Довідник OpenAI Audio API](https://platform.openai.com/docs/api-reference/audio) +- [Azure Speech REST text-to-speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech) +- [Провайдер Azure Speech](/uk/providers/azure-speech) - [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) @@ -83,7 +87,7 @@ Local CLI і мовлення Microsoft **не** потребують API-клю - [Volcengine TTS HTTP API](/uk/providers/volcengine#text-to-speech) - [Синтез мовлення 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](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) ## Чи ввімкнено це за замовчуванням? @@ -96,7 +100,7 @@ Local CLI і мовлення Microsoft **не** потребують API-клю ## Конфігурація -Конфігурація TTS розміщується в `messages.tts` у `openclaw.json`. +Конфігурація TTS розташована в `messages.tts` у `openclaw.json`. Повна схема наведена в [Конфігурації Gateway](/uk/gateway/configuration). ### Мінімальна конфігурація (увімкнення + провайдер) @@ -112,7 +116,7 @@ Local CLI і мовлення Microsoft **не** потребують API-клю } ``` -### OpenAI як основний, ElevenLabs як резервний +### OpenAI як основний із резервним ElevenLabs ```json5 { @@ -153,6 +157,36 @@ Local CLI і мовлення Microsoft **не** потребують API-клю } ``` +### Azure Speech як основний + +```json5 +{ + messages: { + tts: { + auto: "always", + provider: "azure-speech", + providers: { + "azure-speech": { + // apiKey використовує резервне значення з AZURE_SPEECH_KEY. + // region використовує резервне значення з AZURE_SPEECH_REGION. + voice: "en-US-JennyNeural", + lang: "en-US", + outputFormat: "audio-24khz-48kbitrate-mono-mp3", + voiceNoteOutputFormat: "ogg-24khz-16bit-mono-opus", + }, + }, + }, + }, +} +``` + +Azure Speech використовує ключ ресурсу Speech, а не ключ Azure OpenAI. Порядок +визначення: `messages.tts.providers.azure-speech.apiKey` -> +`AZURE_SPEECH_KEY` -> `AZURE_SPEECH_API_KEY` -> `SPEECH_KEY`, а також +`messages.tts.providers.azure-speech.region` -> `AZURE_SPEECH_REGION` -> +`SPEECH_REGION` для регіону. У новій конфігурації слід використовувати `azure-speech`; `azure` +приймається як псевдонім провайдера. + ### Microsoft як основний (без API-ключа) ```json5 @@ -200,12 +234,12 @@ Local CLI і мовлення Microsoft **не** потребують API-клю } ``` -Порядок визначення автентифікації MiniMax TTS такий: `messages.tts.providers.minimax.apiKey`, потім +Порядок визначення автентифікації MiniMax TTS: `messages.tts.providers.minimax.apiKey`, потім збережені профілі OAuth/token `minimax-portal`, потім ключі середовища Token Plan (`MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`, -`MINIMAX_CODING_API_KEY`), потім `MINIMAX_API_KEY`. Якщо явний `baseUrl` для TTS -не задано, OpenClaw може повторно використати налаштований OAuth-хост `minimax-portal` -для мовлення Token Plan. +`MINIMAX_CODING_API_KEY`), потім `MINIMAX_API_KEY`. Якщо явний `baseUrl` TTS +не задано, OpenClaw може повторно використати налаштований хост OAuth +`minimax-portal` для мовлення Token Plan. ### Google Gemini як основний @@ -227,9 +261,9 @@ Local CLI і мовлення Microsoft **не** потребують API-клю } ``` -Google Gemini TTS використовує шлях API-ключа Gemini. Тут також підходить API-ключ Google Cloud Console, -обмежений Gemini API, і це той самий тип ключа, який використовується -вбудованим провайдером генерації зображень Google. Порядок визначення: +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`. @@ -257,10 +291,10 @@ Google Gemini TTS використовує шлях API-ключа Gemini. Ту Значення `apiKey` має бути рядком облікових даних у Base64, скопійованим дослівно з панелі керування Inworld (Workspace > API Keys). Провайдер -надсилає його як `Authorization: Basic ` без жодного додаткового -кодування, тому не передавайте сирий bearer token і не виконуйте -Base64-кодування самостійно. Ключ має резервний варіант у змінній середовища -`INWORLD_API_KEY`. Див. [Провайдер Inworld](/uk/providers/inworld) для повного налаштування. +надсилає його як `Authorization: Basic ` без будь-якого додаткового +кодування, тому не передавайте необроблений bearer token і не кодуйте його +в Base64 самостійно. Ключ використовує резервне значення зі змінної середовища `INWORLD_API_KEY`. Див. +[Провайдер Inworld](/uk/providers/inworld) для повного налаштування. ### Volcengine як основний @@ -284,13 +318,12 @@ Base64-кодування самостійно. Ключ має резервни ``` Volcengine TTS використовує API-ключ BytePlus Seed Speech із Speech Console, -а не сумісний з OpenAI `VOLCANO_ENGINE_API_KEY`, який використовується для -провайдерів моделей Doubao. Порядок визначення: -`messages.tts.providers.volcengine.apiKey` -> -`VOLCENGINE_TTS_API_KEY` -> `BYTEPLUS_SEED_SPEECH_API_KEY`. Застаріла автентифікація AppID/token +а не сумісний з OpenAI `VOLCANO_ENGINE_API_KEY`, який використовується для провайдерів +моделей Doubao. Порядок визначення: `messages.tts.providers.volcengine.apiKey` -> +`VOLCENGINE_TTS_API_KEY` -> `BYTEPLUS_SEED_SPEECH_API_KEY`. Застаріла автентифікація через AppID/token усе ще працює через `messages.tts.providers.volcengine.appId` / `token` або -`VOLCENGINE_TTS_APPID` / `VOLCENGINE_TTS_TOKEN`. Цілі голосових нотаток запитують -рідний для провайдера формат `ogg_opus`; звичайні цілі аудіофайлів запитують `mp3`. +`VOLCENGINE_TTS_APPID` / `VOLCENGINE_TTS_TOKEN`. Для цілей голосових нотаток запитується +власний для провайдера формат `ogg_opus`; для звичайних цілей аудіофайлів запитується `mp3`. ### xAI як основний @@ -317,7 +350,7 @@ Volcengine TTS використовує API-ключ BytePlus Seed Speech із S 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 як основний @@ -343,8 +376,8 @@ xAI TTS використовує той самий шлях `XAI_API_KEY`, що ``` Xiaomi MiMo TTS використовує той самий шлях `XIAOMI_API_KEY`, що й вбудований провайдер моделей Xiaomi. -Ідентифікатор провайдера мовлення — `xiaomi`; `mimo` також приймається як псевдонім. -Цільовий текст надсилається як повідомлення асистента, відповідно до контракту TTS Xiaomi. +Ідентифікатор провайдера мовлення — `xiaomi`; `mimo` приймається як псевдонім. +Цільовий текст надсилається як повідомлення помічника, що відповідає контракту TTS Xiaomi. Необов’язковий `style` надсилається як інструкція користувача і не озвучується. ### OpenRouter як основний @@ -397,9 +430,9 @@ OpenRouter TTS використовує той самий шлях `OPENROUTER_A Local CLI TTS запускає налаштовану команду на хості Gateway. Заповнювачі `{{Text}}`, `{{OutputPath}}`, `{{OutputDir}}` і `{{OutputBase}}` розгортаються в `args`; якщо заповнювач `{{Text}}` відсутній, OpenClaw записує -текст для озвучення в stdin. `outputFormat` приймає `mp3`, `opus` або `wav`. +текст для озвучення до stdin. `outputFormat` приймає `mp3`, `opus` або `wav`. Цілі голосових нотаток транскодуються в Ogg/Opus, а вивід для телефонії -транскодується в сирий 16 кГц моно PCM за допомогою `ffmpeg`. Застарілий псевдонім провайдера +транскодується в необроблений моно PCM 16 кГц за допомогою `ffmpeg`. Застарілий псевдонім провайдера `cli` усе ще працює, але в новій конфігурації слід використовувати `tts-local-cli`. ### Gradium як основний @@ -422,7 +455,7 @@ Local CLI TTS запускає налаштовану команду на хос } ``` -### Вимкнути мовлення Microsoft +### Вимкнення мовлення Microsoft ```json5 { @@ -438,7 +471,7 @@ Local CLI TTS запускає налаштовану команду на хос } ``` -### Власні ліміти + шлях налаштувань +### Власні ліміти + шлях до prefs ```json5 { @@ -453,7 +486,7 @@ Local CLI TTS запускає налаштовану команду на хос } ``` -### Лише відповідати аудіо після вхідного голосового повідомлення +### Відповідати аудіо лише після вхідного голосового повідомлення ```json5 { @@ -465,7 +498,7 @@ Local CLI TTS запускає налаштовану команду на хос } ``` -### Вимкнути автоматичний підсумок для довгих відповідей +### Вимкнення автоматичного підсумку для довгих відповідей ```json5 { @@ -490,61 +523,75 @@ Local CLI TTS запускає налаштовану команду на хос - `tagged` надсилає аудіо лише тоді, коли відповідь містить директиви `[[tts:key=value]]` або блок `[[tts:text]]...[[/tts:text]]`. - `enabled`: застарілий перемикач (doctor переносить це до `auto`). - `mode`: `"final"` (типово) або `"all"` (включає відповіді інструментів/блоків). -- `provider`: ідентифікатор провайдера мовлення, наприклад `"elevenlabs"`, `"google"`, `"gradium"`, `"inworld"`, `"microsoft"`, `"minimax"`, `"openai"`, `"volcengine"`, `"vydra"`, `"xai"` або `"xiaomi"` (резервний вибір відбувається автоматично). +- `provider`: ідентифікатор провайдера мовлення, наприклад `"elevenlabs"`, `"google"`, `"gradium"`, `"inworld"`, `"microsoft"`, `"minimax"`, `"openai"`, `"volcengine"`, `"vydra"`, `"xai"` або `"xiaomi"` (резервний варіант вибирається автоматично). - Якщо `provider` **не задано**, OpenClaw використовує перший налаштований провайдер мовлення в порядку автоматичного вибору реєстру. -- Застарілу конфігурацію `provider: "edge"` виправляє `openclaw doctor --fix`, і - її буде переписано на `provider: "microsoft"`. -- `summaryModel`: необов’язкова недорога модель для автоматичного підсумку; типово використовується `agents.defaults.model.primary`. +- Застаріла конфігурація `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`, `INWORLD_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`, `VYDRA_API_KEY`, `XAI_API_KEY`, `XIAOMI_API_KEY`). Volcengine натомість використовує `appId`/`token`. -- `providers.elevenlabs.baseUrl`: перевизначає базову URL-адресу API ElevenLabs. -- `providers.openai.baseUrl`: перевизначає кінцеву точку OpenAI TTS. +- `prefsPath`: перевизначає локальний шлях JSON для prefs (провайдер/ліміт/підсумок). +- Значення `apiKey` використовують резервні значення зі змінних середовища (`AZURE_SPEECH_KEY`/`AZURE_SPEECH_API_KEY`/`SPEECH_KEY`, `ELEVENLABS_API_KEY`/`XI_API_KEY`, `GEMINI_API_KEY`/`GOOGLE_API_KEY`, `GRADIUM_API_KEY`, `INWORLD_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`, `VYDRA_API_KEY`, `XAI_API_KEY`, `XIAOMI_API_KEY`). Volcengine натомість використовує `appId`/`token`. +- `providers.azure-speech.apiKey`: ключ ресурсу Azure Speech (змінні середовища: + `AZURE_SPEECH_KEY`, `AZURE_SPEECH_API_KEY` або `SPEECH_KEY`). +- `providers.azure-speech.region`: регіон Azure Speech, наприклад `eastus` (змінні середовища: + `AZURE_SPEECH_REGION` або `SPEECH_REGION`). +- `providers.azure-speech.endpoint` / `providers.azure-speech.baseUrl`: необов’язкове + перевизначення endpoint/base URL Azure Speech. +- `providers.azure-speech.voice`: Azure voice ShortName (типово + `en-US-JennyNeural`). +- `providers.azure-speech.lang`: код мови SSML (типово `en-US`). +- `providers.azure-speech.outputFormat`: Azure `X-Microsoft-OutputFormat` для + стандартного виводу аудіо (типово `audio-24khz-48kbitrate-mono-mp3`). +- `providers.azure-speech.voiceNoteOutputFormat`: Azure + `X-Microsoft-OutputFormat` для виводу голосових нотаток (типово + `ogg-24khz-16bit-mono-opus`). +- `providers.elevenlabs.baseUrl`: перевизначає базовий URL API ElevenLabs. +- `providers.openai.baseUrl`: перевизначає endpoint OpenAI TTS. - Порядок визначення: `messages.tts.providers.openai.baseUrl` -> `OPENAI_TTS_BASE_URL` -> `https://api.openai.com/v1` - - Нестандартні значення вважаються OpenAI-сумісними кінцевими точками TTS, тому дозволені власні назви моделей і голосів. + - Значення, відмінні від типового, вважаються сумісними з OpenAI TTS endpoint, тому допускаються власні назви моделей і голосів. - `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`, змінна середовища: `MINIMAX_API_HOST`). +- `providers.elevenlabs.seed`: ціле число `0..4294967295` (best-effort детермінізм) +- `providers.minimax.baseUrl`: перевизначає базовий URL API MiniMax (типово `https://api.minimax.io`, змінна середовища: `MINIMAX_API_HOST`). - `providers.minimax.model`: модель TTS (типово `speech-2.8-hd`, змінна середовища: `MINIMAX_TTS_MODEL`). - `providers.minimax.voiceId`: ідентифікатор голосу (типово `English_expressive_narrator`, змінна середовища: `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.tts-local-cli.command`: локальний виконуваний файл або командний рядок для CLI TTS. +- `providers.minimax.pitch`: цілочисельне зміщення висоти тону `-12..12` (типово 0). Дробові значення усікаються перед викликом MiniMax T2A, оскільки API відхиляє нецілі значення висоти тону. +- `providers.tts-local-cli.command`: локальний виконуваний файл або рядок команди для CLI TTS. - `providers.tts-local-cli.args`: аргументи команди; підтримує заповнювачі `{{Text}}`, `{{OutputPath}}`, `{{OutputDir}}` і `{{OutputBase}}`. - `providers.tts-local-cli.outputFormat`: очікуваний формат виводу CLI (`mp3`, `opus` або `wav`; типово `mp3` для аудіовкладень). - `providers.tts-local-cli.timeoutMs`: тайм-аут команди в мілісекундах (типово `120000`). - `providers.tts-local-cli.cwd`: необов’язковий робочий каталог команди. - `providers.tts-local-cli.env`: необов’язкові рядкові перевизначення змінних середовища для команди. -- `providers.inworld.baseUrl`: перевизначає базову URL-адресу API Inworld (типово `https://api.inworld.ai`). +- `providers.inworld.baseUrl`: перевизначає базовий URL API Inworld (типово `https://api.inworld.ai`). - `providers.inworld.voiceId`: ідентифікатор голосу Inworld (типово `Sarah`). -- `providers.inworld.modelId`: модель TTS Inworld (типово `inworld-tts-1.5-max`; також підтримуються `inworld-tts-1.5-mini`, `inworld-tts-1-max`, `inworld-tts-1`). +- `providers.inworld.modelId`: модель TTS Inworld (типово `inworld-tts-1.5-max`; також підтримує `inworld-tts-1.5-mini`, `inworld-tts-1-max`, `inworld-tts-1`). - `providers.inworld.temperature`: температура семплювання `0..2` (необов’язково). - `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` перед переходом до змінних середовища. -- `providers.gradium.baseUrl`: перевизначає базову URL-адресу API Gradium (типово `https://api.gradium.ai`). +- `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` до переходу на резервні значення зі змінних середовища. +- `providers.gradium.baseUrl`: перевизначає базовий URL API Gradium (типово `https://api.gradium.ai`). - `providers.gradium.voiceId`: ідентифікатор голосу Gradium (типово Emma, `YTpq7expH9539ERJ`). - `providers.volcengine.apiKey`: API-ключ BytePlus Seed Speech (змінні середовища: `VOLCENGINE_TTS_API_KEY` або `BYTEPLUS_SEED_SPEECH_API_KEY`). - `providers.volcengine.resourceId`: ідентифікатор ресурсу BytePlus Seed Speech (типово `seed-tts-1.0`, змінна середовища: `VOLCENGINE_TTS_RESOURCE_ID`; використовуйте `seed-tts-2.0`, коли - ваш проєкт BytePlus має право доступу до TTS 2.0). + ваш проєкт BytePlus має entitlement для TTS 2.0). - `providers.volcengine.appKey`: заголовок app key BytePlus Seed Speech (типово `aGjiRDfUWi`, змінна середовища: `VOLCENGINE_TTS_APP_KEY`). - `providers.volcengine.baseUrl`: перевизначає HTTP endpoint Seed Speech TTS @@ -553,51 +600,51 @@ Local CLI TTS запускає налаштовану команду на хос - `providers.volcengine.token`: застарілий токен доступу Volcengine Speech Console (змінна середовища: `VOLCENGINE_TTS_TOKEN`). - `providers.volcengine.cluster`: застарілий кластер Volcengine TTS (типово `volcano_tts`, змінна середовища: `VOLCENGINE_TTS_CLUSTER`). - `providers.volcengine.voice`: тип голосу (типово `en_female_anna_mars_bigtts`, змінна середовища: `VOLCENGINE_TTS_VOICE`). -- `providers.volcengine.speedRatio`: рідне для провайдера співвідношення швидкості. -- `providers.volcengine.emotion`: рідний для провайдера тег емоції. +- `providers.volcengine.speedRatio`: власний для провайдера коефіцієнт швидкості. +- `providers.volcengine.emotion`: власний для провайдера тег емоції. - `providers.xai.apiKey`: API-ключ xAI TTS (змінна середовища: `XAI_API_KEY`). -- `providers.xai.baseUrl`: перевизначає базову URL-адресу xAI TTS (типово `https://api.x.ai/v1`, змінна середовища: `XAI_BASE_URL`). +- `providers.xai.baseUrl`: перевизначає базовий URL xAI TTS (типово `https://api.x.ai/v1`, змінна середовища: `XAI_BASE_URL`). - `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 (змінна середовища: `XIAOMI_API_KEY`). -- `providers.xiaomi.baseUrl`: перевизначає базову URL-адресу API Xiaomi MiMo (типово `https://api.xiaomimimo.com/v1`, змінна середовища: `XIAOMI_BASE_URL`). +- `providers.xiaomi.baseUrl`: перевизначає базовий URL API Xiaomi MiMo (типово `https://api.xiaomimimo.com/v1`, змінна середовища: `XIAOMI_BASE_URL`). - `providers.xiaomi.model`: модель TTS (типово `mimo-v2.5-tts`, змінна середовища: `XIAOMI_TTS_MODEL`; також підтримується `mimo-v2-tts`). - `providers.xiaomi.voice`: ідентифікатор голосу MiMo (типово `mimo_default`, змінна середовища: `XIAOMI_TTS_VOICE`). - `providers.xiaomi.format`: `mp3` або `wav` (типово `mp3`, змінна середовища: `XIAOMI_TTS_FORMAT`). -- `providers.xiaomi.style`: необов’язкова стильова інструкція природною мовою, що надсилається як повідомлення користувача; вона не озвучується. +- `providers.xiaomi.style`: необов’язкова інструкція стилю природною мовою, що надсилається як повідомлення користувача; вона не озвучується. - `providers.openrouter.apiKey`: API-ключ OpenRouter (змінна середовища: `OPENROUTER_API_KEY`; може повторно використовувати `models.providers.openrouter.apiKey`). -- `providers.openrouter.baseUrl`: перевизначає базову URL-адресу OpenRouter TTS (типово `https://openrouter.ai/api/v1`; застаріле `https://openrouter.ai/v1` нормалізується). +- `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.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%`). + - Див. формати виводу 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. Виконайте `openclaw doctor --fix`, щоб переписати збережену конфігурацію на `providers.microsoft`. -## Перевизначення, керовані моделлю (увімкнено за замовчуванням) +## Керовані моделлю перевизначення (увімкнено за замовчуванням) -За замовчуванням модель **може** видавати TTS-директиви для однієї відповіді. -Коли `messages.tts.auto` має значення `tagged`, ці директиви обов’язкові для запуску аудіо. +За замовчуванням модель **може** генерувати директиви TTS для однієї відповіді. +Коли `messages.tts.auto` має значення `tagged`, ці директиви потрібні для запуску аудіо. -Коли це ввімкнено, модель може видавати директиви `[[tts:...]]`, щоб перевизначити голос -для однієї відповіді, а також необов’язковий блок `[[tts:text]]...[[/tts:text]]`, щоб -додати виразні теги (сміх, підказки для співу тощо), які мають з’являтися лише в -аудіо. +Коли це ввімкнено, модель може генерувати директиви `[[tts:...]]`, щоб перевизначити голос +для однієї відповіді, а також необов’язковий блок `[[tts:text]]...[[/tts:text]]`, +щоб надати виразні теги (сміх, підказки для співу тощо), які мають з’являтися лише +в аудіо. Директиви `provider=...` ігноруються, якщо не встановлено `modelOverrides.allowProvider: true`. -Приклад корисного навантаження відповіді: +Приклад payload відповіді: ``` Here you go. @@ -613,13 +660,13 @@ Here you go. - `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) - `emotion` (тег емоції Volcengine) - `applyTextNormalization` (`auto|on|off`) - `languageCode` (ISO 639-1) - `seed` -Вимкнути всі перевизначення моделі: +Вимкнення всіх перевизначень моделі: ```json5 { @@ -633,7 +680,7 @@ Here you go. } ``` -Необов’язковий список дозволів (увімкнути перемикання провайдера, залишаючи інші параметри налаштовуваними): +Необов’язковий список дозволів (увімкнення перемикання провайдера, зберігаючи можливість налаштовувати інші параметри): ```json5 { @@ -651,15 +698,15 @@ Here you go. ## Налаштування для кожного користувача -Команди зі слешем записують локальні перевизначення до `prefsPath` (типово: -`~/.openclaw/settings/tts.json`, перевизначається через `OPENCLAW_TTS_PREFS` або +Slash-команди записують локальні перевизначення в `prefsPath` (типово: +`~/.openclaw/settings/tts.json`, можна перевизначити через `OPENCLAW_TTS_PREFS` або `messages.tts.prefsPath`). Збережені поля: - `enabled` - `provider` -- `maxLength` (поріг підсумку; типово 1500 символів) +- `maxLength` (поріг для підсумку; типово 1500 символів) - `summarize` (типово `true`) Вони перевизначають `messages.tts.*` для цього хоста. @@ -669,43 +716,43 @@ Here you go. - **Feishu / Matrix / Telegram / WhatsApp**: відповіді у форматі голосових нотаток надають перевагу Opus (`opus_48000_64` від ElevenLabs, `opus` від OpenAI). - 48 кГц / 64 кбіт/с — хороший компроміс для голосових повідомлень. - **Feishu**: коли відповідь у форматі голосової нотатки створюється як MP3/WAV/M4A або інший - імовірний аудіофайл, Plugin Feishu транскодує її до 48 кГц Ogg/Opus за допомогою + імовірний аудіофайл, Plugin 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` перед доставкою. -- **Xiaomi MiMo**: MP3 за замовчуванням або WAV, якщо налаштовано. Для цілей голосових нотаток, таких як Feishu і Telegram, OpenClaw транскодує вивід Xiaomi у 48 кГц Opus за допомогою `ffmpeg` перед доставкою. +- **Xiaomi MiMo**: типово MP3 або WAV, якщо налаштовано. Для цілей голосових нотаток, таких як Feishu і Telegram, OpenClaw транскодує вивід Xiaomi у 48 кГц Opus за допомогою `ffmpeg` перед доставкою. - **Local CLI**: використовує налаштований `outputFormat`. Цілі голосових нотаток - перетворюються в Ogg/Opus, а вивід для телефонії перетворюється в сирий 16 кГц моно PCM + перетворюються на Ogg/Opus, а вивід для телефонії перетворюється на необроблений моно PCM 16 кГц за допомогою `ffmpeg`. -- **Google Gemini**: Gemini API TTS повертає сирий 24 кГц PCM. OpenClaw обгортає його у WAV для аудіовкладень, транскодує в 48 кГц Opus для цілей голосових нотаток і повертає PCM напряму для Talk/телефонії. +- **Google Gemini**: Gemini API TTS повертає необроблений PCM 24 кГц. OpenClaw обгортає його у WAV для аудіовкладень, транскодує у 48 кГц Opus для цілей голосових нотаток і повертає PCM безпосередньо для Talk/телефонії. - **Gradium**: WAV для аудіовкладень, Opus для цілей голосових нотаток і `ulaw_8000` на 8 кГц для телефонії. -- **Inworld**: MP3 для звичайних аудіовкладень, нативний `OGG_OPUS` для цілей голосових нотаток і сирий `PCM` на 22050 Гц для Talk/телефонії. -- **xAI**: MP3 за замовчуванням; `responseFormat` може бути `mp3`, `wav`, `pcm`, `mulaw` або `alaw`. OpenClaw використовує пакетний REST TTS endpoint xAI і повертає завершене аудіовкладення; потоковий TTS WebSocket xAI не використовується цим шляхом провайдера. Нативний формат голосових нотаток Opus цим шляхом не підтримується. +- **Inworld**: MP3 для звичайних аудіовкладень, нативний `OGG_OPUS` для цілей голосових нотаток і необроблений `PCM` на 22050 Гц для Talk/телефонії. +- **xAI**: типово MP3; `responseFormat` може бути `mp3`, `wav`, `pcm`, `mulaw` або `alaw`. OpenClaw використовує пакетний REST TTS endpoint xAI і повертає готове аудіовкладення; потоковий TTS WebSocket xAI не використовується цим шляхом провайдера. Нативний формат голосових нотаток Opus цим шляхом не підтримується. - **Microsoft**: використовує `microsoft.outputFormat` (типово `audio-24khz-48kbitrate-mono-mp3`). - - Вбудований транспорт приймає `outputFormat`, але не всі формати доступні в сервісі. + - Вбудований транспорт приймає `outputFormat`, але не всі формати доступні від сервісу. - Значення формату виводу відповідають форматам виводу Microsoft Speech (включно з Ogg/WebM Opus). - Telegram `sendVoice` приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам потрібні гарантовані голосові повідомлення Opus. - - Якщо налаштований формат виводу Microsoft не спрацьовує, OpenClaw повторює спробу з MP3. + - Якщо налаштований формат виводу Microsoft не працює, OpenClaw повторює спробу з MP3. Формати виводу OpenAI/ElevenLabs фіксовані для кожного каналу (див. вище). ## Поведінка auto-TTS -Коли ввімкнено, OpenClaw: +Коли це ввімкнено, OpenClaw: - пропускає TTS, якщо відповідь уже містить медіа або директиву `MEDIA:`. - пропускає дуже короткі відповіді (< 10 символів). -- підсумовує довгі відповіді, якщо це ввімкнено, використовуючи `agents.defaults.model.primary` (або `summaryModel`). +- створює підсумок довгих відповідей, якщо це ввімкнено, використовуючи `agents.defaults.model.primary` (або `summaryModel`). - додає згенероване аудіо до відповіді. Якщо відповідь перевищує `maxLength` і підсумок вимкнено (або немає API-ключа для моделі підсумку), аудіо пропускається і надсилається звичайна текстова відповідь. -## Схема потоку +## Діаграма потоку ``` Reply -> TTS enabled? @@ -720,13 +767,13 @@ Reply -> TTS enabled? -> TTS -> attach audio ``` -## Використання слеш-команди +## Використання Slash-команди Є одна команда: `/tts`. -Докладніше про ввімкнення див. у [Слеш-командах](/uk/tools/slash-commands). +Докладніше про ввімкнення див. у [Slash-командах](/uk/tools/slash-commands). Примітка для Discord: `/tts` — це вбудована команда Discord, тому OpenClaw реєструє -`/voice` як нативну команду там. Текстовий `/tts ...` усе одно працює. +там `/voice` як нативну команду. Текстова команда `/tts ...` усе ще працює. ``` /tts off @@ -740,30 +787,29 @@ 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` зберігаються в локальних налаштуваннях, а не в основній конфігурації. +- `limit` і `summary` зберігаються в локальних prefs, а не в основній конфігурації. - `/tts audio` генерує одноразову аудіовідповідь (не вмикає TTS). -- `/tts status` містить видимість резервного переходу для останньої спроби: - - успішний резервний перехід: `Fallback: -> ` плюс `Attempts: ...` +- `/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, Matrix, Telegram або WhatsApp, аудіо доставляється як голосове повідомлення, а не як файлове вкладення. -Feishu може транскодувати вивід TTS, що не є Opus, на цьому шляху, якщо доступний -`ffmpeg`. +Feishu може транскодувати не-Opus вивід TTS на цьому шляху, коли доступний `ffmpeg`. WhatsApp надсилає видимий текст окремо від PTT-аудіо голосової нотатки, оскільки клієнти не завжди коректно відображають підписи до голосових нотаток. -Він приймає необов’язкові поля `channel` і `timeoutMs`; `timeoutMs` — це -тайм-аут запиту до провайдера для кожного виклику в мілісекундах. +Він приймає необов’язкові поля `channel` і `timeoutMs`; `timeoutMs` — +це тайм-аут запиту до провайдера для конкретного виклику в мілісекундах. ## Gateway RPC