chore(i18n): refresh uk translations
This commit is contained in:
parent
106891ab8e
commit
a307c75df7
126
docs/uk/providers/azure-speech.md
Normal file
126
docs/uk/providers/azure-speech.md
Normal file
@ -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` |
|
||||
|
||||
## Початок роботи
|
||||
|
||||
<Steps>
|
||||
<Step title="Створіть ресурс Azure Speech">
|
||||
У порталі Azure створіть ресурс Speech. Скопіюйте **KEY 1** з
|
||||
Resource Management > Keys and Endpoint, а також скопіюйте розташування ресурсу,
|
||||
наприклад `eastus`.
|
||||
|
||||
```
|
||||
AZURE_SPEECH_KEY=<speech-resource-key>
|
||||
AZURE_SPEECH_REGION=eastus
|
||||
```
|
||||
|
||||
</Step>
|
||||
<Step title="Виберіть Azure Speech у messages.tts">
|
||||
```json5
|
||||
{
|
||||
messages: {
|
||||
tts: {
|
||||
auto: "always",
|
||||
provider: "azure-speech",
|
||||
providers: {
|
||||
"azure-speech": {
|
||||
voice: "en-US-JennyNeural",
|
||||
lang: "en-US",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
</Step>
|
||||
<Step title="Надішліть повідомлення">
|
||||
Надішліть відповідь через будь-який підключений канал. OpenClaw синтезує аудіо
|
||||
за допомогою Azure Speech і доставляє MP3 для стандартного аудіо або Ogg/Opus, коли
|
||||
канал очікує голосове повідомлення.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Параметри конфігурації
|
||||
|
||||
| Параметр | Шлях | Опис |
|
||||
| ----------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| `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`). |
|
||||
|
||||
## Примітки
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Автентифікація">
|
||||
Azure Speech використовує ключ ресурсу Speech, а не ключ Azure OpenAI. Ключ
|
||||
надсилається як `Ocp-Apim-Subscription-Key`; OpenClaw виводить
|
||||
`https://<region>.tts.speech.microsoft.com` з `region`, якщо ви не
|
||||
вкажете `endpoint` або `baseUrl`.
|
||||
</Accordion>
|
||||
<Accordion title="Назви голосів">
|
||||
Використовуйте значення `ShortName` голосу Azure Speech, наприклад
|
||||
`en-US-JennyNeural`. Вбудований провайдер може перелічувати голоси через
|
||||
той самий ресурс Speech і відфільтровує голоси, позначені як deprecated або retired.
|
||||
</Accordion>
|
||||
<Accordion title="Аудіовиходи">
|
||||
Azure приймає такі формати виводу, як `audio-24khz-48kbitrate-mono-mp3`,
|
||||
`ogg-24khz-16bit-mono-opus` і `riff-24khz-16bit-mono-pcm`. OpenClaw
|
||||
запитує Ogg/Opus для цілей `voice-note`, щоб канали могли надсилати нативні
|
||||
голосові бульбашки без додаткового перетворення MP3.
|
||||
</Accordion>
|
||||
<Accordion title="Псевдонім">
|
||||
`azure` приймається як псевдонім провайдера для наявних PR і конфігурації користувачів,
|
||||
але в новій конфігурації слід використовувати `azure-speech`, щоб уникнути плутанини з
|
||||
провайдерами моделей Azure OpenAI.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Пов’язане
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Перетворення тексту на мовлення" href="/uk/tools/tts" icon="waveform-lines">
|
||||
Огляд TTS, провайдери та конфігурація `messages.tts`.
|
||||
</Card>
|
||||
<Card title="Конфігурація" href="/uk/gateway/configuration" icon="gear">
|
||||
Повний довідник із конфігурації, включно з параметрами `messages.tts`.
|
||||
</Card>
|
||||
<Card title="Провайдери" href="/uk/providers" icon="grid">
|
||||
Усі вбудовані провайдери OpenClaw.
|
||||
</Card>
|
||||
<Card title="Усунення несправностей" href="/uk/help/troubleshooting" icon="wrench">
|
||||
Поширені проблеми та кроки налагодження.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
@ -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).
|
||||
|
||||
@ -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 <apiKey>` без жодного додаткового
|
||||
кодування, тому не передавайте сирий bearer token і не виконуйте
|
||||
Base64-кодування самостійно. Ключ має резервний варіант у змінній середовища
|
||||
`INWORLD_API_KEY`. Див. [Провайдер Inworld](/uk/providers/inworld) для повного налаштування.
|
||||
надсилає його як `Authorization: Basic <apiKey>` без будь-якого додаткового
|
||||
кодування, тому не передавайте необроблений 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.<id>`: налаштування, що належать провайдеру, з ключем за ідентифікатором провайдера мовлення.
|
||||
- Застарілі прямі блоки провайдерів (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) виправляє `openclaw doctor --fix`; у збереженій конфігурації слід використовувати `messages.tts.providers.<id>`.
|
||||
- Застарілий `messages.tts.providers.edge` також виправляє `openclaw doctor --fix`; у збереженій конфігурації слід використовувати `messages.tts.providers.microsoft`.
|
||||
- `maxTextLength`: жорстке обмеження для вхідного тексту TTS (символи). `/tts audio` завершується помилкою, якщо його перевищено.
|
||||
- `providers.<id>`: налаштування провайдера, що належать провайдеру, з ключем за ідентифікатором провайдера мовлення.
|
||||
- Застарілі прямі блоки провайдерів (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) виправляються командою `openclaw doctor --fix`; у збереженій конфігурації слід використовувати `messages.tts.providers.<id>`.
|
||||
- Застарілий `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: <primary> -> <used>` плюс `Attempts: ...`
|
||||
- `/tts status` містить видимість резервних варіантів для останньої спроби:
|
||||
- успішний резервний варіант: `Fallback: <primary> -> <used>` плюс `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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user